Prev: A420 Up: Map Next: A462
A444: Character sleeps
This makes a character disappear when it gets into bed and updates the room definition to show them sleeping.
Used by the routine at character_event.
Input
A Route index.
HL Pointer to route.
character_sleeps A444 PUSH AF Save the route index
A445 SUB $07 Route indices 7..12 map to beds array indices 0..5
A447 ADD A,A Turn index into an offset
A448 EX DE,HL Move the route pointer into DE for the common part later
Poke object.
A449 LD C,A Fetch the bed object pointer from beds array
A44A LD B,$00
A44C LD HL,$6B79
A44F ADD HL,BC
A450 LD C,(HL)
A451 INC HL
A452 LD B,(HL)
A453 LD A,$17 Write interiorobject_OCCUPIED_BED to the bed object
A455 LD (BC),A
A456 POP AF Restore the route index
A457 CP $0A Is the route index greater than or equal to routeindex_10_PRISONER_SLEEPS_1?
A459 JP NC,character_sleeps_0 Jump if so
A45C LD C,$03 Otherwise room is room_3_HUT2RIGHT
A45E JR character_sit_sleep_common
character_sleeps_0 A460 LD C,$05 Room is room_5_HUT3RIGHT
FALL THROUGH into character_sit_sleep_common.
Prev: A420 Up: Map Next: A462