summaryrefslogtreecommitdiff
path: root/src/saveload/station_sl.cpp
AgeCommit message (Collapse)Author
2021-07-06Cleanup: Remove now unneeded ChunkHandler membersglx22
2021-07-06Codechange: Use ChunkHandlers sub-classesglx22
2021-07-06Codechange: Use static array of references to ChunkHandlerglx22
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-15Codechange: mark chunks that are not stored as CH_READONLYPatric Stout
This makes it easier to spot chunks that have a save_proc that is a nullptr, but also prevents confusion, where it looks like the CH_ type of a chunk has influence on how it is being read. It is not, it is only used for saving.
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 as much of STNN code for STNS as possiblePatric Stout
There was a lot of code duplication for no real reason. Now with SLEG_STRUCT support, we can just re-use the code, hopefully making it easier for future-us to make changes to this, without breaking everything for old games.
2021-06-14Codechange: use SLE_STRUCT(LIST) for Station chunksPatric Stout
2021-06-14Codechange: remove the special station/vehicle code from SaveLoadPatric Stout
With the new SLEG_STRUCT it is much easier to embed a struct in a struct, where the sub-struct has limitations on when it is being used. This makes both the code easier to read (less magic) and avoids the SaveLoad needing to know all these things about Stations and Vehicles.
2021-06-10Codechange: rename SL_LST to SL_REFLIST to highlight the "reference" partPatric Stout
You can easily mistake SlList / SL_LST to be a list of SL_VAR, but it is a list of SL_REF. With this rename, it hopefully saves a few people from "wtf?" moments.
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-13Codechange: Replace TILE_AREA_LOOP with range-based for loopsglx22
2020-05-21Codechange: Use std::string for most of the user-settable custom names.Michael Lutz
2020-05-06Fix #8021: limit savegame range for docking tiles fixingglx
2020-03-30Fix #8020: Add missing docking tiles around industry neutral stationsSamuXarick
2019-12-21Codechange: Replace FOR_ALL_ROADSTOPS with range-based for loopsglx
2019-12-21Codechange: Replace vehicle related FOR_ALL with range-based for loopsglx
2019-12-21Codechange: Replace order related FOR_ALL with range-based for loopsglx
2019-12-21Codechange: Replace station related FOR_ALL with range-based for loopsglx
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-06-30Feature: Multi-tile docks and docking points.peter1138
2019-04-13Cleanup: Fix alignment after NULL -> nullptr change.peter1138
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-02-02Codechange: Change from numeric to descriptive SLV enum labels for last entries.Peter Nelson
2019-02-02Codechange: Convert saveload numbers to enum values.Peter Nelson
(This was mostly achieved with a few in-place regexes)
2019-02-02Codechange: Make saveload version upper bound exclusive, i.e. version object ↵Peter Nelson
was removed instead of version object last appeared.
2019-01-30Codechange: Remove value mangling and field misuse in SLE_WRITEBYTE.Peter Nelson
The original translation functionality hasn't been used since 2007.
2018-09-02Feature: [NewGRF] Increase size of persistent storage to 256.Michael Lutz
2018-06-26Change: Increase cargo type limit to 64.PeterN
2017-03-05(svn r27770) -Fix [FS#6540]: Initialize variables in station_sl.cpp (JGR)fonsinchen
2014-09-21(svn r26878) -Change: move m6 to TileExtended to keep Tile 8 bytes and thus ↵rubidium
better alignable
2014-08-22(svn r26753) -Fix: desync due to not always properly restoring game state ↵rubidium
from the savegame
2014-05-11(svn r26580) -Codechange: s/GES_PICKUP/GES_RATING/ (it has nothing to do ↵rubidium
with actual pickup), s/acceptance_pickup/status/ (the enum isn't called GoodEntryStatus for a reason; it's not only acceptance and pickup anymore)
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-12-23(svn r26175) -Add: Log in desync output when persistent storage is discarded.frosch
2013-11-23(svn r26057) -Fix: a number of possibly uninitialised variablesrubidium
2013-10-22(svn r25899) -Change: Restrict flows if links are restricted and don't ↵fonsinchen
normally pick them anymore.
2013-06-09(svn r25362) -Feature: consider cargo waiting at other stations for rating ↵fonsinchen
at the origin station
2013-06-09(svn r25361) -Feature: distribute cargo according to plan given by linkgraphfonsinchen
2013-06-09(svn r25360) -Codechange: save and load flow statsfonsinchen
2013-06-08(svn r25337) -Fix: saving only 8 bits of 16 causes endianness problemsfonsinchen
2013-06-01(svn r25312) -Fix-ish: missing spaces after comma + realignment of tables; ↵rubidium
quite boring with -x -w
2013-02-17(svn r25012) -Codechange: persistently keep 'reserved' cargo (for full-load ↵rubidium
improved loading) instead of calculating if for every cycle
2013-01-11(svn r24905) -Feature(ish): Implement station randomisation triggers.peter1138
2012-11-12(svn r24718) -Codechange: Rename GoodsEntry::days_since_pickup to ↵frosch
GoodsEntry::time_since_pickup.
2012-01-03(svn r23740) -Codechange: remove some 300 unneeded includes from the .cpp filesrubidium
2011-12-19(svn r23636) -Add: introduce ScriptText in parameters where it can be usedtruebrain