Commit Graph

134 Commits (cd1dea52ca171f623dc3d92ed39ab2347a1f2023)

Author SHA1 Message Date
Darkvater cd1dea52ca (svn r3875) - [Patches] Fix up the intro menu so the right values for the mapsize are shown (the default ones). Setting the value involves a small hack in that we also set the _patches value because that is used for world-generation and only inside there do the values get copied from _newgame
- [Patches] Fix a stupid, stupid bug where I used sizeof() as length instead of strlen() in getting console values for patches.
19 years ago
Darkvater 37b301ba3a (svn r3854) - Fix restart_game_date to default to zero and allow a value of 0 which got screwed up during the patch-rewrite. Thanks peter1138 19 years ago
Darkvater 9cbce0a46e (svn r3852) - Revert r3733 which fixed the default value loading for char, but broke loading a set value. Added a better fix which needs a char value to be a string (eg enclosed in double-quotes) 19 years ago
peter1138 fc1e9c5a92 (svn r3775) Fix loading of server_port from config file, introduced in Darkvater's unified configuration changes (r3719+) 19 years ago
Darkvater 5b0e6f90a9 (svn r3746) - [7/7] Moving the callback functions for the setting-changes from settings_gui.c to settings.c. Also enable the callback functionality through the console.
- Fix a nasty bug with improper counter addition. (*i)++ and NOT *i++ when setting a patch value through the console.
19 years ago
tron 57aa648a0e (svn r3733) Fix a bug in r3719, which caused a crash when the default value for a SLE_VAR_CHAR setting was used 19 years ago
Darkvater 9bbe6876ba (svn r3732) - Fix two warnings. Stupid MSVC didn't even complain :s (Thank Tron and peter1138)
- NOTE! There are a few warnings left in settings_gui because tha callback functions are disabled. I still need a good place for them.
19 years ago
Darkvater 42dec88a29 (svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
- 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
19 years ago
Darkvater a1f5056061 (svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
- Remove the restriction that the 'patch' console command can only be run from network games.
19 years ago
Darkvater 4412871e5c (svn r3722) - [4/4] Present the game with a unified structure for the configuration-ini, saveload, console and gui representations of the settings. The last part finishes the transition with the merging of the settings_gui table(s).
- Because patches are (will be in a few commits) saved, you cannot specify the order of the GUI-items in the SettingDesc tables themselves. Doing so would mean messing around with the savegame-version, or doing expensive lookups. So the GUI-tables are now just simple indeces into the original table. No more is needed since that table contains all information
- The only change in functionality is that the stepsize has been automated. It is calculated from the minimum and maximum values such that within 50 clicks you will have gone from one end to the other if scrolling.
- The GUI has kept its flags intact. These are:
  SGF_0ISDISABLED: the variable might have a domain higher than zero, but a special value of nul is used as telling that feature is disabled.
  SGF_NOCOMMA: represent the number without any thousand-seperators
  SGF_MULTISTRING: internally the variable is a number, but its representation is a string based on a simple offset.
  SGF_NETWORK_ONLY: this setting can only be changed during network games
  SGF_CURRENCY: the variable represents money and will be shown in the local currency
- - NOTE! The game is not compilable after this commit (because console hooks have not been updated)
19 years ago
Darkvater 903c3aa63d (svn r3721) - [3/4] Present the game with a unified structure for the 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.
19 years ago
Darkvater f83f192309 (svn r3720) - [2/4] Present the game with a unified structure for the configuration-ini, saveload, console and gui representations of the settings. This second part gets rid of the old SettingDesc structures and updates them with the unified types. These new settings are heavily macro'd, which should make it easy to add/edit entries within sections.
- This unified structure merges the settings in settings.c (concerned with the ini file) and the ones in setting_gui., having to do with the GUI. I tried to give sensible min and maximum values to _patches that were not present in the GUI I hope they work out all right.
- All patch settings miss their callback function which have been temporarily reset to NULL
- Fixed a really small typo in a Doxygen comment in settings.h
- NOTE! When for example _patches are saved to the savegame (as are _gameopt_settings now), you cannot just blindly edit the struct. The same rules apply as to all the other SaveLoad structs. Eg correct CONDVAR's and only adding new entries at the end.
- NOTE! The game is not compilable after this commit.
19 years ago
Darkvater 1e247cab21 (svn r3719) - [1/4] Present the game with a unified structure for the 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.
19 years ago
Darkvater 4367870b18 (svn r3716) - Move the option settings (_game_opt_desc) from misc.c into 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. 19 years ago
Darkvater 4aaae55c08 (svn r3641) - Rename MusicFilesettings 'btn_down' to more sensible 'playing' 19 years ago
Darkvater c7e34bd103 (svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings. 19 years ago
Darkvater f112cd722c (svn r3622) - Partly revert r3214. The patch setting max_num_autosaves stays to help control PDA-troubles which the commit was intended for. Didn't revert makefile-config version since it would cause trouble. But Bjarni promised to rewrite it :) 19 years ago
Darkvater 4b5970da84 (svn r3621) - Codechange: Only define the server and bans list if network is enabled. Preparatory work for saving patches/settings to savegame. 19 years ago
truelight caab27d88e (svn r3601) -Codechange: special for Tron, and he was absolutely correct in thisone: added a comment for last commit 19 years ago
truelight e26dcdfa15 (svn r3600) -Fix: suppress error on 64bit targets 19 years ago
truelight ebfe7f6000 (svn r3567) -Fix: for once and for all, use 'unsigned long' if you want to cast something
from int-like to void *... we fixed that not too long ago, and the code below
this changed line clearly tells you do to that :p
19 years ago
Darkvater 7ffdde104f (svn r3550) - [Patches]: fix GCC warning, sorry 19 years ago
Darkvater 64f14ed992 (svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany() 19 years ago
Darkvater 2dc3d8ac2c (svn r3547) - [Patches]: do some general cleanup, commentarization before starting actual work. This patch contains no functional changes (I hope). It might break GPMI-builds though when trying to join a trunk/ network game or vice versa. To solve, you can change the order of the first 8 enums in SettingDescType. I think that'll work. 19 years ago
Darkvater 94dfa09424 (svn r3534) - Codechange: remove unused savedump patch-settings. 19 years ago
peter1138 80952253c2 (svn r3512) Yet more whitespace fixes (mostly by Rubidium) 19 years ago
tron 84fb96fe85 (svn r3511) More whitespace ([FS#46] by Rubidium) 19 years ago
truelight f7603ba3ac (svn r3479) -Fix: fixed warnings on 64bit platforms (anyway, most 64bit platforms)
(tnx to qball and DarkVater for testing)
19 years ago
Darkvater 132125de77 (svn r3475) - Fix: you couldn't remove an item from a list-type of config ingame from the configuration file. Whatever you did, upon restart of OpenTTD those items were still there. To fix this we initialize the first item to NULL in SaveList as it is rebuilt anyways fully. 19 years ago
Darkvater 4e09974975 (svn r3472) - [PBS] Remove from trunk. Anyone interested can still find it in branch/pbs. This reverts revisions r3158, r3140, r3075, r2977, r2674, r2625, r2621, r2529, r2528, r2525, r2524, r2519, r2517, r2516, r2507, r2499. (in conjunction with Tron)
- The only change is that the nsignalsw.grf file is kept and that existing nightlies with PBS signals get those signals converted to combo-signals.
19 years ago
tron b06b3e2ca2 (svn r3313) Remove GPMI related changes from trunk
Revisions in detail: 2542, 3226 (partial), 3229, 3231, 3232, 3238, 3242-3245, 3251, 3253, 3260, 3263, 3265, 3266, 3269, 3277, 3278, 3279, 3283 (partial), 3304, 3305, 3306
19 years ago
truelight 9a381f4d5d (svn r3238) -Fix: always save if you want GPMI-based AIs, this on request by
Darkvater, so we can, in the future, save patch options in savegames 
without any problems.
19 years ago
truelight 4927236912 (svn r3229) -Add: add more GPMI support. Now GPMI-based AIs can be loaded (doesn't change a thing if you didn't enable GPMI) 19 years ago
truelight 31f218fdf9 (svn r3224) -Add: Allow the NewAI to work in Multiplayer Games (switchable via patch
settings, off by defaut). An other step to AIScripts.
      WARNING: this is still highly experimental and has known bugs!
19 years ago
tron f2b344084a (svn r3222) -Feature: Right-Click-Scrolling optionally moves in the opposite direction (Requested by manx) 19 years ago
bjarni eba1f68439 (svn r3214) -Feature: openttd.cfg can now set how many autosaves to keep before starting to overwrite old ones
max_autosave_num in the config files sets the number of autosaves to keep (default 16)
	MAX_NUM_AUTOSAVES in Makefile.config sets the default value. 16 is used if no value is given
	this behaviour can still be overwritten by keep_all_autosave (openttd.config setting)
	Note: this is a requested behaviour for PDA ports, since they got limited storage space
19 years ago
peter1138 350f0f2cdb (svn r3157) - Feature: Added patch option to link the terraform toolbar to the rail, road, water and airport toolbars. If enabled, the terraform toolbar will open and close with those toolbars. 19 years ago
peter1138 c02b1d555d (svn r2982) Newgrf: Added patch option for wagon speed limits. This is enabled by default. 19 years ago
tron 35ce780bb6 (svn r2976) -Fix: Align settings pool items to the size of void* to fix bus errors on 64bit architectures which require aligned variables 19 years ago
tron 45ca3b6336 (svn r2924) Introduce the ALIGN() macro which aligns values to multiples of a power of 2, for exact semantics see the commment in macros.h 19 years ago
tron b101846d3b (svn r2833) Remove saving of sprite cache data:
the benefits are questionable, it's error prone, undocumented and hasn't been widely used for ages, if ever
19 years ago
tron 3f39db10d7 (svn r2831) Fix some potential and real buffer overflows 19 years ago
tron 14e80ca159 (svn r2830) Move CheckSwitchToEuro() to currency.[ch] and hide the truth about the custom currency behind a #define 19 years ago
tron baca040df0 (svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files 19 years ago
tron 2dfbb2963d (svn r2706) Fix !WITH_NETWORK build 19 years ago
tron a227065ab7 (svn r2701) Insert Id tags into all source files 19 years ago
tron 559babcdc9 (svn r2673) Include functions.h directly, not globally via openttd.h 19 years ago
tron 284d9ed7fb (svn r2663) Include variables.h only in these files which need it, not globally via openttd.h 19 years ago
ludde 3e97dda275 (svn r2635) Fix: [ntp/misc] Improve the old pathfinder. Changed it to A* instead of Dijkstra.
- Benchmark shows that NTP is now around 10x faster than NPF.
  - Made IsTunnelTile macro to determine if a tile is a tunnel.
  - Added some useful debugging functions for making tiles red / getting accurate timestamps.
  - Remove old depot finding algorithm.
  - Disable warning for signed/unsigned comparisons.
19 years ago
tron c1da382e9a (svn r2633) Move spritecache related variable from variables.h to spritecache.[ch] 19 years ago