Prev: 87EA Up: Map Next: 8900
8800: Prostitute room encounter — main dispatcher
Entry point after hero accepts prostitute's invitation. Draws the room,
shows the service menu, dispatches to the chosen sex sequence, then
handles payment and returns to main loop.
Setup
prostitute_room 8800 CALL fade_out Fade out to blue (fade_out)
8803 CALL draw_room_bg Draw room background (draw_room_bg)
8806 CALL draw_bed_scene Draw bed scene (draw_bed_scene)
8809 CALL draw_hero_in_room Draw hero (draw_hero_in_room)
880C CALL draw_hud Draw HUD (draw_hud)
880F LD A,$08 Delay 8
8811 CALL delay_a
8814 LD DE,$8D94 Set CHARS=$8D94 ("Então o que queres?"), draw service menu (frame_bubble_prostitute_r6c1)
8817 CALL set_chars
881A LD HL,$93FC
881D CALL draw_frame
Wait for keypress — choose service
prostitute_room_0 8820 CALL wait_keypress Wait for keypress (wait_keypress)
8823 LD A,($C34C) Load key
8826 CP $66 'f' ($66) → vaginal sex (prostitute_room_1)
8828 JP Z,prostitute_room_1
882B CP $63 'c' ($63) → anal sex (prostitute_room_2)
882D JP Z,prostitute_room_2
8830 CP $62 'b' ($62) → oral sex (prostitute_room_3)
8832 JP Z,prostitute_room_3
8835 JR prostitute_room_0 Loop back to wait
Vaginal sex (key 'f')
prostitute_room_1 8837 LD DE,$8DF4 Set CHARS=$8DF4 ("Ir-te à cona"), draw request bubble (frame_bubble_hero_r1c8)
883A CALL set_chars
883D LD HL,$AF84
8840 CALL draw_frame
8843 LD A,$0A Delay 10
8845 CALL delay_a
8848 CALL draw_room_bg Draw room background (draw_room_bg)
884B CALL vaginal_seq Vaginal sex sequence (vaginal_seq)
884E JP prostitute_room_4 Jump to post-sex payment (prostitute_room_4)
Anal sex (key 'c')
prostitute_room_2 8851 LD DE,$8E54 Set CHARS=$8E54 ("Comer-te o cu"), draw request bubble (frame_bubble_hero_r1c8)
8854 CALL set_chars
8857 LD HL,$AF84
885A CALL draw_frame
885D LD A,$0A Delay 10
885F CALL delay_a
8862 CALL draw_room_bg Draw room background (draw_room_bg)
8865 CALL anal_seq Anal sex sequence (anal_seq)
8868 JP prostitute_room_4 Jump to post-sex payment (prostitute_room_4)
Oral sex (key 'b')
prostitute_room_3 886B LD DE,$8EB4 Set CHARS=$8EB4 ("Faz-me um broche"), draw request bubble (frame_bubble_hero_r1c8)
886E CALL set_chars
8871 LD HL,$AF84
8874 CALL draw_frame
8877 LD A,$0A Delay 10
8879 CALL delay_a
887C CALL draw_room_bg Draw room background (draw_room_bg)
887F CALL oral_seq Oral sex sequence (oral_seq)
Post-sex — payment
prostitute_room_4 8882 CALL draw_room_bg Draw room background (draw_room_bg)
8885 CALL draw_bed_scene Draw bed scene (draw_bed_scene)
8888 CALL draw_hero_in_room Draw hero (draw_hero_in_room)
888B LD A,($5C78) Read FRAMES + SUB $80 for entropy
888E SUB $80
8890 LD B,A
prostitute_room_5 8891 PUSH BC Stir PRNG B times (prng_tick)
8892 CALL prng_tick
8895 POP BC
8896 DJNZ prostitute_room_5
8898 LD DE,$8F14 Set CHARS=$8F14, draw "São 1000$00" (frame_bubble_prostitute_r6c1)
889B CALL set_chars
889E LD HL,$93FC
88A1 CALL draw_frame
88A4 LD DE,$3130 DE = "10" (ASCII digits for 1000$00)
88A7 LD B,$0A B = 10 (default: 1000$00)
88A9 LD A,($C34A) Load PRNG2 (var_prng2)
88AC CP $01 PRNG2==1 → prostitute_room_7 (2000$00 variant)
88AE JP Z,prostitute_room_7
88B1 LD A,($C34A) PRNG2==2 → prostitute_room_8 (3000$00 variant)
88B4 CP $02
88B6 JP Z,prostitute_room_8
prostitute_room_6 88B9 CALL purchase_handler Purchase handler (purchase_handler)
88BC LD A,($C33B) Load paid flag (var_paid)
88BF CP $00 If unpaid → reinaldo_encounter (Reinaldo)
88C1 JP Z,reinaldo_encounter
88C4 CALL deduct_money Deduct money (deduct_money)
88C7 LD A,($C34A) Add PRNG2+1 to score (score_inc_lo)
88CA LD B,A
88CB INC B
88CC CALL score_inc_lo
88CF LD A,$0A Delay 10
88D1 CALL delay_a
88D4 JP main_0 Return to main loop (main_0)
2000$00 price variant (PRNG2==1)
prostitute_room_7 88D7 LD A,$16 Print '2' at (7,1) — overlay price digit
88D9 RST $10
88DA LD A,$07
88DC RST $10
88DD LD A,$01
88DF RST $10 DE = "20" (ASCII price digits for 2000$00), B = 20 (units to deduct)
88E0 LD A,$2C
88E2 RST $10
88E3 LD DE,$3230
88E6 LD B,$14
88E8 JP prostitute_room_6 Jump to purchase handler (prostitute_room_6)
3000$00 price variant (PRNG2==2)
prostitute_room_8 88EB LD A,$16 Print '3' at (7,1) — overlay price digit
88ED RST $10
88EE LD A,$07
88F0 RST $10
88F1 LD A,$01
88F3 RST $10 DE = "30" (ASCII price digits for 3000$00), B = 30 (units to deduct)
88F4 LD A,$2D
88F6 RST $10
88F7 LD DE,$3330
88FA LD B,$1E
88FC JP prostitute_room_6 Jump to purchase handler (prostitute_room_6)
Prev: 87EA Up: Map Next: 8900