# File lib/as_gamestate.rb, line 79
  def run(releaseOld = true)
    @old_state, @@current = @@current, self
    @old_state.release_state if releaseOld and @old_state.respond_to?(:release_state)
    
    self.load_state if self.respond_to?(:load_state)
    begin
      value = game_loop
    rescue
      handle_exception
    end
    self.release_state if self.respond_to?(:release_state)
    
    @@current = @old_state
    @old_state.load_state if @old_state.respond_to?(:load_state)
    
    return value
  end