     @flagHistory.push flagEvent
 
   loadFromLevel: (level, willSimulate=true) ->
+    if level.slug in ['the-first-kithmaze', 'the-second-kithmaze', 'the-final-kithmaze']
+      @realTimeSpeedFactor = 3
     @levelComponents = level.levelComponents
     @thangTypes = level.thangTypes
     @loadSystemsFromLevel level


  shouldDelayRealTimeSimulation: (t) ->
    return false unless @realTime
    timeSinceStart = t - @worldLoadStartTime
    timeLoaded = @frames.length * @dt * 1000
    timeBuffered = timeLoaded - timeSinceStart
    timeBuffered > REAL_TIME_BUFFER_MAX

  shouldUpdateRealTimePlayback: (t) ->
    return false unless @realTime
    return false if @frames.length * @dt is @lastRealTimeUpdate
    timeLoaded = @frames.length * @dt * 1000
    timeSinceStart = t - @worldLoadStartTime
    remainingBuffer = @lastRealTimeUpdate * 1000 - timeSinceStart
    remainingBuffer < REAL_TIME_BUFFER_MIN

  shouldContinueLoading: (t1, loadProgressCallback, skipDeferredLoading, continueLaterFn) ->
    t2 = now()

    continueLaterFn = =>
      @loadFrames(loadedCallback, errorCallback, loadProgressCallback, preloadedCallback, skipDeferredLoading, loadUntilFrame) unless @destroyed
    if @realTime and not @countdownFinished
      @realTimeSpeedFactor ?= 1
      return setTimeout @finishCountdown(continueLaterFn), REAL_TIME_COUNTDOWN_DELAY
    t1 = now()
    @t0 ?= t1
