summaryrefslogtreecommitdiff
path: root/saveload.c
AgeCommit message (Collapse)Author
2006-10-28(svn r6988) Remove a layer of indirection when using the Savegame pooltron
2006-10-28(svn r6986) Use the pool macros for the Town pooltron
2006-10-28(svn r6984) Use the pool macros for the RoadStop pooltron
2006-10-28(svn r6983) Use the pool macros for the Station pooltron
2006-10-28(svn r6981) Use the pool macros for the Savegame pooltron
2006-10-28(svn r6980) Use the pool macros for the Order pooltron
2006-10-28(svn r6977) Use the pool macros for the EngineRenew pooltron
2006-10-28(svn r6975) Use the pool macros for the Vehicle pooltron
2006-10-03(svn r6624) -Feature: added ability to add refit commands to vehicle orders ↵bjarni
(can only be done in goto depot orders) Example: make a train transport iron ore from A to B, then it visits a depot and refits to steel It then transport steel back to A or near A if there is a factory and then it visits another depot to refit to iron ore again This is controlled in the orders. If a goto depot order is lightlighted, then "Unload" changes to "Refit" Control click "Refit" removes the refit part of the order (as the tooltip says) The player will still pay the normal refit costs Known issues: If a vehicle is not in a depot, then the refit window will fail to tell refitted cargo capacity Refit costs in the refit window can sometimes print 0 when it should not because the refit calculation is unaware that the vehicle will be refitted in between Warning: autoreplace got a protection against replacing something so you get a new cargo type, but it can fail here. In the iron ore/steel example, it can see that the vehicle carries iron ore and the new one can be refitted to iron ore, then it will replace. It will not check to see that it's valid for steel as well. This is something to look into in the future
2006-10-01(svn r6602) - Feature: we now support NewGRF livery refits, as used by ↵peter1138
DBsetXL, amongst others. This requires a savegame bump to save the cargo subtype.
2006-09-15(svn r6455) - Feature: Add 2cc (two company colours) livery schemes. This ↵peter1138
replaces the original colour selection window and bumps the saveload version. Liveries are supported for all vehicles, not just those with 2cc support. Thanks to lakie for GUI inspiration.
2006-09-11(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood ↵KUDr
how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
2006-09-04(svn r6381) -Cleanup: make the '/* */' comments that span multiple lines ↵rubidium
more uniform. -Cleanup: whitespace alignment of a few tables.
2006-08-20(svn r6001) -Feature: when removing a farm, his farmland is removed too ↵truelight
(over time) (based on peter1138's patch, FS#82) To make this to work, in older games farmland is removed on load, and replanted
2006-08-20(svn r5999) -Feature: change the original date format to a 32 bits format ↵rubidium
based at the year 0. The game date subsystem now allows someone to start in the year 0 and continue up to the year 5 000 000. However, you currently cannot build anything before 1920 as there is no newgrf support for dates before 1920 or after 2090 yet.
2006-08-20(svn r5977) -Fix [FS#78]: never set I-am-a-thread bool to true IN the ↵truelight
thread. Machines with dualcore can be faster then you want, and therefor create 2 threads, while you made the bool to make sure there is never more then 1 thread of this type.
2006-08-19(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:truelight
- New optional landscape generator (TerraGenesis Perlin) - Load heightmaps (either BMP or PNG) - Progress dialog while generating worlds (no longer a 'hanging' screen) - New dialogs for NewGame, Create Scenario and Play Heightmap - Easier to configure your landscape - More things to configure (tree-placer, ..) - Speedup of world generation - New console command 'restart': restart the map EXACTLY as it was when you first started it (needs a game made after or with this commit) - New console command 'getseed': get the seed of your map and share it with others (of course only works with generated maps) - Many new, world generation related, things - Many internal cleanups and rewrites Many tnx to those people who helped making this: Belugas, DaleStan, glx, KUDr, RichK67, Rubidium, and TrueLight (alfabetic) Many tnx to those who helped testing: Arnau, Bjarni, and tokai (alfabetic) And to all other people who helped testing and sending comments / bugs Stats: 673 lines changed, 3534 new lines, 79 new strings
2006-08-19(svn r5943) -Merge TGP (part r5725): -Codechange: renamed Thread to ↵truelight
OTTDThread, as Windows (who else) uses Thread in winbase.h, and starts complaining if you define it otherwise (with weird, undefined errors) (tnx Arnau and Rubidium)
2006-08-13(svn r5873) - Fix a bad comment in r5871, and add a further check for saving ↵Darkvater
strings.
2006-08-12(svn r5871) -Feature: Add a possibility to handle pointer strings without a ↵Darkvater
buffer from the configuration file. Handy for variables that will never be changed during runtime
2006-06-27(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectaculartron
2006-06-23(svn r5346) - Feature: Add 4 new airports. 2 for aircraft, 2 for helicopters.richk
Commuter airport: Small. 5x4. 3 terminals, 2 helipads. Intercontinental: massive. 9x11. 8 terminals, 2 helipads, 4 runways. Helidepot: a small heliport with a depot for helis only. Helistation: a large heliport with 3 helipads and a depot.
2006-06-18(svn r5307) Remove two unnecessary indirections which used function pointers ↵tron
instead of directly calling the functions
2006-06-11(svn r5229) Remove a write-only variableglx
2006-06-07(svn r5155) - Remove the bridge branch merge (revision r5070)tron
2006-06-02(svn r5070) Merged the bridge branchcelestar
-Feature: Bridges can now be placed above: Any railway track combination (excluding depots and waypoints) Any road combination (excluding depots) Clear tiles (duh), including fields Tunnel entrances Bridge heads Thanks to Tron for idea and implementation, KUDr for the yapf synchronization and many others for hours of testing There are still a number of visual problems remaining, especially when electric railways are on or under the bridge. DO NOT REPORT THOSE BUGS FOR THE TIME BEING please.
2006-05-27(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous ↵KUDr
support and users for testing.
2006-05-06(svn r4757) - Newstations: add saveload support for custom station speclistspeter1138
2006-04-22(svn r4524) - Codechange: Use GB() macros for getting the saveload ↵Darkvater
file/memory types
2006-04-18(svn r4471) - Pools: Add a facility for calling a custom function during ↵peter1138
pool block clean up.
2006-04-18(svn r4470) -Fix: FS#97 — Possible bug in Win64 versions (by michi_cc)KUDr
Doesn't fix any known bug, but the code is now bit cleaner. The proper result of subtraction of two pointers is ptrdiff_t.
2006-04-18(svn r4466) -Fix: (FS#71) Game no longer crashes when the last vehicle ↵celestar
serving a station has been deleted. -Negative side effect: upon loading old games, stations whose last vehicle was a station have (temporarily) lower ratings. -Positive side effect: station.h no longer includes vehicle.h (breaks the station.h->vehicle.h->rail.h chain)
2006-04-11(svn r4361) - Fix: Write and Read the true length of a string-buffer into ↵Darkvater
the savegame instead of the whole buffer.
2006-04-11(svn r4360) - CodeChange: add shortcut to SlGetArrayLength of the ↵Darkvater
gamma-function along the lines of the Write/Read functions
2006-04-03(svn r4259) -[multistop] Fix/Feature/Codechange:celestar
1) Improved the road vehicle allocation (aka slotting) for multistop. Stops can now accept unlimited, er... 256, vehicles. 2) Removed the "wait for stop" feature, because it did not work in practise. 3) Slotting now ignores unreachable stations. Uses NPF at the moment because the old pathfinder cannot do it (yet) 4) Now matter how many vehicles approach a station, they will always be distributed evenly over existing stops. 5) Hopefully the last fundamental change to multistop
2006-03-29(svn r4150) -Feature: Merged elrails into trunk. Thanks to Tron for lots of ↵celestar
code and proofreading, thanks to peter1138 for another lot of code and ideas.
2006-03-25(svn r4105) - Feature: Add proper ISO-8859-15 <> LOCALCODE conversion. As ↵Darkvater
the mess that is makefile can't properly support it at the moment, it is only available for MACOSX. Windows doesn't need FS conversion and I have no idea about OS/2 so it's disabled for them. - CodeChange: Change the function GetCurrentLocale(). It returns the locale from some default environment-variables, plus a custom one defined as parameter. If all fail, it tries $LANG.
2006-03-22(svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added ↵bjarni
in 10.3 this have the sideeffect that 10.2.8 will still have the "failure to save with certain chars in the filename bug", but at least it can compile again
2006-03-18(svn r3972) changed r3966 to only affect OSX. Too bad linuxes with utf-8 ↵bjarni
filesystems now got the saving problem again, but now we can compile on all platforms again
2006-03-18(svn r3966) -Fix: [OSX and some linux] [ 1157244 ] Can't save game if name ↵bjarni
contains german umlauts now it saves correctly, but the load window still display some chars wrong (fix by ln-)
2006-03-17(svn r3915) - Savegame version 23: Do not save the autosave interval anymore ↵Darkvater
with savegames. Some people should be very happe atm ;)
2006-03-02(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.Darkvater
- Remove the temporary synchronisation in during the map-transfer as this is no longer needed - The saved patches work just like the saved gameoptions. You have a _patches and a _patches_newgame struct. The _patches_newgame struct contains the values from the configuration file and thus the defaults for new games. When a new game is started or an older game is loaded, the default values are copied over to _patches to be used. When you load a game that has PATS saved, the default values are also loaded, but immediately overwritten by the values from the savegame. This ensures that player-based values are always taken from your personal preferences. - The current implementation also changes the default values if you change player-based settings in the game. For example changing window_snap_radius in a certain game will also change it for all next OpenTTD sessions. - The savegame version has been increased to 22. - The last 6 orso patches close the following reports: [ 1366446 ] different names for patches: all patch settings have the same name as in the configuration file and are reachable from the console. [ 1288024 ] Strange string on OTTD initial screen: configuration (and this includes patches) inputs are validated and clamped to their minimum/maximum values. [ 1423198 ] Make "Signals on Drive side" player, not server, based: this is only visual so current setting is to save it with the savegame but not synchronise in multiplayer. [ 1208070 ] Patches and New GRF options saved: apart from newgrf this is done
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 r3716) - Move the option settings (_game_opt_desc) from misc.c into ↵Darkvater
settings.c. This will be merged with SettingDesc misc_settings above as they are actually the same. No functionality has changed beside the fact that the settings are now in a different Chunkhandler.
2006-03-01(svn r3712) - Change the boolean assignment/reading from == 1 to != 0 as ↵Darkvater
suggested by Tron.
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-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 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