Prev: 9924 Up: Map Next: 9970
9962: Draw a sprite, choosing the routine from the drawing mode
Used by the routine at DOOR.
Neither this nor DRAW_SPRITE_COLOURS does any drawing. Each loads the address of its own table of eight routines and falls into the tail of DISPATCH_ACTOR, which indexes the table and jumps through the JP (HL) the tape left at $5CB0 -- the same machinery that picks an actor's handler, reused for picking how a sprite gets put on the screen.
The mode is the top three bits of the actor's +$05, so the low five bits are free for other flags -- PLAYER_AT_DOOR reads bit 6 of the same byte as a door's facing.
Input
C Sprite number
B Drawing mode in its top three bits
DE Where to draw, as pixel coordinates
DRAW_SPRITE_PIXELS 9962 LD HL,PIXEL_DRAWERS One table of eight...
This entry point is used by the routine at DRAW_SPRITE_COLOURS.
DRAW_WITH_MODE 9965 PUSH BC
9966 LD A,B ...indexed by the top three bits of B.
9967 RLCA
9968 RLCA
9969 RLCA
996A AND $07
996C LD C,A
996D JP DISPATCH_TYPE_C Into the dispatcher's tail, which does the lookup and the jump.
Prev: 9924 Up: Map Next: 9970