Prev: BC25 Up: Map Next: BC70
BC56: Draw a sprite several times in a line
Used by the routines at DISPLAY_PANEL and PRINT_BORDER.
Used to build the border (PRINT_BORDER) and the panel's frame (DISPLAY_PANEL) out of repeated pieces, drawn through the spare record at PANEL_RECORD. As Knight Lore's multiple_print_sprite.
Input
IX the record: the graphic at +0, the flags at +7, the pixel position at +$1A and +$1B
B how many times
E the step in x between copies
D the step in y between copies
MULTIPLE_PRINT_SPRITE BC56 PUSH BC draw it (the entry into CALC_PIXEL_XY_AND_RENDER past the projection), keeping the registers
BC57 PUSH DE
BC58 PUSH HL
BC59 CALL PRINT_SPRITE
BC5C POP HL
BC5D POP DE
BC5E POP BC
BC5F LD A,(IX+$1A) move the record's x by E and y by D
BC62 ADD A,E
BC63 LD (IX+$1A),A
BC66 LD A,(IX+$1B)
BC69 ADD A,D
BC6A LD (IX+$1B),A
BC6D DJNZ MULTIPLE_PRINT_SPRITE and again
BC6F RET
Prev: BC25 Up: Map Next: BC70