Don't save TNNC chunk if there are no town zone callback handlers
This commit is contained in:
@@ -285,6 +285,15 @@ uint16 GetTownZonesCallback(Town *t)
|
|||||||
return CALLBACK_FAILED;
|
return CALLBACK_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsGetTownZonesCallbackHandlerPresent()
|
||||||
|
{
|
||||||
|
for (GenericCallbackList::const_iterator it = _gcl[GSF_FAKE_TOWNS].begin(); it != _gcl[GSF_FAKE_TOWNS].end(); ++it) {
|
||||||
|
if (HasBit(it->file->observed_feature_tests, GFTOF_TOWN_ZONE_CALLBACK)) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void DumpGenericCallbackSpriteGroups(GrfSpecFeature feature, DumpSpriteGroupPrinter print)
|
void DumpGenericCallbackSpriteGroups(GrfSpecFeature feature, DumpSpriteGroupPrinter print)
|
||||||
{
|
{
|
||||||
SpriteGroupDumper dumper(print);
|
SpriteGroupDumper dumper(print);
|
||||||
|
@@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
static bool _town_zone_radii_no_update = false;
|
static bool _town_zone_radii_no_update = false;
|
||||||
|
|
||||||
|
extern bool IsGetTownZonesCallbackHandlerPresent();
|
||||||
|
|
||||||
HouseID SLGetCleanHouseType(TileIndex t, bool old_map_position)
|
HouseID SLGetCleanHouseType(TileIndex t, bool old_map_position)
|
||||||
{
|
{
|
||||||
if (old_map_position && SlXvIsFeatureMissing(XSLFI_MORE_HOUSES)) {
|
if (old_map_position && SlXvIsFeatureMissing(XSLFI_MORE_HOUSES)) {
|
||||||
@@ -375,7 +377,7 @@ void SlResetTNNC()
|
|||||||
|
|
||||||
void Save_TNNC()
|
void Save_TNNC()
|
||||||
{
|
{
|
||||||
if (!IsNetworkServerSave()) {
|
if (!IsNetworkServerSave() || !IsGetTownZonesCallbackHandlerPresent()) {
|
||||||
SlSetLength(0);
|
SlSetLength(0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user