Routines |
Prev: B729 | Up: Map | Next: B79B |
This resets the game.
|
||||
Cause discovery of all items.
|
||||
reset_game | B75A | LD BC,$1000 | Set B for 16 iterations (item__LIMIT) and set C (item index) to zero | |
Start loop (once per item)
|
||||
reset_game_0 | B75D | PUSH BC | Preserve the iteration counter and item index over the next call | |
B75E | CALL item_discovered | Cause item C to be discovered | ||
B761 | POP BC | Restore | ||
B762 | INC C | Increment the item index | ||
B763 | DJNZ reset_game_0 | ...loop | ||
Reset the message queue.
|
||||
B765 | LD HL,$7CFE | Reset the message queue pointer to its default of message_queue[2] | ||
B768 | LD ($7D11),HL | |||
B76B | CALL reset_map_and_characters | Reset all visible characters, clock, day_or_night flag, general flags, collapsed tunnel objects, lock the gates, reset all beds, clear the mess halls and reset characters | ||
B76E | XOR A | Clear the hero's vischar flags | ||
B76F | LD ($8001),A | |||
Reset score digits, hero_in_breakfast, red_flag, automatic_player_counter, in_solitary and morale_exhausted which occupy a contiguous ten byte region.
|
||||
B772 | LD HL,$A132 | Point HL at score_digits | ||
B775 | LD B,$0A | Set B for ten iterations | ||
Start loop (once per score digit)
|
||||
reset_game_1 | B777 | LD (HL),A | Zero the byte | |
B778 | INC HL | Then advance to the next byte | ||
B779 | DJNZ reset_game_1 | ...loop | ||
Reset morale.
|
||||
B77B | LD (HL),$70 | Set morale to morale_MAX | ||
B77D | CALL plot_score | Draw the current score to the screen | ||
Reset and redraw items.
|
||||
B780 | LD HL,$FFFF | Set both items_held to item_NONE ($FF) | ||
B783 | LD ($8215),HL | |||
B786 | CALL draw_all_items | Draw held items | ||
Reset the hero's sprite.
|
||||
B789 | LD HL,$CE2E | Set vischar.mi.sprite to the prisoner sprite set | ||
B78C | LD ($8015),HL | |||
B78F | LD A,$02 | Set the global current room index to room_2_HUT2LEFT | ||
B791 | LD ($68A0),A | |||
Put the hero to bed.
|
||||
B794 | CALL hero_sleeps | The hero sleeps | ||
B797 | CALL enter_room | The hero enters a room | ||
B79A | RET | Return |
Prev: B729 | Up: Map | Next: B79B |