![]() |
Routines |
| Prev: B867 | Up: Map | Next: B8B1 |
|
Entry point called from the door-collision dispatcher (door_collision).
1. Opens the door (door_open). 2. Turns hero face toward prostitute (face_prostitute). Long delay (delay_ffff). 3. Prostitute walks out of door (prostitute_exit, 2-frame animation). 4. Advances PRNG twice (prng_advance_2) then picks an opening line: PRNG2 == 0 → CHARS=$CB2A PRNG2 == 1 → CHARS=$CBEA PRNG2 == 2 → CHARS=$CCAA 5. Draws opening-line bubble (frame_bubble_prostitute_r0c16). 6. Input loop — waits for keypress (wait_keypress): 's' → accept → accept_prostitute 'n' or 'q' → refuse → refuse_prostitute other → loop
|
||||
| prostitute | B86A | CALL door_open | Open door (door_open) | |
| B86D | CALL face_prostitute | Turn hero face toward prostitute (face_prostitute) | ||
| B870 | CALL delay_ffff | Long delay (delay_ffff) | ||
| B873 | CALL prostitute_exit | Prostitute exits door — 2-frame animation (prostitute_exit) | ||
| B876 | CALL prng_advance_2 | Advance PRNG (prng_advance_2) — step 1 | ||
| B879 | CALL prng_advance_2 | Advance PRNG (prng_advance_2) — step 2 | ||
| B87C | NOP | Unused padding (5 NOPs) | ||
| B87D | NOP | |||
| B87E | NOP | |||
| B87F | NOP | |||
| B880 | NOP | |||
| B881 | CALL set_chars_CB2A | Default CHARS=$CB2A ("Olá não queres entrar?") via set_chars_CB2A | ||
| B884 | LD A,($C34A) | Load PRNG2 (var_prng2) | ||
| B887 | CP $01 | If PRNG2==1: set CHARS=$CBEA ("Queres vir comigo?") via set_chars_CBEA | ||
| B889 | CALL Z,set_chars_CBEA | |||
| B88C | LD A,($C34A) | Load PRNG2 (var_prng2) | ||
| B88F | CP $02 | If PRNG2==2: set CHARS=$CCAA ("Queres provar?") via set_chars_CCAA | ||
| B891 | CALL Z,set_chars_CCAA | |||
| B894 | LD HL,$B8B1 | HL = frame_bubble_prostitute_r0c16 (opening-line speech bubble frame) | ||
| B897 | CALL draw_frame | Draw opening-line bubble (draw_frame) | ||
| prostitute_0 | B89A | CALL wait_keypress | Wait for keypress (wait_keypress) | |
| B89D | LD A,($C34C) | Load pressed key (var_last_key) | ||
| B8A0 | CP $73 | CP 's' ($73) | ||
| B8A2 | JP Z,accept_prostitute | 's' → accept, enter room (accept_prostitute) | ||
| B8A5 | CP $6E | CP 'n' ($6E) | ||
| B8A7 | JP Z,refuse_prostitute | 'n' → refuse (refuse_prostitute) | ||
| B8AA | CP $71 | CP 'q' ($71) | ||
| B8AC | JP Z,refuse_prostitute | 'q' → refuse (refuse_prostitute) | ||
| B8AF | JR prostitute_0 | Loop back to keypress wait | ||
| Prev: B867 | Up: Map | Next: B8B1 |