![]() |
Routines |
| Prev: B59C | Up: Map | Next: B5E0 |
|
Sets CHARS=$C8E0 (exit tileset) via direct $5C36 write. Draws entry frame 1 (frame_prostitute_exit_1 — same sprite, prostitute moving inward). Calls long delay (delay_long).
Erases the door sprite by printing 5 blank spaces ($80) at column 10, rows 2-16 (15 rows) via an inline loop using print_spaces (print-spaces helper).
Called from accept_prostitute (accepted) and refuse_prostitute (refused).
|
||||
| prostitute_enter | B5B6 | LD HL,$5C36 | Set CHARS=$C8E0 via direct write to $5C36/$5C37 | |
| B5B9 | LD A,$E0 | |||
| B5BB | LD (HL),A | |||
| B5BC | INC HL | |||
| B5BD | LD A,$C8 | |||
| B5BF | LD (HL),A | |||
| B5C0 | LD HL,$B5F0 | Load frame frame_prostitute_exit_1 address into HL | ||
| B5C3 | CALL draw_frame | Draw entry frame (draw_frame) | ||
| B5C6 | CALL delay_long | Long delay (delay_long) | ||
| B5C9 | LD D,$02 | LD D,$02 (start row = 2) | ||
| B5CB | LD E,$0A | LD E,$0A (column 10) | ||
| B5CD | LD C,$0F | LD C,$0F (15 rows to erase) | ||
| prostitute_enter_0 | B5CF | LD A,$16 | Loop: emit PRINT AT D,E + LD B,$05 | |
| B5D1 | RST $10 | |||
| B5D2 | LD A,D | |||
| B5D3 | RST $10 | |||
| B5D4 | LD A,E | |||
| B5D5 | RST $10 | |||
| B5D6 | LD B,$05 | LD B,$05 (5 spaces per row) | ||
| B5D8 | CALL print_spaces | CALL print_spaces (print B spaces) | ||
| B5DB | INC D | INC D (advance to next row) | ||
| B5DC | DEC C | DEC C | ||
| B5DD | JR NZ,prostitute_enter_0 | JR NZ back to loop start | ||
| B5DF | RET | |||
| Prev: B59C | Up: Map | Next: B5E0 |