summaryrefslogtreecommitdiff
path: root/src/saveload/gamelog_sl.cpp
AgeCommit message (Collapse)Author
2021-07-02Add: store headers for chunks with SL_STRUCTLISTPatric Stout
2021-07-02Feature: framework to make savegames self-descriptivePatric Stout
We won't be able to make it fully self-descriptive (looking at you MAP-chunks), but anything else can. With this framework, we can add headers for each chunk explaining how each chunk looks like in detail. They also will all be tables, making it a lot easier to read in external tooling, and opening the way to consider a database (like SQLite) to use as savegame format. Lastly, with the headers in the savegame, you can freely add fields without needing a savegame version bump; older versions of OpenTTD will simply ignore the new field. This also means we can remove all the SLE_CONDNULL, as they are irrelevant. The next few commits will start using this framework.
2021-06-15Change: rework GLOG chunk to be more like the restPatric Stout
Basically it is very similar to Vehicles, where there first is a type field, followed by data of that type. So this commit makes it looks like how Vehicles solved that. This removes a lot of custom "keeping track of length" stuff.
2021-06-06Codechange: Remove FOR_ALL_CHUNK_HANDLERSglx22
Co-Authored-By: Patric Stout <truebrain@openttd.org>
2021-05-31Codechange: C++-ify lists for SaveLoad (#9323)Patric Stout
Basically, this changes "SaveLoad *" to either: 1) "SaveLoadTable" if a list of SaveLoads was meant 2) "SaveLoad &" if a single entry was meant As added bonus, this removes SL_END / SLE_END / SLEG_END. This also adds core/span.hpp, a "std::span"-lite.
2021-04-17Fix: Corrupted savegame could crash the game by providing invalid gamelog ↵Milek7
enums. (#9045)
2020-12-27Codechange: Replace assert_compile macro with static_assertCharles Pigott
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-02-03Codechange: Separate gamelog revision length from network revision lengthNiels Martin Hansen
2014-04-23(svn r26482) -Codechange: add an include that allows us to undefine/redefine ↵rubidium
"unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2011-10-30(svn r23065) -Add: -q option to read a savegame, write some general info and ↵yexo
exit
2010-08-26(svn r20632) -Cleanup: remove "a few" unneeded includes, and add them to ↵rubidium
some headers
2010-06-13(svn r19973) -Codechange: Add another procedure to chunk handlers for ↵frosch
checking savegames (empty for now).
2010-01-15(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, ↵rubidium
if a header require a header make it include that header
2009-09-20(svn r17596) -Codechange: constify some tablessmatz
2009-08-21(svn r17248) -Fix: add GPL license notice where appropriaterubidium
2009-05-17(svn r16338) -Codechange: split loading of references to two phasessmatz
In the first phase, indexes are stored. In the second phase, indexes are checked for validity and converted to pointers
2009-03-30(svn r15893) -Add: watermark crash.sav and don't generate crash information ↵glx
if a loaded crash.sav causes a crash
2009-02-08(svn r15410) -Cleanup: get rid of most of the references to the 'patches' ↵rubidium
except where it's used for backward compatability.
2009-01-04(svn r14828) -Codechange: move most of save/load-specific code to separate filessmatz