summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/field_door.s183
-rw-r--r--baserom.ipsbin398518 -> 363962 bytes
-rw-r--r--data/field_door.s539
-rw-r--r--data/metatile_behavior.s6
-rw-r--r--graphics/door_anims/frame_8353088_1.pngbin0 -> 139 bytes
-rw-r--r--graphics/door_anims/frame_8353088_2.pngbin0 -> 124 bytes
-rw-r--r--graphics/door_anims/frame_8353088_3.pngbin0 -> 102 bytes
-rw-r--r--graphics/door_anims/frame_8353228_1.pngbin0 -> 105 bytes
-rw-r--r--graphics/door_anims/frame_8353228_2.pngbin0 -> 116 bytes
-rw-r--r--graphics/door_anims/frame_8353228_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_83533C8_1.pngbin0 -> 121 bytes
-rw-r--r--graphics/door_anims/frame_83533C8_2.pngbin0 -> 128 bytes
-rw-r--r--graphics/door_anims/frame_83533C8_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_8353568_1.pngbin0 -> 147 bytes
-rw-r--r--graphics/door_anims/frame_8353568_2.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_8353568_3.pngbin0 -> 102 bytes
-rw-r--r--graphics/door_anims/frame_8353708_1.pngbin0 -> 144 bytes
-rw-r--r--graphics/door_anims/frame_8353708_2.pngbin0 -> 127 bytes
-rw-r--r--graphics/door_anims/frame_8353708_3.pngbin0 -> 102 bytes
-rw-r--r--graphics/door_anims/frame_83538A8_1.pngbin0 -> 131 bytes
-rw-r--r--graphics/door_anims/frame_83538A8_2.pngbin0 -> 123 bytes
-rw-r--r--graphics/door_anims/frame_83538A8_3.pngbin0 -> 108 bytes
-rw-r--r--graphics/door_anims/frame_8353A48_1.pngbin0 -> 146 bytes
-rw-r--r--graphics/door_anims/frame_8353A48_2.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_8353A48_3.pngbin0 -> 102 bytes
-rw-r--r--graphics/door_anims/frame_8353BE8_1.pngbin0 -> 140 bytes
-rw-r--r--graphics/door_anims/frame_8353BE8_2.pngbin0 -> 124 bytes
-rw-r--r--graphics/door_anims/frame_8353BE8_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_8353D88_1.pngbin0 -> 125 bytes
-rw-r--r--graphics/door_anims/frame_8353D88_2.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_8353D88_3.pngbin0 -> 95 bytes
-rw-r--r--graphics/door_anims/frame_8353F28_1.pngbin0 -> 145 bytes
-rw-r--r--graphics/door_anims/frame_8353F28_2.pngbin0 -> 133 bytes
-rw-r--r--graphics/door_anims/frame_8353F28_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_83540C8_1.pngbin0 -> 141 bytes
-rw-r--r--graphics/door_anims/frame_83540C8_2.pngbin0 -> 125 bytes
-rw-r--r--graphics/door_anims/frame_83540C8_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_8354268_1.pngbin0 -> 138 bytes
-rw-r--r--graphics/door_anims/frame_8354268_2.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_8354268_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_8354408_1.pngbin0 -> 146 bytes
-rw-r--r--graphics/door_anims/frame_8354408_2.pngbin0 -> 138 bytes
-rw-r--r--graphics/door_anims/frame_8354408_3.pngbin0 -> 119 bytes
-rw-r--r--graphics/door_anims/frame_83545A8_1.pngbin0 -> 122 bytes
-rw-r--r--graphics/door_anims/frame_83545A8_2.pngbin0 -> 129 bytes
-rw-r--r--graphics/door_anims/frame_83545A8_3.pngbin0 -> 105 bytes
-rw-r--r--graphics/door_anims/frame_8354748_1.pngbin0 -> 151 bytes
-rw-r--r--graphics/door_anims/frame_8354748_2.pngbin0 -> 129 bytes
-rw-r--r--graphics/door_anims/frame_8354748_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_83548E8_1.pngbin0 -> 150 bytes
-rw-r--r--graphics/door_anims/frame_83548E8_2.pngbin0 -> 131 bytes
-rw-r--r--graphics/door_anims/frame_83548E8_3.pngbin0 -> 90 bytes
-rw-r--r--graphics/door_anims/frame_8354A88_1.pngbin0 -> 140 bytes
-rw-r--r--graphics/door_anims/frame_8354A88_2.pngbin0 -> 127 bytes
-rw-r--r--graphics/door_anims/frame_8354A88_3.pngbin0 -> 98 bytes
-rw-r--r--graphics/door_anims/frame_8354C28_1.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_8354C28_2.pngbin0 -> 127 bytes
-rw-r--r--graphics/door_anims/frame_8354C28_3.pngbin0 -> 104 bytes
-rw-r--r--graphics/door_anims/frame_8354F48_1.pngbin0 -> 139 bytes
-rw-r--r--graphics/door_anims/frame_8354F48_2.pngbin0 -> 141 bytes
-rw-r--r--graphics/door_anims/frame_8354F48_3.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_8355268_1.pngbin0 -> 137 bytes
-rw-r--r--graphics/door_anims/frame_8355268_2.pngbin0 -> 137 bytes
-rw-r--r--graphics/door_anims/frame_8355268_3.pngbin0 -> 115 bytes
-rw-r--r--graphics/door_anims/frame_8355588_1.pngbin0 -> 177 bytes
-rw-r--r--graphics/door_anims/frame_8355588_2.pngbin0 -> 160 bytes
-rw-r--r--graphics/door_anims/frame_8355588_3.pngbin0 -> 123 bytes
-rw-r--r--graphics/door_anims/frame_8359588_1.pngbin0 -> 79 bytes
-rw-r--r--graphics/door_anims/frame_8359588_2.pngbin0 -> 79 bytes
-rw-r--r--graphics/door_anims/frame_8359788_1.pngbin0 -> 101 bytes
-rw-r--r--graphics/door_anims/frame_8359788_2.pngbin0 -> 100 bytes
-rw-r--r--graphics/door_anims/frame_8359788_3.pngbin0 -> 88 bytes
-rw-r--r--graphics/door_anims/frame_8359788_4.pngbin0 -> 80 bytes
-rw-r--r--graphics/door_anims/frame_8359988_1.pngbin0 -> 104 bytes
-rw-r--r--graphics/door_anims/frame_8359988_2.pngbin0 -> 112 bytes
-rw-r--r--graphics/door_anims/frame_8359988_3.pngbin0 -> 102 bytes
-rw-r--r--graphics/door_anims/frame_8359988_4.pngbin0 -> 90 bytes
-rw-r--r--graphics/door_anims/frame_8359B88_1.pngbin0 -> 105 bytes
-rw-r--r--graphics/door_anims/frame_8359B88_2.pngbin0 -> 109 bytes
-rw-r--r--graphics/door_anims/frame_8359B88_3.pngbin0 -> 109 bytes
-rw-r--r--graphics/door_anims/frame_8359B88_4.pngbin0 -> 89 bytes
-rw-r--r--graphics/door_anims/frame_8359CA8_1.pngbin0 -> 139 bytes
-rw-r--r--graphics/door_anims/frame_8359CA8_2.pngbin0 -> 139 bytes
-rw-r--r--graphics/door_anims/frame_8359CA8_3.pngbin0 -> 117 bytes
-rw-r--r--graphics/door_anims/frame_8359FC8_1.pngbin0 -> 132 bytes
-rw-r--r--graphics/door_anims/frame_8359FC8_2.pngbin0 -> 125 bytes
-rw-r--r--graphics/door_anims/frame_8359FC8_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_835A168_1.pngbin0 -> 121 bytes
-rw-r--r--graphics/door_anims/frame_835A168_2.pngbin0 -> 127 bytes
-rw-r--r--graphics/door_anims/frame_835A168_3.pngbin0 -> 104 bytes
-rw-r--r--graphics/door_anims/frame_835A308_1.pngbin0 -> 128 bytes
-rw-r--r--graphics/door_anims/frame_835A308_2.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_835A308_3.pngbin0 -> 104 bytes
-rw-r--r--graphics/door_anims/frame_835A4A8_1.pngbin0 -> 132 bytes
-rw-r--r--graphics/door_anims/frame_835A4A8_2.pngbin0 -> 125 bytes
-rw-r--r--graphics/door_anims/frame_835A4A8_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_835A648_1.pngbin0 -> 144 bytes
-rw-r--r--graphics/door_anims/frame_835A648_2.pngbin0 -> 130 bytes
-rw-r--r--graphics/door_anims/frame_835A648_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_835A7E8_1.pngbin0 -> 140 bytes
-rw-r--r--graphics/door_anims/frame_835A7E8_2.pngbin0 -> 138 bytes
-rw-r--r--graphics/door_anims/frame_835A7E8_3.pngbin0 -> 107 bytes
-rw-r--r--graphics/door_anims/frame_835A988_1.pngbin0 -> 132 bytes
-rw-r--r--graphics/door_anims/frame_835A988_2.pngbin0 -> 125 bytes
-rw-r--r--graphics/door_anims/frame_835A988_3.pngbin0 -> 103 bytes
-rw-r--r--graphics/door_anims/frame_835AB28_1.pngbin0 -> 223 bytes
-rw-r--r--graphics/door_anims/frame_835AB28_2.pngbin0 -> 212 bytes
-rw-r--r--graphics/door_anims/frame_835AB28_3.pngbin0 -> 192 bytes
-rw-r--r--graphics/door_anims/frame_835AE48_1.pngbin0 -> 141 bytes
-rw-r--r--graphics/door_anims/frame_835AE48_2.pngbin0 -> 141 bytes
-rw-r--r--graphics/door_anims/frame_835AE48_3.pngbin0 -> 119 bytes
-rw-r--r--graphics/door_anims/frame_835B168_1.pngbin0 -> 137 bytes
-rw-r--r--graphics/door_anims/frame_835B168_2.pngbin0 -> 137 bytes
-rw-r--r--graphics/door_anims/frame_835B168_3.pngbin0 -> 115 bytes
-rw-r--r--include/field_camera.h1
-rw-r--r--include/metatile_behavior.h1
-rw-r--r--ld_script.txt3
-rw-r--r--src/field_door.c102
-rw-r--r--src/metatile_behavior.c37
119 files changed, 675 insertions, 197 deletions
diff --git a/asm/field_door.s b/asm/field_door.s
index bcb8a6082..b4541ffaf 100644
--- a/asm/field_door.s
+++ b/asm/field_door.s
@@ -5,189 +5,6 @@
.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}
diff --git a/baserom.ips b/baserom.ips
index c7c4f9714..7c99bf40b 100644
--- a/baserom.ips
+++ b/baserom.ips
Binary files differ
diff --git a/data/field_door.s b/data/field_door.s
index a29cf3e24..be76e845d 100644
--- a/data/field_door.s
+++ b/data/field_door.s
@@ -1,17 +1,546 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
.section .rodata
+ .align 2, 0
+
+gUnknown_8353088:: @ 8353088
+ .incbin "graphics/door_anims/frame_8353088_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353088_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353088_3.4bpp"
+ .space 32
+
+gUnknown_8353228:: @ 8353228
+ .incbin "graphics/door_anims/frame_8353228_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353228_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353228_3.4bpp"
+ .space 32
+
+gUnknown_83533C8:: @ 83533C8
+ .incbin "graphics/door_anims/frame_83533C8_1.4bpp"
+ .incbin "graphics/door_anims/frame_83533C8_2.4bpp"
+ .incbin "graphics/door_anims/frame_83533C8_3.4bpp"
+ .space 32
+
+gUnknown_8353568:: @ 8353568
+ .incbin "graphics/door_anims/frame_8353568_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353568_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353568_3.4bpp"
+ .space 32
+
+gUnknown_8353708:: @ 8353708
+ .incbin "graphics/door_anims/frame_8353708_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353708_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353708_3.4bpp"
+ .space 32
+
+gUnknown_83538A8:: @ 83538A8
+ .incbin "graphics/door_anims/frame_83538A8_1.4bpp"
+ .incbin "graphics/door_anims/frame_83538A8_2.4bpp"
+ .incbin "graphics/door_anims/frame_83538A8_3.4bpp"
+ .space 32
+
+gUnknown_8353A48:: @ 8353A48
+ .incbin "graphics/door_anims/frame_8353A48_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353A48_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353A48_3.4bpp"
+ .space 32
+
+gUnknown_8353BE8:: @ 8353BE8
+ .incbin "graphics/door_anims/frame_8353BE8_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353BE8_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353BE8_3.4bpp"
+ .space 32
+
+gUnknown_8353D88:: @ 8353D88
+ .incbin "graphics/door_anims/frame_8353D88_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353D88_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353D88_3.4bpp"
+ .space 32
+
+gUnknown_8353F28:: @ 8353F28
+ .incbin "graphics/door_anims/frame_8353F28_1.4bpp"
+ .incbin "graphics/door_anims/frame_8353F28_2.4bpp"
+ .incbin "graphics/door_anims/frame_8353F28_3.4bpp"
+ .space 32
+
+gUnknown_83540C8:: @ 83540C8
+ .incbin "graphics/door_anims/frame_83540C8_1.4bpp"
+ .incbin "graphics/door_anims/frame_83540C8_2.4bpp"
+ .incbin "graphics/door_anims/frame_83540C8_3.4bpp"
+ .space 32
+
+gUnknown_8354268:: @ 8354268
+ .incbin "graphics/door_anims/frame_8354268_1.4bpp"
+ .incbin "graphics/door_anims/frame_8354268_2.4bpp"
+ .incbin "graphics/door_anims/frame_8354268_3.4bpp"
+ .space 32
+
+gUnknown_8354408:: @ 8354408
+ .incbin "graphics/door_anims/frame_8354408_1.4bpp"
+ .incbin "graphics/door_anims/frame_8354408_2.4bpp"
+ .incbin "graphics/door_anims/frame_8354408_3.4bpp"
+ .space 32
+
+gUnknown_83545A8:: @ 83545A8
+ .incbin "graphics/door_anims/frame_83545A8_1.4bpp"
+ .incbin "graphics/door_anims/frame_83545A8_2.4bpp"
+ .incbin "graphics/door_anims/frame_83545A8_3.4bpp"
+ .space 32
+
+gUnknown_8354748:: @ 8354748
+ .incbin "graphics/door_anims/frame_8354748_1.4bpp"
+ .incbin "graphics/door_anims/frame_8354748_2.4bpp"
+ .incbin "graphics/door_anims/frame_8354748_3.4bpp"
+ .space 32
+
+gUnknown_83548E8:: @ 83548E8
+ .incbin "graphics/door_anims/frame_83548E8_1.4bpp"
+ .incbin "graphics/door_anims/frame_83548E8_2.4bpp"
+ .incbin "graphics/door_anims/frame_83548E8_3.4bpp"
+ .space 32
+
+gUnknown_8354A88:: @ 8354A88
+ .incbin "graphics/door_anims/frame_8354A88_1.4bpp"
+ .incbin "graphics/door_anims/frame_8354A88_2.4bpp"
+ .incbin "graphics/door_anims/frame_8354A88_3.4bpp"
+ .space 32
+
+gUnknown_8354C28:: @ 8354C28
+ .incbin "graphics/door_anims/frame_8354C28_1.4bpp"
+ .incbin "graphics/door_anims/frame_8354C28_2.4bpp"
+ .incbin "graphics/door_anims/frame_8354C28_3.4bpp"
+ .space 32
+
+gUnknown_8354F48:: @ 8354F48
+ .incbin "graphics/door_anims/frame_8354F48_1.4bpp"
+ .incbin "graphics/door_anims/frame_8354F48_2.4bpp"
+ .incbin "graphics/door_anims/frame_8354F48_3.4bpp"
+ .space 32
+
+gUnknown_8355268:: @ 8355268
+ .incbin "graphics/door_anims/frame_8355268_1.4bpp"
+ .incbin "graphics/door_anims/frame_8355268_2.4bpp"
+ .incbin "graphics/door_anims/frame_8355268_3.4bpp"
+ .space 32
+
+gUnknown_8355588:: @ 8355588
+ .incbin "graphics/door_anims/frame_8355588_1.4bpp"
+ .incbin "graphics/door_anims/frame_8355588_2.4bpp"
+ .incbin "graphics/door_anims/frame_8355588_3.4bpp"
+ .space 32
+
+gUnknown_83558A8::
+ .space 0x320
+ .space 0x320
+ .space 0x320
+ .space 0x320
+ .space 0x320
+ .space 0x320
+ .space 0x320
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .space 0x1A0
+ .incbin "graphics/door_anims/frame_8359588_1.4bpp"
+ .incbin "graphics/door_anims/frame_8359588_2.4bpp"
+ .space 0x100
+ .incbin "graphics/door_anims/frame_8359788_1.4bpp"
+ .incbin "graphics/door_anims/frame_8359788_2.4bpp"
+ .incbin "graphics/door_anims/frame_8359788_3.4bpp"
+ .incbin "graphics/door_anims/frame_8359788_4.4bpp"
+ .space 0x100
+ .incbin "graphics/door_anims/frame_8359988_1.4bpp"
+ .incbin "graphics/door_anims/frame_8359988_2.4bpp"
+ .incbin "graphics/door_anims/frame_8359988_3.4bpp"
+ .incbin "graphics/door_anims/frame_8359988_4.4bpp"
+ .space 0x100
+ .incbin "graphics/door_anims/frame_8359B88_1.4bpp"
+ .incbin "graphics/door_anims/frame_8359B88_2.4bpp"
+ .incbin "graphics/door_anims/frame_8359B88_3.4bpp"
+ .incbin "graphics/door_anims/frame_8359B88_4.4bpp"
+ .space 0x20
+
+gUnknown_8359CA8:: @ 8359CA8
+ .incbin "graphics/door_anims/frame_8359CA8_1.4bpp"
+ .incbin "graphics/door_anims/frame_8359CA8_2.4bpp"
+ .incbin "graphics/door_anims/frame_8359CA8_3.4bpp"
+ .space 32
+
+gUnknown_8359FC8:: @ 8359FC8
+ .incbin "graphics/door_anims/frame_8359FC8_1.4bpp"
+ .incbin "graphics/door_anims/frame_8359FC8_2.4bpp"
+ .incbin "graphics/door_anims/frame_8359FC8_3.4bpp"
+ .space 32
+
+gUnknown_835A168:: @ 835A168
+ .incbin "graphics/door_anims/frame_835A168_1.4bpp"
+ .incbin "graphics/door_anims/frame_835A168_2.4bpp"
+ .incbin "graphics/door_anims/frame_835A168_3.4bpp"
+ .space 32
+
+gUnknown_835A308:: @ 835A308
+ .incbin "graphics/door_anims/frame_835A308_1.4bpp"
+ .incbin "graphics/door_anims/frame_835A308_2.4bpp"
+ .incbin "graphics/door_anims/frame_835A308_3.4bpp"
+ .space 32
+
+gUnknown_835A4A8:: @ 835A4A8
+ .incbin "graphics/door_anims/frame_835A4A8_1.4bpp"
+ .incbin "graphics/door_anims/frame_835A4A8_2.4bpp"
+ .incbin "graphics/door_anims/frame_835A4A8_3.4bpp"
+ .space 32
+
+gUnknown_835A648:: @ 835A648
+ .incbin "graphics/door_anims/frame_835A648_1.4bpp"
+ .incbin "graphics/door_anims/frame_835A648_2.4bpp"
+ .incbin "graphics/door_anims/frame_835A648_3.4bpp"
+ .space 32
+
+gUnknown_835A7E8:: @ 835A7E8
+ .incbin "graphics/door_anims/frame_835A7E8_1.4bpp"
+ .incbin "graphics/door_anims/frame_835A7E8_2.4bpp"
+ .incbin "graphics/door_anims/frame_835A7E8_3.4bpp"
+ .space 32
+
+gUnknown_835A988:: @ 835A988
+ .incbin "graphics/door_anims/frame_835A988_1.4bpp"
+ .incbin "graphics/door_anims/frame_835A988_2.4bpp"
+ .incbin "graphics/door_anims/frame_835A988_3.4bpp"
+ .space 32
+
+gUnknown_835AB28:: @ 835AB28
+ .incbin "graphics/door_anims/frame_835AB28_1.4bpp"
+ .incbin "graphics/door_anims/frame_835AB28_2.4bpp"
+ .incbin "graphics/door_anims/frame_835AB28_3.4bpp"
+ .space 32
+
+gUnknown_835AE48:: @ 835AE48
+ .incbin "graphics/door_anims/frame_835AE48_1.4bpp"
+ .incbin "graphics/door_anims/frame_835AE48_2.4bpp"
+ .incbin "graphics/door_anims/frame_835AE48_3.4bpp"
+ .space 32
+
+gUnknown_835B168:: @ 835B168
+ .incbin "graphics/door_anims/frame_835B168_1.4bpp"
+ .incbin "graphics/door_anims/frame_835B168_2.4bpp"
+ .incbin "graphics/door_anims/frame_835B168_3.4bpp"
+ .space 32
.align 2
gUnknown_835B488:: @ 835B488
- .incbin "baserom.gba", 0x35B488, 0x14
+ .byte 0x04
+ .align 1
+ .2byte 0xffff
+ .byte 0x04
+ .align 1
+ .2byte 0x0000
+ .byte 0x04
+ .align 1
+ .2byte 0x0080
+ .byte 0x04
+ .align 1
+ .2byte 0x0100
+ .byte 0x00
+ .align 1
+ .2byte 0x0000
gUnknown_835B49C:: @ 835B49C
- .incbin "baserom.gba", 0x35B49C, 0x14
+ .byte 0x04
+ .align 1
+ .2byte 0xffff
+ .byte 0x04
+ .align 1
+ .2byte 0x0000
+ .byte 0x04
+ .align 1
+ .2byte 0x0100
+ .byte 0x04
+ .align 1
+ .2byte 0x0200
+ .byte 0x00
+ .align 1
+ .2byte 0x0000
gUnknown_835B4B0:: @ 835B4B0
- .incbin "baserom.gba", 0x35B4B0, 0x14
+ .byte 0x04
+ .align 1
+ .2byte 0x0100
+ .byte 0x04
+ .align 1
+ .2byte 0x0080
+ .byte 0x04
+ .align 1
+ .2byte 0x0000
+ .byte 0x04
+ .align 1
+ .2byte 0xffff
+ .byte 0x00
+ .align 1
+ .2byte 0x0000
gUnknown_835B4C4:: @ 835B4C4
- .incbin "baserom.gba", 0x35B4C4, 0x114
+ .byte 0x04
+ .align 1
+ .2byte 0x0200
+ .byte 0x04
+ .align 1
+ .2byte 0x0100
+ .byte 0x04
+ .align 1
+ .2byte 0x0000
+ .byte 0x04
+ .align 1
+ .2byte 0xffff
+ .byte 0x00
+ .align 1
+ .2byte 0x0000
+
+gUnknown_835B4D8:: @ 835B4D8
+ .byte 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2
+
+gUnknown_835B4E0:: @ 835B4E0
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B4E8:: @ 835B4E8
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B4F0:: @ 835B4F0
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B4F8:: @ 835B4F8
+ .byte 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa
+
+gUnknown_835B500:: @ 835B500
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B508:: @ 835B508
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B510:: @ 835B510
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B518:: @ 835B518
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B520:: @ 835B520
+ .byte 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc, 0xc
+
+gUnknown_835B528:: @ 835B528
+ .byte 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9
+
+gUnknown_835B530:: @ 835B530
+ .byte 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9
+
+gUnknown_835B538:: @ 835B538
+ .byte 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9
+
+gUnknown_835B540:: @ 835B540
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B548:: @ 835B548
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B550:: @ 835B550
+ .byte 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9
+
+gUnknown_835B558:: @ 835B558
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B560:: @ 835B560
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B568:: @ 835B568
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B570:: @ 835B570
+ .byte 0xc, 0xc, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2
+
+gUnknown_835B578:: @ 835B578
+ .byte 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7, 0x7
+
+gUnknown_835B580:: @ 835B580
+ .byte 0x8, 0x8, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2
+
+gUnknown_835B588:: @ 835B588
+ .byte 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5
+
+gUnknown_835B590:: @ 835B590
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B598:: @ 835B598
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B5A0:: @ 835B5A0
+ .byte 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5
+
+gUnknown_835B5A8:: @ 835B5A8
+ .byte 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3
+
+gUnknown_835B5B0:: @ 835B5B0
+ .byte 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa, 0xa
+
+gUnknown_835B5B8:: @ 835B5B8
+ .byte 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5, 0x5
+
+gUnknown_835B5C0:: @ 835B5C0
+ .byte 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8
+
+gUnknown_835B5C8:: @ 835B5C8
+ .byte 0x8, 0x8, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2
+
+gUnknown_835B5D0:: @ 835B5D0
+ .byte 0xb, 0xb, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2
gUnknown_835B5D8:: @ 835B5D8
- .incbin "baserom.gba", 0x35B5D8, 0x18C
+ .2byte 0x003d
+ .byte 0x00, 0x00
+ .4byte gUnknown_8353088
+ .4byte gUnknown_835B4D8
+ .2byte 0x0062
+ .byte 0x01, 0x00
+ .4byte gUnknown_8353228
+ .4byte gUnknown_835B4E0
+ .2byte 0x015b
+ .byte 0x01, 0x00
+ .4byte gUnknown_83533C8
+ .4byte gUnknown_835B4E8
+ .2byte 0x02a3
+ .byte 0x00, 0x00
+ .4byte gUnknown_8353568
+ .4byte gUnknown_835B4F0
+ .2byte 0x02ac
+ .byte 0x00, 0x00
+ .4byte gUnknown_8353708
+ .4byte gUnknown_835B4F8
+ .2byte 0x0299
+ .byte 0x00, 0x00
+ .4byte gUnknown_83538A8
+ .4byte gUnknown_835B500
+ .2byte 0x02ce
+ .byte 0x00, 0x00
+ .4byte gUnknown_8353A48
+ .4byte gUnknown_835B508
+ .2byte 0x0284
+ .byte 0x00, 0x00
+ .4byte gUnknown_8353BE8
+ .4byte gUnknown_835B510
+ .2byte 0x02bc
+ .byte 0x01, 0x00
+ .4byte gUnknown_8353D88
+ .4byte gUnknown_835B518
+ .2byte 0x0298
+ .byte 0x00, 0x00
+ .4byte gUnknown_8353F28
+ .4byte gUnknown_835B520
+ .2byte 0x02a2
+ .byte 0x00, 0x00
+ .4byte gUnknown_83540C8
+ .4byte gUnknown_835B528
+ .2byte 0x029e
+ .byte 0x00, 0x00
+ .4byte gUnknown_8354268
+ .4byte gUnknown_835B530
+ .2byte 0x02e1
+ .byte 0x00, 0x00
+ .4byte gUnknown_8354408
+ .4byte gUnknown_835B538
+ .2byte 0x0294
+ .byte 0x01, 0x00
+ .4byte gUnknown_83545A8
+ .4byte gUnknown_835B540
+ .2byte 0x02bf
+ .byte 0x00, 0x00
+ .4byte gUnknown_8354748
+ .4byte gUnknown_835B548
+ .2byte 0x02d2
+ .byte 0x01, 0x00
+ .4byte gUnknown_83548E8
+ .4byte gUnknown_835B550
+ .2byte 0x02ad
+ .byte 0x00, 0x00
+ .4byte gUnknown_8354A88
+ .4byte gUnknown_835B558
+ .2byte 0x0297
+ .byte 0x00, 0x00
+ .4byte gUnknown_8359FC8
+ .4byte gUnknown_835B588
+ .2byte 0x029b
+ .byte 0x01, 0x00
+ .4byte gUnknown_835A168
+ .4byte gUnknown_835B590
+ .2byte 0x02eb
+ .byte 0x00, 0x00
+ .4byte gUnknown_835A308
+ .4byte gUnknown_835B598
+ .2byte 0x029a
+ .byte 0x00, 0x00
+ .4byte gUnknown_835A4A8
+ .4byte gUnknown_835B5A0
+ .2byte 0x02b9
+ .byte 0x00, 0x00
+ .4byte gUnknown_835A648
+ .4byte gUnknown_835B5A8
+ .2byte 0x02af
+ .byte 0x00, 0x00
+ .4byte gUnknown_835A7E8
+ .4byte gUnknown_835B5B0
+ .2byte 0x030c
+ .byte 0x00, 0x00
+ .4byte gUnknown_835A988
+ .4byte gUnknown_835B5B8
+ .2byte 0x028d
+ .byte 0x01, 0x01
+ .4byte gUnknown_8354C28
+ .4byte gUnknown_835B560
+ .2byte 0x02de
+ .byte 0x01, 0x01
+ .4byte gUnknown_8354F48
+ .4byte gUnknown_835B568
+ .2byte 0x02ab
+ .byte 0x01, 0x01
+ .4byte gUnknown_8355268
+ .4byte gUnknown_835B570
+ .2byte 0x0281
+ .byte 0x00, 0x01
+ .4byte gUnknown_8355588
+ .4byte gUnknown_835B578
+ .2byte 0x02e2
+ .byte 0x01, 0x01
+ .4byte gUnknown_8359CA8
+ .4byte gUnknown_835B580
+ .2byte 0x0296
+ .byte 0x01, 0x01
+ .4byte gUnknown_835AB28
+ .4byte gUnknown_835B5C0
+ .2byte 0x02c3
+ .byte 0x01, 0x01
+ .4byte gUnknown_835AE48
+ .4byte gUnknown_835B5C8
+ .2byte 0x0356
+ .byte 0x01, 0x01
+ .4byte gUnknown_835B168
+ .4byte gUnknown_835B5D0
+ .2byte 0x0000
+ .byte 0x00, 0x00
+ .4byte 0x00000000
+ .4byte 0x00000000
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/graphics/door_anims/frame_8353088_1.png b/graphics/door_anims/frame_8353088_1.png
new file mode 100644
index 000000000..e831eda38
--- /dev/null
+++ b/graphics/door_anims/frame_8353088_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353088_2.png b/graphics/door_anims/frame_8353088_2.png
new file mode 100644
index 000000000..981aaa7fd
--- /dev/null
+++ b/graphics/door_anims/frame_8353088_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353088_3.png b/graphics/door_anims/frame_8353088_3.png
new file mode 100644
index 000000000..a4edcdc0b
--- /dev/null
+++ b/graphics/door_anims/frame_8353088_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353228_1.png b/graphics/door_anims/frame_8353228_1.png
new file mode 100644
index 000000000..2f7b80495
--- /dev/null
+++ b/graphics/door_anims/frame_8353228_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353228_2.png b/graphics/door_anims/frame_8353228_2.png
new file mode 100644
index 000000000..d603dd800
--- /dev/null
+++ b/graphics/door_anims/frame_8353228_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353228_3.png b/graphics/door_anims/frame_8353228_3.png
new file mode 100644
index 000000000..97a87ea4c
--- /dev/null
+++ b/graphics/door_anims/frame_8353228_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_83533C8_1.png b/graphics/door_anims/frame_83533C8_1.png
new file mode 100644
index 000000000..4ce6b79ed
--- /dev/null
+++ b/graphics/door_anims/frame_83533C8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_83533C8_2.png b/graphics/door_anims/frame_83533C8_2.png
new file mode 100644
index 000000000..8f668959e
--- /dev/null
+++ b/graphics/door_anims/frame_83533C8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_83533C8_3.png b/graphics/door_anims/frame_83533C8_3.png
new file mode 100644
index 000000000..97a87ea4c
--- /dev/null
+++ b/graphics/door_anims/frame_83533C8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353568_1.png b/graphics/door_anims/frame_8353568_1.png
new file mode 100644
index 000000000..5fde23141
--- /dev/null
+++ b/graphics/door_anims/frame_8353568_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353568_2.png b/graphics/door_anims/frame_8353568_2.png
new file mode 100644
index 000000000..93b6e18f5
--- /dev/null
+++ b/graphics/door_anims/frame_8353568_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353568_3.png b/graphics/door_anims/frame_8353568_3.png
new file mode 100644
index 000000000..a4edcdc0b
--- /dev/null
+++ b/graphics/door_anims/frame_8353568_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353708_1.png b/graphics/door_anims/frame_8353708_1.png
new file mode 100644
index 000000000..e56c2f31e
--- /dev/null
+++ b/graphics/door_anims/frame_8353708_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353708_2.png b/graphics/door_anims/frame_8353708_2.png
new file mode 100644
index 000000000..e1f7d5272
--- /dev/null
+++ b/graphics/door_anims/frame_8353708_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353708_3.png b/graphics/door_anims/frame_8353708_3.png
new file mode 100644
index 000000000..a4edcdc0b
--- /dev/null
+++ b/graphics/door_anims/frame_8353708_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_83538A8_1.png b/graphics/door_anims/frame_83538A8_1.png
new file mode 100644
index 000000000..117acac1d
--- /dev/null
+++ b/graphics/door_anims/frame_83538A8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_83538A8_2.png b/graphics/door_anims/frame_83538A8_2.png
new file mode 100644
index 000000000..58aa0d456
--- /dev/null
+++ b/graphics/door_anims/frame_83538A8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_83538A8_3.png b/graphics/door_anims/frame_83538A8_3.png
new file mode 100644
index 000000000..a9f2c98f5
--- /dev/null
+++ b/graphics/door_anims/frame_83538A8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353A48_1.png b/graphics/door_anims/frame_8353A48_1.png
new file mode 100644
index 000000000..5ea623f10
--- /dev/null
+++ b/graphics/door_anims/frame_8353A48_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353A48_2.png b/graphics/door_anims/frame_8353A48_2.png
new file mode 100644
index 000000000..dba5c1935
--- /dev/null
+++ b/graphics/door_anims/frame_8353A48_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353A48_3.png b/graphics/door_anims/frame_8353A48_3.png
new file mode 100644
index 000000000..a4edcdc0b
--- /dev/null
+++ b/graphics/door_anims/frame_8353A48_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353BE8_1.png b/graphics/door_anims/frame_8353BE8_1.png
new file mode 100644
index 000000000..3b8a60396
--- /dev/null
+++ b/graphics/door_anims/frame_8353BE8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353BE8_2.png b/graphics/door_anims/frame_8353BE8_2.png
new file mode 100644
index 000000000..ac557a4ea
--- /dev/null
+++ b/graphics/door_anims/frame_8353BE8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353BE8_3.png b/graphics/door_anims/frame_8353BE8_3.png
new file mode 100644
index 000000000..de5e8c356
--- /dev/null
+++ b/graphics/door_anims/frame_8353BE8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353D88_1.png b/graphics/door_anims/frame_8353D88_1.png
new file mode 100644
index 000000000..37d7e78da
--- /dev/null
+++ b/graphics/door_anims/frame_8353D88_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353D88_2.png b/graphics/door_anims/frame_8353D88_2.png
new file mode 100644
index 000000000..405f027b0
--- /dev/null
+++ b/graphics/door_anims/frame_8353D88_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353D88_3.png b/graphics/door_anims/frame_8353D88_3.png
new file mode 100644
index 000000000..052c55606
--- /dev/null
+++ b/graphics/door_anims/frame_8353D88_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353F28_1.png b/graphics/door_anims/frame_8353F28_1.png
new file mode 100644
index 000000000..379003d13
--- /dev/null
+++ b/graphics/door_anims/frame_8353F28_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353F28_2.png b/graphics/door_anims/frame_8353F28_2.png
new file mode 100644
index 000000000..2337f80df
--- /dev/null
+++ b/graphics/door_anims/frame_8353F28_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8353F28_3.png b/graphics/door_anims/frame_8353F28_3.png
new file mode 100644
index 000000000..97a87ea4c
--- /dev/null
+++ b/graphics/door_anims/frame_8353F28_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_83540C8_1.png b/graphics/door_anims/frame_83540C8_1.png
new file mode 100644
index 000000000..5c582fbf0
--- /dev/null
+++ b/graphics/door_anims/frame_83540C8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_83540C8_2.png b/graphics/door_anims/frame_83540C8_2.png
new file mode 100644
index 000000000..b23db61c5
--- /dev/null
+++ b/graphics/door_anims/frame_83540C8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_83540C8_3.png b/graphics/door_anims/frame_83540C8_3.png
new file mode 100644
index 000000000..8870077b3
--- /dev/null
+++ b/graphics/door_anims/frame_83540C8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354268_1.png b/graphics/door_anims/frame_8354268_1.png
new file mode 100644
index 000000000..5a09abac0
--- /dev/null
+++ b/graphics/door_anims/frame_8354268_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354268_2.png b/graphics/door_anims/frame_8354268_2.png
new file mode 100644
index 000000000..e46d8b0af
--- /dev/null
+++ b/graphics/door_anims/frame_8354268_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354268_3.png b/graphics/door_anims/frame_8354268_3.png
new file mode 100644
index 000000000..97a87ea4c
--- /dev/null
+++ b/graphics/door_anims/frame_8354268_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354408_1.png b/graphics/door_anims/frame_8354408_1.png
new file mode 100644
index 000000000..680c715fb
--- /dev/null
+++ b/graphics/door_anims/frame_8354408_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354408_2.png b/graphics/door_anims/frame_8354408_2.png
new file mode 100644
index 000000000..a6014c89f
--- /dev/null
+++ b/graphics/door_anims/frame_8354408_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354408_3.png b/graphics/door_anims/frame_8354408_3.png
new file mode 100644
index 000000000..c3a852e27
--- /dev/null
+++ b/graphics/door_anims/frame_8354408_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_83545A8_1.png b/graphics/door_anims/frame_83545A8_1.png
new file mode 100644
index 000000000..46de34aaf
--- /dev/null
+++ b/graphics/door_anims/frame_83545A8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_83545A8_2.png b/graphics/door_anims/frame_83545A8_2.png
new file mode 100644
index 000000000..1ca78103b
--- /dev/null
+++ b/graphics/door_anims/frame_83545A8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_83545A8_3.png b/graphics/door_anims/frame_83545A8_3.png
new file mode 100644
index 000000000..f2de21913
--- /dev/null
+++ b/graphics/door_anims/frame_83545A8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354748_1.png b/graphics/door_anims/frame_8354748_1.png
new file mode 100644
index 000000000..fb3d4bbcd
--- /dev/null
+++ b/graphics/door_anims/frame_8354748_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354748_2.png b/graphics/door_anims/frame_8354748_2.png
new file mode 100644
index 000000000..f6b3644b8
--- /dev/null
+++ b/graphics/door_anims/frame_8354748_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354748_3.png b/graphics/door_anims/frame_8354748_3.png
new file mode 100644
index 000000000..eec2567a1
--- /dev/null
+++ b/graphics/door_anims/frame_8354748_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_83548E8_1.png b/graphics/door_anims/frame_83548E8_1.png
new file mode 100644
index 000000000..22566a901
--- /dev/null
+++ b/graphics/door_anims/frame_83548E8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_83548E8_2.png b/graphics/door_anims/frame_83548E8_2.png
new file mode 100644
index 000000000..35f772671
--- /dev/null
+++ b/graphics/door_anims/frame_83548E8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_83548E8_3.png b/graphics/door_anims/frame_83548E8_3.png
new file mode 100644
index 000000000..226fe6bb0
--- /dev/null
+++ b/graphics/door_anims/frame_83548E8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354A88_1.png b/graphics/door_anims/frame_8354A88_1.png
new file mode 100644
index 000000000..157c348a8
--- /dev/null
+++ b/graphics/door_anims/frame_8354A88_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354A88_2.png b/graphics/door_anims/frame_8354A88_2.png
new file mode 100644
index 000000000..72e919a2d
--- /dev/null
+++ b/graphics/door_anims/frame_8354A88_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354A88_3.png b/graphics/door_anims/frame_8354A88_3.png
new file mode 100644
index 000000000..e5c635d9c
--- /dev/null
+++ b/graphics/door_anims/frame_8354A88_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354C28_1.png b/graphics/door_anims/frame_8354C28_1.png
new file mode 100644
index 000000000..cd6285a64
--- /dev/null
+++ b/graphics/door_anims/frame_8354C28_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354C28_2.png b/graphics/door_anims/frame_8354C28_2.png
new file mode 100644
index 000000000..11a1c36e0
--- /dev/null
+++ b/graphics/door_anims/frame_8354C28_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354C28_3.png b/graphics/door_anims/frame_8354C28_3.png
new file mode 100644
index 000000000..c0d626d06
--- /dev/null
+++ b/graphics/door_anims/frame_8354C28_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354F48_1.png b/graphics/door_anims/frame_8354F48_1.png
new file mode 100644
index 000000000..a1e6eace1
--- /dev/null
+++ b/graphics/door_anims/frame_8354F48_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354F48_2.png b/graphics/door_anims/frame_8354F48_2.png
new file mode 100644
index 000000000..dd1e0e15c
--- /dev/null
+++ b/graphics/door_anims/frame_8354F48_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8354F48_3.png b/graphics/door_anims/frame_8354F48_3.png
new file mode 100644
index 000000000..cf7978637
--- /dev/null
+++ b/graphics/door_anims/frame_8354F48_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8355268_1.png b/graphics/door_anims/frame_8355268_1.png
new file mode 100644
index 000000000..d752d94ef
--- /dev/null
+++ b/graphics/door_anims/frame_8355268_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8355268_2.png b/graphics/door_anims/frame_8355268_2.png
new file mode 100644
index 000000000..237c46cb9
--- /dev/null
+++ b/graphics/door_anims/frame_8355268_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8355268_3.png b/graphics/door_anims/frame_8355268_3.png
new file mode 100644
index 000000000..19a595cd0
--- /dev/null
+++ b/graphics/door_anims/frame_8355268_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8355588_1.png b/graphics/door_anims/frame_8355588_1.png
new file mode 100644
index 000000000..b8ee1eb42
--- /dev/null
+++ b/graphics/door_anims/frame_8355588_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8355588_2.png b/graphics/door_anims/frame_8355588_2.png
new file mode 100644
index 000000000..fff93e91a
--- /dev/null
+++ b/graphics/door_anims/frame_8355588_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8355588_3.png b/graphics/door_anims/frame_8355588_3.png
new file mode 100644
index 000000000..0c1b9c03c
--- /dev/null
+++ b/graphics/door_anims/frame_8355588_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359588_1.png b/graphics/door_anims/frame_8359588_1.png
new file mode 100644
index 000000000..53732f512
--- /dev/null
+++ b/graphics/door_anims/frame_8359588_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359588_2.png b/graphics/door_anims/frame_8359588_2.png
new file mode 100644
index 000000000..53732f512
--- /dev/null
+++ b/graphics/door_anims/frame_8359588_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359788_1.png b/graphics/door_anims/frame_8359788_1.png
new file mode 100644
index 000000000..8f1168aea
--- /dev/null
+++ b/graphics/door_anims/frame_8359788_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359788_2.png b/graphics/door_anims/frame_8359788_2.png
new file mode 100644
index 000000000..041e6293f
--- /dev/null
+++ b/graphics/door_anims/frame_8359788_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359788_3.png b/graphics/door_anims/frame_8359788_3.png
new file mode 100644
index 000000000..f103be5a1
--- /dev/null
+++ b/graphics/door_anims/frame_8359788_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359788_4.png b/graphics/door_anims/frame_8359788_4.png
new file mode 100644
index 000000000..36f6cf135
--- /dev/null
+++ b/graphics/door_anims/frame_8359788_4.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359988_1.png b/graphics/door_anims/frame_8359988_1.png
new file mode 100644
index 000000000..75a43b9fb
--- /dev/null
+++ b/graphics/door_anims/frame_8359988_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359988_2.png b/graphics/door_anims/frame_8359988_2.png
new file mode 100644
index 000000000..a1f6f806c
--- /dev/null
+++ b/graphics/door_anims/frame_8359988_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359988_3.png b/graphics/door_anims/frame_8359988_3.png
new file mode 100644
index 000000000..d7abc49ba
--- /dev/null
+++ b/graphics/door_anims/frame_8359988_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359988_4.png b/graphics/door_anims/frame_8359988_4.png
new file mode 100644
index 000000000..1af99db23
--- /dev/null
+++ b/graphics/door_anims/frame_8359988_4.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359B88_1.png b/graphics/door_anims/frame_8359B88_1.png
new file mode 100644
index 000000000..a5208db18
--- /dev/null
+++ b/graphics/door_anims/frame_8359B88_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359B88_2.png b/graphics/door_anims/frame_8359B88_2.png
new file mode 100644
index 000000000..e3ecef0fe
--- /dev/null
+++ b/graphics/door_anims/frame_8359B88_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359B88_3.png b/graphics/door_anims/frame_8359B88_3.png
new file mode 100644
index 000000000..d4be7a81f
--- /dev/null
+++ b/graphics/door_anims/frame_8359B88_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359B88_4.png b/graphics/door_anims/frame_8359B88_4.png
new file mode 100644
index 000000000..4ba80f998
--- /dev/null
+++ b/graphics/door_anims/frame_8359B88_4.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359CA8_1.png b/graphics/door_anims/frame_8359CA8_1.png
new file mode 100644
index 000000000..c0913878b
--- /dev/null
+++ b/graphics/door_anims/frame_8359CA8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359CA8_2.png b/graphics/door_anims/frame_8359CA8_2.png
new file mode 100644
index 000000000..800bb92c4
--- /dev/null
+++ b/graphics/door_anims/frame_8359CA8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359CA8_3.png b/graphics/door_anims/frame_8359CA8_3.png
new file mode 100644
index 000000000..e2f16ef25
--- /dev/null
+++ b/graphics/door_anims/frame_8359CA8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359FC8_1.png b/graphics/door_anims/frame_8359FC8_1.png
new file mode 100644
index 000000000..9428b111a
--- /dev/null
+++ b/graphics/door_anims/frame_8359FC8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359FC8_2.png b/graphics/door_anims/frame_8359FC8_2.png
new file mode 100644
index 000000000..484eefd83
--- /dev/null
+++ b/graphics/door_anims/frame_8359FC8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_8359FC8_3.png b/graphics/door_anims/frame_8359FC8_3.png
new file mode 100644
index 000000000..467c04f7f
--- /dev/null
+++ b/graphics/door_anims/frame_8359FC8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A168_1.png b/graphics/door_anims/frame_835A168_1.png
new file mode 100644
index 000000000..f23474512
--- /dev/null
+++ b/graphics/door_anims/frame_835A168_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A168_2.png b/graphics/door_anims/frame_835A168_2.png
new file mode 100644
index 000000000..adcb7ce12
--- /dev/null
+++ b/graphics/door_anims/frame_835A168_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A168_3.png b/graphics/door_anims/frame_835A168_3.png
new file mode 100644
index 000000000..e87798cd2
--- /dev/null
+++ b/graphics/door_anims/frame_835A168_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A308_1.png b/graphics/door_anims/frame_835A308_1.png
new file mode 100644
index 000000000..c11c06156
--- /dev/null
+++ b/graphics/door_anims/frame_835A308_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A308_2.png b/graphics/door_anims/frame_835A308_2.png
new file mode 100644
index 000000000..3d825f587
--- /dev/null
+++ b/graphics/door_anims/frame_835A308_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A308_3.png b/graphics/door_anims/frame_835A308_3.png
new file mode 100644
index 000000000..e87798cd2
--- /dev/null
+++ b/graphics/door_anims/frame_835A308_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A4A8_1.png b/graphics/door_anims/frame_835A4A8_1.png
new file mode 100644
index 000000000..9428b111a
--- /dev/null
+++ b/graphics/door_anims/frame_835A4A8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A4A8_2.png b/graphics/door_anims/frame_835A4A8_2.png
new file mode 100644
index 000000000..484eefd83
--- /dev/null
+++ b/graphics/door_anims/frame_835A4A8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A4A8_3.png b/graphics/door_anims/frame_835A4A8_3.png
new file mode 100644
index 000000000..467c04f7f
--- /dev/null
+++ b/graphics/door_anims/frame_835A4A8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A648_1.png b/graphics/door_anims/frame_835A648_1.png
new file mode 100644
index 000000000..7cac61ead
--- /dev/null
+++ b/graphics/door_anims/frame_835A648_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A648_2.png b/graphics/door_anims/frame_835A648_2.png
new file mode 100644
index 000000000..618b958b9
--- /dev/null
+++ b/graphics/door_anims/frame_835A648_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A648_3.png b/graphics/door_anims/frame_835A648_3.png
new file mode 100644
index 000000000..28942389b
--- /dev/null
+++ b/graphics/door_anims/frame_835A648_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A7E8_1.png b/graphics/door_anims/frame_835A7E8_1.png
new file mode 100644
index 000000000..2b51bba5f
--- /dev/null
+++ b/graphics/door_anims/frame_835A7E8_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A7E8_2.png b/graphics/door_anims/frame_835A7E8_2.png
new file mode 100644
index 000000000..b29303c1b
--- /dev/null
+++ b/graphics/door_anims/frame_835A7E8_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A7E8_3.png b/graphics/door_anims/frame_835A7E8_3.png
new file mode 100644
index 000000000..55e1b2db9
--- /dev/null
+++ b/graphics/door_anims/frame_835A7E8_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A988_1.png b/graphics/door_anims/frame_835A988_1.png
new file mode 100644
index 000000000..9428b111a
--- /dev/null
+++ b/graphics/door_anims/frame_835A988_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A988_2.png b/graphics/door_anims/frame_835A988_2.png
new file mode 100644
index 000000000..484eefd83
--- /dev/null
+++ b/graphics/door_anims/frame_835A988_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835A988_3.png b/graphics/door_anims/frame_835A988_3.png
new file mode 100644
index 000000000..467c04f7f
--- /dev/null
+++ b/graphics/door_anims/frame_835A988_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835AB28_1.png b/graphics/door_anims/frame_835AB28_1.png
new file mode 100644
index 000000000..73f90730c
--- /dev/null
+++ b/graphics/door_anims/frame_835AB28_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835AB28_2.png b/graphics/door_anims/frame_835AB28_2.png
new file mode 100644
index 000000000..6d8d9c305
--- /dev/null
+++ b/graphics/door_anims/frame_835AB28_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835AB28_3.png b/graphics/door_anims/frame_835AB28_3.png
new file mode 100644
index 000000000..b3d9eada1
--- /dev/null
+++ b/graphics/door_anims/frame_835AB28_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835AE48_1.png b/graphics/door_anims/frame_835AE48_1.png
new file mode 100644
index 000000000..6d9956306
--- /dev/null
+++ b/graphics/door_anims/frame_835AE48_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835AE48_2.png b/graphics/door_anims/frame_835AE48_2.png
new file mode 100644
index 000000000..62b93f79e
--- /dev/null
+++ b/graphics/door_anims/frame_835AE48_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835AE48_3.png b/graphics/door_anims/frame_835AE48_3.png
new file mode 100644
index 000000000..a98073235
--- /dev/null
+++ b/graphics/door_anims/frame_835AE48_3.png
Binary files differ
diff --git a/graphics/door_anims/frame_835B168_1.png b/graphics/door_anims/frame_835B168_1.png
new file mode 100644
index 000000000..7c75282d6
--- /dev/null
+++ b/graphics/door_anims/frame_835B168_1.png
Binary files differ
diff --git a/graphics/door_anims/frame_835B168_2.png b/graphics/door_anims/frame_835B168_2.png
new file mode 100644
index 000000000..283aceba5
--- /dev/null
+++ b/graphics/door_anims/frame_835B168_2.png
Binary files differ
diff --git a/graphics/door_anims/frame_835B168_3.png b/graphics/door_anims/frame_835B168_3.png
new file mode 100644
index 000000000..457a26c29
--- /dev/null
+++ b/graphics/door_anims/frame_835B168_3.png
Binary files differ
diff --git a/include/field_camera.h b/include/field_camera.h
index d2165780a..2ba583a52 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 sub_805A91C(int x, int y, const u16 *data);
#endif //GUARD_FIELD_CAMERA_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/ld_script.txt b/ld_script.txt
index 856155aa8..fe60a90e3 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -93,6 +93,7 @@ SECTIONS {
src/fieldmap.o(.text);
src/metatile_behavior.o(.text);
asm/field_camera.o(.text);
+ src/field_door.o(.text);
asm/field_door.o(.text);
asm/field_player_avatar.o(.text);
asm/field_map_obj.o(.text);
@@ -408,7 +409,7 @@ SECTIONS {
data/maps.o(.rodata);
src/fieldmap.o(.rodata);
src/metatile_behavior.o(.rodata);
- data/metatile_behavior.o(.rodata);
+ src/field_door.o(.rodata);
data/field_door.o(.rodata);
data/field_player_avatar.o(.rodata);
data/field_map_obj.o(.rodata);
diff --git a/src/field_door.c b/src/field_door.c
new file mode 100644
index 000000000..116cdddee
--- /dev/null
+++ b/src/field_door.c
@@ -0,0 +1,102 @@
+#include "global.h"
+#include "field_camera.h"
+#include "task.h"
+
+struct DoorAnimFrame
+{
+ u8 unk_0;
+ u16 unk_2;
+};
+
+struct DoorGraphics
+{
+ u16 unk_0;
+ u8 unk_2;
+ u8 unk_3;
+ const u8 * unk_4;
+ const u8 * unk_8;
+};
+
+void sub_805AF54(const struct DoorGraphics * a0, int a1, int a2);
+void sub_805AF80(const u8 *a0);
+void sub_805AF94(const struct DoorGraphics * a0, int a1, int a2, const u8 *a3);
+void sub_805AFE8(u16 *a0, u16 a1, const u8 *a2);
+bool32 sub_805B060(const struct DoorGraphics * gfx, const struct DoorAnimFrame * frames, u16 *data);
+
+extern const struct DoorAnimFrame gUnknown_835B488[];
+extern const struct DoorAnimFrame gUnknown_835B49C[];
+extern const struct DoorAnimFrame gUnknown_835B4B0[];
+extern const struct DoorAnimFrame gUnknown_835B4C4[];
+extern const struct DoorGraphics gUnknown_835B5D8[];
+
+void sub_805AF14(const struct DoorGraphics * a0, const struct DoorAnimFrame * a1, int a2, int a3)
+{
+ if (a1->unk_2 == 0xFFFF)
+ {
+ sub_805AF54(a0, a2, a3);
+ }
+ else
+ {
+ sub_805AF80(&a0->unk_4[a1->unk_2]);
+ sub_805AF94(a0, a2, a3, a0->unk_8);
+ }
+}
+
+void sub_805AF54(const struct DoorGraphics * a0, int a1, int a2)
+{
+ if (a0->unk_3 == 0)
+ {
+ CurrentMapDrawMetatileAt(a1, a2);
+ }
+ else
+ {
+ CurrentMapDrawMetatileAt(a1, a2);
+ CurrentMapDrawMetatileAt(a1, a2 - 1);
+ }
+}
+
+void sub_805AF80(const u8 *a0)
+{
+ CpuFastCopy(a0, (void *)(BG_VRAM + 0x7F00), 0x100);
+}
+
+void sub_805AF94(const struct DoorGraphics * a0, int a1, int a2, const u8 *a3)
+{
+ u16 sp00[8];
+ if (a0->unk_3 == 0)
+ {
+ sub_805AFE8(sp00, 0x3F8, a3);
+ }
+ else
+ {
+ sub_805AFE8(sp00, 0x3F8, a3);
+ sub_805A91C(a1, a2 - 1, sp00);
+ sub_805AFE8(sp00, 0x3FC, a3 + 4);
+ }
+ sub_805A91C(a1, a2, sp00);
+}
+
+void sub_805AFE8(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;
+ }
+}
+
+void sub_805B028(u8 taskId)
+{
+ u16 *data = (void *)gTasks[taskId].data;
+ const struct DoorAnimFrame * frames = (const void *)((data[0] << 16) | data[1]);
+ const struct DoorGraphics * gfx = (const void *)((data[2] << 16) | data[3]);
+ if (!sub_805B060(gfx, frames, data))
+ DestroyTask(taskId);
+}
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;