anchor.diff:  
         // If we get here, all pending actions are done, so advance to the next
         // tick until an actor moves.
  -      while (actions.length == 0) {
  +      while (_action == null) {
           final actor = stage.actors.current;
   
           // If we are still waiting for input for the actor, just return (again).
  
positive.code:         gameResult.madeProgress = true;
  
          if (result.done) {
            actions.removeFirst();
  
            if (action.consumesEnergy) {
              action.actor.finishTurn(action);
              stage.actors.advance();
            }
  
            // Refresh every time the hero takes a turn.
            if (action.actor == hero) return gameResult;
          }
  
          if (gameResult.events.length > 0) return gameResult;
  
negative.code: 
  /// Root class for the game engine. All game state is contained within this.
  class Game {
    final Area area;
    final int level;
    final Stage stage = new Stage(80, 40);
    final Log log = new Log();
    Action _action;
    Hero hero;
    Quest quest;
  
    Game(this.area, this.level, Content content, HeroSave save) {
      stage.game = this;
      area.buildStage(this, level, save);
      Fov.refresh(stage, hero.pos);
    }
  