diff options
Diffstat (limited to 'engine/gfx')
| -rwxr-xr-x | engine/gfx/place_graphic.asm | 55 | 
1 files changed, 55 insertions, 0 deletions
| diff --git a/engine/gfx/place_graphic.asm b/engine/gfx/place_graphic.asm new file mode 100755 index 00000000..4092ad35 --- /dev/null +++ b/engine/gfx/place_graphic.asm @@ -0,0 +1,55 @@ +PlaceGraphic: +; 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 + +	ldh 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 + +	ldh 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 | 
