![]() |
Routines |
| Prev: AC52 | Up: Map | Next: ACD3 |
|
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 |