diff --git a/fofix/game/guitarscene/GuitarScene.py b/fofix/game/guitarscene/GuitarScene.py index 50c430586..c04d8f58a 100644 --- a/fofix/game/guitarscene/GuitarScene.py +++ b/fofix/game/guitarscene/GuitarScene.py @@ -3124,15 +3124,26 @@ def rockmeterDrain(self, playerNum): def run(self, ticks): #QQstarS: Fix this funcion super(GuitarScene, self).run(ticks) if self.song and self.song.readyToGo and not self.pause and not self.failed: - + sngPos = self.song.getPosition() # calculate song position during the song countdown - if self.songTime <= -self.audioDelay: - sngPos = self.song.getPosition() - if sngPos == -self.song.delay: - self.songTime = sngPos - self.countdown * self.song.period + if self.songTime <= -self.audioDelay and sngPos == -self.song.delay: + self.songTime = sngPos-(self.countdown * self.song.period) if not self.countdown and not self.resumeCountdown and not self.pause: # increment song position self.songTime += ticks + sngDiff = abs(sngPos - self.songTime) + if sngDiff > 100: # Correct the random large diff. + self.songTime = sngPos + print 'BOOOM: skipped ahead!!' + elif sngDiff < 1.0: + pass#print 'within range' + elif self.songTime > sngPos: + print 'Adapting: Too fast', sngDiff, 'ms' + self.songTime -= 0.1 + elif self.songTime < sngPos: + print 'Adapting: To slow', sngDiff, 'ms' + self.songTime += 0.1 + self.song.update(ticks) if self.vbpmLogicType == 1: