From 89ff97f70ac340db3936836dbdcdf28182381faf Mon Sep 17 00:00:00 2001 From: yexo Date: Thu, 24 Feb 2011 18:13:59 +0000 Subject: (svn r22138) -Fix: skipping only the invalid part of an action14 failed, the rest of the action was skipped instead --- src/newgrf.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/newgrf.cpp') diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 0a70a41d4..58693c669 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6726,6 +6726,8 @@ static bool ChangeGRFParamValueNames(ByteReader *buf) if (type != 'T' || id > _cur_parameter->max_value) { grfmsg(2, "StaticGRFInfo: all child nodes of 'INFO'->'PARA'->param_num->'VALU' should have type 't' and the value/bit number as id"); if (!SkipUnknownInfo(buf, type)) return false; + type = buf->ReadByte(); + continue; } byte langid = buf->ReadByte(); @@ -6769,7 +6771,9 @@ static bool HandleParameterInfo(ByteReader *buf) uint32 id = buf->ReadDWord(); if (type != 'C' || id >= _cur_grfconfig->num_valid_params) { grfmsg(2, "StaticGRFInfo: all child nodes of 'INFO'->'PARA' should have type 'C' and their parameter number as id"); - return SkipUnknownInfo(buf, type); + if (!SkipUnknownInfo(buf, type)) return false; + type = buf->ReadByte(); + continue; } if (id >= _cur_grfconfig->param_info.Length()) { -- cgit v1.2.3-70-g09d2