summaryrefslogtreecommitdiff
path: root/engine/overworld/load_map_part.asm
diff options
context:
space:
mode:
authorDaniel Harding <33dannye@gmail.com>2020-05-16 21:42:24 -0500
committerGitHub <noreply@github.com>2020-05-16 21:42:24 -0500
commit8a924f1f783572ff395f617f99546b4c949c8b04 (patch)
tree1b6c7de331cb983256651b11b8adf413a3a434f1 /engine/overworld/load_map_part.asm
parent88d7e9a34a8b610b358cec1ccc6660634ca9ce80 (diff)
parented94962edf1668aba3f60938e8a5ba8040e2a59c (diff)
Merge pull request #30 from entrpntr/spring-cleaning
Spring Cleaning
Diffstat (limited to 'engine/overworld/load_map_part.asm')
-rw-r--r--engine/overworld/load_map_part.asm155
1 files changed, 155 insertions, 0 deletions
diff --git a/engine/overworld/load_map_part.asm b/engine/overworld/load_map_part.asm
new file mode 100644
index 00000000..23758f28
--- /dev/null
+++ b/engine/overworld/load_map_part.asm
@@ -0,0 +1,155 @@
+_LoadMapPart::
+ ld hl, wSurroundingTiles
+ ld a, [wMetatileStandingY]
+ and a
+ jr z, .top_row
+ ld bc, SURROUNDING_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 METATILE_WIDTH
+ ld l, a
+ jr nc, .carry
+ inc h
+
+.carry
+ dec b
+ jr nz, .loop
+ ret
+
+UnusedFunction153ba:
+ decoord 2, 2
+ ld bc, (SURROUNDING_WIDTH + 1) * 2
+ add hl, bc
+ ld c, SCREEN_HEIGHT - 4 * 1
+.loop:
+ ld b, SCREEN_WIDTH - SCREEN_META_WIDTH
+.loop2:
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop2
+ ld a, l
+ add SCREEN_META_WIDTH + METATILE_WIDTH
+ ld l, a
+ jr nc, .carry1
+ inc h
+
+.carry1:
+ ld a, e
+ add SCREEN_META_WIDTH
+ ld e, a
+ jr nc, .carry2
+ inc d
+
+.carry2:
+ dec c
+ jr nz, .loop
+ ret
+
+UnusedFunction153dd:
+ decoord 4, 4
+ ld bc, (SURROUNDING_WIDTH + 1) * 4
+ add hl, bc
+ ld c, SCREEN_HEIGHT - 4 * 2
+.loop:
+ ld b, SCREEN_WIDTH - SCREEN_META_WIDTH - METATILE_WIDTH
+.loop2:
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop2
+ ld a, l
+ add SCREEN_META_WIDTH + METATILE_WIDTH * 2
+ ld l, a
+ jr nc, .carry1
+ inc h
+
+.carry1:
+ ld a, e
+ add SCREEN_META_WIDTH + METATILE_WIDTH
+ ld e, a
+ jr nc, .carry2
+ inc d
+
+.carry2:
+ dec c
+ jr nz, .loop
+ ret
+
+UnusedFunction15400:
+ decoord 6, 6
+ ld bc, (SURROUNDING_WIDTH + 1) * 6
+ add hl, bc
+ ld c, SCREEN_HEIGHT - 4 * 3
+.loop:
+ ld b, SCREEN_WIDTH - SCREEN_META_WIDTH - METATILE_WIDTH * 2
+.loop2:
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop2
+ ld a, l
+ add SCREEN_META_WIDTH + METATILE_WIDTH * 3
+ ld l, a
+ jr nc, .carry1
+ inc h
+
+.carry1:
+ ld a, e
+ add SCREEN_META_WIDTH + METATILE_WIDTH * 2
+ ld e, a
+ jr nc, .carry2
+ inc d
+
+.carry2:
+ dec c
+ jr nz, .loop
+ ret
+
+UnusedFunction15423:
+ decoord 8, 8
+ ld bc, (SURROUNDING_WIDTH + 1) * 8
+ add hl, bc
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld bc, SCREEN_WIDTH + 2
+ add hl, bc
+ ld a, e
+ add SCREEN_META_WIDTH + METATILE_WIDTH * 3 + 1
+ ld e, a
+ jr nc, .carry
+ inc d
+
+.carry:
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ret