Bazaar developer reference

CvPreGame::writeCivilizations(FDataStream &)

Defined in
CvPreGame.cpp, line 404
Hook name
CivHooks::CvPreGame_writeCivilizations

Hooks

static bool BeforeCvPreGame_writeCivilizations(FDataStream& saveTo);static void AfterCvPreGame_writeCivilizations(FDataStream& saveTo);static void ReplaceCvPreGame_writeCivilizations(void (*original)(FDataStream&), FDataStream& saveTo);CivRegisterBefore<CivHooks::CvPreGame_writeCivilizations>(host, &BeforeCvPreGame_writeCivilizations);CivRegisterAfter<CivHooks::CvPreGame_writeCivilizations>(host, &AfterCvPreGame_writeCivilizations);CivRegisterReplace<CivHooks::CvPreGame_writeCivilizations>(host, &ReplaceCvPreGame_writeCivilizations);

Code

404void writeCivilizations(FDataStream& saveTo)405{406	if(s_gameStarted || !isNetworkMultiplayerGame()){407		//full save, preserve everything.408		saveTo << s_civilizations;409	}410	else{411		//game cfg save only.  Scrub player specific data from our save output.412		//reset all non-AI players to random civ.413		int i = 0;414		std::vector<CivilizationTypes> civsTemp = s_civilizations;415		for(std::vector<CivilizationTypes>::iterator civIter = civsTemp.begin(); civIter != civsTemp.end(); ++civIter, ++i){416			if(slotStatus((PlayerTypes)i) != SS_COMPUTER){417				*civIter = NO_CIVILIZATION;418			}419		}420		saveTo << civsTemp;421	}422}

Calls

Called by