summaryrefslogtreecommitdiff
path: root/saveload.h
AgeCommit message (Collapse)Author
2006-03-02(svn r3721) - [3/4] Present the game with a unified structure for the ↵Darkvater
configuration-ini, saveload, console and gui representations of the settings. From part 3 on, OpenTTD is once again compilable. - Code has been added to the saveload code to honour the SLF_SAVE_NO and SLF_NETWORK_NO flags. SLF_NETWORK_NO just reads in the the bytestream and then discards it because that setting is not synchronised. For this the function SlSkipBytes() has been reinstated - SAVEGAME_VERSION has been changed from a constant ENUM to a constant integer. This was done for the configuration-code to be able to tell which version of a CONDVAR type to handle. As said before, because settings can be saved to the savegame, they will become conditional at some point. The configuration code always has to read the 'most recent' version. - GameOptions are saved through the new structure. It is fully compatible with any old savegame...however it is better. Because of the move to this new format we can instruct the loader to skip certain variables. Autosave for example isn't synchronised anymore (in the network). The same goes for currency and kilometers :D. That is the only functionality change this patch is supposed to have if I have written it correctly. - NOTE! Patches are still not saved so for Multiplayer to work network_client.c and network_server.c needed slight modifications.
2006-03-01(svn r3719) - [1/4] Present the game with a unified structure for the ↵Darkvater
configuration-ini, saveload, console and gui representations of the settings. This first part rewrites the configuration section to use the SaveLoad VarType in general. - This unified structure consists of a SaveLoad type which stores all data relevant about the variable internals such as type, mem/filesize, address, version-control. The SettingDesc type is concerned more about the representation. Things like default value, string-name, minimum/maximum values, gui-behaviour etc. - The SaveLoad type has received a few flags controlling saving/loading. These are: SLF_SAVE_NO: the setting is not saved with the savegame, effectively making this setting player-based. Eg. it will NOT be overwritten when joining a network-game SLF_CONFIG_NO: the setting is not saved to the configuration file so you cannot overwrite it ingame. SLF_NETWORK_NO: the setting is not synchronised with the local settings when the game is loaded during network-play. Note that when SLF_SAVE_NO is set, SLF_NETWORK_NO is also set (which is logical), at least if the proper macros are used (in [2/4]). - NOTE! The game is not compilable after this commit.
2006-03-01(svn r3718) - Add proper Doxygen comments to some saveload-structs (using ///<)Darkvater
2006-03-01(svn r3711) - Extract the WriteValue() and ReadValue() parts of the saveload ↵Darkvater
code to assign/read to/from a variable. Preparatory work to make this the general function type for such assignments
2006-02-23(svn r3662) Fix regression FS#58 with union, endiannes and static ↵Darkvater
decleration problems. Removed the union.
2006-02-23(svn r3661) -Fix [PPC computers] quick dirty fix for failure to start the ↵bjarni
game on BE CPUs 3626 broke the game on Big endian CPUs and this is a quick dirty fix so the nightly builds for OSX and MorphOS will work again the game will still fail on 64 bit BE CPUs note: the game runs in 32 bit mode on G5, so it will work on G5 we need to make a better fix for this, but we also need the nightly builds to work
2006-02-20(svn r3639) Silence warnings on gcc about {} initializers around unionsDarkvater
2006-02-20(svn r3628) - Add BOOL and STRING types to saveload capabilities. String is ↵Darkvater
unused up till now and it saves the full-buffer, regardless of how many characters the string actually has. So give a warning for that and figure it out later.
2006-02-20(svn r3626) - Merge the SlGlobVarList (global variables) and SaveLoad ↵Darkvater
(offset in struct, variable determined runtime) structs. The only difference between these two is the last element that either holds the address or the offset in the struct. Which one to take is determined by which function is called; SlObject or SlGlobList.
2006-02-20(svn r3625) - Move sl_version inside the functions where they are used to ↵Darkvater
force usage.
2006-02-20(svn r3624) - CodeChange: Some cosmetic changes in the saveload code;Darkvater
- hide and validate variable-size calculation (SlCalcConvMemLen/SlCalcConvFileLen) - some signed/unsigned fixes - handle conditional variables the same way for global -and struct types, through checking version_from and version_to
2006-01-12(svn r3396) - Autoreplace changes:peter1138
- Change fixed array per player to a single pool. This avoids future problems with vehicle numbers and decreases savegame size. Engine replacements from previous savegames will be lost. - Move engine replacement code from players.c to engine.c. (thanks to blathijs for rewriting this)
2005-11-22(svn r3227) -Codechange: [Savegame] removed 'minor' version, and renamed ↵truelight
'major' version to just: version.
2005-09-02(svn r2906) Fix some threaded saving problems. Now the thread only ↵Darkvater
interfaces with the main program through a sort of mutex. Communication uses the function OTTD_SendThreadMessage() with the approiate message which is handled in ProcessSentMessage() during the main loop.
2005-08-13(svn r2863) Move some type declarations into saveload.c, should've been part ↵tron
of r2819
2005-08-12(svn r2861) Move inclusion of setjmp.h into saveload.c, should've been part ↵tron
of r2819
2005-08-06(svn r2819) Make variables, which are exclusive for internal use of the ↵tron
save/load code, static in saveload.c
2005-08-05(svn r2809) Implement more generic threading functions, which allow more ↵tron
than one thread
2005-07-24(svn r2701) Insert Id tags into all source filestron
2005-07-22(svn r2672) Move saving/loading related declarations to saveload.htron
2005-06-02(svn r2393) - Implemented threaded saving for OS/2 orudge
- Fixed discrepancy with SlArray declaration
2005-05-30(svn r2387) - CodeChange: made the saveload code more readable and also ↵Darkvater
removed the 'byte' saveload arrays which means you can save an array of more than 255 elements, or bigger structs than 255 bytes. This doesn't yet solve the problem that a chunk can be a maximum of 16384 big. - Fix: also fix an unnoticed error in SlSaveLoadConv() due to wrong types.
2005-01-29(svn r1721) -Feature: It is now possible to build multiple road stations (up ↵celestar
to 8) on a single station. Thanks to: Truelight for the saveload code, Darkvater and Hackykid for network testing and Tron for proof-reading 1500 lines of diff.
2005-01-22(svn r1594) Convert all undefined parameter lists to (void) and add the ↵tron
appropriate warning flags in the Makefile
2005-01-15(svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.truelight
-Codechange: renamed all 'schedule' stuff to 'order(list)' -Codechange: moved all order-stuff to order_cmd.c / order.h -Codechange: vehicles that share orders are now linked to eachother with next_shared/prev_shared in Vehicle Developers: please use AssignOrder to assign data to an order. If not, you _WILL_ make the save-routine to assert!
2005-01-09(svn r1448) -Fix: The current_order of a vehicle is now correctly saved (caused truelight
massive desyncs) Warning: savegames which are made with the nightly of 08-01-2005 will NO LONGER work!!
2005-01-08(svn r1426) -Codechange: cleaned up the reference code in the saveload routinestruelight
-Codechange: removed next_in_chain_old, and saved ->next for Vehicles (and bumped savegame revision for that to version 4.4) -Codechange: Added _sl.full_version, which has both major and minor version
2004-12-28(svn r1288) -Codechange: changed _map2 to an uint16. It is still saved and ↵truelight
loaded as an uint8 till the savegame version is bumped to version 5. Then it works automaticly as a fully uint16. So _stations[] can not be increased till after the bump!!
2004-12-05(svn r959) -Fix: fix previous typo for workaround of braindead MSVC6 (Tron)darkvater
-Fix: added debug code to autosave cause it is buggy in multiplayer (does not remember settings; takes them from _opt instead of _new_opt (or vice versa)).
2004-12-05(svn r957) -Fix: vehicle.c compiler problems for MSVC6 only! (Tron)darkvater
2004-08-09(svn r1) Import of revision 975 of old (crashed) SVNtruelight