diff options
Diffstat (limited to 'engine/routines/placegraphic.asm')
-rw-r--r-- | engine/routines/placegraphic.asm | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/engine/routines/placegraphic.asm b/engine/routines/placegraphic.asm new file mode 100644 index 000000000..d72364776 --- /dev/null +++ b/engine/routines/placegraphic.asm @@ -0,0 +1,56 @@ +PlaceGraphic: ; 2ef6e +; Fill wBoxAlignment-aligned box width b height c +; with iterating tile starting from hGraphicStartTile at hl. +; Predef $13 + + 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 |