summaryrefslogtreecommitdiff
path: root/engine/overworld/load_map_part.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/load_map_part.asm')
-rw-r--r--engine/overworld/load_map_part.asm36
1 files changed, 36 insertions, 0 deletions
diff --git a/engine/overworld/load_map_part.asm b/engine/overworld/load_map_part.asm
new file mode 100644
index 000000000..2184ebf7e
--- /dev/null
+++ b/engine/overworld/load_map_part.asm
@@ -0,0 +1,36 @@
+_LoadMapPart:: ; 4d15b
+ ld hl, wMisc
+ ld a, [wMetatileStandingY]
+ and a
+ jr z, .top_row
+ ld bc, WMISC_WIDTH * 2
+ add hl, bc
+
+.top_row
+ ld a, [wMetatileStandingX]
+ and a
+ jr z, .left_column
+ inc hl
+ inc hl
+
+.left_column
+ decoord 0, 0
+ ld b, SCREEN_HEIGHT
+.loop
+ ld c, SCREEN_WIDTH
+.loop2
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop2
+ ld a, l
+ add 4
+ ld l, a
+ jr nc, .carry
+ inc h
+
+.carry
+ dec b
+ jr nz, .loop
+ ret