Bazaar developer reference

CvDealAI::DoTradeScreenOpened()

Defined in
CvDealAI.cpp, line 3952
Class
CvDealAI
Hook name
CivHooks::CvDealAI_DoTradeScreenOpened

Hooks

static bool BeforeCvDealAI_DoTradeScreenOpened(CvDealAI* self);static void AfterCvDealAI_DoTradeScreenOpened(CvDealAI* self);static void ReplaceCvDealAI_DoTradeScreenOpened(void (*original)(CvDealAI*), CvDealAI* self);CivRegisterBefore<CivHooks::CvDealAI_DoTradeScreenOpened>(host, &BeforeCvDealAI_DoTradeScreenOpened);CivRegisterAfter<CivHooks::CvDealAI_DoTradeScreenOpened>(host, &AfterCvDealAI_DoTradeScreenOpened);CivRegisterReplace<CivHooks::CvDealAI_DoTradeScreenOpened>(host, &ReplaceCvDealAI_DoTradeScreenOpened);

Code

3951/// This function called when human player enters diplomacy3952void CvDealAI::DoTradeScreenOpened()3953{3954	TeamTypes eActiveTeam = GC.getGame().getActiveTeam();3955	PlayerTypes eActivePlayer = GC.getGame().getActivePlayer();39563957	if(GET_TEAM(GetTeam()).isAtWar(eActiveTeam))3958	{3959		PlayerTypes eMyPlayer = GetPlayer()->GetID();39603961		PeaceTreatyTypes ePeaceTreatyImWillingToOffer = GetPlayer()->GetDiplomacyAI()->GetTreatyWillingToOffer(eActivePlayer);3962		PeaceTreatyTypes ePeaceTreatyImWillingToAccept = GetPlayer()->GetDiplomacyAI()->GetTreatyWillingToAccept(eActivePlayer);39633964		// Does the AI actually want peace?3965		if(ePeaceTreatyImWillingToOffer >= PEACE_TREATY_WHITE_PEACE && ePeaceTreatyImWillingToAccept >= PEACE_TREATY_WHITE_PEACE)3966		{3967			// Clear out UI deal first, we're going to add a couple things to it3968			auto_ptr<ICvDeal1> pUIDeal(GC.GetEngineUserInterface()->GetScratchDeal());3969			CvDeal* pkUIDeal = GC.UnwrapDealPointer(pUIDeal.get());3970			pkUIDeal->ClearItems();39713972			CvDeal* pDeal = GC.getGame().GetGameDeals()->GetTempDeal();3973			pDeal->ClearItems();3974			pDeal->SetFromPlayer(eActivePlayer);	// The order of these is very important!3975			pDeal->SetToPlayer(eMyPlayer);	// The order of these is very important!39763977			// AI is surrendering3978			if(ePeaceTreatyImWillingToOffer > PEACE_TREATY_WHITE_PEACE)3979			{3980				pkUIDeal->SetSurrenderingPlayer(eMyPlayer);3981				pkUIDeal->SetPeaceTreatyType(ePeaceTreatyImWillingToOffer);39823983				DoAddItemsToDealForPeaceTreaty(eActivePlayer, pDeal, ePeaceTreatyImWillingToOffer, /*bMeSurrendering*/ true);39843985				// Store the value of the deal with the human so that we have a number to use for renegotiation (if necessary)3986				int iValueImOffering, iValueTheyreOffering;3987				GetDealValue(pDeal, iValueImOffering, iValueTheyreOffering, /*bUseEvenValue*/ false);3988				SetCachedValueOfPeaceWithHuman(-iValueImOffering);3989			}3990			// AI is asking human to surrender3991			else if(ePeaceTreatyImWillingToAccept > PEACE_TREATY_WHITE_PEACE)3992			{3993				pkUIDeal->SetSurrenderingPlayer(eActivePlayer);3994				pkUIDeal->SetPeaceTreatyType(ePeaceTreatyImWillingToAccept);39953996				DoAddItemsToDealForPeaceTreaty(eActivePlayer, pDeal, ePeaceTreatyImWillingToAccept, /*bMeSurrendering*/ false);39973998				// Store the value of the deal with the human so that we have a number to use for renegotiation (if necessary)3999				int iValueImOffering, iValueTheyreOffering;4000				GetDealValue(pDeal, iValueImOffering, iValueTheyreOffering, /*bUseEvenValue*/ false);4001				SetCachedValueOfPeaceWithHuman(iValueTheyreOffering);4002			}40034004			pDeal->ClearItems();40054006			// Now add peace items to the UI deal so that it's ready for us to make an offer4007			pkUIDeal->SetFromPlayer(eActivePlayer);	// The order of these is very important!4008			pkUIDeal->SetToPlayer(eMyPlayer);	// The order of these is very important!4009			pkUIDeal->AddPeaceTreaty(eMyPlayer, GC.getGame().getGameSpeedInfo().getPeaceDealDuration());4010			pkUIDeal->AddPeaceTreaty(eActivePlayer, GC.getGame().getGameSpeedInfo().getPeaceDealDuration());4011			4012			// slewis - adding third party city-states into the deal automatically4013			DoAddPlayersAlliesToTreaty(eActivePlayer, pkUIDeal);40144015			// Start off as a white peace4016			pkUIDeal->SetPeaceTreatyType(PEACE_TREATY_WHITE_PEACE);4017		}4018	}4019}

Calls

Called by