From cb61f5ac10fd69ab4b4b7da32c1bf719f58f8aae Mon Sep 17 00:00:00 2001 From: yexo Date: Sat, 1 May 2010 18:58:50 +0000 Subject: (svn r19749) -Fix: [NewGRF] possible divide-by-zero if a newgrf checked industry var 42 while the production level was 0 --- src/newgrf_industries.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index d9aa81477..e9cd0e477 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -204,6 +204,7 @@ uint32 IndustryGetVariable(const ResolverObject *object, byte variable, byte par uint16 callback = indspec->callback_mask; if (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(callback, CBM_IND_PRODUCTION_256_TICKS)) { if ((indspec->behaviour & INDUSTRYBEH_PROD_MULTI_HNDLING) != 0) { + if (industry->prod_level == 0) return 0; return min(industry->incoming_cargo_waiting[variable - 0x40] / industry->prod_level, (uint16)0xFFFF); } else { return min(industry->incoming_cargo_waiting[variable - 0x40], (uint16)0xFFFF); -- cgit v1.2.3-70-g09d2