- attempt to change scenario timer to use world frames

This commit is contained in:
Mark Vejvoda
2011-07-16 03:58:52 +00:00
parent ed3c0c253d
commit a77606351f
2 changed files with 25 additions and 13 deletions

View File

@@ -225,7 +225,7 @@ void ScriptManager::onTimerTriggerEvent() {
TimerTriggerEvent &event = iterMap->second;
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] event.running = %d, event.startTime = %lld, event.endTime = %lld, diff = %f\n",
__FILE__,__FUNCTION__,__LINE__,event.running,(long long int)event.startTime,(long long int)event.endTime,difftime(event.endTime,event.startTime));
__FILE__,__FUNCTION__,__LINE__,event.running,(long long int)event.startFrame,(long long int)event.endFrame,(event.endFrame - event.startFrame));
if(event.running == true) {
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
@@ -657,13 +657,15 @@ void ScriptManager::unregisterCellTriggerEvent(int eventId) {
int ScriptManager::startTimerEvent() {
TimerTriggerEvent trigger;
trigger.running = true;
trigger.startTime = time(NULL);
trigger.endTime = 0;
//trigger.startTime = time(NULL);
trigger.startFrame = world->getFrameCount();
//trigger.endTime = 0;
trigger.endFrame = 0;
int eventId = currentEventId++;
TimerTriggerEventList[eventId] = trigger;
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] TimerTriggerEventList.size() = %d, eventId = %d, trigger.startTime = %lld, trigger.endTime = %lld\n",__FILE__,__FUNCTION__,__LINE__,TimerTriggerEventList.size(),eventId,(long long int)trigger.startTime,(long long int)trigger.endTime);
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] TimerTriggerEventList.size() = %d, eventId = %d, trigger.startTime = %lld, trigger.endTime = %lld\n",__FILE__,__FUNCTION__,__LINE__,TimerTriggerEventList.size(),eventId,(long long int)trigger.startFrame,(long long int)trigger.endFrame);
return eventId;
}
@@ -674,11 +676,13 @@ int ScriptManager::resetTimerEvent(int eventId) {
TimerTriggerEvent &trigger = TimerTriggerEventList[eventId];
result = getTimerEventSecondsElapsed(eventId);
trigger.startTime = time(NULL);
trigger.endTime = 0;
//trigger.startTime = time(NULL);
trigger.startFrame = world->getFrameCount();
//trigger.endTime = 0;
trigger.endFrame = 0;
trigger.running = true;
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] TimerTriggerEventList.size() = %d, eventId = %d, trigger.startTime = %lld, trigger.endTime = %lld, result = %d\n",__FILE__,__FUNCTION__,__LINE__,TimerTriggerEventList.size(),eventId,(long long int)trigger.startTime,(long long int)trigger.endTime,result);
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] TimerTriggerEventList.size() = %d, eventId = %d, trigger.startTime = %lld, trigger.endTime = %lld, result = %d\n",__FILE__,__FUNCTION__,__LINE__,TimerTriggerEventList.size(),eventId,(long long int)trigger.startFrame,(long long int)trigger.endFrame,result);
}
return result;
}
@@ -687,11 +691,12 @@ int ScriptManager::stopTimerEvent(int eventId) {
int result = 0;
if(TimerTriggerEventList.find(eventId) != TimerTriggerEventList.end()) {
TimerTriggerEvent &trigger = TimerTriggerEventList[eventId];
trigger.endTime = time(NULL);
//trigger.endTime = time(NULL);
trigger.endFrame = world->getFrameCount();
trigger.running = false;
result = getTimerEventSecondsElapsed(eventId);
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] TimerTriggerEventList.size() = %d, eventId = %d, trigger.startTime = %lld, trigger.endTime = %lld, result = %d\n",__FILE__,__FUNCTION__,__LINE__,TimerTriggerEventList.size(),eventId,(long long int)trigger.startTime,(long long int)trigger.endTime,result);
if(SystemFlags::getSystemSettingType(SystemFlags::debugLUA).enabled) SystemFlags::OutputDebug(SystemFlags::debugLUA,"In [%s::%s Line: %d] TimerTriggerEventList.size() = %d, eventId = %d, trigger.startTime = %lld, trigger.endTime = %lld, result = %d\n",__FILE__,__FUNCTION__,__LINE__,TimerTriggerEventList.size(),eventId,(long long int)trigger.startFrame,(long long int)trigger.endFrame,result);
}
return result;
@@ -702,11 +707,15 @@ int ScriptManager::getTimerEventSecondsElapsed(int eventId) {
if(TimerTriggerEventList.find(eventId) != TimerTriggerEventList.end()) {
TimerTriggerEvent &trigger = TimerTriggerEventList[eventId];
if(trigger.running) {
result = (int)difftime(time(NULL),trigger.startTime);
//result = (int)difftime(time(NULL),trigger.startTime);
result = (world->getFrameCount()-trigger.startFrame) / GameConstants::updateFps;
}
else {
result = (int)difftime(trigger.endTime,trigger.startTime);
//result = (int)difftime(trigger.endTime,trigger.startTime);
result = (trigger.endFrame-trigger.startFrame) / GameConstants::updateFps;
}
//printf("Timer event id = %d seconmds elapsed = %d\n",eventId,result);
}
return result;

View File

@@ -95,8 +95,11 @@ public:
class TimerTriggerEvent {
public:
bool running;
time_t startTime;
time_t endTime;
//time_t startTime;
//time_t endTime;
int startFrame;
int endFrame;
};
class ScriptManager{