diff options
author | PikalaxALT <PikalaxALT@users.noreply.github.com> | 2019-11-12 15:38:42 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-12 15:38:42 -0500 |
commit | 4a6563b82d0d10169b7f361ee44412d65a99582e (patch) | |
tree | 46c0f4eff4b30b1ec2158888be0a4cd3c66c48da | |
parent | 68ac755bb91041868cde6d558b2af2123ddad0a0 (diff) | |
parent | f04e6737b2073446efa285cfa74a80ee23649afd (diff) |
Merge pull request #154 from PikalaxALT/dism_more_data
Field Door
140 files changed, 955 insertions, 1253 deletions
diff --git a/asm/field_camera.s b/asm/field_camera.s index f6cbbd0ef..0016e6381 100644 --- a/asm/field_camera.s +++ b/asm/field_camera.s @@ -490,8 +490,8 @@ _0805A914: .4byte gUnknown_3000E90 _0805A918: .4byte gMapHeader thumb_func_end CurrentMapDrawMetatileAt - thumb_func_start sub_805A91C -sub_805A91C: @ 805A91C + thumb_func_start DrawDoorMetatileAt +DrawDoorMetatileAt: @ 805A91C push {r4,r5,lr} adds r3, r0, 0 adds r4, r1, 0 @@ -513,7 +513,7 @@ _0805A93E: bx r0 .align 2, 0 _0805A944: .4byte gUnknown_3000E90 - thumb_func_end sub_805A91C + thumb_func_end DrawDoorMetatileAt thumb_func_start sub_805A948 sub_805A948: @ 805A948 diff --git a/asm/field_door.s b/asm/field_door.s deleted file mode 100644 index bcb8a6082..000000000 --- a/asm/field_door.s +++ /dev/null @@ -1,667 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_805AF14 -sub_805AF14: @ 805AF14 - push {r4-r7,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - ldrh r1, [r5, 0x2] - ldr r0, _0805AF34 @ =0x0000ffff - cmp r1, r0 - bne _0805AF38 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_805AF54 - b _0805AF4E - .align 2, 0 -_0805AF34: .4byte 0x0000ffff -_0805AF38: - ldrh r1, [r5, 0x2] - ldr r0, [r4, 0x4] - adds r0, r1 - bl sub_805AF80 - ldr r3, [r4, 0x8] - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_805AF94 -_0805AF4E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_805AF14 - - thumb_func_start sub_805AF54 -sub_805AF54: @ 805AF54 - push {r4,r5,lr} - adds r5, r1, 0 - adds r4, r2, 0 - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _0805AF6A - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - b _0805AF7A -_0805AF6A: - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - subs r1, r4, 0x1 - adds r0, r5, 0 - bl CurrentMapDrawMetatileAt -_0805AF7A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_805AF54 - - thumb_func_start sub_805AF80 -sub_805AF80: @ 805AF80 - push {lr} - ldr r1, _0805AF90 @ =0x06007f00 - movs r2, 0x40 - bl CpuFastSet - pop {r0} - bx r0 - .align 2, 0 -_0805AF90: .4byte 0x06007f00 - thumb_func_end sub_805AF80 - - thumb_func_start sub_805AF94 -sub_805AF94: @ 805AF94 - push {r4-r6,lr} - sub sp, 0x10 - adds r5, r1, 0 - adds r6, r2, 0 - adds r4, r3, 0 - ldrb r0, [r0, 0x3] - cmp r0, 0 - bne _0805AFB2 - movs r1, 0xFE - lsls r1, 2 - mov r0, sp - adds r2, r4, 0 - bl sub_805AFE8 - b _0805AFD4 -_0805AFB2: - movs r1, 0xFE - lsls r1, 2 - mov r0, sp - adds r2, r4, 0 - bl sub_805AFE8 - subs r1, r6, 0x1 - adds r0, r5, 0 - mov r2, sp - bl sub_805A91C - movs r1, 0xFF - lsls r1, 2 - adds r2, r4, 0x4 - mov r0, sp - bl sub_805AFE8 -_0805AFD4: - adds r0, r5, 0 - adds r1, r6, 0 - mov r2, sp - bl sub_805A91C - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_805AF94 - - thumb_func_start sub_805AFE8 -sub_805AFE8: @ 805AFE8 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 - adds r1, r6, 0 -_0805AFF4: - ldrb r0, [r2] - lsls r0, 28 - lsrs r3, r0, 16 - adds r2, 0x1 - adds r0, r5, r4 - orrs r3, r0 - strh r3, [r1] - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0805AFF4 - cmp r4, 0x7 - bgt _0805B022 - lsls r0, r4, 1 - adds r1, r0, r6 -_0805B012: - ldrb r0, [r2] - lsls r3, r0, 12 - adds r2, 0x1 - strh r3, [r1] - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x7 - ble _0805B012 -_0805B022: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_805AFE8 - - thumb_func_start sub_805B028 -sub_805B028: @ 805B028 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - ldr r0, _0805B05C @ =gTasks+0x8 - adds r2, r0 - ldrh r1, [r2] - lsls r1, 16 - ldrh r0, [r2, 0x2] - orrs r1, r0 - ldrh r0, [r2, 0x4] - lsls r0, 16 - ldrh r3, [r2, 0x6] - orrs r0, r3 - bl sub_805B060 - cmp r0, 0 - bne _0805B056 - adds r0, r4, 0 - bl DestroyTask -_0805B056: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0805B05C: .4byte gTasks+0x8 - thumb_func_end sub_805B028 - - thumb_func_start sub_805B060 -sub_805B060: @ 805B060 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - adds r4, r2, 0 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0805B086 - movs r2, 0x8 - ldrsh r1, [r4, r2] - lsls r1, 2 - adds r1, r5, r1 - movs r0, 0xC - ldrsh r2, [r4, r0] - movs r0, 0xE - ldrsh r3, [r4, r0] - adds r0, r6, 0 - bl sub_805AF14 -_0805B086: - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r2, 0x8 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0] - cmp r1, r0 - bne _0805B0B4 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _0805B0BA - movs r0, 0 - b _0805B0BC -_0805B0B4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] -_0805B0BA: - movs r0, 0x1 -_0805B0BC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_805B060 - - thumb_func_start door_find -door_find: @ 805B0C4 - push {lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - b _0805B0DA -_0805B0CE: - ldrh r0, [r2] - cmp r0, r1 - bne _0805B0D8 - adds r0, r2, 0 - b _0805B0E2 -_0805B0D8: - adds r2, 0xC -_0805B0DA: - ldr r0, [r2, 0x4] - cmp r0, 0 - bne _0805B0CE - movs r0, 0 -_0805B0E2: - pop {r1} - bx r1 - thumb_func_end door_find - - thumb_func_start task_overworld_door_add_if_inactive -task_overworld_door_add_if_inactive: @ 805B0E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - mov r8, r3 - ldr r4, _0805B134 @ =sub_805B028 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0805B13C - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _0805B138 @ =gTasks+0x8 - adds r1, r2 - strh r7, [r1, 0xC] - mov r2, r8 - strh r2, [r1, 0xE] - strh r5, [r1, 0x2] - lsrs r2, r5, 16 - strh r2, [r1] - strh r6, [r1, 0x6] - lsrs r2, r6, 16 - strh r2, [r1, 0x4] - lsls r0, 24 - asrs r0, 24 - b _0805B140 - .align 2, 0 -_0805B134: .4byte sub_805B028 -_0805B138: .4byte gTasks+0x8 -_0805B13C: - movs r0, 0x1 - negs r0, r0 -_0805B140: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end task_overworld_door_add_if_inactive - - thumb_func_start DrawClosedDoor -DrawClosedDoor: @ 805B14C - push {lr} - bl sub_805AF54 - pop {r0} - bx r0 - thumb_func_end DrawClosedDoor - - thumb_func_start sub_805B158 -sub_805B158: @ 805B158 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl door_find - adds r4, r0, 0 - cmp r0, 0 - beq _0805B196 - ldrb r0, [r0, 0x3] - ldr r1, _0805B19C @ =gUnknown_835B49C - cmp r0, 0 - bne _0805B184 - ldr r1, _0805B1A0 @ =gUnknown_835B488 -_0805B184: - adds r0, r1, 0 - bl sub_805B1A4 - adds r1, r0, 0 - adds r0, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl sub_805AF14 -_0805B196: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0805B19C: .4byte gUnknown_835B49C -_0805B1A0: .4byte gUnknown_835B488 - thumb_func_end sub_805B158 - - thumb_func_start sub_805B1A4 -sub_805B1A4: @ 805B1A4 - push {lr} - adds r1, r0, 0 - b _0805B1AC -_0805B1AA: - adds r1, 0x4 -_0805B1AC: - ldrb r0, [r1] - cmp r0, 0 - bne _0805B1AA - subs r0, r1, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_805B1A4 - - thumb_func_start sub_805B1B8 -sub_805B1B8: @ 805B1B8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl door_find - adds r2, r0, 0 - adds r4, r2, 0 - cmp r2, 0 - bne _0805B1E2 - movs r0, 0x1 - negs r0, r0 - b _0805B204 -_0805B1E2: - ldrb r0, [r2, 0x3] - cmp r0, 0 - beq _0805B1F4 - ldr r1, _0805B1F0 @ =gUnknown_835B49C - adds r0, r2, 0 - b _0805B1F8 - .align 2, 0 -_0805B1F0: .4byte gUnknown_835B49C -_0805B1F4: - ldr r1, _0805B20C @ =gUnknown_835B488 - adds r0, r4, 0 -_0805B1F8: - adds r2, r5, 0 - adds r3, r6, 0 - bl task_overworld_door_add_if_inactive - lsls r0, 24 - asrs r0, 24 -_0805B204: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805B20C: .4byte gUnknown_835B488 - thumb_func_end sub_805B1B8 - - thumb_func_start sub_805B210 -sub_805B210: @ 805B210 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl door_find - adds r2, r0, 0 - adds r4, r2, 0 - cmp r2, 0 - bne _0805B23A - movs r0, 0x1 - negs r0, r0 - b _0805B25C -_0805B23A: - ldrb r0, [r2, 0x3] - cmp r0, 0 - beq _0805B24C - ldr r1, _0805B248 @ =gUnknown_835B4C4 - adds r0, r2, 0 - b _0805B250 - .align 2, 0 -_0805B248: .4byte gUnknown_835B4C4 -_0805B24C: - ldr r1, _0805B264 @ =gUnknown_835B4B0 - adds r0, r4, 0 -_0805B250: - adds r2, r5, 0 - adds r3, r6, 0 - bl task_overworld_door_add_if_inactive - lsls r0, 24 - asrs r0, 24 -_0805B25C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0805B264: .4byte gUnknown_835B4B0 - thumb_func_end sub_805B210 - - thumb_func_start FieldSetDoorOpened -FieldSetDoorOpened: @ 805B268 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWarpDoor_2 - lsls r0, 24 - cmp r0, 0 - beq _0805B292 - ldr r0, _0805B298 @ =gUnknown_835B5D8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_805B158 -_0805B292: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805B298: .4byte gUnknown_835B5D8 - thumb_func_end FieldSetDoorOpened - - thumb_func_start FieldSetDoorClosed -FieldSetDoorClosed: @ 805B29C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWarpDoor_2 - lsls r0, 24 - cmp r0, 0 - beq _0805B2C6 - ldr r0, _0805B2CC @ =gUnknown_835B5D8 - adds r1, r4, 0 - adds r2, r5, 0 - bl DrawClosedDoor -_0805B2C6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0805B2CC: .4byte gUnknown_835B5D8 - thumb_func_end FieldSetDoorClosed - - thumb_func_start FieldAnimateDoorClose -FieldAnimateDoorClose: @ 805B2D0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWarpDoor_2 - lsls r0, 24 - cmp r0, 0 - beq _0805B304 - ldr r0, _0805B300 @ =gUnknown_835B5D8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_805B210 - lsls r0, 24 - asrs r0, 24 - b _0805B308 - .align 2, 0 -_0805B300: .4byte gUnknown_835B5D8 -_0805B304: - movs r0, 0x1 - negs r0, r0 -_0805B308: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldAnimateDoorClose - - thumb_func_start FieldAnimateDoorOpen -FieldAnimateDoorOpen: @ 805B310 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r5, 16 - asrs r1, 16 - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWarpDoor_2 - lsls r0, 24 - cmp r0, 0 - beq _0805B344 - ldr r0, _0805B340 @ =gUnknown_835B5D8 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_805B1B8 - lsls r0, 24 - asrs r0, 24 - b _0805B348 - .align 2, 0 -_0805B340: .4byte gUnknown_835B5D8 -_0805B344: - movs r0, 0x1 - negs r0, r0 -_0805B348: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldAnimateDoorOpen - - thumb_func_start FieldIsDoorAnimationRunning -FieldIsDoorAnimationRunning: @ 805B350 - push {lr} - ldr r0, _0805B360 @ =sub_805B028 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0805B360: .4byte sub_805B028 - thumb_func_end FieldIsDoorAnimationRunning - - thumb_func_start GetDoorSoundEffect -GetDoorSoundEffect: @ 805B364 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _0805B37C @ =gUnknown_835B5D8 - adds r1, r3, 0 - bl sub_805B388 - lsls r0, 24 - cmp r0, 0 - beq _0805B380 - movs r0, 0x12 - b _0805B382 - .align 2, 0 -_0805B37C: .4byte gUnknown_835B5D8 -_0805B380: - movs r0, 0xF1 -_0805B382: - pop {r1} - bx r1 - thumb_func_end GetDoorSoundEffect - - thumb_func_start sub_805B388 -sub_805B388: @ 805B388 - push {r4,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r1, r2, 0 - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl door_find - cmp r0, 0 - beq _0805B3AC - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - b _0805B3B0 -_0805B3AC: - movs r0, 0x1 - negs r0, r0 -_0805B3B0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_805B388 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s index a143d2776..a8487864a 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5826,7 +5826,7 @@ UseRegisteredKeyItemOnField: @ 810AD10 movs r0, 0 b _0810ADA0 _0810AD1E: - bl sub_80982EC + bl DismissMapNamePopup movs r0, 0 movs r1, 0 movs r2, 0 diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s deleted file mode 100644 index ba64bdbe8..000000000 --- a/asm/map_name_popup.s +++ /dev/null @@ -1,490 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8098110 -sub_8098110: @ 8098110 - push {r4-r6,lr} - adds r6, r0, 0 - movs r0, 0x80 - lsls r0, 7 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080981A2 - ldr r0, _08098178 @ =gUnknown_203ADFA - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080981A2 - ldr r5, _0809817C @ =sub_80981AC - adds r0, r5, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - bne _08098188 - adds r0, r5, 0 - movs r1, 0x5A - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - ldr r1, _08098180 @ =0xffffef7f - movs r0, 0 - movs r2, 0 - bl ChangeBgY - ldr r1, _08098184 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] - strh r1, [r0, 0xC] - strh r6, [r0, 0x18] - b _080981A2 - .align 2, 0 -_08098178: .4byte gUnknown_203ADFA -_0809817C: .4byte sub_80981AC -_08098180: .4byte 0xffffef7f -_08098184: .4byte gTasks -_08098188: - ldr r0, _080981A8 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0x4 - beq _0809819E - movs r0, 0x4 - strh r0, [r1, 0x8] -_0809819E: - movs r0, 0x1 - strh r0, [r1, 0xE] -_080981A2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080981A8: .4byte gTasks - thumb_func_end sub_8098110 - - thumb_func_start sub_80981AC -sub_80981AC: @ 80981AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080981D0 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bls _080981C6 - b _080982DE -_080981C6: - lsls r0, 2 - ldr r1, _080981D4 @ =_080981D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080981D0: .4byte gTasks -_080981D4: .4byte _080981D8 - .align 2, 0 -_080981D8: - .4byte _080981FC - .4byte _0809820E - .4byte _08098218 - .4byte _08098234 - .4byte _0809824C - .4byte _080982DE - .4byte _0809827E - .4byte _080982A6 - .4byte _080982D6 -_080981FC: - movs r1, 0x18 - ldrsh r0, [r4, r1] - bl sub_8098340 - strh r0, [r4, 0x10] - movs r0, 0x1 - strh r0, [r4, 0x12] - strh r0, [r4, 0x8] - b _080982DE -_0809820E: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _080982DE -_08098218: - ldrh r0, [r4, 0xC] - subs r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x18 - negs r1, r1 - cmp r0, r1 - bgt _080982DE - movs r0, 0x3 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0xA] - b _080982DE -_08098234: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _080982DE - movs r0, 0 - strh r0, [r4, 0xA] - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080982DE -_0809824C: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - blt _080982DE - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08098278 - ldrh r0, [r4, 0x10] - bl sub_8098400 - ldrb r0, [r4, 0x10] - movs r1, 0x2 - bl CopyWindowToVram - movs r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0xE] - b _080982DE -_08098278: - movs r0, 0x6 - strh r0, [r4, 0x8] - b _080982E6 -_0809827E: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080982A0 - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080982A0 - ldrb r0, [r4, 0x10] - bl rbox_fill_rectangle - ldrb r0, [r4, 0x10] - movs r1, 0x1 - bl CopyWindowToVram - movs r0, 0x1 - strh r0, [r4, 0x14] -_080982A0: - movs r0, 0x7 - strh r0, [r4, 0x8] - b _080982E6 -_080982A6: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080982E6 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080982C6 - ldrb r0, [r4, 0x10] - bl RemoveWindow - strh r5, [r4, 0x12] - movs r0, 0x1 - strh r0, [r4, 0x16] -_080982C6: - movs r0, 0x8 - strh r0, [r4, 0x8] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - b _080982E6 -_080982D6: - adds r0, r2, 0 - bl DestroyTask - b _080982E6 -_080982DE: - ldrh r1, [r4, 0xC] - movs r0, 0x12 - bl SetGpuReg -_080982E6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80981AC - - thumb_func_start sub_80982EC -sub_80982EC: @ 80982EC - push {lr} - ldr r0, _08098318 @ =sub_80981AC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08098312 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0809831C @ =gTasks+0x8 - adds r1, r0, r1 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x5 - bgt _08098312 - movs r0, 0x6 - strh r0, [r1] -_08098312: - pop {r0} - bx r0 - .align 2, 0 -_08098318: .4byte sub_80981AC -_0809831C: .4byte gTasks+0x8 - thumb_func_end sub_80982EC - - thumb_func_start sub_8098320 -sub_8098320: @ 8098320 - push {lr} - ldr r0, _0809833C @ =sub_80981AC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xFF - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809833C: .4byte sub_80981AC - thumb_func_end sub_8098320 - - thumb_func_start sub_8098340 -sub_8098340: @ 8098340 - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, _08098378 @ =gUnknown_83D4164 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - movs r6, 0x1D - ldr r0, _0809837C @ =gMapHeader - ldrb r0, [r0, 0x1A] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08098396 - cmp r0, 0x7F - beq _08098384 - ldr r2, [sp] - lsrs r1, r2, 24 - adds r1, 0x5 - lsls r1, 24 - ldr r0, _08098380 @ =0x00ffffff - ands r0, r2 - orrs r0, r1 - str r0, [sp] - movs r6, 0x27 - b _08098396 - .align 2, 0 -_08098378: .4byte gUnknown_83D4164 -_0809837C: .4byte gMapHeader -_08098380: .4byte 0x00ffffff -_08098384: - ldr r2, [sp] - lsrs r1, r2, 24 - adds r1, 0x8 - lsls r1, 24 - ldr r0, _080983B4 @ =0x00ffffff - ands r0, r2 - orrs r0, r1 - str r0, [sp] - movs r6, 0x2D -_08098396: - mov r0, sp - bl AddWindow - lsls r0, 16 - lsrs r5, r0, 16 - cmp r4, 0 - beq _080983B8 - movs r0, 0x3 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - b _080983C6 - .align 2, 0 -_080983B4: .4byte 0x00ffffff -_080983B8: - movs r0, 0x3 - bl stdpal_get - ldr r1, _080983FC @ =gPlttBufferUnfaded + 0x1A0 - movs r2, 0x10 - bl CpuSet -_080983C6: - lsls r4, r5, 24 - lsrs r4, 24 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_814FF6C - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0xD - bl DrawTextBorderOuter - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r5, 0 - bl sub_8098400 - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r5, 0 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080983FC: .4byte gPlttBufferUnfaded + 0x1A0 - thumb_func_end sub_8098340 - - thumb_func_start sub_8098400 -sub_8098400: @ 8098400 - push {r4-r6,lr} - sub sp, 0x28 - lsls r0, 16 - lsrs r6, r0, 16 - movs r5, 0x70 - ldr r4, _08098478 @ =gMapHeader - ldrb r1, [r4, 0x14] - add r0, sp, 0xC - movs r2, 0 - bl GetMapName - adds r2, r0, 0 - movs r0, 0x1A - ldrsb r0, [r4, r0] - cmp r0, 0 - beq _08098434 - adds r1, r0, 0 - adds r0, r2, 0 - bl sub_809847C - movs r0, 0x1A - ldrsb r0, [r4, r0] - movs r5, 0xB0 - cmp r0, 0x7F - beq _08098434 - movs r5, 0x98 -_08098434: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x2 - add r1, sp, 0xC - bl GetStringWidth - adds r4, r0, 0 - subs r4, r5, r4 - lsrs r4, 1 - lsls r5, r6, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x2 - add r2, sp, 0xC - adds r3, r4, 0 - bl AddTextPrinterParameterized - add sp, 0x28 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098478: .4byte gMapHeader - thumb_func_end sub_8098400 - - thumb_func_start sub_809847C -sub_809847C: @ 809847C - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r3, r1, 24 - asrs r1, 24 - cmp r1, 0 - beq _080984D2 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 - cmp r1, 0x7F - bne _080984A4 - ldr r1, _080984A0 @ =gUnknown_841D18D - adds r0, r2, 0 - bl StringCopy - b _080984D2 - .align 2, 0 -_080984A0: .4byte gUnknown_841D18D -_080984A4: - cmp r1, 0 - bge _080984B4 - movs r0, 0xBC - strb r0, [r2] - adds r2, 0x1 - negs r0, r1 - lsls r0, 24 - lsrs r3, r0, 24 -_080984B4: - lsls r1, r3, 24 - asrs r1, 24 - adds r0, r2, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - adds r1, r2, 0 - movs r0, 0xC0 - strb r0, [r2] - adds r2, 0x1 - movs r0, 0xFF - strb r0, [r1, 0x1] - adds r0, r2, 0 -_080984D2: - pop {r1} - bx r1 - thumb_func_end sub_809847C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/overworld.s b/asm/overworld.s index 9b9fe037f..28bcd8ecb 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -1747,7 +1747,7 @@ _080558D4: cmp r0, r1 beq _08055914 movs r0, 0x1 - bl sub_8098110 + bl CreateMapNamePopupIfNotAlreadyRunning _08055914: add sp, 0x4 pop {r4,r5} @@ -3282,7 +3282,7 @@ sub_805644C: @ 805644C bl sub_81127F8 _0805649E: bl ScriptContext2_Enable - bl sub_80982EC + bl DismissMapNamePopup b _080564BA .align 2, 0 _080564A8: .4byte gUnknown_3005E88 @@ -3323,7 +3323,7 @@ sub_80564C8: @ 80564C8 cmp r0, 0x1 bne _0805650C bl ScriptContext2_Enable - bl sub_80982EC + bl DismissMapNamePopup b _08056522 .align 2, 0 _08056508: .4byte gUnknown_3005E90 @@ -3824,7 +3824,7 @@ sub_8056918: @ 8056918 cmp r0, 0x4 bne _0805692C movs r0, 0 - bl sub_8098110 + bl CreateMapNamePopupIfNotAlreadyRunning _0805692C: bl sub_807DF7C pop {r0} @@ -4223,7 +4223,7 @@ _08056CA8: cmp r0, 0x4 bne _08056CCA movs r0, 0 - bl sub_8098110 + bl CreateMapNamePopupIfNotAlreadyRunning b _08056CCA .align 2, 0 _08056CBC: .4byte gMapHeader diff --git a/baserom.ips b/baserom.ips Binary files differindex 07a82d3b0..9bea735dd 100644 --- a/baserom.ips +++ b/baserom.ips diff --git a/data/box_party_pokemon_dropdown.s b/data/box_party_pokemon_dropdown.s index 929aa6ab5..275b53db2 100644 --- a/data/box_party_pokemon_dropdown.s +++ b/data/box_party_pokemon_dropdown.s @@ -7,4 +7,12 @@ .align 2 gUnknown_841F4B4:: @ 841F4B4 - .incbin "baserom.gba", 0x41f4b4, 0x20 + .2byte 0x0100, 0x0100 + .2byte 0x0200, 0x0100 + .2byte 0x0100, 0x0200 + .2byte 0x0200, 0x0200 + + .2byte 0x0080, 0x0080 + .2byte 0x0100, 0x0100 + .2byte 0x0200, 0x0200 + .2byte 0x0400, 0x0400 diff --git a/data/clear_save_data_screen.s b/data/clear_save_data_screen.s index 51149a021..32a2d422a 100644 --- a/data/clear_save_data_screen.s +++ b/data/clear_save_data_screen.s @@ -7,10 +7,24 @@ .align 2 gUnknown_841EE64:: @ 841EE64 - .incbin "baserom.gba", 0x41EE64, 0x4 + .4byte 0x000001f0 + @ { + @ .bg = 0, + @ .charBaseIndex = 0, + @ .mapBaseIndex = 31, + @ .screenSize = 0, + @ .paletteMode = 0, + @ .priority = 0, + @ .baseTile = 0x0000 + @ } gUnknown_841EE68:: @ 841EE68 - .incbin "baserom.gba", 0x41EE68, 0x18 + .byte 0, 3, 5, 6, 4, 15 + .2byte 0x000a + .byte 0, 3, 15, 23, 4, 15 + .2byte 0x0022 + .byte 255, 0, 0, 0, 0, 0 + .2byte 0x0000 gUnknown_841EE80:: @ 841EE80 - .incbin "baserom.gba", 0x41EE80, 0x44 + .byte 0x01, 0x02, 0x03 diff --git a/data/evolution_graphics.s b/data/evolution_graphics.s index 0fd702447..08276557a 100644 --- a/data/evolution_graphics.s +++ b/data/evolution_graphics.s @@ -6,6 +6,9 @@ .section .rodata .align 2 +gUnknown_841EE84:: @ 841EE84 + .incbin "baserom.gba", 0x41EE84, 0x40 + gUnknown_841EEC4:: @ 841EEC4 .incbin "baserom.gba", 0x41EEC4, 0x10 diff --git a/data/field_door.s b/data/field_door.s deleted file mode 100644 index a29cf3e24..000000000 --- a/data/field_door.s +++ /dev/null @@ -1,17 +0,0 @@ - .section .rodata - - .align 2 -gUnknown_835B488:: @ 835B488 - .incbin "baserom.gba", 0x35B488, 0x14 - -gUnknown_835B49C:: @ 835B49C - .incbin "baserom.gba", 0x35B49C, 0x14 - -gUnknown_835B4B0:: @ 835B4B0 - .incbin "baserom.gba", 0x35B4B0, 0x14 - -gUnknown_835B4C4:: @ 835B4C4 - .incbin "baserom.gba", 0x35B4C4, 0x114 - -gUnknown_835B5D8:: @ 835B5D8 - .incbin "baserom.gba", 0x35B5D8, 0x18C diff --git a/data/field_tasks.s b/data/field_tasks.s index a91e6cec9..2ff9ad215 100644 --- a/data/field_tasks.s +++ b/data/field_tasks.s @@ -1,7 +1,22 @@ .section .rodata .align 2 gUnknown_83A7310:: @ 83A7310 - .incbin "baserom.gba", 0x3A7310, 0x20 + .4byte nullsub_40 + .4byte sub_806EB54 + .4byte nullsub_40 + .4byte nullsub_40 + .4byte sub_806E9E0 + .4byte nullsub_40 + .4byte nullsub_40 + .4byte sub_806EC40 gUnknown_83A7330:: @ 83A7330 - .incbin "baserom.gba", 0x3A7330, 0x14 + .byte 0x08, 0x03 + .byte 0x0a, 0x05 + .byte 0x0f, 0x05 + .byte 0x08, 0x09 + .byte 0x09, 0x09 + .byte 0x10, 0x09 + .byte 0x08, 0x0a + .byte 0x09, 0x0a + .byte 0x08, 0x0e diff --git a/data/item_use.s b/data/item_use.s deleted file mode 100644 index aa78ac919..000000000 --- a/data/item_use.s +++ /dev/null @@ -1,15 +0,0 @@ -#include "constants/maps.h" -#include "constants/species.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - - .incbin "baserom.gba", 0x3E27B4, 0x1A0 - -gUnknown_83E2954:: @ 83E2954 - .4byte sub_8124C8C - .4byte CB2_ReturnToField - .4byte NULL - .4byte NULL diff --git a/data/map_name_popup.s b/data/map_name_popup.s deleted file mode 100644 index 6509df895..000000000 --- a/data/map_name_popup.s +++ /dev/null @@ -1,10 +0,0 @@ -#include "constants/maps.h" -#include "constants/species.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnknown_83D4164:: @ 83D4164 - .incbin "baserom.gba", 0x3D4164, 0x8 diff --git a/data/metatile_behavior.s b/data/metatile_behavior.s deleted file mode 100644 index 64d88840d..000000000 --- a/data/metatile_behavior.s +++ /dev/null @@ -1,6 +0,0 @@ - .section .rodata - - .align 2 - -gUnknown_8353068:: @ 8353068 - .incbin "baserom.gba", 0x353068, 0x8420 diff --git a/data/save_failed_screen.s b/data/save_failed_screen.s index cdf68c4de..e19763962 100644 --- a/data/save_failed_screen.s +++ b/data/save_failed_screen.s @@ -7,4 +7,4 @@ .align 2 gUnknown_841EE44:: @ 841EE44 - .incbin "baserom.gba", 0x41EE44, 0x20 + .incbin "graphics/interface/save_failed_screen.gbapal" diff --git a/graphics/door_anims/frame_8353088_1.png b/graphics/door_anims/frame_8353088_1.png Binary files differnew file mode 100644 index 000000000..e831eda38 --- /dev/null +++ b/graphics/door_anims/frame_8353088_1.png diff --git a/graphics/door_anims/frame_8353088_2.png b/graphics/door_anims/frame_8353088_2.png Binary files differnew file mode 100644 index 000000000..981aaa7fd --- /dev/null +++ b/graphics/door_anims/frame_8353088_2.png diff --git a/graphics/door_anims/frame_8353088_3.png b/graphics/door_anims/frame_8353088_3.png Binary files differnew file mode 100644 index 000000000..a4edcdc0b --- /dev/null +++ b/graphics/door_anims/frame_8353088_3.png diff --git a/graphics/door_anims/frame_8353228_1.png b/graphics/door_anims/frame_8353228_1.png Binary files differnew file mode 100644 index 000000000..2f7b80495 --- /dev/null +++ b/graphics/door_anims/frame_8353228_1.png diff --git a/graphics/door_anims/frame_8353228_2.png b/graphics/door_anims/frame_8353228_2.png Binary files differnew file mode 100644 index 000000000..d603dd800 --- /dev/null +++ b/graphics/door_anims/frame_8353228_2.png diff --git a/graphics/door_anims/frame_8353228_3.png b/graphics/door_anims/frame_8353228_3.png Binary files differnew file mode 100644 index 000000000..97a87ea4c --- /dev/null +++ b/graphics/door_anims/frame_8353228_3.png diff --git a/graphics/door_anims/frame_83533C8_1.png b/graphics/door_anims/frame_83533C8_1.png Binary files differnew file mode 100644 index 000000000..4ce6b79ed --- /dev/null +++ b/graphics/door_anims/frame_83533C8_1.png diff --git a/graphics/door_anims/frame_83533C8_2.png b/graphics/door_anims/frame_83533C8_2.png Binary files differnew file mode 100644 index 000000000..8f668959e --- /dev/null +++ b/graphics/door_anims/frame_83533C8_2.png diff --git a/graphics/door_anims/frame_83533C8_3.png b/graphics/door_anims/frame_83533C8_3.png Binary files differnew file mode 100644 index 000000000..97a87ea4c --- /dev/null +++ b/graphics/door_anims/frame_83533C8_3.png diff --git a/graphics/door_anims/frame_8353568_1.png b/graphics/door_anims/frame_8353568_1.png Binary files differnew file mode 100644 index 000000000..5fde23141 --- /dev/null +++ b/graphics/door_anims/frame_8353568_1.png diff --git a/graphics/door_anims/frame_8353568_2.png b/graphics/door_anims/frame_8353568_2.png Binary files differnew file mode 100644 index 000000000..93b6e18f5 --- /dev/null +++ b/graphics/door_anims/frame_8353568_2.png diff --git a/graphics/door_anims/frame_8353568_3.png b/graphics/door_anims/frame_8353568_3.png Binary files differnew file mode 100644 index 000000000..a4edcdc0b --- /dev/null +++ b/graphics/door_anims/frame_8353568_3.png diff --git a/graphics/door_anims/frame_8353708_1.png b/graphics/door_anims/frame_8353708_1.png Binary files differnew file mode 100644 index 000000000..e56c2f31e --- /dev/null +++ b/graphics/door_anims/frame_8353708_1.png diff --git a/graphics/door_anims/frame_8353708_2.png b/graphics/door_anims/frame_8353708_2.png Binary files differnew file mode 100644 index 000000000..e1f7d5272 --- /dev/null +++ b/graphics/door_anims/frame_8353708_2.png diff --git a/graphics/door_anims/frame_8353708_3.png b/graphics/door_anims/frame_8353708_3.png Binary files differnew file mode 100644 index 000000000..a4edcdc0b --- /dev/null +++ b/graphics/door_anims/frame_8353708_3.png diff --git a/graphics/door_anims/frame_83538A8_1.png b/graphics/door_anims/frame_83538A8_1.png Binary files differnew file mode 100644 index 000000000..117acac1d --- /dev/null +++ b/graphics/door_anims/frame_83538A8_1.png diff --git a/graphics/door_anims/frame_83538A8_2.png b/graphics/door_anims/frame_83538A8_2.png Binary files differnew file mode 100644 index 000000000..58aa0d456 --- /dev/null +++ b/graphics/door_anims/frame_83538A8_2.png diff --git a/graphics/door_anims/frame_83538A8_3.png b/graphics/door_anims/frame_83538A8_3.png Binary files differnew file mode 100644 index 000000000..a9f2c98f5 --- /dev/null +++ b/graphics/door_anims/frame_83538A8_3.png diff --git a/graphics/door_anims/frame_8353A48_1.png b/graphics/door_anims/frame_8353A48_1.png Binary files differnew file mode 100644 index 000000000..5ea623f10 --- /dev/null +++ b/graphics/door_anims/frame_8353A48_1.png diff --git a/graphics/door_anims/frame_8353A48_2.png b/graphics/door_anims/frame_8353A48_2.png Binary files differnew file mode 100644 index 000000000..dba5c1935 --- /dev/null +++ b/graphics/door_anims/frame_8353A48_2.png diff --git a/graphics/door_anims/frame_8353A48_3.png b/graphics/door_anims/frame_8353A48_3.png Binary files differnew file mode 100644 index 000000000..a4edcdc0b --- /dev/null +++ b/graphics/door_anims/frame_8353A48_3.png diff --git a/graphics/door_anims/frame_8353BE8_1.png b/graphics/door_anims/frame_8353BE8_1.png Binary files differnew file mode 100644 index 000000000..3b8a60396 --- /dev/null +++ b/graphics/door_anims/frame_8353BE8_1.png diff --git a/graphics/door_anims/frame_8353BE8_2.png b/graphics/door_anims/frame_8353BE8_2.png Binary files differnew file mode 100644 index 000000000..ac557a4ea --- /dev/null +++ b/graphics/door_anims/frame_8353BE8_2.png diff --git a/graphics/door_anims/frame_8353BE8_3.png b/graphics/door_anims/frame_8353BE8_3.png Binary files differnew file mode 100644 index 000000000..de5e8c356 --- /dev/null +++ b/graphics/door_anims/frame_8353BE8_3.png diff --git a/graphics/door_anims/frame_8353D88_1.png b/graphics/door_anims/frame_8353D88_1.png Binary files differnew file mode 100644 index 000000000..37d7e78da --- /dev/null +++ b/graphics/door_anims/frame_8353D88_1.png diff --git a/graphics/door_anims/frame_8353D88_2.png b/graphics/door_anims/frame_8353D88_2.png Binary files differnew file mode 100644 index 000000000..405f027b0 --- /dev/null +++ b/graphics/door_anims/frame_8353D88_2.png diff --git a/graphics/door_anims/frame_8353D88_3.png b/graphics/door_anims/frame_8353D88_3.png Binary files differnew file mode 100644 index 000000000..052c55606 --- /dev/null +++ b/graphics/door_anims/frame_8353D88_3.png diff --git a/graphics/door_anims/frame_8353F28_1.png b/graphics/door_anims/frame_8353F28_1.png Binary files differnew file mode 100644 index 000000000..379003d13 --- /dev/null +++ b/graphics/door_anims/frame_8353F28_1.png diff --git a/graphics/door_anims/frame_8353F28_2.png b/graphics/door_anims/frame_8353F28_2.png Binary files differnew file mode 100644 index 000000000..2337f80df --- /dev/null +++ b/graphics/door_anims/frame_8353F28_2.png diff --git a/graphics/door_anims/frame_8353F28_3.png b/graphics/door_anims/frame_8353F28_3.png Binary files differnew file mode 100644 index 000000000..97a87ea4c --- /dev/null +++ b/graphics/door_anims/frame_8353F28_3.png diff --git a/graphics/door_anims/frame_83540C8_1.png b/graphics/door_anims/frame_83540C8_1.png Binary files differnew file mode 100644 index 000000000..5c582fbf0 --- /dev/null +++ b/graphics/door_anims/frame_83540C8_1.png diff --git a/graphics/door_anims/frame_83540C8_2.png b/graphics/door_anims/frame_83540C8_2.png Binary files differnew file mode 100644 index 000000000..b23db61c5 --- /dev/null +++ b/graphics/door_anims/frame_83540C8_2.png diff --git a/graphics/door_anims/frame_83540C8_3.png b/graphics/door_anims/frame_83540C8_3.png Binary files differnew file mode 100644 index 000000000..8870077b3 --- /dev/null +++ b/graphics/door_anims/frame_83540C8_3.png diff --git a/graphics/door_anims/frame_8354268_1.png b/graphics/door_anims/frame_8354268_1.png Binary files differnew file mode 100644 index 000000000..5a09abac0 --- /dev/null +++ b/graphics/door_anims/frame_8354268_1.png diff --git a/graphics/door_anims/frame_8354268_2.png b/graphics/door_anims/frame_8354268_2.png Binary files differnew file mode 100644 index 000000000..e46d8b0af --- /dev/null +++ b/graphics/door_anims/frame_8354268_2.png diff --git a/graphics/door_anims/frame_8354268_3.png b/graphics/door_anims/frame_8354268_3.png Binary files differnew file mode 100644 index 000000000..97a87ea4c --- /dev/null +++ b/graphics/door_anims/frame_8354268_3.png diff --git a/graphics/door_anims/frame_8354408_1.png b/graphics/door_anims/frame_8354408_1.png Binary files differnew file mode 100644 index 000000000..680c715fb --- /dev/null +++ b/graphics/door_anims/frame_8354408_1.png diff --git a/graphics/door_anims/frame_8354408_2.png b/graphics/door_anims/frame_8354408_2.png Binary files differnew file mode 100644 index 000000000..a6014c89f --- /dev/null +++ b/graphics/door_anims/frame_8354408_2.png diff --git a/graphics/door_anims/frame_8354408_3.png b/graphics/door_anims/frame_8354408_3.png Binary files differnew file mode 100644 index 000000000..c3a852e27 --- /dev/null +++ b/graphics/door_anims/frame_8354408_3.png diff --git a/graphics/door_anims/frame_83545A8_1.png b/graphics/door_anims/frame_83545A8_1.png Binary files differnew file mode 100644 index 000000000..46de34aaf --- /dev/null +++ b/graphics/door_anims/frame_83545A8_1.png diff --git a/graphics/door_anims/frame_83545A8_2.png b/graphics/door_anims/frame_83545A8_2.png Binary files differnew file mode 100644 index 000000000..1ca78103b --- /dev/null +++ b/graphics/door_anims/frame_83545A8_2.png diff --git a/graphics/door_anims/frame_83545A8_3.png b/graphics/door_anims/frame_83545A8_3.png Binary files differnew file mode 100644 index 000000000..f2de21913 --- /dev/null +++ b/graphics/door_anims/frame_83545A8_3.png diff --git a/graphics/door_anims/frame_8354748_1.png b/graphics/door_anims/frame_8354748_1.png Binary files differnew file mode 100644 index 000000000..fb3d4bbcd --- /dev/null +++ b/graphics/door_anims/frame_8354748_1.png diff --git a/graphics/door_anims/frame_8354748_2.png b/graphics/door_anims/frame_8354748_2.png Binary files differnew file mode 100644 index 000000000..f6b3644b8 --- /dev/null +++ b/graphics/door_anims/frame_8354748_2.png diff --git a/graphics/door_anims/frame_8354748_3.png b/graphics/door_anims/frame_8354748_3.png Binary files differnew file mode 100644 index 000000000..eec2567a1 --- /dev/null +++ b/graphics/door_anims/frame_8354748_3.png diff --git a/graphics/door_anims/frame_83548E8_1.png b/graphics/door_anims/frame_83548E8_1.png Binary files differnew file mode 100644 index 000000000..22566a901 --- /dev/null +++ b/graphics/door_anims/frame_83548E8_1.png diff --git a/graphics/door_anims/frame_83548E8_2.png b/graphics/door_anims/frame_83548E8_2.png Binary files differnew file mode 100644 index 000000000..35f772671 --- /dev/null +++ b/graphics/door_anims/frame_83548E8_2.png diff --git a/graphics/door_anims/frame_83548E8_3.png b/graphics/door_anims/frame_83548E8_3.png Binary files differnew file mode 100644 index 000000000..226fe6bb0 --- /dev/null +++ b/graphics/door_anims/frame_83548E8_3.png diff --git a/graphics/door_anims/frame_8354A88_1.png b/graphics/door_anims/frame_8354A88_1.png Binary files differnew file mode 100644 index 000000000..157c348a8 --- /dev/null +++ b/graphics/door_anims/frame_8354A88_1.png diff --git a/graphics/door_anims/frame_8354A88_2.png b/graphics/door_anims/frame_8354A88_2.png Binary files differnew file mode 100644 index 000000000..72e919a2d --- /dev/null +++ b/graphics/door_anims/frame_8354A88_2.png diff --git a/graphics/door_anims/frame_8354A88_3.png b/graphics/door_anims/frame_8354A88_3.png Binary files differnew file mode 100644 index 000000000..e5c635d9c --- /dev/null +++ b/graphics/door_anims/frame_8354A88_3.png diff --git a/graphics/door_anims/frame_8354C28_1.png b/graphics/door_anims/frame_8354C28_1.png Binary files differnew file mode 100644 index 000000000..cd6285a64 --- /dev/null +++ b/graphics/door_anims/frame_8354C28_1.png diff --git a/graphics/door_anims/frame_8354C28_2.png b/graphics/door_anims/frame_8354C28_2.png Binary files differnew file mode 100644 index 000000000..11a1c36e0 --- /dev/null +++ b/graphics/door_anims/frame_8354C28_2.png diff --git a/graphics/door_anims/frame_8354C28_3.png b/graphics/door_anims/frame_8354C28_3.png Binary files differnew file mode 100644 index 000000000..c0d626d06 --- /dev/null +++ b/graphics/door_anims/frame_8354C28_3.png diff --git a/graphics/door_anims/frame_8354F48_1.png b/graphics/door_anims/frame_8354F48_1.png Binary files differnew file mode 100644 index 000000000..a1e6eace1 --- /dev/null +++ b/graphics/door_anims/frame_8354F48_1.png diff --git a/graphics/door_anims/frame_8354F48_2.png b/graphics/door_anims/frame_8354F48_2.png Binary files differnew file mode 100644 index 000000000..dd1e0e15c --- /dev/null +++ b/graphics/door_anims/frame_8354F48_2.png diff --git a/graphics/door_anims/frame_8354F48_3.png b/graphics/door_anims/frame_8354F48_3.png Binary files differnew file mode 100644 index 000000000..cf7978637 --- /dev/null +++ b/graphics/door_anims/frame_8354F48_3.png diff --git a/graphics/door_anims/frame_8355268_1.png b/graphics/door_anims/frame_8355268_1.png Binary files differnew file mode 100644 index 000000000..d752d94ef --- /dev/null +++ b/graphics/door_anims/frame_8355268_1.png diff --git a/graphics/door_anims/frame_8355268_2.png b/graphics/door_anims/frame_8355268_2.png Binary files differnew file mode 100644 index 000000000..237c46cb9 --- /dev/null +++ b/graphics/door_anims/frame_8355268_2.png diff --git a/graphics/door_anims/frame_8355268_3.png b/graphics/door_anims/frame_8355268_3.png Binary files differnew file mode 100644 index 000000000..19a595cd0 --- /dev/null +++ b/graphics/door_anims/frame_8355268_3.png diff --git a/graphics/door_anims/frame_8355588_1.png b/graphics/door_anims/frame_8355588_1.png Binary files differnew file mode 100644 index 000000000..b8ee1eb42 --- /dev/null +++ b/graphics/door_anims/frame_8355588_1.png diff --git a/graphics/door_anims/frame_8355588_2.png b/graphics/door_anims/frame_8355588_2.png Binary files differnew file mode 100644 index 000000000..fff93e91a --- /dev/null +++ b/graphics/door_anims/frame_8355588_2.png diff --git a/graphics/door_anims/frame_8355588_3.png b/graphics/door_anims/frame_8355588_3.png Binary files differnew file mode 100644 index 000000000..0c1b9c03c --- /dev/null +++ b/graphics/door_anims/frame_8355588_3.png diff --git a/graphics/door_anims/frame_8359588_1.png b/graphics/door_anims/frame_8359588_1.png Binary files differnew file mode 100644 index 000000000..53732f512 --- /dev/null +++ b/graphics/door_anims/frame_8359588_1.png diff --git a/graphics/door_anims/frame_8359588_2.png b/graphics/door_anims/frame_8359588_2.png Binary files differnew file mode 100644 index 000000000..53732f512 --- /dev/null +++ b/graphics/door_anims/frame_8359588_2.png diff --git a/graphics/door_anims/frame_8359788_1.png b/graphics/door_anims/frame_8359788_1.png Binary files differnew file mode 100644 index 000000000..8f1168aea --- /dev/null +++ b/graphics/door_anims/frame_8359788_1.png diff --git a/graphics/door_anims/frame_8359788_2.png b/graphics/door_anims/frame_8359788_2.png Binary files differnew file mode 100644 index 000000000..041e6293f --- /dev/null +++ b/graphics/door_anims/frame_8359788_2.png diff --git a/graphics/door_anims/frame_8359788_3.png b/graphics/door_anims/frame_8359788_3.png Binary files differnew file mode 100644 index 000000000..f103be5a1 --- /dev/null +++ b/graphics/door_anims/frame_8359788_3.png diff --git a/graphics/door_anims/frame_8359788_4.png b/graphics/door_anims/frame_8359788_4.png Binary files differnew file mode 100644 index 000000000..36f6cf135 --- /dev/null +++ b/graphics/door_anims/frame_8359788_4.png diff --git a/graphics/door_anims/frame_8359988_1.png b/graphics/door_anims/frame_8359988_1.png Binary files differnew file mode 100644 index 000000000..75a43b9fb --- /dev/null +++ b/graphics/door_anims/frame_8359988_1.png diff --git a/graphics/door_anims/frame_8359988_2.png b/graphics/door_anims/frame_8359988_2.png Binary files differnew file mode 100644 index 000000000..a1f6f806c --- /dev/null +++ b/graphics/door_anims/frame_8359988_2.png diff --git a/graphics/door_anims/frame_8359988_3.png b/graphics/door_anims/frame_8359988_3.png Binary files differnew file mode 100644 index 000000000..d7abc49ba --- /dev/null +++ b/graphics/door_anims/frame_8359988_3.png diff --git a/graphics/door_anims/frame_8359988_4.png b/graphics/door_anims/frame_8359988_4.png Binary files differnew file mode 100644 index 000000000..1af99db23 --- /dev/null +++ b/graphics/door_anims/frame_8359988_4.png diff --git a/graphics/door_anims/frame_8359B88_1.png b/graphics/door_anims/frame_8359B88_1.png Binary files differnew file mode 100644 index 000000000..a5208db18 --- /dev/null +++ b/graphics/door_anims/frame_8359B88_1.png diff --git a/graphics/door_anims/frame_8359B88_2.png b/graphics/door_anims/frame_8359B88_2.png Binary files differnew file mode 100644 index 000000000..e3ecef0fe --- /dev/null +++ b/graphics/door_anims/frame_8359B88_2.png diff --git a/graphics/door_anims/frame_8359B88_3.png b/graphics/door_anims/frame_8359B88_3.png Binary files differnew file mode 100644 index 000000000..d4be7a81f --- /dev/null +++ b/graphics/door_anims/frame_8359B88_3.png diff --git a/graphics/door_anims/frame_8359B88_4.png b/graphics/door_anims/frame_8359B88_4.png Binary files differnew file mode 100644 index 000000000..4ba80f998 --- /dev/null +++ b/graphics/door_anims/frame_8359B88_4.png diff --git a/graphics/door_anims/frame_8359CA8_1.png b/graphics/door_anims/frame_8359CA8_1.png Binary files differnew file mode 100644 index 000000000..c0913878b --- /dev/null +++ b/graphics/door_anims/frame_8359CA8_1.png diff --git a/graphics/door_anims/frame_8359CA8_2.png b/graphics/door_anims/frame_8359CA8_2.png Binary files differnew file mode 100644 index 000000000..800bb92c4 --- /dev/null +++ b/graphics/door_anims/frame_8359CA8_2.png diff --git a/graphics/door_anims/frame_8359CA8_3.png b/graphics/door_anims/frame_8359CA8_3.png Binary files differnew file mode 100644 index 000000000..e2f16ef25 --- /dev/null +++ b/graphics/door_anims/frame_8359CA8_3.png diff --git a/graphics/door_anims/frame_8359FC8_1.png b/graphics/door_anims/frame_8359FC8_1.png Binary files differnew file mode 100644 index 000000000..9428b111a --- /dev/null +++ b/graphics/door_anims/frame_8359FC8_1.png diff --git a/graphics/door_anims/frame_8359FC8_2.png b/graphics/door_anims/frame_8359FC8_2.png Binary files differnew file mode 100644 index 000000000..484eefd83 --- /dev/null +++ b/graphics/door_anims/frame_8359FC8_2.png diff --git a/graphics/door_anims/frame_8359FC8_3.png b/graphics/door_anims/frame_8359FC8_3.png Binary files differnew file mode 100644 index 000000000..467c04f7f --- /dev/null +++ b/graphics/door_anims/frame_8359FC8_3.png diff --git a/graphics/door_anims/frame_835A168_1.png b/graphics/door_anims/frame_835A168_1.png Binary files differnew file mode 100644 index 000000000..f23474512 --- /dev/null +++ b/graphics/door_anims/frame_835A168_1.png diff --git a/graphics/door_anims/frame_835A168_2.png b/graphics/door_anims/frame_835A168_2.png Binary files differnew file mode 100644 index 000000000..adcb7ce12 --- /dev/null +++ b/graphics/door_anims/frame_835A168_2.png diff --git a/graphics/door_anims/frame_835A168_3.png b/graphics/door_anims/frame_835A168_3.png Binary files differnew file mode 100644 index 000000000..e87798cd2 --- /dev/null +++ b/graphics/door_anims/frame_835A168_3.png diff --git a/graphics/door_anims/frame_835A308_1.png b/graphics/door_anims/frame_835A308_1.png Binary files differnew file mode 100644 index 000000000..c11c06156 --- /dev/null +++ b/graphics/door_anims/frame_835A308_1.png diff --git a/graphics/door_anims/frame_835A308_2.png b/graphics/door_anims/frame_835A308_2.png Binary files differnew file mode 100644 index 000000000..3d825f587 --- /dev/null +++ b/graphics/door_anims/frame_835A308_2.png diff --git a/graphics/door_anims/frame_835A308_3.png b/graphics/door_anims/frame_835A308_3.png Binary files differnew file mode 100644 index 000000000..e87798cd2 --- /dev/null +++ b/graphics/door_anims/frame_835A308_3.png diff --git a/graphics/door_anims/frame_835A4A8_1.png b/graphics/door_anims/frame_835A4A8_1.png Binary files differnew file mode 100644 index 000000000..9428b111a --- /dev/null +++ b/graphics/door_anims/frame_835A4A8_1.png diff --git a/graphics/door_anims/frame_835A4A8_2.png b/graphics/door_anims/frame_835A4A8_2.png Binary files differnew file mode 100644 index 000000000..484eefd83 --- /dev/null +++ b/graphics/door_anims/frame_835A4A8_2.png diff --git a/graphics/door_anims/frame_835A4A8_3.png b/graphics/door_anims/frame_835A4A8_3.png Binary files differnew file mode 100644 index 000000000..467c04f7f --- /dev/null +++ b/graphics/door_anims/frame_835A4A8_3.png diff --git a/graphics/door_anims/frame_835A648_1.png b/graphics/door_anims/frame_835A648_1.png Binary files differnew file mode 100644 index 000000000..7cac61ead --- /dev/null +++ b/graphics/door_anims/frame_835A648_1.png diff --git a/graphics/door_anims/frame_835A648_2.png b/graphics/door_anims/frame_835A648_2.png Binary files differnew file mode 100644 index 000000000..618b958b9 --- /dev/null +++ b/graphics/door_anims/frame_835A648_2.png diff --git a/graphics/door_anims/frame_835A648_3.png b/graphics/door_anims/frame_835A648_3.png Binary files differnew file mode 100644 index 000000000..28942389b --- /dev/null +++ b/graphics/door_anims/frame_835A648_3.png diff --git a/graphics/door_anims/frame_835A7E8_1.png b/graphics/door_anims/frame_835A7E8_1.png Binary files differnew file mode 100644 index 000000000..2b51bba5f --- /dev/null +++ b/graphics/door_anims/frame_835A7E8_1.png diff --git a/graphics/door_anims/frame_835A7E8_2.png b/graphics/door_anims/frame_835A7E8_2.png Binary files differnew file mode 100644 index 000000000..b29303c1b --- /dev/null +++ b/graphics/door_anims/frame_835A7E8_2.png diff --git a/graphics/door_anims/frame_835A7E8_3.png b/graphics/door_anims/frame_835A7E8_3.png Binary files differnew file mode 100644 index 000000000..55e1b2db9 --- /dev/null +++ b/graphics/door_anims/frame_835A7E8_3.png diff --git a/graphics/door_anims/frame_835A988_1.png b/graphics/door_anims/frame_835A988_1.png Binary files differnew file mode 100644 index 000000000..9428b111a --- /dev/null +++ b/graphics/door_anims/frame_835A988_1.png diff --git a/graphics/door_anims/frame_835A988_2.png b/graphics/door_anims/frame_835A988_2.png Binary files differnew file mode 100644 index 000000000..484eefd83 --- /dev/null +++ b/graphics/door_anims/frame_835A988_2.png diff --git a/graphics/door_anims/frame_835A988_3.png b/graphics/door_anims/frame_835A988_3.png Binary files differnew file mode 100644 index 000000000..467c04f7f --- /dev/null +++ b/graphics/door_anims/frame_835A988_3.png diff --git a/graphics/door_anims/frame_835AB28_1.png b/graphics/door_anims/frame_835AB28_1.png Binary files differnew file mode 100644 index 000000000..73f90730c --- /dev/null +++ b/graphics/door_anims/frame_835AB28_1.png diff --git a/graphics/door_anims/frame_835AB28_2.png b/graphics/door_anims/frame_835AB28_2.png Binary files differnew file mode 100644 index 000000000..6d8d9c305 --- /dev/null +++ b/graphics/door_anims/frame_835AB28_2.png diff --git a/graphics/door_anims/frame_835AB28_3.png b/graphics/door_anims/frame_835AB28_3.png Binary files differnew file mode 100644 index 000000000..b3d9eada1 --- /dev/null +++ b/graphics/door_anims/frame_835AB28_3.png diff --git a/graphics/door_anims/frame_835AE48_1.png b/graphics/door_anims/frame_835AE48_1.png Binary files differnew file mode 100644 index 000000000..6d9956306 --- /dev/null +++ b/graphics/door_anims/frame_835AE48_1.png diff --git a/graphics/door_anims/frame_835AE48_2.png b/graphics/door_anims/frame_835AE48_2.png Binary files differnew file mode 100644 index 000000000..62b93f79e --- /dev/null +++ b/graphics/door_anims/frame_835AE48_2.png diff --git a/graphics/door_anims/frame_835AE48_3.png b/graphics/door_anims/frame_835AE48_3.png Binary files differnew file mode 100644 index 000000000..a98073235 --- /dev/null +++ b/graphics/door_anims/frame_835AE48_3.png diff --git a/graphics/door_anims/frame_835B168_1.png b/graphics/door_anims/frame_835B168_1.png Binary files differnew file mode 100644 index 000000000..7c75282d6 --- /dev/null +++ b/graphics/door_anims/frame_835B168_1.png diff --git a/graphics/door_anims/frame_835B168_2.png b/graphics/door_anims/frame_835B168_2.png Binary files differnew file mode 100644 index 000000000..283aceba5 --- /dev/null +++ b/graphics/door_anims/frame_835B168_2.png diff --git a/graphics/door_anims/frame_835B168_3.png b/graphics/door_anims/frame_835B168_3.png Binary files differnew file mode 100644 index 000000000..457a26c29 --- /dev/null +++ b/graphics/door_anims/frame_835B168_3.png diff --git a/graphics/interface/save_failed_screen.pal b/graphics/interface/save_failed_screen.pal new file mode 100644 index 000000000..f7932450f --- /dev/null +++ b/graphics/interface/save_failed_screen.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +16 115 230 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +0 0 0 +74 205 238 +49 164 238 +0 90 131 +24 98 197 +16 115 230 diff --git a/include/field_camera.h b/include/field_camera.h index d2165780a..fb9861014 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -30,5 +30,6 @@ void sub_805A658(s16 *x, s16 *y); void SetCameraPanningCallback(void (*cb)(void)); void SetCameraPanning(s16 x, s16 y); void InstallCameraPanAheadCallback(void); +void DrawDoorMetatileAt(int x, int y, const u16 *data); #endif //GUARD_FIELD_CAMERA_H diff --git a/include/field_door.h b/include/field_door.h index 0059cbe1a..777afffce 100644 --- a/include/field_door.h +++ b/include/field_door.h @@ -3,11 +3,11 @@ #include "global.h" -void FieldSetDoorOpened(u32, u32); -void FieldSetDoorClosed(u32, u32); -s8 FieldAnimateDoorClose(u32, u32); -s8 FieldAnimateDoorOpen(u32, u32); +void FieldSetDoorOpened(int x, int y); +void FieldSetDoorClosed(int x, int y); +s8 FieldAnimateDoorClose(int x, int y); +s8 FieldAnimateDoorOpen(int x, int y); bool8 FieldIsDoorAnimationRunning(void); -u32 GetDoorSoundEffect(u32 x, u32 y); +u16 GetDoorSoundEffect(int x, int y); #endif diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index c0f25fa93..70e806266 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -163,7 +163,7 @@ struct MapHeader /* 0x17 */ u8 mapType; /* 0x18 */ u8 filler_18; /* 0x19 */ u8 escapeRope; - /* 0x1A */ u8 flags; + /* 0x1A */ s8 flags; /* 0x1B */ u8 battleType; }; diff --git a/include/map_name_popup.h b/include/map_name_popup.h index cf9b005d9..c8ce02c30 100644 --- a/include/map_name_popup.h +++ b/include/map_name_popup.h @@ -3,12 +3,6 @@ #include "global.h" -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations -void HideMapNamePopUpWindow(void); -void sub_8098110(u8); +void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer); #endif //GUARD_MAP_NAME_POPUP_H diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index df03001bf..d567ab77c 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -151,6 +151,5 @@ bool8 MetatileBehavior_IsImpressiveMachine(u8 metatileBehavior); bool8 MetatileBehavior_IsVideoGame(u8 metatileBehavior); bool8 MetatileBehavior_IsBurglary(u8 metatileBehavior); bool8 MetatileBehavior_IsMBA3(u8 metatileBehavior); -extern u8 gUnknown_8353068[]; #endif // GUARD_METATILE_BEHAVIOR diff --git a/include/strings.h b/include/strings.h index f39f4f553..6ad76e2fa 100644 --- a/include/strings.h +++ b/include/strings.h @@ -735,4 +735,10 @@ extern const u8 gText_WhichMoveShouldBeForgotten[]; extern const u8 gText_TeachMoveQues[]; extern const u8 gText_GiveUpTryingToTeachNewMove[]; +// pokemon_size_record +extern const u8 gText_DecimalPoint[]; + +// map_name_popup +extern const u8 gUnknown_841D18D[]; + #endif //GUARD_STRINGS_H diff --git a/include/text_window.h b/include/text_window.h index c1463a9c7..8e8466145 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -29,5 +29,6 @@ void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette); void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset); void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx); void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx); +void sub_814FF6C(u8 windowId, u16 destOffset); #endif // GUARD_TEXT_WINDOW_H diff --git a/ld_script.txt b/ld_script.txt index d40c88c0a..d84a70c7a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -93,7 +93,7 @@ SECTIONS { src/fieldmap.o(.text); src/metatile_behavior.o(.text); asm/field_camera.o(.text); - asm/field_door.o(.text); + src/field_door.o(.text); asm/field_player_avatar.o(.text); asm/field_map_obj.o(.text); asm/field_ground_effect.o(.text); @@ -136,7 +136,7 @@ SECTIONS { asm/script_movement.o(.text); asm/fldeff_cut.o(.text); src/mail_data.o(.text); - asm/map_name_popup.o(.text); + src/map_name_popup.o(.text); src/item_menu_icons.o(.text); src/battle_anim_mon_movement.o(.text); src/item.o(.text); @@ -408,8 +408,7 @@ SECTIONS { data/maps.o(.rodata); src/fieldmap.o(.rodata); src/metatile_behavior.o(.rodata); - data/metatile_behavior.o(.rodata); - data/field_door.o(.rodata); + src/field_door.o(.rodata); data/field_player_avatar.o(.rodata); data/field_map_obj.o(.rodata); data/field_ground_effect.o(.rodata); @@ -438,7 +437,7 @@ SECTIONS { data/pokemon_storage_system.o(.rodata); src/pokemon_icon.o(.rodata); data/fldeff_cut.o(.rodata); - data/map_name_popup.o(.rodata); + src/map_name_popup.o(.rodata); src/item_menu_icons.o(.rodata); src/battle_anim_mon_movement.o(.rodata); src/item.o(.rodata); @@ -447,7 +446,7 @@ SECTIONS { src/script_menu.o(.rodata); data/naming_screen.o(.rodata); src/pokemon_size_record.o(.rodata); - data/item_use.o(.rodata); + src/item_use.o(.rodata); data/battle_anim_effects_misc.o(.rodata); src/flying.o(.rodata); src/psychic.o(.rodata); diff --git a/src/field_door.c b/src/field_door.c new file mode 100644 index 000000000..cbf7a79ea --- /dev/null +++ b/src/field_door.c @@ -0,0 +1,537 @@ +#include "global.h" +#include "field_camera.h" +#include "task.h" +#include "fieldmap.h" +#include "metatile_behavior.h" +#include "constants/songs.h" + +struct DoorAnimFrame +{ + u8 duration; + u16 tile; +}; + +struct DoorGraphics +{ + u16 metatileId; + s8 sliding; + u8 size; + const u8 * tiles; + const u8 * palettes; +}; + +static void DrawDoorDefaultImage(const struct DoorGraphics * gfx, int x, int y); +static void LoadDoorFrameTiles(const u8 *a0); +static void SetDoorFramePalettes(const struct DoorGraphics * gfx, int x, int y, const u8 *a3); +static void BufferDoorFrameTilesWithPalettes(u16 *a0, u16 a1, const u8 *a2); +static bool32 PlayDoorAnimationFrame(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, s16 *data); +static const struct DoorAnimFrame * SeekToEndOfDoorAnim(const struct DoorAnimFrame * frames); +static s8 GetDoorOpenType(const struct DoorGraphics * gfx, int x, int y); + +static const u8 gUnknown_8353088[] = INCBIN_U8("graphics/door_anims/frame_8353088_1.4bpp", "graphics/door_anims/frame_8353088_2.4bpp", "graphics/door_anims/frame_8353088_3.4bpp"); +static const u8 gUnknown_8353208[32] = {}; +static const u8 gUnknown_8353228[] = INCBIN_U8("graphics/door_anims/frame_8353228_1.4bpp", "graphics/door_anims/frame_8353228_2.4bpp", "graphics/door_anims/frame_8353228_3.4bpp"); +static const u8 gUnknown_83533A8[32] = {}; +static const u8 gUnknown_83533C8[] = INCBIN_U8("graphics/door_anims/frame_83533C8_1.4bpp", "graphics/door_anims/frame_83533C8_2.4bpp", "graphics/door_anims/frame_83533C8_3.4bpp"); +static const u8 gUnknown_8353548[32] = {}; +static const u8 gUnknown_8353568[] = INCBIN_U8("graphics/door_anims/frame_8353568_1.4bpp", "graphics/door_anims/frame_8353568_2.4bpp", "graphics/door_anims/frame_8353568_3.4bpp"); +static const u8 gUnknown_83536E8[32] = {}; +static const u8 gUnknown_8353708[] = INCBIN_U8("graphics/door_anims/frame_8353708_1.4bpp", "graphics/door_anims/frame_8353708_2.4bpp", "graphics/door_anims/frame_8353708_3.4bpp"); +static const u8 gUnknown_8353888[32] = {}; +static const u8 gUnknown_83538A8[] = INCBIN_U8("graphics/door_anims/frame_83538A8_1.4bpp", "graphics/door_anims/frame_83538A8_2.4bpp", "graphics/door_anims/frame_83538A8_3.4bpp"); +static const u8 gUnknown_8353A28[32] = {}; +static const u8 gUnknown_8353A48[] = INCBIN_U8("graphics/door_anims/frame_8353A48_1.4bpp", "graphics/door_anims/frame_8353A48_2.4bpp", "graphics/door_anims/frame_8353A48_3.4bpp"); +static const u8 gUnknown_8353BC8[32] = {}; +static const u8 gUnknown_8353BE8[] = INCBIN_U8("graphics/door_anims/frame_8353BE8_1.4bpp", "graphics/door_anims/frame_8353BE8_2.4bpp", "graphics/door_anims/frame_8353BE8_3.4bpp"); +static const u8 gUnknown_8353D68[32] = {}; +static const u8 gUnknown_8353D88[] = INCBIN_U8("graphics/door_anims/frame_8353D88_1.4bpp", "graphics/door_anims/frame_8353D88_2.4bpp", "graphics/door_anims/frame_8353D88_3.4bpp"); +static const u8 gUnknown_8353F08[32] = {}; +static const u8 gUnknown_8353F28[] = INCBIN_U8("graphics/door_anims/frame_8353F28_1.4bpp", "graphics/door_anims/frame_8353F28_2.4bpp", "graphics/door_anims/frame_8353F28_3.4bpp"); +static const u8 gUnknown_83540A8[32] = {}; +static const u8 gUnknown_83540C8[] = INCBIN_U8("graphics/door_anims/frame_83540C8_1.4bpp", "graphics/door_anims/frame_83540C8_2.4bpp", "graphics/door_anims/frame_83540C8_3.4bpp"); +static const u8 gUnknown_8354248[32] = {}; +static const u8 gUnknown_8354268[] = INCBIN_U8("graphics/door_anims/frame_8354268_1.4bpp", "graphics/door_anims/frame_8354268_2.4bpp", "graphics/door_anims/frame_8354268_3.4bpp"); +static const u8 gUnknown_83543E8[32] = {}; +static const u8 gUnknown_8354408[] = INCBIN_U8("graphics/door_anims/frame_8354408_1.4bpp", "graphics/door_anims/frame_8354408_2.4bpp", "graphics/door_anims/frame_8354408_3.4bpp"); +static const u8 gUnknown_8354588[32] = {}; +static const u8 gUnknown_83545A8[] = INCBIN_U8("graphics/door_anims/frame_83545A8_1.4bpp", "graphics/door_anims/frame_83545A8_2.4bpp", "graphics/door_anims/frame_83545A8_3.4bpp"); +static const u8 gUnknown_8354728[32] = {}; +static const u8 gUnknown_8354748[] = INCBIN_U8("graphics/door_anims/frame_8354748_1.4bpp", "graphics/door_anims/frame_8354748_2.4bpp", "graphics/door_anims/frame_8354748_3.4bpp"); +static const u8 gUnknown_83548C8[32] = {}; +static const u8 gUnknown_83548E8[] = INCBIN_U8("graphics/door_anims/frame_83548E8_1.4bpp", "graphics/door_anims/frame_83548E8_2.4bpp", "graphics/door_anims/frame_83548E8_3.4bpp"); +static const u8 gUnknown_8354A68[32] = {}; +static const u8 gUnknown_8354A88[] = INCBIN_U8("graphics/door_anims/frame_8354A88_1.4bpp", "graphics/door_anims/frame_8354A88_2.4bpp", "graphics/door_anims/frame_8354A88_3.4bpp"); +static const u8 gUnknown_8354C08[32] = {}; +static const u8 gUnknown_8354C28[] = INCBIN_U8("graphics/door_anims/frame_8354C28_1.4bpp", "graphics/door_anims/frame_8354C28_2.4bpp", "graphics/door_anims/frame_8354C28_3.4bpp"); +static const u8 gUnknown_8354F28[32] = {}; +static const u8 gUnknown_8354F48[] = INCBIN_U8("graphics/door_anims/frame_8354F48_1.4bpp", "graphics/door_anims/frame_8354F48_2.4bpp", "graphics/door_anims/frame_8354F48_3.4bpp"); +static const u8 gUnknown_8355248[32] = {}; +static const u8 gUnknown_8355268[] = INCBIN_U8("graphics/door_anims/frame_8355268_1.4bpp", "graphics/door_anims/frame_8355268_2.4bpp", "graphics/door_anims/frame_8355268_3.4bpp"); +static const u8 gUnknown_8355568[32] = {}; +static const u8 gUnknown_8355588[] = INCBIN_U8("graphics/door_anims/frame_8355588_1.4bpp", "graphics/door_anims/frame_8355588_2.4bpp", "graphics/door_anims/frame_8355588_3.4bpp"); +static const u8 gUnknown_8355888[32] = {}; +static const u8 gUnknown_83558A8[256] = {}; +static const u8 gUnknown_83559A8[256] = {}; +static const u8 gUnknown_8355AA8[256] = {}; +static const u8 gUnknown_8355BA8[32] = {}; +static const u8 gUnknown_8355BC8[256] = {}; +static const u8 gUnknown_8355CC8[256] = {}; +static const u8 gUnknown_8355DC8[256] = {}; +static const u8 gUnknown_8355EC8[32] = {}; +static const u8 gUnknown_8355EE8[256] = {}; +static const u8 gUnknown_8355FE8[256] = {}; +static const u8 gUnknown_83560E8[256] = {}; +static const u8 gUnknown_83561E8[32] = {}; +static const u8 gUnknown_8356208[256] = {}; +static const u8 gUnknown_8356308[256] = {}; +static const u8 gUnknown_8356408[256] = {}; +static const u8 gUnknown_8356508[32] = {}; +static const u8 gUnknown_8356528[256] = {}; +static const u8 gUnknown_8356628[256] = {}; +static const u8 gUnknown_8356728[256] = {}; +static const u8 gUnknown_8356828[32] = {}; +static const u8 gUnknown_8356848[256] = {}; +static const u8 gUnknown_8356948[256] = {}; +static const u8 gUnknown_8356A48[256] = {}; +static const u8 gUnknown_8356B48[32] = {}; +static const u8 gUnknown_8356B68[256] = {}; +static const u8 gUnknown_8356C68[256] = {}; +static const u8 gUnknown_8356D68[256] = {}; +static const u8 gUnknown_8356E68[32] = {}; +static const u8 gUnknown_8356E88[128] = {}; +static const u8 gUnknown_8356F08[128] = {}; +static const u8 gUnknown_8356F88[128] = {}; +static const u8 gUnknown_8357008[32] = {}; +static const u8 gUnknown_8357028[128] = {}; +static const u8 gUnknown_83570A8[128] = {}; +static const u8 gUnknown_8357128[128] = {}; +static const u8 gUnknown_83571A8[32] = {}; +static const u8 gUnknown_83571C8[128] = {}; +static const u8 gUnknown_8357248[128] = {}; +static const u8 gUnknown_83572C8[128] = {}; +static const u8 gUnknown_8357348[32] = {}; +static const u8 gUnknown_8357368[128] = {}; +static const u8 gUnknown_83573E8[128] = {}; +static const u8 gUnknown_8357468[128] = {}; +static const u8 gUnknown_83574E8[32] = {}; +static const u8 gUnknown_8357508[128] = {}; +static const u8 gUnknown_8357588[128] = {}; +static const u8 gUnknown_8357608[128] = {}; +static const u8 gUnknown_8357688[32] = {}; +static const u8 gUnknown_83576A8[128] = {}; +static const u8 gUnknown_8357728[128] = {}; +static const u8 gUnknown_83577A8[128] = {}; +static const u8 gUnknown_8357828[32] = {}; +static const u8 gUnknown_8357848[128] = {}; +static const u8 gUnknown_83578C8[128] = {}; +static const u8 gUnknown_8357948[128] = {}; +static const u8 gUnknown_83579C8[32] = {}; +static const u8 gUnknown_83579E8[128] = {}; +static const u8 gUnknown_8357A68[128] = {}; +static const u8 gUnknown_8357AE8[128] = {}; +static const u8 gUnknown_8357B68[32] = {}; +static const u8 gUnknown_8357B88[128] = {}; +static const u8 gUnknown_8357C08[128] = {}; +static const u8 gUnknown_8357C88[128] = {}; +static const u8 gUnknown_8357D08[32] = {}; +static const u8 gUnknown_8357D28[128] = {}; +static const u8 gUnknown_8357DA8[128] = {}; +static const u8 gUnknown_8357E28[128] = {}; +static const u8 gUnknown_8357EA8[32] = {}; +static const u8 gUnknown_8357EC8[128] = {}; +static const u8 gUnknown_8357F48[128] = {}; +static const u8 gUnknown_8357FC8[128] = {}; +static const u8 gUnknown_8358048[32] = {}; +static const u8 gUnknown_8358068[128] = {}; +static const u8 gUnknown_83580E8[128] = {}; +static const u8 gUnknown_8358168[128] = {}; +static const u8 gUnknown_83581E8[32] = {}; +static const u8 gUnknown_8358208[128] = {}; +static const u8 gUnknown_8358288[128] = {}; +static const u8 gUnknown_8358308[128] = {}; +static const u8 gUnknown_8358388[32] = {}; +static const u8 gUnknown_83583A8[128] = {}; +static const u8 gUnknown_8358428[128] = {}; +static const u8 gUnknown_83584A8[128] = {}; +static const u8 gUnknown_8358528[32] = {}; +static const u8 gUnknown_8358548[128] = {}; +static const u8 gUnknown_83585C8[128] = {}; +static const u8 gUnknown_8358648[128] = {}; +static const u8 gUnknown_83586C8[32] = {}; +static const u8 gUnknown_83586E8[128] = {}; +static const u8 gUnknown_8358768[128] = {}; +static const u8 gUnknown_83587E8[128] = {}; +static const u8 gUnknown_8358868[32] = {}; +static const u8 gUnknown_8358888[128] = {}; +static const u8 gUnknown_8358908[128] = {}; +static const u8 gUnknown_8358988[128] = {}; +static const u8 gUnknown_8358A08[32] = {}; +static const u8 gUnknown_8358A28[128] = {}; +static const u8 gUnknown_8358AA8[128] = {}; +static const u8 gUnknown_8358B28[128] = {}; +static const u8 gUnknown_8358BA8[32] = {}; +static const u8 gUnknown_8358BC8[128] = {}; +static const u8 gUnknown_8358C48[128] = {}; +static const u8 gUnknown_8358CC8[128] = {}; +static const u8 gUnknown_8358D48[32] = {}; +static const u8 gUnknown_8358D68[128] = {}; +static const u8 gUnknown_8358DE8[128] = {}; +static const u8 gUnknown_8358E68[128] = {}; +static const u8 gUnknown_8358EE8[32] = {}; +static const u8 gUnknown_8358F08[128] = {}; +static const u8 gUnknown_8358F88[128] = {}; +static const u8 gUnknown_8359008[128] = {}; +static const u8 gUnknown_8359088[32] = {}; +static const u8 gUnknown_83590A8[128] = {}; +static const u8 gUnknown_8359128[128] = {}; +static const u8 gUnknown_83591A8[128] = {}; +static const u8 gUnknown_8359228[32] = {}; +static const u8 gUnknown_8359248[128] = {}; +static const u8 gUnknown_83592C8[128] = {}; +static const u8 gUnknown_8359348[128] = {}; +static const u8 gUnknown_83593C8[32] = {}; +static const u8 gUnknown_83593E8[128] = {}; +static const u8 gUnknown_8359468[128] = {}; +static const u8 gUnknown_83594E8[128] = {}; +static const u8 gUnknown_8359568[32] = {}; +static const u8 gUnknown_8359588[] = INCBIN_U8("graphics/door_anims/frame_8359588_1.4bpp", "graphics/door_anims/frame_8359588_2.4bpp"); +static const u8 gUnknown_8359688[256] = {}; +static const u8 gUnknown_8359788[] = INCBIN_U8("graphics/door_anims/frame_8359788_1.4bpp", "graphics/door_anims/frame_8359788_2.4bpp", "graphics/door_anims/frame_8359788_3.4bpp", "graphics/door_anims/frame_8359788_4.4bpp"); +static const u8 gUnknown_8359888[256] = {}; +static const u8 gUnknown_8359988[] = INCBIN_U8("graphics/door_anims/frame_8359988_1.4bpp", "graphics/door_anims/frame_8359988_2.4bpp", "graphics/door_anims/frame_8359988_3.4bpp", "graphics/door_anims/frame_8359988_4.4bpp"); +static const u8 gUnknown_8359A88[256] = {}; +static const u8 gUnknown_8359B88[] = INCBIN_U8("graphics/door_anims/frame_8359B88_1.4bpp", "graphics/door_anims/frame_8359B88_2.4bpp", "graphics/door_anims/frame_8359B88_3.4bpp", "graphics/door_anims/frame_8359B88_4.4bpp"); +static const u8 gUnknown_8359C88[32] = {}; +static const u8 gUnknown_8359CA8[] = INCBIN_U8("graphics/door_anims/frame_8359CA8_1.4bpp", "graphics/door_anims/frame_8359CA8_2.4bpp", "graphics/door_anims/frame_8359CA8_3.4bpp"); +static const u8 gUnknown_8359FA8[32] = {}; +static const u8 gUnknown_8359FC8[] = INCBIN_U8("graphics/door_anims/frame_8359FC8_1.4bpp", "graphics/door_anims/frame_8359FC8_2.4bpp", "graphics/door_anims/frame_8359FC8_3.4bpp"); +static const u8 gUnknown_835A148[32] = {}; +static const u8 gUnknown_835A168[] = INCBIN_U8("graphics/door_anims/frame_835A168_1.4bpp", "graphics/door_anims/frame_835A168_2.4bpp", "graphics/door_anims/frame_835A168_3.4bpp"); +static const u8 gUnknown_835A2E8[32] = {}; +static const u8 gUnknown_835A308[] = INCBIN_U8("graphics/door_anims/frame_835A308_1.4bpp", "graphics/door_anims/frame_835A308_2.4bpp", "graphics/door_anims/frame_835A308_3.4bpp"); +static const u8 gUnknown_835A488[32] = {}; +static const u8 gUnknown_835A4A8[] = INCBIN_U8("graphics/door_anims/frame_835A4A8_1.4bpp", "graphics/door_anims/frame_835A4A8_2.4bpp", "graphics/door_anims/frame_835A4A8_3.4bpp"); +static const u8 gUnknown_835A628[32] = {}; +static const u8 gUnknown_835A648[] = INCBIN_U8("graphics/door_anims/frame_835A648_1.4bpp", "graphics/door_anims/frame_835A648_2.4bpp", "graphics/door_anims/frame_835A648_3.4bpp"); +static const u8 gUnknown_835A7C8[32] = {}; +static const u8 gUnknown_835A7E8[] = INCBIN_U8("graphics/door_anims/frame_835A7E8_1.4bpp", "graphics/door_anims/frame_835A7E8_2.4bpp", "graphics/door_anims/frame_835A7E8_3.4bpp"); +static const u8 gUnknown_835A968[32] = {}; +static const u8 gUnknown_835A988[] = INCBIN_U8("graphics/door_anims/frame_835A988_1.4bpp", "graphics/door_anims/frame_835A988_2.4bpp", "graphics/door_anims/frame_835A988_3.4bpp"); +static const u8 gUnknown_835AB08[32] = {}; +static const u8 gUnknown_835AB28[] = INCBIN_U8("graphics/door_anims/frame_835AB28_1.4bpp", "graphics/door_anims/frame_835AB28_2.4bpp", "graphics/door_anims/frame_835AB28_3.4bpp"); +static const u8 gUnknown_835AE28[32] = {}; +static const u8 gUnknown_835AE48[] = INCBIN_U8("graphics/door_anims/frame_835AE48_1.4bpp", "graphics/door_anims/frame_835AE48_2.4bpp", "graphics/door_anims/frame_835AE48_3.4bpp"); +static const u8 gUnknown_835B148[32] = {}; +static const u8 gUnknown_835B168[] = INCBIN_U8("graphics/door_anims/frame_835B168_1.4bpp", "graphics/door_anims/frame_835B168_2.4bpp", "graphics/door_anims/frame_835B168_3.4bpp"); +static const u8 gUnknown_835B468[32] = {}; + +static const struct DoorAnimFrame sDoorAnimFrames_OpenSmall[] = { + {4, 0xFFFF}, + {4, 0x0000}, + {4, 0x0080}, + {4, 0x0100}, + {} +}; + +static const struct DoorAnimFrame sDoorAnimFrames_OpenLarge[] = { + {4, 0xFFFF}, + {4, 0x0000}, + {4, 0x0100}, + {4, 0x0200}, + {} +}; + +static const struct DoorAnimFrame sDoorAnimFrames_CloseSmall[] = { + {4, 0x0100}, + {4, 0x0080}, + {4, 0x0000}, + {4, 0xFFFF}, + {} +}; + +static const struct DoorAnimFrame sDoorAnimFrames_CloseLarge[] = { + {4, 0x0200}, + {4, 0x0100}, + {4, 0x0000}, + {4, 0xFFFF}, + {} +}; + +static const u8 gUnknown_835B4D8[] = {0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; +static const u8 gUnknown_835B4E0[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B4E8[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B4F0[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B4F8[] = {0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa}; +static const u8 gUnknown_835B500[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B508[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B510[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B518[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B520[] = {0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc}; +static const u8 gUnknown_835B528[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; +static const u8 gUnknown_835B530[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; +static const u8 gUnknown_835B538[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; +static const u8 gUnknown_835B540[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B548[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B550[] = {0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9}; +static const u8 gUnknown_835B558[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B560[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B568[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B570[] = {0xc, 0xc, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; +static const u8 gUnknown_835B578[] = {0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7}; +static const u8 gUnknown_835B580[] = {0x8, 0x8, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; +static const u8 gUnknown_835B588[] = {0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5}; +static const u8 gUnknown_835B590[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B598[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B5A0[] = {0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5}; +static const u8 gUnknown_835B5A8[] = {0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3}; +static const u8 gUnknown_835B5B0[] = {0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa}; +static const u8 gUnknown_835B5B8[] = {0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5}; +static const u8 gUnknown_835B5C0[] = {0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8}; +static const u8 gUnknown_835B5C8[] = {0x8, 0x8, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; +static const u8 gUnknown_835B5D0[] = {0xb, 0xb, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2}; + +static const struct DoorGraphics sDoorGraphics[] = { + {0x03d, 0, 0, gUnknown_8353088, gUnknown_835B4D8}, + {0x062, 1, 0, gUnknown_8353228, gUnknown_835B4E0}, + {0x15b, 1, 0, gUnknown_83533C8, gUnknown_835B4E8}, + {0x2a3, 0, 0, gUnknown_8353568, gUnknown_835B4F0}, + {0x2ac, 0, 0, gUnknown_8353708, gUnknown_835B4F8}, + {0x299, 0, 0, gUnknown_83538A8, gUnknown_835B500}, + {0x2ce, 0, 0, gUnknown_8353A48, gUnknown_835B508}, + {0x284, 0, 0, gUnknown_8353BE8, gUnknown_835B510}, + {0x2bc, 1, 0, gUnknown_8353D88, gUnknown_835B518}, + {0x298, 0, 0, gUnknown_8353F28, gUnknown_835B520}, + {0x2a2, 0, 0, gUnknown_83540C8, gUnknown_835B528}, + {0x29e, 0, 0, gUnknown_8354268, gUnknown_835B530}, + {0x2e1, 0, 0, gUnknown_8354408, gUnknown_835B538}, + {0x294, 1, 0, gUnknown_83545A8, gUnknown_835B540}, + {0x2bf, 0, 0, gUnknown_8354748, gUnknown_835B548}, + {0x2d2, 1, 0, gUnknown_83548E8, gUnknown_835B550}, + {0x2ad, 0, 0, gUnknown_8354A88, gUnknown_835B558}, + {0x297, 0, 0, gUnknown_8359FC8, gUnknown_835B588}, + {0x29b, 1, 0, gUnknown_835A168, gUnknown_835B590}, + {0x2eb, 0, 0, gUnknown_835A308, gUnknown_835B598}, + {0x29a, 0, 0, gUnknown_835A4A8, gUnknown_835B5A0}, + {0x2b9, 0, 0, gUnknown_835A648, gUnknown_835B5A8}, + {0x2af, 0, 0, gUnknown_835A7E8, gUnknown_835B5B0}, + {0x30c, 0, 0, gUnknown_835A988, gUnknown_835B5B8}, + {0x28d, 1, 1, gUnknown_8354C28, gUnknown_835B560}, + {0x2de, 1, 1, gUnknown_8354F48, gUnknown_835B568}, + {0x2ab, 1, 1, gUnknown_8355268, gUnknown_835B570}, + {0x281, 0, 1, gUnknown_8355588, gUnknown_835B578}, + {0x2e2, 1, 1, gUnknown_8359CA8, gUnknown_835B580}, + {0x296, 1, 1, gUnknown_835AB28, gUnknown_835B5C0}, + {0x2c3, 1, 1, gUnknown_835AE48, gUnknown_835B5C8}, + {0x356, 1, 1, gUnknown_835B168, gUnknown_835B5D0}, + {} +}; + +static void UpdateDrawDoorFrame(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, int x, int y) +{ + if (frames->tile == 0xFFFF) + { + DrawDoorDefaultImage(gfx, x, y); + } + else + { + LoadDoorFrameTiles(&gfx->tiles[frames->tile]); + SetDoorFramePalettes(gfx, x, y, gfx->palettes); + } +} + +static void DrawDoorDefaultImage(const struct DoorGraphics * gfx, int x, int y) +{ + if (gfx->size == 0) + { + CurrentMapDrawMetatileAt(x, y); + } + else + { + CurrentMapDrawMetatileAt(x, y); + CurrentMapDrawMetatileAt(x, y - 1); + } +} + +static void LoadDoorFrameTiles(const u8 *a0) +{ + CpuFastCopy(a0, (void *)(BG_VRAM + 0x7F00), 0x100); +} + +static void SetDoorFramePalettes(const struct DoorGraphics * gfx, int x, int y, const u8 *a3) +{ + u16 sp00[8]; + if (gfx->size == 0) + { + BufferDoorFrameTilesWithPalettes(sp00, 0x3F8, a3); + } + else + { + BufferDoorFrameTilesWithPalettes(sp00, 0x3F8, a3); + DrawDoorMetatileAt(x, y - 1, sp00); + BufferDoorFrameTilesWithPalettes(sp00, 0x3FC, a3 + 4); + } + DrawDoorMetatileAt(x, y, sp00); +} + +static void BufferDoorFrameTilesWithPalettes(u16 *a0, u16 a1, const u8 *a2) +{ + int i; + u16 tile; + for (i = 0; i < 4; i++) + { + tile = *(a2++) << 12; + a0[i] = tile | (a1 + i); + } + for (; i < 8; i++) + { + tile = *(a2++) << 12; + a0[i] = tile; + } +} + +static void Task_AnimateDoor(u8 taskId) +{ + s16 *data = (void *)gTasks[taskId].data; + const struct DoorAnimFrame * frames = (const void *)(((u16)data[0] << 16) | (u16)data[1]); + const struct DoorGraphics * gfx = (const void *)(((u16)data[2] << 16) | (u16)data[3]); + if (!PlayDoorAnimationFrame(gfx, frames, data)) + DestroyTask(taskId); +} + +static bool32 PlayDoorAnimationFrame(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, s16 *data) +{ + if (data[5] == 0) + { + UpdateDrawDoorFrame(gfx, &frames[data[4]], data[6], data[7]); + } + if (data[5] == frames[data[4]].duration) + { + data[5] = 0; + data[4]++; + if (frames[data[4]].duration == 0) + return FALSE; + } + else + { + data[5]++; + } + return TRUE; +} + +static const struct DoorGraphics * door_find(const struct DoorGraphics * gfx, u16 id) +{ + while (gfx->tiles != NULL) + { + if (gfx->metatileId == id) + return gfx; + gfx++; + } + return NULL; +} + +static s8 task_overworld_door_add_if_inactive(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, int a2, int a3) +{ + u8 taskId; + s16 *data; + if (FuncIsActiveTask(Task_AnimateDoor) == TRUE) + return -1; + taskId = CreateTask(Task_AnimateDoor, 80); + data = gTasks[taskId].data; + data[6] = a2; + data[7] = a3; + data[1] = (uintptr_t)frames; + data[0] = (uintptr_t)frames >> 16; + data[3] = (uintptr_t)gfx; + data[2] = (uintptr_t)gfx >> 16; + return taskId; +} + +static void DrawClosedDoor(const struct DoorGraphics * gfx, int a1, int a2) +{ + DrawDoorDefaultImage(gfx, a1, a2); +} + +static void DrawOpenedDoor(const struct DoorGraphics * gfx, int x, int y) +{ + gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + if (gfx != NULL) + { + UpdateDrawDoorFrame(gfx, SeekToEndOfDoorAnim(gfx->size == 0 ? sDoorAnimFrames_OpenSmall : sDoorAnimFrames_OpenLarge), x, y); + } +} + +static const struct DoorAnimFrame * SeekToEndOfDoorAnim(const struct DoorAnimFrame * frames) +{ + while (frames->duration != 0) + frames++; + return frames - 1; +} + +static s8 AnimateDoorOpenInternal(const struct DoorGraphics * gfx, int x, int y) +{ + gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + if (gfx == NULL) + return -1; + else if (gfx->size == 0) + return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_OpenSmall, x, y); + else + return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_OpenLarge, x, y); +} + +static s8 AnimateDoorCloseInternal(const struct DoorGraphics * gfx, int x, int y) +{ + gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + if (gfx == NULL) + return -1; + else if (gfx->size == 0) + return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_CloseSmall, x, y); + else + return task_overworld_door_add_if_inactive(gfx, sDoorAnimFrames_CloseLarge, x, y); +} + +void FieldSetDoorOpened(int x, int y) +{ + if (MetatileBehavior_IsWarpDoor_2(MapGridGetMetatileBehaviorAt((s16)x, (s16)y))) + DrawOpenedDoor(sDoorGraphics, x, y); +} + +void FieldSetDoorClosed(int x, int y) +{ + if (MetatileBehavior_IsWarpDoor_2(MapGridGetMetatileBehaviorAt((s16)x, (s16)y))) + DrawClosedDoor(sDoorGraphics, x, y); +} + +s8 FieldAnimateDoorClose(int x, int y) +{ + if (!MetatileBehavior_IsWarpDoor_2(MapGridGetMetatileBehaviorAt((s16)x, (s16)y))) + return -1; + return AnimateDoorCloseInternal(sDoorGraphics, x, y); +} + +s8 FieldAnimateDoorOpen(int x, int y) +{ + if (!MetatileBehavior_IsWarpDoor_2(MapGridGetMetatileBehaviorAt((s16)x, (s16)y))) + return -1; + return AnimateDoorOpenInternal(sDoorGraphics, x, y); +} + +bool8 FieldIsDoorAnimationRunning(void) +{ + return FuncIsActiveTask(Task_AnimateDoor); +} + +u16 GetDoorSoundEffect(x, y) +{ + if (!GetDoorOpenType(sDoorGraphics, x, y)) + return MUS_W_DOOR; + else + return SE_JIDO_DOA; +} + +static s8 GetDoorOpenType(const struct DoorGraphics * gfx, int x, int y) +{ + gfx = door_find(gfx, MapGridGetMetatileIdAt(x, y)); + if (gfx == NULL) + return -1; + return gfx->sliding; +} diff --git a/src/item_use.c b/src/item_use.c index 873ce4ab4..db0475370 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -76,7 +76,68 @@ void sub_80A1D68(u8 taskId); void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId); void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId); -extern void (*const gUnknown_83E2954[])(void); +// No clue what this is +static const u8 sUnref_83E27B4[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0xe0, 0x03, 0x00, 0x7c, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +void (*const gUnknown_83E2954[])(void) = { + sub_8124C8C, + CB2_ReturnToField, + NULL, + NULL +}; void sub_80A0FBC(u8 taskId) { diff --git a/src/map_name_popup.c b/src/map_name_popup.c new file mode 100644 index 000000000..fe15cc129 --- /dev/null +++ b/src/map_name_popup.c @@ -0,0 +1,216 @@ +#include "global.h" +#include "bg.h" +#include "gpu_regs.h" +#include "window.h" +#include "palette.h" +#include "task.h" +#include "event_data.h" +#include "text_window.h" +#include "quest_log.h" +#include "region_map.h" +#include "text.h" +#include "strings.h" +#include "string_util.h" +#include "constants/flags.h" + +static void Task_MapNamePopup(u8 taskId); +static u16 MapNamePopupCreateWindow(bool32 palIntoFadedBuffer); +static void MapNamePopupPrintMapNameOnWindow(u16 windowId); +static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 flags); + +void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer) +{ + u8 taskId; + if (FlagGet(FLAG_SPECIAL_FLAG_0x4000) != TRUE && !(gUnknown_203ADFA == 2 || gUnknown_203ADFA == 3)) + { + taskId = FindTaskIdByFunc(Task_MapNamePopup); + if (taskId == 0xFF) + { + taskId = CreateTask(Task_MapNamePopup, 90); + ChangeBgX(0, 0x00000000, 0); + ChangeBgY(0, 0xFFFFEF7F, 0); + gTasks[taskId].data[0] = 0; + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[8] = palIntoFadedBuffer; + } + else + { + if (gTasks[taskId].data[0] != 4) + gTasks[taskId].data[0] = 4; + gTasks[taskId].data[3] = 1; + } + } +} + +static void Task_MapNamePopup(u8 taskId) +{ + struct Task * task = &gTasks[taskId]; + switch (task->data[0]) + { + case 0: + task->data[4] = MapNamePopupCreateWindow(task->data[8]); + task->data[5] = 1; + task->data[0] = 1; + break; + case 1: + if (IsDma3ManagerBusyWithBgCopy()) + break; + // fallthrough + case 2: + task->data[2] -= 2; + if (task->data[2] <= -24) + { + task->data[0] = 3; + task->data[1] = 0; + } + break; + case 3: + task->data[1]++; + if (task->data[1] > 120) + { + task->data[1] = 0; + task->data[0] = 4; + } + break; + case 4: + task->data[2] += 2; + if (task->data[2] >= 0) + { + if (task->data[3]) + { + MapNamePopupPrintMapNameOnWindow(task->data[4]); + CopyWindowToVram(task->data[4], 2); + task->data[0] = 1; + task->data[3] = 0; + } + else + { + task->data[0] = 6; + return; + } + } + case 5: + break; + case 6: + if (task->data[5] && !task->data[6]) + { + rbox_fill_rectangle(task->data[4]); + CopyWindowToVram(task->data[4], 1); + task->data[6] = 1; + } + task->data[0] = 7; + return; + case 7: + if (!IsDma3ManagerBusyWithBgCopy()) + { + if (task->data[5]) + { + RemoveWindow(task->data[4]); + task->data[5] = 0; + task->data[7] = 1; + } + task->data[0] = 8; + ChangeBgY(0, 0x00000000, 0); + } + return; + case 8: + DestroyTask(taskId); + return; + } + SetGpuReg(REG_OFFSET_BG0VOFS, task->data[2]); +} + +void DismissMapNamePopup(void) +{ + u8 taskId; + s16 *data; + taskId = FindTaskIdByFunc(Task_MapNamePopup); + if (taskId != 0xFF) + { + data = gTasks[taskId].data; + if (data[0] < 6) + data[0] = 6; + } +} + +bool32 IsMapNamePopupTaskActive(void) +{ + return FindTaskIdByFunc(Task_MapNamePopup) != 0xFF ? TRUE : FALSE; +} + +static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer) +{ + struct WindowTemplate windowTemplate = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 29, + .width = 14, + .height = 2, + .paletteNum = 0xD, + .baseBlock = 0x001 + }; + u16 windowId; + u16 r6 = 0x01D; + if (gMapHeader.flags != 0) + { + if (gMapHeader.flags != 0x7F) + { + windowTemplate.width += 5; + r6 = 0x027; + } + else + { + windowTemplate.width += 8; + r6 = 0x02D; + } + } + windowId = AddWindow(&windowTemplate); + if (palintoFadedBuffer) + { + LoadPalette(stdpal_get(3), 0xd0, 0x20); + } + else + { + CpuCopy16(stdpal_get(3), &gPlttBufferUnfaded[0xd0], 0x20); + } + sub_814FF6C(windowId, r6); + DrawTextBorderOuter(windowId, r6, 0xD); + PutWindowTilemap(windowId); + MapNamePopupPrintMapNameOnWindow(windowId); + CopyWindowToVram(windowId, 3); + return windowId; +} + +static void MapNamePopupPrintMapNameOnWindow(u16 windowId) +{ + u8 mapName[25]; + u32 maxWidth = 112; + u32 xpos; + u8 *ptr = GetMapName(mapName, gMapHeader.regionMapSectionId, 0); + if (gMapHeader.flags != 0) + { + ptr = MapNamePopupAppendFloorNum(ptr, gMapHeader.flags); + maxWidth = gMapHeader.flags != 0x7F ? 152 : 176; + } + xpos = (maxWidth - GetStringWidth(2, mapName, -1)) / 2; + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + AddTextPrinterParameterized(windowId, 2, mapName, xpos, 2, 0xFF, NULL); +} + +static u8 *MapNamePopupAppendFloorNum(u8 *dest, s8 flags) +{ + if (flags == 0) + return dest; + *dest++ = CHAR_SPACE; + if (flags == 0x7F) + return StringCopy(dest, gUnknown_841D18D); + if (flags < 0) + { + *dest++ = CHAR_B; + flags *= -1; + } + dest = ConvertIntToDecimalStringN(dest, flags, STR_CONV_MODE_LEFT_ALIGN, 2); + *dest++ = CHAR_F; + *dest = EOS; + return dest; +} diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index bca99d38f..8e07c1c97 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -16,6 +16,41 @@ static const bool8 sTileSurfable[METATILE_COUNT] = { [MB_SOUTHWARD_CURRENT] = TRUE }; +static const u8 sTileBitAttributes[] = { + 0x00, + 0x01, + 0x02, + 0x04, + 0x08, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +}; + bool8 MetatileBehavior_UnusedReturnTrue(u8 metatileBehavior) { return TRUE; @@ -736,7 +771,7 @@ bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior) { return FALSE; bool8 sub_805A2BC(u8 arg1, u8 arg2) { - if(gUnknown_8353068[arg1] & arg2) + if(sTileBitAttributes[arg1] & arg2) return TRUE; else return FALSE; diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index 06e23618d..6eff367c5 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -6,6 +6,7 @@ #include "pokemon_size_record.h" #include "string_util.h" #include "text.h" +#include "strings.h" #include "constants/species.h" #define DEFAULT_MAX_SIZE 0 // was 0x8100 in Ruby/Sapphire, 0x8000 in Emerald @@ -28,13 +29,13 @@ static const struct UnknownStruct sBigMonSizeTable[] = { 800, 100, 7710 }, { 900, 150, 17710 }, { 1000, 150, 32710 }, - { 1100, 100, -17826 }, - { 1200, 50, -7826 }, - { 1300, 20, -2826 }, - { 1400, 5, -826 }, - { 1500, 2, -326 }, - { 1600, 1, -126 }, - { 1700, 1, -26 }, + { 1100, 100, 47710 }, + { 1200, 50, 57710 }, + { 1300, 20, 62710 }, + { 1400, 5, 64710 }, + { 1500, 2, 65210 }, + { 1600, 1, 65410 }, + { 1700, 1, 65510 }, }; static const u8 sGiftRibbonsMonDataIds[] = @@ -44,8 +45,6 @@ static const u8 sGiftRibbonsMonDataIds[] = MON_DATA_GIFT_RIBBON_7 }; -extern const u8 gText_DecimalPoint[]; - #define CM_PER_INCH 2.54 static u32 GetMonSizeHash(struct Pokemon * pkmn) diff --git a/src/quest_log.c b/src/quest_log.c index 64d3df076..2675d3a4f 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1425,7 +1425,7 @@ static void sub_81120AC(u8 taskId) break; default: if (gUnknown_203AE94.unk_0_6 == 1) - sub_8098110(1); + CreateMapNamePopupIfNotAlreadyRunning(1); CpuCopy16(gUnknown_203AE90, gPlttBufferUnfaded, 0x400); Free(gUnknown_203AE90); gUnknown_203AE94 = (struct UnkStruct_203AE94){}; |