DDraceNetwork Documentation
Loading...
Searching...
No Matches
save.h
Go to the documentation of this file.
1#ifndef GAME_SERVER_SAVE_H
2#define GAME_SERVER_SAVE_H
3
4#include <base/vmath.h>
6
7#include <generated/protocol.h>
8
9#include <game/team_state.h>
10
11#include <optional>
12
13class IGameController;
14class CGameContext;
15class CGameWorld;
16class CCharacter;
17class CSaveTeam;
18
19enum
20{
24};
25
36
38{
39public:
41 ~CSaveTee() = default;
42 void Save(CCharacter *pchr, bool AddPenalty = true);
43 bool Load(CCharacter *pchr, std::optional<int> Team = std::nullopt);
44 char *GetString(const CSaveTeam *pTeam);
45 int FromString(const char *pString);
46 void LoadHookedPlayer(const CSaveTeam *pTeam);
47 bool IsHooking() const;
48 vec2 GetPos() const { return m_Pos; }
49 const char *GetName() const { return m_aName; }
50 int GetClientId() const { return m_ClientId; }
51 void SetClientId(int ClientId) { m_ClientId = ClientId; }
52
53 enum
54 {
60 };
61
62private:
64
65 char m_aString[2048];
66 char m_aName[16];
67
71
72 // Teamstuff
76
85
86 // ninja
87 struct
88 {
94
97
107
118
123
125
129
130 // Core
144
145 // player input
150
152
154};
155
157{
158public:
159 CSaveHotReloadTee() = default;
161 void Save(CCharacter *pChr, bool AddPenalty = true);
162 bool Load(CCharacter *pChr, int Team);
163
164private:
169 std::optional<CSaveTee> m_LastDeath;
170};
171
173{
174public:
175 CSaveTeam();
176 ~CSaveTeam();
177 char *GetString();
178 int GetMembersCount() const { return m_MembersCount; }
179 // MatchPlayers has to be called afterwards
180 int FromString(const char *pString);
181 // returns true if a team can load, otherwise writes a nice error Message in pMessage
182 bool MatchPlayers(const char (*paNames)[MAX_NAME_LENGTH], const int *pClientId, int NumPlayer, char *pMessage, int MessageLen) const;
183 ESaveResult Save(CGameContext *pGameServer, int Team, bool Dry = false, bool Force = false);
184 bool Load(CGameContext *pGameServer, int Team, bool KeepCurrentWeakStrong, bool IgnorePlayers = false);
185
187
188 // returns true if an error occurred
189 static bool HandleSaveError(ESaveResult Result, int ClientId, CGameContext *pGameContext);
190
191private:
193
194 char m_aString[65536];
195
197 {
201 };
203
208 int m_Practice = 0;
209};
210
211#endif // GAME_SERVER_SAVE_H
Definition character.h:24
Definition gamecontext.h:106
Definition gameworld.h:18
Definition save.h:157
CSaveTee m_SavedTeleTee
Definition save.h:168
std::optional< CSaveTee > m_LastDeath
Definition save.h:169
CSaveTee m_SaveTee
Definition save.h:165
~CSaveHotReloadTee()=default
void Save(CCharacter *pChr, bool AddPenalty=true)
Definition save.cpp:486
CSaveHotReloadTee()=default
bool m_Invincible
Definition save.h:167
bool m_Super
Definition save.h:166
bool Load(CCharacter *pChr, int Team)
Definition save.cpp:495
Definition save.h:173
bool Load(CGameContext *pGameServer, int Team, bool KeepCurrentWeakStrong, bool IgnorePlayers=false)
Definition save.cpp:616
int FromString(const char *pString)
Definition save.cpp:694
CSaveTeam()
Definition save.cpp:506
SSimpleSwitchers * m_pSwitchers
Definition save.h:202
ETeamState m_TeamState
Definition save.h:204
ESaveResult Save(CGameContext *pGameServer, int Team, bool Dry=false, bool Force=false)
Definition save.cpp:517
char * GetString()
Definition save.cpp:670
int m_MembersCount
Definition save.h:205
char m_aString[65536]
Definition save.h:194
int m_TeamLocked
Definition save.h:207
CCharacter * MatchCharacter(CGameContext *pGameServer, int ClientId, int SaveId, bool KeepCurrentCharacter) const
Definition save.cpp:659
static bool HandleSaveError(ESaveResult Result, int ClientId, CGameContext *pGameContext)
Definition save.cpp:588
~CSaveTeam()
Definition save.cpp:511
int GetMembersCount() const
Definition save.h:178
CSaveTee * m_pSavedTees
Definition save.h:186
int m_HighestSwitchNumber
Definition save.h:206
bool MatchPlayers(const char(*paNames)[MAX_NAME_LENGTH], const int *pClientId, int NumPlayer, char *pMessage, int MessageLen) const
Definition save.cpp:848
int m_Practice
Definition save.h:208
Definition save.h:78
int m_Ammocost
Definition save.h:82
int m_AmmoRegenStart
Definition save.h:80
int m_Got
Definition save.h:83
int m_Ammo
Definition save.h:81
Definition save.h:38
char m_aString[2048]
Definition save.h:65
int m_HookHitEnabled
Definition save.h:112
vec2 m_HookTeleBase
Definition save.h:139
int m_LastPenalty
Definition save.h:117
void SetClientId(int ClientId)
Definition save.h:51
int m_Jumps
Definition save.h:136
int m_LiveFrozen
Definition save.h:104
vec2 m_ActivationDir
Definition save.h:89
int m_Jetpack
Definition save.h:99
int m_QueuedWeapon
Definition save.h:96
int m_DeepFrozen
Definition save.h:103
int m_LastTimeCp
Definition save.h:120
~CSaveTee()=default
int m_NinjaJetpack
Definition save.h:100
void Save(CCharacter *pchr, bool AddPenalty=true)
Definition save.cpp:15
int m_Time
Definition save.h:113
int m_CollisionEnabled
Definition save.h:109
int m_HitDisabledFlags
Definition save.h:108
int m_EndlessHook
Definition save.h:105
int m_CurrentMoveTime
Definition save.h:91
int m_NewHook
Definition save.h:143
int m_TuneZoneOld
Definition save.h:111
int GetClientId() const
Definition save.h:50
int m_InputFire
Definition save.h:148
class CSaveTee::CWeaponStat m_aWeapons[NUM_WEAPONS]
int m_NeededFaketuning
Definition save.h:70
int m_LastTimeCpBroadcasted
Definition save.h:121
int m_InputJump
Definition save.h:147
int m_HookState
Definition save.h:141
int m_LastWeapon
Definition save.h:95
int m_Paused
Definition save.h:69
const char * GetName() const
Definition save.h:49
int m_ActivationTick
Definition save.h:90
@ SHOTGUN_HIT_DISABLED
Definition save.h:57
@ LASER_HIT_DISABLED
Definition save.h:59
@ GRENADE_HIT_DISABLED
Definition save.h:58
@ HAMMER_HIT_DISABLED
Definition save.h:56
@ HIT_ALL
Definition save.h:55
float m_aCurrentTimeCp[MAX_CHECKPOINTS]
Definition save.h:122
int m_Alive
Definition save.h:68
struct CSaveTee::@263 m_Ninja
int m_JumpedTotal
Definition save.h:135
int m_OldVelAmount
Definition save.h:92
int m_FreezeTime
Definition save.h:101
int m_Jumped
Definition save.h:134
int m_HasTelegunLaser
Definition save.h:128
int m_HasTelegunGrenade
Definition save.h:127
vec2 m_HookPos
Definition save.h:137
int FromString(const char *pString)
Definition save.cpp:351
int m_TeleCheckpoint
Definition save.h:116
char m_aGameUuid[UUID_MAXSTRSIZE]
Definition save.h:153
int m_TeeFinished
Definition save.h:74
bool Load(CCharacter *pchr, std::optional< int > Team=std::nullopt)
Definition save.cpp:135
int m_TimeCpBroadcastEndTime
Definition save.h:119
vec2 m_PrevPos
Definition save.h:115
int m_TuneZone
Definition save.h:110
vec2 GetPos() const
Definition save.h:48
char m_aName[16]
Definition save.h:66
bool IsHooking() const
Definition save.cpp:481
int m_IsSolo
Definition save.h:75
void LoadHookedPlayer(const CSaveTeam *pTeam)
Definition save.cpp:474
vec2 m_CorePos
Definition save.h:131
int m_InputHook
Definition save.h:149
int m_HookedPlayer
Definition save.h:142
int m_HasTelegunGun
Definition save.h:126
vec2 m_Pos
Definition save.h:114
int m_ReloadTimer
Definition save.h:151
int m_ClientId
Definition save.h:63
int m_ActiveWeapon
Definition save.h:133
char * GetString(const CSaveTeam *pTeam)
Definition save.cpp:264
int m_HookTick
Definition save.h:140
vec2 m_Vel
Definition save.h:132
int m_NotEligibleForFinish
Definition save.h:124
int m_TeeStarted
Definition save.h:73
int m_EndlessJump
Definition save.h:98
int m_InputDirection
Definition save.h:146
int m_FreezeStart
Definition save.h:102
vec2 m_HookDir
Definition save.h:138
int m_DDRaceState
Definition save.h:106
Definition gamecontroller.h:19
Definition vmath.h:15
@ MAX_CHECKPOINTS
Definition protocol.h:91
@ MAX_NAME_LENGTH
Definition protocol.h:98
@ NUM_WEAPONS
Definition protocol.h:1490
ESaveResult
Definition save.h:27
@ NUM_RESCUEMODES
Definition save.h:23
@ RESCUEMODE_AUTO
Definition save.h:21
@ RESCUEMODE_MANUAL
Definition save.h:22
Definition save.h:197
int m_EndTime
Definition save.h:199
int m_Type
Definition save.h:200
int m_Status
Definition save.h:198
ETeamState
Definition team_state.h:5
@ UUID_MAXSTRSIZE
Definition uuid_manager.h:8