diff options
author | bjarni <bjarni@openttd.org> | 2006-10-07 15:04:22 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2006-10-07 15:04:22 +0000 |
commit | d2cebc7e8663ca42aa0d4338607231aa7cf79079 (patch) | |
tree | 0d1aa14c349735c9f986dfc2c7e51e447c827f81 /train_gui.c | |
parent | 208e258f4ce57ade70145db297a9b62fba6964b3 (diff) | |
download | openttd-d2cebc7e8663ca42aa0d4338607231aa7cf79079.tar.xz |
(svn r6681) -Fix: when vehicles never expire they will stay at peak reliability instead of the lowest to make them useful even when old
-Fix: when retiring an engine design, invalidate the build windows and invalidate the build window data
-Fix: mark build windows dirty when engine reliability changes
Diffstat (limited to 'train_gui.c')
-rw-r--r-- | train_gui.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/train_gui.c b/train_gui.c index d679288dd..0782e3874 100644 --- a/train_gui.c +++ b/train_gui.c @@ -276,6 +276,27 @@ static void DrawTrainBuildWindow(Window *w) if (WP(w,buildtrain_d).data_invalidated) { GenerateBuildList(&WP(w,buildtrain_d).engines, &WP(w,buildtrain_d).num_engines, &WP(w,buildtrain_d).wagons, &WP(w,buildtrain_d).num_wagons, WP(w,buildtrain_d).railtype); WP(w,buildtrain_d).data_invalidated = false; + + /* Make sure that the selected engine is still in the list*/ + if (WP(w,buildtrain_d).sel_engine != INVALID_ENGINE) { + int i; + bool found = false; + if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 0)) { + for (i = 0; i < WP(w,buildtrain_d).num_engines; i++) { + if (WP(w,buildtrain_d).sel_engine != WP(w,buildtrain_d).engines[i]) continue; + found = true; + break; + } + } + if (!found && HASBIT(WP(w,buildtrain_d).show_engine_wagon, 1)) { + for (i = 0; i < WP(w,buildtrain_d).num_wagons; i++) { + if (WP(w,buildtrain_d).sel_engine != WP(w,buildtrain_d).wagons[i]) continue; + found = true; + break; + } + } + if (!found) WP(w,buildtrain_d).sel_engine = INVALID_ENGINE; + } } if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 0)) scrollcount += WP(w,buildtrain_d).num_engines; @@ -330,6 +351,7 @@ static void NewRailVehicleWndProc(Window *w, WindowEvent *e) WP(w,buildtrain_d).wagons = NULL; WP(w,buildtrain_d).show_engine_wagon = 3; WP(w,buildtrain_d).data_invalidated = true; + WP(w,buildtrain_d).sel_engine = INVALID_ENGINE; break; case WE_INVALIDATE_DATA: |