MCPcopy Create free account
hub / github.com/ddnet/ddnet / HandlePredictedEvents

Method HandlePredictedEvents

src/game/client/gameclient.cpp:3749–3795  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3747}
3748
3749void CGameClient::HandlePredictedEvents(const int Tick)
3750{
3751 const float Alpha = 1.0f;
3752 const float Volume = 1.0f;
3753
3754 auto EventsIterator = m_PredictedWorld.m_PredictedEvents.begin();
3755 while(EventsIterator != m_PredictedWorld.m_PredictedEvents.end())
3756 {
3757 if(!EventsIterator->m_Handled && EventsIterator->m_Tick <= Tick)
3758 {
3759 if(EventsIterator->m_EventId == NETEVENTTYPE_SOUNDWORLD)
3760 {
3761 if(m_GameInfo.m_RaceSounds && ((EventsIterator->m_ExtraInfo == SOUND_GUN_FIRE && !g_Config.m_SndGun) || (EventsIterator->m_ExtraInfo == SOUND_PLAYER_PAIN_LONG && !g_Config.m_SndLongPain)))
3762 {
3763 EventsIterator = m_PredictedWorld.m_PredictedEvents.erase(EventsIterator);
3764 continue;
3765 }
3766 m_Sounds.PlayAt(CSounds::CHN_WORLD, EventsIterator->m_ExtraInfo, 1.0f, EventsIterator->m_Pos);
3767 }
3768 else if(EventsIterator->m_EventId == NETEVENTTYPE_EXPLOSION)
3769 {
3770 m_Effects.Explosion(EventsIterator->m_Pos, Alpha);
3771 }
3772 else if(EventsIterator->m_EventId == NETEVENTTYPE_HAMMERHIT)
3773 {
3774 m_Effects.HammerHit(EventsIterator->m_Pos, Alpha, Volume);
3775 }
3776 else if(EventsIterator->m_EventId == NETEVENTTYPE_DAMAGEIND)
3777 {
3778 m_Effects.DamageIndicator(EventsIterator->m_Pos, direction(EventsIterator->m_ExtraInfo / 256.0f), Alpha);
3779 }
3780
3781 EventsIterator->m_Handled = true;
3782 ++EventsIterator;
3783 continue;
3784 }
3785 else if(Tick - EventsIterator->m_Tick > 3 * Client()->GameTickSpeed()) // 3 seconds
3786 {
3787 // remove too old events
3788 EventsIterator = m_PredictedWorld.m_PredictedEvents.erase(EventsIterator);
3789 }
3790 else
3791 {
3792 ++EventsIterator;
3793 }
3794 }
3795}
3796
3797void CGameClient::DetectStrongHook()
3798{

Callers

nothing calls this directly

Calls 9

directionFunction · 0.85
beginMethod · 0.80
endMethod · 0.80
ExplosionMethod · 0.80
HammerHitMethod · 0.80
DamageIndicatorMethod · 0.80
ClientFunction · 0.50
PlayAtMethod · 0.45
GameTickSpeedMethod · 0.45

Tested by

no test coverage detected