src/ship_cmd.cpp
changeset 5856 c82e61d62cd3
parent 5668 36b39f4a9032
child 5858 a48c5b18747a
equal deleted inserted replaced
5855:6f273e99a57a 5856:c82e61d62cd3
   271 	InvalidateWindowClasses(WC_SHIPS_LIST);
   271 	InvalidateWindowClasses(WC_SHIPS_LIST);
   272 }
   272 }
   273 
   273 
   274 static void HandleShipLoading(Vehicle *v)
   274 static void HandleShipLoading(Vehicle *v)
   275 {
   275 {
   276 	if (v->current_order.type == OT_NOTHING) return;
   276 	switch (v->current_order.type) {
   277 
   277 		case OT_LOADING:
   278 	if (v->current_order.type != OT_DUMMY) {
   278 			if (--v->load_unload_time_rem) return;
   279 		if (v->current_order.type != OT_LOADING) return;
   279 
   280 		if (--v->load_unload_time_rem) return;
   280 			if (CanFillVehicle(v) && (
   281 
   281 						v->current_order.flags & OF_FULL_LOAD ||
   282 		if (CanFillVehicle(v) && (v->current_order.flags & OF_FULL_LOAD ||
   282 						(_patches.gradual_loading && !HASBIT(v->load_status, LS_LOADING_FINISHED))
   283 				(_patches.gradual_loading && !HASBIT(v->load_status, LS_LOADING_FINISHED)))) {
   283 					)) {
   284 			SET_EXPENSES_TYPE(EXPENSES_SHIP_INC);
   284 				SET_EXPENSES_TYPE(EXPENSES_SHIP_INC);
   285 			if (LoadUnloadVehicle(v, false)) {
   285 				if (LoadUnloadVehicle(v, false)) {
   286 				InvalidateWindow(WC_SHIPS_LIST, v->owner);
   286 					InvalidateWindow(WC_SHIPS_LIST, v->owner);
   287 				MarkShipDirty(v);
   287 					MarkShipDirty(v);
       
   288 				}
       
   289 				return;
   288 			}
   290 			}
   289 			return;
   291 			PlayShipSound(v);
   290 		}
   292 
   291 		PlayShipSound(v);
       
   292 
       
   293 		{
       
   294 			Order b = v->current_order;
   293 			Order b = v->current_order;
   295 			v->LeaveStation();
   294 			v->LeaveStation();
   296 			if (!(b.flags & OF_NON_STOP)) return;
   295 			if (!(b.flags & OF_NON_STOP)) return;
   297 		}
   296 			break;
       
   297 
       
   298 		case OT_DUMMY: break;
       
   299 
       
   300 		default: return;
   298 	}
   301 	}
   299 
   302 
   300 	v->cur_order_index++;
   303 	v->cur_order_index++;
   301 	InvalidateVehicleOrder(v);
   304 	InvalidateVehicleOrder(v);
   302 }
   305 }