(svn r6696) -Codechange: changed all comparision for refit cargo in orders against CT_NO_REFIT to checks for valid cargo IDs
This should prevent any bugs made by mixing up CT_NO_REFIT and CT_INVALID
--- a/order_gui.c Sun Oct 08 21:00:13 2006 +0000
+++ b/order_gui.c Sun Oct 08 21:10:00 2006 +0000
@@ -170,11 +170,11 @@
if (order->flags & OF_FULL_LOAD) s++; /* service at */
SetDParam(1, s);
- if (order->refit_cargo == CT_NO_REFIT) {
- SetDParam(3, STR_EMPTY);
- } else {
+ if (order->refit_cargo < NUM_CARGO) {
SetDParam(3, STR_REFIT_ORDER);
SetDParam(4, _cargoc.names_s[order->refit_cargo]);
+ } else {
+ SetDParam(3, STR_EMPTY);
}
break;
}
--- a/vehicle.c Sun Oct 08 21:00:13 2006 +0000
+++ b/vehicle.c Sun Oct 08 21:10:00 2006 +0000
@@ -1901,7 +1901,7 @@
}
FOR_VEHICLE_ORDERS(u, o) {
- if (o->refit_cargo == CT_NO_REFIT) continue;
+ if (!(o->refit_cargo < NUM_CARGO)) continue;
if (!CanRefitTo(v->engine_type, o->refit_cargo)) continue;
if (!CanRefitTo(engine_type, o->refit_cargo)) return false;
}
@@ -2530,7 +2530,7 @@
v->current_order.type = OT_DUMMY;
v->current_order.flags = 0;
- if (t.refit_cargo != CT_NO_REFIT) {
+ if (t.refit_cargo < NUM_CARGO) {
int32 cost;
_current_player = v->owner;