From d46127a7237ddd815872941c36bbbd6f7f379852 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 16 Dec 2009 11:35:05 +0000 Subject: (svn r18514) -Codechange: make it a bit clearer that for tile layouts num_sprites (as in number of sprite sets) is not the same as num_sprites (as in number of building sprites) --- src/newgrf.cpp | 14 +++++++------- src/newgrf_house.cpp | 9 ++++----- src/newgrf_industrytiles.cpp | 4 ++-- src/newgrf_spritegroup.h | 2 +- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 651c5e369..ab03023e6 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2896,13 +2896,13 @@ static void NewSpriteGroup(byte *buf, size_t len) case GSF_TOWNHOUSE: case GSF_INDUSTRYTILES: { - byte sprites = _cur_grffile->spriteset_numents; - byte num_sprites = max((uint8)1, type); + byte num_sprite_sets = _cur_grffile->spriteset_numents; + byte num_building_sprites = max((uint8)1, type); uint i; TileLayoutSpriteGroup *group = new TileLayoutSpriteGroup(); act_group = group; - group->num_sprites = sprites; + group->num_building_stages = num_sprite_sets; group->dts = CallocT(1); /* Groundsprite */ @@ -2915,14 +2915,14 @@ static void NewSpriteGroup(byte *buf, size_t len) if (HasBit(group->dts->ground.pal, 15)) { /* Bit 31 set means this is a custom sprite, so rewrite it to the * last spriteset defined. */ - SpriteID sprite = _cur_grffile->spriteset_start + GB(group->dts->ground.sprite, 0, 14) * sprites; + SpriteID sprite = _cur_grffile->spriteset_start + GB(group->dts->ground.sprite, 0, 14) * num_sprite_sets; SB(group->dts->ground.sprite, 0, SPRITE_WIDTH, sprite); ClrBit(group->dts->ground.pal, 15); } - group->dts->seq = CallocT(num_sprites + 1); + group->dts->seq = CallocT(num_building_sprites + 1); - for (i = 0; i < num_sprites; i++) { + for (i = 0; i < num_building_sprites; i++) { DrawTileSeqStruct *seq = const_cast(&group->dts->seq[i]); seq->image.sprite = grf_load_word(&buf); @@ -2935,7 +2935,7 @@ static void NewSpriteGroup(byte *buf, size_t len) if (HasBit(seq->image.pal, 15)) { /* Bit 31 set means this is a custom sprite, so rewrite it to the * last spriteset defined. */ - SpriteID sprite = _cur_grffile->spriteset_start + GB(seq->image.sprite, 0, 14) * sprites; + SpriteID sprite = _cur_grffile->spriteset_start + GB(seq->image.sprite, 0, 14) * num_sprite_sets; SB(seq->image.sprite, 0, SPRITE_WIDTH, sprite); ClrBit(seq->image.pal, 15); } diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index 681abe4dc..6028dcc4c 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -439,14 +439,13 @@ void DrawNewHouseTile(TileInfo *ti, HouseID house_id) NewHouseResolver(&object, house_id, ti->tile, Town::GetByTile(ti->tile)); group = SpriteGroup::Resolve(hs->spritegroup, &object); - if (group == NULL || group->type != SGT_TILELAYOUT) { - /* XXX: This is for debugging purposes really, and shouldn't stay. */ - DrawGroundSprite(SPR_SHADOW_CELL, PAL_NONE); + const TileLayoutSpriteGroup *tlgroup = (const TileLayoutSpriteGroup *)group; + if (group == NULL || group->type != SGT_TILELAYOUT || tlgroup->num_building_stages == 0) { + return; } else { - const TileLayoutSpriteGroup *tlgroup = (const TileLayoutSpriteGroup *)group; /* Limit the building stage to the number of stages supplied. */ byte stage = GetHouseBuildingStage(ti->tile); - stage = Clamp(stage - 4 + tlgroup->num_sprites, 0, tlgroup->num_sprites - 1); + stage = Clamp(stage - 4 + tlgroup->num_building_stages, 0, tlgroup->num_building_stages - 1); DrawTileLayout(ti, tlgroup, stage, house_id); } } diff --git a/src/newgrf_industrytiles.cpp b/src/newgrf_industrytiles.cpp index 08ecac408..5da0fbd05 100644 --- a/src/newgrf_industrytiles.cpp +++ b/src/newgrf_industrytiles.cpp @@ -254,12 +254,12 @@ bool DrawNewIndustryTile(TileInfo *ti, Industry *i, IndustryGfx gfx, const Indus group = SpriteGroup::Resolve(inds->grf_prop.spritegroup, &object); const TileLayoutSpriteGroup *tlgroup = (const TileLayoutSpriteGroup *)group; - if (group == NULL || group->type != SGT_TILELAYOUT || tlgroup->num_sprites == 0) { + if (group == NULL || group->type != SGT_TILELAYOUT || tlgroup->num_building_stages == 0) { return false; } else { /* Limit the building stage to the number of stages supplied. */ byte stage = GetIndustryConstructionStage(ti->tile); - stage = Clamp(stage - 4 + tlgroup->num_sprites, 0, tlgroup->num_sprites - 1); + stage = Clamp(stage - 4 + tlgroup->num_building_stages, 0, tlgroup->num_building_stages - 1); IndustryDrawTileLayout(ti, tlgroup, i->random_colour, stage, gfx); return true; } diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h index 056f95e35..2b337bb2f 100644 --- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -270,7 +270,7 @@ struct TileLayoutSpriteGroup : SpriteGroup { TileLayoutSpriteGroup() : SpriteGroup(SGT_TILELAYOUT) {} ~TileLayoutSpriteGroup(); - byte num_sprites; ///< Number of sprites in the spriteset, used for loading stages + byte num_building_stages; ///< Number of building stages to show for this house/industry tile struct DrawTileSprites *dts; }; -- cgit v1.2.3-54-g00ecf