/// Write to binary data store
void CvArmyAI::Write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	kStream << m_iID;
	kStream << m_eOwner;
	kStream << m_iCurrentX;
	kStream << m_iCurrentY;
	kStream << m_iGoalX;
	kStream << m_iGoalY;
	kStream << m_eDomainType;
	kStream << m_iFormationIndex;
	kStream << m_eAIState;
	kStream << m_iOperationID;
#if defined(MOD_BALANCE_CORE)
	kStream << m_bOceanMoves;
#endif

	kStream << (int)m_FormationEntries.size();
	for(uint ui = 0; ui < m_FormationEntries.size(); ui++)
	{
		kStream << m_FormationEntries[ui];
	}
}
/// writes out danger plots info
void CvDangerPlots::Write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	kStream << m_ePlayer;
	kStream << m_bArrayAllocated;

	int iGridSize = GC.getMap().getGridWidth() * GC.getMap().getGridHeight();
	kStream << iGridSize;
	for(int i = 0; i < iGridSize; i++)
	{
		kStream << m_DangerPlots[i];
	}


#if defined(MOD_BALANCE_CORE)
	kStream << m_knownUnits.size();
	for (UnitSet::const_iterator it=m_knownUnits.begin(); it!=m_knownUnits.end(); ++it)
	{
		kStream << it->first;
		kStream << it->second;
	}
#endif

}
Esempio n. 3
0
/// Serialization write
void CvTreasury::Write(FDataStream& kStream)
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	kStream << m_iGold;
	kStream << m_iGoldPerTurnFromDiplomacy;
	kStream << m_iExpensePerTurnUnitMaintenance;
	kStream << m_iExpensePerTurnUnitSupply;
	kStream << m_iCityConnectionGoldTimes100;
	kStream << m_iCityConnectionTradeRouteGoldModifier;
	kStream << m_iCityConnectionTradeRouteGoldChange;
	kStream << m_iBaseBuildingGoldMaintenance;
	kStream << m_iBaseImprovementGoldMaintenance;
	kStream << m_GoldBalanceForTurnTimes100;
	kStream << m_GoldChangeForTurnTimes100;
	kStream << m_iLifetimeGrossGoldIncome;
#if defined(MOD_BALANCE_CORE)
	kStream << m_iInternalTradeGoldBonus;
#endif
#if defined(MOD_DIPLOMACY_CIV4_FEATURES)
	MOD_SERIALIZE_WRITE(kStream, m_iExpensePerTurnFromVassalTax);
#endif
}
//------------------------------------------------------------------------------
void CvPlayerAchievements::Write(FDataStream& kStream) const
{
	int iVersion = 1;
	kStream << iVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);
	kStream << m_iAchievement_XP1_32_Progress;
	kStream << m_iAchievement_XP1_33_Progress;
}
//
// write object to a stream
//
void PopupReturn::write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	unsigned int iI;
	//char szString[1024];

	kStream <<  m_aiSelectedRadioButton.size() ;
	for(iI = 0; iI < m_aiSelectedRadioButton.size(); iI++)
	{
		kStream <<  m_aiSelectedRadioButton[iI] ;
	}

	kStream <<  m_aiBitField.size() ;
	for(iI = 0; iI < m_aiBitField.size(); iI++)
	{
		kStream <<  m_aiBitField[iI] ;
	}

	kStream <<  m_aszEditBoxString.size() ;
	for(iI = 0; iI < m_aszEditBoxString.size(); iI++)
	{
		kStream <<  m_aszEditBoxString[iI] ;
	}

	kStream <<  m_aiSpinnerWidgetValues.size() ;
	for(iI = 0; iI < m_aiSpinnerWidgetValues.size(); iI++)
	{
		kStream <<  m_aiSpinnerWidgetValues[iI] ;
	}

	kStream <<  m_aiPulldownID.size() ;
	for(iI = 0; iI < m_aiPulldownID.size(); iI++)
	{
		kStream <<  m_aiPulldownID[iI] ;
	}

	kStream <<  m_aiListBoxID.size() ;
	for(iI = 0; iI < m_aiListBoxID.size(); iI++)
	{
		kStream <<  m_aiListBoxID[iI] ;
	}

	kStream <<  m_aiSpinBoxID.size() ;
	for(iI = 0; iI < m_aiSpinBoxID.size(); iI++)
	{
		kStream <<  m_aiSpinBoxID[iI] ;
	}

	kStream <<  m_aiButtonID.size() ;
	for(iI = 0; iI < m_aiButtonID.size(); iI++)
	{
		kStream <<  m_aiButtonID[iI] ;
	}
}
/// Serialization write
void CvFlavorManager::Write(FDataStream& kStream)
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	CvAssertMsg(GC.getNumFlavorTypes() > 0, "Number of flavors to serialize is expected to greater than 0)");
	kStream << GC.getNumFlavorTypes();
	kStream << ArrayWrapper<int>(GC.getNumFlavorTypes(), m_piPersonalityFlavor);
	kStream << ArrayWrapper<int>(GC.getNumFlavorTypes(), m_piActiveFlavor);
}
/// Serialization write
void CvProjectProductionAI::Write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
    MOD_SERIALIZE_INIT_WRITE(kStream); //mod00

	// Loop through writing each entry
	for(int i = 0; i < GC.GetGameProjects()->GetNumProjects(); i++)
	{
		kStream << m_ProjectAIWeights.GetWeight(i);
	}
}
void CvRandom::write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	kStream << m_ullRandomSeed;
	kStream << m_ulCallCount;
	kStream << m_ulResetCount;
	//dummy
	kStream << false;
}
/// Serialization write
void CvProcessProductionAI::Write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	// Loop through writing each entry
	kStream << GC.getNumProcessInfos();
	for(int i = 0; i < GC.getNumProcessInfos(); i++)
	{
		CvInfosSerializationHelper::WriteHashed(kStream, GC.getProcessInfo((ProcessTypes)i));
		kStream << m_ProcessAIWeights.GetWeight(i);
	}
}
/// Serialization write
void CvGrandStrategyAI::Write(FDataStream& kStream)
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	kStream << m_iNumTurnsSinceActiveSet;
	kStream << m_eActiveGrandStrategy;

	FAssertMsg(GC.getNumAIGrandStrategyInfos() > 0, "Number of AIStrategies to serialize is expected to greater than 0");
	kStream << ArrayWrapper<int>(m_pAIGrandStrategies->GetNumAIGrandStrategies(), m_paiGrandStrategyPriority);

	kStream << ArrayWrapper<int>(MAX_MAJOR_CIVS, m_eGuessOtherPlayerActiveGrandStrategy);
	kStream << ArrayWrapper<int>(MAX_MAJOR_CIVS, m_eGuessOtherPlayerActiveGrandStrategyConfidence);
}
Esempio n. 11
0
/// Serialization write
void CvPolicyAI::Write(FDataStream& kStream)
{
    // Current version number
    uint uiVersion = 1;
    kStream << uiVersion;
    MOD_SERIALIZE_INIT_WRITE(kStream); //mod00

    CvAssertMsg(m_pCurrentPolicies->GetPolicies() != NULL, "Policy AI serialization failure: no policy data");
    CvAssertMsg(m_pCurrentPolicies->GetPolicies()->GetNumPolicies() > 0, "Policy AI serialization failure: number of policies not greater than 0");

    // Loop through writing each entry
    uint uiPolicyCount = m_pCurrentPolicies->GetPolicies()->GetNumPolicies();
    kStream << uiPolicyCount;

    for(int i = 0; i < m_pCurrentPolicies->GetPolicies()->GetNumPolicies(); i++)
    {
        CvInfosSerializationHelper::WriteHashed(kStream, static_cast<const PolicyTypes>(i));
        kStream << m_PolicyAIWeights.GetWeight(i);
    }
}
Esempio n. 12
0
/// Serialization write
void CvTechAI::Write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
	MOD_SERIALIZE_INIT_WRITE(kStream);

	CvAssertMsg(m_pCurrentTechs->GetTechs() != NULL, "Tech AI serialization failure: no tech data");
	CvAssertMsg(m_pCurrentTechs->GetTechs()->GetNumTechs() > 0, "Tech AI serialization failure: number of techs not greater than 0");

	uint uiCount = m_pCurrentTechs->GetTechs()->GetNumTechs();
	kStream << uiCount;

	// Loop through writing each entry
	for(uint i = 0; i < uiCount; i++)
	{
		CvInfosSerializationHelper::WriteHashed(kStream, (TechTypes)i);	// Write out the hash ID first
		kStream << m_TechAIWeights.GetWeight(i);
	}
}
FDataStream& operator<<(FDataStream& kStream, const CvPopupInfo& kPopupInfo)
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
    MOD_SERIALIZE_INIT_WRITE(kStream); //mod00

	kStream << kPopupInfo.iData1;
	kStream << kPopupInfo.iData2;
	kStream << kPopupInfo.iData3;
	kStream << kPopupInfo.iFlags;
	kStream << kPopupInfo.bOption1;
	kStream << kPopupInfo.bOption2;

	kStream << kPopupInfo.eButtonPopupType;

	CvString strDummy = kPopupInfo.szText;
	kStream << strDummy;

	return kStream;
}
Esempio n. 14
0
void CvRandom::write(FDataStream& kStream) const
{
	// Current version number
	uint uiVersion = 1;
	kStream << uiVersion;
    MOD_SERIALIZE_INIT_WRITE(kStream); //mod00

	kStream << m_ulRandomSeed;
	kStream << m_ulCallCount;
	kStream << m_ulResetCount;
#ifdef _DEBUG
	kStream << m_bExtendedCallStackDebugging;
	if(m_bExtendedCallStackDebugging)
	{
		resolveCallStacks();
		kStream << m_seedHistory;
		kStream << m_resolvedCallStacks;
	}
#else
	kStream << false;
#endif
}
Esempio n. 15
0
void CvReplayInfo::write(FDataStream& kStream) const
{
	kStream << REPLAY_VERSION;
    MOD_SERIALIZE_INIT_WRITE(kStream); //mod00
	kStream << m_iActivePlayer;
	kStream << m_strMapScriptName;
	kStream << m_eWorldSize;
	kStream << m_eClimate;
	kStream << m_eSeaLevel;
	kStream << m_eEra;
	kStream << m_eGameSpeed;
	kStream << m_listGameOptions;
	kStream << m_listVictoryTypes;
	kStream << m_eVictoryType;
	kStream << m_eGameType;
	kStream << m_iInitialTurn;
	kStream << m_iStartYear;
	kStream << m_iFinalTurn;
	kStream << m_strFinalDate;
	kStream << m_eCalendar;
	kStream << m_iNormalizedScore;

	kStream << m_listPlayerInfo;
	kStream << m_dataSetMap;
	kStream << m_listPlayerDataSets;

	kStream << CvReplayMessage::Version();
	kStream << m_listReplayMessages.size();
	for(ReplayMessageList::const_iterator it = m_listReplayMessages.begin(); it != m_listReplayMessages.end(); ++it)
	{
		(*it).write(kStream);
	}

	kStream << m_iMapWidth;
	kStream << m_iMapHeight;
	kStream << m_listPlots;
}