train_gui.c
changeset 4767 df84b7f59e5b
parent 4766 aa276d0ec2eb
child 4769 172e18f63248
equal deleted inserted replaced
4766:aa276d0ec2eb 4767:df84b7f59e5b
   274 	SetWindowWidgetLoweredState(w, BUILD_TRAIN_WIDGET_BOTH,    WP(w,buildtrain_d).show_engine_wagon == 3);
   274 	SetWindowWidgetLoweredState(w, BUILD_TRAIN_WIDGET_BOTH,    WP(w,buildtrain_d).show_engine_wagon == 3);
   275 
   275 
   276 	if (WP(w,buildtrain_d).data_invalidated) {
   276 	if (WP(w,buildtrain_d).data_invalidated) {
   277 		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);
   277 		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);
   278 		WP(w,buildtrain_d).data_invalidated = false;
   278 		WP(w,buildtrain_d).data_invalidated = false;
       
   279 
       
   280 		/* Make sure that the selected engine is still in the list*/
       
   281 		if (WP(w,buildtrain_d).sel_engine != INVALID_ENGINE) {
       
   282 			int i;
       
   283 			bool found = false;
       
   284 			if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 0)) {
       
   285 				for (i = 0; i < WP(w,buildtrain_d).num_engines; i++) {
       
   286 					if (WP(w,buildtrain_d).sel_engine != WP(w,buildtrain_d).engines[i]) continue;
       
   287 					found = true;
       
   288 					break;
       
   289 				}
       
   290 			}
       
   291 			if (!found && HASBIT(WP(w,buildtrain_d).show_engine_wagon, 1)) {
       
   292 				for (i = 0; i < WP(w,buildtrain_d).num_wagons; i++) {
       
   293 					if (WP(w,buildtrain_d).sel_engine != WP(w,buildtrain_d).wagons[i]) continue;
       
   294 					found = true;
       
   295 					break;
       
   296 				}
       
   297 			}
       
   298 			if (!found) WP(w,buildtrain_d).sel_engine = INVALID_ENGINE;
       
   299 		}
   279 	}
   300 	}
   280 
   301 
   281 	if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 0)) scrollcount += WP(w,buildtrain_d).num_engines;
   302 	if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 0)) scrollcount += WP(w,buildtrain_d).num_engines;
   282 	if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 1)) scrollcount += WP(w,buildtrain_d).num_wagons;
   303 	if (HASBIT(WP(w,buildtrain_d).show_engine_wagon, 1)) scrollcount += WP(w,buildtrain_d).num_wagons;
   283 
   304 
   328 			WP(w,buildtrain_d).num_wagons  = 0;
   349 			WP(w,buildtrain_d).num_wagons  = 0;
   329 			WP(w,buildtrain_d).engines = NULL;
   350 			WP(w,buildtrain_d).engines = NULL;
   330 			WP(w,buildtrain_d).wagons  = NULL;
   351 			WP(w,buildtrain_d).wagons  = NULL;
   331 			WP(w,buildtrain_d).show_engine_wagon = 3;
   352 			WP(w,buildtrain_d).show_engine_wagon = 3;
   332 			WP(w,buildtrain_d).data_invalidated  = true;
   353 			WP(w,buildtrain_d).data_invalidated  = true;
       
   354 			WP(w,buildtrain_d).sel_engine        = INVALID_ENGINE;
   333 			break;
   355 			break;
   334 
   356 
   335 		case WE_INVALIDATE_DATA:
   357 		case WE_INVALIDATE_DATA:
   336 			WP(w,buildtrain_d).data_invalidated = true;
   358 			WP(w,buildtrain_d).data_invalidated = true;
   337 			break;
   359 			break;