diff options
author | maedhros <maedhros@openttd.org> | 2007-03-20 10:06:39 +0000 |
---|---|---|
committer | maedhros <maedhros@openttd.org> | 2007-03-20 10:06:39 +0000 |
commit | 7812f7fd0ac617a9df41730e6770519154bc5344 (patch) | |
tree | 8a660faeb6f841b468fcaac90a3f35ccf849e1a8 | |
parent | b82ed41a1925803dde29d7e03cf113808faa93d3 (diff) | |
download | openttd-7812f7fd0ac617a9df41730e6770519154bc5344.tar.xz |
(svn r9367) -Fix (r9315): If a new house doesn't have a corresponding action 3, the
graphics for the substitute (original) house should be drawn instead.
-rw-r--r-- | src/newgrf.cpp | 2 | ||||
-rw-r--r-- | src/town_cmd.cpp | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 84f0bfcc0..40185e3d7 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1256,6 +1256,7 @@ static bool TownHouseChangeInfo(uint hid, int numinfo, int prop, byte **bufp, in housespec[i]->enabled = true; housespec[i]->local_id = hid + i; housespec[i]->substitute_id = subs_id; + housespec[i]->grffile = _cur_grffile; housespec[i]->random_colour[0] = 0x04; // those 4 random colours are the base colour housespec[i]->random_colour[1] = 0x08; // for all new houses housespec[i]->random_colour[2] = 0x0C; // they stand for red, blue, orange and green @@ -2316,7 +2317,6 @@ static void FeatureMapSpriteGroup(byte *buf, int len) } hs->spritegroup = _cur_grffile->spritegroups[groupid]; - hs->grffile = _cur_grffile; } return; } diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 716eb673f..ec689b8f1 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -127,8 +127,15 @@ static void DrawTile_Town(TileInfo *ti) HouseID house_id = GetHouseType(ti->tile); if (house_id >= NEW_HOUSE_OFFSET) { - DrawNewHouseTile(ti, house_id); - return; + /* Houses don't necessarily need new graphics. If they don't have a + * spritegroup associated with them, then the sprite for the substitute + * house id is drawn instead. */ + if (GetHouseSpecs(house_id)->spritegroup != NULL) { + DrawNewHouseTile(ti, house_id); + return; + } else { + house_id = GetHouseSpecs(house_id)->substitute_id; + } } /* Retrieve pointer to the draw town tile struct */ |