summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2011-11-01 16:18:28 +0000
committerfrosch <frosch@openttd.org>2011-11-01 16:18:28 +0000
commite802dc66b9d1e913e77816184ed2744f737823ec (patch)
treea8aefb4d2514d1ff4ef00eced59293c810071622
parenta95e7982f051201ee0cae85a0098377dbe6bcf9c (diff)
downloadopenttd-e802dc66b9d1e913e77816184ed2744f737823ec.tar.xz
(svn r23079) -Fix (r23077): Retain original behaviour in a silly corner case, which saves us making the specs even more convoluted.
-rw-r--r--src/newgrf.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 0c1ca3fbe..571779596 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -8015,15 +8015,9 @@ static void CalculateRefitMasks()
only_defaultcargo = (ei->refit_mask == 0);
}
- /* Clear refit_mask for not refittable ships */
- if (e->type == VEH_SHIP && !e->u.ship.old_refittable) {
- ei->refit_mask = 0;
- only_defaultcargo = true;
- }
-
/* Ensure that the vehicle is either not refittable, or that the default cargo is one of the refittable cargos.
* Note: Vehicles refittable to no cargo are handle differently to vehicle refittable to a single cargo. The latter might have subtypes. */
- if (!only_defaultcargo && ei->cargo_type != CT_INVALID && !HasBit(ei->refit_mask, ei->cargo_type)) {
+ if (!only_defaultcargo && (e->type != VEH_SHIP || e->u.ship.old_refittable) && ei->cargo_type != CT_INVALID && !HasBit(ei->refit_mask, ei->cargo_type)) {
ei->cargo_type = CT_INVALID;
}
@@ -8031,6 +8025,11 @@ static void CalculateRefitMasks()
* cargo type. Finally disable the vehicle, if there is still no cargo. */
if (ei->cargo_type == CT_INVALID && ei->refit_mask != 0) ei->cargo_type = (CargoID)FindFirstBit(ei->refit_mask);
if (ei->cargo_type == CT_INVALID) ei->climates = 0;
+
+ /* Clear refit_mask for not refittable ships */
+ if (e->type == VEH_SHIP && !e->u.ship.old_refittable) {
+ ei->refit_mask = 0;
+ }
}
}