diff options
Diffstat (limited to 'engine/gfx/placegraphic.asm')
-rw-r--r-- | engine/gfx/placegraphic.asm | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/engine/gfx/placegraphic.asm b/engine/gfx/placegraphic.asm new file mode 100644 index 000000000..21b914950 --- /dev/null +++ b/engine/gfx/placegraphic.asm @@ -0,0 +1,55 @@ +PlaceGraphic: ; 2ef6e +; Fill wBoxAlignment-aligned box width b height c +; with iterating tile starting from hGraphicStartTile at hl. + + ld de, SCREEN_WIDTH + + ld a, [wBoxAlignment] + and a + jr nz, .right + + ld a, [hGraphicStartTile] +.x1 + push bc + push hl + +.y1 + ld [hl], a + add hl, de + inc a + dec c + jr nz, .y1 + + pop hl + inc hl + pop bc + dec b + jr nz, .x1 + ret + +.right +; Right-aligned. + push bc + ld b, 0 + dec c + add hl, bc + pop bc + + ld a, [hGraphicStartTile] +.x2 + push bc + push hl + +.y2 + ld [hl], a + add hl, de + inc a + dec c + jr nz, .y2 + + pop hl + dec hl + pop bc + dec b + jr nz, .x2 + ret |