author | celestar |
Tue, 19 Jun 2007 07:21:01 +0000 | |
branch | gamebalance |
changeset 9913 | e79cd19772dd |
parent 9912 | 1ac8aac92385 |
permissions | -rw-r--r-- |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
1 |
/* $Id$ */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
2 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
3 |
/** @file newgrf_gui.cpp */ |
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
4 |
|
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
5 |
#include "stdafx.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
6 |
#include "openttd.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
7 |
#include "functions.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
8 |
#include "variables.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
9 |
#include "gfx.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
10 |
#include "gui.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
11 |
#include "window.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
12 |
#include "table/strings.h" |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
13 |
#include "table/sprites.h" |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
14 |
#include "newgrf.h" |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
15 |
#include "newgrf_config.h" |
6465
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
16 |
#include "strings.h" |
5838
9c3129cb019b
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5835
diff
changeset
|
17 |
#include "helpers.hpp" |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
18 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
19 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
20 |
/** Parse an integerlist string and set each found value |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
21 |
* @param p the string to be parsed. Each element in the list is seperated by a |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
22 |
* comma or a space character |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
23 |
* @param items pointer to the integerlist-array that will be filled with values |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
24 |
* @param maxitems the maximum number of elements the integerlist-array has |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
25 |
* @return returns the number of items found, or -1 on an error */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
26 |
static int parse_intlist(const char *p, int *items, int maxitems) |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
27 |
{ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
28 |
int n = 0, v; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
29 |
char *end; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
30 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
31 |
for (;;) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
32 |
v = strtol(p, &end, 0); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
33 |
if (p == end || n == maxitems) return -1; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
34 |
p = end; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
35 |
items[n++] = v; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
36 |
if (*p == '\0') break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
37 |
if (*p != ',' && *p != ' ') return -1; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
38 |
p++; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
39 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
40 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
41 |
return n; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
42 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
43 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
44 |
|
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
45 |
static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint w, uint bottom, bool show_params) |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
46 |
{ |
5885
262234e81333
(svn r8093) -Codechange: Add a function to get a string representation of an MD5SUM and use it.
Darkvater
parents:
5860
diff
changeset
|
47 |
char buff[256]; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
48 |
|
6429
02c062eb2c74
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros
parents:
6144
diff
changeset
|
49 |
if (c->error != NULL) { |
6465
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
50 |
SetDParamStr(0, c->filename); |
9913
e79cd19772dd
(svn r10213) [gamebalance] -Sync: r10100:10200 from trunk
celestar
parents:
9912
diff
changeset
|
51 |
SetDParamStr(1, c->error->data); |
6465
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
52 |
for (uint i = 0; i < c->error->num_params; i++) { |
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
53 |
uint32 param = 0; |
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
54 |
byte param_number = c->error->param_number[i]; |
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
55 |
|
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
56 |
if (param_number < c->num_params) param = c->param[param_number]; |
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
57 |
|
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
58 |
SetDParam(2 + i, param); |
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
59 |
} |
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
60 |
|
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
61 |
char message[512]; |
9913
e79cd19772dd
(svn r10213) [gamebalance] -Sync: r10100:10200 from trunk
celestar
parents:
9912
diff
changeset
|
62 |
GetString(message, c->error->custom_message != NULL ? BindCString(c->error->custom_message) : c->error->message, lastof(message)); |
6465
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
63 |
|
dddb39b41ee0
(svn r8881) -Feature: Allow built-in newgrf error messages to be translated, and load custom error messages properly.
maedhros
parents:
6429
diff
changeset
|
64 |
SetDParamStr(0, message); |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
65 |
y += DrawStringMultiLine(x, y, c->error->severity, w, bottom - y); |
6429
02c062eb2c74
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros
parents:
6144
diff
changeset
|
66 |
} |
02c062eb2c74
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros
parents:
6144
diff
changeset
|
67 |
|
5339
7573f179efe8
(svn r7505) -Feature: show NewGRFs used on a game server, show which NewGRFs you do and do not have.
rubidium
parents:
5329
diff
changeset
|
68 |
/* Draw filename or not if it is not known (GRF sent over internet) */ |
7573f179efe8
(svn r7505) -Feature: show NewGRFs used on a game server, show which NewGRFs you do and do not have.
rubidium
parents:
5329
diff
changeset
|
69 |
if (c->filename != NULL) { |
7573f179efe8
(svn r7505) -Feature: show NewGRFs used on a game server, show which NewGRFs you do and do not have.
rubidium
parents:
5329
diff
changeset
|
70 |
SetDParamStr(0, c->filename); |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
71 |
y += DrawStringMultiLine(x, y, STR_NEWGRF_FILENAME, w, bottom - y); |
5339
7573f179efe8
(svn r7505) -Feature: show NewGRFs used on a game server, show which NewGRFs you do and do not have.
rubidium
parents:
5329
diff
changeset
|
72 |
} |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
73 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
74 |
/* Prepare and draw GRF ID */ |
5894
eb5ff472c10f
(svn r8102) -Cleanup: Remove unreachable code (r8096), useless cast
Darkvater
parents:
5889
diff
changeset
|
75 |
snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->grfid)); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
76 |
SetDParamStr(0, buff); |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
77 |
y += DrawStringMultiLine(x, y, STR_NEWGRF_GRF_ID, w, bottom - y); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
78 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
79 |
/* Prepare and draw MD5 sum */ |
5885
262234e81333
(svn r8093) -Codechange: Add a function to get a string representation of an MD5SUM and use it.
Darkvater
parents:
5860
diff
changeset
|
80 |
md5sumToString(buff, lastof(buff), c->md5sum); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
81 |
SetDParamStr(0, buff); |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
82 |
y += DrawStringMultiLine(x, y, STR_NEWGRF_MD5SUM, w, bottom - y); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
83 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
84 |
/* Show GRF parameter list */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
85 |
if (show_params) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
86 |
if (c->num_params > 0) { |
5308
bad31e174cc6
(svn r7464) -Codechange: move BuildParamList from newgrf_gui to newgrf_config and
peter1138
parents:
5248
diff
changeset
|
87 |
GRFBuildParamList(buff, c, lastof(buff)); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
88 |
SetDParamStr(0, buff); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
89 |
} else { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
90 |
SetDParam(0, STR_01A9_NONE); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
91 |
} |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
92 |
y += DrawStringMultiLine(x, y, STR_NEWGRF_PARAMETER, w, bottom - y); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
93 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
94 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
95 |
/* Show flags */ |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
96 |
if (c->status == GCS_NOT_FOUND) y += DrawStringMultiLine(x, y, STR_NEWGRF_NOT_FOUND, w, bottom - y); |
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
97 |
if (c->status == GCS_DISABLED) y += DrawStringMultiLine(x, y, STR_NEWGRF_DISABLED, w, bottom - y); |
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
98 |
if (HASBIT(c->flags, GCF_COMPATIBLE)) y += DrawStringMultiLine(x, y, STR_NEWGRF_COMPATIBLE_LOADED, w, bottom - y); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
99 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
100 |
/* Draw GRF info if it exists */ |
5889
272800d151ac
(svn r8097) Replace strlen() {==,!=,>} 0 by the more concise {,!}StrEmpty(). Additionally the test takes O(1) instead of O(n) now
tron
parents:
5886
diff
changeset
|
101 |
if (c->info != NULL && !StrEmpty(c->info)) { |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
102 |
SetDParamStr(0, c->info); |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
103 |
y += DrawStringMultiLine(x, y, STR_02BD, w, bottom - y); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
104 |
} else { |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
105 |
y += DrawStringMultiLine(x, y, STR_NEWGRF_NO_INFO, w, bottom - y); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
106 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
107 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
108 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
109 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
110 |
/* Dialogue for adding NewGRF files to the selection */ |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
111 |
struct newgrf_add_d { |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
112 |
GRFConfig **list; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
113 |
const GRFConfig *sel; |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
114 |
}; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
115 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
116 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
117 |
static void NewGRFAddDlgWndProc(Window *w, WindowEvent *e) |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
118 |
{ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
119 |
switch (e->event) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
120 |
case WE_PAINT: { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
121 |
const GRFConfig *c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
122 |
int y; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
123 |
int n = 0; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
124 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
125 |
/* Count the number of GRFs */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
126 |
for (c = _all_grfs; c != NULL; c = c->next) n++; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
127 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
128 |
w->vscroll.cap = (w->widget[3].bottom - w->widget[3].top) / 10; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
129 |
SetVScrollCount(w, n); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
130 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
131 |
SetWindowWidgetDisabledState(w, 6, WP(w, newgrf_add_d).sel == NULL); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
132 |
DrawWindowWidgets(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
133 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
134 |
GfxFillRect(w->widget[3].left + 1, w->widget[3].top + 1, w->widget[3].right, w->widget[3].bottom, 0xD7); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
135 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
136 |
n = 0; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
137 |
y = w->widget[3].top + 1; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
138 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
139 |
for (c = _all_grfs; c != NULL; c = c->next) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
140 |
if (n >= w->vscroll.pos && n < w->vscroll.pos + w->vscroll.cap) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
141 |
bool h = c == WP(w, newgrf_add_d).sel; |
5889
272800d151ac
(svn r8097) Replace strlen() {==,!=,>} 0 by the more concise {,!}StrEmpty(). Additionally the test takes O(1) instead of O(n) now
tron
parents:
5886
diff
changeset
|
142 |
const char *text = (c->name != NULL && !StrEmpty(c->name)) ? c->name : c->filename; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
143 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
144 |
/* Draw selection background */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
145 |
if (h) GfxFillRect(3, y, w->width - 15, y + 9, 156); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
146 |
DoDrawStringTruncated(text, 4, y, h ? 0xC : 0x6, w->width - 18); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
147 |
y += 10; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
148 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
149 |
n++; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
150 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
151 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
152 |
if (WP(w, newgrf_add_d).sel != NULL) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
153 |
const Widget *wi = &w->widget[5]; |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
154 |
ShowNewGRFInfo(WP(w, newgrf_add_d).sel, wi->left + 2, wi->top + 2, wi->right - wi->left - 2, wi->bottom, false); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
155 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
156 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
157 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
158 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
159 |
case WE_CLICK: |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
160 |
switch (e->we.click.widget) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
161 |
case 3: { |
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
162 |
/* Get row... */ |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
163 |
const GRFConfig *c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
164 |
uint i = (e->we.click.pt.y - w->widget[3].top) / 10 + w->vscroll.pos; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
165 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
166 |
for (c = _all_grfs; c != NULL && i > 0; c = c->next, i--); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
167 |
WP(w, newgrf_add_d).sel = c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
168 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
169 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
170 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
171 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
172 |
case 6: // Add selection to list |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
173 |
if (WP(w, newgrf_add_d).sel != NULL) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
174 |
const GRFConfig *src = WP(w, newgrf_add_d).sel; |
5860
7fdc9b423ba1
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr
parents:
5838
diff
changeset
|
175 |
GRFConfig **list; |
5243
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
176 |
|
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
177 |
/* Find last entry in the list, checking for duplicate grfid on the way */ |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
178 |
for (list = WP(w, newgrf_add_d).list; *list != NULL; list = &(*list)->next) { |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
179 |
if ((*list)->grfid == src->grfid) { |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
180 |
ShowErrorMessage(INVALID_STRING_ID, STR_NEWGRF_DUPLICATE_GRFID, 0, 0); |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
181 |
return; |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
182 |
} |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
183 |
} |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
184 |
|
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
185 |
/* Copy GRF details from scanned list */ |
5860
7fdc9b423ba1
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
KUDr
parents:
5838
diff
changeset
|
186 |
GRFConfig *c = CallocT<GRFConfig>(1); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
187 |
*c = *src; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
188 |
c->filename = strdup(src->filename); |
9912
1ac8aac92385
(svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
9909
diff
changeset
|
189 |
if (src->full_path != NULL) c->full_path = strdup(src->full_path); |
1ac8aac92385
(svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
9909
diff
changeset
|
190 |
if (src->name != NULL) c->name = strdup(src->name); |
1ac8aac92385
(svn r10136) [gamebalance] -Sync: r9900:10100 from trunk
celestar
parents:
9909
diff
changeset
|
191 |
if (src->info != NULL) c->info = strdup(src->info); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
192 |
c->next = NULL; |
5243
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
193 |
|
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
194 |
/* Append GRF config to configuration list */ |
a564347a939b
(svn r7367) -Codechange: prevent adding files where the GRF ID is already in the list
peter1138
parents:
5241
diff
changeset
|
195 |
*list = c; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
196 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
197 |
DeleteWindowByClass(WC_SAVELOAD); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
198 |
InvalidateWindowData(WC_GAME_OPTIONS, 0); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
199 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
200 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
201 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
202 |
case 7: // Rescan list |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
203 |
WP(w, newgrf_add_d).sel = NULL; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
204 |
ScanNewGRFFiles(); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
205 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
206 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
207 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
208 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
209 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
210 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
211 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
212 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
213 |
static const Widget _newgrf_add_dlg_widgets[] = { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
214 |
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
215 |
{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 306, 0, 13, STR_NEWGRF_ADD_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
216 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
217 |
/* List of files */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
218 |
{ WWT_PANEL, RESIZE_RB, 14, 0, 294, 14, 221, 0x0, STR_NULL }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
219 |
{ WWT_INSET, RESIZE_RB, 14, 2, 292, 16, 219, 0x0, STR_NULL }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
220 |
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 295, 306, 14, 221, 0x0, STR_NULL }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
221 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
222 |
/* NewGRF file info */ |
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
223 |
{ WWT_PANEL, RESIZE_RTB, 14, 0, 306, 222, 324, 0x0, STR_NULL }, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
224 |
|
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
225 |
{ WWT_PUSHTXTBTN, RESIZE_RTB, 14, 0, 146, 325, 336, STR_NEWGRF_ADD_FILE, STR_NEWGRF_ADD_FILE_TIP }, |
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
226 |
{ WWT_PUSHTXTBTN, RESIZE_LRTB, 14, 147, 294, 325, 336, STR_NEWGRF_RESCAN_FILES, STR_NEWGRF_RESCAN_FILES_TIP }, |
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
227 |
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 295, 306, 325, 336, 0x0, STR_RESIZE_BUTTON }, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
228 |
{ WIDGETS_END }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
229 |
}; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
230 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
231 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
232 |
static const WindowDesc _newgrf_add_dlg_desc = { |
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
233 |
WDP_CENTER, WDP_CENTER, 307, 337, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
5919
diff
changeset
|
234 |
WC_SAVELOAD, WC_NONE, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
235 |
WDF_STD_TOOLTIPS | WDF_DEF_WIDGET | WDF_STD_BTN | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
236 |
_newgrf_add_dlg_widgets, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
237 |
NewGRFAddDlgWndProc, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
238 |
}; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
239 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
240 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
241 |
/* 'NewGRF Settings' dialogue */ |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
242 |
struct newgrf_d { |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
243 |
GRFConfig **orig_list; ///< grf list the window is shown with |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
244 |
GRFConfig **list; ///< temporary grf list to which changes are made |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
245 |
GRFConfig *sel; ///< selected grf item |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
246 |
bool editable; ///< is the window editable |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
247 |
bool show_params; ///< are the grf-parameters shown in the info-panel |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
248 |
bool execute; ///< on pressing 'apply changes' are grf changes applied immediately, or only list is updated |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
249 |
}; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
250 |
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(newgrf_d)); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
251 |
|
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
252 |
|
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
253 |
enum ShowNewGRFStateWidgets { |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
254 |
SNGRFS_ADD = 3, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
255 |
SNGRFS_REMOVE, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
256 |
SNGRFS_MOVE_UP, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
257 |
SNGRFS_MOVE_DOWN, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
258 |
SNGRFS_FILE_LIST = 7, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
259 |
SNGRFS_NEWGRF_INFO = 9, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
260 |
SNGRFS_SET_PARAMETERS, |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
261 |
SNGRFS_APPLY_CHANGES, |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
262 |
}; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
263 |
|
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
264 |
|
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
265 |
static void SetupNewGRFState(Window *w) |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
266 |
{ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
267 |
bool disable_all = WP(w, newgrf_d).sel == NULL || !WP(w, newgrf_d).editable; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
268 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
269 |
SetWindowWidgetDisabledState(w, 3, !WP(w, newgrf_d).editable); |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
270 |
SetWindowWidgetsDisabledState(w, disable_all, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
271 |
SNGRFS_REMOVE, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
272 |
SNGRFS_MOVE_UP, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
273 |
SNGRFS_MOVE_DOWN, |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
274 |
WIDGET_LIST_END |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
275 |
); |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
276 |
SetWindowWidgetDisabledState(w, SNGRFS_SET_PARAMETERS, !WP(w, newgrf_d).show_params || disable_all); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
277 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
278 |
if (!disable_all) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
279 |
/* All widgets are now enabled, so disable widgets we can't use */ |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
280 |
if (WP(w, newgrf_d).sel == *WP(w, newgrf_d).list) DisableWindowWidget(w, SNGRFS_MOVE_UP); |
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
281 |
if (WP(w, newgrf_d).sel->next == NULL) DisableWindowWidget(w, SNGRFS_MOVE_DOWN); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
282 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
283 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
284 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
285 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
286 |
static void SetupNewGRFWindow(Window *w) |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
287 |
{ |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
288 |
const GRFConfig *c; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
289 |
int i; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
290 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
291 |
for (c = *WP(w, newgrf_d).list, i = 0; c != NULL; c = c->next, i++); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
292 |
|
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
293 |
w->vscroll.cap = (w->widget[SNGRFS_FILE_LIST].bottom - w->widget[SNGRFS_FILE_LIST].top) / 14 + 1; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
294 |
SetVScrollCount(w, i); |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
295 |
SetWindowWidgetDisabledState(w, SNGRFS_APPLY_CHANGES, !WP(w, newgrf_d).editable); |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
296 |
} |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
297 |
|
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
298 |
|
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
299 |
/** Callback function for the newgrf 'apply changes' confirmation window |
9909
dce9a6923bb7
(svn r10133) [gamebalance] -Sync: r9620:9670 from trunk
celestar
parents:
9907
diff
changeset
|
300 |
* @param w Window which is calling this callback |
dce9a6923bb7
(svn r10133) [gamebalance] -Sync: r9620:9670 from trunk
celestar
parents:
9907
diff
changeset
|
301 |
* @param confirmed boolean value, true when yes was clicked, false otherwise |
dce9a6923bb7
(svn r10133) [gamebalance] -Sync: r9620:9670 from trunk
celestar
parents:
9907
diff
changeset
|
302 |
*/ |
5669
ea25407ffa55
(svn r7621) -Codechange: Rework ShowQuery into a general modal popup window. It gets passed
Darkvater
parents:
5552
diff
changeset
|
303 |
static void NewGRFConfirmationCallback(Window *w, bool confirmed) |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
304 |
{ |
5669
ea25407ffa55
(svn r7621) -Codechange: Rework ShowQuery into a general modal popup window. It gets passed
Darkvater
parents:
5552
diff
changeset
|
305 |
if (confirmed) { |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
306 |
newgrf_d *nd = &WP(w, newgrf_d); |
5886
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
307 |
GRFConfig *c; |
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
308 |
int i = 0; |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
309 |
|
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
310 |
CopyGRFConfigList(nd->orig_list, *nd->list); |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
311 |
ReloadNewGRFData(); |
5886
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
312 |
|
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
313 |
/* Show new, updated list */ |
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
314 |
for (c = *nd->list; c != NULL && c != nd->sel; c = c->next, i++); |
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
315 |
CopyGRFConfigList(nd->list, *nd->orig_list); |
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
316 |
for (c = *nd->list; c != NULL && i > 0; c = c->next, i--); |
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
317 |
nd->sel = c; |
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
318 |
|
5e0f0faf50fc
(svn r8094) -Feature/Fix (r7523): Show the activated status of the GRF list after pressing 'apply'
Darkvater
parents:
5885
diff
changeset
|
319 |
SetWindowDirty(w); |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
320 |
} |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
321 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
322 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
323 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
324 |
static void NewGRFWndProc(Window *w, WindowEvent *e) |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
325 |
{ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
326 |
switch (e->event) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
327 |
case WE_PAINT: { |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
328 |
const GRFConfig *c; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
329 |
int i, y; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
330 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
331 |
SetupNewGRFState(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
332 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
333 |
DrawWindowWidgets(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
334 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
335 |
/* Draw NewGRF list */ |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
336 |
y = w->widget[SNGRFS_FILE_LIST].top; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
337 |
for (c = *WP(w, newgrf_d).list, i = 0; c != NULL; c = c->next, i++) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
338 |
if (i >= w->vscroll.pos && i < w->vscroll.pos + w->vscroll.cap) { |
5889
272800d151ac
(svn r8097) Replace strlen() {==,!=,>} 0 by the more concise {,!}StrEmpty(). Additionally the test takes O(1) instead of O(n) now
tron
parents:
5886
diff
changeset
|
339 |
const char *text = (c->name != NULL && !StrEmpty(c->name)) ? c->name : c->filename; |
5919
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5898
diff
changeset
|
340 |
SpriteID pal; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
341 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
342 |
/* Pick a colour */ |
9895
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
343 |
switch (c->status) { |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
344 |
case GCS_NOT_FOUND: |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
345 |
case GCS_DISABLED: |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
346 |
pal = PALETTE_TO_RED; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
347 |
break; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
348 |
case GCS_ACTIVATED: |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
349 |
pal = PALETTE_TO_GREEN; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
350 |
break; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
351 |
default: |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
352 |
pal = PALETTE_TO_BLUE; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
353 |
break; |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
354 |
} |
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
355 |
|
7bd07f43b0e3
(svn r9321) [gamebalance] -Sync: r9025:9314 from trunk
celestar
parents:
6492
diff
changeset
|
356 |
if (HASBIT(c->flags, GCF_STATIC)) { |
5898
2ee7d23291fa
(svn r8106) -Feature/Fix: Add the ability to load savegames when you don't have the exact GRF files in your list. GRF files that are found based on GRFID (but not on matching md5sum) are used instead of disabling them. This does not affect MP games, there you still need an exact match.
Darkvater
parents:
5894
diff
changeset
|
357 |
pal = PALETTE_TO_GREY; |
2ee7d23291fa
(svn r8106) -Feature/Fix: Add the ability to load savegames when you don't have the exact GRF files in your list. GRF files that are found based on GRFID (but not on matching md5sum) are used instead of disabling them. This does not affect MP games, there you still need an exact match.
Darkvater
parents:
5894
diff
changeset
|
358 |
} else if (HASBIT(c->flags, GCF_COMPATIBLE)) { |
2ee7d23291fa
(svn r8106) -Feature/Fix: Add the ability to load savegames when you don't have the exact GRF files in your list. GRF files that are found based on GRFID (but not on matching md5sum) are used instead of disabling them. This does not affect MP games, there you still need an exact match.
Darkvater
parents:
5894
diff
changeset
|
359 |
pal = PALETTE_TO_ORANGE; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
360 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
361 |
|
5919
2b58160d667d
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
peter1138
parents:
5898
diff
changeset
|
362 |
DrawSprite(SPR_SQUARE, pal, 5, y + 2); |
6429
02c062eb2c74
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros
parents:
6144
diff
changeset
|
363 |
if (c->error != NULL) DrawSprite(SPR_WARNING_SIGN, 0, 20, y + 2); |
02c062eb2c74
(svn r8838) -Feature: Show newgrf error messages loaded in Action B in the newgrf gui
maedhros
parents:
6144
diff
changeset
|
364 |
DoDrawString(text, c->error != NULL ? 35 : 25, y + 3, WP(w, newgrf_d).sel == c ? 0xC : 0x10); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
365 |
y += 14; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
366 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
367 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
368 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
369 |
if (WP(w, newgrf_d).sel != NULL) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
370 |
/* Draw NewGRF file info */ |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
371 |
const Widget *wi = &w->widget[SNGRFS_NEWGRF_INFO]; |
9907
3b068c3a1c74
(svn r9675) [gamebalance] -Sync: r9420:9520 from trunk
celestar
parents:
9906
diff
changeset
|
372 |
ShowNewGRFInfo(WP(w, newgrf_d).sel, wi->left + 2, wi->top + 2, wi->right - wi->left - 2, wi->bottom, WP(w, newgrf_d).show_params); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
373 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
374 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
375 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
376 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
377 |
|
5241
2dafe1235308
(svn r7363) -Fix (r7357): Update count of NewGRFs when adding an file
peter1138
parents:
5237
diff
changeset
|
378 |
case WE_INVALIDATE_DATA: |
2dafe1235308
(svn r7363) -Fix (r7357): Update count of NewGRFs when adding an file
peter1138
parents:
5237
diff
changeset
|
379 |
SetupNewGRFWindow(w); |
2dafe1235308
(svn r7363) -Fix (r7357): Update count of NewGRFs when adding an file
peter1138
parents:
5237
diff
changeset
|
380 |
break; |
2dafe1235308
(svn r7363) -Fix (r7357): Update count of NewGRFs when adding an file
peter1138
parents:
5237
diff
changeset
|
381 |
|
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
382 |
case WE_CLICK: |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
383 |
switch (e->we.click.widget) { |
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
384 |
case SNGRFS_ADD: { // Add GRF |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
385 |
GRFConfig **list = WP(w, newgrf_d).list; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
386 |
Window *w; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
387 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
388 |
DeleteWindowByClass(WC_SAVELOAD); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
389 |
w = AllocateWindowDesc(&_newgrf_add_dlg_desc); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
390 |
w->resize.step_height = 10; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
391 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
392 |
WP(w, newgrf_add_d).list = list; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
393 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
394 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
395 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
396 |
case SNGRFS_REMOVE: { // Remove GRF |
5248
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
397 |
GRFConfig **pc, *c, *newsel; |
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
398 |
|
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
399 |
/* Choose the next GRF file to be the selected file */ |
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
400 |
newsel = WP(w, newgrf_d).sel->next; |
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
401 |
|
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
402 |
for (pc = WP(w, newgrf_d).list; (c = *pc) != NULL; pc = &c->next) { |
5248
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
403 |
/* If the new selection is empty (i.e. we're deleting the last item |
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
404 |
* in the list, pick the file just before the selected file */ |
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
405 |
if (newsel == NULL && c->next == WP(w, newgrf_d).sel) newsel = c; |
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
406 |
|
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
407 |
if (c == WP(w, newgrf_d).sel) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
408 |
*pc = c->next; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
409 |
free(c); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
410 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
411 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
412 |
} |
5248
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
413 |
|
2aa0c4cc8f23
(svn r7373) -Codechange: when removing a GRF from the list, make the next one selected, or the previous file if the last item is being removed. This makes clearing the list easier.
peter1138
parents:
5243
diff
changeset
|
414 |
WP(w, newgrf_d).sel = newsel; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
415 |
SetupNewGRFWindow(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
416 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
417 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
418 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
419 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
420 |
case SNGRFS_MOVE_UP: { // Move GRF up |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
421 |
GRFConfig **pc, *c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
422 |
if (WP(w, newgrf_d).sel == NULL) break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
423 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
424 |
for (pc = WP(w, newgrf_d).list; (c = *pc) != NULL; pc = &c->next) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
425 |
if (c->next == WP(w, newgrf_d).sel) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
426 |
c->next = WP(w, newgrf_d).sel->next; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
427 |
WP(w, newgrf_d).sel->next = c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
428 |
*pc = WP(w, newgrf_d).sel; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
429 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
430 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
431 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
432 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
433 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
434 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
435 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
436 |
case SNGRFS_MOVE_DOWN: { // Move GRF down |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
437 |
GRFConfig **pc, *c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
438 |
if (WP(w, newgrf_d).sel == NULL) break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
439 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
440 |
for (pc = WP(w, newgrf_d).list; (c = *pc) != NULL; pc = &c->next) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
441 |
if (c == WP(w, newgrf_d).sel) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
442 |
*pc = c->next; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
443 |
c->next = c->next->next; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
444 |
(*pc)->next = c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
445 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
446 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
447 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
448 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
449 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
450 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
451 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
452 |
case SNGRFS_FILE_LIST: { // Select a GRF |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
453 |
GRFConfig *c; |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
454 |
uint i = (e->we.click.pt.y - w->widget[SNGRFS_FILE_LIST].top) / 14 + w->vscroll.pos; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
455 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
456 |
for (c = *WP(w, newgrf_d).list; c != NULL && i > 0; c = c->next, i--); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
457 |
WP(w, newgrf_d).sel = c; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
458 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
459 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
460 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
461 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
462 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
463 |
case SNGRFS_APPLY_CHANGES: // Apply changes made to GRF list |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
464 |
if (WP(w, newgrf_d).execute) { |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
465 |
ShowQuery( |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
466 |
STR_POPUP_CAUTION_CAPTION, |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
467 |
STR_NEWGRF_CONFIRMATION_TEXT, |
5669
ea25407ffa55
(svn r7621) -Codechange: Rework ShowQuery into a general modal popup window. It gets passed
Darkvater
parents:
5552
diff
changeset
|
468 |
w, |
ea25407ffa55
(svn r7621) -Codechange: Rework ShowQuery into a general modal popup window. It gets passed
Darkvater
parents:
5552
diff
changeset
|
469 |
NewGRFConfirmationCallback |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
470 |
); |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
471 |
} else { |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
472 |
CopyGRFConfigList(WP(w, newgrf_d).orig_list, *WP(w, newgrf_d).list); |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
473 |
} |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
474 |
break; |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
475 |
|
9906
6f41b8713b65
(svn r9674) [gamebalance] -Sync: r9322:9420 from trunk
celestar
parents:
9895
diff
changeset
|
476 |
case SNGRFS_SET_PARAMETERS: { // Edit parameters |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
477 |
char buff[512]; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
478 |
if (WP(w, newgrf_d).sel == NULL) break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
479 |
|
5308
bad31e174cc6
(svn r7464) -Codechange: move BuildParamList from newgrf_gui to newgrf_config and
peter1138
parents:
5248
diff
changeset
|
480 |
GRFBuildParamList(buff, WP(w, newgrf_d).sel, lastof(buff)); |
5682
eeddbbacd4ac
(svn r7637) -Codechange: Change ShowQueryString to use a window pointer as a parent. If the
Darkvater
parents:
5669
diff
changeset
|
481 |
ShowQueryString(BindCString(buff), STR_NEWGRF_PARAMETER_QUERY, 63, 250, w, CS_ALPHANUMERAL); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
482 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
483 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
484 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
485 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
486 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
487 |
case WE_ON_EDIT_TEXT: |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
488 |
if (e->we.edittext.str != NULL) { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
489 |
/* Parse our new "int list" */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
490 |
GRFConfig *c = WP(w, newgrf_d).sel; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
491 |
c->num_params = parse_intlist(e->we.edittext.str, (int*)c->param, lengthof(c->param)); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
492 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
493 |
/* parse_intlist returns -1 on error */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
494 |
if (c->num_params == (byte)-1) c->num_params = 0; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
495 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
496 |
SetWindowDirty(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
497 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
498 |
|
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
499 |
case WE_DESTROY: |
6492
a1cc60b7a844
(svn r8920) -Codechange: Do not require to press 'Apply changes' in the newgrf GUI if the changes in there are not activated (this happens in the title screen)
Darkvater
parents:
6490
diff
changeset
|
500 |
if (!WP(w, newgrf_d).execute) { |
a1cc60b7a844
(svn r8920) -Codechange: Do not require to press 'Apply changes' in the newgrf GUI if the changes in there are not activated (this happens in the title screen)
Darkvater
parents:
6490
diff
changeset
|
501 |
CopyGRFConfigList(WP(w, newgrf_d).orig_list, *WP(w, newgrf_d).list); |
a1cc60b7a844
(svn r8920) -Codechange: Do not require to press 'Apply changes' in the newgrf GUI if the changes in there are not activated (this happens in the title screen)
Darkvater
parents:
6490
diff
changeset
|
502 |
} |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
503 |
/* Remove the temporary copy of grf-list used in window */ |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
504 |
ClearGRFConfigList(WP(w, newgrf_d).list); |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
505 |
break; |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
506 |
|
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
507 |
case WE_RESIZE: |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
508 |
w->vscroll.cap += e->we.sizing.diff.y / 14; |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
509 |
w->widget[SNGRFS_FILE_LIST].data = (w->vscroll.cap << 8) + 1; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
510 |
break; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
511 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
512 |
} |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
513 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
514 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
515 |
static const Widget _newgrf_widgets[] = { |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
516 |
{ WWT_CLOSEBOX, RESIZE_NONE, 10, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
517 |
{ WWT_CAPTION, RESIZE_RIGHT, 10, 11, 299, 0, 13, STR_NEWGRF_SETTINGS_CAPTION, STR_018C_WINDOW_TITLE_DRAG_THIS }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
518 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
519 |
/* NewGRF file Add, Remove, Move up, Move down */ |
5345
00c5ff01191a
(svn r7516) -Codechange: Number the newgrf-gui widgets and use their symbolic names for access with some const goodness.
Darkvater
parents:
5339
diff
changeset
|
520 |
{ WWT_PANEL, RESIZE_RIGHT, 10, 0, 299, 14, 29, STR_NULL, STR_NULL }, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
521 |
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 10, 79, 16, 27, STR_NEWGRF_ADD, STR_NEWGRF_ADD_TIP }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
522 |
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 80, 149, 16, 27, STR_NEWGRF_REMOVE, STR_NEWGRF_REMOVE_TIP }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
523 |
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 150, 219, 16, 27, STR_NEWGRF_MOVEUP, STR_NEWGRF_MOVEUP_TIP }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
524 |
{ WWT_PUSHTXTBTN, RESIZE_NONE, 3, 220, 289, 16, 27, STR_NEWGRF_MOVEDOWN, STR_NEWGRF_MOVEDOWN_TIP }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
525 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
526 |
/* NewGRF file list */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
527 |
{ WWT_MATRIX, RESIZE_RB, 10, 0, 287, 30, 99, 0x501, STR_NEWGRF_FILE_TIP }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
528 |
{ WWT_SCROLLBAR, RESIZE_LRB, 10, 288, 299, 30, 99, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
529 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
530 |
/* NewGRF file info */ |
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
531 |
{ WWT_PANEL, RESIZE_RTB, 10, 0, 299, 100, 212, STR_NULL, STR_NULL }, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
532 |
|
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
533 |
/* Edit parameter and apply changes button... */ |
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
534 |
{ WWT_PUSHTXTBTN, RESIZE_TB, 10, 0, 143, 213, 224, STR_NEWGRF_SET_PARAMETERS, STR_NULL }, |
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
535 |
{ WWT_PUSHTXTBTN, RESIZE_RTB, 10, 144, 287, 213, 224, STR_NEWGRF_APPLY_CHANGES, STR_NULL }, |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
536 |
|
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
537 |
{ WWT_RESIZEBOX, RESIZE_LRTB, 10, 288, 299, 213, 224, 0x0, STR_RESIZE_BUTTON }, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
538 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
539 |
{ WIDGETS_END }, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
540 |
}; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
541 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
542 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
543 |
static const WindowDesc _newgrf_desc = { |
5552
8463cf69909c
(svn r7549) -Fix (r7357): change the size of the NewGRF GUIs so any description of a GRF that is shown in TTDPatch without overflowing, does not overflow in OpenTTD.
rubidium
parents:
5352
diff
changeset
|
544 |
WDP_CENTER, WDP_CENTER, 300, 225, |
6144
5a0ffbf27ced
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
5919
diff
changeset
|
545 |
WC_GAME_OPTIONS, WC_NONE, |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
546 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
547 |
_newgrf_widgets, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
548 |
NewGRFWndProc, |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
549 |
}; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
550 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
551 |
|
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
552 |
/** Setup the NewGRF gui |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
553 |
* @param editable allow the user to make changes to the grfconfig in the window |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
554 |
* @param show_params show information about what parameters are set for the grf files |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
555 |
* @param exec_changes if changes are made to the list (editable is true), apply these |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
556 |
* changes immediately or only update the list |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
557 |
* @param config pointer to a linked-list of grfconfig's that will be shown */ |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
558 |
void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFConfig **config) |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
559 |
{ |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
560 |
static GRFConfig *local = NULL; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
561 |
Window *w; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
562 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
563 |
DeleteWindowByClass(WC_GAME_OPTIONS); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
564 |
w = AllocateWindowDesc(&_newgrf_desc); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
565 |
if (w == NULL) return; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
566 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
567 |
w->resize.step_height = 14; |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
568 |
CopyGRFConfigList(&local, *config); |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
569 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
570 |
/* Clear selections */ |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
571 |
WP(w, newgrf_d).sel = NULL; |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
572 |
WP(w, newgrf_d).list = &local; |
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
573 |
WP(w, newgrf_d).orig_list = config; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
574 |
WP(w, newgrf_d).editable = editable; |
5352
82a50c80b0c4
(svn r7523) -Feature: Add the possibility to change the newgrf configuration of a running game.
Darkvater
parents:
5345
diff
changeset
|
575 |
WP(w, newgrf_d).execute = exec_changes; |
5237
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
576 |
WP(w, newgrf_d).show_params = show_params; |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
577 |
|
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
578 |
SetupNewGRFWindow(w); |
c14c97d7030a
(svn r7357) -Codechange: new NewGRF set up window which allows modification of NewGRF settings.
peter1138
parents:
diff
changeset
|
579 |
} |