jetpac | Routines |
Prev: 718e | Up: Map | Next: 71d6 |
|
||||||||
7197 | exx | |||||||
7198 | ld hl,($5dcf) | HL=actor coords | ||||||
719b | call $71d6 | HL=coord to attribute file address (using HL) | ||||||
719e | ld a,($5dc4) | |||||||
71a1 | ld b,a | B=width loop counter (in pixels) | ||||||
71a2 | ld a,($5dc3) | |||||||
71a5 | rrca | |||||||
71a6 | rrca | |||||||
71a7 | inc a | |||||||
71a8 | rrca | |||||||
71a9 | and $1f | |||||||
71ab | inc a | |||||||
71ac | ld c,a | C=height loop counter (in pixels) | ||||||
71ad | ld d,(ix+$03) | D=object colour attribute | ||||||
71b0 | ld e,b | E=width loop counter (in pixels) | ||||||
71b1 | push hl | |||||||
Loop for updating attribute file with colour.
|
||||||||
71b2 | ld a,h | A=actor Y position | ||||||
71b3 | cp $5b | Decrement position if address is outside of attribute file address range | ||||||
71b5 | jr nc,$71c8 | |||||||
71b7 | cp $58 | |||||||
71b9 | jr c,$71c8 | |||||||
71bb | ld (hl),d | Otherwise, set the colour at this location | ||||||
71bc | inc l | Next tile column | ||||||
71bd | ld a,l | Next tile if column < screen width (32 chars) | ||||||
71be | and $1f | |||||||
71c0 | jr nz,$71c6 | |||||||
71c2 | ld a,l | else, wrap-around and continue applying colour | ||||||
71c3 | sub $20 | |||||||
71c5 | ld l,a | L=start of current row | ||||||
71c6 | djnz $71b2 | Loop back and continue with next tile | ||||||
Decrement the vertical position and colour the tiles.
|
||||||||
71c8 | pop hl | |||||||
71c9 | push bc | |||||||
71ca | and a | Clear Carry flag | ||||||
71cb | ld bc,$0020 | HL -= 32 tiles. Places address pointer previous line | ||||||
71ce | sbc hl,bc | |||||||
71d0 | pop bc | |||||||
71d1 | ld b,e | B=reset to original width counter | ||||||
71d2 | dec c | Decrement height counter | ||||||
71d3 | jr nz,$71b1 | Repeat until all tiles have been coloured | ||||||
71d5 | ret |
Prev: 718e | Up: Map | Next: 71d6 |