@@ -28,9 +28,14 @@ void EffectDispatchTimer::OnRun()
2828{
2929 auto curTime = GetTickCount64 ();
3030
31- if (m_EnableTimer && m_DrawTimerBar
32- && (!ComponentExists<MetaModifiers>() || !GetComponent<MetaModifiers>()->HideChaosUI )
33- && (!ComponentExists<MetaModifiers>() || !GetComponent<MetaModifiers>()->DisableChaos ))
31+ if (!m_EnableTimer || (ComponentExists<MetaModifiers>() && GetComponent<MetaModifiers>()->DisableChaos ))
32+ {
33+ ResetSavedPosition ();
34+ m_Timer = curTime;
35+ return ;
36+ }
37+
38+ if (m_DrawTimerBar && (!ComponentExists<MetaModifiers>() || !GetComponent<MetaModifiers>()->HideChaosUI ))
3439 {
3540 float percentage = m_FakeTimerPercentage != 0 .f ? m_FakeTimerPercentage : m_TimerPercentage;
3641
@@ -64,9 +69,6 @@ void EffectDispatchTimer::OnRun()
6469
6570void EffectDispatchTimer::UpdateTimer (int deltaTime)
6671{
67- if (!m_EnableTimer || (ComponentExists<MetaModifiers>() && GetComponent<MetaModifiers>()->DisableChaos ))
68- return ;
69-
7072 m_TimerPercentage += deltaTime
7173 * (!ComponentExists<MetaModifiers>() ? 1 .f : GetComponent<MetaModifiers>()->TimerSpeedModifier )
7274 / m_EffectSpawnTime / 1000 .f ;
@@ -88,12 +90,6 @@ void EffectDispatchTimer::UpdateTravelledDistance()
8890 auto player = PLAYER_PED_ID ();
8991 auto position = GET_ENTITY_COORDS (player, false );
9092
91- if (!m_EnableTimer || (ComponentExists<MetaModifiers>() && GetComponent<MetaModifiers>()->DisableChaos ))
92- {
93- m_DistanceChaosState.SavedPosition = position;
94- return ;
95- }
96-
9793 if (IS_ENTITY_DEAD (player, false ))
9894 {
9995 m_DistanceChaosState.DeadFlag = true ;
@@ -102,8 +98,8 @@ void EffectDispatchTimer::UpdateTravelledDistance()
10298
10399 if (m_DistanceChaosState.DeadFlag )
104100 {
105- m_DistanceChaosState.DeadFlag = false ;
106- m_DistanceChaosState. SavedPosition = GET_ENTITY_COORDS (player, false );
101+ m_DistanceChaosState.DeadFlag = false ;
102+ ResetSavedPosition ( );
107103 return ;
108104 }
109105
@@ -167,6 +163,11 @@ std::uint64_t EffectDispatchTimer::GetTimer() const
167163 return m_Timer;
168164}
169165
166+ void EffectDispatchTimer::ResetSavedPosition ()
167+ {
168+ m_DistanceChaosState.SavedPosition = GET_ENTITY_COORDS (PLAYER_PED_ID (), false );
169+ }
170+
170171void EffectDispatchTimer::ResetTimer ()
171172{
172173 m_TimerPercentage = 0 .f ;
0 commit comments