@@ -47,20 +47,14 @@ void ElunaEventProcessor::Update(uint32 diff)
4747
4848 if (luaEvent->state == LUAEVENT_STATE_RUN)
4949 {
50- bool shouldSkipTick = obj && !obj->IsInWorld ();
51- if (shouldSkipTick)
52- {
53- AddEvent (luaEvent, false );
54- continue ;
55- }
56-
5750 uint32 delay = luaEvent->delay ;
5851 bool remove = luaEvent->repeats == 1 ;
5952 if (!remove)
6053 AddEvent (luaEvent); // Reschedule before calling incase RemoveEvents used
6154
6255 // Call the timed event
63- E->OnTimedEvent (luaEvent->funcRef , delay, luaEvent->repeats ? luaEvent->repeats -- : luaEvent->repeats , obj);
56+ if (!obj || (obj && obj->IsInWorld ()))
57+ E->OnTimedEvent (luaEvent->funcRef , delay, luaEvent->repeats ? luaEvent->repeats -- : luaEvent->repeats , obj);
6458
6559 if (!remove)
6660 continue ;
@@ -96,12 +90,10 @@ void ElunaEventProcessor::SetState(int eventId, LuaEventState state)
9690 eventMap.erase (eventId);
9791}
9892
99- void ElunaEventProcessor::AddEvent (LuaEvent* luaEvent, bool reschedule )
93+ void ElunaEventProcessor::AddEvent (LuaEvent* luaEvent)
10094{
101- if (reschedule)
102- luaEvent->GenerateDelay ();
103-
104- eventList.insert (std::pair<uint64, LuaEvent*>(m_time + reschedule ? luaEvent->delay : 0 , luaEvent));
95+ luaEvent->GenerateDelay ();
96+ eventList.insert (std::pair<uint64, LuaEvent*>(m_time + luaEvent->delay , luaEvent));
10597 eventMap[luaEvent->funcRef ] = luaEvent;
10698}
10799
0 commit comments