diff options
author | bjarni <bjarni@openttd.org> | 2005-01-26 12:42:29 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2005-01-26 12:42:29 +0000 |
commit | 5665d51bb31bd2c8860e9b48989fa145ad01e193 (patch) | |
tree | 8330c76d86cc47f1e087d757bc229fd72a7497f9 | |
parent | 518034d28d3664a3f3f6bb865eb8a8c4d0d3ccfe (diff) | |
download | openttd-5665d51bb31bd2c8860e9b48989fa145ad01e193.tar.xz |
(svn r1680) Feature: Replace train GUI now remembers the railtype selected in the dropdown menu
-rw-r--r-- | misc.c | 2 | ||||
-rw-r--r-- | variables.h | 1 | ||||
-rw-r--r-- | vehicle_gui.c | 8 | ||||
-rw-r--r-- | window.h | 1 |
4 files changed, 7 insertions, 5 deletions
@@ -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; @@ -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]; |