From 8e23ba540c62bce9cba1f58435b019757869ed29 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 24 Oct 2009 18:51:21 +0000 Subject: (svn r17857) -Fix (r10442): [NewGRF] 'subtract-in' is also signed for production callback version 0. --- src/newgrf_industries.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/newgrf_industries.cpp') diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 42f0f4fc7..e361f65f4 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -502,7 +502,7 @@ bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCa return true; } -static int32 DerefIndProd(uint field, bool use_register) +static int32 DerefIndProd(int field, bool use_register) { return use_register ? (int32)GetRegister(field) : field; } @@ -543,7 +543,7 @@ void IndustryProductionCallback(Industry *ind, int reason) bool deref = (group->version == 1); for (uint i = 0; i < 3; i++) { - ind->incoming_cargo_waiting[i] = Clamp(ind->incoming_cargo_waiting[i] - DerefIndProd(group->substract_input[i], deref) * multiplier, 0, 0xFFFF); + ind->incoming_cargo_waiting[i] = Clamp(ind->incoming_cargo_waiting[i] - DerefIndProd(group->subtract_input[i], deref) * multiplier, 0, 0xFFFF); } for (uint i = 0; i < 2; i++) { ind->produced_cargo_waiting[i] = Clamp(ind->produced_cargo_waiting[i] + max(DerefIndProd(group->add_output[i], deref), 0) * multiplier, 0, 0xFFFF); -- cgit v1.2.3-70-g09d2