Prev: AC52 Up: Map Next: ACD3
AC90: Café door — colour-cycling animation and key handler
Used by the routine at cafe_visitor_entry.
Draws the hero and opens the door, then loops animating the
"Para Café" logo with a cycling ink colour effect. Each iteration
sets BRIGHT 1 + INK [counter 2–6] before drawing the door frame
(frame_cafe_door_open) via draw_frame, which uses RST $10 and inherits the active
ink colour — making the whole logo cycle through all bright colours
on a blue background. 'e' enters the café (cafe_encounter),
'q' closes the door and returns to the main loop.
cafe_door AC90 CALL draw_hero Draw hero body (draw_hero)
AC93 CALL door_open Open door animation (door_open)
AC96 LD DE,$EA59 Set CHARS=$EA59 (set_chars)
AC99 CALL set_chars
cafe_door_0 AC9C LD A,$13 Set BRIGHT 1 + INK [counter] via RST $10 — applies to next draw
AC9E RST $10
AC9F LD A,$01
ACA1 RST $10
ACA2 LD A,$10
ACA4 RST $10
ACA5 LD A,($ACD6) Load door state counter (var_cafe_door_colour)
ACA8 INC A INC A
ACA9 CP $07 If state == 7 → reset to 0 (cafe_door_return2)
ACAB CALL Z,cafe_door_return2
ACAE LD ($ACD6),A Store updated door state (var_cafe_door_colour)
ACB1 RST $10 Print door state char at cursor (RST $10)
ACB2 LD HL,$ACD8 Draw door opening frame (frame_cafe_door_open)
ACB5 CALL draw_frame
ACB8 LD A,$13 Reset BRIGHT 0 via RST $10
ACBA RST $10
ACBB LD A,$00
ACBD RST $10
ACBE LD A,($5C08) Read last keypress ($5C08)
ACC1 CP $65 'e' ($65) → enter café (cafe_encounter)
ACC3 JP Z,cafe_encounter
ACC6 CP $71 'q' ($71) → close door and exit
ACC8 JP Z,cafe_door_1
ACCB JR cafe_door_0 Loop back to animation
cafe_door_1 ACCD CALL door_close
ACD0 JP main_1
Prev: AC52 Up: Map Next: ACD3