Prev: B038 Up: Map Next: B074
B03F: Redraw the whole screen on entering a room
Used by the routine at end_of_frame.
Only on the first frame in a room, which build_screen_objects flags at $5BB7. Every other frame draws only what changed; this one paints the room's colour over the whole screen, redraws the panel, the carried objects, the sun or moon and the counters, and then copies the whole buffer to the display.
no_delay B03F LD A,($5BB7) not a new room: on to the next frame
B042 AND A
B043 JR Z,next_frame_or_die
B045 XOR A once only
B046 LD ($5BB7),A
B049 LD A,($5BAD) the whole attribute file in the room's colour
B04C CALL fill_attr
B04F CALL display_objects the three objects being carried
B052 CALL colour_panel the panel's colours and its artwork
B055 CALL colour_sun_moon
B058 CALL display_panel
B05B LD IX,sun_moon_scratchpad the sun or moon in its frame
B05F CALL display_sun_moon_frame
B062 CALL display_day the day, the days, the lives icon and the lives
B065 CALL print_days
B068 CALL print_lives_gfx
B06B CALL print_lives
B06E CALL update_screen the whole buffer to the display
B071 CALL reset_objs_wipe_flag nothing drawn so far needs wiping
Prev: B038 Up: Map Next: B074