From 43d6740f2d68af2223796eb2324086be18487b88 Mon Sep 17 00:00:00 2001 From: frosch Date: Wed, 11 Aug 2010 07:42:47 +0000 Subject: [PATCH] (svn r20445) -Codechange (r20435): Some compilers (esp. mine) do not comply to the specs. --- src/newgrf_commons.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index 129e662b4a..665d64dd6d 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -141,7 +141,13 @@ uint32 GetNearbyTileInformation(TileIndex tile); */ template struct GRFFilePropsBase { - /* The lack of constructor means the default zero-ing constructor is used. */ + GRFFilePropsBase() : local_id(0), grffile(0) + { + /* The lack of some compilers to provide default constructors complying to the specs + * requires us to zero the stuff ourself. */ + memset(spritegroup, 0, sizeof(spritegroup)); + } + uint16 local_id; ///< id defined by the grf file for this entity const struct GRFFile *grffile; ///< grf file that introduced this entity const struct SpriteGroup *spritegroup[Tcnt]; ///< pointer to the different sprites of the entity @@ -153,8 +159,6 @@ struct GRFFileProps : GRFFilePropsBase<1> { GRFFileProps(uint16 subst_id) : GRFFilePropsBase<1>(), subst_id(subst_id), override(subst_id) { - /* Check whether the constructor did comply with the specs. */ - assert(this->spritegroup[0] == NULL); } /** Simple constructor for the props. */