Prev: B59C Up: Map Next: B5E0
B5B6: Prostitute enters through door, erase door sprite
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