//------------------------------------------------------------------------------------- ScriptID ScriptCallbacks::addCallback( float initialOffset, TimerHandler * pHandler ) { if (initialOffset < 0.f) { WARNING_MSG(boost::format("ScriptCallbacks::addTimer: Negative timer offset (%1%)\n") % initialOffset ); initialOffset = 0.f; } int hertz = 0; if(g_componentType == BOTS_TYPE) hertz = g_kbeSrvConfig.gameUpdateHertz(); else hertz = Config::getSingleton().gameUpdateHertz(); int initialTicks = GameTime( g_kbetime + initialOffset * hertz ); TimerHandle timerHandle = timers_.add( initialTicks, 0, pHandler, NULL ); if (timerHandle.isSet()) { int id = this->getNewID(); map_[ id ] = timerHandle; return id; } return 0; }
//------------------------------------------------------------------------------------- ScriptID ScriptTimers::addTimer( float initialOffset, float repeatOffset, int userArg, TimerHandler * pHandler ) { if (initialOffset < 0.f) { WARNING_MSG(boost::format("ScriptTimers::addTimer: Negative timer offset (%1%)\n") % initialOffset ); initialOffset = 0.f; } KBE_ASSERT( g_pApp ); int hertz = g_kbeSrvConfig.gameUpdateHertz(); int initialTicks = GameTime( g_pApp->time() + initialOffset * hertz ); int repeatTicks = 0; if (repeatOffset > 0.f) { repeatTicks = GameTime( repeatOffset * hertz ); if (repeatTicks < 1) { repeatTicks = 1; } } TimerHandle timerHandle = g_pApp->timers().add( initialTicks, repeatTicks, pHandler, (void *)(intptr_t)userArg ); if (timerHandle.isSet()) { int id = this->getNewID(); map_[ id ] = timerHandle; return id; } return 0; }