(svn r21452) -Codechange: read object property 17 (number of views)

This commit is contained in:
rubidium
2010-12-10 21:30:26 +00:00
parent 064ef533be
commit 268a57dedc
3 changed files with 15 additions and 2 deletions

View File

@@ -3012,6 +3012,7 @@ static ChangeInfoResult IgnoreObjectProperty(uint prop, ByteReader *buf)
case 0x12:
case 0x14:
case 0x16:
case 0x17:
buf->ReadByte();
case 0x09:
@@ -3066,7 +3067,10 @@ static ChangeInfoResult ObjectChangeInfo(uint id, int numinfo, int prop, ByteRea
ObjectSpec **ospec = &_cur_grffile->objectspec[id + i];
/* Allocate space for this object. */
if (*ospec == NULL) *ospec = CallocT<ObjectSpec>(1);
if (*ospec == NULL) {
*ospec = CallocT<ObjectSpec>(1);
(*ospec)->views = 1; // Default for NewGRFs that don't set it.
}
/* Swap classid because we read it in BE. */
uint32 classid = buf->ReadDWord();
@@ -3138,6 +3142,14 @@ static ChangeInfoResult ObjectChangeInfo(uint id, int numinfo, int prop, ByteRea
spec->height = buf->ReadByte();
break;
case 0x17: // Views
spec->views = buf->ReadByte();
if (spec->views != 1 && spec->views != 2 && spec->views != 4) {
grfmsg(2, "ObjectChangeInfo: Invalid number of views (%u) for object id %u. Ignoring.", spec->views, id + i);
spec->views = 1;
}
break;
default:
ret = CIR_UNKNOWN;
break;