summaryrefslogtreecommitdiff
path: root/src/saveload/game_sl.cpp
AgeCommit message (Collapse)Author
2021-07-02Add: store headers for chunks with SL_STRUCTLISTPatric Stout
2021-07-02Add: store headers for most savegame chunksPatric Stout
When a header is added, the chunk changes from CH_ARRAY type to CH_TABLE type.
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 several CH_RIFF chunks to use CH_ARRAY insteadPatric Stout
This adds two byte extra to those chunks, and might feel a bit silly at first. But in later changes we will prefix CH_ARRAY with a table header, and then this change shines. Without this, we could still add headers to these chunks, but any external reader wouldn't know if the CH_RIFF has them or not. This way is much more practical, as they are now more like any other chunk.
2021-06-15Change: store length of SL_STRUCTLIST in the savegamePatric Stout
This wasn't consistently done, and often variables were used that were read by an earlier blob. By moving it next to the struct itself, the code becomes a bit more self-contained and easier to read. Additionally, this allows for external tooling to know how many structs to expect, instead of having to know where to find the length-field or a hard-coded value that can change at any moment.
2021-06-14Codechange: use SLE_STRUCT(LIST) for GameScript chunksPatric Stout
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
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-05-15Fix: empty undocumented branchesrubidium42
2021-05-13Codechange: move script settings to std::stringrubidium42
2021-05-08Change: Use gender-neutral pronouns in console command messages (and ↵William Davis
comments) (#9203)
2020-05-21Codechange: Store GS lang texts in std::strings.Michael Lutz
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-04-09Codechange: If something is a vector of strings, use a vector of strings ↵Michael Lutz
instead of an AutoFreeSmallVector.
2019-04-09Codechange: Use std::vector instead of AutoDeleteSmallVector in GS text ↵Michael Lutz
handling.
2019-03-28Fix: MSVC warnings (#7423)glx22
2019-03-26Codechange: Replaced SmallVector::Append() with ↵Henry Wilson
std::vector::[push|emplace]_back()
2019-03-26Codechange: Replace SmallVector::Length() with std::vector::size()Henry Wilson
2014-10-12(svn r27003) -Cleanup: fix the use of spaces and asterices "around" some ↵rubidium
comments
2014-10-08(svn r26978) -Fix (r23609): Typo in game script warning message.peter1138
2014-04-25(svn r26509) -Codechange: replace strdup with stredup (the latter ensures ↵rubidium
the return is not NULL)
2014-04-24(svn r26493) -Codechange: use strecat to concatenate script settings instead ↵rubidium
of manually accounting for the amount of characters that has been written
2014-04-23(svn r26485) -Codechange: Replace ttd_strlcpy and ttd_strlcat with strecpy ↵frosch
and strecat.
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
2013-10-06(svn r25817) -Fix [FS5750-ish]: Handle savegames which contain GS ↵frosch
translations for languages with empty name more gently.
2012-01-21(svn r23829) -Fix [FS#4996]: Loading empty GS strings/translations failed.frosch
2012-01-03(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp filesrubidium
2011-12-21(svn r23649) -Fix [FS#4905) (r23634): loading a savegame with an empty GSTR ↵truebrain
chunk caused assert
2011-12-19(svn r23634) -Add: support language files for GameScript (Rubidium)truebrain
2011-12-19(svn r23609) -Add: save/load all GameScript related materialtruebrain