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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
{
 | 
			
		||||
	SpriteGroupDumper dumper(print);
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,8 @@
 | 
			
		||||
 | 
			
		||||
static bool _town_zone_radii_no_update = false;
 | 
			
		||||
 | 
			
		||||
extern bool IsGetTownZonesCallbackHandlerPresent();
 | 
			
		||||
 | 
			
		||||
HouseID SLGetCleanHouseType(TileIndex t, bool old_map_position)
 | 
			
		||||
{
 | 
			
		||||
	if (old_map_position && SlXvIsFeatureMissing(XSLFI_MORE_HOUSES)) {
 | 
			
		||||
@@ -375,7 +377,7 @@ void SlResetTNNC()
 | 
			
		||||
 | 
			
		||||
void Save_TNNC()
 | 
			
		||||
{
 | 
			
		||||
	if (!IsNetworkServerSave()) {
 | 
			
		||||
	if (!IsNetworkServerSave() || !IsGetTownZonesCallbackHandlerPresent()) {
 | 
			
		||||
		SlSetLength(0);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user