summaryrefslogtreecommitdiff
path: root/src/saveload/linkgraph_sl.cpp
AgeCommit message (Collapse)Author
2021-04-17Fix: Corrupted savegame could cause heap corruption by writing outside link ↵Milek7
graph edge matrix. (#9046)
2021-02-13Codechange: Don't use cpp_offsetof in the save/load code.Michael Lutz
Many of the member variables that are used in save/load are inside types that are not standard layout types. Using pointer arithmetics to determine addresses of members inside types that are not standard layout is generally undefined behaviour. If we'd use C++17, it is conditionally supported, which means each compiler may or may not support it. And even then using it for individual array elements is syntactically not supported the the standard offsetof function. Unfortunately, the trickery employed for saving linkgraph settings causes quite some clutter in the settings ini files.
2020-12-22Change: [Linkgraph] Pause the game when linkgraph jobs lag (#6470)Jonathan G Rennison
Check if the job is still running two date fract ticks before it is due to join, and if so pause the game until its done. When loading a game, check if the game would block immediately due to a job which is scheduled to be joined within two date fract ticks, and if so pause the game until its done. This avoids the main thread being blocked on a thread join, which appears to the user as if the game is unresponsive, as the UI does not repaint and cannot be interacted with. Show if pause is due to link graph job in status bar, update network messages. This does not apply for network clients.
2019-12-21Codechange: Replace linkgraph related FOR_ALL with range-based for loopsglx
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-05-10Fix #7577: Check if linkgraph station index is valid before dereferencing. ↵PeterN
(#7583)
2019-04-13Cleanup: Fix alignment after NULL -> nullptr change.peter1138
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-03-26Codechange: Removed SmallVector completelyHenry Wilson
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
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.
2018-10-31Doc: Lots and lots of doxymentation fixesCharles Pigott
2015-03-07(svn r27178) -Fix [FS#5969]: Data race due to lazy initialisation of objects.frosch
2014-06-14(svn r26646) -Fix [FS#6041]: Save locations instead of distances in link ↵fonsinchen
graphs to reduce size.
2014-05-16(svn r26589) -Fix: SIGSEGV on all big endian architectures that tried to ↵rubidium
load e.g. the 1.4 intro game or anything else with more than 0 linkgraph nodes that was saved on little endian
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-22(svn r25898) -Codechange: Add second timestamp for 'restricted links' to all ↵fonsinchen
edges.
2013-10-22(svn r25897) -Fix: Dates are int32, not uint32, and should be saved as such.fonsinchen
2013-06-09(svn r25358) -Codechange: save and load link graph jobs and the schedulefonsinchen
2013-05-19(svn r25258) -Codechange: save linkgraph (fonsinchen)rubidium