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

Method Load

src/game/server/save.cpp:139–266  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

137}
138
139bool CSaveTee::Load(CCharacter *pChr, std::optional<int> Team)
140{
141 bool Valid = true;
142
143 pChr->m_pPlayer->Pause(m_Paused, true);
144
145 pChr->m_Alive = m_Alive;
146 pChr->m_NeededFaketuning = m_NeededFaketuning;
147
148 if(Team.has_value())
149 {
150 pChr->Teams()->SetForceCharacterTeam(pChr->m_pPlayer->GetCid(), Team.value());
151 pChr->Teams()->SetStarted(pChr->m_pPlayer->GetCid(), m_TeeStarted);
152 pChr->Teams()->SetFinished(pChr->m_pPlayer->GetCid(), m_TeeFinished);
153 }
154
155 for(int i = 0; i < NUM_WEAPONS; i++)
156 {
157 pChr->m_Core.m_aWeapons[i].m_AmmoRegenStart = m_aWeapons[i].m_AmmoRegenStart;
158 // m_Ammo not used anymore for tracking freeze following https://github.com/ddnet/ddnet/pull/2086
159 pChr->m_Core.m_aWeapons[i].m_Ammo = -1;
160 pChr->m_Core.m_aWeapons[i].m_Ammocost = m_aWeapons[i].m_Ammocost;
161 pChr->m_Core.m_aWeapons[i].m_Got = m_aWeapons[i].m_Got;
162 }
163
164 pChr->m_Core.m_Ninja.m_ActivationDir = m_Ninja.m_ActivationDir;
165 if(m_Ninja.m_ActivationTick)
166 pChr->m_Core.m_Ninja.m_ActivationTick = pChr->Server()->Tick() - m_Ninja.m_ActivationTick;
167 else
168 pChr->m_Core.m_Ninja.m_ActivationTick = 0;
169 pChr->m_Core.m_Ninja.m_CurrentMoveTime = m_Ninja.m_CurrentMoveTime;
170 pChr->m_Core.m_Ninja.m_OldVelAmount = m_Ninja.m_OldVelAmount;
171
172 pChr->m_LastWeapon = m_LastWeapon;
173 pChr->m_QueuedWeapon = m_QueuedWeapon;
174
175 pChr->m_Core.m_EndlessJump = m_EndlessJump;
176 pChr->m_Core.m_Jetpack = m_Jetpack;
177 pChr->m_NinjaJetpack = m_NinjaJetpack;
178 pChr->m_FreezeTime = m_FreezeTime;
179 pChr->m_Core.m_FreezeStart = pChr->Server()->Tick() - m_FreezeStart;
180
181 pChr->m_Core.m_DeepFrozen = m_DeepFrozen;
182 pChr->m_Core.m_LiveFrozen = m_LiveFrozen;
183 pChr->m_Core.m_EndlessHook = m_EndlessHook;
184 pChr->m_DDRaceState = static_cast<ERaceState>(m_DDRaceState);
185
186 pChr->m_Core.m_HammerHitDisabled = m_HitDisabledFlags & CSaveTee::HAMMER_HIT_DISABLED;
187 pChr->m_Core.m_ShotgunHitDisabled = m_HitDisabledFlags & CSaveTee::SHOTGUN_HIT_DISABLED;
188 pChr->m_Core.m_GrenadeHitDisabled = m_HitDisabledFlags & CSaveTee::GRENADE_HIT_DISABLED;
189 pChr->m_Core.m_LaserHitDisabled = m_HitDisabledFlags & CSaveTee::LASER_HIT_DISABLED;
190
191 pChr->m_TuneZone = m_TuneZone;
192 pChr->m_TuneZoneOld = m_TuneZoneOld;
193
194 if(m_Time)
195 pChr->m_StartTime = pChr->Server()->Tick() - m_Time;
196

Callers 7

SwapTeamCharactersMethod · 0.45
ProcessSaveTeamMethod · 0.45
ConLastTeleMethod · 0.45
SpawnMethod · 0.45
RescueMethod · 0.45
ExtractDemoChatFunction · 0.45
TESTFunction · 0.45

Calls 15

SetForceCharacterTeamMethod · 0.80
SetStartedMethod · 0.80
SetFinishedMethod · 0.80
SetHookedPlayerMethod · 0.80
ForceSetRescueMethod · 0.80
CanSpecMethod · 0.80
ChangeTeamStateMethod · 0.80
SetTeamLockMethod · 0.80
SetPracticeMethod · 0.80
GetClientIdMethod · 0.80
minimumFunction · 0.50

Tested by 1

TESTFunction · 0.36