mirror of https://github.com/OpenTTD/OpenTTD
(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.release/1.4
parent
6a0439a789
commit
cfaa9457a6
|
@ -24,9 +24,11 @@
|
||||||
*/
|
*/
|
||||||
static const byte TOWN_HOUSE_COMPLETED = 3;
|
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 uint HOUSE_NO_CLASS = 0;
|
||||||
static const HouseID NEW_HOUSE_OFFSET = 110;
|
static const HouseID NEW_HOUSE_OFFSET = 110; ///< Offset for new houses.
|
||||||
static const HouseID NUM_HOUSES = 512;
|
static const HouseID NUM_HOUSES = 512; ///< Total number of houses.
|
||||||
static const HouseID INVALID_HOUSE_ID = 0xFFFF;
|
static const HouseID INVALID_HOUSE_ID = 0xFFFF;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2183,14 +2183,14 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, Byt
|
||||||
{
|
{
|
||||||
ChangeInfoResult ret = CIR_SUCCESS;
|
ChangeInfoResult ret = CIR_SUCCESS;
|
||||||
|
|
||||||
if (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);
|
grfmsg(1, "TownHouseChangeInfo: Too many houses loaded (%u), max (%u). Ignoring.", hid + numinfo, NUM_HOUSES_PER_GRF);
|
||||||
return CIR_INVALID_ID;
|
return CIR_INVALID_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate house specs if they haven't been allocated already. */
|
/* Allocate house specs if they haven't been allocated already. */
|
||||||
if (_cur.grffile->housespec == NULL) {
|
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++) {
|
for (int i = 0; i < numinfo; i++) {
|
||||||
|
@ -7789,7 +7789,7 @@ static void ResetCustomHouses()
|
||||||
for (GRFFile **file = _grf_files.Begin(); file != end; file++) {
|
for (GRFFile **file = _grf_files.Begin(); file != end; file++) {
|
||||||
HouseSpec **&housespec = (*file)->housespec;
|
HouseSpec **&housespec = (*file)->housespec;
|
||||||
if (housespec == NULL) continue;
|
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]);
|
free(housespec[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8419,14 +8419,14 @@ static void FinaliseHouseArray()
|
||||||
HouseSpec **&housespec = (*file)->housespec;
|
HouseSpec **&housespec = (*file)->housespec;
|
||||||
if (housespec == NULL) continue;
|
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];
|
HouseSpec *hs = housespec[i];
|
||||||
|
|
||||||
if (hs == NULL) continue;
|
if (hs == NULL) continue;
|
||||||
|
|
||||||
const HouseSpec *next1 = (i + 1 < NUM_HOUSES ? housespec[i + 1] : NULL);
|
const HouseSpec *next1 = (i + 1 < NUM_HOUSES_PER_GRF ? housespec[i + 1] : NULL);
|
||||||
const HouseSpec *next2 = (i + 2 < NUM_HOUSES ? housespec[i + 2] : NULL);
|
const HouseSpec *next2 = (i + 2 < NUM_HOUSES_PER_GRF ? housespec[i + 2] : NULL);
|
||||||
const HouseSpec *next3 = (i + 3 < NUM_HOUSES ? housespec[i + 3] : NULL);
|
const HouseSpec *next3 = (i + 3 < NUM_HOUSES_PER_GRF ? housespec[i + 3] : NULL);
|
||||||
|
|
||||||
if (!IsHouseSpecValid(hs, next1, next2, next3, (*file)->filename)) continue;
|
if (!IsHouseSpecValid(hs, next1, next2, next3, (*file)->filename)) continue;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue