summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2013-10-12 16:34:04 +0000
committerfrosch <frosch@openttd.org>2013-10-12 16:34:04 +0000
commitcfaa9457a6926fb85ae477e29c2df036e2691121 (patch)
tree406e9cb011d9a4102be2f1e7d9983155e7944cf3 /src
parent6a0439a789fc3a5f8da55493b27d4c9c6c328b1b (diff)
downloadopenttd-cfaa9457a6926fb85ae477e29c2df036e2691121.tar.xz
(svn r25839) -Codechange: Use NUM_HOUSES_PER_GRF instead of NUM_HOUSES to properly distinguish limits per NewGRF and limits of the pool.
-Change: [NewGRF] Lower the limit of house types per NewGRF from 256 to 255 to prevent usage of ID 0xFF in Action3, and thus allowing it to become an extended byte somewhen.
Diffstat (limited to 'src')
-rw-r--r--src/house.h6
-rw-r--r--src/newgrf.cpp16
2 files changed, 12 insertions, 10 deletions
diff --git a/src/house.h b/src/house.h
index b74e13c18..ddc2a448c 100644
--- a/src/house.h
+++ b/src/house.h
@@ -24,9 +24,11 @@
*/
static const byte TOWN_HOUSE_COMPLETED = 3;
+static const HouseID NUM_HOUSES_PER_GRF = 255; ///< Number of supported houses per NewGRF; limited to 255 to allow extending Action3 with an extended byte later on.
+
static const uint HOUSE_NO_CLASS = 0;
-static const HouseID NEW_HOUSE_OFFSET = 110;
-static const HouseID NUM_HOUSES = 512;
+static const HouseID NEW_HOUSE_OFFSET = 110; ///< Offset for new houses.
+static const HouseID NUM_HOUSES = 512; ///< Total number of houses.
static const HouseID INVALID_HOUSE_ID = 0xFFFF;
/**
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 78c662ad4..8274dd8b9 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -2183,14 +2183,14 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, Byt
{
ChangeInfoResult ret = CIR_SUCCESS;
- if (hid + numinfo > NUM_HOUSES) {
- grfmsg(1, "TownHouseChangeInfo: Too many houses loaded (%u), max (%u). Ignoring.", hid + numinfo, NUM_HOUSES);
+ if (hid + numinfo > NUM_HOUSES_PER_GRF) {
+ grfmsg(1, "TownHouseChangeInfo: Too many houses loaded (%u), max (%u). Ignoring.", hid + numinfo, NUM_HOUSES_PER_GRF);
return CIR_INVALID_ID;
}
/* Allocate house specs if they haven't been allocated already. */
if (_cur.grffile->housespec == NULL) {
- _cur.grffile->housespec = CallocT<HouseSpec*>(NUM_HOUSES);
+ _cur.grffile->housespec = CallocT<HouseSpec*>(NUM_HOUSES_PER_GRF);
}
for (int i = 0; i < numinfo; i++) {
@@ -7789,7 +7789,7 @@ static void ResetCustomHouses()
for (GRFFile **file = _grf_files.Begin(); file != end; file++) {
HouseSpec **&housespec = (*file)->housespec;
if (housespec == NULL) continue;
- for (uint i = 0; i < NUM_HOUSES; i++) {
+ for (uint i = 0; i < NUM_HOUSES_PER_GRF; i++) {
free(housespec[i]);
}
@@ -8419,14 +8419,14 @@ static void FinaliseHouseArray()
HouseSpec **&housespec = (*file)->housespec;
if (housespec == NULL) continue;
- for (int i = 0; i < NUM_HOUSES; i++) {
+ for (int i = 0; i < NUM_HOUSES_PER_GRF; i++) {
HouseSpec *hs = housespec[i];
if (hs == NULL) continue;
- const HouseSpec *next1 = (i + 1 < NUM_HOUSES ? housespec[i + 1] : NULL);
- const HouseSpec *next2 = (i + 2 < NUM_HOUSES ? housespec[i + 2] : NULL);
- const HouseSpec *next3 = (i + 3 < NUM_HOUSES ? housespec[i + 3] : NULL);
+ const HouseSpec *next1 = (i + 1 < NUM_HOUSES_PER_GRF ? housespec[i + 1] : NULL);
+ const HouseSpec *next2 = (i + 2 < NUM_HOUSES_PER_GRF ? housespec[i + 2] : NULL);
+ const HouseSpec *next3 = (i + 3 < NUM_HOUSES_PER_GRF ? housespec[i + 3] : NULL);
if (!IsHouseSpecValid(hs, next1, next2, next3, (*file)->filename)) continue;