summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2005-01-26 12:42:29 +0000
committerbjarni <bjarni@openttd.org>2005-01-26 12:42:29 +0000
commitbd8b10d25093404660d0e62420fb26c6915d2f07 (patch)
tree8330c76d86cc47f1e087d757bc229fd72a7497f9
parentd7fc1b2c69216a692dbddb7625afd8cccd728c26 (diff)
downloadopenttd-bd8b10d25093404660d0e62420fb26c6915d2f07.tar.xz
(svn r1680) Feature: Replace train GUI now remembers the railtype selected in the dropdown menu
-rw-r--r--misc.c2
-rw-r--r--variables.h1
-rw-r--r--vehicle_gui.c8
-rw-r--r--window.h1
4 files changed, 7 insertions, 5 deletions
diff --git a/misc.c b/misc.c
index 2017239a7..1ae7d0f94 100644
--- a/misc.c
+++ b/misc.c
@@ -194,6 +194,8 @@ void InitializeGame(void)
for (i = 0; i < lengthof(_autoreplace_array); i++)
_autoreplace_array[i] = i;
+ _railtype_selected_in_replace_gui = 0;
+
AddTypeToEngines(); // make sure all engines have a type
SetObjectToPlace(1, 0, 0, 0);
diff --git a/variables.h b/variables.h
index 46636cf19..4533d81db 100644
--- a/variables.h
+++ b/variables.h
@@ -434,6 +434,7 @@ VARDEF byte _vehicle_design_names;
/* Autoreplace vehicle stuff*/
VARDEF byte _autoreplace_array[256];
VARDEF uint16 _player_num_engines[256];
+VARDEF byte _railtype_selected_in_replace_gui;
/* Debugging levels */
VARDEF int _debug_spritecache_level;
diff --git a/vehicle_gui.c b/vehicle_gui.c
index d3f3178b1..c4e85bfe7 100644
--- a/vehicle_gui.c
+++ b/vehicle_gui.c
@@ -373,7 +373,7 @@ static void SetupScrollStuffForReplaceWindow(Window *w)
switch (WP(w,replaceveh_d).vehicletype) {
case VEH_Train: {
- railtype = WP(w,replaceveh_d).railtype;
+ railtype = _railtype_selected_in_replace_gui;
w->widget[13].color = _player_colors[_local_player]; // sets the colour of that art thing
w->widget[16].color = _player_colors[_local_player]; // sets the colour of that art thing
for (engine_id = 0; engine_id < NUM_TRAIN_ENGINES; engine_id++) {
@@ -524,7 +524,7 @@ static void DrawEngineArrayInReplaceWindow(Window *w, int x, int y, int x2, int
switch (WP(w,replaceveh_d).vehicletype) {
case VEH_Train: {
- byte railtype = WP(w,replaceveh_d).railtype;
+ byte railtype = _railtype_selected_in_replace_gui;
DrawString(157, 89 + (14 * w->vscroll.cap), _rail_types_list[railtype], 0x10);
/* draw sorting criteria string */
@@ -834,7 +834,7 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
if ( !(HASBIT(DEREF_ENGINE(NUM_NORMAL_RAIL_ENGINES)->player_avail, _local_player)))
engine_avail = 6;
}
- ShowDropDownMenu(w, _rail_types_list, WP(w,replaceveh_d).railtype, 15, engine_avail, 1);
+ ShowDropDownMenu(w, _rail_types_list, _railtype_selected_in_replace_gui, 15, engine_avail, 1);
break;
}
case 4: {
@@ -867,7 +867,7 @@ static void ReplaceVehicleWndProc(Window *w, WindowEvent *e)
} break;
case WE_DROPDOWN_SELECT: { /* we have selected a dropdown item in the list */
- WP(w,replaceveh_d).railtype = e->dropdown.index;
+ _railtype_selected_in_replace_gui = e->dropdown.index;
SetWindowDirty(w);
} break;
diff --git a/window.h b/window.h
index 0aa4b920b..c3d7f9494 100644
--- a/window.h
+++ b/window.h
@@ -323,7 +323,6 @@ typedef struct {
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(buildtrain_d));
typedef struct {
- byte railtype;
byte vehicletype;
byte sel_index[2];
int16 sel_engine[2];