build_vehicle_gui.c
changeset 4807 f03e16f22450
parent 4804 bfa7a5b5ad15
child 4896 f86350aaaaa5
equal deleted inserted replaced
4806:2e9d9fc049b0 4807:f03e16f22450
   284 		}
   284 		}
   285 		ShowAircraftViewWindow(v);
   285 		ShowAircraftViewWindow(v);
   286 	}
   286 	}
   287 }
   287 }
   288 
   288 
   289 static inline void ExtendEngineListSize(const EngineID **engine_list, uint16 *engine_list_length, uint16 step_size, uint16 max)
   289 static inline void ExtendEngineListSize(EngineID **engine_list, uint16 *engine_list_length, uint16 step_size, uint16 max)
   290 {
   290 {
   291 	*engine_list_length = min(*engine_list_length + step_size, max);
   291 	*engine_list_length = min(*engine_list_length + step_size, max);
   292 	*engine_list = realloc((void*)*engine_list, (*engine_list_length) * sizeof((*engine_list)[0]));
   292 	*engine_list = realloc((void*)*engine_list, (*engine_list_length) * sizeof((*engine_list)[0]));
   293 }
   293 }
   294 
   294 
   308 		if (IsEngineBuildable(eid, VEH_Aircraft)) {
   308 		if (IsEngineBuildable(eid, VEH_Aircraft)) {
   309 			const AircraftVehicleInfo *avi = AircraftVehInfo(eid);
   309 			const AircraftVehicleInfo *avi = AircraftVehInfo(eid);
   310 
   310 
   311 			switch (avi->subtype) {
   311 			switch (avi->subtype) {
   312 				case AIR_CTOL: // Propeller planes
   312 				case AIR_CTOL: // Propeller planes
   313 					if (*num_planes == plane_length) ExtendEngineListSize((const EngineID**)planes, &plane_length, 5, NUM_AIRCRAFT_ENGINES);
   313 					if (*num_planes == plane_length) ExtendEngineListSize(planes, &plane_length, 5, NUM_AIRCRAFT_ENGINES);
   314 					(*planes)[(*num_planes)++] = eid;
   314 					(*planes)[(*num_planes)++] = eid;
   315 					break;
   315 					break;
   316 
   316 
   317 				case (AIR_CTOL | AIR_FAST): // Jet planes
   317 				case (AIR_CTOL | AIR_FAST): // Jet planes
   318 					if (*num_jets == jet_length) ExtendEngineListSize((const EngineID**)jets, &jet_length, 5, NUM_AIRCRAFT_ENGINES);
   318 					if (*num_jets == jet_length) ExtendEngineListSize(jets, &jet_length, 5, NUM_AIRCRAFT_ENGINES);
   319 					(*jets)[(*num_jets)++] = eid;
   319 					(*jets)[(*num_jets)++] = eid;
   320 					break;
   320 					break;
   321 
   321 
   322 				case 0: // Helicopters
   322 				case 0: // Helicopters
   323 					if (*num_helicopters == helicopter_length) ExtendEngineListSize((const EngineID**)helicopters, &plane_length, 5, NUM_AIRCRAFT_ENGINES);
   323 					if (*num_helicopters == helicopter_length) ExtendEngineListSize(helicopters, &helicopter_length, 5, NUM_AIRCRAFT_ENGINES);
   324 					(*helicopters)[(*num_helicopters)++] = eid;
   324 					(*helicopters)[(*num_helicopters)++] = eid;
   325 					break;
   325 					break;
   326 			}
   326 			}
   327 		}
   327 		}
   328 	}
   328 	}