Prev: A289 Up: Map Next: A33F
A2E2: End of breakfast
This makes the hero and the six other prisoners finish breakfast.
Used by the routine at event_breakfast_time.
end_of_breakfast A2E2 LD A,($A137) If the hero's not at breakfast, jump forward (note: it could jump one instruction later instead)
A2E5 AND A
A2E6 JP Z,end_of_breakfast_0
A2E9 LD HL,$800F Set the hero's vischar position to (52,62)
A2EC LD (HL),$34
A2EE INC L
A2EF INC L
A2F0 LD (HL),$3E
end_of_breakfast_0 A2F2 XOR A Clear the 'at breakfast' flag
A2F3 LD ($A137),A
A2F6 LD BC,$9003 Set the hero's route to (REVERSED routeindex_16_BREAKFAST_25, 3)
A2F9 CALL set_hero_route
Position all six prisoners.
A2FC LD HL,$769F Point HL at characterstruct 20's room field (character 20 is the first of the prisoners)
A2FF LD DE,$0007 Prepare the characterstruct stride
A302 LD A,$19 Prepare room_25_MESS_HALL
A304 LD B,$03 Do the first three prisoner characters
Start loop
end_of_breakfast_1 A306 LD (HL),A Set this characterstruct's room to room_25_MESS_HALL
A307 ADD HL,DE Advance to the next characterstruct
A308 DJNZ end_of_breakfast_1 ...loop
A30A LD A,$17 Prepare room_23_MESS_HALL
A30C LD B,$03 Do the second three prisoner characters
Start loop
end_of_breakfast_2 A30E LD (HL),A Set this characterstruct's room to room_23_MESS_HALL
A30F ADD HL,DE Advance to the next characterstruct
A310 DJNZ end_of_breakfast_2 ...loop
A312 LD A,$90 Set initial route index in A'. This gets incremented by set_prisoners_and_guards_route_B for every route it assigns
A314 EX AF,AF'
A315 LD C,$03 Set route step to 3
A317 CALL set_prisoners_and_guards_route_B Set the routes of all characters in prisoners_and_guards
Update all the benches to be empty.
A31A LD A,$0D Prepare interiorobject_EMPTY_BENCH
A31C LD ($6F17),A Set room definition 23's bench_A object to interiorobject_EMPTY_BENCH
A31F LD ($6F1A),A Set room definition 23's bench_B object to interiorobject_EMPTY_BENCH
A322 LD ($6F1D),A Set room definition 23's bench_C object to interiorobject_EMPTY_BENCH
A325 LD ($6F4F),A Set room definition 25's bench_D object to interiorobject_EMPTY_BENCH
A328 LD ($6F52),A Set room definition 25's bench_E object to interiorobject_EMPTY_BENCH
A32B LD ($6F55),A Set room definition 25's bench_F object to interiorobject_EMPTY_BENCH
A32E LD ($6F58),A Set room definition 25's bench_G object to interiorobject_EMPTY_BENCH
A331 LD A,($68A0) If the global current room index is outdoors, or a tunnel room then return
A334 AND A
A335 RET Z
A336 CP $1D
A338 RET NC
A339 CALL setup_room Expand out the room definition for room_index
A33C JP plot_interior_tiles Render visible tiles array into the screen buffer and exit via (note: different to wake_up's end)
Prev: A289 Up: Map Next: A33F