Option --renderer to select video renderer
[supertux.git] / src / scripting / time_scheduler.cpp
index 41a4d6f..2396d56 100644 (file)
@@ -31,7 +31,7 @@ namespace Scripting
 
 TimeScheduler* TimeScheduler::instance = NULL;
 
-TimeScheduler::TimeScheduler() : paused(false), last_update(0), internal_time(0)
+TimeScheduler::TimeScheduler()
 {
 }
 
@@ -42,10 +42,7 @@ TimeScheduler::~TimeScheduler()
 void
 TimeScheduler::update(float time)
 {
-  if (!paused) internal_time+=(time - last_update); 
-  last_update = time;
-
-  while(!schedule.empty() && schedule.front().wakeup_time < internal_time) {
+  while(!schedule.empty() && schedule.front().wakeup_time < time) {
     HSQOBJECT thread_ref = schedule.front().thread_ref;
 
     sq_pushobject(global_vm, thread_ref);
@@ -54,9 +51,9 @@ TimeScheduler::update(float time)
     HSQUIRRELVM scheduled_vm;
     if(sq_gettype(global_vm, -1) == OT_THREAD &&
         SQ_SUCCEEDED(sq_getthread(global_vm, -1, &scheduled_vm))) {
-      if(SQ_FAILED(sq_wakeupvm(scheduled_vm, SQFalse, SQFalse, SQTrue))) {
+      if(SQ_FAILED(sq_wakeupvm(scheduled_vm, SQFalse, SQFalse, SQTrue, SQFalse))) {
         std::ostringstream msg;
-        msg << "Couldn't wakeup scheduled squirrel VM: ";
+        msg << "Error waking VM: ";
         sq_getlasterror(scheduled_vm);
         if(sq_gettype(scheduled_vm, -1) != OT_STRING) {
             msg << "(no info)";
@@ -91,7 +88,7 @@ TimeScheduler::schedule_thread(HSQUIRRELVM scheduled_vm, float time)
     sq_pop(global_vm, 2);
     throw SquirrelError(global_vm, "Couldn't get thread weakref from vm");
   }
-  entry.wakeup_time = time - (last_update - internal_time);
+  entry.wakeup_time = time;
 
   sq_addref(global_vm, & entry.thread_ref);
   sq_pop(global_vm, 2);
@@ -100,10 +97,4 @@ TimeScheduler::schedule_thread(HSQUIRRELVM scheduled_vm, float time)
   std::push_heap(schedule.begin(), schedule.end());
 }
 
-void
-TimeScheduler::set_pause(bool paused)
-{
-  this->paused = paused;
-}
-
 }