Prev: 7D8D Up: Map Next: 7DEA
7DAB: Door collision and visitor dispatch
Used by the routine at draw_door.
door_collision 7DAB LD A,($C34B) Load var_door_x (door X) into A
7DAE CP $09 If door not at trigger position ($09), RET
7DB0 RET NZ RET NZ
7DB1 LD A,($5C78) Read FRAMES counter ($5C78) as entropy source
7DB4 SUB $80 SUB $80 — reduce to small positive value
7DB6 LD B,A Advance PRNG (prng_tick) A times to stir state
door_collision_0 7DB7 PUSH BC
7DB8 CALL prng_tick
7DBB POP BC
7DBC DJNZ door_collision_0
7DBE LD A,($C34D) Load var_prng1 (visitor slot 1) into A
7DC1 CP $02 If visitor == 2 (prostitute) → prostitute
7DC3 JP Z,prostitute Jump to prostitute encounter
7DC6 CP $03 If visitor == 3 (old woman) → oldwoman_encounter
7DC8 JP Z,oldwoman_encounter Jump to old woman encounter
7DCB CP $04 If visitor == 4 (café) → cafe_visitor_entry
7DCD JP Z,cafe_visitor_entry Jump to café encounter
7DD0 LD A,($C34A) Load var_prng2 (visitor slot 2) into A
7DD3 CP $01 If visitor == 1 (thief) → thief_encounter
7DD5 JP Z,thief_encounter Jump to thief encounter
7DD8 LD A,($C34A) Load var_prng2 again
7DDB CP $02 If visitor == 2 (police) → police
7DDD JP Z,police Jump to police encounter
7DE0 RET
Prev: 7D8D Up: Map Next: 7DEA