author | rubidium |
Sat, 26 Apr 2008 20:54:56 +0000 | |
branch | 0.6 |
changeset 10366 | 960aae8c20e2 |
parent 10328 | 721fe18a2176 |
child 10657 | fedc1923d40e |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
3 |
/** @file settings.cpp |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
4 |
* All actions handling saving and loading of the settings/configuration goes on in this file. |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
5 |
* The file consists of four parts: |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
6 |
* <ol> |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
7 |
* <li>Parsing the configuration file (openttd.cfg). This is achieved with the ini_ functions which |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
8 |
* handle various types, such as normal 'key = value' pairs, lists and value combinations of |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
9 |
* lists, strings, integers, 'bit'-masks and element selections. |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
10 |
* <li>Defining the data structures that go into the configuration. These include for example |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
11 |
* the _patches struct, but also network-settings, banlists, newgrf, etc. There are a lot |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
12 |
* of helper macros available for the various types, and also saving/loading of these settings |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
13 |
* in a savegame is handled inside these structures. |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
14 |
* <li>Handle reading and writing to the setting-structures from inside the game either from |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
15 |
* the console for example or through the gui with CMD_ functions. |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
16 |
* <li>Handle saving/loading of the PATS chunk inside the savegame. |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
17 |
* </ol> |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
18 |
* @see SettingDesc |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
19 |
* @see SaveLoad |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
20 |
*/ |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
21 |
|
0 | 22 |
#include "stdafx.h" |
1891
92a3b0aa0946
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1777
diff
changeset
|
23 |
#include "openttd.h" |
2291
2b064aa97f91
(svn r2815) Store the currency information in one central place instead of scattering it in several unrelated files
tron
parents:
2191
diff
changeset
|
24 |
#include "currency.h" |
2121
c86a863485ee
(svn r2631) Move screenshot related variables from variables.h to screenshot.[ch]
tron
parents:
2044
diff
changeset
|
25 |
#include "screenshot.h" |
2153
91e89aa8c299
(svn r2663) Include variables.h only in these files which need it, not globally via openttd.h
tron
parents:
2125
diff
changeset
|
26 |
#include "variables.h" |
5720
cc0ceeafaa55
(svn r7751) -Codechange: move network_* to a new network map. Furthermore move the low level network functions to network/core, so they can be reused by the masterserver and website-serverlist-updater.
rubidium
parents:
5346
diff
changeset
|
27 |
#include "network/network.h" |
8772
8ae63fc3bbfb
(svn r11840) -Codechange: split network.h so not everything in there needs to be included when wanting to know whether we are a server.
rubidium
parents:
8771
diff
changeset
|
28 |
#include "network/network_internal.h" |
8704
2857ec554839
(svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents:
8653
diff
changeset
|
29 |
#include "settings_internal.h" |
8612
6414fc21c2f3
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
8610
diff
changeset
|
30 |
#include "command_func.h" |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
31 |
#include "console.h" |
3112
05a599216d83
(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.
Darkvater
parents:
3052
diff
changeset
|
32 |
#include "saveload.h" |
3358
798877df0899
(svn r4153) -Codechange. Changed NPF_TILE_LENGTH into an enum and moved it out of variables.h. Just a drop in the bucket, but it is a start
celestar
parents:
3352
diff
changeset
|
33 |
#include "npf.h" |
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
34 |
#include "yapf/yapf.h" |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
35 |
#include "newgrf.h" |
5228
c4a780348f66
(svn r7348) -Feature: Initial support for saving NewGRF settings with savegames. Back up your savegames...
peter1138
parents:
5211
diff
changeset
|
36 |
#include "newgrf_config.h" |
4300
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4293
diff
changeset
|
37 |
#include "genworld.h" |
5116
2a33a74925c5
(svn r7195) -Feature: [FS#297, optional elrails] New patches/vehicles option 'disable electrified railways'.
KUDr
parents:
5113
diff
changeset
|
38 |
#include "rail.h" |
8249
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
39 |
#include "train.h" |
6609
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
40 |
#include "news.h" |
8603
88c5ce6a5215
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8602
diff
changeset
|
41 |
#include "window_func.h" |
8610
17cc343a23dd
(svn r11675) -Codechange: split the string types from the string functions.
rubidium
parents:
8609
diff
changeset
|
42 |
#include "strings_func.h" |
8640
1e93b81e96d2
(svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes.
rubidium
parents:
8636
diff
changeset
|
43 |
#include "vehicle_func.h" |
8653
a83f7a536919
(svn r11719) -Codechange: split sound.h in a header with types and one with functions.
rubidium
parents:
8640
diff
changeset
|
44 |
#include "sound_func.h" |
8709
4187ad809fe7
(svn r11776) -Codechange: more header splittings to reduce the dependencies.
rubidium
parents:
8704
diff
changeset
|
45 |
#include "core/alloc_func.hpp" |
8750
fdd6054e7bae
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8710
diff
changeset
|
46 |
#include "player_func.h" |
5108
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
47 |
#ifdef WITH_FREETYPE |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
48 |
#include "fontcache.h" |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
49 |
#endif |
7299
74e163f03bbc
(svn r10042) -Codechange: Replace hardcoded spritecache size with a configuration
peter1138
parents:
7276
diff
changeset
|
50 |
#include "spritecache.h" |
8345
6caa3fdb972c
(svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
belugas
parents:
8249
diff
changeset
|
51 |
#include "transparency.h" |
8710
52015340050c
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium
parents:
8709
diff
changeset
|
52 |
#include "string_func.h" |
8760
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
53 |
#include "gui.h" |
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
54 |
#include "town.h" |
8771
f7ad4dba14bf
(svn r11839) -Codechange: move some variables from variables.h to a more logical location.
rubidium
parents:
8761
diff
changeset
|
55 |
#include "video/video_driver.hpp" |
f7ad4dba14bf
(svn r11839) -Codechange: move some variables from variables.h to a more logical location.
rubidium
parents:
8761
diff
changeset
|
56 |
#include "sound/sound_driver.hpp" |
f7ad4dba14bf
(svn r11839) -Codechange: move some variables from variables.h to a more logical location.
rubidium
parents:
8761
diff
changeset
|
57 |
#include "music/music_driver.hpp" |
f7ad4dba14bf
(svn r11839) -Codechange: move some variables from variables.h to a more logical location.
rubidium
parents:
8761
diff
changeset
|
58 |
#include "blitter/factory.hpp" |
8760
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
59 |
|
ce0891c412ce
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8750
diff
changeset
|
60 |
#include "table/strings.h" |
0 | 61 |
|
8704
2857ec554839
(svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents:
8653
diff
changeset
|
62 |
GameOptions _opt; |
2857ec554839
(svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents:
8653
diff
changeset
|
63 |
GameOptions _opt_newgame; |
2857ec554839
(svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents:
8653
diff
changeset
|
64 |
GameOptions *_opt_ptr; |
2857ec554839
(svn r11771) -Codechange: split settings.h into better separated headers.
rubidium
parents:
8653
diff
changeset
|
65 |
Patches _patches; |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
66 |
Patches _patches_newgame; |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
67 |
|
6574
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
68 |
struct IniFile; |
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
69 |
struct IniItem; |
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
70 |
struct IniGroup; |
e1d1a12faaf7
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6573
diff
changeset
|
71 |
struct SettingsMemoryPool; |
0 | 72 |
|
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
73 |
typedef const char *SettingListCallbackProc(const IniItem *item, uint index); |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
74 |
typedef void SettingDescProc(IniFile *ini, const SettingDesc *desc, const char *grpname, void *object); |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
75 |
typedef void SettingDescProcList(IniFile *ini, const char *grpname, char **list, uint len, SettingListCallbackProc proc); |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
76 |
|
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
77 |
static void pool_init(SettingsMemoryPool **pool); |
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
78 |
static void *pool_alloc(SettingsMemoryPool **pool, uint size); |
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
79 |
static void *pool_strdup(SettingsMemoryPool **pool, const char *mem, uint size); |
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
80 |
static void pool_free(SettingsMemoryPool **pool); |
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
81 |
static bool IsSignedVarMemType(VarType vt); |
0 | 82 |
|
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
83 |
struct SettingsMemoryPool { |
0 | 84 |
uint pos,size; |
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
85 |
SettingsMemoryPool *next; |
0 | 86 |
byte mem[1]; |
87 |
}; |
|
88 |
||
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
89 |
static SettingsMemoryPool *pool_new(uint minsize) |
0 | 90 |
{ |
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
91 |
SettingsMemoryPool *p; |
0 | 92 |
if (minsize < 4096 - 12) minsize = 4096 - 12; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
93 |
|
8533
a9b708fe4a00
(svn r11597) -Change: replace all remaining instances of (re|m|c)alloc with (Re|M|C)allocT and add a check for out-of-memory situations to the *allocT functions.
rubidium
parents:
8530
diff
changeset
|
94 |
p = (SettingsMemoryPool*)MallocT<byte>(sizeof(SettingsMemoryPool) - 1 + minsize); |
0 | 95 |
p->pos = 0; |
96 |
p->size = minsize; |
|
97 |
p->next = NULL; |
|
98 |
return p; |
|
99 |
} |
|
100 |
||
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
101 |
static void pool_init(SettingsMemoryPool **pool) |
0 | 102 |
{ |
103 |
*pool = pool_new(0); |
|
104 |
} |
|
105 |
||
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
106 |
static void *pool_alloc(SettingsMemoryPool **pool, uint size) |
0 | 107 |
{ |
108 |
uint pos; |
|
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
109 |
SettingsMemoryPool *p = *pool; |
0 | 110 |
|
8423
8453e9a0f0b5
(svn r11480) -Codechange: Rename the function ALIGN fitting to the naming style
skidd13
parents:
8418
diff
changeset
|
111 |
size = Align(size, sizeof(void*)); |
0 | 112 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
113 |
/* first check if there's memory in the next pool */ |
0 | 114 |
if (p->next && p->next->pos + size <= p->next->size) { |
115 |
p = p->next; |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
116 |
/* then check if there's not memory in the cur pool */ |
0 | 117 |
} else if (p->pos + size > p->size) { |
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
118 |
SettingsMemoryPool *n = pool_new(size); |
0 | 119 |
*pool = n; |
120 |
n->next = p; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
121 |
p = n; |
0 | 122 |
} |
123 |
||
124 |
pos = p->pos; |
|
125 |
p->pos += size; |
|
126 |
return p->mem + pos; |
|
127 |
} |
|
128 |
||
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
129 |
static void *pool_strdup(SettingsMemoryPool **pool, const char *mem, uint size) |
0 | 130 |
{ |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
131 |
byte *p = (byte*)pool_alloc(pool, size + 1); |
0 | 132 |
p[size] = 0; |
133 |
memcpy(p, mem, size); |
|
134 |
return p; |
|
135 |
} |
|
136 |
||
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
137 |
static void pool_free(SettingsMemoryPool **pool) |
0 | 138 |
{ |
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
139 |
SettingsMemoryPool *p = *pool, *n; |
0 | 140 |
*pool = NULL; |
141 |
while (p) { |
|
142 |
n = p->next; |
|
143 |
free(p); |
|
144 |
p = n; |
|
145 |
} |
|
146 |
} |
|
147 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
148 |
/** structs describing the ini format. */ |
0 | 149 |
struct IniItem { |
150 |
char *name; |
|
151 |
char *value; |
|
152 |
char *comment; |
|
153 |
IniItem *next; |
|
154 |
}; |
|
155 |
||
156 |
struct IniGroup { |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
157 |
char *name; ///< name of group |
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
158 |
char *comment; ///<comment for group |
0 | 159 |
IniItem *item, **last_item; |
160 |
IniGroup *next; |
|
161 |
IniFile *ini; |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
162 |
IniGroupType type; ///< type of group |
0 | 163 |
}; |
164 |
||
165 |
struct IniFile { |
|
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
166 |
SettingsMemoryPool *pool; |
0 | 167 |
IniGroup *group, **last_group; |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
168 |
char *comment; ///< last comment in file |
0 | 169 |
}; |
170 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
171 |
/** allocate an inifile object */ |
6573 | 172 |
static IniFile *ini_alloc() |
0 | 173 |
{ |
174 |
IniFile *ini; |
|
1258
7b078174f796
(svn r1762) -Codechange: renamed 'MemoryPool' to 'SettingsMemoryPool' (we need
truelight
parents:
1247
diff
changeset
|
175 |
SettingsMemoryPool *pool; |
0 | 176 |
pool_init(&pool); |
177 |
ini = (IniFile*)pool_alloc(&pool, sizeof(IniFile)); |
|
178 |
ini->pool = pool; |
|
179 |
ini->group = NULL; |
|
180 |
ini->last_group = &ini->group; |
|
181 |
ini->comment = NULL; |
|
182 |
return ini; |
|
183 |
} |
|
184 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
185 |
/** allocate an ini group object */ |
0 | 186 |
static IniGroup *ini_group_alloc(IniFile *ini, const char *grpt, int len) |
187 |
{ |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
188 |
IniGroup *grp = (IniGroup*)pool_alloc(&ini->pool, sizeof(IniGroup)); |
0 | 189 |
grp->ini = ini; |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
190 |
grp->name = (char*)pool_strdup(&ini->pool, grpt, len); |
2953
310f58987d7b
(svn r3512) Yet more whitespace fixes (mostly by Rubidium)
peter1138
parents:
2952
diff
changeset
|
191 |
if (!strcmp(grp->name, "newgrf") || !strcmp(grp->name, "servers") || !strcmp(grp->name, "bans")) { |
705
e213445d82ec
(svn r1157) Enhanced the config file (openttd.cfg) to use another section type. "List sections" as opposed to "variable sections" contain a list of values, separated by a new line. This is now used for the [newgrf] group. You have to edit each line in this section from e.g. "0 = firstset.grf" to only "firstset.grf".
dominik
parents:
690
diff
changeset
|
192 |
grp->type = IGT_LIST; |
2953
310f58987d7b
(svn r3512) Yet more whitespace fixes (mostly by Rubidium)
peter1138
parents:
2952
diff
changeset
|
193 |
} else { |
705
e213445d82ec
(svn r1157) Enhanced the config file (openttd.cfg) to use another section type. "List sections" as opposed to "variable sections" contain a list of values, separated by a new line. This is now used for the [newgrf] group. You have to edit each line in this section from e.g. "0 = firstset.grf" to only "firstset.grf".
dominik
parents:
690
diff
changeset
|
194 |
grp->type = IGT_VARIABLES; |
2953
310f58987d7b
(svn r3512) Yet more whitespace fixes (mostly by Rubidium)
peter1138
parents:
2952
diff
changeset
|
195 |
} |
0 | 196 |
grp->next = NULL; |
197 |
grp->item = NULL; |
|
198 |
grp->comment = NULL; |
|
199 |
grp->last_item = &grp->item; |
|
200 |
*ini->last_group = grp; |
|
201 |
ini->last_group = &grp->next; |
|
202 |
return grp; |
|
203 |
} |
|
204 |
||
205 |
static IniItem *ini_item_alloc(IniGroup *group, const char *name, int len) |
|
206 |
{ |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
207 |
IniItem *item = (IniItem*)pool_alloc(&group->ini->pool, sizeof(IniItem)); |
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
208 |
item->name = (char*)pool_strdup(&group->ini->pool, name, len); |
0 | 209 |
item->next = NULL; |
210 |
item->comment = NULL; |
|
211 |
item->value = NULL; |
|
212 |
*group->last_item = item; |
|
213 |
group->last_item = &item->next; |
|
214 |
return item; |
|
215 |
} |
|
216 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
217 |
/** load an ini file into the "abstract" format */ |
0 | 218 |
static IniFile *ini_load(const char *filename) |
219 |
{ |
|
220 |
char buffer[1024], c, *s, *t, *e; |
|
221 |
FILE *in; |
|
222 |
IniFile *ini; |
|
223 |
IniGroup *group = NULL; |
|
224 |
IniItem *item; |
|
225 |
||
1329 | 226 |
char *comment = NULL; |
0 | 227 |
uint comment_size = 0; |
228 |
uint comment_alloc = 0; |
|
229 |
||
230 |
ini = ini_alloc(); |
|
231 |
||
232 |
in = fopen(filename, "r"); |
|
233 |
if (in == NULL) return ini; |
|
234 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
235 |
/* for each line in the file */ |
0 | 236 |
while (fgets(buffer, sizeof(buffer), in)) { |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
237 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
238 |
/* trim whitespace from the left side */ |
9191
ae14770c829a
(svn r12368) -Codechange: use explicit body for loops and conditions and remove -Wno-empty-body from the configure script
smatz
parents:
9144
diff
changeset
|
239 |
for (s = buffer; *s == ' ' || *s == '\t'; s++) {} |
0 | 240 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
241 |
/* trim whitespace from right side. */ |
0 | 242 |
e = s + strlen(s); |
243 |
while (e > s && ((c=e[-1]) == '\n' || c == '\r' || c == ' ' || c == '\t')) e--; |
|
3598
0cf4d5726bf8
(svn r4489) - Codechange: some small cleanups in the settings-parser code, mainly substituting terminating 0 characters with '\0'.
Darkvater
parents:
3596
diff
changeset
|
244 |
*e = '\0'; |
0 | 245 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
246 |
/* skip comments and empty lines */ |
4969
e68b7e0b27e3
(svn r6972) - Codechange: Allow standard ini-file style comments
peter1138
parents:
4870
diff
changeset
|
247 |
if (*s == '#' || *s == ';' || *s == '\0') { |
0 | 248 |
uint ns = comment_size + (e - s + 1); |
249 |
uint a = comment_alloc; |
|
250 |
uint pos; |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
251 |
/* add to comment */ |
0 | 252 |
if (ns > a) { |
5852
cb3f71b16e1a
(svn r8055) -Codechange: Replace the different max, dmax, maxu whatever macros by a simple template function max(), that requires two arguments of the same type. While I'm at it change a variable called "max" to "maxval" in a function that calls max().
celestar
parents:
5838
diff
changeset
|
253 |
a = max(a, 128U); |
0 | 254 |
do a*=2; while (a < ns); |
5860
7fdc9b423ba1
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr
parents:
5852
diff
changeset
|
255 |
comment = ReallocT(comment, comment_alloc = a); |
0 | 256 |
} |
257 |
pos = comment_size; |
|
258 |
comment_size += (e - s + 1); |
|
259 |
comment[pos + e - s] = '\n'; // comment newline |
|
260 |
memcpy(comment + pos, s, e - s); // copy comment contents |
|
261 |
continue; |
|
262 |
} |
|
263 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
264 |
/* it's a group? */ |
0 | 265 |
if (s[0] == '[') { |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
266 |
if (e[-1] != ']') { |
5827
20879afb77f6
(svn r8013) -Codechange (r6921, rUnknown): Show the error message of corrupt or missing (own) files
Darkvater
parents:
5726
diff
changeset
|
267 |
ShowInfoF("ini: invalid group name '%s'", buffer); |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
268 |
} else { |
0 | 269 |
e--; |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
270 |
} |
0 | 271 |
s++; // skip [ |
272 |
group = ini_group_alloc(ini, s, e - s); |
|
273 |
if (comment_size) { |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
274 |
group->comment = (char*)pool_strdup(&ini->pool, comment, comment_size); |
0 | 275 |
comment_size = 0; |
276 |
} |
|
277 |
} else if (group) { |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
278 |
/* find end of keyname */ |
6933
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
279 |
if (*s == '\"') { |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
280 |
s++; |
9191
ae14770c829a
(svn r12368) -Codechange: use explicit body for loops and conditions and remove -Wno-empty-body from the configure script
smatz
parents:
9144
diff
changeset
|
281 |
for (t = s; *t != '\0' && *t != '\"'; t++) {} |
6933
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
282 |
if (*t == '\"') *t = ' '; |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
283 |
} else { |
9191
ae14770c829a
(svn r12368) -Codechange: use explicit body for loops and conditions and remove -Wno-empty-body from the configure script
smatz
parents:
9144
diff
changeset
|
284 |
for (t = s; *t != '\0' && *t != '=' && *t != '\t' && *t != ' '; t++) {} |
6933
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
285 |
} |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
286 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
287 |
/* it's an item in an existing group */ |
0 | 288 |
item = ini_item_alloc(group, s, t-s); |
289 |
if (comment_size) { |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
290 |
item->comment = (char*)pool_strdup(&ini->pool, comment, comment_size); |
0 | 291 |
comment_size = 0; |
292 |
} |
|
293 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
294 |
/* find start of parameter */ |
0 | 295 |
while (*t == '=' || *t == ' ' || *t == '\t') t++; |
759
6d087784a08a
(svn r1215) Feature: You can now make a custom currency by chosing "Custom..."
dominik
parents:
738
diff
changeset
|
296 |
|
6d087784a08a
(svn r1215) Feature: You can now make a custom currency by chosing "Custom..."
dominik
parents:
738
diff
changeset
|
297 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
298 |
/* remove starting quotation marks */ |
2952 | 299 |
if (*t == '\"') t++; |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
300 |
/* remove ending quotation marks */ |
759
6d087784a08a
(svn r1215) Feature: You can now make a custom currency by chosing "Custom..."
dominik
parents:
738
diff
changeset
|
301 |
e = t + strlen(t); |
3598
0cf4d5726bf8
(svn r4489) - Codechange: some small cleanups in the settings-parser code, mainly substituting terminating 0 characters with '\0'.
Darkvater
parents:
3596
diff
changeset
|
302 |
if (e > t && e[-1] == '\"') e--; |
0cf4d5726bf8
(svn r4489) - Codechange: some small cleanups in the settings-parser code, mainly substituting terminating 0 characters with '\0'.
Darkvater
parents:
3596
diff
changeset
|
303 |
*e = '\0'; |
759
6d087784a08a
(svn r1215) Feature: You can now make a custom currency by chosing "Custom..."
dominik
parents:
738
diff
changeset
|
304 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
305 |
item->value = (char*)pool_strdup(&ini->pool, t, e - t); |
0 | 306 |
} else { |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
307 |
/* it's an orphan item */ |
5827
20879afb77f6
(svn r8013) -Codechange (r6921, rUnknown): Show the error message of corrupt or missing (own) files
Darkvater
parents:
5726
diff
changeset
|
308 |
ShowInfoF("ini: '%s' outside of group", buffer); |
0 | 309 |
} |
310 |
} |
|
311 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
312 |
if (comment_size > 0) { |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
313 |
ini->comment = (char*)pool_strdup(&ini->pool, comment, comment_size); |
0 | 314 |
comment_size = 0; |
315 |
} |
|
316 |
||
317 |
free(comment); |
|
318 |
fclose(in); |
|
319 |
||
320 |
return ini; |
|
321 |
} |
|
322 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
323 |
/** lookup a group or make a new one */ |
0 | 324 |
static IniGroup *ini_getgroup(IniFile *ini, const char *name, int len) |
325 |
{ |
|
326 |
IniGroup *group; |
|
327 |
||
328 |
if (len == -1) len = strlen(name); |
|
329 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
330 |
/* does it exist already? */ |
2952 | 331 |
for (group = ini->group; group; group = group->next) |
0 | 332 |
if (!memcmp(group->name, name, len) && group->name[len] == 0) |
333 |
return group; |
|
334 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
335 |
/* otherwise make a new one */ |
0 | 336 |
group = ini_group_alloc(ini, name, len); |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
337 |
group->comment = (char*)pool_strdup(&ini->pool, "\n", 1); |
0 | 338 |
return group; |
339 |
} |
|
340 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
341 |
/** lookup an item or make a new one */ |
0 | 342 |
static IniItem *ini_getitem(IniGroup *group, const char *name, bool create) |
343 |
{ |
|
344 |
IniItem *item; |
|
345 |
uint len = strlen(name); |
|
346 |
||
2952 | 347 |
for (item = group->item; item; item = item->next) |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
348 |
if (strcmp(item->name, name) == 0) return item; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
349 |
|
0 | 350 |
if (!create) return NULL; |
351 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
352 |
/* otherwise make a new one */ |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
353 |
return ini_item_alloc(group, name, len); |
0 | 354 |
} |
355 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
356 |
/** save ini file from the "abstract" format. */ |
0 | 357 |
static bool ini_save(const char *filename, IniFile *ini) |
358 |
{ |
|
359 |
FILE *f; |
|
360 |
IniGroup *group; |
|
361 |
IniItem *item; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
362 |
|
0 | 363 |
f = fopen(filename, "w"); |
364 |
if (f == NULL) return false; |
|
365 |
||
2919
5a867896b255
(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.
Darkvater
parents:
2916
diff
changeset
|
366 |
for (group = ini->group; group != NULL; group = group->next) { |
0 | 367 |
if (group->comment) fputs(group->comment, f); |
368 |
fprintf(f, "[%s]\n", group->name); |
|
2919
5a867896b255
(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.
Darkvater
parents:
2916
diff
changeset
|
369 |
for (item = group->item; item != NULL; item = item->next) { |
3600
8ac0930f937a
(svn r4491) - Codechange: handle IGT_LIST types just as the other types with a proper name and value setting (for example for newgrf parameters).
Darkvater
parents:
3599
diff
changeset
|
370 |
assert(item->value != NULL); |
8ac0930f937a
(svn r4491) - Codechange: handle IGT_LIST types just as the other types with a proper name and value setting (for example for newgrf parameters).
Darkvater
parents:
3599
diff
changeset
|
371 |
if (item->comment != NULL) fputs(item->comment, f); |
8ac0930f937a
(svn r4491) - Codechange: handle IGT_LIST types just as the other types with a proper name and value setting (for example for newgrf parameters).
Darkvater
parents:
3599
diff
changeset
|
372 |
|
6933
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
373 |
/* protect item->name with quotes if needed */ |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
374 |
if (strchr(item->name, ' ') != NULL) { |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
375 |
fprintf(f, "\"%s\"", item->name); |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
376 |
} else { |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
377 |
fprintf(f, "%s", item->name); |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
378 |
} |
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
379 |
|
4434
4175805666a5
(svn r6204) -Cleanup: replace non-indentation with spaces; like '}<TAB>else {' -> '} else {', tabs between code and comment, etc.
rubidium
parents:
4431
diff
changeset
|
380 |
/* Don't give an equal sign to list items that don't have a parameter */ |
3600
8ac0930f937a
(svn r4491) - Codechange: handle IGT_LIST types just as the other types with a proper name and value setting (for example for newgrf parameters).
Darkvater
parents:
3599
diff
changeset
|
381 |
if (group->type == IGT_LIST && *item->value == '\0') { |
6933
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
382 |
fprintf(f, "\n"); |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
383 |
} else { |
6933
93e62a8e80bd
(svn r9573) -Fix: enclose settings names containing spaces (like newgrf paths) with quotes
glx
parents:
6925
diff
changeset
|
384 |
fprintf(f, " = %s\n", item->value); |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
385 |
} |
0 | 386 |
} |
387 |
} |
|
388 |
if (ini->comment) fputs(ini->comment, f); |
|
389 |
||
390 |
fclose(f); |
|
391 |
return true; |
|
392 |
} |
|
393 |
||
394 |
static void ini_free(IniFile *ini) |
|
395 |
{ |
|
396 |
pool_free(&ini->pool); |
|
397 |
} |
|
398 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
399 |
/** Find the index value of a ONEofMANY type in a string seperated by | |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
400 |
* @param many full domain of values the ONEofMANY setting can have |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
401 |
* @param one the current value of the setting for which a value needs found |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
402 |
* @param onelen force calculation of the *one parameter |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
403 |
* @return the integer index of the full-list, or -1 if not found */ |
0 | 404 |
static int lookup_oneofmany(const char *many, const char *one, int onelen) |
405 |
{ |
|
406 |
const char *s; |
|
407 |
int idx; |
|
408 |
||
409 |
if (onelen == -1) onelen = strlen(one); |
|
410 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
411 |
/* check if it's an integer */ |
0 | 412 |
if (*one >= '0' && *one <= '9') |
413 |
return strtoul(one, NULL, 0); |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
414 |
|
0 | 415 |
idx = 0; |
2952 | 416 |
for (;;) { |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
417 |
/* find end of item */ |
0 | 418 |
s = many; |
419 |
while (*s != '|' && *s != 0) s++; |
|
420 |
if (s - many == onelen && !memcmp(one, many, onelen)) return idx; |
|
421 |
if (*s == 0) return -1; |
|
422 |
many = s + 1; |
|
423 |
idx++; |
|
424 |
} |
|
425 |
} |
|
426 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
427 |
/** Find the set-integer value MANYofMANY type in a string |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
428 |
* @param many full domain of values the MANYofMANY setting can have |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
429 |
* @param str the current string value of the setting, each individual |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
430 |
* of seperated by a whitespace,tab or | character |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
431 |
* @return the 'fully' set integer, or -1 if a set is not found */ |
0 | 432 |
static uint32 lookup_manyofmany(const char *many, const char *str) |
433 |
{ |
|
434 |
const char *s; |
|
435 |
int r; |
|
436 |
uint32 res = 0; |
|
437 |
||
2952 | 438 |
for (;;) { |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
439 |
/* skip "whitespace" */ |
0 | 440 |
while (*str == ' ' || *str == '\t' || *str == '|') str++; |
441 |
if (*str == 0) break; |
|
442 |
||
443 |
s = str; |
|
444 |
while (*s != 0 && *s != ' ' && *s != '\t' && *s != '|') s++; |
|
445 |
||
446 |
r = lookup_oneofmany(many, str, s - str); |
|
447 |
if (r == -1) return (uint32)-1; |
|
448 |
||
8427
143b0be22af1
(svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13
parents:
8424
diff
changeset
|
449 |
SetBit(res, r); // value found, set it |
0 | 450 |
if (*s == 0) break; |
451 |
str = s + 1; |
|
452 |
} |
|
453 |
return res; |
|
454 |
} |
|
455 |
||
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
456 |
/** Parse an integerlist string and set each found value |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
457 |
* @param p the string to be parsed. Each element in the list is seperated by a |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
458 |
* comma or a space character |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
459 |
* @param items pointer to the integerlist-array that will be filled with values |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
460 |
* @param maxitems the maximum number of elements the integerlist-array has |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
461 |
* @return returns the number of items found, or -1 on an error */ |
0 | 462 |
static int parse_intlist(const char *p, int *items, int maxitems) |
463 |
{ |
|
464 |
int n = 0, v; |
|
465 |
char *end; |
|
466 |
||
2952 | 467 |
for (;;) { |
0 | 468 |
v = strtol(p, &end, 0); |
469 |
if (p == end || n == maxitems) return -1; |
|
470 |
p = end; |
|
471 |
items[n++] = v; |
|
3598
0cf4d5726bf8
(svn r4489) - Codechange: some small cleanups in the settings-parser code, mainly substituting terminating 0 characters with '\0'.
Darkvater
parents:
3596
diff
changeset
|
472 |
if (*p == '\0') break; |
3599
c24dba47af62
(svn r4490) - Feature: The integer-list parser now accepts a space character as an item seperator next to the comma.
Darkvater
parents:
3598
diff
changeset
|
473 |
if (*p != ',' && *p != ' ') return -1; |
0 | 474 |
p++; |
475 |
} |
|
476 |
||
477 |
return n; |
|
478 |
} |
|
479 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
480 |
/** Load parsed string-values into an integer-array (intlist) |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
481 |
* @param str the string that contains the values (and will be parsed) |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
482 |
* @param array pointer to the integer-arrays that will be filled |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
483 |
* @param nelems the number of elements the array holds. Maximum is 64 elements |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
484 |
* @param type the type of elements the array holds (eg INT8, UINT16, etc.) |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
485 |
* @return return true on success and false on error */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
486 |
static bool load_intlist(const char *str, void *array, int nelems, VarType type) |
0 | 487 |
{ |
488 |
int items[64]; |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
489 |
int i, nitems; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
490 |
|
0 | 491 |
if (str == NULL) { |
492 |
memset(items, 0, sizeof(items)); |
|
493 |
nitems = nelems; |
|
494 |
} else { |
|
495 |
nitems = parse_intlist(str, items, lengthof(items)); |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
496 |
if (nitems != nelems) return false; |
0 | 497 |
} |
498 |
||
2952 | 499 |
switch (type) { |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
500 |
case SLE_VAR_BL: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
501 |
case SLE_VAR_I8: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
502 |
case SLE_VAR_U8: |
2952 | 503 |
for (i = 0; i != nitems; i++) ((byte*)array)[i] = items[i]; |
0 | 504 |
break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
505 |
case SLE_VAR_I16: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
506 |
case SLE_VAR_U16: |
2952 | 507 |
for (i = 0; i != nitems; i++) ((uint16*)array)[i] = items[i]; |
0 | 508 |
break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
509 |
case SLE_VAR_I32: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
510 |
case SLE_VAR_U32: |
2952 | 511 |
for (i = 0; i != nitems; i++) ((uint32*)array)[i] = items[i]; |
0 | 512 |
break; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
513 |
default: NOT_REACHED(); |
0 | 514 |
} |
515 |
||
516 |
return true; |
|
517 |
} |
|
518 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
519 |
/** Convert an integer-array (intlist) to a string representation. Each value |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
520 |
* is seperated by a comma or a space character |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
521 |
* @param buf output buffer where the string-representation will be stored |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
522 |
* @param array pointer to the integer-arrays that is read from |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
523 |
* @param nelems the number of elements the array holds. |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
524 |
* @param type the type of elements the array holds (eg INT8, UINT16, etc.) */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
525 |
static void make_intlist(char *buf, const void *array, int nelems, VarType type) |
0 | 526 |
{ |
527 |
int i, v = 0; |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
528 |
const byte *p = (const byte*)array; |
2952 | 529 |
|
530 |
for (i = 0; i != nelems; i++) { |
|
531 |
switch (type) { |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
532 |
case SLE_VAR_BL: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
533 |
case SLE_VAR_I8: v = *(int8*)p; p += 1; break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
534 |
case SLE_VAR_U8: v = *(byte*)p; p += 1; break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
535 |
case SLE_VAR_I16: v = *(int16*)p; p += 2; break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
536 |
case SLE_VAR_U16: v = *(uint16*)p; p += 2; break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
537 |
case SLE_VAR_I32: v = *(int32*)p; p += 4; break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
538 |
case SLE_VAR_U32: v = *(uint32*)p; p += 4; break; |
0 | 539 |
default: NOT_REACHED(); |
540 |
} |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
541 |
buf += sprintf(buf, (i == 0) ? "%d" : ",%d", v); |
0 | 542 |
} |
543 |
} |
|
544 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
545 |
/** Convert a ONEofMANY structure to a string representation. |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
546 |
* @param buf output buffer where the string-representation will be stored |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
547 |
* @param many the full-domain string of possible values |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
548 |
* @param id the value of the variable and whose string-representation must be found */ |
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
549 |
static void make_oneofmany(char *buf, const char *many, int id) |
0 | 550 |
{ |
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
551 |
int orig_id = id; |
0 | 552 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
553 |
/* Look for the id'th element */ |
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
554 |
while (--id >= 0) { |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
555 |
for (; *many != '|'; many++) { |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
556 |
if (*many == '\0') { // not found |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
557 |
sprintf(buf, "%d", orig_id); |
0 | 558 |
return; |
559 |
} |
|
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
560 |
} |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
561 |
many++; // pass the |-character |
0 | 562 |
} |
563 |
||
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
564 |
/* copy string until next item (|) or the end of the list if this is the last one */ |
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
565 |
while (*many != '\0' && *many != '|') *buf++ = *many++; |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
566 |
*buf = '\0'; |
0 | 567 |
} |
568 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
569 |
/** Convert a MANYofMANY structure to a string representation. |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
570 |
* @param buf output buffer where the string-representation will be stored |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
571 |
* @param many the full-domain string of possible values |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
572 |
* @param x the value of the variable and whose string-representation must |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
573 |
* be found in the bitmasked many string */ |
0 | 574 |
static void make_manyofmany(char *buf, const char *many, uint32 x) |
575 |
{ |
|
576 |
const char *start; |
|
577 |
int i = 0; |
|
578 |
bool init = true; |
|
579 |
||
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
580 |
for (; x != 0; x >>= 1, i++) { |
0 | 581 |
start = many; |
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
582 |
while (*many != 0 && *many != '|') many++; // advance to the next element |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
583 |
|
8424
4a488a90ccab
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
8423
diff
changeset
|
584 |
if (HasBit(x, 0)) { // item found, copy it |
0 | 585 |
if (!init) *buf++ = '|'; |
586 |
init = false; |
|
587 |
if (start == many) { |
|
588 |
buf += sprintf(buf, "%d", i); |
|
589 |
} else { |
|
590 |
memcpy(buf, start, many - start); |
|
591 |
buf += many - start; |
|
592 |
} |
|
593 |
} |
|
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
594 |
|
0 | 595 |
if (*many == '|') many++; |
2973
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
596 |
} |
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
597 |
|
350705be2913
(svn r3548) - [Patches]: rework two loops in make_oneofmany() and make_manyofmany()
Darkvater
parents:
2972
diff
changeset
|
598 |
*buf = '\0'; |
0 | 599 |
} |
600 |
||
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
601 |
/** Convert a string representation (external) of a setting to the internal rep. |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
602 |
* @param desc SettingDesc struct that holds all information about the variable |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
603 |
* @param str input string that will be parsed based on the type of desc |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
604 |
* @return return the parsed value of the setting */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
605 |
static const void *string_to_val(const SettingDescBase *desc, const char *str) |
0 | 606 |
{ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
607 |
switch (desc->cmd) { |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
608 |
case SDT_NUMX: { |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
609 |
char *end; |
2991
4582583fba15
(svn r3567) -Fix: for once and for all, use 'unsigned long' if you want to cast something
truelight
parents:
2975
diff
changeset
|
610 |
unsigned long val = strtoul(str, &end, 0); |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
611 |
if (*end != '\0') ShowInfoF("ini: trailing characters at end of setting '%s'", desc->name); |
0 | 612 |
return (void*)val; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
613 |
} |
0 | 614 |
case SDT_ONEOFMANY: { |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
615 |
long r = lookup_oneofmany(desc->many, str, -1); |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
616 |
/* if the first attempt of conversion from string to the appropriate value fails, |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
617 |
* look if we have defined a converter from old value to new value. */ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
618 |
if (r == -1 && desc->proc_cnvt != NULL) r = desc->proc_cnvt(str); |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
619 |
if (r != -1) return (void*)r; //and here goes converted value |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
620 |
ShowInfoF("ini: invalid value '%s' for '%s'", str, desc->name); //sorry, we failed |
0 | 621 |
return 0; |
622 |
} |
|
623 |
case SDT_MANYOFMANY: { |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
624 |
unsigned long r = lookup_manyofmany(desc->many, str); |
2923
272d1b0962bc
(svn r3479) -Fix: fixed warnings on 64bit platforms (anyway, most 64bit platforms)
truelight
parents:
2919
diff
changeset
|
625 |
if (r != (unsigned long)-1) return (void*)r; |
0 | 626 |
ShowInfoF("ini: invalid value '%s' for '%s'", str, desc->name); |
627 |
return 0; |
|
628 |
} |
|
629 |
case SDT_BOOLX: |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
630 |
if (strcmp(str, "true") == 0 || strcmp(str, "on") == 0 || strcmp(str, "1") == 0) |
0 | 631 |
return (void*)true; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
632 |
if (strcmp(str, "false") == 0 || strcmp(str, "off") == 0 || strcmp(str, "0") == 0) |
0 | 633 |
return (void*)false; |
634 |
ShowInfoF("ini: invalid setting value '%s' for '%s'", str, desc->name); |
|
635 |
break; |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
636 |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
637 |
case SDT_STRING: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
638 |
case SDT_INTLIST: return str; |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
639 |
default: break; |
0 | 640 |
} |
641 |
||
642 |
return NULL; |
|
643 |
} |
|
644 |
||
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
645 |
/** Set the value of a setting and if needed clamp the value to |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
646 |
* the preset minimum and maximum. |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
647 |
* @param ptr the variable itself |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
648 |
* @param sd pointer to the 'information'-database of the variable |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
649 |
* @param val signed long version of the new value |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
650 |
* @pre SettingDesc is of type SDT_BOOLX, SDT_NUMX, |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
651 |
* SDT_ONEOFMANY or SDT_MANYOFMANY. Other types are not supported as of now */ |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
652 |
static void Write_ValidateSetting(void *ptr, const SettingDesc *sd, int32 val) |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
653 |
{ |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
654 |
const SettingDescBase *sdb = &sd->desc; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
655 |
|
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
656 |
if (sdb->cmd != SDT_BOOLX && |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
657 |
sdb->cmd != SDT_NUMX && |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
658 |
sdb->cmd != SDT_ONEOFMANY && |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
659 |
sdb->cmd != SDT_MANYOFMANY) { |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
660 |
return; |
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
661 |
} |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
662 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
663 |
/* We cannot know the maximum value of a bitset variable, so just have faith */ |
3352
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
664 |
if (sdb->cmd != SDT_MANYOFMANY) { |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
665 |
/* We need to take special care of the uint32 type as we receive from the function |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
666 |
* a signed integer. While here also bail out on 64-bit settings as those are not |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
667 |
* supported. Unsigned 8 and 16-bit variables are safe since they fit into a signed |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
668 |
* 32-bit variable |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
669 |
* TODO: Support 64-bit settings/variables */ |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
670 |
switch (GetVarMemType(sd->save.conv)) { |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
671 |
case SLE_VAR_BL: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
672 |
case SLE_VAR_I8: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
673 |
case SLE_VAR_U8: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
674 |
case SLE_VAR_I16: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
675 |
case SLE_VAR_U16: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
676 |
case SLE_VAR_I32: { |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
677 |
/* Override the minimum value. No value below sdb->min, except special value 0 */ |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
678 |
int32 min = ((sdb->flags & SGF_0ISDISABLED) && val <= sdb->min) ? 0 : sdb->min; |
8418
b49fc6be1ab9
(svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style
skidd13
parents:
8397
diff
changeset
|
679 |
val = Clamp(val, min, sdb->max); |
3352
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
680 |
} break; |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
681 |
case SLE_VAR_U32: { |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
682 |
/* Override the minimum value. No value below sdb->min, except special value 0 */ |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
683 |
uint min = ((sdb->flags & SGF_0ISDISABLED) && (uint)val <= (uint)sdb->min) ? 0 : sdb->min; |
8418
b49fc6be1ab9
(svn r11475) -Codechange: rename clamp and clampu to Clamp and ClampU to fit with the coding style
skidd13
parents:
8397
diff
changeset
|
684 |
WriteValue(ptr, SLE_VAR_U32, (int64)ClampU(val, min, sdb->max)); |
3352
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
685 |
return; |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
686 |
} |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
687 |
case SLE_VAR_I64: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
688 |
case SLE_VAR_U64: |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
689 |
default: NOT_REACHED(); break; |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
690 |
} |
49d580a11385
(svn r4142) - Fix [FS#74]: Incorrectly loaded settings from the config file when the signed uint32 variable would be negative.
Darkvater
parents:
3342
diff
changeset
|
691 |
} |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
692 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
693 |
WriteValue(ptr, sd->save.conv, (int64)val); |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
694 |
} |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
695 |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
696 |
/** Load values from a group of an IniFile structure into the internal representation |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
697 |
* @param ini pointer to IniFile structure that holds administrative information |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
698 |
* @param sd pointer to SettingDesc structure whose internally pointed variables will |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
699 |
* be given values |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
700 |
* @param grpname the group of the IniFile to search in for the new values |
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
701 |
* @param object pointer to the object been loaded */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
702 |
static void ini_load_settings(IniFile *ini, const SettingDesc *sd, const char *grpname, void *object) |
0 | 703 |
{ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
704 |
IniGroup *group; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
705 |
IniGroup *group_def = ini_getgroup(ini, grpname, -1); |
0 | 706 |
IniItem *item; |
222
b88456001397
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater
parents:
193
diff
changeset
|
707 |
const void *p; |
0 | 708 |
void *ptr; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
709 |
const char *s; |
0 | 710 |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
711 |
for (; sd->save.cmd != SL_END; sd++) { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
712 |
const SettingDescBase *sdb = &sd->desc; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
713 |
const SaveLoad *sld = &sd->save; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
714 |
|
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
715 |
if (!SlIsObjectCurrentlyValid(sld->version_from, sld->version_to)) continue; |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
716 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
717 |
/* XXX - wtf is this?? (group override?) */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
718 |
s = strchr(sdb->name, '.'); |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
719 |
if (s != NULL) { |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
720 |
group = ini_getgroup(ini, sdb->name, s - sdb->name); |
0 | 721 |
s++; |
722 |
} else { |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
723 |
s = sdb->name; |
0 | 724 |
group = group_def; |
725 |
} |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
726 |
|
0 | 727 |
item = ini_getitem(group, s, false); |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
728 |
p = (item == NULL) ? sdb->def : string_to_val(sdb, item->value); |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
729 |
ptr = GetVariableAddress(object, sld); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
730 |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
731 |
switch (sdb->cmd) { |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
732 |
case SDT_BOOLX: /* All four are various types of (integer) numbers */ |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
733 |
case SDT_NUMX: |
0 | 734 |
case SDT_ONEOFMANY: |
735 |
case SDT_MANYOFMANY: |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
736 |
Write_ValidateSetting(ptr, sd, (unsigned long)p); break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
737 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
738 |
case SDT_STRING: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
739 |
switch (GetVarMemType(sld->conv)) { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
740 |
case SLE_VAR_STRB: |
4255
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
741 |
case SLE_VAR_STRBQ: |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
742 |
if (p != NULL) ttd_strlcpy((char*)ptr, (const char*)p, sld->length); |
4255
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
743 |
break; |
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
744 |
case SLE_VAR_STR: |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
745 |
case SLE_VAR_STRQ: |
4255
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
746 |
if (p != NULL) { |
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
747 |
free(*(char**)ptr); |
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
748 |
*(char**)ptr = strdup((const char*)p); |
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
749 |
} |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
750 |
break; |
3192
5ac5072bf4b6
(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)
Darkvater
parents:
3152
diff
changeset
|
751 |
case SLE_VAR_CHAR: *(char*)ptr = *(char*)p; break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
752 |
default: NOT_REACHED(); break; |
0 | 753 |
} |
754 |
break; |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
755 |
|
0 | 756 |
case SDT_INTLIST: { |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
757 |
if (!load_intlist((const char*)p, ptr, sld->length, GetVarMemType(sld->conv))) |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
758 |
ShowInfoF("ini: error in array '%s'", sdb->name); |
0 | 759 |
break; |
760 |
} |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
761 |
default: NOT_REACHED(); break; |
0 | 762 |
} |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
763 |
} |
0 | 764 |
} |
765 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
766 |
/** Save the values of settings to the inifile. |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
767 |
* @param ini pointer to IniFile structure |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
768 |
* @param sd read-only SettingDesc structure which contains the unmodified, |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
769 |
* loaded values of the configuration file and various information about it |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
770 |
* @param grpname holds the name of the group (eg. [network]) where these will be saved |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
771 |
* @param object pointer to the object been saved |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
772 |
* The function works as follows: for each item in the SettingDesc structure we |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
773 |
* have a look if the value has changed since we started the game (the original |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
774 |
* values are reloaded when saving). If settings indeed have changed, we get |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
775 |
* these and save them. |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
776 |
*/ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
777 |
static void ini_save_settings(IniFile *ini, const SettingDesc *sd, const char *grpname, void *object) |
0 | 778 |
{ |
779 |
IniGroup *group_def = NULL, *group; |
|
780 |
IniItem *item; |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
781 |
char buf[512]; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
782 |
const char *s; |
222
b88456001397
(svn r223) -Fix: Const correctness and miscellaneous fixes. Thank you Tron for your diligent fixing of warnings (and some possibly bugs) (Tron)
darkvater
parents:
193
diff
changeset
|
783 |
void *ptr; |
0 | 784 |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
785 |
for (; sd->save.cmd != SL_END; sd++) { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
786 |
const SettingDescBase *sdb = &sd->desc; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
787 |
const SaveLoad *sld = &sd->save; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
788 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
789 |
/* If the setting is not saved to the configuration |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
790 |
* file, just continue with the next setting */ |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
791 |
if (!SlIsObjectCurrentlyValid(sld->version_from, sld->version_to)) continue; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
792 |
if (sld->conv & SLF_CONFIG_NO) continue; |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
793 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
794 |
/* XXX - wtf is this?? (group override?) */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
795 |
s = strchr(sdb->name, '.'); |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
796 |
if (s != NULL) { |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
797 |
group = ini_getgroup(ini, sdb->name, s - sdb->name); |
0 | 798 |
s++; |
799 |
} else { |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
800 |
if (group_def == NULL) group_def = ini_getgroup(ini, grpname, -1); |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
801 |
s = sdb->name; |
0 | 802 |
group = group_def; |
803 |
} |
|
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
804 |
|
0 | 805 |
item = ini_getitem(group, s, true); |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
806 |
ptr = GetVariableAddress(object, sld); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
807 |
|
0 | 808 |
if (item->value != NULL) { |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
809 |
/* check if the value is the same as the old value */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
810 |
const void *p = string_to_val(sdb, item->value); |
0 | 811 |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
812 |
/* The main type of a variable/setting is in bytes 8-15 |
4549
60410aa1aa88
(svn r6381) -Cleanup: make the '/* */' comments that span multiple lines more uniform.
rubidium
parents:
4511
diff
changeset
|
813 |
* The subtype (what kind of numbers do we have there) is in 0-7 */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
814 |
switch (sdb->cmd) { |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
815 |
case SDT_BOOLX: |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
816 |
case SDT_NUMX: |
0 | 817 |
case SDT_ONEOFMANY: |
818 |
case SDT_MANYOFMANY: |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
819 |
switch (GetVarMemType(sld->conv)) { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
820 |
case SLE_VAR_BL: |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
821 |
if (*(bool*)ptr == (p != NULL)) continue; |
5066
72aa68614963
(svn r7124) -Fix (r37xx): sizeof(bool) = 4 for (certain) OSX do not assume it is 1. This would break
Darkvater
parents:
5052
diff
changeset
|
822 |
break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
823 |
case SLE_VAR_I8: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
824 |
case SLE_VAR_U8: |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
825 |
if (*(byte*)ptr == (byte)(unsigned long)p) continue; |
0 | 826 |
break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
827 |
case SLE_VAR_I16: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
828 |
case SLE_VAR_U16: |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
829 |
if (*(uint16*)ptr == (uint16)(unsigned long)p) continue; |
0 | 830 |
break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
831 |
case SLE_VAR_I32: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
832 |
case SLE_VAR_U32: |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
833 |
if (*(uint32*)ptr == (uint32)(unsigned long)p) continue; |
0 | 834 |
break; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
835 |
default: NOT_REACHED(); |
0 | 836 |
} |
837 |
break; |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
838 |
default: break; /* Assume the other types are always changed */ |
0 | 839 |
} |
840 |
} |
|
841 |
||
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
842 |
/* Value has changed, get the new value and put it into a buffer */ |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
843 |
switch (sdb->cmd) { |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
844 |
case SDT_BOOLX: |
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
845 |
case SDT_NUMX: |
0 | 846 |
case SDT_ONEOFMANY: |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
847 |
case SDT_MANYOFMANY: { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
848 |
uint32 i = (uint32)ReadValue(ptr, sld->conv); |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
849 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
850 |
switch (sdb->cmd) { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
851 |
case SDT_BOOLX: strcpy(buf, (i != 0) ? "true" : "false"); break; |
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
852 |
case SDT_NUMX: sprintf(buf, IsSignedVarMemType(sld->conv) ? "%d" : "%u", i); break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
853 |
case SDT_ONEOFMANY: make_oneofmany(buf, sdb->many, i); break; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
854 |
case SDT_MANYOFMANY: make_manyofmany(buf, sdb->many, i); break; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
855 |
default: NOT_REACHED(); |
0 | 856 |
} |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
857 |
} break; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
858 |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
859 |
case SDT_STRING: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
860 |
switch (GetVarMemType(sld->conv)) { |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
861 |
case SLE_VAR_STRB: strcpy(buf, (char*)ptr); break; |
4255
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
862 |
case SLE_VAR_STRBQ:sprintf(buf, "\"%s\"", (char*)ptr); break; |
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
863 |
case SLE_VAR_STR: strcpy(buf, *(char**)ptr); break; |
5cb4bcf7c83f
(svn r5871) -Feature: Add a possibility to handle pointer strings without a buffer from the configuration file. Handy for variables that will never be changed during runtime
Darkvater
parents:
4143
diff
changeset
|
864 |
case SLE_VAR_STRQ: sprintf(buf, "\"%s\"", *(char**)ptr); break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
865 |
case SLE_VAR_CHAR: sprintf(buf, "\"%c\"", *(char*)ptr); break; |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
866 |
default: NOT_REACHED(); |
0 | 867 |
} |
868 |
break; |
|
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
869 |
|
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
870 |
case SDT_INTLIST: |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
871 |
make_intlist(buf, ptr, sld->length, GetVarMemType(sld->conv)); |
0 | 872 |
break; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
873 |
default: NOT_REACHED(); |
0 | 874 |
} |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
875 |
|
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
876 |
/* The value is different, that means we have to write it to the ini */ |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
877 |
item->value = (char*)pool_strdup(&ini->pool, buf, strlen(buf)); |
193
0a7025304867
(svn r194) -Codechange: stripping trailing-spaces. Please keep this that way!
truelight
parents:
188
diff
changeset
|
878 |
} |
0 | 879 |
} |
880 |
||
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
881 |
/** Loads all items from a 'grpname' section into a list |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
882 |
* The list parameter can be a NULL pointer, in this case nothing will be |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
883 |
* saved and a callback function should be defined that will take over the |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
884 |
* list-handling and store the data itself somewhere. |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
885 |
* @param ini IniFile handle to the ini file with the source data |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
886 |
* @param grpname character string identifying the section-header of the ini |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
887 |
* file that will be parsed |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
888 |
* @param list pointer to an string(pointer) array that will store the parsed |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
889 |
* entries of the given section |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
890 |
* @param len the maximum number of items available for the above list |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
891 |
* @param proc callback function that can override how the values are stored |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
892 |
* inside the list */ |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
893 |
static void ini_load_setting_list(IniFile *ini, const char *grpname, char **list, uint len, SettingListCallbackProc proc) |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
894 |
{ |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
895 |
IniGroup *group = ini_getgroup(ini, grpname, -1); |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
896 |
IniItem *item; |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
897 |
const char *entry; |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
898 |
uint i, j; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
899 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
900 |
if (group == NULL) return; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
901 |
|
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
902 |
for (i = j = 0, item = group->item; item != NULL; item = item->next) { |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
903 |
entry = (proc != NULL) ? proc(item, i++) : item->name; |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
904 |
|
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
905 |
if (entry == NULL || list == NULL) continue; |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
906 |
|
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
907 |
if (j == len) break; |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
908 |
list[j++] = strdup(entry); |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
909 |
} |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
910 |
} |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
911 |
|
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
912 |
/** Saves all items from a list into the 'grpname' section |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
913 |
* The list parameter can be a NULL pointer, in this case a callback function |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
914 |
* should be defined that will provide the source data to be saved. |
6984
045168d13eef
(svn r9669) -Documentation: some more doxygen fixes
belugas
parents:
6982
diff
changeset
|
915 |
* @param ini IniFile handle to the ini file where the destination data is saved |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
916 |
* @param grpname character string identifying the section-header of the ini file |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
917 |
* @param list pointer to an string(pointer) array that will be used as the |
6984
045168d13eef
(svn r9669) -Documentation: some more doxygen fixes
belugas
parents:
6982
diff
changeset
|
918 |
* source to be saved into the relevant ini section |
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
919 |
* @param len the maximum number of items available for the above list |
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
920 |
* @param proc callback function that can will provide the source data if defined */ |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
921 |
static void ini_save_setting_list(IniFile *ini, const char *grpname, char **list, uint len, SettingListCallbackProc proc) |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
922 |
{ |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
923 |
IniGroup *group = ini_getgroup(ini, grpname, -1); |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
924 |
IniItem *item = NULL; |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
925 |
const char *entry; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
926 |
uint i; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
927 |
bool first = true; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
928 |
|
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
929 |
if (proc == NULL && list == NULL) return; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
930 |
if (group == NULL) return; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
931 |
group->item = NULL; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
932 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
933 |
for (i = 0; i != len; i++) { |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
934 |
entry = (proc != NULL) ? proc(NULL, i) : list[i]; |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
935 |
|
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
936 |
if (entry == NULL || *entry == '\0') continue; |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
937 |
|
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
938 |
if (first) { // add first item to the head of the group |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
939 |
item = ini_item_alloc(group, entry, strlen(entry)); |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
940 |
item->value = item->name; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
941 |
group->item = item; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
942 |
first = false; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
943 |
} else { // all other items are attached to the previous one |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
944 |
item->next = ini_item_alloc(group, entry, strlen(entry)); |
3115
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
945 |
item = item->next; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
946 |
item->value = item->name; |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
947 |
} |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
948 |
} |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
949 |
} |
1f4949f5dc5d
(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.
Darkvater
parents:
3112
diff
changeset
|
950 |
|
0 | 951 |
//*************************** |
2972
f9fcee7f3815
(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.
Darkvater
parents:
2969
diff
changeset
|
952 |
// OTTD specific INI stuff |
0 | 953 |
//*************************** |
954 |
||
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
955 |
/** Settings-macro usage: |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
956 |
* The list might look daunting at first, but is in general easy to understand. |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
957 |
* We have two types of list: |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
958 |
* 1. SDTG_something |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
959 |
* 2. SDT_something |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
960 |
* The 'G' stands for global, so this is the one you will use for a |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
961 |
* SettingDescGlobVarList section meaning global variables. The other uses a |
6953
6b62ce182e3e
(svn r9616) -Cleanup: Remove the NS setting type since it causes desyncs in multiplayer mode and only serves to confuse patch authors.
maedhros
parents:
6950
diff
changeset
|
962 |
* Base/Offset and runtime variable selection mechanism, known from the saveload |
6b62ce182e3e
(svn r9616) -Cleanup: Remove the NS setting type since it causes desyncs in multiplayer mode and only serves to confuse patch authors.
maedhros
parents:
6950
diff
changeset
|
963 |
* convention (it also has global so it should not be hard). |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
964 |
* Of each type there are again two versions, the normal one and one prefixed |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
965 |
* with 'COND'. |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
966 |
* COND means that the setting is only valid in certain savegame versions |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
967 |
* (since patches are saved to the savegame, this bookkeeping is necessary. |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
968 |
* Now there are a lot of types. Easy ones are: |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
969 |
* - VAR: any number type, 'type' field specifies what number. eg int8 or uint32 |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
970 |
* - BOOL: a boolean number type |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
971 |
* - STR: a string or character. 'type' field specifies what string. Normal, string, or quoted |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
972 |
* A bit more difficult to use are MMANY (meaning ManyOfMany) and OMANY (OneOfMany) |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
973 |
* These are actually normal numbers, only bitmasked. In MMANY several bits can |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
974 |
* be set, in the other only one. |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
975 |
* The most complex type is INTLIST. This is basically an array of numbers. If |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
976 |
* the intlist is only valid in certain savegame versions because for example |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
977 |
* it has grown in size its length cannot be automatically be calculated so |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
978 |
* use SDT(G)_CONDLISTO() meaning Old. |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
979 |
* If nothing fits you, you can use the GENERAL macros, but it exposes the |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
980 |
* internal structure somewhat so it needs a little looking. There are _NULL() |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
981 |
* macros as well, these fill up space so you can add more patches there (in |
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
982 |
* place) and you DON'T have to increase the savegame version. |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
983 |
* |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
984 |
* While reading values from openttd.cfg, some values may not be converted |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
985 |
* properly, for any kind of reasons. In order to allow a process of self-cleaning |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
986 |
* mechanism, a callback procedure is made available. You will have to supply the function, which |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
987 |
* will work on a string, one function per patch. And of course, enable the callback param |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
988 |
* on the appropriate macro. |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
989 |
*/ |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
990 |
|
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
991 |
#define NSD_GENERAL(name, def, cmd, guiflags, min, max, interval, many, str, proc, load)\ |
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
992 |
{name, (const void*)(def), {cmd}, {guiflags}, min, max, interval, many, str, proc, load} |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
993 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
994 |
/* Macros for various objects to go in the configuration file. |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
995 |
* This section is for global variables */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
996 |
#define SDTG_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, var, length, def, min, max, interval, full, str, proc, from, to)\ |
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
997 |
{NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, proc, NULL), SLEG_GENERAL(sle_cmd, var, type | flags, length, from, to)} |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
998 |
|
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
999 |
#define SDTG_CONDVAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc, from, to)\ |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1000 |
SDTG_GENERAL(name, SDT_NUMX, SL_VAR, type, flags, guiflags, var, 0, def, min, max, interval, NULL, str, proc, from, to) |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1001 |
#define SDTG_VAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc)\ |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1002 |
SDTG_CONDVAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc, 0, SL_MAX_VERSION) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1003 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1004 |
#define SDTG_CONDBOOL(name, flags, guiflags, var, def, str, proc, from, to)\ |
6309
8b9b549655dc
(svn r8684) -Fix [FS#483] (r3720): a bool (uint32 in PPC) was written to as a uint8. Later those bools are used as index into an array as they expect the value to be 0 or 1.
rubidium
parents:
5939
diff
changeset
|
1005 |
SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, proc, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1006 |
#define SDTG_BOOL(name, flags, guiflags, var, def, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1007 |
SDTG_CONDBOOL(name, flags, guiflags, var, def, str, proc, 0, SL_MAX_VERSION) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1008 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1009 |
#define SDTG_CONDLIST(name, type, length, flags, guiflags, var, def, str, proc, from, to)\ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1010 |
SDTG_GENERAL(name, SDT_INTLIST, SL_ARR, type, flags, guiflags, var, length, def, 0, 0, 0, NULL, str, proc, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1011 |
#define SDTG_LIST(name, type, flags, guiflags, var, def, str, proc)\ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1012 |
SDTG_GENERAL(name, SDT_INTLIST, SL_ARR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, proc, 0, SL_MAX_VERSION) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1013 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1014 |
#define SDTG_CONDSTR(name, type, length, flags, guiflags, var, def, str, proc, from, to)\ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1015 |
SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, length, def, 0, 0, 0, NULL, str, proc, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1016 |
#define SDTG_STR(name, type, flags, guiflags, var, def, str, proc)\ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1017 |
SDTG_GENERAL(name, SDT_STRING, SL_STR, type, flags, guiflags, var, lengthof(var), def, 0, 0, 0, NULL, str, proc, 0, SL_MAX_VERSION) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1018 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1019 |
#define SDTG_CONDOMANY(name, type, flags, guiflags, var, def, max, full, str, proc, from, to)\ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1020 |
SDTG_GENERAL(name, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, max, 0, full, str, proc, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1021 |
#define SDTG_OMANY(name, type, flags, guiflags, var, def, max, full, str, proc)\ |
7024
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1022 |
SDTG_CONDOMANY(name, type, flags, guiflags, var, def, max, full, str, proc, 0, SL_MAX_VERSION) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1023 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1024 |
#define SDTG_CONDMMANY(name, type, flags, guiflags, var, def, full, str, proc, from, to)\ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1025 |
SDTG_GENERAL(name, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, var, 0, def, 0, 0, 0, full, str, proc, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1026 |
#define SDTG_MMANY(name, type, flags, guiflags, var, def, full, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1027 |
SDTG_CONDMMANY(name, type, flags, guiflags, var, def, full, str, proc, 0, SL_MAX_VERSION) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1028 |
|
3222
8bfed4267cba
(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
Darkvater
parents:
3210
diff
changeset
|
1029 |
#define SDTG_CONDNULL(length, from, to)\ |
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
1030 |
{{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLEG_CONDNULL(length, from, to)} |
3222
8bfed4267cba
(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
Darkvater
parents:
3210
diff
changeset
|
1031 |
|
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
1032 |
#define SDTG_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLEG_END()} |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1033 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1034 |
/* Macros for various objects to go in the configuration file. |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1035 |
* This section is for structures where their various members are saved */ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1036 |
#define SDT_GENERAL(name, sdt_cmd, sle_cmd, type, flags, guiflags, base, var, length, def, min, max, interval, full, str, proc, load, from, to)\ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1037 |
{NSD_GENERAL(name, def, sdt_cmd, guiflags, min, max, interval, full, str, proc, load), SLE_GENERAL(sle_cmd, base, var, type | flags, length, from, to)} |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1038 |
|
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1039 |
#define SDT_CONDVAR(base, var, type, from, to, flags, guiflags, def, min, max, interval, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1040 |
SDT_GENERAL(#var, SDT_NUMX, SL_VAR, type, flags, guiflags, base, var, 1, def, min, max, interval, NULL, str, proc, NULL, from, to) |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1041 |
#define SDT_VAR(base, var, type, flags, guiflags, def, min, max, interval, str, proc)\ |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1042 |
SDT_CONDVAR(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, min, max, interval, str, proc) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1043 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1044 |
#define SDT_CONDBOOL(base, var, from, to, flags, guiflags, def, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1045 |
SDT_GENERAL(#var, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, base, var, 1, def, 0, 1, 0, NULL, str, proc, NULL, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1046 |
#define SDT_BOOL(base, var, flags, guiflags, def, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1047 |
SDT_CONDBOOL(base, var, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1048 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1049 |
#define SDT_CONDLIST(base, var, type, from, to, flags, guiflags, def, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1050 |
SDT_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, proc, NULL, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1051 |
#define SDT_LIST(base, var, type, flags, guiflags, def, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1052 |
SDT_CONDLIST(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1053 |
#define SDT_CONDLISTO(base, var, length, type, from, to, flags, guiflags, def, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1054 |
SDT_GENERAL(#var, SDT_INTLIST, SL_ARR, type, flags, guiflags, base, var, length, def, 0, 0, 0, NULL, str, proc, NULL, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1055 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1056 |
#define SDT_CONDSTR(base, var, type, from, to, flags, guiflags, def, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1057 |
SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, base, var, lengthof(((base*)8)->var), def, 0, 0, 0, NULL, str, proc, NULL, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1058 |
#define SDT_STR(base, var, type, flags, guiflags, def, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1059 |
SDT_CONDSTR(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1060 |
#define SDT_CONDSTRO(base, var, length, type, from, to, flags, def, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1061 |
SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, 0, base, var, length, def, 0, 0, NULL, str, proc, from, to) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1062 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1063 |
#define SDT_CONDCHR(base, var, from, to, flags, guiflags, def, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1064 |
SDT_GENERAL(#var, SDT_STRING, SL_VAR, SLE_CHAR, flags, guiflags, base, var, 1, def, 0, 0, 0, NULL, str, proc, NULL, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1065 |
#define SDT_CHR(base, var, flags, guiflags, def, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1066 |
SDT_CONDCHR(base, var, 0, SL_MAX_VERSION, flags, guiflags, def, str, proc) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1067 |
|
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1068 |
#define SDT_CONDOMANY(base, var, type, from, to, flags, guiflags, def, max, full, str, proc, load)\ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1069 |
SDT_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, max, 0, full, str, proc, load, from, to) |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1070 |
#define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, proc, load)\ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1071 |
SDT_CONDOMANY(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, max, full, str, proc, load) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1072 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1073 |
#define SDT_CONDMMANY(base, var, type, from, to, flags, guiflags, def, full, str, proc)\ |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1074 |
SDT_GENERAL(#var, SDT_MANYOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, 0, 0, full, str, proc, NULL, from, to) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1075 |
#define SDT_MMANY(base, var, type, flags, guiflags, def, full, str, proc)\ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1076 |
SDT_CONDMMANY(base, var, type, 0, SL_MAX_VERSION, flags, guiflags, def, full, str, proc) |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1077 |
|
3222
8bfed4267cba
(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
Darkvater
parents:
3210
diff
changeset
|
1078 |
#define SDT_CONDNULL(length, from, to)\ |
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
1079 |
{{"", NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLE_CONDNULL(length, from, to)} |
3222
8bfed4267cba
(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
Darkvater
parents:
3210
diff
changeset
|
1080 |
|
6681
deffef3f69f5
(svn r9398) -Feature: Allow for a conversion callback system while reading configuration file, in case of wrong value.
belugas
parents:
6664
diff
changeset
|
1081 |
#define SDT_END() {{NULL, NULL, {0}, {0}, 0, 0, 0, NULL, STR_NULL, NULL, NULL}, SLE_END()} |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1082 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1083 |
/* Shortcuts for macros below. Logically if we don't save the value |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1084 |
* we also don't sync it in a network game */ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1085 |
#define S SLF_SAVE_NO | SLF_NETWORK_NO |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1086 |
#define C SLF_CONFIG_NO |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1087 |
#define N SLF_NETWORK_NO |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1088 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1089 |
#define D0 SGF_0ISDISABLED |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1090 |
#define NC SGF_NOCOMMA |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1091 |
#define MS SGF_MULTISTRING |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1092 |
#define NO SGF_NETWORK_ONLY |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1093 |
#define CR SGF_CURRENCY |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1094 |
#define NN SGF_NO_NETWORK |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1095 |
|
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1096 |
/* Begin - Callback Functions for the various settings */ |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1097 |
/* virtual PositionMainToolbar function, calls the right one.*/ |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1098 |
static int32 v_PositionMainToolbar(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1099 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1100 |
if (_game_mode != GM_MENU) PositionMainToolbar(NULL); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1101 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1102 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1103 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1104 |
static int32 AiNew_PatchActive_Warning(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1105 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1106 |
if (p1 == 1) ShowErrorMessage(INVALID_STRING_ID, TEMP_AI_ACTIVATED, 0, 0); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1107 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1108 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1109 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1110 |
static int32 Ai_In_Multiplayer_Warning(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1111 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1112 |
if (p1 == 1) { |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1113 |
ShowErrorMessage(INVALID_STRING_ID, TEMP_AI_MULTIPLAYER, 0, 0); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1114 |
_patches.ainew_active = true; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1115 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1116 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1117 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1118 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1119 |
static int32 PopulationInLabelActive(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1120 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1121 |
Town* t; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1122 |
|
4346
3f00094f2670
(svn r6047) -Codechange: FOR_ALL now _only_ loops valid items, and skips invalid ones
truelight
parents:
4344
diff
changeset
|
1123 |
FOR_ALL_TOWNS(t) UpdateTownVirtCoord(t); |
3f00094f2670
(svn r6047) -Codechange: FOR_ALL now _only_ loops valid items, and skips invalid ones
truelight
parents:
4344
diff
changeset
|
1124 |
|
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1125 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1126 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1127 |
|
4082
172b5f3598fa
(svn r5397) -Fix: Redraw the screen, when switching the signal side
tron
parents:
4077
diff
changeset
|
1128 |
static int32 RedrawScreen(int32 p1) |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1129 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1130 |
MarkWholeScreenDirty(); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1131 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1132 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1133 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1134 |
static int32 InValidateDetailsWindow(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1135 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1136 |
InvalidateWindowClasses(WC_VEHICLE_DETAILS); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1137 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1138 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1139 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1140 |
static int32 InvalidateStationBuildWindow(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1141 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1142 |
InvalidateWindow(WC_BUILD_STATION, 0); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1143 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1144 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1145 |
|
8249
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1146 |
static int32 UpdateConsists(int32 p1) |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1147 |
{ |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1148 |
Vehicle *v; |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1149 |
FOR_ALL_VEHICLES(v) { |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1150 |
/* Update the consist of all trains so the maximum speed is set correctly. */ |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1151 |
if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) TrainConsistChanged(v); |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1152 |
} |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1153 |
return 0; |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1154 |
} |
67f9410ee71e
(svn r11291) -Fix [FS#1345]: changing the wagon_speed_limits patch option caused desyncs.
rubidium
parents:
8238
diff
changeset
|
1155 |
|
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1156 |
/* Check service intervals of vehicles, p1 is value of % or day based servicing */ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1157 |
static int32 CheckInterval(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1158 |
{ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1159 |
bool warning; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1160 |
const Patches *ptc = (_game_mode == GM_MENU) ? &_patches_newgame : &_patches; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1161 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1162 |
if (p1) { |
8450
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1163 |
warning = ( (IsInsideMM(ptc->servint_trains, 5, 90 + 1) || ptc->servint_trains == 0) && |
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1164 |
(IsInsideMM(ptc->servint_roadveh, 5, 90 + 1) || ptc->servint_roadveh == 0) && |
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1165 |
(IsInsideMM(ptc->servint_aircraft, 5, 90 + 1) || ptc->servint_aircraft == 0) && |
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1166 |
(IsInsideMM(ptc->servint_ships, 5, 90 + 1) || ptc->servint_ships == 0) ); |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1167 |
} else { |
8450
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1168 |
warning = ( (IsInsideMM(ptc->servint_trains, 30, 800 + 1) || ptc->servint_trains == 0) && |
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1169 |
(IsInsideMM(ptc->servint_roadveh, 30, 800 + 1) || ptc->servint_roadveh == 0) && |
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1170 |
(IsInsideMM(ptc->servint_aircraft, 30, 800 + 1) || ptc->servint_aircraft == 0) && |
dce58137301f
(svn r11510) -Codechange: merge the IS_*INSIDE* functions and rename them fitting to the naming style
skidd13
parents:
8427
diff
changeset
|
1171 |
(IsInsideMM(ptc->servint_ships, 30, 800 + 1) || ptc->servint_ships == 0) ); |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1172 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1173 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1174 |
if (!warning) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1175 |
ShowErrorMessage(INVALID_STRING_ID, STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE, 0, 0); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1176 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1177 |
return InValidateDetailsWindow(0); |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1178 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1179 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1180 |
static int32 EngineRenewUpdate(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1181 |
{ |
4661
59492734db06
(svn r6544) - Codechange: Rename CmdReplaceVehicle to CmdSetAutoReplace, to reflect what it does.
peter1138
parents:
4616
diff
changeset
|
1182 |
DoCommandP(0, 0, _patches.autorenew, NULL, CMD_SET_AUTOREPLACE); |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1183 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1184 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1185 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1186 |
static int32 EngineRenewMonthsUpdate(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1187 |
{ |
4661
59492734db06
(svn r6544) - Codechange: Rename CmdReplaceVehicle to CmdSetAutoReplace, to reflect what it does.
peter1138
parents:
4616
diff
changeset
|
1188 |
DoCommandP(0, 1, _patches.autorenew_months, NULL, CMD_SET_AUTOREPLACE); |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1189 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1190 |
} |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1191 |
|
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1192 |
static int32 EngineRenewMoneyUpdate(int32 p1) |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1193 |
{ |
4661
59492734db06
(svn r6544) - Codechange: Rename CmdReplaceVehicle to CmdSetAutoReplace, to reflect what it does.
peter1138
parents:
4616
diff
changeset
|
1194 |
DoCommandP(0, 2, _patches.autorenew_money, NULL, CMD_SET_AUTOREPLACE); |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1195 |
return 0; |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1196 |
} |
7067
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1197 |
|
9192
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1198 |
static int32 RealisticAccelerationChanged(int32 p1) |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1199 |
{ |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1200 |
Vehicle *v; |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1201 |
|
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1202 |
FOR_ALL_VEHICLES(v) { |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1203 |
if (v->type == VEH_TRAIN && IsFrontEngine(v)) UpdateTrainAcceleration(v); |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1204 |
} |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1205 |
|
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1206 |
return 0; |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1207 |
} |
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1208 |
|
10328
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1209 |
static int32 DragSignalsDensityChanged(int32) |
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1210 |
{ |
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1211 |
const Window *w = FindWindowById(WC_BUILD_SIGNAL, 0); |
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1212 |
|
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1213 |
if (w != NULL) SetWindowDirty(w); |
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1214 |
|
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1215 |
return 0; |
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1216 |
} |
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1217 |
|
7067
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1218 |
/** |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1219 |
* Check for right TownLayout usage in editor mode. |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1220 |
* The No Road mode is not desirable since towns have to be |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1221 |
* able to grow. If a user desires to have a town with no road, |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1222 |
* he can easily remove them himself. This would create less confusion |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1223 |
* @param p1 unused |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1224 |
* @return always 0 |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1225 |
*/ |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1226 |
static int32 CheckTownLayout(int32 p1) |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1227 |
{ |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1228 |
if (_patches.town_layout == TL_NO_ROADS && _game_mode == GM_EDITOR) { |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1229 |
ShowErrorMessage(INVALID_STRING_ID, STR_CONFIG_PATCHES_TOWN_LAYOUT_INVALID, 0, 0); |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1230 |
_patches.town_layout = TL_ORIGINAL; |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1231 |
} |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1232 |
return 0; |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1233 |
} |
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1234 |
|
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1235 |
/** Conversion callback for _gameopt_settings.landscape |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1236 |
* It converts (or try) between old values and the new ones, |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1237 |
* without loosing initial setting of the user |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1238 |
* @param value that was read from config file |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1239 |
* @return the "hopefully" converted value |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1240 |
*/ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1241 |
static int32 ConvertLandscape(const char *value) |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1242 |
{ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1243 |
/* try with the old values */ |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1244 |
return lookup_oneofmany("normal|hilly|desert|candy", value, -1); |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1245 |
} |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1246 |
|
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1247 |
/* End - Callback Functions */ |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1248 |
|
1584
aa7fe51c4368
(svn r2088) - Fix: [ 1155158 ] Make extmidi command a config option in addition to the compile-time MIDI switch. Patch by macbaine.
pasky
parents:
1500
diff
changeset
|
1249 |
#ifndef EXTERNAL_PLAYER |
aa7fe51c4368
(svn r2088) - Fix: [ 1155158 ] Make extmidi command a config option in addition to the compile-time MIDI switch. Patch by macbaine.
pasky
parents:
1500
diff
changeset
|
1250 |
#define EXTERNAL_PLAYER "timidity" |
aa7fe51c4368
(svn r2088) - Fix: [ 1155158 ] Make extmidi command a config option in addition to the compile-time MIDI switch. Patch by macbaine.
pasky
parents:
1500
diff
changeset
|
1251 |
#endif |
aa7fe51c4368
(svn r2088) - Fix: [ 1155158 ] Make extmidi command a config option in addition to the compile-time MIDI switch. Patch by macbaine.
pasky
parents:
1500
diff
changeset
|
1252 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1253 |
static const SettingDesc _music_settings[] = { |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1254 |
SDT_VAR(MusicFileSettings, playlist, SLE_UINT8, S, 0, 0, 0, 5, 1, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1255 |
SDT_VAR(MusicFileSettings, music_vol, SLE_UINT8, S, 0, 128, 0, 100, 1, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1256 |
SDT_VAR(MusicFileSettings, effect_vol, SLE_UINT8, S, 0, 128, 0, 100, 1, STR_NULL, NULL), |
4344
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4326
diff
changeset
|
1257 |
SDT_LIST(MusicFileSettings, custom_1, SLE_UINT8, S, 0, NULL, STR_NULL, NULL), |
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4326
diff
changeset
|
1258 |
SDT_LIST(MusicFileSettings, custom_2, SLE_UINT8, S, 0, NULL, STR_NULL, NULL), |
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4326
diff
changeset
|
1259 |
SDT_BOOL(MusicFileSettings, playing, S, 0, true, STR_NULL, NULL), |
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4326
diff
changeset
|
1260 |
SDT_BOOL(MusicFileSettings, shuffle, S, 0, false, STR_NULL, NULL), |
5d0e40cd67b9
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4326
diff
changeset
|
1261 |
SDT_STR(MusicFileSettings, extmidi, SLE_STRB, S, 0, EXTERNAL_PLAYER, STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1262 |
SDT_END() |
0 | 1263 |
}; |
1264 |
||
3051
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1265 |
/* win32_v.c only settings */ |
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1266 |
#ifdef WIN32 |
7374
54c06f06ecc8
(svn r10121) -Codechange: split renderer from rest of code; no longer any code directly accesses the video-buffer
truelight
parents:
7348
diff
changeset
|
1267 |
extern bool _force_full_redraw, _window_maximize; |
3051
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1268 |
extern uint _display_hz, _fullscreen_bpp; |
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1269 |
|
3124
60f74c9c90e3
(svn r3732) - Fix two warnings. Stupid MSVC didn't even complain :s (Thank Tron and peter1138)
Darkvater
parents:
3121
diff
changeset
|
1270 |
static const SettingDescGlobVarList _win32_settings[] = { |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1271 |
SDTG_VAR("display_hz", SLE_UINT, S, 0, _display_hz, 0, 0, 120, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1272 |
SDTG_BOOL("force_full_redraw", S, 0, _force_full_redraw,false, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1273 |
SDTG_VAR("fullscreen_bpp", SLE_UINT, S, 0, _fullscreen_bpp, 8, 8, 32, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1274 |
SDTG_BOOL("window_maximize", S, 0, _window_maximize, false, STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1275 |
SDTG_END() |
0 | 1276 |
}; |
3051
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1277 |
#endif /* WIN32 */ |
0 | 1278 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1279 |
static const SettingDescGlobVarList _misc_settings[] = { |
7192
51486fdadd13
(svn r9928) -Fix (r9805): Default display options were not set correctly.
peter1138
parents:
7170
diff
changeset
|
1280 |
SDTG_MMANY("display_opt", SLE_UINT8, S, 0, _display_opt, (1 << DO_SHOW_TOWN_NAMES | 1 << DO_SHOW_STATION_NAMES | 1 << DO_SHOW_SIGNS | 1 << DO_FULL_ANIMATION | 1 << DO_FULL_DETAIL | 1 << DO_WAYPOINTS), "SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION||FULL_DETAIL|WAYPOINTS", STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1281 |
SDTG_BOOL("news_ticker_sound", S, 0, _news_ticker_sound, true, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1282 |
SDTG_BOOL("fullscreen", S, 0, _fullscreen, false, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1283 |
SDTG_STR("videodriver", SLE_STRB,C|S,0, _ini_videodriver, NULL, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1284 |
SDTG_STR("musicdriver", SLE_STRB,C|S,0, _ini_musicdriver, NULL, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1285 |
SDTG_STR("sounddriver", SLE_STRB,C|S,0, _ini_sounddriver, NULL, STR_NULL, NULL), |
8063
0e907a0b5add
(svn r11092) -Add: allow 'blitter=<value>' in openttd.cfg to set the blitter (so you don't have to keep on doing 'openttd -b 32bpp-optimized'..)
truelight
parents:
8043
diff
changeset
|
1286 |
SDTG_STR("blitter", SLE_STRB,C|S,0, _ini_blitter, NULL, STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1287 |
SDTG_STR("language", SLE_STRB, S, 0, _dynlang.curr_file, NULL, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1288 |
SDTG_LIST("resolution", SLE_UINT16, S, 0, _cur_resolution, "640,480", STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1289 |
SDTG_STR("screenshot_format",SLE_STRB, S, 0, _screenshot_format_name,NULL, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1290 |
SDTG_STR("savegame_format", SLE_STRB, S, 0, _savegame_format, NULL, STR_NULL, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1291 |
SDTG_BOOL("rightclick_emulate", S, 0, _rightclick_emulate, false, STR_NULL, NULL), |
5108
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1292 |
#ifdef WITH_FREETYPE |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1293 |
SDTG_STR("small_font", SLE_STRB, S, 0, _freetype.small_font, NULL, STR_NULL, NULL), |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1294 |
SDTG_STR("medium_font", SLE_STRB, S, 0, _freetype.medium_font, NULL, STR_NULL, NULL), |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1295 |
SDTG_STR("large_font", SLE_STRB, S, 0, _freetype.large_font, NULL, STR_NULL, NULL), |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1296 |
SDTG_VAR("small_size", SLE_UINT, S, 0, _freetype.small_size, 6, 0, 72, 0, STR_NULL, NULL), |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1297 |
SDTG_VAR("medium_size", SLE_UINT, S, 0, _freetype.medium_size, 10, 0, 72, 0, STR_NULL, NULL), |
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1298 |
SDTG_VAR("large_size", SLE_UINT, S, 0, _freetype.large_size, 16, 0, 72, 0, STR_NULL, NULL), |
7409
4f631b495a5b
(svn r10166) -Feature(tte): Add support for antialiased typefaces via FreeType. This is configurable for each font size in the configuration settings and requires using the 32bpp blitter and suitable fonts.
peter1138
parents:
7374
diff
changeset
|
1299 |
SDTG_BOOL("small_aa", S, 0, _freetype.small_aa, false, STR_NULL, NULL), |
4f631b495a5b
(svn r10166) -Feature(tte): Add support for antialiased typefaces via FreeType. This is configurable for each font size in the configuration settings and requires using the 32bpp blitter and suitable fonts.
peter1138
parents:
7374
diff
changeset
|
1300 |
SDTG_BOOL("medium_aa", S, 0, _freetype.medium_aa, false, STR_NULL, NULL), |
4f631b495a5b
(svn r10166) -Feature(tte): Add support for antialiased typefaces via FreeType. This is configurable for each font size in the configuration settings and requires using the 32bpp blitter and suitable fonts.
peter1138
parents:
7374
diff
changeset
|
1301 |
SDTG_BOOL("large_aa", S, 0, _freetype.large_aa, false, STR_NULL, NULL), |
5108
dc67d70b5a45
(svn r7182) -Feature: Merge utf8 branch. This brings us support for Unicode/UTF-8 and the option for fonts rendered by FreeType. Language changes to come.
peter1138
parents:
5107
diff
changeset
|
1302 |
#endif |
7348
becce3f57dc7
(svn r10092) -Codechange: code-seperated the spriteloader and blitter from the rest of the code
truelight
parents:
7299
diff
changeset
|
1303 |
SDTG_VAR("sprite_cache_size",SLE_UINT, S, 0, _sprite_cache_size, 4, 1, 64, 0, STR_NULL, NULL), |
8230
7b40f75cba12
(svn r11269) -Feature: user customisable faces. Patch by BigBB.
rubidium
parents:
8153
diff
changeset
|
1304 |
SDTG_VAR("player_face", SLE_UINT32, S, 0, _player_face, 0,0,0xFFFFFFFF,0, STR_NULL, NULL), |
9025
2f0d4cf64ebc
(svn r12104) -Fix (r12103): remember loading indicators transparency settings and make in switchable by Ctrl+9
smatz
parents:
9024
diff
changeset
|
1305 |
SDTG_VAR("transparency_options", SLE_UINT, S, 0, _transparency_opt, 0,0,0x1FF,0, STR_NULL, NULL), |
2f0d4cf64ebc
(svn r12104) -Fix (r12103): remember loading indicators transparency settings and make in switchable by Ctrl+9
smatz
parents:
9024
diff
changeset
|
1306 |
SDTG_VAR("transparency_locks", SLE_UINT, S, 0, _transparency_lock, 0,0,0x1FF,0, STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1307 |
SDTG_END() |
0 | 1308 |
}; |
1309 |
||
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1310 |
#ifdef ENABLE_NETWORK |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1311 |
static const SettingDescGlobVarList _network_settings[] = { |
7024
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1312 |
SDTG_VAR("sync_freq", SLE_UINT16,C|S,0, _network_sync_freq, 100, 0, 100, 0, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1313 |
SDTG_VAR("frame_freq", SLE_UINT8,C|S,0, _network_frame_freq, 0, 0, 100, 0, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1314 |
SDTG_VAR("max_join_time", SLE_UINT16, S, 0, _network_max_join_time, 500, 0, 32000, 0, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1315 |
SDTG_BOOL("pause_on_join", S, 0, _network_pause_on_join, true, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1316 |
SDTG_STR("server_bind_ip", SLE_STRB, S, 0, _network_server_bind_ip_host, "0.0.0.0", STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1317 |
SDTG_VAR("server_port", SLE_UINT16, S, 0, _network_server_port, NETWORK_DEFAULT_PORT, 0, 65535, 0, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1318 |
SDTG_BOOL("server_advertise", S, 0, _network_advertise, false, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1319 |
SDTG_VAR("lan_internet", SLE_UINT8, S, 0, _network_lan_internet, 0, 0, 1, 0, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1320 |
SDTG_STR("player_name", SLE_STRB, S, 0, _network_player_name, NULL, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1321 |
SDTG_STR("server_password", SLE_STRB, S, 0, _network_server_password, NULL, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1322 |
SDTG_STR("rcon_password", SLE_STRB, S, 0, _network_rcon_password, NULL, STR_NULL, NULL), |
8494
88f26cafc858
(svn r11556) -Feature: allow setting a default password for new companies in network games.
rubidium
parents:
8487
diff
changeset
|
1323 |
SDTG_STR("default_company_pass", SLE_STRB, S, 0, _network_default_company_pass, NULL, STR_NULL, NULL), |
7024
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1324 |
SDTG_STR("server_name", SLE_STRB, S, 0, _network_server_name, NULL, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1325 |
SDTG_STR("connect_to_ip", SLE_STRB, S, 0, _network_default_ip, NULL, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1326 |
SDTG_STR("network_id", SLE_STRB, S, 0, _network_unique_id, NULL, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1327 |
SDTG_BOOL("autoclean_companies", S, 0, _network_autoclean_companies, false, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1328 |
SDTG_VAR("autoclean_unprotected",SLE_UINT8, S, 0, _network_autoclean_unprotected,12, 0, 60, 0, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1329 |
SDTG_VAR("autoclean_protected", SLE_UINT8, S, 0, _network_autoclean_protected, 36, 0, 180, 0, STR_NULL, NULL), |
7935
b5bc2bd79e6b
(svn r10886) -Codechange: modify the "start network server" GUI so it can actually handle more than 10 clients/companies/spectators in a nice way, i.e. without making a combobox with 100 players and add 90 new strings to be able to do so.
rubidium
parents:
7762
diff
changeset
|
1330 |
SDTG_VAR("max_companies", SLE_UINT8, S, 0, _network_game_info.companies_max, 8, 1, MAX_PLAYERS, 0, STR_NULL, NULL), |
b5bc2bd79e6b
(svn r10886) -Codechange: modify the "start network server" GUI so it can actually handle more than 10 clients/companies/spectators in a nice way, i.e. without making a combobox with 100 players and add 90 new strings to be able to do so.
rubidium
parents:
7762
diff
changeset
|
1331 |
SDTG_VAR("max_clients", SLE_UINT8, S, 0, _network_game_info.clients_max, 10, 2, MAX_CLIENTS, 0, STR_NULL, NULL), |
b5bc2bd79e6b
(svn r10886) -Codechange: modify the "start network server" GUI so it can actually handle more than 10 clients/companies/spectators in a nice way, i.e. without making a combobox with 100 players and add 90 new strings to be able to do so.
rubidium
parents:
7762
diff
changeset
|
1332 |
SDTG_VAR("max_spectators", SLE_UINT8, S, 0, _network_game_info.spectators_max, 10, 0, MAX_CLIENTS, 0, STR_NULL, NULL), |
7024
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1333 |
SDTG_VAR("restart_game_year", SLE_INT32, S,D0, _network_restart_game_year, 0, MIN_YEAR, MAX_YEAR, 1, STR_NULL, NULL), |
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1334 |
SDTG_VAR("min_players", SLE_UINT8, S, 0, _network_min_players, 0, 0, 10, 0, STR_NULL, NULL), |
7276
fdb2191fac67
(svn r10017) -Add (FS#790): more languages flags for servers
glx
parents:
7226
diff
changeset
|
1335 |
SDTG_OMANY("server_lang", SLE_UINT8, S, 0, _network_game_info.server_lang, 0, 28, "ANY|ENGLISH|GERMAN|FRENCH|BRAZILIAN|BULGARIAN|CHINESE|CZECH|DANISH|DUTCH|ESPERANTO|FINNISH|HUNGARIAN|ICELANDIC|ITALIAN|JAPANESE|KOREAN|LITHUANIAN|NORWEGIAN|POLISH|PORTUGUESE|ROMANIAN|RUSSIAN|SLOVAK|SLOVENIAN|SPANISH|SWEDISH|TURKISH|UKRAINIAN", STR_NULL, NULL), |
8761
afcf3b687a3e
(svn r11829) -Feature: allow reloading openttd.cfg when starting a new game on a dedicated server. Patch by dihedral.
rubidium
parents:
8760
diff
changeset
|
1336 |
SDTG_BOOL("reload_cfg", S, 0, _network_reload_cfg, false, STR_NULL, NULL), |
7024
f767928cffd6
(svn r9716) -Add: server_lang in [network] section of openttd.cfg, so dedicated servers can have the little lang flag.
glx
parents:
6987
diff
changeset
|
1337 |
SDTG_END() |
0 | 1338 |
}; |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1339 |
#endif /* ENABLE_NETWORK */ |
0 | 1340 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1341 |
static const SettingDesc _gameopt_settings[] = { |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1342 |
/* In version 4 a new difficulty setting has been added to the difficulty settings, |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1343 |
* town attitude towards demolishing. Needs special handling because some dimwit thought |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1344 |
* it funny to have the GameDifficulty struct be an array while it is a struct of |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1345 |
* same-sized members |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1346 |
* XXX - To save file-space and since values are never bigger than about 10? only |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1347 |
* save the first 16 bits in the savegame. Question is why the values are still int32 |
8878
5762124eec25
(svn r11951) -Fix (r11279): loading of very old savegames was broken
smatz
parents:
8772
diff
changeset
|
1348 |
* and why not byte for example? |
5762124eec25
(svn r11951) -Fix (r11279): loading of very old savegames was broken
smatz
parents:
8772
diff
changeset
|
1349 |
* 'SLE_FILE_I16 | SLE_VAR_U16' in "diff_custom" is needed to get around SlArray() hack |
5762124eec25
(svn r11951) -Fix (r11279): loading of very old savegames was broken
smatz
parents:
8772
diff
changeset
|
1350 |
* for savegames version 0 - though it is an array, it has to go through the byteswap process */ |
5762124eec25
(svn r11951) -Fix (r11279): loading of very old savegames was broken
smatz
parents:
8772
diff
changeset
|
1351 |
SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_FILE_I16 | SLE_VAR_U16, 0, 0, GameOptions, diff, 17, 0, 0, 0, 0, NULL, STR_NULL, NULL, NULL, 0, 3), |
8238
29844a206bbe
(svn r11279) -Codechange: use a typedeffed type for all magic with GameDifficulty instead on relying ints to always be 32 bits, which they are not.
rubidium
parents:
8230
diff
changeset
|
1352 |
SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_UINT16, 0, 0, GameOptions, diff, 18, 0, 0, 0, 0, NULL, STR_NULL, NULL, NULL, 4, SL_MAX_VERSION), |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6984
diff
changeset
|
1353 |
SDT_VAR(GameOptions, diff_level, SLE_UINT8, 0, 0, 0, 0, 3, 0, STR_NULL, NULL), |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1354 |
SDT_OMANY(GameOptions, currency, SLE_UINT8, N, 0, 0, CUSTOM_CURRENCY_ID, "GBP|USD|EUR|YEN|ATS|BEF|CHF|CZK|DEM|DKK|ESP|FIM|FRF|GRD|HUF|ISK|ITL|NLG|NOK|PLN|ROL|RUR|SIT|SEK|YTL|SKK|BRR|custom", STR_NULL, NULL, NULL), |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1355 |
SDT_OMANY(GameOptions, units, SLE_UINT8, N, 0, 1, 2, "imperial|metric|si", STR_NULL, NULL, NULL), |
7452
f6fd23727af0
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx
parents:
7446
diff
changeset
|
1356 |
/* There are only 21 predefined town_name values (0-20), but you can have more with newgrf action F so allow these bigger values (21-255). Invalid values will fallback to english on use and (undefined string) in GUI. */ |
f6fd23727af0
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx
parents:
7446
diff
changeset
|
1357 |
SDT_OMANY(GameOptions, town_name, SLE_UINT8, 0, 0, 0, 255, "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovakish|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish|italian|catalan", STR_NULL, NULL, NULL), |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1358 |
SDT_OMANY(GameOptions, landscape, SLE_UINT8, 0, 0, 0, 3, "temperate|arctic|tropic|toyland", STR_NULL, NULL, ConvertLandscape), |
6704
1d7e67bc3f7c
(svn r9455) -Fix: the values for diff_custom, diff_level and snow_line in the .cfg were not properly checked.
rubidium
parents:
6682
diff
changeset
|
1359 |
SDT_VAR(GameOptions, snow_line, SLE_UINT8, 0, 0, 7 * TILE_HEIGHT, 2 * TILE_HEIGHT, 13 * TILE_HEIGHT, 0, STR_NULL, NULL), |
6682
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1360 |
SDT_CONDOMANY(GameOptions,autosave, SLE_UINT8, 0, 22, N, 0, 0, 0, "", STR_NULL, NULL, NULL), |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1361 |
SDT_CONDOMANY(GameOptions,autosave, SLE_UINT8,23, SL_MAX_VERSION, S, 0, 1, 4, "off|monthly|quarterly|half year|yearly", STR_NULL, NULL, NULL), |
fc13ce6cb743
(svn r9399) -Feature: Openttd.cfg will now present landscape patch entry as been temperate, arctic, tropic or toyland.
belugas
parents:
6681
diff
changeset
|
1362 |
SDT_OMANY(GameOptions, road_side, SLE_UINT8, 0, 0, 1, 1, "left|right", STR_NULL, NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1363 |
SDT_END() |
0 | 1364 |
}; |
1365 |
||
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1366 |
/* Some patches do not need to be synchronised when playing in multiplayer. |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1367 |
* These include for example the GUI settings and will not be saved with the |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1368 |
* savegame. |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1369 |
* It is also a bit tricky since you would think that service_interval |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1370 |
* for example doesn't need to be synched. Every client assigns the |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1371 |
* service_interval value to the v->service_interval, meaning that every client |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1372 |
* assigns his value. If the setting was player-based, that would mean that |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1373 |
* vehicles could decide on different moments that they are heading back to a |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1374 |
* service depot, causing desyncs on a massive scale. */ |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1375 |
const SettingDesc _patch_settings[] = { |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1376 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1377 |
/* User-interface section of the GUI-configure patches window */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1378 |
SDT_BOOL(Patches, vehicle_speed, S, 0, true, STR_CONFIG_PATCHES_VEHICLESPEED, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1379 |
SDT_BOOL(Patches, status_long_date, S, 0, true, STR_CONFIG_PATCHES_LONGDATE, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1380 |
SDT_BOOL(Patches, show_finances, S, 0, true, STR_CONFIG_PATCHES_SHOWFINANCES, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1381 |
SDT_BOOL(Patches, autoscroll, S, 0, false, STR_CONFIG_PATCHES_AUTOSCROLL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1382 |
SDT_BOOL(Patches, reverse_scroll, S, 0, false, STR_CONFIG_PATCHES_REVERSE_SCROLLING, NULL), |
7226
a8650d6ecb53
(svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
peter1138
parents:
7192
diff
changeset
|
1383 |
SDT_BOOL(Patches, smooth_scroll, S, 0, false, STR_CONFIG_PATCHES_SMOOTH_SCROLLING, NULL), |
4834
ddcf440d0ffd
(svn r6758) -Feature: Add a measurement tool that will show dimensions and height
Darkvater
parents:
4716
diff
changeset
|
1384 |
SDT_BOOL(Patches, measure_tooltip, S, 0, false, STR_CONFIG_PATCHES_MEASURE_TOOLTIP, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1385 |
SDT_VAR(Patches, errmsg_duration, SLE_UINT8, S, 0, 5, 0, 20, 0, STR_CONFIG_PATCHES_ERRMSG_DURATION, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1386 |
SDT_VAR(Patches, toolbar_pos, SLE_UINT8, S,MS, 0, 0, 2, 0, STR_CONFIG_PATCHES_TOOLBAR_POS, v_PositionMainToolbar), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1387 |
SDT_VAR(Patches, window_snap_radius, SLE_UINT8, S,D0, 10, 1, 32, 0, STR_CONFIG_PATCHES_SNAP_RADIUS, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1388 |
SDT_BOOL(Patches, invisible_trees, S, 0, false, STR_CONFIG_PATCHES_INVISIBLE_TREES, RedrawScreen), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1389 |
SDT_BOOL(Patches, population_in_label, S, 0, true, STR_CONFIG_PATCHES_POPULATION_IN_LABEL, PopulationInLabelActive), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1390 |
SDT_VAR(Patches, map_x, SLE_UINT8, S, 0, 8, 6, 11, 0, STR_CONFIG_PATCHES_MAP_X, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1391 |
SDT_VAR(Patches, map_y, SLE_UINT8, S, 0, 8, 6, 11, 0, STR_CONFIG_PATCHES_MAP_Y, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1392 |
SDT_BOOL(Patches, link_terraform_toolbar, S, 0, false, STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR,NULL), |
4616
baa9d4436b9e
(svn r6474) - Add a patch option to control display of liveries, allowing none, your
peter1138
parents:
4601
diff
changeset
|
1393 |
SDT_VAR(Patches, liveries, SLE_UINT8, S,MS, 2, 0, 2, 0, STR_CONFIG_PATCHES_LIVERIES, RedrawScreen), |
5107
8791beb0ae51
(svn r7179) -Codechange (r7173): Actually "prefer" team chat through the patch setting instead of
Darkvater
parents:
5102
diff
changeset
|
1394 |
SDT_BOOL(Patches, prefer_teamchat, S, 0, false, STR_CONFIG_PATCHES_PREFER_TEAMCHAT, NULL), |
6622
2ce7ffa9db00
(svn r9126) -Feature: "Function of scrollwheel" can now be set to off as well
bjarni
parents:
6621
diff
changeset
|
1395 |
SDT_VAR(Patches, scrollwheel_scrolling,SLE_UINT8,S,MS, 0, 0, 2, 0, STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLLING, NULL), |
6615
96d30d65ed35
(svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni
parents:
6609
diff
changeset
|
1396 |
SDT_VAR(Patches,scrollwheel_multiplier,SLE_UINT8,S, 0, 5, 1, 15, 1, STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER,NULL), |
7039
a20ddaf4dc97
(svn r9734) -Feature: Add an option to automatically pause when starting a new game.
maedhros
parents:
7024
diff
changeset
|
1397 |
SDT_BOOL(Patches, pause_on_newgame, S, 0, false, STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME, NULL), |
8043
be5076cc40ef
(svn r11067) -Codechange: also make it possible to use the advanced vehicle list for other players. Patch by SmatZ.
rubidium
parents:
8039
diff
changeset
|
1398 |
SDT_VAR(Patches,advanced_vehicle_list,SLE_UINT8,S,MS, 1, 0, 2, 0, STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS,NULL), |
7476
7f086e4b2a76
(svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents:
7452
diff
changeset
|
1399 |
SDT_BOOL(Patches, timetable_in_ticks, S, 0, false, STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS, NULL), |
8039
3794566cec75
(svn r11063) -Codechange: make it possible for people to view the loading indicators of everyone. Patch by SmatZ.
rubidium
parents:
7981
diff
changeset
|
1400 |
SDT_VAR(Patches, loading_indicators, SLE_UINT8, S,MS, 1, 0, 2, 0, STR_CONFIG_PATCHES_LOADING_INDICATORS, RedrawScreen), |
7560
f7b5ab184882
(svn r10329) -Feature [FS#812]: (patch) option to select the "default" rail type when you start a new game or load a game. This is done either static, i.e. rail, electrified rail, monorail and maglev, or dynamic which takes either the first or last available railtype or the railtype that is used most on the map.
rubidium
parents:
7530
diff
changeset
|
1401 |
SDT_VAR(Patches, default_rail_type, SLE_UINT8, S,MS, 4, 0, 6, 0, STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE, NULL), |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1402 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1403 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1404 |
/* Construction section of the GUI-configure patches window */ |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1405 |
SDT_BOOL(Patches, build_on_slopes, 0,NN, true, STR_CONFIG_PATCHES_BUILDONSLOPES, NULL), |
8078
bdf94bf88568
(svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch.
rubidium
parents:
8063
diff
changeset
|
1406 |
SDT_CONDBOOL(Patches, autoslope, 75, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_PATCHES_AUTOSLOPE, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1407 |
SDT_BOOL(Patches, extra_dynamite, 0, 0, false, STR_CONFIG_PATCHES_EXTRADYNAMITE, NULL), |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1408 |
SDT_BOOL(Patches, longbridges, 0,NN, true, STR_CONFIG_PATCHES_LONGBRIDGES, NULL), |
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1409 |
SDT_BOOL(Patches, signal_side, N,NN, true, STR_CONFIG_PATCHES_SIGNALSIDE, RedrawScreen), |
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1410 |
SDT_BOOL(Patches, always_small_airport, 0,NN, false, STR_CONFIG_PATCHES_SMALL_AIRPORTS, NULL), |
8487
bab0d066128b
(svn r11547) -Add: signal selection GUI for the ones that really like to use that over CTRL. Patch by BigBB.
rubidium
parents:
8450
diff
changeset
|
1411 |
SDT_BOOL(Patches, enable_signal_gui, S, 0, false, STR_CONFIG_PATCHES_ENABLE_SIGNAL_GUI, NULL), |
10328
721fe18a2176
(svn r12869) [0.6] -Backport from trunk r12714, r12708, r12674, r12577, r12553:
rubidium
parents:
9353
diff
changeset
|
1412 |
SDT_VAR(Patches, drag_signals_density,SLE_UINT8,S, 0, 4, 1, 20, 0, STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY,DragSignalsDensityChanged), |
5939
77530457a36b
(svn r8151) -Feature: Automatically build semaphores before a configurable date, which can be set by each network player seperately.
maedhros
parents:
5860
diff
changeset
|
1413 |
SDT_VAR(Patches, semaphore_build_before,SLE_INT32, S, NC, 1975, MIN_YEAR, MAX_YEAR, 1, STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE, NULL), |
7067
ea55b6046015
(svn r9779) -Feature: Add the possiblity to choose different road patterns for towns to use.
belugas
parents:
7039
diff
changeset
|
1414 |
SDT_CONDVAR(Patches, town_layout, SLE_UINT8, 59, SL_MAX_VERSION, 0, MS, TL_ORIGINAL, TL_NO_ROADS, NUM_TLS - 1, 1, STR_CONFIG_PATCHES_TOWN_LAYOUT, CheckTownLayout), |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1415 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1416 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1417 |
/* Vehicle section of the GUI-configure patches window */ |
9192
7e4b0b777375
(svn r12369) -Fix (r1681): reset train speed limits when _patches.realistic_acceleration changes
smatz
parents:
9191
diff
changeset
|
1418 |
SDT_BOOL(Patches, realistic_acceleration, 0, 0, false, STR_CONFIG_PATCHES_REALISTICACCEL, RealisticAccelerationChanged), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1419 |
SDT_BOOL(Patches, forbid_90_deg, 0, 0, false, STR_CONFIG_PATCHES_FORBID_90_DEG, NULL), |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1420 |
SDT_BOOL(Patches, mammoth_trains, 0,NN, true, STR_CONFIG_PATCHES_MAMMOTHTRAINS, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1421 |
SDT_BOOL(Patches, gotodepot, 0, 0, true, STR_CONFIG_PATCHES_GOTODEPOT, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1422 |
SDT_BOOL(Patches, roadveh_queue, 0, 0, true, STR_CONFIG_PATCHES_ROADVEH_QUEUE, NULL), |
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
1423 |
|
9047
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1424 |
SDT_CONDBOOL(Patches, new_pathfinding_all, 0,86, 0, 0, false, STR_NULL, NULL), |
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1425 |
SDT_CONDBOOL(Patches, yapf.ship_use_yapf, 28,86, 0, 0, false, STR_NULL, NULL), |
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1426 |
SDT_CONDBOOL(Patches, yapf.road_use_yapf, 28,86, 0, 0, true, STR_NULL, NULL), |
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1427 |
SDT_CONDBOOL(Patches, yapf.rail_use_yapf, 28,86, 0, 0, true, STR_NULL, NULL), |
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1428 |
|
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1429 |
SDT_CONDVAR(Patches, pathfinder_for_trains, SLE_UINT8, 87, SL_MAX_VERSION, 0, MS, 2, 0, 2, 1, STR_CONFIG_PATCHES_PATHFINDER_FOR_TRAINS, NULL), |
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1430 |
SDT_CONDVAR(Patches, pathfinder_for_roadvehs, SLE_UINT8, 87, SL_MAX_VERSION, 0, MS, 2, 0, 2, 1, STR_CONFIG_PATCHES_PATHFINDER_FOR_ROADVEH, NULL), |
4dce11366b62
(svn r12129) -Change [FS#1759]: simplified patch settings for pathfinders (Yorick)
smatz
parents:
9025
diff
changeset
|
1431 |
SDT_CONDVAR(Patches, pathfinder_for_ships, SLE_UINT8, 87, SL_MAX_VERSION, 0, MS, 0, 0, 2, 1, STR_CONFIG_PATCHES_PATHFINDER_FOR_SHIPS, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1432 |
|
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1433 |
SDT_BOOL(Patches, train_income_warn, S, 0, true, STR_CONFIG_PATCHES_WARN_INCOME_LESS, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1434 |
SDT_VAR(Patches, order_review_system,SLE_UINT8, S,MS, 2, 0, 2, 0, STR_CONFIG_PATCHES_ORDER_REVIEW, NULL), |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1435 |
SDT_BOOL(Patches, never_expire_vehicles, 0,NN, false, STR_CONFIG_PATCHES_NEVER_EXPIRE_VEHICLES,NULL), |
4870
0ee22ed51ada
(svn r6800) -Feature change: [train is lost] message is now generated immediately when pathfinder can't find the path. (thanks MeusH, peter1138 and Brianetta for ideas and help).
KUDr
parents:
4834
diff
changeset
|
1436 |
SDT_BOOL(Patches, lost_train_warn, S, 0, true, STR_CONFIG_PATCHES_WARN_LOST_TRAIN, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1437 |
SDT_BOOL(Patches, autorenew, S, 0, false, STR_CONFIG_PATCHES_AUTORENEW_VEHICLE, EngineRenewUpdate), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1438 |
SDT_VAR(Patches, autorenew_months, SLE_INT16, S, 0, 6, -12, 12, 0, STR_CONFIG_PATCHES_AUTORENEW_MONTHS, EngineRenewMonthsUpdate), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1439 |
SDT_VAR(Patches, autorenew_money, SLE_UINT, S,CR,100000, 0, 2000000, 0, STR_CONFIG_PATCHES_AUTORENEW_MONEY, EngineRenewMoneyUpdate), |
7582
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7560
diff
changeset
|
1440 |
SDT_BOOL(Patches, always_build_infrastructure, S, 0, false, STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE, RedrawScreen), |
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7560
diff
changeset
|
1441 |
SDT_VAR(Patches, max_trains, SLE_UINT16, 0, 0, 500, 0, 5000, 0, STR_CONFIG_PATCHES_MAX_TRAINS, RedrawScreen), |
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7560
diff
changeset
|
1442 |
SDT_VAR(Patches, max_roadveh, SLE_UINT16, 0, 0, 500, 0, 5000, 0, STR_CONFIG_PATCHES_MAX_ROADVEH, RedrawScreen), |
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7560
diff
changeset
|
1443 |
SDT_VAR(Patches, max_aircraft, SLE_UINT16, 0, 0, 200, 0, 5000, 0, STR_CONFIG_PATCHES_MAX_AIRCRAFT, RedrawScreen), |
9f23c01ae23d
(svn r10353) -Fix/Feature [FS#669]: disallow (in the GUI) the building of infrastructure you do not have available vehicles for. This means that the airport building button is disabled till you can actually build aircraft. The game itself will not disallow you to build the infrastructure and this "new" behaviour can be overriden with a patch setting.
rubidium
parents:
7560
diff
changeset
|
1444 |
SDT_VAR(Patches, max_ships, SLE_UINT16, 0, 0, 300, 0, 5000, 0, STR_CONFIG_PATCHES_MAX_SHIPS, RedrawScreen), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1445 |
SDT_BOOL(Patches, servint_ispercent, 0, 0, false, STR_CONFIG_PATCHES_SERVINT_ISPERCENT, CheckInterval), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1446 |
SDT_VAR(Patches, servint_trains, SLE_UINT16, 0,D0, 150, 5, 800, 0, STR_CONFIG_PATCHES_SERVINT_TRAINS, InValidateDetailsWindow), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1447 |
SDT_VAR(Patches, servint_roadveh, SLE_UINT16, 0,D0, 150, 5, 800, 0, STR_CONFIG_PATCHES_SERVINT_ROADVEH, InValidateDetailsWindow), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1448 |
SDT_VAR(Patches, servint_ships, SLE_UINT16, 0,D0, 360, 5, 800, 0, STR_CONFIG_PATCHES_SERVINT_SHIPS, InValidateDetailsWindow), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1449 |
SDT_VAR(Patches, servint_aircraft, SLE_UINT16, 0,D0, 100, 5, 800, 0, STR_CONFIG_PATCHES_SERVINT_AIRCRAFT, InValidateDetailsWindow), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1450 |
SDT_BOOL(Patches, no_servicing_if_no_breakdowns, 0, 0, false, STR_CONFIG_PATCHES_NOSERVICE, NULL), |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1451 |
SDT_BOOL(Patches, wagon_speed_limits, 0,NN, true, STR_CONFIG_PATCHES_WAGONSPEEDLIMITS, UpdateConsists), |
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1452 |
SDT_CONDBOOL(Patches, disable_elrails, 38, SL_MAX_VERSION, 0, NN, false, STR_CONFIG_PATCHES_DISABLE_ELRAILS, SettingsDisableElrail), |
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1453 |
SDT_CONDVAR(Patches, freight_trains, SLE_UINT8, 39, SL_MAX_VERSION, 0,NN, 1, 1, 255, 1, STR_CONFIG_PATCHES_FREIGHT_TRAINS, NULL), |
7476
7f086e4b2a76
(svn r10236) -Feature: Introduce a form of timetabling for vehicles.
maedhros
parents:
7452
diff
changeset
|
1454 |
SDT_CONDBOOL(Patches, timetabling, 67, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_PATCHES_TIMETABLE_ALLOW, NULL), |
9144
3e82211b57c5
(svn r12293) -Feature: Ability to change aircraft speed factor, from so
peter1138
parents:
9047
diff
changeset
|
1455 |
SDT_CONDVAR(Patches, plane_speed, SLE_UINT8, 90, SL_MAX_VERSION, 0, 0, 4, 1, 4, 0, STR_CONFIG_PATCHES_PLANE_SPEED, NULL), |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1456 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1457 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1458 |
/* Station section of the GUI-configure patches window */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1459 |
SDT_BOOL(Patches, join_stations, 0, 0, true, STR_CONFIG_PATCHES_JOINSTATIONS, NULL), |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1460 |
SDT_BOOL(Patches, full_load_any, 0,NN, true, STR_CONFIG_PATCHES_FULLLOADANY, NULL), |
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1461 |
SDT_BOOL(Patches, improved_load, 0,NN, false, STR_CONFIG_PATCHES_IMPROVEDLOAD, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1462 |
SDT_BOOL(Patches, selectgoods, 0, 0, true, STR_CONFIG_PATCHES_SELECTGOODS, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1463 |
SDT_BOOL(Patches, new_nonstop, 0, 0, false, STR_CONFIG_PATCHES_NEW_NONSTOP, NULL), |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1464 |
SDT_BOOL(Patches, nonuniform_stations, 0,NN, true, STR_CONFIG_PATCHES_NONUNIFORM_STATIONS,NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1465 |
SDT_VAR(Patches, station_spread,SLE_UINT8,0, 0, 12, 4, 64, 0, STR_CONFIG_PATCHES_STATION_SPREAD, InvalidateStationBuildWindow), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1466 |
SDT_BOOL(Patches, serviceathelipad, 0, 0, true, STR_CONFIG_PATCHES_SERVICEATHELIPAD, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1467 |
SDT_BOOL(Patches, modified_catchment, 0, 0, true, STR_CONFIG_PATCHES_CATCHMENT, NULL), |
5211
651c9272ad22
(svn r7326) -Feature: Add support for gradual (un)loading of vehicles (Maedhros)
peter1138
parents:
5186
diff
changeset
|
1468 |
SDT_CONDBOOL(Patches, gradual_loading, 40, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_PATCHES_GRADUAL_LOADING, NULL), |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6309
diff
changeset
|
1469 |
SDT_CONDBOOL(Patches, road_stop_on_town_road, 47, SL_MAX_VERSION, 0, 0, false, STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD, NULL), |
7170
bd34b6d0e4f1
(svn r9905) -Feature: Allow building new stations adjacent to existing stations by holding down control. Based on a patch by Wolf01.
maedhros
parents:
7139
diff
changeset
|
1470 |
SDT_CONDBOOL(Patches, adjacent_stations, 62, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_PATCHES_ADJACENT_STATIONS, NULL), |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1471 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1472 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1473 |
/* Economy section of the GUI-configure patches window */ |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1474 |
SDT_BOOL(Patches, inflation, 0, 0, true, STR_CONFIG_PATCHES_INFLATION, NULL), |
7673
3ab9344bd532
(svn r10451) -Add: support for "prospecting" raw industries, i.e. you pay an amount of money and then it might (with a given chance) build a raw industry somewhere on the map.
rubidium
parents:
7582
diff
changeset
|
1475 |
SDT_VAR(Patches, raw_industry_construction,SLE_UINT8,0,MS,0,0, 2, 0, STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1476 |
SDT_BOOL(Patches, multiple_industry_per_town, 0, 0, false, STR_CONFIG_PATCHES_MULTIPINDTOWN, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1477 |
SDT_BOOL(Patches, same_industry_close, 0, 0, false, STR_CONFIG_PATCHES_SAMEINDCLOSE, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1478 |
SDT_BOOL(Patches, bribe, 0, 0, true, STR_CONFIG_PATCHES_BRIBE, NULL), |
8153
32f871f7e7f7
(svn r11188) -Codechange: rewrite of the town action related code (remove some of the magic).
rubidium
parents:
8137
diff
changeset
|
1479 |
SDT_CONDBOOL(Patches, exclusive_rights, 79, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE, NULL), |
32f871f7e7f7
(svn r11188) -Codechange: rewrite of the town action related code (remove some of the magic).
rubidium
parents:
8137
diff
changeset
|
1480 |
SDT_CONDBOOL(Patches, give_money, 79, SL_MAX_VERSION, 0, 0, true, STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1481 |
SDT_VAR(Patches, snow_line_height,SLE_UINT8, 0, 0, 7, 2, 13, 0, STR_CONFIG_PATCHES_SNOWLINE_HEIGHT, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1482 |
SDT_VAR(Patches, colored_news_year,SLE_INT32, 0,NC, 2000, MIN_YEAR, MAX_YEAR, 1, STR_CONFIG_PATCHES_COLORED_NEWS_YEAR,NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1483 |
SDT_VAR(Patches, starting_year, SLE_INT32, 0,NC, 1950, MIN_YEAR, MAX_YEAR, 1, STR_CONFIG_PATCHES_STARTING_YEAR,NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1484 |
SDT_VAR(Patches, ending_year, SLE_INT32,0,NC|NO,2051, MIN_YEAR, MAX_YEAR, 1, STR_CONFIG_PATCHES_ENDING_YEAR, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1485 |
SDT_BOOL(Patches, smooth_economy, 0, 0, true, STR_CONFIG_PATCHES_SMOOTH_ECONOMY, NULL), |
6664
78ed98eea2a8
(svn r9339) -Codechange: disable shares by default as the sharing system is broken (abusable) and should therefor not be used in multiplayer games.
rubidium
parents:
6622
diff
changeset
|
1486 |
SDT_BOOL(Patches, allow_shares, 0, 0, false, STR_CONFIG_PATCHES_ALLOW_SHARES, NULL), |
6982
c414fad6c440
(svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
maedhros
parents:
6979
diff
changeset
|
1487 |
SDT_CONDVAR(Patches, town_growth_rate, SLE_UINT8, 54, SL_MAX_VERSION, 0, MS, 2, 0, 4, 0, STR_CONFIG_PATCHES_TOWN_GROWTH, NULL), |
c414fad6c440
(svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
maedhros
parents:
6979
diff
changeset
|
1488 |
SDT_CONDVAR(Patches, larger_towns, SLE_UINT8, 54, SL_MAX_VERSION, 0, D0, 4, 0, 255, 1, STR_CONFIG_PATCHES_LARGER_TOWNS, NULL), |
c414fad6c440
(svn r9667) -Feature: Add the concept of cities. A (configurable) proportion of towns can
maedhros
parents:
6979
diff
changeset
|
1489 |
SDT_CONDVAR(Patches, initial_city_size, SLE_UINT8, 56, SL_MAX_VERSION, 0, 0, 2, 1, 10, 1, STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER, NULL), |
8137
67a9579abd74
(svn r11172) -Codechange: rewrite of town road building and addition of the possibility to clean up unconnected road bits during the local road reconstructions. Based on a patch by skidd13.
rubidium
parents:
8078
diff
changeset
|
1490 |
SDT_CONDBOOL(Patches, mod_road_rebuild, 77, SL_MAX_VERSION, 0, 0, false, STR_CONFIG_MODIFIED_ROAD_REBUILD, NULL), |
1218 | 1491 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1492 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1493 |
/* AI section of the GUI-configure patches window */ |
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1494 |
SDT_BOOL(Patches, ainew_active, 0, 0, false, STR_CONFIG_PATCHES_AINEW_ACTIVE, AiNew_PatchActive_Warning), |
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1495 |
SDT_BOOL(Patches, ai_in_multiplayer, 0, 0, false, STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER, Ai_In_Multiplayer_Warning), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1496 |
SDT_BOOL(Patches, ai_disable_veh_train, 0, 0, false, STR_CONFIG_PATCHES_AI_BUILDS_TRAINS, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1497 |
SDT_BOOL(Patches, ai_disable_veh_roadveh, 0, 0, false, STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH, NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1498 |
SDT_BOOL(Patches, ai_disable_veh_aircraft,0, 0, false, STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT,NULL), |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1499 |
SDT_BOOL(Patches, ai_disable_veh_ship, 0, 0, false, STR_CONFIG_PATCHES_AI_BUILDS_SHIPS, NULL), |
1271
2b8bfb61ce90
(svn r1775) -Fix: The NPF patch setting was not synced in network.
truelight
parents:
1258
diff
changeset
|
1500 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1501 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1502 |
/* Patches without any GUI representation */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1503 |
SDT_BOOL(Patches, keep_all_autosave, S, 0, false, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1504 |
SDT_BOOL(Patches, autosave_on_exit, S, 0, false, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1505 |
SDT_VAR(Patches, max_num_autosaves, SLE_UINT8, S, 0, 16, 0, 255, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1506 |
SDT_BOOL(Patches, bridge_pillars, S, 0, true, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1507 |
SDT_VAR(Patches, extend_vehicle_life, SLE_UINT8, 0, 0, 0, 0, 100, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1508 |
SDT_BOOL(Patches, auto_euro, S, 0, true, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1509 |
SDT_VAR(Patches, dist_local_authority,SLE_UINT8, 0, 0, 20, 5, 60, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1510 |
SDT_VAR(Patches, wait_oneway_signal, SLE_UINT8, 0, 0, 15, 2, 100, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1511 |
SDT_VAR(Patches, wait_twoway_signal, SLE_UINT8, 0, 0, 41, 2, 100, 0, STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1512 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1513 |
/***************************************************************************/ |
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1514 |
/* New Pathfinding patch settings */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1515 |
SDT_VAR(Patches, pf_maxlength, SLE_UINT16, 0, 0, 4096, 64, 65535, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1516 |
SDT_VAR(Patches, pf_maxdepth, SLE_UINT8, 0, 0, 48, 4, 255, 0, STR_NULL, NULL), |
1700
b8ecf0494fdd
(svn r2204) - Add: [NPF] NPF now has a maximum number of nodes it will search. The default value is 5000 for now, which is an educated guess. Probably needs some finetuning. Hopefully this "feature" can be removed later on, when more sophisticated means of limiting the pathfinder have been implemented. This should make ships and larger networks playable for now, though.
matthijs
parents:
1688
diff
changeset
|
1517 |
/* The maximum number of nodes to search */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1518 |
SDT_VAR(Patches, npf_max_search_nodes,SLE_UINT, 0, 0, 10000, 500, 100000, 0, STR_NULL, NULL), |
1700
b8ecf0494fdd
(svn r2204) - Add: [NPF] NPF now has a maximum number of nodes it will search. The default value is 5000 for now, which is an educated guess. Probably needs some finetuning. Hopefully this "feature" can be removed later on, when more sophisticated means of limiting the pathfinder have been implemented. This should make ships and larger networks playable for now, though.
matthijs
parents:
1688
diff
changeset
|
1519 |
|
1271
2b8bfb61ce90
(svn r1775) -Fix: The NPF patch setting was not synced in network.
truelight
parents:
1258
diff
changeset
|
1520 |
/* When a red signal is encountered, a small detour can be made around |
4000
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1521 |
* it. This specifically occurs when a track is doubled, in which case |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1522 |
* the detour is typically 2 tiles. It is also often used at station |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1523 |
* entrances, when there is a choice of multiple platforms. If we take |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1524 |
* a typical 4 platform station, the detour is 4 tiles. To properly |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1525 |
* support larger stations we increase this value. |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1526 |
* We want to prevent that trains that want to leave at one side of a |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1527 |
* station, leave through the other side, turn around, enter the |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1528 |
* station on another platform and exit the station on the right side |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1529 |
* again, just because the sign at the right side was red. If we take |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1530 |
* a typical 5 length station, this detour is 10 or 11 tiles (not |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1531 |
* sure), so we set the default penalty at 10 (the station tile |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1532 |
* penalty will further prevent this. |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1533 |
* We give presignal exits (and combo's) a different (larger) penalty, because |
bab1ebc37da0
(svn r5210) Many small changes which piled up: const, unsigned, variable scope, CSE for readability, DeMorgan, if cascades -> switch, whitespace, parentheses, bracing, misc.
tron
parents:
3982
diff
changeset
|
1534 |
* we really don't want trains waiting in front of a presignal exit. */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1535 |
SDT_VAR(Patches, npf_rail_firstred_penalty, SLE_UINT, 0, 0, (10 * NPF_TILE_LENGTH), 0, 100000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1536 |
SDT_VAR(Patches, npf_rail_firstred_exit_penalty,SLE_UINT, 0, 0, (100 * NPF_TILE_LENGTH),0, 100000, 0, STR_NULL, NULL), |
1459
6c1f01803928
(svn r1963) - Add: [NPF] Penalty for a red signal that is the last signal on the path.
matthijs
parents:
1422
diff
changeset
|
1537 |
/* This penalty is for when the last signal before the target is red. |
6c1f01803928
(svn r1963) - Add: [NPF] Penalty for a red signal that is the last signal on the path.
matthijs
parents:
1422
diff
changeset
|
1538 |
* This is useful for train stations, where there are multiple |
6c1f01803928
(svn r1963) - Add: [NPF] Penalty for a red signal that is the last signal on the path.
matthijs
parents:
1422
diff
changeset
|
1539 |
* platforms to choose from, which lie in different signal blocks. |
6c1f01803928
(svn r1963) - Add: [NPF] Penalty for a red signal that is the last signal on the path.
matthijs
parents:
1422
diff
changeset
|
1540 |
* Every target in a occupied signal block (ie an occupied platform) |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1541 |
* will get this penalty. */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1542 |
SDT_VAR(Patches, npf_rail_lastred_penalty, SLE_UINT, 0, 0, (10 * NPF_TILE_LENGTH), 0, 100000, 0, STR_NULL, NULL), |
1271
2b8bfb61ce90
(svn r1775) -Fix: The NPF patch setting was not synced in network.
truelight
parents:
1258
diff
changeset
|
1543 |
/* When a train plans a route over a station tile, this penalty is |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1544 |
* applied. We want that trains plan a route around a typical, 4x5 |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1545 |
* station, which means two tiles to the right, and two tiles back to |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1546 |
* the left around it, or 5 tiles of station through it. If we assign |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1547 |
* a penalty of 1 tile for every station tile passed, the route will |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1548 |
* be around it. */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1549 |
SDT_VAR(Patches, npf_rail_station_penalty, SLE_UINT, 0, 0, (1 * NPF_TILE_LENGTH), 0, 100000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1550 |
SDT_VAR(Patches, npf_rail_slope_penalty, SLE_UINT, 0, 0, (1 * NPF_TILE_LENGTH), 0, 100000, 0, STR_NULL, NULL), |
1751
954dd2900ac9
(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for ships
matthijs
parents:
1727
diff
changeset
|
1551 |
/* This penalty is applied when a train makes a turn. Its value of 1 makes |
954dd2900ac9
(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for ships
matthijs
parents:
1727
diff
changeset
|
1552 |
* sure that it has a minimal impact on the pathfinding, only when two |
954dd2900ac9
(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for ships
matthijs
parents:
1727
diff
changeset
|
1553 |
* paths have equal length it will make a difference */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1554 |
SDT_VAR(Patches, npf_rail_curve_penalty, SLE_UINT, 0, 0, 1, 0, 100000, 0, STR_NULL, NULL), |
1777
d328484bd6f2
(svn r2281) - Fix: [ 1115204 ] [NPF] When pressing the goto depot button, trains will now also look behind it if there is no depot in front. If so, the train reverses immediately. This also work anywhere, not just at stations.
matthijs
parents:
1751
diff
changeset
|
1555 |
/* Ths penalty is applied when a vehicle reverses inside a depot (doesn't |
d328484bd6f2
(svn r2281) - Fix: [ 1115204 ] [NPF] When pressing the goto depot button, trains will now also look behind it if there is no depot in front. If so, the train reverses immediately. This also work anywhere, not just at stations.
matthijs
parents:
1751
diff
changeset
|
1556 |
* apply to ships, as they can just come out the other end). XXX: Is this a |
d328484bd6f2
(svn r2281) - Fix: [ 1115204 ] [NPF] When pressing the goto depot button, trains will now also look behind it if there is no depot in front. If so, the train reverses immediately. This also work anywhere, not just at stations.
matthijs
parents:
1751
diff
changeset
|
1557 |
* good value? */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1558 |
SDT_VAR(Patches, npf_rail_depot_reverse_penalty,SLE_UINT, 0, 0, (NPF_TILE_LENGTH * 50), 0, 100000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1559 |
SDT_VAR(Patches, npf_buoy_penalty, SLE_UINT, 0, 0, (2 * NPF_TILE_LENGTH), 0, 100000, 0, STR_NULL, NULL), |
1751
954dd2900ac9
(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for ships
matthijs
parents:
1727
diff
changeset
|
1560 |
/* This penalty is applied when a ship makes a turn. It is bigger than the |
954dd2900ac9
(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for ships
matthijs
parents:
1727
diff
changeset
|
1561 |
* rail curve penalty, since ships (realisticly) have more trouble with |
954dd2900ac9
(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for ships
matthijs
parents:
1727
diff
changeset
|
1562 |
* making turns */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1563 |
SDT_VAR(Patches, npf_water_curve_penalty, SLE_UINT, 0, 0, (NPF_TILE_LENGTH / 4), 0, 100000, 0, STR_NULL, NULL), |
1941
b1cb02c0401c
(svn r2447) * Add: [NPF] Penalty for road vehicles making turns.
matthijs
parents:
1891
diff
changeset
|
1564 |
/* This is the penalty for road, same as for rail. */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1565 |
SDT_VAR(Patches, npf_road_curve_penalty, SLE_UINT, 0, 0, 1, 0, 100000, 0, STR_NULL, NULL), |
2006
324916f22a8a
(svn r2514) - Codechange: [NPF] Move the checking of railtype into a funciton IsCompatibleRail().
matthijs
parents:
1941
diff
changeset
|
1566 |
/* This is the penalty for level crossings, for both road and rail vehicles */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1567 |
SDT_VAR(Patches, npf_crossing_penalty, SLE_UINT, 0, 0, (3 * NPF_TILE_LENGTH), 0, 100000, 0, STR_NULL, NULL), |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6309
diff
changeset
|
1568 |
/* This is the penalty for drive-through road, stops. */ |
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6309
diff
changeset
|
1569 |
SDT_CONDVAR (Patches, npf_road_drive_through_penalty, SLE_UINT, 47, SL_MAX_VERSION, 0, 0, 8 * NPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
1271
2b8bfb61ce90
(svn r1775) -Fix: The NPF patch setting was not synced in network.
truelight
parents:
1258
diff
changeset
|
1570 |
|
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
1571 |
|
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1572 |
/* The maximum number of nodes to search */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1573 |
SDT_CONDBOOL(Patches, yapf.disable_node_optimization , 28, SL_MAX_VERSION, 0, 0, false , STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1574 |
SDT_CONDVAR (Patches, yapf.max_search_nodes , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 10000 , 500, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1575 |
SDT_CONDBOOL(Patches, yapf.rail_firstred_twoway_eol , 28, SL_MAX_VERSION, 0, 0, true , STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1576 |
SDT_CONDVAR (Patches, yapf.rail_firstred_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 10 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1577 |
SDT_CONDVAR (Patches, yapf.rail_firstred_exit_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 100 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1578 |
SDT_CONDVAR (Patches, yapf.rail_lastred_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 10 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1579 |
SDT_CONDVAR (Patches, yapf.rail_lastred_exit_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 100 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1580 |
SDT_CONDVAR (Patches, yapf.rail_station_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 30 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1581 |
SDT_CONDVAR (Patches, yapf.rail_slope_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 2 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1582 |
SDT_CONDVAR (Patches, yapf.rail_curve45_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 1 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1583 |
SDT_CONDVAR (Patches, yapf.rail_curve90_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 6 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1584 |
/* This penalty is applied when a train reverses inside a depot */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1585 |
SDT_CONDVAR (Patches, yapf.rail_depot_reverse_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 50 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1586 |
/* This is the penalty for level crossings (for trains only) */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1587 |
SDT_CONDVAR (Patches, yapf.rail_crossing_penalty , SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 3 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1588 |
/* look-ahead how many signals are checked */ |
5186
852c05442097
(svn r7296) -Fix: [YAPF] setting yapf.rail_look_ahead_max_signals to zero causes YAPF to behave incorrectly. Set its min value to 1. (Danny)
KUDr
parents:
5163
diff
changeset
|
1589 |
SDT_CONDVAR (Patches, yapf.rail_look_ahead_max_signals, SLE_UINT, 28, SL_MAX_VERSION, 0, 0, 10 , 1, 100, 0, STR_NULL, NULL), |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1590 |
/* look-ahead n-th red signal penalty polynomial: penalty = p2 * n^2 + p1 * n + p0 */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1591 |
SDT_CONDVAR (Patches, yapf.rail_look_ahead_signal_p0 , SLE_INT , 28, SL_MAX_VERSION, 0, 0, 500 , -1000000, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1592 |
SDT_CONDVAR (Patches, yapf.rail_look_ahead_signal_p1 , SLE_INT , 28, SL_MAX_VERSION, 0, 0, -100 , -1000000, 1000000, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1593 |
SDT_CONDVAR (Patches, yapf.rail_look_ahead_signal_p2 , SLE_INT , 28, SL_MAX_VERSION, 0, 0, 5 , -1000000, 1000000, 0, STR_NULL, NULL), |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1594 |
/* penalties for too long or too short station platforms */ |
4590
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1595 |
SDT_CONDVAR (Patches, yapf.rail_longer_platform_penalty, SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 8 * YAPF_TILE_LENGTH, 0, 20000, 0, STR_NULL, NULL), |
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1596 |
SDT_CONDVAR (Patches, yapf.rail_longer_platform_per_tile_penalty, SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 0 * YAPF_TILE_LENGTH, 0, 20000, 0, STR_NULL, NULL), |
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1597 |
SDT_CONDVAR (Patches, yapf.rail_shorter_platform_penalty, SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 40 * YAPF_TILE_LENGTH, 0, 20000, 0, STR_NULL, NULL), |
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1598 |
SDT_CONDVAR (Patches, yapf.rail_shorter_platform_per_tile_penalty, SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 0 * YAPF_TILE_LENGTH, 0, 20000, 0, STR_NULL, NULL), |
6916
e87d54a598ea
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas
parents:
6706
diff
changeset
|
1599 |
/* road vehicles - penalties */ |
4590
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1600 |
SDT_CONDVAR (Patches, yapf.road_slope_penalty , SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 2 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1601 |
SDT_CONDVAR (Patches, yapf.road_curve_penalty , SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 1 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
020290824b22
(svn r6440) -Fix: [YAPF] some YAPF settings were not saved (i misunderstood how save flags work). This probably caused some MP desyncs. Thanks Maedhros for noticing and peter1138 for this patch.
KUDr
parents:
4549
diff
changeset
|
1602 |
SDT_CONDVAR (Patches, yapf.road_crossing_penalty , SLE_UINT, 33, SL_MAX_VERSION, 0, 0, 3 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
6338
0fb4f452873c
(svn r8735) -Feature: drive-through road stops made possible by the hard work of mart3p.
rubidium
parents:
6309
diff
changeset
|
1603 |
SDT_CONDVAR (Patches, yapf.road_stop_penalty , SLE_UINT, 47, SL_MAX_VERSION, 0, 0, 8 * YAPF_TILE_LENGTH, 0, 1000000, 0, STR_NULL, NULL), |
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
1604 |
|
4300
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4293
diff
changeset
|
1605 |
/***************************************************************************/ |
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4293
diff
changeset
|
1606 |
/* Terrain genation related patch options */ |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1607 |
SDT_CONDVAR(Patches, land_generator, SLE_UINT8, 30, SL_MAX_VERSION, 0, MS, 1, 0, 1, 0, STR_CONFIG_PATCHES_LAND_GENERATOR, NULL), |
6664
78ed98eea2a8
(svn r9339) -Codechange: disable shares by default as the sharing system is broken (abusable) and should therefor not be used in multiplayer games.
rubidium
parents:
6622
diff
changeset
|
1608 |
SDT_CONDVAR(Patches, oil_refinery_limit, SLE_UINT8, 30, SL_MAX_VERSION, 0, 0, 32, 12, 48, 0, STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1609 |
SDT_CONDVAR(Patches, tgen_smoothness, SLE_UINT8, 30, SL_MAX_VERSION, 0, MS, 1, 0, 3, 0, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1610 |
SDT_CONDVAR(Patches, generation_seed, SLE_UINT32, 30, SL_MAX_VERSION, 0, 0, GENERATE_NEW_SEED, 0, MAX_UVALUE(uint32), 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1611 |
SDT_CONDVAR(Patches, tree_placer, SLE_UINT8, 30, SL_MAX_VERSION, 0, MS, 2, 0, 2, 0, STR_CONFIG_PATCHES_TREE_PLACER, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1612 |
SDT_VAR (Patches, heightmap_rotation, SLE_UINT8, S, MS, 0, 0, 1, 0, STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1613 |
SDT_VAR (Patches, se_flat_world_height, SLE_UINT8, S, 0, 0, 0, 15, 0, STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT, NULL), |
4300
687a17c9c557
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
truelight
parents:
4293
diff
changeset
|
1614 |
|
8625
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1615 |
/* |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1616 |
* Since the network code (CmdChangePatchSetting and friends) use the index in this array to decide |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1617 |
* which patch the server is talking about all conditional compilation of this array must be at the |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1618 |
* end. This isn't really the best solution, the patches the server can tell the client about should |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1619 |
* either use a seperate array or some other form of identifier. |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1620 |
*/ |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1621 |
|
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1622 |
#ifdef __APPLE__ |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1623 |
/* We might need to emulate a right mouse button on mac */ |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1624 |
SDT_VAR(Patches,right_mouse_btn_emulation,SLE_UINT8,S,MS,0, 0, 2, 0, STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU, NULL), |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1625 |
#endif |
917bf7147a48
(svn r11690) -Fix: Since indices into the patch array is sent over the network having conditionally compiled entries in the table can cause desyncs. Moving them to the end will hide this issue, but it should really be solved in a better way.
egladil
parents:
8617
diff
changeset
|
1626 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1627 |
SDT_END() |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1628 |
}; |
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1629 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1630 |
static const SettingDesc _currency_settings[] = { |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1631 |
SDT_VAR(CurrencySpec, rate, SLE_UINT16, S, 0, 1, 0, 100, 0, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1632 |
SDT_CHR(CurrencySpec, separator, S, 0, ".", STR_NULL, NULL), |
6987
b0f13039bda2
(svn r9672) -Cleanup: lots of coding style fixes around operands.
rubidium
parents:
6984
diff
changeset
|
1633 |
SDT_VAR(CurrencySpec, to_euro, SLE_INT32, S, 0, 0, 0, 3000, 0, STR_NULL, NULL), |
4431
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1634 |
SDT_STR(CurrencySpec, prefix, SLE_STRBQ, S, 0, NULL, STR_NULL, NULL), |
7468c1484d20
(svn r6186) -Fix [FS#309]: add an override system to the dynamically determined size of steps for numeric patch settings in the 'Configure patches' GUI.
rubidium
parents:
4419
diff
changeset
|
1635 |
SDT_STR(CurrencySpec, suffix, SLE_STRBQ, S, 0, " credits", STR_NULL, NULL), |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1636 |
SDT_END() |
759
6d087784a08a
(svn r1215) Feature: You can now make a custom currency by chosing "Custom..."
dominik
parents:
738
diff
changeset
|
1637 |
}; |
6d087784a08a
(svn r1215) Feature: You can now make a custom currency by chosing "Custom..."
dominik
parents:
738
diff
changeset
|
1638 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1639 |
/* Undefine for the shortcut macros above */ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1640 |
#undef S |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1641 |
#undef C |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1642 |
#undef N |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1643 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1644 |
#undef D0 |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1645 |
#undef NC |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1646 |
#undef MS |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1647 |
#undef NO |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1648 |
#undef CR |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1649 |
|
6609
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1650 |
static uint NewsDisplayLoadConfig(IniFile *ini, const char *grpname) |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1651 |
{ |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1652 |
IniGroup *group = ini_getgroup(ini, grpname, -1); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1653 |
IniItem *item; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1654 |
/* By default, set everything to full (0xAAAAAAAA = 1010101010101010) */ |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1655 |
uint res = 0xAAAAAAAA; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1656 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1657 |
/* If no group exists, return everything full */ |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1658 |
if (group == NULL) return res; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1659 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1660 |
for (item = group->item; item != NULL; item = item->next) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1661 |
int news_item = -1; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1662 |
for (int i = 0; i < NT_END; i++) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1663 |
if (strcasecmp(item->name, _news_display_name[i]) == 0) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1664 |
news_item = i; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1665 |
break; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1666 |
} |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1667 |
} |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1668 |
if (news_item == -1) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1669 |
DEBUG(misc, 0, "Invalid display option: %s", item->name); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1670 |
continue; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1671 |
} |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1672 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1673 |
if (strcasecmp(item->value, "full") == 0) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1674 |
SB(res, news_item * 2, 2, 2); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1675 |
} else if (strcasecmp(item->value, "off") == 0) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1676 |
SB(res, news_item * 2, 2, 0); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1677 |
} else if (strcasecmp(item->value, "summarized") == 0) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1678 |
SB(res, news_item * 2, 2, 1); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1679 |
} else { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1680 |
DEBUG(misc, 0, "Invalid display value: %s", item->value); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1681 |
continue; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1682 |
} |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1683 |
} |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1684 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1685 |
return res; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1686 |
} |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
1687 |
|
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1688 |
/* Load a GRF configuration from the given group name */ |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1689 |
static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_static) |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1690 |
{ |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1691 |
IniGroup *group = ini_getgroup(ini, grpname, -1); |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1692 |
IniItem *item; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1693 |
GRFConfig *first = NULL; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1694 |
GRFConfig **curr = &first; |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
1695 |
|
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1696 |
if (group == NULL) return NULL; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1697 |
|
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1698 |
for (item = group->item; item != NULL; item = item->next) { |
5860
7fdc9b423ba1
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr
parents:
5852
diff
changeset
|
1699 |
GRFConfig *c = CallocT<GRFConfig>(1); |
7530
31257d744079
(svn r10298) -Fix [FS#903]: show the subdirectory below the default data directory in this filename in the newgrf list. The directory was removed in r9560 because then it used to full path instead of the path relative to the data directory, but since the inclusion of "search paths" that is not necessary anymore.
rubidium
parents:
7494
diff
changeset
|
1700 |
c->filename = strdup(item->name); |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1701 |
|
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1702 |
/* Parse parameters */ |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1703 |
if (*item->value != '\0') { |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1704 |
c->num_params = parse_intlist(item->value, (int*)c->param, lengthof(c->param)); |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1705 |
if (c->num_params == (byte)-1) { |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1706 |
ShowInfoF("ini: error in array '%s'", item->name); |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1707 |
c->num_params = 0; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1708 |
} |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1709 |
} |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1710 |
|
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1711 |
/* Check if item is valid */ |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1712 |
if (!FillGRFDetails(c, is_static)) { |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1713 |
const char *msg; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1714 |
|
6555
c27c9d5b459f
(svn r9031) -Codechange: Introduce grfconfig->status, and use it for states that are
maedhros
parents:
6338
diff
changeset
|
1715 |
if (c->status == GCS_NOT_FOUND) { |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1716 |
msg = "not found"; |
8424
4a488a90ccab
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
8423
diff
changeset
|
1717 |
} else if (HasBit(c->flags, GCF_UNSAFE)) { |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1718 |
msg = "unsafe for static use"; |
8424
4a488a90ccab
(svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style
skidd13
parents:
8423
diff
changeset
|
1719 |
} else if (HasBit(c->flags, GCF_SYSTEM)) { |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1720 |
msg = "system NewGRF"; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1721 |
} else { |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1722 |
msg = "unknown"; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1723 |
} |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1724 |
|
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1725 |
ShowInfoF("ini: ignoring invalid NewGRF '%s': %s", item->name, msg); |
5346
0d7cc9cefd2b
(svn r7517) -Codechange: Set pointers to NULL when freeing the newgrf config variables and add the proper const to CopyGRFConfigList
Darkvater
parents:
5329
diff
changeset
|
1726 |
ClearGRFConfig(&c); |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1727 |
continue; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1728 |
} |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1729 |
|
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1730 |
/* Mark file as static to avoid saving in savegame. */ |
8427
143b0be22af1
(svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style
skidd13
parents:
8424
diff
changeset
|
1731 |
if (is_static) SetBit(c->flags, GCF_STATIC); |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1732 |
|
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1733 |
/* Add item to list */ |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1734 |
*curr = c; |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1735 |
curr = &c->next; |
5307
3e336ae5724a
(svn r7463) -Codechange: Don't load invalid NewGRF files from the configuration file; instead show a warning.
peter1138
parents:
5228
diff
changeset
|
1736 |
} |
3631
33532b85cce9
(svn r4530) - Fix [NewGRF]: don't spew a warning when a grf file has no parameters.
Darkvater
parents:
3628
diff
changeset
|
1737 |
|
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1738 |
return first; |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
1739 |
} |
0 | 1740 |
|
6609
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1741 |
static void NewsDisplaySaveConfig(IniFile *ini, const char *grpname, uint news_display) |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1742 |
{ |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1743 |
IniGroup *group = ini_getgroup(ini, grpname, -1); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1744 |
IniItem **item; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1745 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1746 |
if (group == NULL) return; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1747 |
group->item = NULL; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1748 |
item = &group->item; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1749 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1750 |
for (int i = 0; i < NT_END; i++) { |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1751 |
const char *value; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1752 |
int v = GB(news_display, i * 2, 2); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1753 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1754 |
value = (v == 0 ? "off" : (v == 1 ? "summarized" : "full")); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1755 |
|
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1756 |
*item = ini_item_alloc(group, _news_display_name[i], strlen(_news_display_name[i])); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1757 |
(*item)->value = (char*)pool_strdup(&ini->pool, value, strlen(value)); |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1758 |
item = &(*item)->next; |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1759 |
} |
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1760 |
} |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1761 |
|
9353
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1762 |
/** |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1763 |
* Save the version of OpenTTD to the ini file. |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1764 |
* @param ini the ini to write to |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1765 |
*/ |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1766 |
static void SaveVersionInConfig(IniFile *ini) |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1767 |
{ |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1768 |
extern const char _openttd_revision[]; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1769 |
extern uint32 _openttd_newgrf_version; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1770 |
|
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1771 |
IniGroup *group = ini_getgroup(ini, "version", -1); |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1772 |
|
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1773 |
if (group == NULL) return; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1774 |
group->item = NULL; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1775 |
IniItem **item = &group->item; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1776 |
|
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1777 |
char version[9]; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1778 |
snprintf(version, lengthof(version), "%08X", _openttd_newgrf_version); |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1779 |
|
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1780 |
const char *versions[][2] = { |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1781 |
{ "version_string", _openttd_revision }, |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1782 |
{ "version_number", version } |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1783 |
}; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1784 |
|
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1785 |
for (uint i = 0; i < lengthof(versions); i++) { |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1786 |
*item = ini_item_alloc(group, versions[i][0], strlen(versions[i][0])); |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1787 |
(*item)->value = (char*)pool_strdup(&ini->pool, versions[i][1], strlen(versions[i][1])); |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1788 |
item = &(*item)->next; |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1789 |
} |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1790 |
} |
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1791 |
|
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1792 |
/* Save a GRF configuration to the given group name */ |
5309
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1793 |
static void GRFSaveConfig(IniFile *ini, const char *grpname, const GRFConfig *list) |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1794 |
{ |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1795 |
IniGroup *group = ini_getgroup(ini, grpname, -1); |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1796 |
IniItem **item; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1797 |
const GRFConfig *c; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1798 |
|
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1799 |
if (group == NULL) return; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1800 |
group->item = NULL; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1801 |
item = &group->item; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1802 |
|
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1803 |
for (c = list; c != NULL; c = c->next) { |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1804 |
char params[512]; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1805 |
GRFBuildParamList(params, c, lastof(params)); |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1806 |
|
7530
31257d744079
(svn r10298) -Fix [FS#903]: show the subdirectory below the default data directory in this filename in the newgrf list. The directory was removed in r9560 because then it used to full path instead of the path relative to the data directory, but since the inclusion of "search paths" that is not necessary anymore.
rubidium
parents:
7494
diff
changeset
|
1807 |
*item = ini_item_alloc(group, c->filename, strlen(c->filename)); |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
1808 |
(*item)->value = (char*)pool_strdup(&ini->pool, params, strlen(params)); |
5309
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1809 |
item = &(*item)->next; |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1810 |
} |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1811 |
} |
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1812 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1813 |
/* Common handler for saving/loading variables to the configuration file */ |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1814 |
static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescProcList *proc_list) |
0 | 1815 |
{ |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1816 |
proc(ini, (const SettingDesc*)_misc_settings, "misc", NULL); |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1817 |
proc(ini, (const SettingDesc*)_music_settings, "music", &msf); |
3051
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1818 |
#ifdef WIN32 |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1819 |
proc(ini, (const SettingDesc*)_win32_settings, "win32", NULL); |
3051
16f6e40c67eb
(svn r3640) - Remove win32-only variables from variables.h and put them into win32_v.c. Also ifdef the win32 specific configuration file settings.
Darkvater
parents:
3042
diff
changeset
|
1820 |
#endif /* WIN32 */ |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1821 |
|
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1822 |
proc(ini, _gameopt_settings, "gameopt", &_opt_newgame); |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
1823 |
proc(ini, _patch_settings, "patches", &_patches_newgame); |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1824 |
proc(ini, _currency_settings,"currency", &_custom_currency); |
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1825 |
|
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1826 |
#ifdef ENABLE_NETWORK |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1827 |
proc(ini, (const SettingDesc*)_network_settings, "network", NULL); |
3628
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
1828 |
proc_list(ini, "servers", _network_host_list, lengthof(_network_host_list), NULL); |
bd4a6601e5a2
(svn r4527) - Feature [NewGRF]: Add support for specifying parameters to GRF files. Usage: "mygrf = 1". You can pass up to 128 parameters, each one seperated by a comma or a space-character. Big thanks to peter1138 for the inspiration and examples.
Darkvater
parents:
3615
diff
changeset
|
1829 |
proc_list(ini, "bans", _network_ban_list, lengthof(_network_ban_list), NULL); |
543
e3b43338096b
(svn r942) -Merged branch/network back into the trunk
truelight
parents:
523
diff
changeset
|
1830 |
#endif /* ENABLE_NETWORK */ |
0 | 1831 |
} |
1832 |
||
6704
1d7e67bc3f7c
(svn r9455) -Fix: the values for diff_custom, diff_level and snow_line in the .cfg were not properly checked.
rubidium
parents:
6682
diff
changeset
|
1833 |
extern void CheckDifficultyLevels(); |
1d7e67bc3f7c
(svn r9455) -Fix: the values for diff_custom, diff_level and snow_line in the .cfg were not properly checked.
rubidium
parents:
6682
diff
changeset
|
1834 |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1835 |
/** Load the values from the configuration files */ |
6573 | 1836 |
void LoadFromConfig() |
0 | 1837 |
{ |
1838 |
IniFile *ini = ini_load(_config_file); |
|
6705
d3fb7785c0a4
(svn r9467) -Fix(FS#703,6108): When resetting the array of currencies, the custom currency was reset too, thus loosing the setting a user could have used for it.(glx)
belugas
parents:
6704
diff
changeset
|
1839 |
ResetCurrencies(false); // Initialize the array of curencies, without preserving the custom one |
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1840 |
HandleSettingDescs(ini, ini_load_settings, ini_load_setting_list); |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1841 |
_grfconfig_newgame = GRFLoadConfig(ini, "newgrf", false); |
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1842 |
_grfconfig_static = GRFLoadConfig(ini, "newgrf-static", true); |
6609
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1843 |
_news_display_opt = NewsDisplayLoadConfig(ini, "news_display"); |
6704
1d7e67bc3f7c
(svn r9455) -Fix: the values for diff_custom, diff_level and snow_line in the .cfg were not properly checked.
rubidium
parents:
6682
diff
changeset
|
1844 |
CheckDifficultyLevels(); |
0 | 1845 |
ini_free(ini); |
1846 |
} |
|
1847 |
||
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1848 |
/** Save the values to the configuration file */ |
6573 | 1849 |
void SaveToConfig() |
0 | 1850 |
{ |
1851 |
IniFile *ini = ini_load(_config_file); |
|
3116
031230112b25
(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.
Darkvater
parents:
3115
diff
changeset
|
1852 |
HandleSettingDescs(ini, ini_save_settings, ini_save_setting_list); |
5309
02416fe4b891
(svn r7465) -Codechange: Save the default GRF configuration.
peter1138
parents:
5307
diff
changeset
|
1853 |
GRFSaveConfig(ini, "newgrf", _grfconfig_newgame); |
5329
2b117d8652f0
(svn r7490) -Feature: Load a list of NewGRFs from the config (in the [newgrf-static] section) that should always be loaded. These will also be active during the intro screen, and in multiplayer games. Only "network-safe" NewGRFs are permitted, such as fonts and sprite replacement sets.
peter1138
parents:
5309
diff
changeset
|
1854 |
GRFSaveConfig(ini, "newgrf-static", _grfconfig_static); |
6609
7c466c7c850a
(svn r9097) -Fix [FS#525]: open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries
truelight
parents:
6574
diff
changeset
|
1855 |
NewsDisplaySaveConfig(ini, "news_display", _news_display_opt); |
9353
1127b484af20
(svn r12478) [0.6] -Backport from trunk (12477, 12453, 12448, 12443, 12439, 12417):
rubidium
parents:
9192
diff
changeset
|
1856 |
SaveVersionInConfig(ini); |
0 | 1857 |
ini_save(_config_file, ini); |
1858 |
ini_free(ini); |
|
1859 |
} |
|
1688
787400219027
(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
Darkvater
parents:
1643
diff
changeset
|
1860 |
|
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1861 |
static const SettingDesc *GetSettingDescription(uint index) |
3118
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1862 |
{ |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1863 |
if (index >= lengthof(_patch_settings)) return NULL; |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1864 |
return &_patch_settings[index]; |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1865 |
} |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1866 |
|
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1867 |
/** Network-safe changing of patch-settings (server-only). |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
1868 |
* @param tile unused |
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
1869 |
* @param flags operation to perform |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1870 |
* @param p1 the index of the patch in the SettingDesc array which identifies it |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1871 |
* @param p2 the new value for the patch |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1872 |
* The new value is properly clamped to its minimum/maximum when setting |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1873 |
* @see _patch_settings |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1874 |
*/ |
7439
0c0e2945c890
(svn r10197) -Codechange: replace int32 with CommandCost where appropriate.
rubidium
parents:
7409
diff
changeset
|
1875 |
CommandCost CmdChangePatchSetting(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1876 |
{ |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1877 |
const SettingDesc *sd = GetSettingDescription(p1); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1878 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1879 |
if (sd == NULL) return CMD_ERROR; |
3223
abf18a71767b
(svn r3896) - [Patches] Fix: Honour any conditional settings when retrieving the setting entries.
Darkvater
parents:
3222
diff
changeset
|
1880 |
if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) return CMD_ERROR; |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1881 |
|
8530
90a35d776726
(svn r11594) -Fix: don't allow changing network only patches settings from console when not in network game
glx
parents:
8494
diff
changeset
|
1882 |
if ((sd->desc.flags & SGF_NETWORK_ONLY) && !_networking) return CMD_ERROR; |
8397
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1883 |
if ((sd->desc.flags & SGF_NO_NETWORK) && _networking) return CMD_ERROR; |
81b06437cfab
(svn r11452) -Change: do not allow configuration changes, that NewGRFs can directly use to change their behaviour, during network games as this can cause desyncs.
rubidium
parents:
8345
diff
changeset
|
1884 |
|
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1885 |
if (flags & DC_EXEC) { |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
1886 |
Patches *patches_ptr = (_game_mode == GM_MENU) ? &_patches_newgame : &_patches; |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
1887 |
void *var = GetVariableAddress(patches_ptr, &sd->save); |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1888 |
Write_ValidateSetting(var, sd, (int32)p2); |
5113
5626f4b8b46e
(svn r7190) -Fix: If the non-player-based _patches setting was changed on the server during MP game, the callback function was:
KUDr
parents:
5108
diff
changeset
|
1889 |
if (sd->desc.proc != NULL) sd->desc.proc((int32)ReadValue(var, sd->save.conv)); |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1890 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1891 |
InvalidateWindow(WC_GAME_OPTIONS, 0); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1892 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1893 |
|
7446
1c4d469f986e
(svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified.
rubidium
parents:
7439
diff
changeset
|
1894 |
return CommandCost(); |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1895 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1896 |
|
3615
59b36aaa050a
(svn r4512) - Codechange: Sprinkle some doxygen magic over settings.c
Darkvater
parents:
3606
diff
changeset
|
1897 |
/** Top function to save the new value of an element of the Patches struct |
3118
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1898 |
* @param index offset in the SettingDesc array of the Patches struct which |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1899 |
* identifies the patch member we want to change |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1900 |
* @param object pointer to a valid patches struct that has its settings change. |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1901 |
* This only affects patch-members that are not needed to be the same on all |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1902 |
* clients in a network game. |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1903 |
* @param value new value of the patch */ |
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1904 |
bool SetPatchValue(uint index, const Patches *object, int32 value) |
3118
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1905 |
{ |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1906 |
const SettingDesc *sd = &_patch_settings[index]; |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1907 |
/* If an item is player-based, we do not send it over the network |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1908 |
* (if any) to change. Also *hack*hack* we update the _newgame version |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1909 |
* of patches because changing a player-based setting in a game also |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1910 |
* changes its defaults. At least that is the convention we have chosen */ |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1911 |
if (sd->save.conv & SLF_NETWORK_NO) { |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
1912 |
void *var = GetVariableAddress(object, &sd->save); |
3118
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1913 |
Write_ValidateSetting(var, sd, value); |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
1914 |
|
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
1915 |
if (_game_mode != GM_MENU) { |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
1916 |
void *var2 = GetVariableAddress(&_patches_newgame, &sd->save); |
4077
d3022f976946
(svn r5391) Miscellaneous, mostly bracing and whitespace, nothing spectacular
tron
parents:
4065
diff
changeset
|
1917 |
Write_ValidateSetting(var2, sd, value); |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
1918 |
} |
5113
5626f4b8b46e
(svn r7190) -Fix: If the non-player-based _patches setting was changed on the server during MP game, the callback function was:
KUDr
parents:
5108
diff
changeset
|
1919 |
if (sd->desc.proc != NULL) sd->desc.proc((int32)ReadValue(var, sd->save.conv)); |
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1920 |
InvalidateWindow(WC_GAME_OPTIONS, 0); |
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1921 |
return true; |
3118
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1922 |
} |
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1923 |
|
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1924 |
/* send non-player-based settings over the network */ |
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1925 |
if (!_networking || (_networking && _network_server)) { |
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1926 |
return DoCommandP(0, index, value, NULL, CMD_CHANGE_PATCH_SETTING); |
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1927 |
} |
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1928 |
return false; |
3118
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1929 |
} |
99926945ccb1
(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).
Darkvater
parents:
3117
diff
changeset
|
1930 |
|
3247
4e70e64adbb8
(svn r3930) - [Patches] Change the GUI-patch options from indeces to string representations. Not only makes this the part more humanly readable, but saves us from rewriting the whole index when a patch is added/removed/changed
Darkvater
parents:
3246
diff
changeset
|
1931 |
const SettingDesc *GetPatchFromName(const char *name, uint *i) |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1932 |
{ |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1933 |
const SettingDesc *sd; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1934 |
|
3131
e856656f99a9
(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.
Darkvater
parents:
3125
diff
changeset
|
1935 |
for (*i = 0, sd = _patch_settings; sd->save.cmd != SL_END; sd++, (*i)++) { |
3223
abf18a71767b
(svn r3896) - [Patches] Fix: Honour any conditional settings when retrieving the setting entries.
Darkvater
parents:
3222
diff
changeset
|
1936 |
if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue; |
3210
c77ce9799650
(svn r3880) - just do a string compare without length restrictions; followup for r3875
Darkvater
parents:
3207
diff
changeset
|
1937 |
if (strcmp(sd->desc.name, name) == 0) return sd; |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1938 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1939 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1940 |
return NULL; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1941 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1942 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1943 |
/* Those 2 functions need to be here, else we have to make some stuff non-static |
4278
0025a4267abe
(svn r5908) - Codechange (r5903): Move the retrieval of the new value of a patch to console_cmds.c, so there is no need for that function in settings.c
Darkvater
parents:
4275
diff
changeset
|
1944 |
* and besides, it is also better to keep stuff like this at the same place */ |
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1945 |
bool IConsoleSetPatchSetting(const char *name, int32 value) |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1946 |
{ |
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1947 |
bool success; |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1948 |
uint index; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1949 |
const SettingDesc *sd = GetPatchFromName(name, &index); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1950 |
const Patches *patches_ptr; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1951 |
void *ptr; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1952 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1953 |
if (sd == NULL) { |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1954 |
IConsolePrintF(_icolour_warn, "'%s' is an unknown patch setting.", name); |
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1955 |
return true; |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1956 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1957 |
|
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
1958 |
patches_ptr = (_game_mode == GM_MENU) ? &_patches_newgame : &_patches; |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
1959 |
ptr = GetVariableAddress(patches_ptr, &sd->save); |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1960 |
|
4600
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1961 |
success = SetPatchValue(index, patches_ptr, value); |
c3d1ca65a598
(svn r6450) -Feature: Make the 'patch' console command available for offline use and for
Darkvater
parents:
4590
diff
changeset
|
1962 |
return success; |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1963 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1964 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1965 |
void IConsoleGetPatchSetting(const char *name) |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1966 |
{ |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1967 |
char value[20]; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1968 |
uint index; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1969 |
const SettingDesc *sd = GetPatchFromName(name, &index); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1970 |
const void *ptr; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1971 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1972 |
if (sd == NULL) { |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1973 |
IConsolePrintF(_icolour_warn, "'%s' is an unknown patch setting.", name); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1974 |
return; |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1975 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1976 |
|
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
1977 |
ptr = GetVariableAddress((_game_mode == GM_MENU) ? &_patches_newgame : &_patches, &sd->save); |
3119
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1978 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1979 |
if (sd->desc.cmd == SDT_BOOLX) { |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1980 |
snprintf(value, sizeof(value), (*(bool*)ptr == 1) ? "on" : "off"); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1981 |
} else { |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1982 |
snprintf(value, sizeof(value), "%d", (int32)ReadValue(ptr, sd->save.conv)); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1983 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1984 |
|
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1985 |
IConsolePrintF(_icolour_warn, "Current value for '%s' is: '%s' (min: %s%d, max: %d)", |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1986 |
name, value, (sd->desc.flags & SGF_0ISDISABLED) ? "(0) " : "", sd->desc.min, sd->desc.max); |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1987 |
} |
08471cfc4ef8
(svn r3723) - [5/6] Move over the console commands from settings_gui to settings where they rather belong.
Darkvater
parents:
3118
diff
changeset
|
1988 |
|
6925
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1989 |
void IConsoleListPatches() |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1990 |
{ |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1991 |
IConsolePrintF(_icolour_warn, "All patches with their current value:"); |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1992 |
|
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1993 |
for (const SettingDesc *sd = _patch_settings; sd->save.cmd != SL_END; sd++) { |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1994 |
char value[80]; |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1995 |
const void *ptr = GetVariableAddress((_game_mode == GM_MENU) ? &_patches_newgame : &_patches, &sd->save); |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1996 |
|
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1997 |
if (sd->desc.cmd == SDT_BOOLX) { |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1998 |
snprintf(value, lengthof(value), (*(bool*)ptr == 1) ? "on" : "off"); |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
1999 |
} else { |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2000 |
snprintf(value, lengthof(value), "%d", (uint32)ReadValue(ptr, sd->save.conv)); |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2001 |
} |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2002 |
IConsolePrintF(_icolour_def, "%s = %s", sd->desc.name, value); |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2003 |
} |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2004 |
|
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2005 |
IConsolePrintF(_icolour_warn, "Use 'patch' command to change a value"); |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2006 |
} |
dc349ff2d657
(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.
peter1138
parents:
6923
diff
changeset
|
2007 |
|
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2008 |
/** Save and load handler for patches/settings |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2009 |
* @param osd SettingDesc struct containing all information |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2010 |
* @param object can be either NULL in which case we load global variables or |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2011 |
* a pointer to a struct which is getting saved */ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2012 |
static void LoadSettings(const SettingDesc *osd, void *object) |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2013 |
{ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2014 |
for (; osd->save.cmd != SL_END; osd++) { |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2015 |
const SaveLoad *sld = &osd->save; |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
2016 |
void *ptr = GetVariableAddress(object, sld); |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2017 |
|
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2018 |
if (!SlObjectMember(ptr, sld)) continue; |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2019 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2020 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2021 |
|
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2022 |
/** Loadhandler for a list of global variables |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
2023 |
* @param sdg pointer for the global variable list SettingDescGlobVarList |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2024 |
* @note this is actually a stub for LoadSettings with the |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2025 |
* object pointer set to NULL */ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2026 |
static inline void LoadSettingsGlobList(const SettingDescGlobVarList *sdg) |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2027 |
{ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2028 |
LoadSettings((const SettingDesc*)sdg, NULL); |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2029 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2030 |
|
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2031 |
/** Save and load handler for patches/settings |
6979
d194d25020e7
(svn r9664) -Documentation: Doxygen corrections,errors and omissions
belugas
parents:
6953
diff
changeset
|
2032 |
* @param sd SettingDesc struct containing all information |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2033 |
* @param object can be either NULL in which case we load global variables or |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2034 |
* a pointer to a struct which is getting saved */ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2035 |
static void SaveSettings(const SettingDesc *sd, void *object) |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2036 |
{ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2037 |
/* We need to write the CH_RIFF header, but unfortunately can't call |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2038 |
* SlCalcLength() because we have a different format. So do this manually */ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2039 |
const SettingDesc *i; |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2040 |
size_t length = 0; |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2041 |
for (i = sd; i->save.cmd != SL_END; i++) { |
5142
d423c895a5b4
(svn r7232) -Codechange: Also allow for the save/load of non pre-allocated strings inside structs.
Darkvater
parents:
5141
diff
changeset
|
2042 |
const void *ptr = GetVariableAddress(object, &i->save); |
d423c895a5b4
(svn r7232) -Codechange: Also allow for the save/load of non pre-allocated strings inside structs.
Darkvater
parents:
5141
diff
changeset
|
2043 |
length += SlCalcObjMemberLength(ptr, &i->save); |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2044 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2045 |
SlSetLength(length); |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2046 |
|
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2047 |
for (i = sd; i->save.cmd != SL_END; i++) { |
5141
05a806850445
(svn r7231) -Codechange: rename ini_get_variable to GetVariableAddress for use both in settings.c
Darkvater
parents:
5116
diff
changeset
|
2048 |
void *ptr = GetVariableAddress(object, &i->save); |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2049 |
SlObjectMember(ptr, &i->save); |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2050 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2051 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2052 |
|
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2053 |
/** Savehandler for a list of global variables |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2054 |
* @note this is actually a stub for SaveSettings with the |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2055 |
* object pointer set to NULL */ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2056 |
static inline void SaveSettingsGlobList(const SettingDescGlobVarList *sdg) |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2057 |
{ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2058 |
SaveSettings((const SettingDesc*)sdg, NULL); |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2059 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2060 |
|
6573 | 2061 |
static void Load_OPTS() |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2062 |
{ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2063 |
/* Copy over default setting since some might not get loaded in |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2064 |
* a networking environment. This ensures for example that the local |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2065 |
* autosave-frequency stays when joining a network-server */ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2066 |
_opt = _opt_newgame; |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2067 |
LoadSettings(_gameopt_settings, &_opt); |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2068 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2069 |
|
6573 | 2070 |
static void Save_OPTS() |
3117
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2071 |
{ |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2072 |
SaveSettings(_gameopt_settings, &_opt); |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2073 |
} |
8066b8d0802b
(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.
Darkvater
parents:
3116
diff
changeset
|
2074 |
|
6573 | 2075 |
static void Load_PATS() |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2076 |
{ |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2077 |
/* Copy over default setting since some might not get loaded in |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2078 |
* a networking environment. This ensures for example that the local |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2079 |
* signal_side stays when joining a network-server */ |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2080 |
_patches = _patches_newgame; |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2081 |
LoadSettings(_patch_settings, &_patches); |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2082 |
} |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2083 |
|
6573 | 2084 |
static void Save_PATS() |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2085 |
{ |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2086 |
SaveSettings(_patch_settings, &_patches); |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2087 |
} |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2088 |
|
6573 | 2089 |
void CheckConfig() |
1688
787400219027
(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
Darkvater
parents:
1643
diff
changeset
|
2090 |
{ |
2044
68ec4a2f2d79
(svn r2553) - Fix: [pathfinding] Remove old-old train pathfinder. Enhanced old pathfinder.
ludde
parents:
2008
diff
changeset
|
2091 |
// Increase old default values for pf_maxdepth and pf_maxlength |
68ec4a2f2d79
(svn r2553) - Fix: [pathfinding] Remove old-old train pathfinder. Enhanced old pathfinder.
ludde
parents:
2008
diff
changeset
|
2092 |
// to support big networks. |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2093 |
if (_patches_newgame.pf_maxdepth == 16 && _patches_newgame.pf_maxlength == 512) { |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2094 |
_patches_newgame.pf_maxdepth = 48; |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2095 |
_patches_newgame.pf_maxlength = 4096; |
2044
68ec4a2f2d79
(svn r2553) - Fix: [pathfinding] Remove old-old train pathfinder. Enhanced old pathfinder.
ludde
parents:
2008
diff
changeset
|
2096 |
} |
1688
787400219027
(svn r2192) - Add greater control to the 'message options' window. Now you can turn off the telegraphc ticker sound for summarized messages, or turn off news-messages altogether (you get a red blot to notify you though). The [<][>] set the settings in one way, while clicking on the option itself, cycles it. This commit also 'fixes' bugs [1166973], [1121484] and patch [1169930].
Darkvater
parents:
1643
diff
changeset
|
2097 |
} |
3112
05a599216d83
(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.
Darkvater
parents:
3052
diff
changeset
|
2098 |
|
6573 | 2099 |
void UpdatePatches() |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2100 |
{ |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2101 |
/* Since old(er) savegames don't have any patches saved, we initialise |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2102 |
* them with the default values just as it was in the old days. |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2103 |
* Also new games need this copying-over */ |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2104 |
_patches = _patches_newgame; /* backwards compatibility */ |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2105 |
} |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2106 |
|
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
2107 |
extern const ChunkHandler _setting_chunk_handlers[] = { |
3121
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2108 |
{ 'OPTS', Save_OPTS, Load_OPTS, CH_RIFF}, |
2e50f731567a
(svn r3726) - [6/6] Finalize conversion, finally save the patches struct.
Darkvater
parents:
3119
diff
changeset
|
2109 |
{ 'PATS', Save_PATS, Load_PATS, CH_RIFF | CH_LAST}, |
3112
05a599216d83
(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.
Darkvater
parents:
3052
diff
changeset
|
2110 |
}; |
3900
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2111 |
|
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2112 |
static bool IsSignedVarMemType(VarType vt) |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2113 |
{ |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2114 |
switch (GetVarMemType(vt)) { |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2115 |
case SLE_VAR_I8: |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2116 |
case SLE_VAR_I16: |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2117 |
case SLE_VAR_I32: |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2118 |
case SLE_VAR_I64: |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2119 |
return true; |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2120 |
} |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2121 |
return false; |
4984308f9125
(svn r4987) Feature: Merged YAPF into trunk. Thanks to devs for continuous support and users for testing.
KUDr
parents:
3874
diff
changeset
|
2122 |
} |