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>
5
7
9
10#include <game/team_state.h>
11
12#include <optional>
13
14class IGameController;
15class CGameContext;
16class CGameWorld;
17class CCharacter;
18class CSaveTeam;
19
20enum
21{
25};
26
37
39{
40public:
42 ~CSaveTee() = default;
43 void Save(CCharacter *pChr, bool AddPenalty = true);
44 bool Load(CCharacter *pChr, std::optional<int> Team = std::nullopt);
45 char *GetString(const CSaveTeam *pTeam);
46 int FromString(const char *pString);
47 void LoadHookedPlayer(const CSaveTeam *pTeam);
48 bool IsHooking() const;
49 vec2 GetPos() const { return m_Pos; }
50 const char *GetName() const { return m_aName; }
51 int GetClientId() const { return m_ClientId; }
52 void SetClientId(int ClientId) { m_ClientId = ClientId; }
53
54 enum
55 {
61 };
62
63private:
65
66 char m_aString[2048];
67 char m_aName[16];
68
72
73 // Teamstuff
77
86
87 // ninja
88 struct
89 {
95
98
108
119
124
126
130
131 // Core
145
146 // player input
151
153
155};
156
158{
159public:
160 CSaveHotReloadTee() = default;
162 void Save(CCharacter *pChr, bool AddPenalty = true);
163 bool Load(CCharacter *pChr, int Team);
164
165private:
170 std::optional<CSaveTee> m_LastDeath;
171};
172
174{
175public:
176 CSaveTeam();
177 ~CSaveTeam();
178 char *GetString();
179 int GetMembersCount() const { return m_MembersCount; }
180 // MatchPlayers has to be called afterwards
181 int FromString(const char *pString);
182 // returns true if a team can load, otherwise writes a nice error Message in pMessage
183 bool MatchPlayers(const char (*paNames)[MAX_NAME_LENGTH], const int *pClientId, int NumPlayer, char *pMessage, int MessageLen) const;
184 ESaveResult Save(CGameContext *pGameServer, int Team, bool Dry = false, bool Force = false);
185 bool Load(CGameContext *pGameServer, int Team, bool KeepCurrentWeakStrong, bool IgnorePlayers = false);
186
188
189 // returns true if an error occurred
190 static bool HandleSaveError(ESaveResult Result, int ClientId, CGameContext *pGameContext);
191
192private:
193 CCharacter *MatchCharacter(CGameContext *pGameServer, int ClientId, int SaveId, bool KeepCurrentCharacter) const;
194
195 char m_aString[65536];
196
198 {
202 };
204
209 int m_Practice = 0;
210};
211
212#endif // GAME_SERVER_SAVE_H
Definition character.h:24
Definition gamecontext.h:108
Definition gameworld.h:18
CSaveTee m_SavedTeleTee
Definition save.h:169
std::optional< CSaveTee > m_LastDeath
Definition save.h:170
CSaveTee m_SaveTee
Definition save.h:166
~CSaveHotReloadTee()=default
void Save(CCharacter *pChr, bool AddPenalty=true)
Definition save.cpp:490
CSaveHotReloadTee()=default
bool m_Invincible
Definition save.h:168
bool m_Super
Definition save.h:167
bool Load(CCharacter *pChr, int Team)
Definition save.cpp:499
Definition save.h:174
bool Load(CGameContext *pGameServer, int Team, bool KeepCurrentWeakStrong, bool IgnorePlayers=false)
Definition save.cpp:620
int FromString(const char *pString)
Definition save.cpp:698
CSaveTeam()
Definition save.cpp:510
SSimpleSwitchers * m_pSwitchers
Definition save.h:203
ETeamState m_TeamState
Definition save.h:205
ESaveResult Save(CGameContext *pGameServer, int Team, bool Dry=false, bool Force=false)
Definition save.cpp:521
char * GetString()
Definition save.cpp:674
int m_MembersCount
Definition save.h:206
char m_aString[65536]
Definition save.h:195
int m_TeamLocked
Definition save.h:208
CCharacter * MatchCharacter(CGameContext *pGameServer, int ClientId, int SaveId, bool KeepCurrentCharacter) const
Definition save.cpp:663
static bool HandleSaveError(ESaveResult Result, int ClientId, CGameContext *pGameContext)
Definition save.cpp:592
~CSaveTeam()
Definition save.cpp:515
int GetMembersCount() const
Definition save.h:179
CSaveTee * m_pSavedTees
Definition save.h:187
int m_HighestSwitchNumber
Definition save.h:207
bool MatchPlayers(const char(*paNames)[MAX_NAME_LENGTH], const int *pClientId, int NumPlayer, char *pMessage, int MessageLen) const
Definition save.cpp:854
int m_Practice
Definition save.h:209
Definition save.h:79
int m_Ammocost
Definition save.h:83
int m_AmmoRegenStart
Definition save.h:81
int m_Got
Definition save.h:84
int m_Ammo
Definition save.h:82
Definition save.h:39
char m_aString[2048]
Definition save.h:66
int m_HookHitEnabled
Definition save.h:113
vec2 m_HookTeleBase
Definition save.h:140
int m_LastPenalty
Definition save.h:118
void SetClientId(int ClientId)
Definition save.h:52
int m_Jumps
Definition save.h:137
struct CSaveTee::@364004040053243103036316345110337021171270201272 m_Ninja
bool Load(CCharacter *pChr, std::optional< int > Team=std::nullopt)
Definition save.cpp:139
int m_LiveFrozen
Definition save.h:105
vec2 m_ActivationDir
Definition save.h:90
int m_Jetpack
Definition save.h:100
int m_QueuedWeapon
Definition save.h:97
int m_DeepFrozen
Definition save.h:104
int m_LastTimeCp
Definition save.h:121
~CSaveTee()=default
int m_NinjaJetpack
Definition save.h:101
int m_Time
Definition save.h:114
int m_CollisionEnabled
Definition save.h:110
int m_HitDisabledFlags
Definition save.h:109
int m_EndlessHook
Definition save.h:106
int m_CurrentMoveTime
Definition save.h:92
int m_NewHook
Definition save.h:144
int m_TuneZoneOld
Definition save.h:112
int GetClientId() const
Definition save.h:51
int m_InputFire
Definition save.h:149
class CSaveTee::CWeaponStat m_aWeapons[NUM_WEAPONS]
int m_NeededFaketuning
Definition save.h:71
int m_LastTimeCpBroadcasted
Definition save.h:122
int m_InputJump
Definition save.h:148
int m_HookState
Definition save.h:142
int m_LastWeapon
Definition save.h:96
int m_Paused
Definition save.h:70
const char * GetName() const
Definition save.h:50
int m_ActivationTick
Definition save.h:91
float m_aCurrentTimeCp[MAX_CHECKPOINTS]
Definition save.h:123
int m_Alive
Definition save.h:69
int m_JumpedTotal
Definition save.h:136
int m_OldVelAmount
Definition save.h:93
int m_FreezeTime
Definition save.h:102
int m_Jumped
Definition save.h:135
int m_HasTelegunLaser
Definition save.h:129
int m_HasTelegunGrenade
Definition save.h:128
vec2 m_HookPos
Definition save.h:138
int FromString(const char *pString)
Definition save.cpp:355
int m_TeleCheckpoint
Definition save.h:117
char m_aGameUuid[UUID_MAXSTRSIZE]
Definition save.h:154
int m_TeeFinished
Definition save.h:75
int m_TimeCpBroadcastEndTime
Definition save.h:120
vec2 m_PrevPos
Definition save.h:116
int m_TuneZone
Definition save.h:111
vec2 GetPos() const
Definition save.h:49
char m_aName[16]
Definition save.h:67
bool IsHooking() const
Definition save.cpp:485
void Save(CCharacter *pChr, bool AddPenalty=true)
Definition save.cpp:19
int m_IsSolo
Definition save.h:76
void LoadHookedPlayer(const CSaveTeam *pTeam)
Definition save.cpp:478
vec2 m_CorePos
Definition save.h:132
int m_InputHook
Definition save.h:150
int m_HookedPlayer
Definition save.h:143
int m_HasTelegunGun
Definition save.h:127
vec2 m_Pos
Definition save.h:115
int m_ReloadTimer
Definition save.h:152
int m_ClientId
Definition save.h:64
int m_ActiveWeapon
Definition save.h:134
char * GetString(const CSaveTeam *pTeam)
Definition save.cpp:268
int m_HookTick
Definition save.h:141
@ SHOTGUN_HIT_DISABLED
Definition save.h:58
@ LASER_HIT_DISABLED
Definition save.h:60
@ GRENADE_HIT_DISABLED
Definition save.h:59
@ HAMMER_HIT_DISABLED
Definition save.h:57
@ HIT_ALL
Definition save.h:56
vec2 m_Vel
Definition save.h:133
int m_NotEligibleForFinish
Definition save.h:125
int m_TeeStarted
Definition save.h:74
int m_EndlessJump
Definition save.h:99
int m_InputDirection
Definition save.h:147
int m_FreezeStart
Definition save.h:103
vec2 m_HookDir
Definition save.h:139
int m_DDRaceState
Definition save.h:107
Definition gamecontroller.h:24
@ MAX_CHECKPOINTS
Definition protocol.h:92
@ MAX_NAME_LENGTH
Definition protocol.h:99
@ NUM_WEAPONS
Definition protocol.h:1586
@ NUM_RESCUEMODES
Definition save.h:24
@ RESCUEMODE_AUTO
Definition save.h:22
@ RESCUEMODE_MANUAL
Definition save.h:23
ESaveResult
Definition save.h:28
@ NOT_STARTED
Definition save.h:33
@ TEAM_0_MODE
Definition save.h:34
@ DRAGGER_ACTIVE
Definition save.h:35
@ TEAM_NOT_FOUND
Definition save.h:31
@ SUCCESS
Definition save.h:29
@ CHAR_NOT_FOUND
Definition save.h:32
Definition save.h:198
int m_EndTime
Definition save.h:200
int m_Type
Definition save.h:201
int m_Status
Definition save.h:199
ETeamState
Definition team_state.h:5
@ EMPTY
Definition team_state.h:6
@ TEAM_FLOCK
Definition teamscore.h:9
@ UUID_MAXSTRSIZE
Definition uuid_manager.h:8
vector2_base< float > vec2
Definition vmath.h:161