Prev: 28390 Up: Map Next: 28457
28432: Paint a character's attributes
Used by the routine at 28390.
Input
IX A character's entry in table of characters' current positions at 25244
28432 LD C,(IX+1) Load C with character's x-coordinate (characters)
28435 LD B,(IX+2) Load B with character's y-coordinate (characters)
28438 CALL 54148 Load HL with attribute file address for coordinates (C, B)
The operand of the instruction at 28441 represents the character's magic level / attribute value. This is modified by the instruction at 28400.
28441 LD A,0 Load A with magic level / attribute value
28443 LD B,4 Load B with 4 (as characters are four characters high)
28445 PUSH BC Store BC (B = remaining number of character rows to paint)
28446 LD (HL),A Paint character's attribute at coordinates (C, B)...
28447 INC HL ...
28448 LD (HL),A ...and at coordinates (C + 1, B)
28449 LD BC,31 Advance down one character row, and left one character to coordinates (C, B + 1)...
28452 ADD HL,BC ...
28453 POP BC Restore BC (B = remaining number of character rows to paint)
28454 DJNZ 28445 Decrease remaining number of character rows to paint and loop back to 28445
28456 RET Return
Prev: 28390 Up: Map Next: 28457