CvReplayInfo::createInfo()
- Defined in
- CvReplayInfo.cpp, line 59
- Class
- CvReplayInfo
- Hook name
CivHooks::CvReplayInfo_createInfo
Hooks
static bool BeforeCvReplayInfo_createInfo(CvReplayInfo* self);static void AfterCvReplayInfo_createInfo(CvReplayInfo* self);static void ReplaceCvReplayInfo_createInfo(void (*original)(CvReplayInfo*), CvReplayInfo* self);CivRegisterBefore<CivHooks::CvReplayInfo_createInfo>(host, &BeforeCvReplayInfo_createInfo);CivRegisterAfter<CivHooks::CvReplayInfo_createInfo>(host, &AfterCvReplayInfo_createInfo);CivRegisterReplace<CivHooks::CvReplayInfo_createInfo>(host, &ReplaceCvReplayInfo_createInfo);
Code
59void CvReplayInfo::createInfo()60{61 CvGame& game = GC.getGame();6263 const PlayerTypes eActivePlayer = game.getActivePlayer();6465 m_strMapScriptName = CvPreGame::mapScriptName();66 m_eWorldSize = CvPreGame::worldSize();67 m_eClimate = CvPreGame::climate();68 m_eSeaLevel = CvPreGame::seaLevel();69 m_eEra = CvPreGame::era();70 m_eGameSpeed = game.getGameSpeedType();7172 m_listGameOptions.clear();73 for(int i = 0; i < NUM_GAMEOPTION_TYPES; i++)74 {75 GameOptionTypes eOption = (GameOptionTypes)i;76 if(game.isOption(eOption))77 {78 m_listGameOptions.push_back(eOption);79 }80 }8182 m_listVictoryTypes.clear();83 for(int i = 0; i < GC.getNumVictoryInfos(); i++)84 {85 VictoryTypes eVictory = (VictoryTypes)i;86 if(game.isVictoryValid(eVictory))87 {88 m_listVictoryTypes.push_back(eVictory);89 }90 }9192 m_eVictoryType = NO_VICTORY;93 m_iNormalizedScore = 0;94 if(NO_PLAYER != eActivePlayer)95 {96 CvPlayer& player = GET_PLAYER(eActivePlayer);97 if(game.getWinner() == player.getTeam())98 {99 m_eVictoryType = game.getVictory();100 }101102 m_iNormalizedScore = player.GetScore(true, player.getTeam() == game.getWinner());103 }104105 //m_eGameType = CvPreGame::getGameType();106107 m_iInitialTurn = game.getStartTurn();108 m_iStartYear = game.getStartYear();109 m_iFinalTurn = game.getGameTurn();110 CvGameTextMgr::setYearStr(m_strFinalDate, m_iFinalTurn, false, game.getCalendar(), game.getStartYear(), game.getGameSpeedType());111112 m_eCalendar = game.getCalendar();113114 m_dataSetMap.clear();115 m_listPlayerDataSets.clear();116 m_listPlayerInfo.clear();117 m_listPlots.clear();118119 std::map<int, int> mapPlayers;120 mapPlayers[-1] = -1; //account for NO_PLAYER.121122 m_iActivePlayer = -1;123 int iPlayerIndex = 0;124 for(int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; iPlayer++)125 {126 CvPlayer& player = GET_PLAYER((PlayerTypes)iPlayer);127 if(player.isEverAlive())128 {129 //Ensure that final turn is stored.130 player.GatherPerTurnReplayStats(m_iFinalTurn);131132 mapPlayers[iPlayer] = iPlayerIndex;133 if(iPlayer == game.getActivePlayer())134 {135 m_iActivePlayer = iPlayerIndex;136 }137 ++iPlayerIndex;138139 PlayerInfo playerInfo;140 playerInfo.m_eLeader = player.getLeaderType();141 playerInfo.m_eCivilization = player.getCivilizationType();142143 playerInfo.m_eDifficulty = player.getHandicapType();144 playerInfo.m_strCustomLeaderName = player.getName();145 playerInfo.m_strCustomCivilizationName = player.getCivilizationDescription();146 playerInfo.m_strCustomCivilizationShortName = player.getCivilizationShortDescription();147 playerInfo.m_strCustomCivilizationAdjective = player.getCivilizationAdjective();148 playerInfo.m_ePlayerColor = player.getPlayerColor();149150151 TurnDataSets dataSet(m_dataSetMap.size());152153 unsigned int uiNumDataSets = player.getNumReplayDataSets();154 for(unsigned int uiPlayerDataSet = 0; uiPlayerDataSet < uiNumDataSets; ++uiPlayerDataSet)155 {156 // First, Locate the index of the dataset157 std::string playerDataSetName = player.getReplayDataSetName(uiPlayerDataSet);158 unsigned int uiDataSet = 0;159 bool bFound = false;160 for(uiDataSet = 0; uiDataSet < m_dataSetMap.size(); ++uiDataSet)161 {162 const std::string& dataSetName = m_dataSetMap[uiDataSet];163 if(dataSetName == playerDataSetName)164 {165 bFound = true;166 break;167 }168 }169170 // Add a new index if one doesn't exist.171 if(!bFound)172 {173 m_dataSetMap.push_back(playerDataSetName);174 dataSet.push_back(TurnData());175 uiDataSet = m_dataSetMap.size() - 1;176 }177178 CvPlayer::TurnData playerData = player.getReplayDataHistory(uiPlayerDataSet);179 TurnData turnData;180181 for(CvPlayer::TurnData::iterator it = playerData.begin(); it != playerData.end(); ++it)182 {183 turnData[(*it).first - m_iInitialTurn] = (*it).second;184 }185186 dataSet[uiDataSet] = turnData;187 }188189 m_listPlayerDataSets.push_back(dataSet);190 m_listPlayerInfo.push_back(playerInfo);191 }192 }193194 m_listReplayMessages.clear();195 const uint nMessages = game.getNumReplayMessages();196 m_listReplayMessages.reserve(nMessages);197198 for(uint i = 0; i < nMessages; ++i)199 {200 const CvReplayMessage* pMessage = game.getReplayMessage(i);201 if(pMessage)202 {203 CvReplayMessage modifiedMessage = (*pMessage);204 modifiedMessage.setPlayer((PlayerTypes)mapPlayers[modifiedMessage.getPlayer()]);205206 m_listReplayMessages.push_back(modifiedMessage);207 }208 }209210 CvMap& kMap = GC.getMap();211212 m_iMapWidth = kMap.getGridWidth();213 m_iMapHeight = kMap.getGridHeight();214215 int numPlots = kMap.numPlots();216 m_listPlots.clear();217 m_listPlots.reserve(numPlots);218219 for(int i = 0; i < numPlots; i++)220 {221 PlotState plotState;222223 CvPlot* pkPlot = kMap.plotByIndexUnchecked(i);224 plotState.m_ePlotType = pkPlot->getPlotType();225 plotState.m_eTerrain = pkPlot->getTerrainType();226 plotState.m_eFeature = pkPlot->getFeatureType();227 plotState.m_bNEOfRiver = pkPlot->isNEOfRiver();228 plotState.m_bWOfRiver = pkPlot->isWOfRiver();229 plotState.m_bNWOfRiver = pkPlot->isNWOfRiver();230231 PlotStatePerTurn plotStatePerTurn;232 plotStatePerTurn[m_iFinalTurn] = plotState;233234 m_listPlots.push_back(plotStatePerTurn);235 }236}
Calls
- CvGame::getActivePlayer() const
- CvGame::getCalendar() const
- CvGame::getGameSpeedType() const
- CvGame::getGameTurn()
- CvGame::getNumReplayMessages() const
- CvGame::getReplayMessage(uint) const
- CvGame::getStartTurn() const
- CvGame::getStartYear() const
- CvGame::getVictory() const
- CvGame::getWinner() const
- CvGame::isOption(GameOptionTypes) const
- CvGame::isVictoryValid(VictoryTypes) const
- CvGameTextMgr::setYearStr(CvString &, int, bool, CalendarTypes, int, GameSpeedTypes)
- CvGlobals::getGame()
- CvGlobals::getMap()
- CvGlobals::getNumVictoryInfos()
- CvMap::getGridHeight() const
- CvMap::getGridWidth() const
- CvMap::numPlots() const
- CvMap::plotByIndexUnchecked(int) const
- CvPlayer::GatherPerTurnReplayStats(int)
- CvPlayer::getCivilizationAdjective() const
- CvPlayer::getCivilizationDescription() const
- CvPlayer::getCivilizationShortDescription() const
- CvPlayer::getCivilizationType() const
- CvPlayer::getHandicapType() const
- CvPlayer::getLeaderType() const
- CvPlayer::getName() const
- CvPlayer::getNumReplayDataSets() const
- CvPlayer::getPlayerColor() const
- CvPlayer::getReplayDataHistory(unsigned int) const
- CvPlayer::getReplayDataSetName(unsigned int) const
- CvPlayer::GetScore(bool, bool) const
- CvPlayer::getTeam() const
- CvPlayer::isEverAlive() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlot::getFeatureType() const
- CvPlot::getPlotType() const
- CvPlot::getTerrainType() const
- CvPlot::isNEOfRiver() const
- CvPlot::isNWOfRiver() const
- CvPlot::isWOfRiver() const
- CvPreGame::climate()
- CvPreGame::era()
- CvPreGame::mapScriptName()
- CvPreGame::seaLevel()
- CvPreGame::worldSize()
CvReplayInfo::PlayerInfo::PlayerInfoCvReplayInfo::PlotState::operator=CvReplayInfo::PlotState::PlotStateCvReplayMessage::CvReplayMessage- CvReplayMessage::getPlayer() const
- CvReplayMessage::setPlayer(PlayerTypes)
CvString::operator=CvString::operator=std::_Tree::beginstd::_Tree::const_iterator::operator!=std::_Tree::endstd::_Tree::iterator::operator*std::_Tree::iterator::operator++std::basic_string::basic_stringstd::map::mapstd::map::mapstd::map::mapstd::map::operator=std::map::operator[]std::map::operator[]std::map::operator[]std::operator==std::vector::clearstd::vector::clearstd::vector::clearstd::vector::clearstd::vector::clearstd::vector::clearstd::vector::clearstd::vector::operator[]std::vector::operator[]std::vector::push_backstd::vector::push_backstd::vector::push_backstd::vector::push_backstd::vector::push_backstd::vector::push_backstd::vector::push_backstd::vector::push_backstd::vector::reservestd::vector::reservestd::vector::sizestd::vector::vector