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}