(svn r1680) Feature: Replace train GUI now remembers the railtype selected in the dropdown menu
--- a/misc.c Wed Jan 26 11:23:54 2005 +0000
+++ b/misc.c Wed Jan 26 12:42:29 2005 +0000
@@ -194,6 +194,8 @@
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);
--- a/variables.h Wed Jan 26 11:23:54 2005 +0000
+++ b/variables.h Wed Jan 26 12:42:29 2005 +0000
@@ -434,6 +434,7 @@
/* 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;
--- a/vehicle_gui.c Wed Jan 26 11:23:54 2005 +0000
+++ b/vehicle_gui.c Wed Jan 26 12:42:29 2005 +0000
@@ -373,7 +373,7 @@
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 @@
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 @@
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 @@
} 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;
--- a/window.h Wed Jan 26 11:23:54 2005 +0000
+++ b/window.h Wed Jan 26 12:42:29 2005 +0000
@@ -323,7 +323,6 @@
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(buildtrain_d));
typedef struct {
- byte railtype;
byte vehicletype;
byte sel_index[2];
int16 sel_engine[2];