Bazaar developer reference

FSerialization::SyncCities()

Defined in
CvCity.cpp, line 61
Hook name
CivHooks::FSerialization_SyncCities

Hooks

static bool BeforeFSerialization_SyncCities();static void AfterFSerialization_SyncCities();static void ReplaceFSerialization_SyncCities(void (*original)());CivRegisterBefore<CivHooks::FSerialization_SyncCities>(host, &BeforeFSerialization_SyncCities);CivRegisterAfter<CivHooks::FSerialization_SyncCities>(host, &AfterFSerialization_SyncCities);CivRegisterReplace<CivHooks::FSerialization_SyncCities>(host, &ReplaceFSerialization_SyncCities);

Code

61void SyncCities()62{63	if(GC.getGame().isNetworkMultiPlayer())64	{65		PlayerTypes authoritativePlayer = GC.getGame().getActivePlayer();6667		std::set<CvCity*>::const_iterator i;68		for(i = citiesToCheck.begin(); i != citiesToCheck.end(); ++i)69		{70			const CvCity* city = *i;7172			if(city)73			{74				const CvPlayer& player = GET_PLAYER(city->getOwner());75				if(city->getOwner() == authoritativePlayer || (gDLL->IsHost() && !player.isHuman() && player.isAlive()))76				{77					const FAutoArchive& archive = city->getSyncArchive();78					if(archive.hasDeltas())79					{80						FMemoryStream memoryStream;81						std::vector<std::pair<std::string, std::string> > callStacks;82						archive.saveDelta(memoryStream, callStacks);83						gDLL->sendCitySyncCheck(city->getOwner(), city->GetID(), memoryStream, callStacks);84					}85				}86			}87		}88	}89}

Calls

Called by