Mercurial > hg > openttd
annotate src/settings_gui.cpp @ 14258:a899d4e5ee1a draft
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
author | rubidium <rubidium@openttd.org> |
---|---|
date | Fri, 15 Jan 2010 16:41:15 +0000 |
parents | 96be446af436 |
children | 9caa7d57a6e3 |
rev | line source |
---|---|
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1 /* $Id$ */ |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
2 |
12778
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
3 /* |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
4 * This file is part of OpenTTD. |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
8 */ |
bc7926153e19
(svn r17248) -Fix: add GPL license notice where appropriate
rubidium <rubidium@openttd.org>
parents:
12771
diff
changeset
|
9 |
9111
d48433370037
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium <rubidium@openttd.org>
parents:
9092
diff
changeset
|
10 /** @file settings_gui.cpp GUI for settings. */ |
6420
080aae477331
(svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near
belugas <belugas@openttd.org>
parents:
6378
diff
changeset
|
11 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
12 #include "stdafx.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
13 #include "currency.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
14 #include "gui.h" |
8107
f65cf2bc3255
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium <rubidium@openttd.org>
parents:
8106
diff
changeset
|
15 #include "textbuf_gui.h" |
8116
9cc845deddfe
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium <rubidium@openttd.org>
parents:
8114
diff
changeset
|
16 #include "command_func.h" |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
17 #include "screenshot.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
18 #include "network/network.h" |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
19 #include "town.h" |
8208
ddc34919158f
(svn r11771) -Codechange: split settings.h into better separated headers.
rubidium <rubidium@openttd.org>
parents:
8191
diff
changeset
|
20 #include "settings_internal.h" |
6956
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
21 #include "newgrf_townname.h" |
8114
2d6af5d7a142
(svn r11675) -Codechange: split the string types from the string functions.
rubidium <rubidium@openttd.org>
parents:
8107
diff
changeset
|
22 #include "strings_func.h" |
8131
e300ac8001ae
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium <rubidium@openttd.org>
parents:
8130
diff
changeset
|
23 #include "window_func.h" |
8214
6385dffc0b37
(svn r11777) -Codechange: split the string header and make do not include it when it's not necessary.
rubidium <rubidium@openttd.org>
parents:
8213
diff
changeset
|
24 #include "string_func.h" |
8321
c361d51b1bb8
(svn r11886) -Add: sort the strings in languages dropdown
glx <glx@openttd.org>
parents:
8319
diff
changeset
|
25 #include "widgets/dropdown_type.h" |
8284
dbb7bfe0e95c
(svn r11848) -Codechange: New class-based drop down list functionality. Lists are now dynamically generated, and can include parameters, or be extended however needed.
peter1138 <peter1138@openttd.org>
parents:
8264
diff
changeset
|
26 #include "widgets/dropdown_func.h" |
14258
a899d4e5ee1a
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
rubidium <rubidium@openttd.org>
parents:
14155
diff
changeset
|
27 #include "openttd.h" |
10558
15517829eb17
(svn r14815) -Codechange: separate 'highscore' code from 'company' code
smatz <smatz@openttd.org>
parents:
10543
diff
changeset
|
28 #include "highscore.h" |
12678
ea203bb44a25
(svn r17133) -Codechange: generalise the code that searches for base graphics
rubidium <rubidium@openttd.org>
parents:
12676
diff
changeset
|
29 #include "base_media_base.h" |
12022
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
30 #include "company_base.h" |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
31 #include "company_func.h" |
13950
77bfe67f23bd
(svn r18486) -Fix: when switching language and you're getting a different font, recalculate the coordinates/sizes of the viewport signs. Otherwise it gets glitchy or abbreviated (in the smallmap)
rubidium <rubidium@openttd.org>
parents:
13834
diff
changeset
|
32 #include "viewport_func.h" |
14258
a899d4e5ee1a
(svn r18809) -Codechange/Cleanup: remove unneeded headers from some files, if a header require a header make it include that header
rubidium <rubidium@openttd.org>
parents:
14155
diff
changeset
|
33 #include "core/geometry_func.hpp" |
9581
9a3e1ee617ce
(svn r13618) -Codechange: move tar-specific declarations to separate file
smatz <smatz@openttd.org>
parents:
9533
diff
changeset
|
34 #include <map> |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
35 |
8264
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
36 #include "table/sprites.h" |
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
37 #include "table/strings.h" |
2495310e220f
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium <rubidium@openttd.org>
parents:
8224
diff
changeset
|
38 |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
39 static const StringID _units_dropdown[] = { |
12619
2f530108f787
(svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents:
12520
diff
changeset
|
40 STR_GAME_OPTIONS_MEASURING_UNITS_IMPERIAL, |
2f530108f787
(svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents:
12520
diff
changeset
|
41 STR_GAME_OPTIONS_MEASURING_UNITS_METRIC, |
2f530108f787
(svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents:
12520
diff
changeset
|
42 STR_GAME_OPTIONS_MEASURING_UNITS_SI, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
43 INVALID_STRING_ID |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
44 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
45 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
46 static const StringID _driveside_dropdown[] = { |
11730
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
47 STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT, |
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
48 STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
49 INVALID_STRING_ID |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
50 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
51 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
52 static const StringID _autosave_dropdown[] = { |
11730
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
53 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF, |
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
54 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH, |
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
55 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS, |
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
56 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS, |
a39da1e4c1f5
(svn r16118) -Change/cleanup: remove the hexadecimal 'in TTD the string had this ID' from 'some' strings and replace the string name with something more sensible.
rubidium <rubidium@openttd.org>
parents:
11697
diff
changeset
|
57 STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS, |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
58 INVALID_STRING_ID, |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
59 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
60 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
61 static StringID *BuildDynamicDropdown(StringID base, int num) |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
62 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
63 static StringID buf[32 + 1]; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
64 StringID *p = buf; |
8969
01cc3ee6ecb1
(svn r12761) -Codechange: lots of minor whitespace coding style fixes around operators.
rubidium <rubidium@openttd.org>
parents:
8881
diff
changeset
|
65 while (--num >= 0) *p++ = base++; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
66 *p = INVALID_STRING_ID; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
67 return buf; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
68 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
69 |
6956
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
70 int _nb_orig_names = SPECSTR_TOWNNAME_LAST - SPECSTR_TOWNNAME_START + 1; |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
71 static StringID *_grf_names = NULL; |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
72 static int _nb_grf_names = 0; |
6797
d48143c8467b
(svn r10036) -Add: sort the strings in town names dropdown
glx <glx@openttd.org>
parents:
6730
diff
changeset
|
73 |
8323
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
74 void InitGRFTownGeneratorNames() |
6797
d48143c8467b
(svn r10036) -Add: sort the strings in town names dropdown
glx <glx@openttd.org>
parents:
6730
diff
changeset
|
75 { |
6956
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
76 free(_grf_names); |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
77 _grf_names = GetGRFTownNameList(); |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
78 _nb_grf_names = 0; |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
79 for (StringID *s = _grf_names; *s != INVALID_STRING_ID; s++) _nb_grf_names++; |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
80 } |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
81 |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
82 static inline StringID TownName(int town_name) |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
83 { |
12619
2f530108f787
(svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents:
12520
diff
changeset
|
84 if (town_name < _nb_orig_names) return STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH + town_name; |
6956
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
85 town_name -= _nb_orig_names; |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
86 if (town_name < _nb_grf_names) return _grf_names[town_name]; |
6d300d04ac5e
(svn r10211) -Feature: [NewGRF] Add support for action 0F
glx <glx@openttd.org>
parents:
6950
diff
changeset
|
87 return STR_UNDEFINED; |
6797
d48143c8467b
(svn r10036) -Add: sort the strings in town names dropdown
glx <glx@openttd.org>
parents:
6730
diff
changeset
|
88 } |
d48143c8467b
(svn r10036) -Add: sort the strings in town names dropdown
glx <glx@openttd.org>
parents:
6730
diff
changeset
|
89 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6012
diff
changeset
|
90 static int GetCurRes() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
91 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
92 int i; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
93 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
94 for (i = 0; i != _num_resolutions; i++) { |
12262
fd3b92f848cc
(svn r16677) -Codechange: Dimension width and height are unsigned.
alberth <alberth@openttd.org>
parents:
12200
diff
changeset
|
95 if ((int)_resolutions[i].width == _screen.width && |
fd3b92f848cc
(svn r16677) -Codechange: Dimension width and height are unsigned.
alberth <alberth@openttd.org>
parents:
12200
diff
changeset
|
96 (int)_resolutions[i].height == _screen.height) { |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
97 break; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
98 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
99 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
100 return i; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
101 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
102 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
103 /** Widgets of the game options menu */ |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
104 enum GameOptionsWidgets { |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
105 GOW_BACKGROUND, ///< Background of the window |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
106 GOW_CURRENCY_DROPDOWN, ///< Currency dropdown |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
107 GOW_DISTANCE_DROPDOWN, ///< Measuring unit dropdown |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
108 GOW_ROADSIDE_DROPDOWN, ///< Dropdown to select the road side (to set the right side ;)) |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
109 GOW_TOWNNAME_DROPDOWN, ///< Town name dropdown |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
110 GOW_AUTOSAVE_DROPDOWN, ///< Dropdown to say how often to autosave |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
111 GOW_LANG_DROPDOWN, ///< Language dropdown |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
112 GOW_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
113 GOW_FULLSCREEN_BUTTON, ///< Toggle fullscreen |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
114 GOW_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG! |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
115 GOW_BASE_GRF_DROPDOWN, ///< Use to select a base GRF |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
116 GOW_BASE_GRF_STATUS, ///< Info about missing files etc. |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
117 GOW_BASE_GRF_DESCRIPTION, ///< Description of selected base GRF |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
118 GOW_BASE_SFX_DROPDOWN, ///< Use to select a base SFX |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
119 GOW_BASE_SFX_DESCRIPTION, ///< Description of selected base SFX |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
120 GOW_BASE_MUSIC_DROPDOWN, ///< Use to select a base music set |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
121 GOW_BASE_MUSIC_STATUS, ///< Info about corrupted files etc. |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
122 GOW_BASE_MUSIC_DESCRIPTION, ///< Description of selected base music set |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
123 }; |
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
124 |
8321
c361d51b1bb8
(svn r11886) -Add: sort the strings in languages dropdown
glx <glx@openttd.org>
parents:
8319
diff
changeset
|
125 /** |
8323
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
126 * Update/redraw the townnames dropdown |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
127 * @param w the window the dropdown belongs to |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
128 * @param sel the currently selected townname generator |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
129 */ |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
130 static void ShowTownnameDropdown(Window *w, int sel) |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
131 { |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
132 typedef std::map<StringID, int, StringIDCompare> TownList; |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
133 TownList townnames; |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
134 |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
135 /* Add and sort original townnames generators */ |
12619
2f530108f787
(svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents:
12520
diff
changeset
|
136 for (int i = 0; i < _nb_orig_names; i++) townnames[STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH + i] = i; |
8323
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
137 |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
138 /* Add and sort newgrf townnames generators */ |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
139 for (int i = 0; i < _nb_grf_names; i++) townnames[_grf_names[i]] = _nb_orig_names + i; |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
140 |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
141 DropDownList *list = new DropDownList(); |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
142 for (TownList::iterator it = townnames.begin(); it != townnames.end(); it++) { |
11973
e17a54c88806
(svn r16379) -Codechange: remove GetNumTowns(), GetNumIndustries() and GetActiveCompanyCount(), use PoolItem::GetNumItems() instead
smatz <smatz@openttd.org>
parents:
11939
diff
changeset
|
143 list->push_back(new DropDownListStringItem((*it).first, (*it).second, !(_game_mode == GM_MENU || Town::GetNumItems() == 0 || (*it).second == sel))); |
8323
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
144 } |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
145 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
146 ShowDropDownList(w, list, sel, GOW_TOWNNAME_DROPDOWN); |
8323
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
147 } |
803ed468fc77
(svn r11888) -Codechange: simplify sorting of the strings in town names dropdown
glx <glx@openttd.org>
parents:
8321
diff
changeset
|
148 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6012
diff
changeset
|
149 static void ShowCustCurrency(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
150 |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
151 template <class T> |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
152 static void ShowSetMenu(Window *w, int widget) |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
153 { |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
154 int n = T::GetNumSets(); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
155 int current = T::GetIndexOfUsedSet(); |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
156 |
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
157 DropDownList *list = new DropDownList(); |
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
158 for (int i = 0; i < n; i++) { |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
159 list->push_back(new DropDownListCharStringItem(T::GetSet(i)->name, i, (_game_mode == GM_MENU) ? false : (current != i))); |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
160 } |
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
161 |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
162 ShowDropDownList(w, list, current, widget); |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
163 } |
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
164 |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
165 struct GameOptionsWindow : Window { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9359
diff
changeset
|
166 GameSettings *opt; |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
167 bool reload; |
9346
0c181c088ed8
(svn r13242) -Codechange: remove _opt_ptr.
rubidium <rubidium@openttd.org>
parents:
9334
diff
changeset
|
168 |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
169 GameOptionsWindow(const WindowDesc *desc) : Window() |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
170 { |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9359
diff
changeset
|
171 this->opt = (_game_mode == GM_MENU) ? &_settings_newgame : &_settings_game; |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
172 this->reload = false; |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
173 |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
174 this->InitNested(desc); |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
175 this->OnInvalidateData(0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
176 } |
8190
eb210e97738e
(svn r11753) -Codechange: re-indent the switch case structures, as to be more code style oriented.
belugas <belugas@openttd.org>
parents:
8189
diff
changeset
|
177 |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
178 ~GameOptionsWindow() |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
179 { |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
180 DeleteWindowById(WC_CUSTOM_CURRENCY, 0); |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
181 if (this->reload) _switch_mode = SM_MENU; |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
182 } |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
183 |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
184 virtual void SetStringParameters(int widget) const |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
185 { |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
186 switch (widget) { |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
187 case GOW_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break; |
12619
2f530108f787
(svn r17062) -Change: unify the naming of some 125 strings
rubidium <rubidium@openttd.org>
parents:
12520
diff
changeset
|
188 case GOW_DISTANCE_DROPDOWN: SetDParam(0, STR_GAME_OPTIONS_MEASURING_UNITS_IMPERIAL + this->opt->locale.units); break; |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
189 case GOW_ROADSIDE_DROPDOWN: SetDParam(0, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT + this->opt->vehicle.road_side); break; |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
190 case GOW_TOWNNAME_DROPDOWN: SetDParam(0, TownName(this->opt->game_creation.town_name)); break; |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
191 case GOW_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break; |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
192 case GOW_LANG_DROPDOWN: SetDParam(0, SPECSTR_LANGUAGE_START + _dynlang.curr); break; |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
193 case GOW_RESOLUTION_DROPDOWN: SetDParam(0, GetCurRes() == _num_resolutions ? STR_RES_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break; |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
194 case GOW_SCREENSHOT_DROPDOWN: SetDParam(0, SPECSTR_SCREENSHOT_START + _cur_screenshot_format); break; |
12678
ea203bb44a25
(svn r17133) -Codechange: generalise the code that searches for base graphics
rubidium <rubidium@openttd.org>
parents:
12676
diff
changeset
|
195 case GOW_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name); break; |
12771
7a25de72eb71
(svn r17241) -Change: make a distinction between missing and corrupted data files. If (at least) one data file is missing do not consider the set to be useable. Do also no autodetect sets with missing files.
rubidium <rubidium@openttd.org>
parents:
12704
diff
changeset
|
196 case GOW_BASE_GRF_STATUS: SetDParam(0, BaseGraphics::GetUsedSet()->GetNumInvalid()); break; |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
197 case GOW_BASE_SFX_DROPDOWN: SetDParamStr(0, BaseSounds::GetUsedSet()->name); break; |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
198 case GOW_BASE_MUSIC_DROPDOWN: SetDParamStr(0, BaseMusic::GetUsedSet()->name); break; |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
199 case GOW_BASE_MUSIC_STATUS: SetDParam(0, BaseMusic::GetUsedSet()->GetNumInvalid()); break; |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
200 } |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
201 } |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
202 |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
203 virtual void OnPaint() |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
204 { |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
205 this->DrawWidgets(); |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
206 } |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
207 |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
208 virtual void DrawWidget(const Rect &r, int widget) const |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
209 { |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
210 switch (widget) { |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
211 case GOW_BASE_GRF_DESCRIPTION: |
13281
e241d1485669
(svn r17790) -Feature: translatable base sound/graphics set descriptions
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
212 SetDParamStr(0, BaseGraphics::GetUsedSet()->GetDescription(GetCurrentLanguageIsoCode())); |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
213 DrawStringMultiLine(r.left, r.right, r.top, UINT16_MAX, STR_BLACK_RAW_STRING); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
214 break; |
8190
eb210e97738e
(svn r11753) -Codechange: re-indent the switch case structures, as to be more code style oriented.
belugas <belugas@openttd.org>
parents:
8189
diff
changeset
|
215 |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
216 case GOW_BASE_SFX_DESCRIPTION: |
13281
e241d1485669
(svn r17790) -Feature: translatable base sound/graphics set descriptions
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
217 SetDParamStr(0, BaseSounds::GetUsedSet()->GetDescription(GetCurrentLanguageIsoCode())); |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
218 DrawStringMultiLine(r.left, r.right, r.top, UINT16_MAX, STR_BLACK_RAW_STRING); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
219 break; |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
220 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
221 case GOW_BASE_MUSIC_DESCRIPTION: |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
222 SetDParamStr(0, BaseMusic::GetUsedSet()->GetDescription(GetCurrentLanguageIsoCode())); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
223 DrawStringMultiLine(r.left, r.right, r.top, UINT16_MAX, STR_BLACK_RAW_STRING); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
224 break; |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
225 } |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
226 } |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
227 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
228 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
229 { |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
230 switch (widget) { |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
231 case GOW_BASE_GRF_DESCRIPTION: |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
232 /* Find the biggest description for the default size. */ |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
233 for (int i = 0; i < BaseGraphics::GetNumSets(); i++) { |
13281
e241d1485669
(svn r17790) -Feature: translatable base sound/graphics set descriptions
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
234 SetDParamStr(0, BaseGraphics::GetSet(i)->GetDescription(GetCurrentLanguageIsoCode())); |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
235 size->height = max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
236 } |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
237 break; |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
238 |
12704
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
239 case GOW_BASE_GRF_STATUS: |
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
240 /* Find the biggest description for the default size. */ |
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
241 for (int i = 0; i < BaseGraphics::GetNumSets(); i++) { |
12771
7a25de72eb71
(svn r17241) -Change: make a distinction between missing and corrupted data files. If (at least) one data file is missing do not consider the set to be useable. Do also no autodetect sets with missing files.
rubidium <rubidium@openttd.org>
parents:
12704
diff
changeset
|
242 uint invalid_files = BaseGraphics::GetSet(i)->GetNumInvalid(); |
7a25de72eb71
(svn r17241) -Change: make a distinction between missing and corrupted data files. If (at least) one data file is missing do not consider the set to be useable. Do also no autodetect sets with missing files.
rubidium <rubidium@openttd.org>
parents:
12704
diff
changeset
|
243 if (invalid_files == 0) continue; |
12704
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
244 |
12771
7a25de72eb71
(svn r17241) -Change: make a distinction between missing and corrupted data files. If (at least) one data file is missing do not consider the set to be useable. Do also no autodetect sets with missing files.
rubidium <rubidium@openttd.org>
parents:
12704
diff
changeset
|
245 SetDParam(0, invalid_files); |
12704
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
246 *size = maxdim(*size, GetStringBoundingBox(STR_GAME_OPTIONS_BASE_GRF_STATUS)); |
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
247 } |
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
248 break; |
dba29babe01f
(svn r17167) -Fix: don't resize the 'base grf status' text part in the game options window when there is no base graphics set that misses files.
rubidium <rubidium@openttd.org>
parents:
12684
diff
changeset
|
249 |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
250 case GOW_BASE_SFX_DESCRIPTION: |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
251 /* Find the biggest description for the default size. */ |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
252 for (int i = 0; i < BaseSounds::GetNumSets(); i++) { |
13281
e241d1485669
(svn r17790) -Feature: translatable base sound/graphics set descriptions
rubidium <rubidium@openttd.org>
parents:
13277
diff
changeset
|
253 SetDParamStr(0, BaseSounds::GetSet(i)->GetDescription(GetCurrentLanguageIsoCode())); |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
254 size->height = max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
255 } |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
256 break; |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
257 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
258 case GOW_BASE_MUSIC_DESCRIPTION: |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
259 /* Find the biggest description for the default size. */ |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
260 for (int i = 0; i < BaseMusic::GetNumSets(); i++) { |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
261 SetDParamStr(0, BaseMusic::GetSet(i)->GetDescription(GetCurrentLanguageIsoCode())); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
262 size->height = max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
263 } |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
264 break; |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
265 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
266 case GOW_BASE_MUSIC_STATUS: |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
267 /* Find the biggest description for the default size. */ |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
268 for (int i = 0; i < BaseMusic::GetNumSets(); i++) { |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
269 uint invalid_files = BaseMusic::GetSet(i)->GetNumInvalid(); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
270 if (invalid_files == 0) continue; |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
271 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
272 SetDParam(0, invalid_files); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
273 *size = maxdim(*size, GetStringBoundingBox(STR_GAME_OPTIONS_BASE_MUSIC_STATUS)); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
274 } |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
275 break; |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
276 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
277 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
278 |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
279 virtual void OnClick(Point pt, int widget) |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
280 { |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
281 switch (widget) { |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
282 case GOW_CURRENCY_DROPDOWN: // Setup currencies dropdown |
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
283 ShowDropDownMenu(this, BuildCurrencyDropdown(), this->opt->locale.currency, GOW_CURRENCY_DROPDOWN, _game_mode == GM_MENU ? 0 : ~GetMaskOfAllowedCurrencies(), 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
284 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
285 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
286 case GOW_DISTANCE_DROPDOWN: // Setup distance unit dropdown |
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
287 ShowDropDownMenu(this, _units_dropdown, this->opt->locale.units, GOW_DISTANCE_DROPDOWN, 0, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
288 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
289 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
290 case GOW_ROADSIDE_DROPDOWN: { // Setup road-side dropdown |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
291 int i = 0; |
9298
b2a46cf9b23e
(svn r13166) -Codechange: CmdSetRoadDriveSide belongs in road_cmd.cpp, not settings_gui.cpp.
rubidium <rubidium@openttd.org>
parents:
9291
diff
changeset
|
292 extern bool RoadVehiclesAreBuilt(); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
293 |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
294 /* You can only change the drive side if you are in the menu or ingame with |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
295 * no vehicles present. In a networking game only the server can change it */ |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
296 if ((_game_mode != GM_MENU && RoadVehiclesAreBuilt()) || (_networking && !_network_server)) { |
9358
12f4585b2124
(svn r13255) -Codechange: move _opt to _settings.
rubidium <rubidium@openttd.org>
parents:
9354
diff
changeset
|
297 i = (-1) ^ (1 << this->opt->vehicle.road_side); // disable the other value |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
298 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
299 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
300 ShowDropDownMenu(this, _driveside_dropdown, this->opt->vehicle.road_side, GOW_ROADSIDE_DROPDOWN, i, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
301 } break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
302 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
303 case GOW_TOWNNAME_DROPDOWN: // Setup townname dropdown |
9358
12f4585b2124
(svn r13255) -Codechange: move _opt to _settings.
rubidium <rubidium@openttd.org>
parents:
9354
diff
changeset
|
304 ShowTownnameDropdown(this, this->opt->game_creation.town_name); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
305 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
306 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
307 case GOW_AUTOSAVE_DROPDOWN: // Setup autosave dropdown |
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
308 ShowDropDownMenu(this, _autosave_dropdown, _settings_client.gui.autosave, GOW_AUTOSAVE_DROPDOWN, 0, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
309 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
310 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
311 case GOW_LANG_DROPDOWN: { // Setup interface language dropdown |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
312 typedef std::map<StringID, int, StringIDCompare> LangList; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
313 |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
314 /* Sort language names */ |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
315 LangList langs; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
316 for (int i = 0; i < _dynlang.num; i++) langs[SPECSTR_LANGUAGE_START + i] = i; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
317 |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
318 DropDownList *list = new DropDownList(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
319 for (LangList::iterator it = langs.begin(); it != langs.end(); it++) { |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
320 list->push_back(new DropDownListStringItem((*it).first, (*it).second, false)); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
321 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
322 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
323 ShowDropDownList(this, list, _dynlang.curr, GOW_LANG_DROPDOWN); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
324 } break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
325 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
326 case GOW_RESOLUTION_DROPDOWN: // Setup resolution dropdown |
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
327 ShowDropDownMenu(this, BuildDynamicDropdown(SPECSTR_RESOLUTION_START, _num_resolutions), GetCurRes(), GOW_RESOLUTION_DROPDOWN, 0, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
328 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
329 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
330 case GOW_FULLSCREEN_BUTTON: // Click fullscreen on/off |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
331 /* try to toggle full-screen on/off */ |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
332 if (!ToggleFullScreen(!_fullscreen)) { |
13419
ddfb6a69b9c3
(svn r17928) -Codechange: ShowErrorMessage() now takes the summary string before the details string.
alberth <alberth@openttd.org>
parents:
13364
diff
changeset
|
333 ShowErrorMessage(STR_ERROR_FULLSCREEN_FAILED, INVALID_STRING_ID, 0, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
334 } |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
335 this->SetWidgetLoweredState(GOW_FULLSCREEN_BUTTON, _fullscreen); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
336 this->SetDirty(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
337 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
338 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
339 case GOW_SCREENSHOT_DROPDOWN: // Setup screenshot format dropdown |
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
340 ShowDropDownMenu(this, BuildDynamicDropdown(SPECSTR_SCREENSHOT_START, _num_screenshot_formats), _cur_screenshot_format, GOW_SCREENSHOT_DROPDOWN, 0, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
341 break; |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
342 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
343 case GOW_BASE_GRF_DROPDOWN: |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
344 ShowSetMenu<BaseGraphics>(this, GOW_BASE_GRF_DROPDOWN); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
345 break; |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
346 |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
347 case GOW_BASE_SFX_DROPDOWN: |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
348 ShowSetMenu<BaseSounds>(this, GOW_BASE_SFX_DROPDOWN); |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
349 break; |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
350 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
351 case GOW_BASE_MUSIC_DROPDOWN: |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
352 ShowSetMenu<BaseMusic>(this, GOW_BASE_MUSIC_DROPDOWN); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
353 break; |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
354 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
355 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
356 |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
357 /** |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
358 * Set the base media set. |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
359 * @param index the index of the media set |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
360 * @tparam T class of media set |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
361 */ |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
362 template <class T> |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
363 void SetMediaSet(int index) |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
364 { |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
365 if (_game_mode == GM_MENU) { |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
366 const char *name = T::GetSet(index)->name; |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
367 |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
368 free(const_cast<char *>(T::ini_set)); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
369 T::ini_set = strdup(name); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
370 |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
371 T::SetSet(name); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
372 this->reload = true; |
13169
1f44cefc7825
(svn r17674) -Codechange: replace SetDirty + OnInvalidateData with InvalidateData (which does the same). Also call InvalidateData in a few cases where that was actually meant.
rubidium <rubidium@openttd.org>
parents:
13139
diff
changeset
|
373 this->InvalidateData(); |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
374 } |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
375 } |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
376 |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
377 virtual void OnDropdownSelect(int widget, int index) |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
378 { |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
379 switch (widget) { |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
380 case GOW_CURRENCY_DROPDOWN: // Currency |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
381 if (index == CUSTOM_CURRENCY_ID) ShowCustCurrency(); |
9466
f81fe8c0065a
(svn r13386) -Fix: global currency/units setting being overriden when loading a savegame.
rubidium <rubidium@openttd.org>
parents:
9421
diff
changeset
|
382 this->opt->locale.currency = index; |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
383 MarkWholeScreenDirty(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
384 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
385 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
386 case GOW_DISTANCE_DROPDOWN: // Measuring units |
9466
f81fe8c0065a
(svn r13386) -Fix: global currency/units setting being overriden when loading a savegame.
rubidium <rubidium@openttd.org>
parents:
9421
diff
changeset
|
387 this->opt->locale.units = index; |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
388 MarkWholeScreenDirty(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
389 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
390 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
391 case GOW_ROADSIDE_DROPDOWN: // Road side |
11075
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
392 if (this->opt->vehicle.road_side != index) { // only change if setting changed |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
393 uint i; |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
394 if (GetSettingFromName("vehicle.road_side", &i) == NULL) NOT_REACHED(); |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
395 SetSettingValue(i, index); |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
396 MarkWholeScreenDirty(); |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
397 } |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
398 break; |
adc269893bd0
(svn r15416) -Fix (r15412): revert the removal of the road side drop down box handling.
rubidium <rubidium@openttd.org>
parents:
11071
diff
changeset
|
399 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
400 case GOW_TOWNNAME_DROPDOWN: // Town names |
11973
e17a54c88806
(svn r16379) -Codechange: remove GetNumTowns(), GetNumIndustries() and GetActiveCompanyCount(), use PoolItem::GetNumItems() instead
smatz <smatz@openttd.org>
parents:
11939
diff
changeset
|
401 if (_game_mode == GM_MENU || Town::GetNumItems() == 0) { |
9358
12f4585b2124
(svn r13255) -Codechange: move _opt to _settings.
rubidium <rubidium@openttd.org>
parents:
9354
diff
changeset
|
402 this->opt->game_creation.town_name = index; |
13034
6eb3f749890a
(svn r17532) -Codechange: Rename several Invalidate functions to SetDirty for more consistency and distinguishability.
frosch <frosch@openttd.org>
parents:
12880
diff
changeset
|
403 SetWindowDirty(WC_GAME_OPTIONS, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
404 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
405 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
406 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
407 case GOW_AUTOSAVE_DROPDOWN: // Autosave options |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9359
diff
changeset
|
408 _settings_client.gui.autosave = index; |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
409 this->SetDirty(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
410 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
411 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
412 case GOW_LANG_DROPDOWN: // Change interface language |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
413 ReadLanguagePack(index); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
414 CheckForMissingGlyphsInLoadedLanguagePack(); |
13950
77bfe67f23bd
(svn r18486) -Fix: when switching language and you're getting a different font, recalculate the coordinates/sizes of the viewport signs. Otherwise it gets glitchy or abbreviated (in the smallmap)
rubidium <rubidium@openttd.org>
parents:
13834
diff
changeset
|
415 UpdateAllVirtCoords(); |
12272
c8708dfd0118
(svn r16687) -Codechange: Perform re-initialization of windows with nested widgets after a language change.
alberth <alberth@openttd.org>
parents:
12262
diff
changeset
|
416 ReInitAllWindows(); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
417 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
418 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
419 case GOW_RESOLUTION_DROPDOWN: // Change resolution |
9533
176a9fe1018f
(svn r13537) -Fix [FS#2090](r13523): QSortT won't work this way, use Dimension instead of uint16[2] for resolutions
smatz <smatz@openttd.org>
parents:
9466
diff
changeset
|
420 if (index < _num_resolutions && ChangeResInGame(_resolutions[index].width, _resolutions[index].height)) { |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
421 this->SetDirty(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
422 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
423 break; |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
424 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
425 case GOW_SCREENSHOT_DROPDOWN: // Change screenshot format |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
426 SetScreenshotFormat(index); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
427 this->SetDirty(); |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
428 break; |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
429 |
11479
ca01beb7e155
(svn r15840) -Codechange: complete the game option window widget enum and unify the naming.
rubidium <rubidium@openttd.org>
parents:
11474
diff
changeset
|
430 case GOW_BASE_GRF_DROPDOWN: |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
431 this->SetMediaSet<BaseGraphics>(index); |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
432 break; |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
433 |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
434 case GOW_BASE_SFX_DROPDOWN: |
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
435 this->SetMediaSet<BaseSounds>(index); |
11049
ed93627e213f
(svn r15389) -Feature: Add ability to select which base graphics set is used from the Game Options window. The change takes effect when the window is closed. This option can only be used from the intro menu, as reloading graphics during a game may cause issues.
peter1138 <peter1138@openttd.org>
parents:
11000
diff
changeset
|
436 break; |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
437 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
438 case GOW_BASE_MUSIC_DROPDOWN: |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
439 this->SetMediaSet<BaseMusic>(index); |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
440 break; |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
441 } |
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
442 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
443 |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
444 virtual void OnInvalidateData(int data) |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
445 { |
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
446 this->SetWidgetLoweredState(GOW_FULLSCREEN_BUTTON, _fullscreen); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
447 |
12678
ea203bb44a25
(svn r17133) -Codechange: generalise the code that searches for base graphics
rubidium <rubidium@openttd.org>
parents:
12676
diff
changeset
|
448 bool missing_files = BaseGraphics::GetUsedSet()->GetNumMissing() == 0; |
13072
75bd67594af2
(svn r17572) -Codechange: Use the Window::GetWidget() function to access nested widgets through the nested_array.
alberth <alberth@openttd.org>
parents:
13034
diff
changeset
|
449 this->GetWidget<NWidgetCore>(GOW_BASE_GRF_STATUS)->SetDataTip(missing_files ? STR_EMPTY : STR_GAME_OPTIONS_BASE_GRF_STATUS, STR_NULL); |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
450 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
451 missing_files = BaseMusic::GetUsedSet()->GetNumInvalid() == 0; |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
452 this->GetWidget<NWidgetCore>(GOW_BASE_MUSIC_STATUS)->SetDataTip(missing_files ? STR_EMPTY : STR_GAME_OPTIONS_BASE_MUSIC_STATUS, STR_NULL); |
12517
71027f744a29
(svn r16954) -Codechange: make the Game Options window use the nested widget system.
rubidium <rubidium@openttd.org>
parents:
12493
diff
changeset
|
453 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
454 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
455 |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
456 static const NWidgetPart _nested_game_options_widgets[] = { |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
457 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
458 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
459 NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
460 EndContainer(), |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
461 NWidget(WWT_PANEL, COLOUR_GREY, GOW_BACKGROUND), SetPIP(6, 6, 10), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
462 NWidget(NWID_HORIZONTAL), SetPIP(10, 10, 10), |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
463 NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
464 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
465 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_CURRENCY_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
466 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
467 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
468 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_ROADSIDE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
469 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
470 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_AUTOSAVE_FRAME, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
471 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_AUTOSAVE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
472 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
473 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_RESOLUTION, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
474 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_RESOLUTION_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_RESOLUTION_TOOLTIP), SetFill(1, 0), SetPadding(0, 0, 3, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
475 NWidget(NWID_HORIZONTAL), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
476 NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FULLSCREEN, STR_NULL), |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13665
diff
changeset
|
477 NWidget(WWT_TEXTBTN, COLOUR_GREY, GOW_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
478 EndContainer(), |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
479 EndContainer(), |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
480 EndContainer(), |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
481 |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
482 NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
483 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_MEASURING_UNITS_FRAME, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
484 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_DISTANCE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_MEASURING_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
485 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
486 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_TOWN_NAMES_FRAME, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
487 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_TOWNNAME_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
488 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
489 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_LANGUAGE, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
490 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_LANG_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_LANGUAGE_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
491 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
492 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_SCREENSHOT_FORMAT, STR_NULL), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
493 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_SCREENSHOT_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP), SetFill(1, 0), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
494 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
495 NWidget(NWID_SPACER), SetMinimalSize(0, 0), SetFill(0, 1), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
496 EndContainer(), |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
497 EndContainer(), |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
498 |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
499 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_GRF, STR_NULL), SetPadding(0, 10, 0, 10), |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
500 NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 0), |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13665
diff
changeset
|
501 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_BASE_GRF_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_GRF_TOOLTIP), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
502 NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_GRF_STATUS), SetMinimalSize(150, 12), SetDataTip(STR_EMPTY, STR_NULL), SetFill(1, 0), |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
503 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
504 NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_GRF_DESCRIPTION), SetMinimalSize(330, 0), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 0, 0), |
11939
577d93a5e10d
(svn r16342) -Feature(tte): Display base graphics description in game options window.
frosch <frosch@openttd.org>
parents:
11913
diff
changeset
|
505 EndContainer(), |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
506 |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
507 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_SFX, STR_NULL), SetPadding(0, 10, 0, 10), |
13670
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13665
diff
changeset
|
508 NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 0), |
2e7ff39e2ec6
(svn r18195) -Codechange: move the child padding calculation/handling to WWT_FRAME
rubidium <rubidium@openttd.org>
parents:
13665
diff
changeset
|
509 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_BASE_SFX_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_SFX_TOOLTIP), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
510 NWidget(NWID_SPACER), SetFill(1, 0), |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
511 EndContainer(), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
512 NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_SFX_DESCRIPTION), SetMinimalSize(330, 0), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 0, 0), |
12684
b056ac99f230
(svn r17139) -Change: add the concept of sound sets
rubidium <rubidium@openttd.org>
parents:
12683
diff
changeset
|
513 EndContainer(), |
14065
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
514 |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
515 NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_MUSIC, STR_NULL), SetPadding(0, 10, 0, 10), |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
516 NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 0), |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
517 NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_BASE_MUSIC_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP), |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
518 NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_MUSIC_STATUS), SetMinimalSize(150, 12), SetDataTip(STR_EMPTY, STR_NULL), SetFill(1, 0), |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
519 EndContainer(), |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
520 NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_MUSIC_DESCRIPTION), SetMinimalSize(330, 0), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP), SetFill(1, 0), SetPadding(6, 0, 0, 0), |
a5fb37f9f59d
(svn r18608) -Change: add the concept of music sets
rubidium <rubidium@openttd.org>
parents:
14037
diff
changeset
|
521 EndContainer(), |
11513
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
522 EndContainer(), |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
523 }; |
060289e229f7
(svn r15874) -Codechange: New widgets for the game options window.
yexo <yexo@openttd.org>
parents:
11507
diff
changeset
|
524 |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
525 static const WindowDesc _game_options_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
526 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5688
diff
changeset
|
527 WC_GAME_OPTIONS, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
528 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13509
diff
changeset
|
529 _nested_game_options_widgets, lengthof(_nested_game_options_widgets) |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
530 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
531 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
532 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6012
diff
changeset
|
533 void ShowGameOptions() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
534 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
535 DeleteWindowById(WC_GAME_OPTIONS, 0); |
9291
f9b184a11fea
(svn r13158) -Codechange: make a class of the GameOptionsWindow.
rubidium <rubidium@openttd.org>
parents:
9273
diff
changeset
|
536 new GameOptionsWindow(&_game_options_desc); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
537 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
538 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6012
diff
changeset
|
539 extern void StartupEconomy(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
540 |
11505
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
541 |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
542 /* Names of the game difficulty settings window */ |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
543 enum GameDifficultyWidgets { |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
544 GDW_LVL_EASY, |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
545 GDW_LVL_MEDIUM, |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
546 GDW_LVL_HARD, |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
547 GDW_LVL_CUSTOM, |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
548 GDW_HIGHSCORE, |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
549 GDW_ACCEPT, |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
550 GDW_CANCEL, |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
551 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
552 GDW_OPTIONS_START, |
11505
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
553 }; |
fba50a5a947b
(svn r15866) -Codechange: New widgets for the difficulty window.
yexo <yexo@openttd.org>
parents:
11479
diff
changeset
|
554 |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
555 void SetDifficultyLevel(int mode, DifficultySettings *gm_opt); |
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
556 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
557 class GameDifficultyWindow : public Window { |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
558 private: |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
559 /* Temporary holding place of values in the difficulty window until 'Save' is clicked */ |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9359
diff
changeset
|
560 GameSettings opt_mod_temp; |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
561 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
562 public: |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
563 /** The number of difficulty settings */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
564 static const uint GAME_DIFFICULTY_NUM = 18; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
565 /** The number of widgets per difficulty setting */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
566 static const uint WIDGETS_PER_DIFFICULTY = 3; |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
567 |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
568 GameDifficultyWindow(const WindowDesc *desc) : Window() |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
569 { |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
570 this->InitNested(desc); |
13131
f78f54c02ea0
(svn r17636) -Codechange: make the difficulty setting window nested
rubidium <rubidium@openttd.org>
parents:
13088
diff
changeset
|
571 |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
572 /* Copy current settings (ingame or in intro) to temporary holding place |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
573 * change that when setting stuff, copy back on clicking 'OK' */ |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9359
diff
changeset
|
574 this->opt_mod_temp = (_game_mode == GM_MENU) ? _settings_newgame : _settings_game; |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
575 /* Setup disabled buttons when creating window |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
576 * disable all other difficulty buttons during gameplay except for 'custom' */ |
13139
3064addfd0ec
(svn r17644) -Fix [FS#3219]: some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor.
rubidium <rubidium@openttd.org>
parents:
13136
diff
changeset
|
577 this->SetWidgetsDisabledState(_game_mode != GM_MENU, |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
578 GDW_LVL_EASY, |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
579 GDW_LVL_MEDIUM, |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
580 GDW_LVL_HARD, |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
581 GDW_LVL_CUSTOM, |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
582 WIDGET_LIST_END); |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
583 this->SetWidgetDisabledState(GDW_HIGHSCORE, _game_mode == GM_EDITOR || _networking); // highscore chart in multiplayer |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
584 this->SetWidgetDisabledState(GDW_ACCEPT, _networking && !_network_server); // Save-button in multiplayer (and if client) |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
585 this->LowerWidget(GDW_LVL_EASY + this->opt_mod_temp.difficulty.diff_level); |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
586 this->OnInvalidateData(); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
587 } |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
588 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
589 virtual void SetStringParameters(int widget) const |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
590 { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
591 widget -= GDW_OPTIONS_START; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
592 if (widget < 0 || (widget % 3) != 2) return; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
593 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
594 widget /= 3; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
595 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
596 uint i; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
597 const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i) + widget; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
598 int32 value = (int32)ReadValue(GetVariableAddress(&this->opt_mod_temp, &sd->save), sd->save.conv); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
599 SetDParam(0, sd->desc.str + value); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
600 } |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
601 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
602 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
603 { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
604 /* Only for the 'descriptions' */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
605 int index = widget - GDW_OPTIONS_START; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
606 if (index < 0 || (index % 3) != 2) return; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
607 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
608 index /= 3; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
609 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
610 uint i; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
611 const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i) + index; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
612 const SettingDescBase *sdb = &sd->desc; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
613 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
614 /* Get the string and try all strings from the smallest to the highest value */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
615 StringID str = this->GetWidget<NWidgetCore>(widget)->widget_data; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
616 for (int32 value = sdb->min; (uint32)value <= sdb->max; value += sdb->interval) { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
617 SetDParam(0, sdb->str + value); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
618 *size = maxdim(*size, GetStringBoundingBox(str)); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
619 } |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
620 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
621 |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
622 virtual void OnPaint() |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
623 { |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9246
diff
changeset
|
624 this->DrawWidgets(); |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
625 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
626 |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
627 virtual void OnClick(Point pt, int widget) |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
628 { |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
629 if (widget >= GDW_OPTIONS_START) { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
630 widget -= GDW_OPTIONS_START; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
631 if ((widget % 3) == 2) return; |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
632 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
633 /* Don't allow clients to make any changes */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
634 if (_networking && !_network_server) return; |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
635 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
636 uint i; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
637 const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i) + (widget / 3); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
638 const SettingDescBase *sdb = &sd->desc; |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
639 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
640 int32 val = (int32)ReadValue(GetVariableAddress(&this->opt_mod_temp, &sd->save), sd->save.conv); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
641 if (widget % 3 == 1) { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
642 /* Increase button clicked */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
643 val = min(val + sdb->interval, (int32)sdb->max); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
644 } else { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
645 /* Decrease button clicked */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
646 val -= sdb->interval; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
647 val = max(val, sdb->min); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
648 } |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
649 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
650 /* save value in temporary variable */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
651 WriteValue(GetVariableAddress(&this->opt_mod_temp, &sd->save), sd->save.conv, val); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
652 this->RaiseWidget(GDW_LVL_EASY + this->opt_mod_temp.difficulty.diff_level); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
653 SetDifficultyLevel(3, &this->opt_mod_temp.difficulty); // set difficulty level to custom |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
654 this->LowerWidget(GDW_LVL_CUSTOM); |
13169
1f44cefc7825
(svn r17674) -Codechange: replace SetDirty + OnInvalidateData with InvalidateData (which does the same). Also call InvalidateData in a few cases where that was actually meant.
rubidium <rubidium@openttd.org>
parents:
13139
diff
changeset
|
655 this->InvalidateData(); |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
656 return; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
657 } |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
658 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
659 switch (widget) { |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
660 case GDW_LVL_EASY: |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
661 case GDW_LVL_MEDIUM: |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
662 case GDW_LVL_HARD: |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
663 case GDW_LVL_CUSTOM: |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
664 /* temporarily change difficulty level */ |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
665 this->RaiseWidget(GDW_LVL_EASY + this->opt_mod_temp.difficulty.diff_level); |
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
666 SetDifficultyLevel(widget - GDW_LVL_EASY, &this->opt_mod_temp.difficulty); |
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
667 this->LowerWidget(GDW_LVL_EASY + this->opt_mod_temp.difficulty.diff_level); |
13169
1f44cefc7825
(svn r17674) -Codechange: replace SetDirty + OnInvalidateData with InvalidateData (which does the same). Also call InvalidateData in a few cases where that was actually meant.
rubidium <rubidium@openttd.org>
parents:
13139
diff
changeset
|
668 this->InvalidateData(); |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
669 break; |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
670 |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
671 case GDW_HIGHSCORE: // Highscore Table |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
672 ShowHighscoreTable(this->opt_mod_temp.difficulty.diff_level, -1); |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
673 break; |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
674 |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
675 case GDW_ACCEPT: { // Save button - save changes |
9413
512ea64da840
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium <rubidium@openttd.org>
parents:
9359
diff
changeset
|
676 GameSettings *opt_ptr = (_game_mode == GM_MENU) ? &_settings_newgame : &_settings_game; |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
677 |
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
678 uint i; |
13088
1008c63fa996
(svn r17588) -Fix [FS#3220]: erroneous message about changing the difficulty level
rubidium <rubidium@openttd.org>
parents:
13072
diff
changeset
|
679 GetSettingFromName("difficulty.diff_level", &i); |
1008c63fa996
(svn r17588) -Fix [FS#3220]: erroneous message about changing the difficulty level
rubidium <rubidium@openttd.org>
parents:
13072
diff
changeset
|
680 DoCommandP(0, i, this->opt_mod_temp.difficulty.diff_level, CMD_CHANGE_SETTING); |
1008c63fa996
(svn r17588) -Fix [FS#3220]: erroneous message about changing the difficulty level
rubidium <rubidium@openttd.org>
parents:
13072
diff
changeset
|
681 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
682 const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i); |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
683 for (uint btn = 0; btn != GAME_DIFFICULTY_NUM; btn++, sd++) { |
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
684 int32 new_val = (int32)ReadValue(GetVariableAddress(&this->opt_mod_temp, &sd->save), sd->save.conv); |
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
685 int32 cur_val = (int32)ReadValue(GetVariableAddress(opt_ptr, &sd->save), sd->save.conv); |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
686 /* if setting has changed, change it */ |
9359
c3a0ec3104c9
(svn r13256) -Codechange: merge the OPTS and PATS chuncks.
rubidium <rubidium@openttd.org>
parents:
9358
diff
changeset
|
687 if (new_val != cur_val) { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
688 DoCommandP(0, i + btn, new_val, CMD_CHANGE_SETTING); |
9346
0c181c088ed8
(svn r13242) -Codechange: remove _opt_ptr.
rubidium <rubidium@openttd.org>
parents:
9334
diff
changeset
|
689 } |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
690 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
691 delete this; |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
692 /* If we are in the editor, we should reload the economy. |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
693 * This way when you load a game, the max loan and interest rate |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
694 * are loaded correctly. */ |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
695 if (_game_mode == GM_EDITOR) StartupEconomy(); |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
696 break; |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
697 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
698 |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
699 case GDW_CANCEL: // Cancel button - close window, abandon changes |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
700 delete this; |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
701 break; |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
702 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
703 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
704 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
705 virtual void OnInvalidateData(int data = 0) |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
706 { |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
707 uint i; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
708 const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
709 for (i = 0; i < GAME_DIFFICULTY_NUM; i++, sd++) { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
710 const SettingDescBase *sdb = &sd->desc; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
711 /* skip deprecated difficulty options */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
712 if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
713 int32 value = (int32)ReadValue(GetVariableAddress(&this->opt_mod_temp, &sd->save), sd->save.conv); |
13139
3064addfd0ec
(svn r17644) -Fix [FS#3219]: some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor.
rubidium <rubidium@openttd.org>
parents:
13136
diff
changeset
|
714 bool disable = (sd->desc.flags & SGF_NEWGAME_ONLY) && |
3064addfd0ec
(svn r17644) -Fix [FS#3219]: some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor.
rubidium <rubidium@openttd.org>
parents:
13136
diff
changeset
|
715 (_game_mode == GM_NORMAL || |
3064addfd0ec
(svn r17644) -Fix [FS#3219]: some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor.
rubidium <rubidium@openttd.org>
parents:
13136
diff
changeset
|
716 (_game_mode == GM_EDITOR && (sd->desc.flags & SGF_SCENEDIT_TOO) == 0)); |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
717 |
13139
3064addfd0ec
(svn r17644) -Fix [FS#3219]: some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor.
rubidium <rubidium@openttd.org>
parents:
13136
diff
changeset
|
718 this->SetWidgetDisabledState(GDW_OPTIONS_START + i * 3 + 0, disable || sdb->min == value); |
3064addfd0ec
(svn r17644) -Fix [FS#3219]: some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor.
rubidium <rubidium@openttd.org>
parents:
13136
diff
changeset
|
719 this->SetWidgetDisabledState(GDW_OPTIONS_START + i * 3 + 1, disable || sdb->max == (uint32)value); |
9231
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
720 } |
6ddeba445c3a
(svn r13097) -Codechange: make a class of the GameDifficultyWindow.
glx <glx@openttd.org>
parents:
9164
diff
changeset
|
721 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
722 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
723 |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
724 static NWidgetBase *MakeDifficultyOptionsWidgets(int *biggest_index) |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
725 { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
726 NWidgetVertical *vert_desc = new NWidgetVertical; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
727 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
728 int widnum = GDW_OPTIONS_START; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
729 uint i, j; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
730 const SettingDesc *sd = GetSettingFromName("difficulty.max_no_competitors", &i); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
731 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
732 for (i = 0, j = 0; i < GameDifficultyWindow::GAME_DIFFICULTY_NUM; i++, sd++, widnum += GameDifficultyWindow::WIDGETS_PER_DIFFICULTY) { |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
733 if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
734 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
735 NWidgetHorizontal *hor = new NWidgetHorizontal; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
736 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
737 /* [<] button. */ |
13663
62985032eb6e
(svn r18187) -Codechange: make the advanced face selection, custom currency, difficulty, news settings, signal, sign and vehicle details window RTL aware (use the arrow widget)
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
738 NWidgetLeaf *leaf = new NWidgetLeaf(NWID_BUTTON_ARROW, COLOUR_YELLOW, widnum, AWV_DECREASE, STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST); |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
739 hor->Add(leaf); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
740 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
741 /* [>] button. */ |
13663
62985032eb6e
(svn r18187) -Codechange: make the advanced face selection, custom currency, difficulty, news settings, signal, sign and vehicle details window RTL aware (use the arrow widget)
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
742 leaf = new NWidgetLeaf(NWID_BUTTON_ARROW, COLOUR_YELLOW, widnum + 1, AWV_INCREASE, STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST); |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
743 hor->Add(leaf); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
744 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
745 /* Some spacing between the text and the description */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
746 NWidgetSpacer *spacer = new NWidgetSpacer(5, 0); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
747 hor->Add(spacer); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
748 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
749 /* Descriptive text. */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
750 leaf = new NWidgetLeaf(WWT_TEXT, COLOUR_YELLOW, widnum + 2, STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS + (j++), STR_NULL); |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
751 leaf->SetFill(1, 0); |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
752 hor->Add(leaf); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
753 vert_desc->Add(hor); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
754 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
755 /* Space vertically */ |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
756 vert_desc->Add(new NWidgetSpacer(0, 2)); |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
757 } |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
758 *biggest_index = widnum - 1; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
759 return vert_desc; |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
760 } |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
761 |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
762 |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
763 /** Widget definition for the game difficulty settings window */ |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
764 static const NWidgetPart _nested_game_difficulty_widgets[] = { |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
765 NWidget(WWT_CAPTION, COLOUR_MAUVE), SetDataTip(STR_DIFFICULTY_LEVEL_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
766 NWidget(WWT_PANEL, COLOUR_MAUVE), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
767 NWidget(NWID_VERTICAL), SetPIP(2, 0, 2), |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
768 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 0, 10), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
769 NWidget(WWT_TEXTBTN, COLOUR_YELLOW, GDW_LVL_EASY), SetDataTip(STR_DIFFICULTY_LEVEL_EASY, STR_NULL), SetFill(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
770 NWidget(WWT_TEXTBTN, COLOUR_YELLOW, GDW_LVL_MEDIUM), SetDataTip(STR_DIFFICULTY_LEVEL_MEDIUM, STR_NULL), SetFill(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
771 NWidget(WWT_TEXTBTN, COLOUR_YELLOW, GDW_LVL_HARD), SetDataTip(STR_DIFFICULTY_LEVEL_HARD, STR_NULL), SetFill(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
772 NWidget(WWT_TEXTBTN, COLOUR_YELLOW, GDW_LVL_CUSTOM), SetDataTip(STR_DIFFICULTY_LEVEL_CUSTOM, STR_NULL), SetFill(1, 0), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
773 EndContainer(), |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
774 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 10), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
775 NWidget(WWT_PUSHTXTBTN, COLOUR_GREEN, GDW_HIGHSCORE), SetDataTip(STR_DIFFICULTY_LEVEL_HIGH_SCORE_BUTTON, STR_NULL), SetFill(1, 0), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
776 EndContainer(), |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
777 EndContainer(), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
778 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
779 NWidget(WWT_PANEL, COLOUR_MAUVE), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
780 NWidget(NWID_VERTICAL), SetPIP(3, 0, 1), |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
781 NWidget(NWID_HORIZONTAL), SetPIP(5, 0, 5), |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
782 NWidgetFunction(MakeDifficultyOptionsWidgets), |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
783 EndContainer(), |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
784 EndContainer(), |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
785 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
786 NWidget(WWT_PANEL, COLOUR_MAUVE), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
787 NWidget(NWID_VERTICAL), SetPIP(2, 0, 2), |
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
788 NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 0, 10), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
789 NWidget(NWID_SPACER), SetFill(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
790 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, GDW_ACCEPT), SetDataTip(STR_DIFFICULTY_LEVEL_SAVE, STR_NULL), SetFill(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
791 NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, GDW_CANCEL), SetDataTip(STR_BUTTON_CANCEL, STR_NULL), SetFill(1, 0), |
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
792 NWidget(NWID_SPACER), SetFill(1, 0), |
13134
54b65f0fc0ea
(svn r17639) -Codechange: let the difficulty settings GUI make really use the nested widget features
rubidium <rubidium@openttd.org>
parents:
13132
diff
changeset
|
793 EndContainer(), |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
794 EndContainer(), |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
795 EndContainer(), |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
796 }; |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
797 |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
798 /** Window definition for the game difficulty settings window */ |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
799 static const WindowDesc _game_difficulty_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
800 WDP_CENTER, 0, 0, |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
801 WC_GAME_OPTIONS, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
802 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13509
diff
changeset
|
803 _nested_game_difficulty_widgets, lengthof(_nested_game_difficulty_widgets) |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
804 ); |
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
805 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6012
diff
changeset
|
806 void ShowGameDifficulty() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
807 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
808 DeleteWindowById(WC_GAME_OPTIONS, 0); |
13132
dc0ab6265137
(svn r17637) -Codechange: move the game difficulty window's window/widget description below the window class
rubidium <rubidium@openttd.org>
parents:
13131
diff
changeset
|
809 new GameDifficultyWindow(&_game_difficulty_desc); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
810 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
811 |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
812 static int SETTING_HEIGHT = 11; ///< Height of a single setting in the tree view in pixels |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
813 static const int LEVEL_WIDTH = 15; ///< Indenting width of a sub-page in pixels |
10538
24ddd67a00be
(svn r14795) -Codechange: replace a magic number with a constant (Alberth)
rubidium <rubidium@openttd.org>
parents:
10537
diff
changeset
|
814 |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
815 /** |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
816 * Flags for #SettingEntry |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
817 * @note The #SEF_BUTTONS_MASK matches expectations of the formal parameter 'state' of #DrawArrowButtons |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
818 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
819 enum SettingEntryFlags { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
820 SEF_LEFT_DEPRESSED = 0x01, ///< Of a numeric setting entry, the left button is depressed |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
821 SEF_RIGHT_DEPRESSED = 0x02, ///< Of a numeric setting entry, the right button is depressed |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
822 SEF_BUTTONS_MASK = (SEF_LEFT_DEPRESSED | SEF_RIGHT_DEPRESSED), ///< Bit-mask for button flags |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
823 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
824 SEF_LAST_FIELD = 0x04, ///< This entry is the last one in a (sub-)page |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
825 |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
826 /* Entry kind */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
827 SEF_SETTING_KIND = 0x10, ///< Entry kind: Entry is a setting |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
828 SEF_SUBTREE_KIND = 0x20, ///< Entry kind: Entry is a sub-tree |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
829 SEF_KIND_MASK = (SEF_SETTING_KIND | SEF_SUBTREE_KIND), ///< Bit-mask for fetching entry kind |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
830 }; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
831 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
832 struct SettingsPage; // Forward declaration |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
833 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
834 /** Data fields for a sub-page (#SEF_SUBTREE_KIND kind)*/ |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
835 struct SettingEntrySubtree { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
836 SettingsPage *page; ///< Pointer to the sub-page |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
837 bool folded; ///< Sub-page is folded (not visible except for its title) |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
838 StringID title; ///< Title of the sub-page |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
839 }; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
840 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
841 /** Data fields for a single setting (#SEF_SETTING_KIND kind) */ |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
842 struct SettingEntrySetting { |
10659
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
843 const char *name; ///< Name of the setting |
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
844 const SettingDesc *setting; ///< Setting description of the setting |
10543
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
845 uint index; ///< Index of the setting in the settings table |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
846 }; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
847 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
848 /** Data structure describing a single setting in a tab */ |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
849 struct SettingEntry { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
850 byte flags; ///< Flags of the setting entry. @see SettingEntryFlags |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
851 byte level; ///< Nesting level of this setting entry |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
852 union { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
853 SettingEntrySetting entry; ///< Data fields if entry is a setting |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
854 SettingEntrySubtree sub; ///< Data fields if entry is a sub-page |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
855 } d; ///< Data fields for each kind |
10659
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
856 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
857 SettingEntry(const char *nm); |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
858 SettingEntry(SettingsPage *sub, StringID title); |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
859 |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
860 void Init(byte level, bool last_field); |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
861 void FoldAll(); |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
862 void SetButtons(byte new_val); |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
863 |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
864 uint Length() const; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
865 SettingEntry *FindEntry(uint row, uint *cur_row); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
866 |
11217
bbb1eaa48906
(svn r15570) -Fix: Too long strings in the advanced settings window are now truncated.
yexo <yexo@openttd.org>
parents:
11085
diff
changeset
|
867 uint Draw(GameSettings *settings_ptr, int base_x, int base_y, int max_x, uint first_row, uint max_row, uint cur_row, uint parent_last); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
868 |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
869 private: |
11217
bbb1eaa48906
(svn r15570) -Fix: Too long strings in the advanced settings window are now truncated.
yexo <yexo@openttd.org>
parents:
11085
diff
changeset
|
870 void DrawSetting(GameSettings *settings_ptr, const SettingDesc *sd, int x, int y, int max_x, int state); |
10543
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
871 }; |
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
872 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
873 /** Data structure describing one page of settings in the settings window. */ |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
874 struct SettingsPage { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
875 SettingEntry *entries; ///< Array of setting entries of the page. |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
876 byte num; ///< Number of entries on the page (statically filled). |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
877 |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
878 void Init(byte level = 0); |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
879 void FoldAll(); |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
880 |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
881 uint Length() const; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
882 SettingEntry *FindEntry(uint row, uint *cur_row) const; |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
883 |
11217
bbb1eaa48906
(svn r15570) -Fix: Too long strings in the advanced settings window are now truncated.
yexo <yexo@openttd.org>
parents:
11085
diff
changeset
|
884 uint Draw(GameSettings *settings_ptr, int base_x, int base_y, int max_x, uint first_row, uint max_row, uint cur_row = 0, uint parent_last = 0) const; |
10543
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
885 }; |
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
886 |
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
887 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
888 /* == SettingEntry methods == */ |
10659
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
889 |
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
890 /** |
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
891 * Constructor for a single setting in the 'advanced settings' window |
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
892 * @param nm Name of the setting in the setting table |
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
893 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
894 SettingEntry::SettingEntry(const char *nm) |
10659
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
895 { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
896 this->flags = SEF_SETTING_KIND; |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
897 this->level = 0; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
898 this->d.entry.name = nm; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
899 this->d.entry.setting = NULL; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
900 this->d.entry.index = 0; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
901 } |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
902 |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
903 /** |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
904 * Constructor for a sub-page in the 'advanced settings' window |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
905 * @param sub Sub-page |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
906 * @param title Title of the sub-page |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
907 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
908 SettingEntry::SettingEntry(SettingsPage *sub, StringID title) |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
909 { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
910 this->flags = SEF_SUBTREE_KIND; |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
911 this->level = 0; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
912 this->d.sub.page = sub; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
913 this->d.sub.folded = true; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
914 this->d.sub.title = title; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
915 } |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
916 |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
917 /** |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
918 * Initialization of a setting entry |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
919 * @param level Page nesting level of this entry |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
920 * @param last_field Boolean indicating this entry is the last at the (sub-)page |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
921 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
922 void SettingEntry::Init(byte level, bool last_field) |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
923 { |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
924 this->level = level; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
925 if (last_field) this->flags |= SEF_LAST_FIELD; |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
926 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
927 switch (this->flags & SEF_KIND_MASK) { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
928 case SEF_SETTING_KIND: |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
929 this->d.entry.setting = GetSettingFromName(this->d.entry.name, &this->d.entry.index); |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
930 assert(this->d.entry.setting != NULL); |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
931 break; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
932 case SEF_SUBTREE_KIND: |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
933 this->d.sub.page->Init(level + 1); |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
934 break; |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
935 default: NOT_REACHED(); |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
936 } |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
937 } |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
938 |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
939 /** Recursively close all folds of sub-pages */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
940 void SettingEntry::FoldAll() |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
941 { |
12676
d1ed749a9ce5
(svn r17131) -Codechange: apply coding style to some switch statements
smatz <smatz@openttd.org>
parents:
12632
diff
changeset
|
942 switch (this->flags & SEF_KIND_MASK) { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
943 case SEF_SETTING_KIND: |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
944 break; |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
945 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
946 case SEF_SUBTREE_KIND: |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
947 this->d.sub.folded = true; |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
948 this->d.sub.page->FoldAll(); |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
949 break; |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
950 |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
951 default: NOT_REACHED(); |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
952 } |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
953 } |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
954 |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
955 |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
956 /** |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
957 * Set the button-depressed flags (#SEF_LEFT_DEPRESSED and #SEF_RIGHT_DEPRESSED) to a specified value |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
958 * @param new_val New value for the button flags |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
959 * @see SettingEntryFlags |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
960 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
961 void SettingEntry::SetButtons(byte new_val) |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
962 { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
963 assert((new_val & ~SEF_BUTTONS_MASK) == 0); // Should not touch any flags outside the buttons |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
964 this->flags = (this->flags & ~SEF_BUTTONS_MASK) | new_val; |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
965 } |
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
966 |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
967 /** Return numbers of rows needed to display the entry */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
968 uint SettingEntry::Length() const |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
969 { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
970 switch (this->flags & SEF_KIND_MASK) { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
971 case SEF_SETTING_KIND: |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
972 return 1; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
973 case SEF_SUBTREE_KIND: |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
974 if (this->d.sub.folded) return 1; // Only displaying the title |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
975 |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
976 return 1 + this->d.sub.page->Length(); // 1 extra row for the title |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
977 default: NOT_REACHED(); |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
978 } |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
979 } |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
980 |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
981 /** |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
982 * Find setting entry at row \a row_num |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
983 * @param row_num Index of entry to return |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
984 * @param cur_row Current row number |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
985 * @return The requested setting entry or \c NULL if it not found |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
986 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
987 SettingEntry *SettingEntry::FindEntry(uint row_num, uint *cur_row) |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
988 { |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
989 if (row_num == *cur_row) return this; |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
990 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
991 switch (this->flags & SEF_KIND_MASK) { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
992 case SEF_SETTING_KIND: |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
993 (*cur_row)++; |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
994 break; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
995 case SEF_SUBTREE_KIND: |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
996 (*cur_row)++; // add one for row containing the title |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
997 if (this->d.sub.folded) { |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
998 break; |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
999 } |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1000 |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1001 /* sub-page is visible => search it too */ |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1002 return this->d.sub.page->FindEntry(row_num, cur_row); |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1003 default: NOT_REACHED(); |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1004 } |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1005 return NULL; |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1006 } |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1007 |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1008 /** |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1009 * Draw a row in the settings panel. |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1010 * |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1011 * See SettingsPage::Draw() for an explanation about how drawing is performed. |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1012 * |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1013 * The \a parent_last parameter ensures that the vertical lines at the left are |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1014 * only drawn when another entry follows, that it prevents output like |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1015 * \verbatim |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1016 * |-- setting |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1017 * |-- (-) - Title |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1018 * | |-- setting |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1019 * | |-- setting |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1020 * \endverbatim |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1021 * The left-most vertical line is not wanted. It is prevented by setting the |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1022 * appropiate bit in the \a parent_last parameter. |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1023 * |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1024 * @param settings_ptr Pointer to current values of all settings |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1025 * @param left Left-most position in window/panel to start drawing \a first_row |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1026 * @param right Right-most x position to draw strings at. |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1027 * @param base_y Upper-most position in window/panel to start drawing \a first_row |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1028 * @param first_row First row number to draw |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1029 * @param max_row Row-number to stop drawing (the row-number of the row below the last row to draw) |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1030 * @param cur_row Current row number (internal variable) |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1031 * @param parent_last Last-field booleans of parent page level (page level \e i sets bit \e i to 1 if it is its last field) |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1032 * @return Row number of the next row to draw |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1033 */ |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1034 uint SettingEntry::Draw(GameSettings *settings_ptr, int left, int right, int base_y, uint first_row, uint max_row, uint cur_row, uint parent_last) |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1035 { |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1036 if (cur_row >= max_row) return cur_row; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1037 |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1038 bool rtl = _dynlang.text_dir == TD_RTL; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1039 int offset = rtl ? -4 : 4; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1040 int level_width = rtl ? -LEVEL_WIDTH : LEVEL_WIDTH; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1041 |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1042 int x = rtl ? right : left; |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1043 int y = base_y; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1044 if (cur_row >= first_row) { |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1045 int colour = _colour_gradient[COLOUR_ORANGE][4]; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1046 y = base_y + (cur_row - first_row) * SETTING_HEIGHT; // Compute correct y start position |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1047 |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1048 /* Draw vertical for parent nesting levels */ |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1049 for (uint lvl = 0; lvl < this->level; lvl++) { |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1050 if (!HasBit(parent_last, lvl)) GfxDrawLine(x + offset, y, x + offset, y + SETTING_HEIGHT - 1, colour); |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1051 x += level_width; |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1052 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1053 /* draw own |- prefix */ |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1054 int halfway_y = y + SETTING_HEIGHT / 2; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1055 int bottom_y = (flags & SEF_LAST_FIELD) ? halfway_y : y + SETTING_HEIGHT - 1; |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1056 GfxDrawLine(x + offset, y, x + offset, bottom_y, colour); |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1057 /* Small horizontal line from the last vertical line */ |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1058 GfxDrawLine(x + offset, halfway_y, x + level_width - offset, halfway_y, colour); |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1059 x += level_width; |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1060 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1061 |
12676
d1ed749a9ce5
(svn r17131) -Codechange: apply coding style to some switch statements
smatz <smatz@openttd.org>
parents:
12632
diff
changeset
|
1062 switch (this->flags & SEF_KIND_MASK) { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1063 case SEF_SETTING_KIND: |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1064 if (cur_row >= first_row) { |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1065 DrawSetting(settings_ptr, this->d.entry.setting, rtl ? left : x, rtl ? x : right, y, this->flags & SEF_BUTTONS_MASK); |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1066 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1067 cur_row++; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1068 break; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1069 case SEF_SUBTREE_KIND: |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1070 if (cur_row >= first_row) { |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1071 DrawSprite((this->d.sub.folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED), PAL_NONE, rtl ? x - 8 : x, y + (SETTING_HEIGHT - 11) / 2); |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1072 DrawString(rtl ? left : x + 12, rtl ? x - 12 : right, y, this->d.sub.title); |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1073 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1074 cur_row++; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1075 if (!this->d.sub.folded) { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1076 if (this->flags & SEF_LAST_FIELD) { |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1077 assert(this->level < sizeof(parent_last)); |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1078 SetBit(parent_last, this->level); // Add own last-field state |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1079 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1080 |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1081 cur_row = this->d.sub.page->Draw(settings_ptr, left, right, base_y, first_row, max_row, cur_row, parent_last); |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1082 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1083 break; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1084 default: NOT_REACHED(); |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1085 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1086 return cur_row; |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1087 } |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1088 |
13509
59959bee9f95
(svn r18028) -Codechange: unglobalise some functions
rubidium <rubidium@openttd.org>
parents:
13419
diff
changeset
|
1089 static const void *ResolveVariableAddress(const GameSettings *settings_ptr, const SettingDesc *sd) |
12022
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1090 { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1091 if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1092 if (Company::IsValidID(_local_company) && _game_mode != GM_MENU) { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1093 return GetVariableAddress(&Company::Get(_local_company)->settings, &sd->save); |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1094 } else { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1095 return GetVariableAddress(&_settings_client.company, &sd->save); |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1096 } |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1097 } else { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1098 return GetVariableAddress(settings_ptr, &sd->save); |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1099 } |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1100 } |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1101 |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1102 /** |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1103 * Private function to draw setting value (button + text + current value) |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1104 * @param settings_ptr Pointer to current values of all settings |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1105 * @param sd Pointer to value description of setting to draw |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1106 * @param left Left-most position in window/panel to start drawing |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1107 * @param right Right-most position in window/panel to draw |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1108 * @param y Upper-most position in window/panel to start drawing |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1109 * @param state State of the left + right arrow buttons to draw for the setting |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1110 */ |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1111 void SettingEntry::DrawSetting(GameSettings *settings_ptr, const SettingDesc *sd, int left, int right, int y, int state) |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1112 { |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1113 const SettingDescBase *sdb = &sd->desc; |
12022
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1114 const void *var = ResolveVariableAddress(settings_ptr, sd); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1115 bool editable = true; |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1116 bool disabled = false; |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1117 |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1118 bool rtl = _dynlang.text_dir == TD_RTL; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1119 uint buttons_left = rtl ? right - 19 : left; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1120 uint text_left = left + (rtl ? 0 : 25); |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1121 uint text_right = right - (rtl ? 25 : 0); |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1122 uint button_y = y + (SETTING_HEIGHT - 11) / 2; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1123 |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1124 /* We do not allow changes of some items when we are a client in a networkgame */ |
12024
ca8b215793c4
(svn r16431) -Fix (16429): Company settings can also be changed in multiplayer games
yexo <yexo@openttd.org>
parents:
12022
diff
changeset
|
1125 if (!(sd->save.conv & SLF_NETWORK_NO) && _networking && !_network_server && !(sdb->flags & SGF_PER_COMPANY)) editable = false; |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1126 if ((sdb->flags & SGF_NETWORK_ONLY) && !_networking) editable = false; |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1127 if ((sdb->flags & SGF_NO_NETWORK) && _networking) editable = false; |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1128 |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1129 if (sdb->cmd == SDT_BOOLX) { |
11085
8da1855e9f14
(svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents:
11075
diff
changeset
|
1130 static const Colours _bool_ctabs[2][2] = {{COLOUR_CREAM, COLOUR_RED}, {COLOUR_DARK_GREEN, COLOUR_GREEN}}; |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1131 /* Draw checkbox for boolean-value either on/off */ |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1132 bool on = (*(bool*)var); |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1133 |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1134 DrawFrameRect(buttons_left, button_y, buttons_left + 19, button_y + 8, _bool_ctabs[!!on][!!editable], on ? FR_LOWERED : FR_NONE); |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1135 SetDParam(0, on ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1136 } else { |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1137 int32 value; |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1138 |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1139 value = (int32)ReadValue(var, sd->save.conv); |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1140 |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1141 /* Draw [<][>] boxes for settings of an integer-type */ |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1142 DrawArrowButtons(buttons_left, button_y, COLOUR_YELLOW, state, editable && value != (sdb->flags & SGF_0ISDISABLED ? 0 : sdb->min), editable && (uint32)value != sdb->max); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1143 |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1144 disabled = (value == 0) && (sdb->flags & SGF_0ISDISABLED); |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1145 if (disabled) { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1146 SetDParam(0, STR_CONFIG_SETTING_DISABLED); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1147 } else { |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1148 if (sdb->flags & SGF_CURRENCY) { |
12493
32e2de3d509a
(svn r16930) -Codechange: more StringID name unification and grouping
rubidium <rubidium@openttd.org>
parents:
12475
diff
changeset
|
1149 SetDParam(0, STR_JUST_CURRENCY); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1150 } else if (sdb->flags & SGF_MULTISTRING) { |
13834
0af12668a112
(svn r18363) -Feature: do not require advanced settings multistrings to start at 0
rubidium <rubidium@openttd.org>
parents:
13798
diff
changeset
|
1151 SetDParam(0, sdb->str - sdb->min + value + 1); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1152 } else { |
12493
32e2de3d509a
(svn r16930) -Codechange: more StringID name unification and grouping
rubidium <rubidium@openttd.org>
parents:
12475
diff
changeset
|
1153 SetDParam(0, (sdb->flags & SGF_NOCOMMA) ? STR_JUST_INT : STR_JUST_COMMA); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1154 } |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1155 SetDParam(1, value); |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1156 } |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1157 } |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1158 DrawString(text_left, text_right, y, (sdb->str) + disabled); |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1159 } |
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1160 |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1161 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1162 /* == SettingsPage methods == */ |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1163 |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1164 /** |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1165 * Initialization of an entire setting page |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1166 * @param level Nesting level of this page (internal variable, do not provide a value for it when calling) |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1167 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1168 void SettingsPage::Init(byte level) |
10660
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1169 { |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1170 for (uint field = 0; field < this->num; field++) { |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1171 this->entries[field].Init(level, field + 1 == num); |
13267d179635
(svn r14962) -Codechange: add the concept of patch entries and patch (sub) pages
rubidium <rubidium@openttd.org>
parents:
10659
diff
changeset
|
1172 } |
10659
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
1173 } |
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
1174 |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1175 /** Recursively close all folds of sub-pages */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1176 void SettingsPage::FoldAll() |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1177 { |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1178 for (uint field = 0; field < this->num; field++) { |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1179 this->entries[field].FoldAll(); |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1180 } |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1181 } |
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1182 |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1183 /** Return number of rows needed to display the whole page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1184 uint SettingsPage::Length() const |
10662
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1185 { |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1186 uint length = 0; |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1187 for (uint field = 0; field < this->num; field++) { |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1188 length += this->entries[field].Length(); |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1189 } |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1190 return length; |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1191 } |
5186b62666d4
(svn r14964) -Codechange: hide the length of a patch page behind a function (Alberth)
rubidium <rubidium@openttd.org>
parents:
10661
diff
changeset
|
1192 |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1193 /** |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1194 * Find the setting entry at row number \a row_num |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1195 * @param row_num Index of entry to return |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1196 * @param cur_row Variable used for keeping track of the current row number. Should point to memory initialized to \c 0 when first called. |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1197 * @return The requested setting entry or \c NULL if it does not exist |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1198 */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1199 SettingEntry *SettingsPage::FindEntry(uint row_num, uint *cur_row) const |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1200 { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1201 SettingEntry *pe = NULL; |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1202 |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1203 for (uint field = 0; field < this->num; field++) { |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1204 pe = this->entries[field].FindEntry(row_num, cur_row); |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1205 if (pe != NULL) { |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1206 break; |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1207 } |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1208 } |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1209 return pe; |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1210 } |
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1211 |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1212 /** |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1213 * Draw a selected part of the settings page. |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1214 * |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1215 * The scrollbar uses rows of the page, while the page data strucure is a tree of #SettingsPage and #SettingEntry objects. |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1216 * As a result, the drawing routing traverses the tree from top to bottom, counting rows in \a cur_row until it reaches \a first_row. |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1217 * Then it enables drawing rows while traversing until \a max_row is reached, at which point drawing is terminated. |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1218 * |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1219 * @param settings_ptr Pointer to current values of all settings |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1220 * @param left Left-most position in window/panel to start drawing of each setting row |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1221 * @param right Right-most position in window/panel to draw at |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1222 * @param base_y Upper-most position in window/panel to start drawing of row number \a first_row |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1223 * @param first_row Number of first row to draw |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1224 * @param max_row Row-number to stop drawing (the row-number of the row below the last row to draw) |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1225 * @param cur_row Current row number (internal variable) |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1226 * @param parent_last Last-field booleans of parent page level (page level \e i sets bit \e i to 1 if it is its last field) |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1227 * @return Row number of the next row to draw |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1228 */ |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1229 uint SettingsPage::Draw(GameSettings *settings_ptr, int left, int right, int base_y, uint first_row, uint max_row, uint cur_row, uint parent_last) const |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1230 { |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1231 if (cur_row >= max_row) return cur_row; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1232 |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1233 for (uint i = 0; i < this->num; i++) { |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1234 cur_row = this->entries[i].Draw(settings_ptr, left, right, base_y, first_row, max_row, cur_row, parent_last); |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1235 if (cur_row >= max_row) { |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1236 break; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1237 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1238 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1239 return cur_row; |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1240 } |
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1241 |
10659
b800143c7941
(svn r14961) -Update: remove the string from r14960 from the other languages too.
rubidium <rubidium@openttd.org>
parents:
10658
diff
changeset
|
1242 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1243 static SettingEntry _settings_ui_display[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1244 SettingEntry("gui.vehicle_speed"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1245 SettingEntry("gui.status_long_date"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1246 SettingEntry("gui.date_format_in_default_names"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1247 SettingEntry("gui.population_in_label"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1248 SettingEntry("gui.measure_tooltip"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1249 SettingEntry("gui.loading_indicators"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1250 SettingEntry("gui.liveries"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1251 SettingEntry("gui.show_track_reservation"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1252 SettingEntry("gui.expenses_layout"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1253 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1254 /** Display options sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1255 static SettingsPage _settings_ui_display_page = {_settings_ui_display, lengthof(_settings_ui_display)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1256 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1257 static SettingEntry _settings_ui_interaction[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1258 SettingEntry("gui.window_snap_radius"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1259 SettingEntry("gui.window_soft_limit"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1260 SettingEntry("gui.link_terraform_toolbar"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1261 SettingEntry("gui.prefer_teamchat"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1262 SettingEntry("gui.autoscroll"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1263 SettingEntry("gui.reverse_scroll"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1264 SettingEntry("gui.smooth_scroll"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1265 SettingEntry("gui.left_mouse_btn_scrolling"), |
6289
7830dc08984a
(svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni <bjarni@openttd.org>
parents:
6259
diff
changeset
|
1266 /* While the horizontal scrollwheel scrolling is written as general code, only |
7830dc08984a
(svn r9111) -Feature: [OSX] mighty mice and touchpads can now scroll the map (in all directions)
bjarni <bjarni@openttd.org>
parents:
6259
diff
changeset
|
1267 * the cocoa (OSX) driver generates input for it. |
6296
94f5e47fddaa
(svn r9126) -Feature: "Function of scrollwheel" can now be set to off as well
bjarni <bjarni@openttd.org>
parents:
6293
diff
changeset
|
1268 * Since it's also able to completely disable the scrollwheel will we display it on all platforms anyway */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1269 SettingEntry("gui.scrollwheel_scrolling"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1270 SettingEntry("gui.scrollwheel_multiplier"), |
7485
f7dd4bbc720d
(svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni <bjarni@openttd.org>
parents:
7341
diff
changeset
|
1271 #ifdef __APPLE__ |
f7dd4bbc720d
(svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni <bjarni@openttd.org>
parents:
7341
diff
changeset
|
1272 /* We might need to emulate a right mouse button on mac */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1273 SettingEntry("gui.right_mouse_btn_emulation"), |
7485
f7dd4bbc720d
(svn r10996) -Feature: [OSX] added more options for right click emulation (controlled from the interface tab in the patch window)
bjarni <bjarni@openttd.org>
parents:
7341
diff
changeset
|
1274 #endif |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1275 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1276 /** Interaction sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1277 static SettingsPage _settings_ui_interaction_page = {_settings_ui_interaction, lengthof(_settings_ui_interaction)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1278 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1279 static SettingEntry _settings_ui[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1280 SettingEntry(&_settings_ui_display_page, STR_CONFIG_SETTING_DISPLAY_OPTIONS), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1281 SettingEntry(&_settings_ui_interaction_page, STR_CONFIG_SETTING_INTERACTION), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1282 SettingEntry("gui.show_finances"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1283 SettingEntry("gui.errmsg_duration"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1284 SettingEntry("gui.toolbar_pos"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1285 SettingEntry("gui.pause_on_newgame"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1286 SettingEntry("gui.advanced_vehicle_list"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1287 SettingEntry("gui.timetable_in_ticks"), |
13760
a9c5c2c91d71
(svn r18285) -Feature: show the expected arrival/departure dates in the timetable window. Based on work by PhilSophus.
rubidium <rubidium@openttd.org>
parents:
13756
diff
changeset
|
1288 SettingEntry("gui.timetable_arrival_departure"), |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1289 SettingEntry("gui.quick_goto"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1290 SettingEntry("gui.default_rail_type"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1291 SettingEntry("gui.always_build_infrastructure"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1292 SettingEntry("gui.persistent_buildingtools"), |
11085
8da1855e9f14
(svn r15428) -Codechange: consistently use colour instead of having both color and colour.
rubidium <rubidium@openttd.org>
parents:
11075
diff
changeset
|
1293 SettingEntry("gui.coloured_news_year"), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1294 }; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1295 /** Interface subpage */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1296 static SettingsPage _settings_ui_page = {_settings_ui, lengthof(_settings_ui)}; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1297 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1298 static SettingEntry _settings_construction_signals[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1299 SettingEntry("construction.signal_side"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1300 SettingEntry("gui.enable_signal_gui"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1301 SettingEntry("gui.drag_signals_density"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1302 SettingEntry("gui.semaphore_build_before"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1303 SettingEntry("gui.default_signal_type"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1304 SettingEntry("gui.cycle_signal_types"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1305 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1306 /** Signals subpage */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1307 static SettingsPage _settings_construction_signals_page = {_settings_construction_signals, lengthof(_settings_construction_signals)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1308 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1309 static SettingEntry _settings_construction[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1310 SettingEntry(&_settings_construction_signals_page, STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1311 SettingEntry("construction.build_on_slopes"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1312 SettingEntry("construction.autoslope"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1313 SettingEntry("construction.extra_dynamite"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1314 SettingEntry("construction.longbridges"), |
12200
abcb7c9c1d4d
(svn r16614) -Codechange: Make the airport min/max available year a property of the Airport class.
yexo <yexo@openttd.org>
parents:
12067
diff
changeset
|
1315 SettingEntry("station.never_expire_airports"), |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1316 SettingEntry("construction.freeform_edges"), |
13983
aaf1fd51e6ac
(svn r18522) -Feature: add the possibility to not make new tree tiles in-game
rubidium <rubidium@openttd.org>
parents:
13950
diff
changeset
|
1317 SettingEntry("construction.extra_tree_placement"), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1318 }; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1319 /** Construction sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1320 static SettingsPage _settings_construction_page = {_settings_construction, lengthof(_settings_construction)}; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1321 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1322 static SettingEntry _settings_stations_cargo[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1323 SettingEntry("order.improved_load"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1324 SettingEntry("order.gradual_loading"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1325 SettingEntry("order.selectgoods"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1326 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1327 /** Cargo handling sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1328 static SettingsPage _settings_stations_cargo_page = {_settings_stations_cargo, lengthof(_settings_stations_cargo)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1329 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1330 static SettingEntry _settings_stations[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1331 SettingEntry(&_settings_stations_cargo_page, STR_CONFIG_SETTING_STATIONS_CARGOHANDLING), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1332 SettingEntry("station.join_stations"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1333 SettingEntry("station.nonuniform_stations"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1334 SettingEntry("station.adjacent_stations"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1335 SettingEntry("station.distant_join_stations"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1336 SettingEntry("station.station_spread"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1337 SettingEntry("economy.station_noise_level"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1338 SettingEntry("station.modified_catchment"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1339 SettingEntry("construction.road_stop_on_town_road"), |
11252
f7b6f8f03e5e
(svn r15601) -Fix [FS#2615]: bridges/tunnels don't store tram owner making it possible to remove someone's tram tracks.
rubidium <rubidium@openttd.org>
parents:
11217
diff
changeset
|
1340 SettingEntry("construction.road_stop_on_competitor_road"), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1341 }; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1342 /** Stations sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1343 static SettingsPage _settings_stations_page = {_settings_stations, lengthof(_settings_stations)}; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1344 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1345 static SettingEntry _settings_economy_towns[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1346 SettingEntry("economy.bribe"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1347 SettingEntry("economy.exclusive_rights"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1348 SettingEntry("economy.town_layout"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1349 SettingEntry("economy.allow_town_roads"), |
13756
9f062af2f34a
(svn r18281) -Feature: founding towns in-game (based on work by Belugas, TheJosh, GeekToo, Terkhen and others)
smatz <smatz@openttd.org>
parents:
13755
diff
changeset
|
1350 SettingEntry("economy.found_town"), |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1351 SettingEntry("economy.mod_road_rebuild"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1352 SettingEntry("economy.town_growth_rate"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1353 SettingEntry("economy.larger_towns"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1354 SettingEntry("economy.initial_city_size"), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1355 }; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1356 /** Towns sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1357 static SettingsPage _settings_economy_towns_page = {_settings_economy_towns, lengthof(_settings_economy_towns)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1358 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1359 static SettingEntry _settings_economy_industries[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1360 SettingEntry("construction.raw_industry_construction"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1361 SettingEntry("economy.multiple_industry_per_town"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1362 SettingEntry("economy.same_industry_close"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1363 SettingEntry("game_creation.oil_refinery_limit"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1364 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1365 /** Industries sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1366 static SettingsPage _settings_economy_industries_page = {_settings_economy_industries, lengthof(_settings_economy_industries)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1367 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1368 static SettingEntry _settings_economy[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1369 SettingEntry(&_settings_economy_towns_page, STR_CONFIG_SETTING_ECONOMY_TOWNS), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1370 SettingEntry(&_settings_economy_industries_page, STR_CONFIG_SETTING_ECONOMY_INDUSTRIES), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1371 SettingEntry("economy.inflation"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1372 SettingEntry("economy.smooth_economy"), |
14155
96be446af436
(svn r18703) -Feature-ish: allow virtually paying a percentage of the leg profit in feeder chains. This to give the user a better chance to get a feeder system without "losses".
rubidium <rubidium@openttd.org>
parents:
14127
diff
changeset
|
1373 SettingEntry("economy.feeder_payment_share"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1374 }; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1375 /** Economy sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1376 static SettingsPage _settings_economy_page = {_settings_economy, lengthof(_settings_economy)}; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1377 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1378 static SettingEntry _settings_ai_npc[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1379 SettingEntry("ai.ai_in_multiplayer"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1380 SettingEntry("ai.ai_disable_veh_train"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1381 SettingEntry("ai.ai_disable_veh_roadveh"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1382 SettingEntry("ai.ai_disable_veh_aircraft"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1383 SettingEntry("ai.ai_disable_veh_ship"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1384 SettingEntry("ai.ai_max_opcode_till_suspend"), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1385 }; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1386 /** Computer players sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1387 static SettingsPage _settings_ai_npc_page = {_settings_ai_npc, lengthof(_settings_ai_npc)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1388 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1389 static SettingEntry _settings_ai[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1390 SettingEntry(&_settings_ai_npc_page, STR_CONFIG_SETTING_AI_NPC), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1391 SettingEntry("economy.give_money"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1392 SettingEntry("economy.allow_shares"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1393 }; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1394 /** AI sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1395 static SettingsPage _settings_ai_page = {_settings_ai, lengthof(_settings_ai)}; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1396 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1397 static SettingEntry _settings_vehicles_routing[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1398 SettingEntry("pf.pathfinder_for_trains"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1399 SettingEntry("pf.forbid_90_deg"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1400 SettingEntry("pf.pathfinder_for_roadvehs"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1401 SettingEntry("pf.roadveh_queue"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1402 SettingEntry("pf.pathfinder_for_ships"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1403 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1404 /** Autorenew sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1405 static SettingsPage _settings_vehicles_routing_page = {_settings_vehicles_routing, lengthof(_settings_vehicles_routing)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1406 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1407 static SettingEntry _settings_vehicles_autorenew[] = { |
11913
f67b6243e05a
(svn r16315) -Codechange: move the autorenew settings to a new CompanySettings struct
yexo <yexo@openttd.org>
parents:
11897
diff
changeset
|
1408 SettingEntry("company.engine_renew"), |
f67b6243e05a
(svn r16315) -Codechange: move the autorenew settings to a new CompanySettings struct
yexo <yexo@openttd.org>
parents:
11897
diff
changeset
|
1409 SettingEntry("company.engine_renew_months"), |
f67b6243e05a
(svn r16315) -Codechange: move the autorenew settings to a new CompanySettings struct
yexo <yexo@openttd.org>
parents:
11897
diff
changeset
|
1410 SettingEntry("company.engine_renew_money"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1411 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1412 /** Autorenew sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1413 static SettingsPage _settings_vehicles_autorenew_page = {_settings_vehicles_autorenew, lengthof(_settings_vehicles_autorenew)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1414 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1415 static SettingEntry _settings_vehicles_servicing[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1416 SettingEntry("vehicle.servint_ispercent"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1417 SettingEntry("vehicle.servint_trains"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1418 SettingEntry("vehicle.servint_roadveh"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1419 SettingEntry("vehicle.servint_ships"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1420 SettingEntry("vehicle.servint_aircraft"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1421 SettingEntry("order.no_servicing_if_no_breakdowns"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1422 SettingEntry("order.serviceathelipad"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1423 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1424 /** Servicing sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1425 static SettingsPage _settings_vehicles_servicing_page = {_settings_vehicles_servicing, lengthof(_settings_vehicles_servicing)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1426 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1427 static SettingEntry _settings_vehicles_trains[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1428 SettingEntry("vehicle.train_acceleration_model"), |
14127
39a257893f4c
(svn r18674) -Feature (FS#3459): Configurable slope steepness for trains from 0% to 10%, default is 3% as before (mostly by Terkhen)
peter1138 <peter1138@openttd.org>
parents:
14065
diff
changeset
|
1429 SettingEntry("vehicle.train_slope_steepness"), |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1430 SettingEntry("vehicle.mammoth_trains"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1431 SettingEntry("gui.lost_train_warn"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1432 SettingEntry("vehicle.wagon_speed_limits"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1433 SettingEntry("vehicle.disable_elrails"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1434 SettingEntry("vehicle.freight_trains"), |
11657
ff1084d0d8a0
(svn r16037) -Feature: allow (per order) to let a train stop at the near end, middle or far end of a platform from the point of view of the driver of the train that enters the station.
rubidium <rubidium@openttd.org>
parents:
11524
diff
changeset
|
1435 SettingEntry("gui.stop_location"), |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1436 }; |
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1437 /** Trains sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1438 static SettingsPage _settings_vehicles_trains_page = {_settings_vehicles_trains, lengthof(_settings_vehicles_trains)}; |
10671
ec6b9e8e01aa
(svn r14974) -Change: reorder/reorganise the entries of the settings window (Alberth)
rubidium <rubidium@openttd.org>
parents:
10670
diff
changeset
|
1439 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1440 static SettingEntry _settings_vehicles[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1441 SettingEntry(&_settings_vehicles_routing_page, STR_CONFIG_SETTING_VEHICLES_ROUTING), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1442 SettingEntry(&_settings_vehicles_autorenew_page, STR_CONFIG_SETTING_VEHICLES_AUTORENEW), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1443 SettingEntry(&_settings_vehicles_servicing_page, STR_CONFIG_SETTING_VEHICLES_SERVICING), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1444 SettingEntry(&_settings_vehicles_trains_page, STR_CONFIG_SETTING_VEHICLES_TRAINS), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1445 SettingEntry("order.gotodepot"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1446 SettingEntry("gui.new_nonstop"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1447 SettingEntry("gui.order_review_system"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1448 SettingEntry("gui.vehicle_income_warn"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1449 SettingEntry("vehicle.never_expire_vehicles"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1450 SettingEntry("vehicle.max_trains"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1451 SettingEntry("vehicle.max_roadveh"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1452 SettingEntry("vehicle.max_aircraft"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1453 SettingEntry("vehicle.max_ships"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1454 SettingEntry("vehicle.plane_speed"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1455 SettingEntry("order.timetabling"), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1456 SettingEntry("vehicle.dynamic_engines"), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1457 }; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1458 /** Vehicles sub-page */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1459 static SettingsPage _settings_vehicles_page = {_settings_vehicles, lengthof(_settings_vehicles)}; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1460 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1461 static SettingEntry _settings_main[] = { |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1462 SettingEntry(&_settings_ui_page, STR_CONFIG_SETTING_GUI), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1463 SettingEntry(&_settings_construction_page, STR_CONFIG_SETTING_CONSTRUCTION), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1464 SettingEntry(&_settings_vehicles_page, STR_CONFIG_SETTING_VEHICLES), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1465 SettingEntry(&_settings_stations_page, STR_CONFIG_SETTING_STATIONS), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1466 SettingEntry(&_settings_economy_page, STR_CONFIG_SETTING_ECONOMY), |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1467 SettingEntry(&_settings_ai_page, STR_CONFIG_SETTING_AI), |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1468 }; |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1469 |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1470 /** Main page, holding all advanced settings */ |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1471 static SettingsPage _settings_main_page = {_settings_main, lengthof(_settings_main)}; |
10667
0a7a8b6d89b3
(svn r14970) -Change: move all (patch) settings to a single "page" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10666
diff
changeset
|
1472 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1473 /** Widget numbers of settings window */ |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1474 enum GameSettingsWidgets { |
11697
ef293835ecc2
(svn r16082) -Codechange: Completed the widget numbers of the advanced settings window.
alberth <alberth@openttd.org>
parents:
11657
diff
changeset
|
1475 SETTINGSEL_OPTIONSPANEL, ///< Panel widget containing the option lists |
ef293835ecc2
(svn r16082) -Codechange: Completed the widget numbers of the advanced settings window.
alberth <alberth@openttd.org>
parents:
11657
diff
changeset
|
1476 SETTINGSEL_SCROLLBAR, ///< Scrollbar |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1477 }; |
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1478 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1479 struct GameSettingsWindow : Window { |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1480 static const int SETTINGTREE_LEFT_OFFSET = 5; ///< Position of left edge of setting values |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1481 static const int SETTINGTREE_RIGHT_OFFSET = 5; ///< Position of right edge of setting values |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1482 static const int SETTINGTREE_TOP_OFFSET = 5; ///< Position of top edge of setting values |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1483 static const int SETTINGTREE_BOTTOM_OFFSET = 5; ///< Position of bottom edge of setting values |
10540
ad93cc8a687f
(svn r14797) -Codechange: replace even more magic numbers with constants (Alberth)
rubidium <rubidium@openttd.org>
parents:
10539
diff
changeset
|
1484 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1485 static GameSettings *settings_ptr; ///< Pointer to the game settings being displayed and modified |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1486 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1487 SettingEntry *valuewindow_entry; ///< If non-NULL, pointer to setting for which a value-entering window has been opened |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1488 SettingEntry *clicked_entry; ///< If non-NULL, pointer to a clicked numeric setting (with a depressed left or right button) |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1489 |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1490 GameSettingsWindow(const WindowDesc *desc) : Window() |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1491 { |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1492 static bool first_time = true; |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1493 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1494 settings_ptr = (_game_mode == GM_MENU) ? &_settings_newgame : &_settings_game; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1495 |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1496 /* Build up the dynamic settings-array only once per OpenTTD session */ |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1497 if (first_time) { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1498 _settings_main_page.Init(); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1499 first_time = false; |
10670
22ffe020ed5d
(svn r14973) -Codechange: recursively fold subpages (Alberth)
rubidium <rubidium@openttd.org>
parents:
10667
diff
changeset
|
1500 } else { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1501 _settings_main_page.FoldAll(); // Close all sub-pages |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1502 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1503 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1504 this->valuewindow_entry = NULL; // No setting entry for which a entry window is opened |
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1505 this->clicked_entry = NULL; // No numeric setting buttons are depressed |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1506 |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1507 this->InitNested(desc, 0); |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1508 |
12880
09381837656b
(svn r17372) -Codechange: make the settings, rail and sign GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents:
12790
diff
changeset
|
1509 this->vscroll.SetCount(_settings_main_page.Length()); |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1510 } |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1511 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1512 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1513 { |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1514 if (widget != SETTINGSEL_OPTIONSPANEL) return; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1515 |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1516 resize->height = SETTING_HEIGHT = max(11, FONT_HEIGHT_NORMAL + 1); |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1517 resize->width = 1; |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1518 |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1519 size->height = 5 * resize->height + SETTINGTREE_TOP_OFFSET + SETTINGTREE_BOTTOM_OFFSET; |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1520 } |
8593
90ffef351faa
(svn r12174) -Codechange: Make the patches window dynamically resize to the largest patch tab, so adding patch options is simply a case of adding to the lists.
peter1138 <peter1138@openttd.org>
parents:
8551
diff
changeset
|
1521 |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1522 virtual void DrawWidget(const Rect &r, int widget) const |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1523 { |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1524 if (widget != SETTINGSEL_OPTIONSPANEL) return; |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1525 |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1526 _settings_main_page.Draw(settings_ptr, r.left + SETTINGTREE_LEFT_OFFSET, r.right - SETTINGTREE_RIGHT_OFFSET, r.top + SETTINGTREE_TOP_OFFSET, |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1527 this->vscroll.GetPosition(), this->vscroll.GetPosition() + this->vscroll.GetCapacity()); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1528 } |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1529 |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1530 virtual void OnPaint() |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1531 { |
9273
72a6d2e60834
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium <rubidium@openttd.org>
parents:
9246
diff
changeset
|
1532 this->DrawWidgets(); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1533 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1534 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1535 virtual void OnClick(Point pt, int widget) |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1536 { |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1537 if (widget != SETTINGSEL_OPTIONSPANEL) return; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1538 |
13695
75560523443c
(svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents:
13672
diff
changeset
|
1539 int y = pt.y - this->GetWidget<NWidgetBase>(widget)->pos_y - SETTINGTREE_TOP_OFFSET; // Shift y coordinate |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1540 if (y < 0) return; // Clicked above first entry |
10541
9742f1fb3d1b
(svn r14798) -Codechange: move variable declaration to first use of variable (Alberth)
rubidium <rubidium@openttd.org>
parents:
10540
diff
changeset
|
1541 |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1542 byte btn = this->vscroll.GetPosition() + y / this->resize.step_height; // Compute which setting is selected |
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1543 if (y % this->resize.step_height > this->resize.step_height - 2) return; // Clicked too low at the setting |
10664
5316fadc3fbd
(svn r14966) -Codechange: simplify and generalise finding patch entries (Alberth)
rubidium <rubidium@openttd.org>
parents:
10663
diff
changeset
|
1544 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1545 uint cur_row = 0; |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1546 SettingEntry *pe = _settings_main_page.FindEntry(btn, &cur_row); |
10666
eacae31e4fe5
(svn r14969) -Codechange: make drawing trees possible (Alberth)
rubidium <rubidium@openttd.org>
parents:
10665
diff
changeset
|
1547 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1548 if (pe == NULL) return; // Clicked below the last setting of the page |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1549 |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1550 int x = (_dynlang.text_dir == TD_RTL ? this->width - pt.x : pt.x) - SETTINGTREE_LEFT_OFFSET - (pe->level + 1) * LEVEL_WIDTH; // Shift x coordinate |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1551 if (x < 0) return; // Clicked left of the entry |
10665
5f8de7b4f4af
(svn r14967) -Codechange: split the drawing of the window into several smaller functions (Alberth)
rubidium <rubidium@openttd.org>
parents:
10664
diff
changeset
|
1552 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1553 if ((pe->flags & SEF_KIND_MASK) == SEF_SUBTREE_KIND) { |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1554 pe->d.sub.folded = !pe->d.sub.folded; // Flip 'folded'-ness of the sub-page |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1555 |
12880
09381837656b
(svn r17372) -Codechange: make the settings, rail and sign GUIs use the scrollbar wrappers
rubidium <rubidium@openttd.org>
parents:
12790
diff
changeset
|
1556 this->vscroll.SetCount(_settings_main_page.Length()); |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1557 this->SetDirty(); |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1558 return; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1559 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1560 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1561 assert((pe->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1562 const SettingDesc *sd = pe->d.entry.setting; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1563 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1564 /* return if action is only active in network, or only settable by server */ |
12024
ca8b215793c4
(svn r16431) -Fix (16429): Company settings can also be changed in multiplayer games
yexo <yexo@openttd.org>
parents:
12022
diff
changeset
|
1565 if (!(sd->save.conv & SLF_NETWORK_NO) && _networking && !_network_server && !(sd->desc.flags & SGF_PER_COMPANY)) return; |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1566 if ((sd->desc.flags & SGF_NETWORK_ONLY) && !_networking) return; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1567 if ((sd->desc.flags & SGF_NO_NETWORK) && _networking) return; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1568 |
12022
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1569 const void *var = ResolveVariableAddress(settings_ptr, sd); |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1570 int32 value = (int32)ReadValue(var, sd->save.conv); |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1571 |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1572 /* clicked on the icon on the left side. Either scroller or bool on/off */ |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1573 if (x < 21) { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1574 const SettingDescBase *sdb = &sd->desc; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1575 int32 oldvalue = value; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1576 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1577 switch (sdb->cmd) { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1578 case SDT_BOOLX: value ^= 1; break; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1579 case SDT_ONEOFMANY: |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1580 case SDT_NUMX: { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1581 /* Add a dynamic step-size to the scroller. In a maximum of |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1582 * 50-steps you should be able to get from min to max, |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1583 * unless specified otherwise in the 'interval' variable |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1584 * of the current setting. */ |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1585 uint32 step = (sdb->interval == 0) ? ((sdb->max - sdb->min) / 50) : sdb->interval; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1586 if (step == 0) step = 1; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1587 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1588 /* don't allow too fast scrolling */ |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1589 if ((this->flags4 & WF_TIMEOUT_MASK) > WF_TIMEOUT_TRIGGER) { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1590 _left_button_clicked = false; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1591 return; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1592 } |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1593 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1594 /* Increase or decrease the value and clamp it to extremes */ |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1595 if (x >= 10) { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1596 value += step; |
12357
8fe6b4cef297
(svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive".
rubidium <rubidium@openttd.org>
parents:
12272
diff
changeset
|
1597 if (sdb->min < 0) { |
8fe6b4cef297
(svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive".
rubidium <rubidium@openttd.org>
parents:
12272
diff
changeset
|
1598 assert((int32)sdb->max >= 0); |
8fe6b4cef297
(svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive".
rubidium <rubidium@openttd.org>
parents:
12272
diff
changeset
|
1599 if (value > (int32)sdb->max) value = (int32)sdb->max; |
8fe6b4cef297
(svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive".
rubidium <rubidium@openttd.org>
parents:
12272
diff
changeset
|
1600 } else { |
8fe6b4cef297
(svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive".
rubidium <rubidium@openttd.org>
parents:
12272
diff
changeset
|
1601 if ((uint32)value > sdb->max) value = (int32)sdb->max; |
8fe6b4cef297
(svn r16781) -Fix [FS#3026] (r16297): don't cast negative values to uints when the settings' range is "negative..positive".
rubidium <rubidium@openttd.org>
parents:
12272
diff
changeset
|
1602 } |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1603 if (value < sdb->min) value = sdb->min; // skip between "disabled" and minimum |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1604 } else { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1605 value -= step; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1606 if (value < sdb->min) value = (sdb->flags & SGF_0ISDISABLED) ? 0 : sdb->min; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1607 } |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1608 |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1609 /* Set up scroller timeout for numeric values */ |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1610 if (value != oldvalue && !(sd->desc.flags & SGF_MULTISTRING)) { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1611 if (this->clicked_entry != NULL) { // Release previous buttons if any |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1612 this->clicked_entry->SetButtons(0); |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1613 } |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1614 this->clicked_entry = pe; |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1615 this->clicked_entry->SetButtons((x >= 10) != (_dynlang.text_dir == TD_RTL) ? SEF_RIGHT_DEPRESSED : SEF_LEFT_DEPRESSED); |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1616 this->flags4 |= WF_TIMEOUT_BEGIN; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1617 _left_button_clicked = false; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1618 } |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1619 } break; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1620 |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1621 default: NOT_REACHED(); |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1622 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1623 |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1624 if (value != oldvalue) { |
12022
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1625 if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1626 SetCompanySetting(pe->d.entry.index, value); |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1627 } else { |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1628 SetSettingValue(pe->d.entry.index, value); |
6258c029db2d
(svn r16429) -Change: Make the company settings behave like all others settings: the default set in the main menu / config file is now really the default for a new company, and changing the value in game will no longer change the default for new companies.
yexo <yexo@openttd.org>
parents:
11973
diff
changeset
|
1629 } |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1630 this->SetDirty(); |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1631 } |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1632 } else { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1633 /* only open editbox for types that its sensible for */ |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1634 if (sd->desc.cmd != SDT_BOOLX && !(sd->desc.flags & SGF_MULTISTRING)) { |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1635 /* Show the correct currency-translated value */ |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1636 if (sd->desc.flags & SGF_CURRENCY) value *= _currency->rate; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1637 |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1638 this->valuewindow_entry = pe; |
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1639 SetDParam(0, value); |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
1640 ShowQueryString(STR_JUST_INT, STR_CONFIG_SETTING_QUERY_CAPTION, 10, 100, this, CS_NUMERAL, QSF_NONE); |
10674
142d8484c2d8
(svn r14978) -Codechange: simplify the control flow of the OnClick of the settings window
rubidium <rubidium@openttd.org>
parents:
10671
diff
changeset
|
1641 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1642 } |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1643 } |
8190
eb210e97738e
(svn r11753) -Codechange: re-indent the switch case structures, as to be more code style oriented.
belugas <belugas@openttd.org>
parents:
8189
diff
changeset
|
1644 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1645 virtual void OnTimeout() |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1646 { |
10661
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
1647 if (this->clicked_entry != NULL) { // On timeout, release any depressed buttons |
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
1648 this->clicked_entry->SetButtons(0); |
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
1649 this->clicked_entry = NULL; |
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
1650 this->SetDirty(); |
ba3579a2b84f
(svn r14963) -Codechange: remember what entry was clicked instead of the index (Alberth)
rubidium <rubidium@openttd.org>
parents:
10660
diff
changeset
|
1651 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1652 } |
8190
eb210e97738e
(svn r11753) -Codechange: re-indent the switch case structures, as to be more code style oriented.
belugas <belugas@openttd.org>
parents:
8189
diff
changeset
|
1653 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1654 virtual void OnQueryTextFinished(char *str) |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1655 { |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1656 if (!StrEmpty(str)) { |
10663
41ac7281100a
(svn r14965) -Codechange: remember the patch entry instead of the page and index of the entry for handling the "input box" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10662
diff
changeset
|
1657 assert(this->valuewindow_entry != NULL); |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1658 assert((this->valuewindow_entry->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); |
10663
41ac7281100a
(svn r14965) -Codechange: remember the patch entry instead of the page and index of the entry for handling the "input box" (Alberth)
rubidium <rubidium@openttd.org>
parents:
10662
diff
changeset
|
1659 const SettingDesc *sd = this->valuewindow_entry->d.entry.setting; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1660 int32 value = atoi(str); |
8190
eb210e97738e
(svn r11753) -Codechange: re-indent the switch case structures, as to be more code style oriented.
belugas <belugas@openttd.org>
parents:
8189
diff
changeset
|
1661 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1662 /* Save the correct currency-translated value */ |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1663 if (sd->desc.flags & SGF_CURRENCY) value /= _currency->rate; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1664 |
12067
43d8d69b7a31
(svn r16474) -Fix [FS#2933]: could set company related settings via query window
rubidium <rubidium@openttd.org>
parents:
12024
diff
changeset
|
1665 if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { |
43d8d69b7a31
(svn r16474) -Fix [FS#2933]: could set company related settings via query window
rubidium <rubidium@openttd.org>
parents:
12024
diff
changeset
|
1666 SetCompanySetting(this->valuewindow_entry->d.entry.index, value); |
43d8d69b7a31
(svn r16474) -Fix [FS#2933]: could set company related settings via query window
rubidium <rubidium@openttd.org>
parents:
12024
diff
changeset
|
1667 } else { |
43d8d69b7a31
(svn r16474) -Fix [FS#2933]: could set company related settings via query window
rubidium <rubidium@openttd.org>
parents:
12024
diff
changeset
|
1668 SetSettingValue(this->valuewindow_entry->d.entry.index, value); |
43d8d69b7a31
(svn r16474) -Fix [FS#2933]: could set company related settings via query window
rubidium <rubidium@openttd.org>
parents:
12024
diff
changeset
|
1669 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1670 this->SetDirty(); |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1671 } |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1672 } |
10543
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
1673 |
13344
04b02b2cfa2b
(svn r17853) -Codechange: remove the 'delta' parameter from OnResize; it was used in ways that aren't always wanted, causing bugs and the like. Also with nested widgets most reasons for handling OnResize have gone.
rubidium <rubidium@openttd.org>
parents:
13281
diff
changeset
|
1674 virtual void OnResize() |
10543
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
1675 { |
14037
ca29deba0f1a
(svn r18580) -Codechange: Use widget information only for setting scrollbar capacity.
alberth <alberth@openttd.org>
parents:
13983
diff
changeset
|
1676 this->vscroll.SetCapacityFromWidget(this, SETTINGSEL_OPTIONSPANEL, SETTINGTREE_TOP_OFFSET + SETTINGTREE_BOTTOM_OFFSET); |
10543
0667832b2888
(svn r14800) -Codechange: make the advanced settings window resizeable and scrollable (most by Alberth)
rubidium <rubidium@openttd.org>
parents:
10542
diff
changeset
|
1677 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1678 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1679 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1680 GameSettings *GameSettingsWindow::settings_ptr = NULL; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1681 |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1682 static const NWidgetPart _nested_settings_selection_widgets[] = { |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1683 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1684 NWidget(WWT_CLOSEBOX, COLOUR_MAUVE), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1685 NWidget(WWT_CAPTION, COLOUR_MAUVE), SetDataTip(STR_CONFIG_SETTING_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1686 EndContainer(), |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1687 NWidget(NWID_HORIZONTAL), |
13364
f52b5b6c607b
(svn r17873) -Codechange: make the advanced settings window nested
rubidium <rubidium@openttd.org>
parents:
13344
diff
changeset
|
1688 NWidget(WWT_PANEL, COLOUR_MAUVE, SETTINGSEL_OPTIONSPANEL), SetMinimalSize(400, 174), EndContainer(), |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1689 NWidget(NWID_VERTICAL), |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1690 NWidget(WWT_SCROLLBAR, COLOUR_MAUVE, SETTINGSEL_SCROLLBAR), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1691 NWidget(WWT_RESIZEBOX, COLOUR_MAUVE), |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1692 EndContainer(), |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1693 EndContainer(), |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1694 }; |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1695 |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1696 static const WindowDesc _settings_selection_desc( |
13796
3e68f07eb821
(svn r18322) -Codechange: remove the WDP duplication; no need to tell the same twice.
rubidium <rubidium@openttd.org>
parents:
13760
diff
changeset
|
1697 WDP_CENTER, 450, 397, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5688
diff
changeset
|
1698 WC_GAME_OPTIONS, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1699 0, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13509
diff
changeset
|
1700 _nested_settings_selection_widgets, lengthof(_nested_settings_selection_widgets) |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1701 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1702 |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1703 void ShowGameSettings() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1704 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1705 DeleteWindowById(WC_GAME_OPTIONS, 0); |
11069
36d798171bfd
(svn r15410) -Cleanup: get rid of most of the references to the 'patches' except where it's used for backward compatability.
rubidium <rubidium@openttd.org>
parents:
11049
diff
changeset
|
1706 new GameSettingsWindow(&_settings_selection_desc); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1707 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1708 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1709 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1710 /** |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1711 * Draw [<][>] boxes. |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1712 * @param x the x position to draw |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1713 * @param y the y position to draw |
9871
fa16e41cec2c
(svn r14017) -Codechange: DrawArrowButtons now uses Colours enum to specify the colour of the button
belugas <belugas@openttd.org>
parents:
9793
diff
changeset
|
1714 * @param button_colour the colour of the button |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1715 * @param state 0 = none clicked, 1 = first clicked, 2 = second clicked |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1716 * @param clickable_left is the left button clickable? |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1717 * @param clickable_right is the right button clickable? |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1718 */ |
9872
c26adcd5367e
(svn r14018) -Fix (r14017): Typos prevented compilation.
peter1138 <peter1138@openttd.org>
parents:
9871
diff
changeset
|
1719 void DrawArrowButtons(int x, int y, Colours button_colour, byte state, bool clickable_left, bool clickable_right) |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1720 { |
10358
531cadaa0bbc
(svn r14609) -Codechange: Use supplied button colour instead of hardcoded yellow, for 'greyed out' arrow buttons. (Yorick)
peter1138 <peter1138@openttd.org>
parents:
10310
diff
changeset
|
1721 int colour = _colour_gradient[button_colour][2]; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1722 |
9871
fa16e41cec2c
(svn r14017) -Codechange: DrawArrowButtons now uses Colours enum to specify the colour of the button
belugas <belugas@openttd.org>
parents:
9793
diff
changeset
|
1723 DrawFrameRect(x, y + 1, x + 9, y + 9, button_colour, (state == 1) ? FR_LOWERED : FR_NONE); |
fa16e41cec2c
(svn r14017) -Codechange: DrawArrowButtons now uses Colours enum to specify the colour of the button
belugas <belugas@openttd.org>
parents:
9793
diff
changeset
|
1724 DrawFrameRect(x + 10, y + 1, x + 19, y + 9, button_colour, (state == 2) ? FR_LOWERED : FR_NONE); |
13665
d9309c7b84bf
(svn r18189) -Codechange: remove some now unneeded strings
rubidium <rubidium@openttd.org>
parents:
13663
diff
changeset
|
1725 DrawSprite(SPR_ARROW_LEFT, PAL_NONE, x + WD_IMGBTN_LEFT, y + WD_IMGBTN_TOP); |
d9309c7b84bf
(svn r18189) -Codechange: remove some now unneeded strings
rubidium <rubidium@openttd.org>
parents:
13663
diff
changeset
|
1726 DrawSprite(SPR_ARROW_RIGHT, PAL_NONE, x + WD_IMGBTN_LEFT + 10, y + WD_IMGBTN_TOP); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1727 |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1728 /* Grey out the buttons that aren't clickable */ |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1729 bool rtl = _dynlang.text_dir == TD_RTL; |
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1730 if (rtl ? !clickable_right : !clickable_left) { |
9871
fa16e41cec2c
(svn r14017) -Codechange: DrawArrowButtons now uses Colours enum to specify the colour of the button
belugas <belugas@openttd.org>
parents:
9793
diff
changeset
|
1731 GfxFillRect(x + 1, y + 1, x + 1 + 8, y + 8, colour, FILLRECT_CHECKER); |
9872
c26adcd5367e
(svn r14018) -Fix (r14017): Typos prevented compilation.
peter1138 <peter1138@openttd.org>
parents:
9871
diff
changeset
|
1732 } |
13672
24880b3f9d87
(svn r18197) -Codechange: make the advanced settings window RTL aware and more big font aware
rubidium <rubidium@openttd.org>
parents:
13670
diff
changeset
|
1733 if (rtl ? !clickable_left : !clickable_right) { |
9872
c26adcd5367e
(svn r14018) -Fix (r14017): Typos prevented compilation.
peter1138 <peter1138@openttd.org>
parents:
9871
diff
changeset
|
1734 GfxFillRect(x + 11, y + 1, x + 11 + 8, y + 8, colour, FILLRECT_CHECKER); |
c26adcd5367e
(svn r14018) -Fix (r14017): Typos prevented compilation.
peter1138 <peter1138@openttd.org>
parents:
9871
diff
changeset
|
1735 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1736 } |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1737 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1738 /** Widget numbers of the custom currency window. */ |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1739 enum CustomCurrencyWidgets { |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1740 CUSTCURR_RATE_DOWN, |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1741 CUSTCURR_RATE_UP, |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1742 CUSTCURR_RATE, |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1743 CUSTCURR_SEPARATOR_EDIT, |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1744 CUSTCURR_SEPARATOR, |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1745 CUSTCURR_PREFIX_EDIT, |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1746 CUSTCURR_PREFIX, |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1747 CUSTCURR_SUFFIX_EDIT, |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1748 CUSTCURR_SUFFIX, |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1749 CUSTCURR_YEAR_DOWN, |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1750 CUSTCURR_YEAR_UP, |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1751 CUSTCURR_YEAR, |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1752 CUSTCURR_PREVIEW, |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1753 }; |
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1754 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1755 struct CustomCurrencyWindow : Window { |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1756 int query_widget; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1757 |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1758 CustomCurrencyWindow(const WindowDesc *desc) : Window() |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1759 { |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1760 this->InitNested(desc); |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1761 |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1762 SetButtonState(); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1763 } |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1764 |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1765 void SetButtonState() |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1766 { |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1767 this->SetWidgetDisabledState(CUSTCURR_RATE_DOWN, _custom_currency.rate == 1); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1768 this->SetWidgetDisabledState(CUSTCURR_RATE_UP, _custom_currency.rate == UINT16_MAX); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1769 this->SetWidgetDisabledState(CUSTCURR_YEAR_DOWN, _custom_currency.to_euro == CF_NOEURO); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1770 this->SetWidgetDisabledState(CUSTCURR_YEAR_UP, _custom_currency.to_euro == MAX_YEAR); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1771 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1772 |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1773 virtual void SetStringParameters(int widget) const |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1774 { |
13136
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1775 switch (widget) { |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1776 case CUSTCURR_RATE: SetDParam(0, 1); SetDParam(1, 1); break; |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1777 case CUSTCURR_SEPARATOR: SetDParamStr(0, _custom_currency.separator); break; |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1778 case CUSTCURR_PREFIX: SetDParamStr(0, _custom_currency.prefix); break; |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1779 case CUSTCURR_SUFFIX: SetDParamStr(0, _custom_currency.suffix); break; |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1780 case CUSTCURR_YEAR: |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1781 SetDParam(0, (_custom_currency.to_euro != CF_NOEURO) ? STR_CURRENCY_SWITCH_TO_EURO : STR_CURRENCY_SWITCH_TO_EURO_NEVER); |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1782 SetDParam(1, _custom_currency.to_euro); |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1783 break; |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1784 |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1785 case CUSTCURR_PREVIEW: |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1786 SetDParam(0, 10000); |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1787 break; |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1788 } |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1789 } |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1790 |
13705
8dee47e001b2
(svn r18230) -Codechange: Allow fill stepsize to be set from Window::UpdateWidgetSize().
alberth <alberth@openttd.org>
parents:
13704
diff
changeset
|
1791 virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1792 { |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1793 switch (widget) { |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1794 /* Set the appropriate width for the edit 'buttons' */ |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1795 case CUSTCURR_SEPARATOR_EDIT: |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1796 case CUSTCURR_PREFIX_EDIT: |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1797 case CUSTCURR_SUFFIX_EDIT: |
13695
75560523443c
(svn r18220) -Codechange: Reduce number of nested widget dynamic casts.
alberth <alberth@openttd.org>
parents:
13672
diff
changeset
|
1798 size->width = this->GetWidget<NWidgetBase>(CUSTCURR_RATE_DOWN)->smallest_x + this->GetWidget<NWidgetBase>(CUSTCURR_RATE_UP)->smallest_x; |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1799 break; |
13136
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1800 |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1801 /* Make sure the window is wide enough for the widest exchange rate */ |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1802 case CUSTCURR_RATE: |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1803 SetDParam(0, 1); |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1804 SetDParam(1, INT32_MAX); |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1805 *size = GetStringBoundingBox(STR_CURRENCY_EXCHANGE_RATE); |
7db0723659c0
(svn r17641) -Codechange: remove the {N:...} that's not needed anymore since the currency window is nested.
rubidium <rubidium@openttd.org>
parents:
13135
diff
changeset
|
1806 break; |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1807 } |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1808 } |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1809 |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1810 virtual void OnPaint() |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1811 { |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1812 this->DrawWidgets(); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1813 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1814 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1815 virtual void OnClick(Point pt, int widget) |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1816 { |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1817 int line = 0; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1818 int len = 0; |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1819 StringID str = 0; |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1820 CharSetFilter afilter = CS_ALPHANUMERAL; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1821 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1822 switch (widget) { |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1823 case CUSTCURR_RATE_DOWN: |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1824 if (_custom_currency.rate > 1) _custom_currency.rate--; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1825 if (_custom_currency.rate == 1) this->DisableWidget(CUSTCURR_RATE_DOWN); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1826 this->EnableWidget(CUSTCURR_RATE_UP); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1827 break; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1828 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1829 case CUSTCURR_RATE_UP: |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1830 if (_custom_currency.rate < UINT16_MAX) _custom_currency.rate++; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1831 if (_custom_currency.rate == UINT16_MAX) this->DisableWidget(CUSTCURR_RATE_UP); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1832 this->EnableWidget(CUSTCURR_RATE_DOWN); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1833 break; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1834 |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1835 case CUSTCURR_RATE: |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1836 SetDParam(0, _custom_currency.rate); |
12493
32e2de3d509a
(svn r16930) -Codechange: more StringID name unification and grouping
rubidium <rubidium@openttd.org>
parents:
12475
diff
changeset
|
1837 str = STR_JUST_INT; |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1838 len = 5; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1839 line = CUSTCURR_RATE; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1840 afilter = CS_NUMERAL; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1841 break; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1842 |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1843 case CUSTCURR_SEPARATOR_EDIT: |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1844 case CUSTCURR_SEPARATOR: |
11754
1b84d3b57f8b
(svn r16144) -Fix (r16129): setting the custom digit grouping separator required to restart OpenTTD to take effect. Now also support non 1 ASCII character custom grouping separators.
rubidium <rubidium@openttd.org>
parents:
11752
diff
changeset
|
1845 SetDParamStr(0, _custom_currency.separator); |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9607
diff
changeset
|
1846 str = STR_JUST_RAW_STRING; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1847 len = 1; |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1848 line = CUSTCURR_SEPARATOR; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1849 break; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1850 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1851 case CUSTCURR_PREFIX_EDIT: |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1852 case CUSTCURR_PREFIX: |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9607
diff
changeset
|
1853 SetDParamStr(0, _custom_currency.prefix); |
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9607
diff
changeset
|
1854 str = STR_JUST_RAW_STRING; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1855 len = 12; |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1856 line = CUSTCURR_PREFIX; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1857 break; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1858 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1859 case CUSTCURR_SUFFIX_EDIT: |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1860 case CUSTCURR_SUFFIX: |
9648
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9607
diff
changeset
|
1861 SetDParamStr(0, _custom_currency.suffix); |
b53049484e44
(svn r13715) -Fix [FS#2129]: C-like strings had to be rebound each time they were printed, otherwise the text could change due to the few number of slots that could be used to bind.
rubidium <rubidium@openttd.org>
parents:
9607
diff
changeset
|
1862 str = STR_JUST_RAW_STRING; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1863 len = 12; |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1864 line = CUSTCURR_SUFFIX; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1865 break; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1866 |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1867 case CUSTCURR_YEAR_DOWN: |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1868 _custom_currency.to_euro = (_custom_currency.to_euro <= 2000) ? CF_NOEURO : _custom_currency.to_euro - 1; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1869 if (_custom_currency.to_euro == CF_NOEURO) this->DisableWidget(CUSTCURR_YEAR_DOWN); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1870 this->EnableWidget(CUSTCURR_YEAR_UP); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1871 break; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1872 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1873 case CUSTCURR_YEAR_UP: |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1874 _custom_currency.to_euro = Clamp(_custom_currency.to_euro + 1, 2000, MAX_YEAR); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1875 if (_custom_currency.to_euro == MAX_YEAR) this->DisableWidget(CUSTCURR_YEAR_UP); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1876 this->EnableWidget(CUSTCURR_YEAR_DOWN); |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1877 break; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1878 |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1879 case CUSTCURR_YEAR: |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1880 SetDParam(0, _custom_currency.to_euro); |
12493
32e2de3d509a
(svn r16930) -Codechange: more StringID name unification and grouping
rubidium <rubidium@openttd.org>
parents:
12475
diff
changeset
|
1881 str = STR_JUST_INT; |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1882 len = 7; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1883 line = CUSTCURR_YEAR; |
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1884 afilter = CS_NUMERAL; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1885 break; |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1886 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1887 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1888 if (len != 0) { |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1889 this->query_widget = line; |
10145
dbe302da93a8
(svn r14331) -Codechange: use an enum as additional parameter for ShowQueryString()
smatz <smatz@openttd.org>
parents:
9872
diff
changeset
|
1890 ShowQueryString(str, STR_CURRENCY_CHANGE_PARAMETER, len + 1, 250, this, afilter, QSF_NONE); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1891 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1892 |
10180
e024f1d28082
(svn r14390) -Codechange: replace magic constants with symbolic constants.
rubidium <rubidium@openttd.org>
parents:
10145
diff
changeset
|
1893 this->flags4 |= WF_TIMEOUT_BEGIN; |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1894 this->SetDirty(); |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1895 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1896 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1897 virtual void OnQueryTextFinished(char *str) |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1898 { |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1899 if (str == NULL) return; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1900 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1901 switch (this->query_widget) { |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1902 case CUSTCURR_RATE: |
10510
c317167cc7a4
(svn r14767) -Codechange: remove some unneeded artificial limits from currencies and use the bounds of the data type.
rubidium <rubidium@openttd.org>
parents:
10500
diff
changeset
|
1903 _custom_currency.rate = Clamp(atoi(str), 1, UINT16_MAX); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1904 break; |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1905 |
11368
82c90cd591ab
(svn r15718) -Cleanup: apply some comment coding style on the rest of the sources too
rubidium <rubidium@openttd.org>
parents:
11252
diff
changeset
|
1906 case CUSTCURR_SEPARATOR: // Thousands seperator |
11754
1b84d3b57f8b
(svn r16144) -Fix (r16129): setting the custom digit grouping separator required to restart OpenTTD to take effect. Now also support non 1 ASCII character custom grouping separators.
rubidium <rubidium@openttd.org>
parents:
11752
diff
changeset
|
1907 strecpy(_custom_currency.separator, str, lastof(_custom_currency.separator)); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1908 break; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1909 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1910 case CUSTCURR_PREFIX: |
10310
5cefbb1c3fd7
(svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents:
10234
diff
changeset
|
1911 strecpy(_custom_currency.prefix, str, lastof(_custom_currency.prefix)); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1912 break; |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1913 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1914 case CUSTCURR_SUFFIX: |
10310
5cefbb1c3fd7
(svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
skidd13 <skidd13@openttd.org>
parents:
10234
diff
changeset
|
1915 strecpy(_custom_currency.suffix, str, lastof(_custom_currency.suffix)); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1916 break; |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1917 |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1918 case CUSTCURR_YEAR: { // Year to switch to euro |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1919 int val = atoi(str); |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1920 |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1921 _custom_currency.to_euro = (val < 2000 ? CF_NOEURO : min(val, MAX_YEAR)); |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1922 break; |
8188
2ca3ac32fa76
(svn r11751) -Codechange: Enumify some widgets (and others) and while at it, apply some code style
belugas <belugas@openttd.org>
parents:
8182
diff
changeset
|
1923 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1924 } |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1925 MarkWholeScreenDirty(); |
11752
99ab03ebd58c
(svn r16142) -Codechange: Use widgets in the custom currency window.
alberth <alberth@openttd.org>
parents:
11730
diff
changeset
|
1926 SetButtonState(); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1927 } |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1928 |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1929 virtual void OnTimeout() |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1930 { |
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1931 this->SetDirty(); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1932 } |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1933 }; |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1934 |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1935 static const NWidgetPart _nested_cust_currency_widgets[] = { |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1936 NWidget(NWID_HORIZONTAL), |
13752
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1937 NWidget(WWT_CLOSEBOX, COLOUR_GREY), |
517d77f53919
(svn r18277) -Codechange: remove unneeded widget indices for close, resize and sticky boxes and for window captions
rubidium <rubidium@openttd.org>
parents:
13749
diff
changeset
|
1938 NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_CURRENCY_WINDOW, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1939 EndContainer(), |
13755
bf8a4ced15fe
(svn r18280) -Codechange: remove widget indices that are not needed for custom drawing/handling input
rubidium <rubidium@openttd.org>
parents:
13752
diff
changeset
|
1940 NWidget(WWT_PANEL, COLOUR_GREY), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1941 NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(7, 3, 0), |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1942 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 5), |
13663
62985032eb6e
(svn r18187) -Codechange: make the advanced face selection, custom currency, difficulty, news settings, signal, sign and vehicle details window RTL aware (use the arrow widget)
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1943 NWidget(NWID_BUTTON_ARROW, COLOUR_YELLOW, CUSTCURR_RATE_DOWN), SetDataTip(AWV_DECREASE, STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP), |
62985032eb6e
(svn r18187) -Codechange: make the advanced face selection, custom currency, difficulty, news settings, signal, sign and vehicle details window RTL aware (use the arrow widget)
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1944 NWidget(NWID_BUTTON_ARROW, COLOUR_YELLOW, CUSTCURR_RATE_UP), SetDataTip(AWV_INCREASE, STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1945 NWidget(NWID_SPACER), SetMinimalSize(5, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1946 NWidget(WWT_TEXT, COLOUR_BLUE, CUSTCURR_RATE), SetDataTip(STR_CURRENCY_EXCHANGE_RATE, STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP), SetFill(1, 0), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1947 EndContainer(), |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1948 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1949 NWidget(WWT_PUSHBTN, COLOUR_DARK_BLUE, CUSTCURR_SEPARATOR_EDIT), SetDataTip(0x0, STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP), SetFill(0, 1), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1950 NWidget(NWID_SPACER), SetMinimalSize(5, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1951 NWidget(WWT_TEXT, COLOUR_BLUE, CUSTCURR_SEPARATOR), SetDataTip(STR_CURRENCY_SEPARATOR, STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP), SetFill(1, 0), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1952 EndContainer(), |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1953 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1954 NWidget(WWT_PUSHBTN, COLOUR_DARK_BLUE, CUSTCURR_PREFIX_EDIT), SetDataTip(0x0, STR_CURRENCY_SET_CUSTOM_CURRENCY_PREFIX_TOOLTIP), SetFill(0, 1), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1955 NWidget(NWID_SPACER), SetMinimalSize(5, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1956 NWidget(WWT_TEXT, COLOUR_BLUE, CUSTCURR_PREFIX), SetDataTip(STR_CURRENCY_PREFIX, STR_CURRENCY_SET_CUSTOM_CURRENCY_PREFIX_TOOLTIP), SetFill(1, 0), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1957 EndContainer(), |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1958 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 5), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1959 NWidget(WWT_PUSHBTN, COLOUR_DARK_BLUE, CUSTCURR_SUFFIX_EDIT), SetDataTip(0x0, STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP), SetFill(0, 1), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1960 NWidget(NWID_SPACER), SetMinimalSize(5, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1961 NWidget(WWT_TEXT, COLOUR_BLUE, CUSTCURR_SUFFIX), SetDataTip(STR_CURRENCY_SUFFIX, STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP), SetFill(1, 0), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1962 EndContainer(), |
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1963 NWidget(NWID_HORIZONTAL), SetPIP(10, 0, 5), |
13663
62985032eb6e
(svn r18187) -Codechange: make the advanced face selection, custom currency, difficulty, news settings, signal, sign and vehicle details window RTL aware (use the arrow widget)
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1964 NWidget(NWID_BUTTON_ARROW, COLOUR_YELLOW, CUSTCURR_YEAR_DOWN), SetDataTip(AWV_DECREASE, STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP), |
62985032eb6e
(svn r18187) -Codechange: make the advanced face selection, custom currency, difficulty, news settings, signal, sign and vehicle details window RTL aware (use the arrow widget)
rubidium <rubidium@openttd.org>
parents:
13628
diff
changeset
|
1965 NWidget(NWID_BUTTON_ARROW, COLOUR_YELLOW, CUSTCURR_YEAR_UP), SetDataTip(AWV_INCREASE, STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1966 NWidget(NWID_SPACER), SetMinimalSize(5, 0), |
13704
af90d4bf0785
(svn r18229) -Codechange: Make fill_x, fill_y a number instead of a bool.
alberth <alberth@openttd.org>
parents:
13695
diff
changeset
|
1967 NWidget(WWT_TEXT, COLOUR_BLUE, CUSTCURR_YEAR), SetDataTip(STR_JUST_STRING, STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP), SetFill(1, 0), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1968 EndContainer(), |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1969 EndContainer(), |
13135
781c6205c0d7
(svn r17640) -Codechange: make the custom currency window nested
rubidium <rubidium@openttd.org>
parents:
13134
diff
changeset
|
1970 NWidget(WWT_LABEL, COLOUR_BLUE, CUSTCURR_PREVIEW), |
12632
e41943276802
(svn r17075) -Codechange: rename ~750 strings to be more uniform with their relatives
rubidium <rubidium@openttd.org>
parents:
12619
diff
changeset
|
1971 SetDataTip(STR_CURRENCY_PREVIEW, STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP), SetPadding(15, 1, 18, 2), |
11762
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1972 EndContainer(), |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1973 }; |
6ee45c95e58e
(svn r16152) -Codechange: Added nested widgets for advanced settings and for custom currency windows.
alberth <alberth@openttd.org>
parents:
11754
diff
changeset
|
1974 |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1975 static const WindowDesc _cust_currency_desc( |
13798
6f820ae12bb3
(svn r18324) -Codechange: there's no need for a default size when the window isn't resizable
rubidium <rubidium@openttd.org>
parents:
13796
diff
changeset
|
1976 WDP_CENTER, 0, 0, |
5893
8547517ef719
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium <rubidium@openttd.org>
parents:
5688
diff
changeset
|
1977 WC_CUSTOM_CURRENCY, WC_NONE, |
13749
fc3ab8256c95
(svn r18274) -Codechange: remove the unused WDF flags
rubidium <rubidium@openttd.org>
parents:
13705
diff
changeset
|
1978 WDF_UNCLICK_BUTTONS, |
13564
bae287664b02
(svn r18086) -Codechange: remove 'widget' from WindowDesc
rubidium <rubidium@openttd.org>
parents:
13509
diff
changeset
|
1979 _nested_cust_currency_widgets, lengthof(_nested_cust_currency_widgets) |
11373
474ba6cc0946
(svn r15723) -Codechange: use a constructor for WindowDescs as that makes expanding them much easier (Alberth)
rubidium <rubidium@openttd.org>
parents:
11368
diff
changeset
|
1980 ); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1981 |
6247
57363e064324
(svn r9050) -Codechange: Foo(void) -> Foo()
rubidium <rubidium@openttd.org>
parents:
6012
diff
changeset
|
1982 static void ShowCustCurrency() |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1983 { |
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1984 DeleteWindowById(WC_CUSTOM_CURRENCY, 0); |
9246
1684bf12f0e0
(svn r13112) -Codechange: make classes of the patches and custom currency windows.
rubidium <rubidium@openttd.org>
parents:
9231
diff
changeset
|
1985 new CustomCurrencyWindow(&_cust_currency_desc); |
5584
4b26bd55bd24
(svn r8033) [cpp] - Prepare for merge from branches/cpp (all .c files renamed to .cpp)
KUDr <KUDr@openttd.org>
parents:
diff
changeset
|
1986 } |