![]() |
Routines |
| Prev: 87EA | Up: Map | Next: 8900 |
|
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 |