(svn r1680) Feature: Replace train GUI now remembers the railtype selected in the dropdown menu
authorbjarni
Wed, 26 Jan 2005 12:42:29 +0000
changeset 1178 ce85710f92ff
parent 1177 6adbf59f59a3
child 1179 abea5b669f74
(svn r1680) Feature: Replace train GUI now remembers the railtype selected in the dropdown menu
misc.c
variables.h
vehicle_gui.c
window.h
--- 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];