summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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-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-15Codechange: add the ability to save/load a std::vectorPatric Stout
std::vector<bool> is not possible, as .. that is a nice special case in C++. This new type will be used in next commit.
2021-06-15Change: prefix SL_ARR with the length of the arrayPatric Stout
This means that during loading we can validate that what is saved is also that what is expected. Additionally, this makes all list types similar to how they are stored on disk: First a gamma to indicate length, followed by the data. The size still depends on the type.
2021-06-15Codechange: make it more obvious SlArray supports SLE_VAR_NULLPatric Stout
In the end, the code was already doing the right thing, but a few functions deep, and not really obvious. When validating what objects can handle SLE_VAR_NULL, it is nicer to just have this obvious.
2021-06-15Codechange: use SL_NULL if you want to store null-bytes or load to nothingPatric Stout
Using SL_ARR for this gives us a bit of trouble later on, where we add a length-field to SL_ARR. This of course is not the intention of SLE_CONDNULL. So better seperate it.
2021-06-15Change: switch SL_DEQUE and SL_REFLIST length field to a gammaPatric Stout
The current SaveLoad is a bit inconsistent how long a length field is. Sometimes it is a 32bit, sometimes a gamma. Make it consistent across the board by making them all gammas.
2021-06-15Change: indicate in the savegame if a SL_STRUCT contains any dataPatric Stout
This helps external tooling to understand if a SL_STRUCT should be skipped when reading. Basically, this transforms an SL_STRUCT into a SL_STRUCTLIST with either 0 or 1 length.
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-15Fix: you could join an AI company in multiplayer via the GUI (#9369)SamuXarick
2021-06-15Cleanup: remove some unneeded c_str() callsRubidium
2021-06-15Codechange: [Network] Use std::string instead of char[] for the name of the ↵rubidium42
file that is downloading
2021-06-15Codechange: [Network] Use std::string for the client name in the network serverrubidium42
2021-06-15Codechange: [Network] Use string_view for network compatability checkrubidium42
2021-06-15Codechange: [Network] Simplify constructing the HTTP request with fmtrubidium42
2021-06-15Codechange: [Network] Let NetworkError return its std::string instead of a ↵rubidium42
C-string
2021-06-15Codechange: [Network] Make hostname/client IP return strings instead of a ↵rubidium42
C-string
2021-06-15Codechange: [Network] Let IsInNetmask use std::stringrubidium42
2021-06-15Codechange: [Network] Simplify formatting of network addresses to stringrubidium42
2021-06-14Fix: [Network] Determining GetNetworkRevisionString could overflow and ↵rubidium42
underflow its buffer Tagged releases are not affected
2021-06-14Codechange: use SLE_STRUCT(LIST) for Linkgraph chunksPatric Stout
2021-06-14Codechange: move Save/Load functions of same chunk next to each otherPatric Stout
2021-06-14Codechange: use SLE_STRUCT(LIST) for GameScript chunksPatric Stout
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: use SLE_STRUCT(LIST) for Company chunksPatric Stout
2021-06-14Codechange: use SLE_STRUCT(LIST) for Town 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-14Codechange: ability to store structs and list of structs in savegamesPatric Stout
The commits following this will use this new functionality. Currently, a few places do this manually. This has as drawback that the Save() and Load() code need to be in sync, and that any change can result in (old) savegames no longer loading. In general, it is annoying code to maintain. By putting everything in a description table, and use that for both Save() and Load(), it becomes easier to see what is going on, and hopefully less likely for people to make mistakes.
2021-06-14Update: Translations from eintstranslators
spanish (mexican): 9 changes by absay portuguese (brazilian): 9 changes by Vimerum
2021-06-14Cleanup: nested_array should not be accessed directly.Peter Nelson
Replace accesses with GetWidget() as documented.
2021-06-13Fix a99ac62: fmt's include of cassert breaks our assert logicrubidium42
2021-06-13Update: Translations from eintstranslators
vietnamese: 2 changes by KhoiCanDev german: 9 changes by Wuzzy2 finnish: 1 change by hpiirai portuguese: 9 changes by azulcosta
2021-06-13Codechange: improve style/writing of IConsolePrint stringsrubidium42
2021-06-13Change: do not print the '-' in front of help messages and make help ↵rubidium42
messages more uniform
2021-06-13Codechange: replace IConsolePrintF with IConsolePrint and fmt formattingrubidium42
Also make some strings more consistent with the rest of the console strings.
2021-06-13Change: improve some of the console messages related to networking (make ↵rubidium42
them more uniform) and convert to fmt
2021-06-13Cleanup: remove IConsoleWarning/IConsoleError helpersrubidium42
Both did not support format parameters, so in many places IConsolePrint(CC_ERROR, "message") was used with a style different from what IConsoleError would do.
2021-06-13Change: unify the style of console error messages and convert to fmtrubidium42
Always start with a capital, do not add "ERROR: " in front of it.
2021-06-13Change: not performing a command is worthy of an error, not a warningrubidium42
If a command cannot be executed for whatever reason, it makes no sense to call it a warning. Something has been done wrong. Also make writing of these error message consistent while changing their "type".
2021-06-13Codechange: remove single use IConsoleDebugrubidium42
2021-06-13Codechange: add an IConsolePrint overload that does formatting with fmtrubidium42
2021-06-13Fix 81062163: for (really) old games, station bus/truck station cache was ↵Patric Stout
not updated (#9366)
2021-06-13Codechange: use fmt in DebugPrint where applicablerubidium42
2021-06-13Cleanup: remove old DEBUG macro and debug functionrubidium42
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-06-13Codechange: use the fmt library for simpler debug formatsrubidium42
2021-06-13Add: minimal set of headers from {fmt} 7.1.3 to 3rdpartyrubidium42
2021-06-13Fix #9361, a2051ba: [Network] Off by one in CanWriteToPacketrubidium42
Previously it did not allow writing a byte to a packet that was of size limit - 1 anymore.
2021-06-13Codechange: make the name of SettingDesc a std::stringrubidium42