22 #ifndef AGS_ENGINE_GAME_SAVEGAME_H 23 #define AGS_ENGINE_GAME_SAVEGAME_H 25 #include "common/std/memory.h" 26 #include "ags/shared/core/platform.h" 27 #include "ags/shared/ac/game_version.h" 28 #include "ags/shared/util/error.h" 29 #include "ags/shared/util/version.h" 42 using Shared::ErrorHandle;
43 using Shared::TypedCodeError;
46 using Shared::Version;
57 enum SavegameVersion {
58 kSvgVersion_Undefined = 0,
60 kSvgVersion_Components = 9,
61 kSvgVersion_Cmp_64bit = 10,
62 kSvgVersion_350_final = 11,
63 kSvgVersion_350_final2 = 12,
65 kSvgVersion_360_beta = 3060023,
66 kSvgVersion_360_final = 3060041,
67 kSvgVersion_361 = 3060115,
68 kSvgVersion_361_p8 = 3060130,
69 kSvgVersion_Current = kSvgVersion_361_p8,
70 kSvgVersion_LowestSupported = kSvgVersion_321
74 enum SavegameErrorType {
76 kSvgErr_FileOpenFailed,
77 kSvgErr_SignatureFailed,
78 kSvgErr_FormatVersionNotSupported,
79 kSvgErr_IncompatibleEngine,
80 kSvgErr_GameGuidMismatch,
81 kSvgErr_ComponentListOpeningTagFormat,
82 kSvgErr_ComponentListClosingTagMissing,
83 kSvgErr_ComponentOpeningTagFormat,
84 kSvgErr_ComponentClosingTagFormat,
85 kSvgErr_ComponentSizeMismatch,
86 kSvgErr_UnsupportedComponent,
87 kSvgErr_ComponentSerialization,
88 kSvgErr_ComponentUnserialization,
89 kSvgErr_InconsistentFormat,
90 kSvgErr_UnsupportedComponentVersion,
91 kSvgErr_GameContentAssertion,
92 kSvgErr_InconsistentData,
93 kSvgErr_InconsistentPlugin,
94 kSvgErr_DifferentColorDepth,
95 kSvgErr_GameObjectInitFailed,
99 String GetSavegameErrorText(SavegameErrorType err);
101 typedef TypedCodeError<SavegameErrorType, GetSavegameErrorText> SavegameError;
102 typedef ErrorHandle<SavegameError> HSaveError;
107 static const char *Signature;
109 static const char *LegacySignature;
123 enum SavegameDescElem {
125 kSvgDesc_EnvInfo = 0x0001,
126 kSvgDesc_UserText = 0x0002,
127 kSvgDesc_UserImage = 0x0004,
128 kSvgDesc_All = kSvgDesc_EnvInfo | kSvgDesc_UserText | kSvgDesc_UserImage
149 GameDataVersion MainDataVersion;
168 HSaveError RestoreGameState(
Stream *in, SavegameVersion svg_version);
174 void SaveGameState(
Stream *out);
Definition: achievements_tables.h:27
Definition: allegro_bitmap.h:44
Definition: savegame.h:133
Definition: savegame.h:105