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

Method Save

src/game/server/save.cpp:19–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17CSaveTee::CSaveTee() = default;
18
19void CSaveTee::Save(CCharacter *pChr, bool AddPenalty)
20{
21 m_ClientId = pChr->m_pPlayer->GetCid();
22 str_copy(m_aName, pChr->Server()->ClientName(m_ClientId), sizeof(m_aName));
23
24 m_Alive = pChr->m_Alive;
25
26 // This is extremely suspect code, probably interacts badly with force pause
27 m_Paused = absolute(pChr->m_pPlayer->IsPaused());
28 if(m_Paused == CPlayer::PAUSE_SPEC && !pChr->m_Paused)
29 {
30 m_Paused = CPlayer::PAUSE_NONE;
31 }
32
33 m_NeededFaketuning = pChr->m_NeededFaketuning;
34
35 m_TeeStarted = pChr->Teams()->TeeStarted(m_ClientId);
36 m_TeeFinished = pChr->Teams()->TeeFinished(m_ClientId);
37 m_IsSolo = pChr->m_Core.m_Solo;
38
39 for(int i = 0; i < NUM_WEAPONS; i++)
40 {
41 m_aWeapons[i].m_AmmoRegenStart = pChr->m_Core.m_aWeapons[i].m_AmmoRegenStart;
42 m_aWeapons[i].m_Ammo = pChr->m_Core.m_aWeapons[i].m_Ammo;
43 m_aWeapons[i].m_Ammocost = pChr->m_Core.m_aWeapons[i].m_Ammocost;
44 m_aWeapons[i].m_Got = pChr->m_Core.m_aWeapons[i].m_Got;
45 }
46
47 m_Ninja.m_ActivationDir = pChr->m_Core.m_Ninja.m_ActivationDir;
48 if(pChr->m_Core.m_Ninja.m_ActivationTick)
49 m_Ninja.m_ActivationTick = pChr->Server()->Tick() - pChr->m_Core.m_Ninja.m_ActivationTick;
50 else
51 m_Ninja.m_ActivationTick = 0;
52 m_Ninja.m_CurrentMoveTime = pChr->m_Core.m_Ninja.m_CurrentMoveTime;
53 m_Ninja.m_OldVelAmount = pChr->m_Core.m_Ninja.m_OldVelAmount;
54
55 m_LastWeapon = pChr->m_LastWeapon;
56 m_QueuedWeapon = pChr->m_QueuedWeapon;
57
58 m_EndlessJump = pChr->m_Core.m_EndlessJump;
59 m_Jetpack = pChr->m_Core.m_Jetpack;
60 m_NinjaJetpack = pChr->m_NinjaJetpack;
61 m_FreezeTime = pChr->m_FreezeTime;
62 m_FreezeStart = pChr->Server()->Tick() - pChr->m_Core.m_FreezeStart;
63
64 m_DeepFrozen = pChr->m_Core.m_DeepFrozen;
65 m_LiveFrozen = pChr->m_Core.m_LiveFrozen;
66 m_EndlessHook = pChr->m_Core.m_EndlessHook;
67 m_DDRaceState = static_cast<int>(pChr->m_DDRaceState);
68
69 m_HitDisabledFlags = 0;
70 if(pChr->m_Core.m_HammerHitDisabled)
71 m_HitDisabledFlags |= CSaveTee::HAMMER_HIT_DISABLED;
72 if(pChr->m_Core.m_ShotgunHitDisabled)
73 m_HitDisabledFlags |= CSaveTee::SHOTGUN_HIT_DISABLED;
74 if(pChr->m_Core.m_GrenadeHitDisabled)
75 m_HitDisabledFlags |= CSaveTee::GRENADE_HIT_DISABLED;
76 if(pChr->m_Core.m_LaserHitDisabled)

Callers 10

ConDrySaveMethod · 0.45
SwapTeamCharactersMethod · 0.45
ConTeleToMethod · 0.45
ConTeleXYMethod · 0.45
ConTeleCursorMethod · 0.45
ConHotReloadMethod · 0.45
SaveTeamMethod · 0.45
ForceSetRescueMethod · 0.45

Calls 15

absoluteFunction · 0.85
FormatUuidFunction · 0.85
ClientNameMethod · 0.80
TeeStartedMethod · 0.80
TeeFinishedMethod · 0.80
TickSpeedMethod · 0.80
HookedPlayerMethod · 0.80
GameUuidMethod · 0.80
IsValidTeamNumberMethod · 0.80
TeamFlockMethod · 0.80
CountMethod · 0.80
GetTeamStateMethod · 0.80

Tested by

no test coverage detected