aircraft_cmd.c
changeset 3722 0984901a2744
parent 3710 44cf97e29c18
child 3816 28ee8b8c2522
equal deleted inserted replaced
3721:170325136e34 3722:0984901a2744
   536 		mail = (new_cid != CT_PASSENGERS) ? 0 : avi->mail_capacity;
   536 		mail = (new_cid != CT_PASSENGERS) ? 0 : avi->mail_capacity;
   537 		u->cargo_cap = mail;
   537 		u->cargo_cap = mail;
   538 		v->cargo_count = u->cargo_count = 0;
   538 		v->cargo_count = u->cargo_count = 0;
   539 		v->cargo_type = new_cid;
   539 		v->cargo_type = new_cid;
   540 		InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
   540 		InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
       
   541 		InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
       
   542 		RebuildVehicleLists();
   541 	}
   543 	}
   542 
   544 
   543 	return cost;
   545 	return cost;
   544 }
   546 }
   545 
   547 
  1111 	InvalidateVehicleOrder(v);
  1113 	InvalidateVehicleOrder(v);
  1112 
  1114 
  1113 	InvalidateWindowClasses(WC_AIRCRAFT_LIST);
  1115 	InvalidateWindowClasses(WC_AIRCRAFT_LIST);
  1114 }
  1116 }
  1115 
  1117 
       
  1118 /** Mark all views dirty for an aircraft.
       
  1119  * @param v vehicle to be redrawn.
       
  1120  */
       
  1121 static void MarkAircraftDirty(Vehicle *v)
       
  1122 {
       
  1123 		v->cur_image = GetAircraftImage(v, v->direction);
       
  1124 		if (v->subtype == 0) {
       
  1125 			v->next->next->cur_image = GetRotorImage(v);
       
  1126 		}
       
  1127 		MarkAllViewportsDirty(v->left_coord, v->top_coord, v->right_coord + 1, v->bottom_coord + 1);
       
  1128 }
       
  1129 
  1116 static void HandleAircraftLoading(Vehicle *v, int mode)
  1130 static void HandleAircraftLoading(Vehicle *v, int mode)
  1117 {
  1131 {
  1118 	if (v->current_order.type == OT_NOTHING) return;
  1132 	if (v->current_order.type == OT_NOTHING) return;
  1119 
  1133 
  1120 	if (v->current_order.type != OT_DUMMY) {
  1134 	if (v->current_order.type != OT_DUMMY) {
  1122 		if (mode != 0) return;
  1136 		if (mode != 0) return;
  1123 		if (--v->load_unload_time_rem != 0) return;
  1137 		if (--v->load_unload_time_rem != 0) return;
  1124 
  1138 
  1125 		if (v->current_order.flags & OF_FULL_LOAD && CanFillVehicle(v)) {
  1139 		if (v->current_order.flags & OF_FULL_LOAD && CanFillVehicle(v)) {
  1126 			SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_INC);
  1140 			SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_INC);
  1127 			LoadUnloadVehicle(v);
  1141 			if (LoadUnloadVehicle(v)) {
       
  1142 				InvalidateWindow(WC_AIRCRAFT_LIST, v->owner);
       
  1143 				MarkAircraftDirty(v);
       
  1144 			}
  1128 			return;
  1145 			return;
  1129 		}
  1146 		}
  1130 
  1147 
  1131 		{
  1148 		{
  1132 			Order b = v->current_order;
  1149 			Order b = v->current_order;
  1133 			v->current_order.type = OT_NOTHING;
  1150 			v->current_order.type = OT_NOTHING;
  1134 			v->current_order.flags = 0;
  1151 			v->current_order.flags = 0;
       
  1152 			MarkAircraftDirty(v);
  1135 			if (!(b.flags & OF_NON_STOP)) return;
  1153 			if (!(b.flags & OF_NON_STOP)) return;
  1136 		}
  1154 		}
  1137 	}
  1155 	}
  1138 	v->cur_order_index++;
  1156 	v->cur_order_index++;
  1139 	InvalidateVehicleOrder(v);
  1157 	InvalidateVehicleOrder(v);
  1236 			(old_order.flags & (OF_FULL_LOAD | OF_UNLOAD)) | OF_NON_STOP;
  1254 			(old_order.flags & (OF_FULL_LOAD | OF_UNLOAD)) | OF_NON_STOP;
  1237 	}
  1255 	}
  1238 
  1256 
  1239 	SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_INC);
  1257 	SET_EXPENSES_TYPE(EXPENSES_AIRCRAFT_INC);
  1240 	LoadUnloadVehicle(v);
  1258 	LoadUnloadVehicle(v);
       
  1259 	MarkAircraftDirty(v);
  1241 	InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
  1260 	InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
  1242 	InvalidateWindowClasses(WC_AIRCRAFT_LIST);
  1261 	InvalidateWindowClasses(WC_AIRCRAFT_LIST);
  1243 }
  1262 }
  1244 
  1263 
  1245 
  1264