Bazaar developer reference

CvLuaPlayer::lGetOpinionTable(lua_State *)

Defined in
Lua/CvLuaPlayer.cpp, line 10381
Class
CvLuaPlayer
Hook name
CivHooks::CvLuaPlayer_lGetOpinionTable

Hooks

static bool BeforeCvLuaPlayer_lGetOpinionTable(lua_State* L, int& result);static void AfterCvLuaPlayer_lGetOpinionTable(lua_State* L, int& result);static int ReplaceCvLuaPlayer_lGetOpinionTable(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvLuaPlayer_lGetOpinionTable>(host, &BeforeCvLuaPlayer_lGetOpinionTable);CivRegisterAfter<CivHooks::CvLuaPlayer_lGetOpinionTable>(host, &AfterCvLuaPlayer_lGetOpinionTable);CivRegisterReplace<CivHooks::CvLuaPlayer_lGetOpinionTable>(host, &ReplaceCvLuaPlayer_lGetOpinionTable);

Code

10381int CvLuaPlayer::lGetOpinionTable(lua_State* L)10382{10383	CvPlayerAI* pkPlayer = GetInstance(L);10384	PlayerTypes eWithPlayer = (PlayerTypes)lua_tointeger(L, 2);10385	CvDiplomacyAI* pDiploAI = pkPlayer->GetDiplomacyAI();103861038710388	std::vector<Opinion> aOpinions;10389	int iValue;1039010391	int iVisibleApproach = GET_PLAYER(eWithPlayer).GetDiplomacyAI()->GetApproachTowardsUsGuess(pkPlayer->GetID());10392	if (GET_TEAM(pkPlayer->getTeam()).isAtWar(GET_PLAYER(eWithPlayer).getTeam()))10393	{10394		Opinion kOpinion;10395		kOpinion.m_iValue = 99999;10396		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_AT_WAR");10397		aOpinions.push_back(kOpinion);10398	}10399	else10400	{10401		if (GET_PLAYER(eWithPlayer).GetDiplomacyAI()->GetNumWarsFought(pkPlayer->GetID()) > 0)10402		{10403			if (iVisibleApproach == MAJOR_CIV_APPROACH_FRIENDLY || iVisibleApproach == MAJOR_CIV_APPROACH_NEUTRAL)10404			{10405				Opinion kOpinion;10406				kOpinion.m_iValue = 0;10407				kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_PAST_WAR_NEUTRAL");10408				aOpinions.push_back(kOpinion);10409			}10410			else10411			{10412				Opinion kOpinion;10413				kOpinion.m_iValue = 0;10414				kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_PAST_WAR_BAD");10415				aOpinions.push_back(kOpinion);10416			}10417		}10418	}1041910420	if (iVisibleApproach != MAJOR_CIV_APPROACH_FRIENDLY) 10421	{10422		// land dispute10423		iValue = pDiploAI->GetLandDisputeLevelScore(eWithPlayer);10424		if (iValue < 0)10425		{10426			Opinion kOpinion;10427			kOpinion.m_iValue = iValue;10428			kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NO_LAND_DISPUTE");10429			aOpinions.push_back(kOpinion);10430		}10431		else if (iValue > 0)10432		{10433			Opinion kOpinion;10434			kOpinion.m_iValue = iValue;10435			kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_LAND_DISPUTE");10436			aOpinions.push_back(kOpinion);10437		}1043810439		// wonder dispute10440		iValue = pDiploAI->GetWonderDisputeLevelScore(eWithPlayer);10441		if (iValue != 0)10442		{10443			Opinion kOpinion;10444			kOpinion.m_iValue = iValue;10445			kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_WONDER_DISPUTE");10446			aOpinions.push_back(kOpinion);10447		}1044810449		// minor civ dispute10450		iValue = pDiploAI->GetMinorCivDisputeLevelScore(eWithPlayer);10451		if (iValue != 0)10452		{10453			Opinion kOpinion;10454			kOpinion.m_iValue = iValue;10455			kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_MINOR_CIV_DISPUTE");10456			aOpinions.push_back(kOpinion);10457		}1045810459		// warmonger dispute10460		iValue = pDiploAI->GetWarmongerThreatScore(eWithPlayer);10461		if (iValue != 0)10462		{10463			Opinion kOpinion;10464			kOpinion.m_iValue = iValue;10465			CvString str;10466			10467			if (pDiploAI->GetWarmongerThreat(eWithPlayer) == THREAT_CRITICAL)10468			{10469				str = Localization::Lookup("TXT_KEY_DIPLO_WARMONGER_THREAT_CRITICAL").toUTF8();10470			}10471			else if (pDiploAI->GetWarmongerThreat(eWithPlayer) == THREAT_SEVERE)10472			{10473				str = Localization::Lookup("TXT_KEY_DIPLO_WARMONGER_THREAT_SEVERE").toUTF8();10474			}10475			else if (pDiploAI->GetWarmongerThreat(eWithPlayer) == THREAT_MAJOR)10476			{10477				str = Localization::Lookup("TXT_KEY_DIPLO_WARMONGER_THREAT_MAJOR").toUTF8();10478			}10479			else 10480			{10481				str = Localization::Lookup("TXT_KEY_DIPLO_WARMONGER_THREAT_MINOR").toUTF8();10482			}1048310484			if (pDiploAI->GetWarmongerHate() >= 7)10485			{10486				str += " ";10487				str += Localization::Lookup("TXT_KEY_WARMONGER_HATE_HIGH").toUTF8();10488			}10489			else if (pDiploAI->GetWarmongerHate() >= 5)10490			{10491				str += " ";10492				str += Localization::Lookup("TXT_KEY_WARMONGER_HATE_MID").toUTF8();10493			}10494			else 10495			{10496				str += " ";10497				str += Localization::Lookup("TXT_KEY_WARMONGER_HATE_LOW").toUTF8();10498			}1049910500			kOpinion.m_str = str;1050110502			aOpinions.push_back(kOpinion);10503		}10504	}1050510506	if (iVisibleApproach == MAJOR_CIV_APPROACH_AFRAID)10507	{10508		Opinion kOpinion;10509		kOpinion.m_iValue = 0;10510		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_AFRAID");10511		aOpinions.push_back(kOpinion);10512	}1051310514	iValue = pDiploAI->GetCiviliansReturnedToMeScore(eWithPlayer);10515	if (iValue != 0)10516	{10517		Opinion kOpinion;10518		kOpinion.m_iValue = iValue;10519		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CIVILIANS_RETURNED");10520		aOpinions.push_back(kOpinion);10521	}10522	10523	iValue = pDiploAI->GetLandmarksBuiltForMeScore(eWithPlayer);10524	if (iValue != 0)10525	{10526		Opinion kOpinion;10527		kOpinion.m_iValue = iValue;10528		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_LANDMARKS_BUILT");10529		aOpinions.push_back(kOpinion);10530	}1053110532	iValue = pDiploAI->GetResurrectedScore(eWithPlayer);10533	if (iValue != 0)10534	{10535		Opinion kOpinion;10536		kOpinion.m_iValue = iValue;10537		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_RESURRECTED");10538		aOpinions.push_back(kOpinion);10539	}1054010541	iValue = pDiploAI->GetLiberatedCitiesScore(eWithPlayer);10542	if (iValue != 0)10543	{10544		Opinion kOpinion;10545		kOpinion.m_iValue = iValue;10546		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CITIES_LIBERATED");10547		aOpinions.push_back(kOpinion);10548	}1054910550	iValue = pDiploAI->GetEmbassyScore(eWithPlayer);10551	if (iValue != 0)10552	{10553		Opinion kOpinion;10554		kOpinion.m_iValue = iValue;10555		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_HAS_EMBASSY");10556		aOpinions.push_back(kOpinion);10557	}1055810559	iValue = pDiploAI->GetForgaveForSpyingScore(eWithPlayer);10560	if (iValue != 0)10561	{10562		Opinion kOpinion;10563		kOpinion.m_iValue = iValue;10564		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_FORGAVE_FOR_SPYING");10565		aOpinions.push_back(kOpinion);10566	}10567	10568	iValue = pDiploAI->GetNoSetterRequestScore(eWithPlayer);10569	if (iValue != 0)10570	{10571		Opinion kOpinion;10572		kOpinion.m_iValue = iValue;10573		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NO_SETTLE_ASKED");10574		aOpinions.push_back(kOpinion);10575	}1057610577	iValue = pDiploAI->GetStopSpyingRequestScore(eWithPlayer);10578	if (iValue != 0)10579	{10580		Opinion kOpinion;10581		kOpinion.m_iValue = iValue;10582		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_STOP_SPYING_ASKED");10583		aOpinions.push_back(kOpinion);10584	}1058510586	iValue = pDiploAI->GetDemandEverMadeScore(eWithPlayer);10587	if (iValue != 0)10588	{10589		Opinion kOpinion;10590		kOpinion.m_iValue = iValue;10591		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_TRADE_DEMAND");10592		aOpinions.push_back(kOpinion);10593	}1059410595	iValue = pDiploAI->GetTimesCultureBombedScore(eWithPlayer);10596	if (iValue != 0)10597	{10598		Opinion kOpinion;10599		kOpinion.m_iValue = iValue;10600		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CULTURE_BOMB");10601		aOpinions.push_back(kOpinion);10602	}1060310604	iValue = pDiploAI->GetReligiousConversionPointsScore(eWithPlayer);10605	if (iValue != 0)10606	{10607		Opinion kOpinion;10608		kOpinion.m_iValue = iValue;10609		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_RELIGIOUS_CONVERSIONS");10610		aOpinions.push_back(kOpinion);10611	}1061210613	iValue = pDiploAI->GetHasAdoptedHisReligionScore(eWithPlayer);10614	if (iValue != 0)10615	{10616		Opinion kOpinion;10617		kOpinion.m_iValue = iValue;10618		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_ADOPTING_MY_RELIGION");10619		aOpinions.push_back(kOpinion);10620	}1062110622	iValue = pDiploAI->GetHasAdoptedMyReligionScore(eWithPlayer);10623	if (iValue != 0)10624	{10625		Opinion kOpinion;10626		kOpinion.m_iValue = iValue;10627		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_ADOPTING_HIS_RELIGION");10628		aOpinions.push_back(kOpinion);10629	}10630	10631	iValue = pDiploAI->GetSameLatePoliciesScore(eWithPlayer);10632	if (iValue != 0)10633	{10634		Opinion kOpinion;10635		kOpinion.m_iValue = iValue;10636		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SAME_LATE_POLICY_TREES");10637		PolicyBranchTypes eBranch = pkPlayer->GetPlayerPolicies()->GetLateGamePolicyTree();10638		kOpinion.m_str << GC.getPolicyBranchInfo(eBranch)->GetDescription();10639		aOpinions.push_back(kOpinion);10640	}1064110642	iValue = pDiploAI->GetDifferentLatePoliciesScore(eWithPlayer);10643	if (iValue != 0)10644	{10645		Opinion kOpinion;10646		kOpinion.m_iValue = iValue;10647		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_DIFFERENT_LATE_POLICY_TREES");10648		PolicyBranchTypes eTheirBranch = pkPlayer->GetPlayerPolicies()->GetLateGamePolicyTree();10649		PolicyBranchTypes eMyBranch = GET_PLAYER(eWithPlayer).GetPlayerPolicies()->GetLateGamePolicyTree();10650		kOpinion.m_str << GC.getPolicyBranchInfo(eMyBranch)->GetDescription();10651		kOpinion.m_str << GC.getPolicyBranchInfo(eTheirBranch)->GetDescription();10652		aOpinions.push_back(kOpinion);10653	}1065410655	iValue = pDiploAI->GetTimesRobbedScore(eWithPlayer);10656	if (iValue != 0)10657	{10658		Opinion kOpinion;10659		kOpinion.m_iValue = iValue;10660		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CAUGHT_STEALING");10661		aOpinions.push_back(kOpinion);10662	}1066310664	iValue = pDiploAI->GetTimesIntrigueSharedScore(eWithPlayer);10665	if (iValue != 0)10666	{10667		Opinion kOpinion;10668		kOpinion.m_iValue = iValue;10669		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SHARED_INTRIGUE");10670		aOpinions.push_back(kOpinion);10671	}1067210673	iValue = pDiploAI->GetBrokenMilitaryPromiseScore(eWithPlayer);10674	if (iValue != 0)10675	{10676		Opinion kOpinion;10677		kOpinion.m_iValue = iValue;10678		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_MILITARY_PROMISE");10679		aOpinions.push_back(kOpinion);10680	}1068110682	iValue = pDiploAI->GetBrokenMilitaryPromiseWithAnybodyScore(eWithPlayer);10683	if (iValue != 0)10684	{10685		Opinion kOpinion;10686		kOpinion.m_iValue = iValue;10687		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_MILITARY_PROMISE_BROKEN_WITH_OTHERS");10688		aOpinions.push_back(kOpinion);10689	}1069010691	iValue = pDiploAI->GetIgnoredMilitaryPromiseScore(eWithPlayer);10692	if (iValue != 0)10693	{10694		Opinion kOpinion;10695		kOpinion.m_iValue = iValue;10696		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_MILITARY_PROMISE_IGNORED");10697		aOpinions.push_back(kOpinion);10698	}10699	10700	iValue = pDiploAI->GetBrokenExpansionPromiseScore(eWithPlayer);10701	if (iValue != 0)10702	{10703		Opinion kOpinion;10704		kOpinion.m_iValue = iValue;10705		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_EXPANSION_PROMISE");10706		aOpinions.push_back(kOpinion);10707	}1070810709	iValue = pDiploAI->GetIgnoredExpansionPromiseScore(eWithPlayer);10710	if (iValue != 0)10711	{10712		Opinion kOpinion;10713		kOpinion.m_iValue = iValue;10714		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_EXPANSION_PROMISE_IGNORED");10715		aOpinions.push_back(kOpinion);10716	}1071710718	iValue = pDiploAI->GetBrokenBorderPromiseScore(eWithPlayer);10719	if (iValue != 0)10720	{10721		Opinion kOpinion;10722		kOpinion.m_iValue = iValue;10723		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_BORDER_PROMISE");10724		aOpinions.push_back(kOpinion);10725	}1072610727	iValue = pDiploAI->GetIgnoredBorderPromiseScore(eWithPlayer);10728	if (iValue != 0)10729	{10730		Opinion kOpinion;10731		kOpinion.m_iValue = iValue;10732		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_BORDER_PROMISE_IGNORED");10733		aOpinions.push_back(kOpinion);10734	}1073510736	iValue = pDiploAI->GetBrokenAttackCityStatePromiseScore(eWithPlayer);10737	if (iValue != 0)10738	{10739		Opinion kOpinion;10740		kOpinion.m_iValue = iValue;10741		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CITY_STATE_PROMISE");10742		aOpinions.push_back(kOpinion);10743	}1074410745	iValue = pDiploAI->GetBrokenAttackCityStatePromiseWithAnybodyScore(eWithPlayer);10746	if (iValue != 0)10747	{10748		Opinion kOpinion;10749		kOpinion.m_iValue = iValue;10750		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CITY_STATE_PROMISE_BROKEN_WITH_OTHERS");10751		aOpinions.push_back(kOpinion);10752	}1075310754	iValue = pDiploAI->GetIgnoredAttackCityStatePromiseScore(eWithPlayer);10755	if (iValue != 0)10756	{10757		Opinion kOpinion;10758		kOpinion.m_iValue = iValue;10759		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CITY_STATE_PROMISE_IGNORED");10760		aOpinions.push_back(kOpinion);10761	}10762	10763	iValue = pDiploAI->GetBrokenBullyCityStatePromiseScore(eWithPlayer);10764	if (iValue != 0)10765	{10766		Opinion kOpinion;10767		kOpinion.m_iValue = iValue;10768		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_BULLY_CITY_STATE_PROMISE_BROKEN");10769		aOpinions.push_back(kOpinion);10770	}1077110772	iValue = pDiploAI->GetIgnoredBullyCityStatePromiseScore(eWithPlayer);10773	if (iValue != 0)10774	{10775		Opinion kOpinion;10776		kOpinion.m_iValue = iValue;10777		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_BULLY_CITY_STATE_PROMISE_IGNORED");10778		aOpinions.push_back(kOpinion);10779	}1078010781	iValue = pDiploAI->GetBrokenNoConvertPromiseScore(eWithPlayer);10782	if (iValue != 0)10783	{10784		Opinion kOpinion;10785		kOpinion.m_iValue = iValue;10786		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NO_CONVERT_PROMISE_BROKEN");10787		aOpinions.push_back(kOpinion);10788	}1078910790	iValue = pDiploAI->GetIgnoredNoConvertPromiseScore(eWithPlayer);10791	if (iValue != 0)10792	{10793		Opinion kOpinion;10794		kOpinion.m_iValue = iValue;10795		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NO_CONVERT_PROMISE_IGNORED");10796		aOpinions.push_back(kOpinion);10797	}1079810799	iValue = pDiploAI->GetBrokenNoDiggingPromiseScore(eWithPlayer);10800	if (iValue != 0)10801	{10802		Opinion kOpinion;10803		kOpinion.m_iValue = iValue;10804		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NO_DIG_PROMISE_BROKEN");10805		aOpinions.push_back(kOpinion);10806	}1080710808	iValue = pDiploAI->GetIgnoredNoDiggingPromiseScore(eWithPlayer);10809	if (iValue != 0)10810	{10811		Opinion kOpinion;10812		kOpinion.m_iValue = iValue;10813		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NO_DIG_PROMISE_IGNORED");10814		aOpinions.push_back(kOpinion);10815	}1081610817	iValue = pDiploAI->GetBrokenSpyPromiseScore(eWithPlayer);10818	if (iValue != 0)10819	{10820		Opinion kOpinion;10821		kOpinion.m_iValue = iValue;10822		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SPY_PROMISE_BROKEN");10823		aOpinions.push_back(kOpinion);10824	}1082510826	iValue = pDiploAI->GetIgnoredSpyPromiseScore(eWithPlayer);10827	if (iValue != 0)10828	{10829		Opinion kOpinion;10830		kOpinion.m_iValue = iValue;10831		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SPY_PROMISE_IGNORED");10832		aOpinions.push_back(kOpinion);10833	}1083410835	iValue = pDiploAI->GetBrokenCoopWarPromiseScore(eWithPlayer);10836	if (iValue != 0)10837	{10838		Opinion kOpinion;10839		kOpinion.m_iValue = iValue;10840		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_COOP_WAR_PROMISE");10841		aOpinions.push_back(kOpinion);10842	}1084310844	iValue = pDiploAI->GetAngryAboutProtectedMinorKilledScore(eWithPlayer);10845	if (iValue != 0)10846	{10847		Opinion kOpinion;10848		kOpinion.m_iValue = iValue;10849		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_PROTECTED_MINORS_KILLED");10850		aOpinions.push_back(kOpinion);10851	}1085210853	iValue = pDiploAI->GetAngryAboutProtectedMinorAttackedScore(eWithPlayer);10854	if (iValue != 0)10855	{10856		Opinion kOpinion;10857		kOpinion.m_iValue = iValue;10858		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_PROTECTED_MINORS_ATTACKED");10859		aOpinions.push_back(kOpinion);10860	}1086110862	iValue = pDiploAI->GetAngryAboutProtectedMinorBulliedScore(eWithPlayer);10863	if (iValue != 0)10864	{10865		Opinion kOpinion;10866		kOpinion.m_iValue = iValue;10867		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_PROTECTED_MINORS_BULLIED");10868		aOpinions.push_back(kOpinion);10869	}1087010871	iValue = pDiploAI->GetAngryAboutSidedWithProtectedMinorScore(eWithPlayer);10872	if (iValue != 0)10873	{10874		Opinion kOpinion;10875		kOpinion.m_iValue = iValue;10876		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SIDED_WITH_MINOR");10877		aOpinions.push_back(kOpinion);10878	}1087910880	iValue = pDiploAI->GetDOFAcceptedScore(eWithPlayer);10881	if (iValue != 0)10882	{10883		Opinion kOpinion;10884		kOpinion.m_iValue = iValue;10885		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_DOF");10886		aOpinions.push_back(kOpinion);10887	}1088810889	iValue = pDiploAI->GetDOFWithAnyFriendScore(eWithPlayer);10890	if (iValue != 0)10891	{10892		Opinion kOpinion;10893		kOpinion.m_iValue = iValue;10894		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_MUTUAL_DOF");10895		aOpinions.push_back(kOpinion);10896	}1089710898	iValue = pDiploAI->GetDOFWithAnyEnemyScore(eWithPlayer);10899	if (iValue != 0)10900	{10901		Opinion kOpinion;10902		kOpinion.m_iValue = iValue;10903		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_HUMAN_DOF_WITH_ENEMY");10904		aOpinions.push_back(kOpinion);10905	}1090610907	// TRAITOR BEGIN10908	{10909		iValue = 0;10910		Localization::String str;10911		int iTempValue;1091210913		iTempValue = pDiploAI->GetFriendDenouncementScore(eWithPlayer);10914		if (iTempValue > iValue)10915		{10916			iValue = iTempValue;10917			str = Localization::Lookup("TXT_KEY_DIPLO_DENOUNCED_BY_PEOPLE_WE_TRUST_MORE");10918		}1091910920		iTempValue = pDiploAI->GetWeDenouncedFriendScore(eWithPlayer);10921		if (iTempValue > iValue)10922		{10923			iValue = iTempValue;10924			str = Localization::Lookup("TXT_KEY_DIPLO_HUMAN_DENOUNCED_FRIENDS");10925		}1092610927		iTempValue = pDiploAI->GetFriendDenouncedUsScore(eWithPlayer);10928		if (iTempValue > iValue)10929		{10930			iValue = iTempValue;10931			str = Localization::Lookup("TXT_KEY_DIPLO_HUMAN_FRIEND_DENOUNCED");10932		}1093310934		iTempValue = pDiploAI->GetWeDeclaredWarOnFriendScore(eWithPlayer);10935		if (iTempValue > iValue)10936		{10937			iValue = iTempValue;10938			str = Localization::Lookup("TXT_KEY_DIPLO_HUMAN_DECLARED_WAR_ON_FRIENDS");10939		}1094010941		iTempValue = pDiploAI->GetFriendDeclaredWarOnUsScore(eWithPlayer);10942		if (iTempValue > iValue)10943		{10944			iValue = iTempValue;10945			str = Localization::Lookup("TXT_KEY_DIPLO_HUMAN_FRIEND_DECLARED_WAR");10946		}1094710948		if (iValue != 0)10949		{10950			Opinion kOpinion;10951			kOpinion.m_iValue = iValue;10952			kOpinion.m_str = str;10953			aOpinions.push_back(kOpinion);10954		}10955	}10956	// TRAITOR END1095710958	//iValue = pDiploAI->GetRequestsRefusedScore(eWithPlayer);10959	//if (iValue != 0)10960	//{10961	//	Opinion kOpinion;10962	//	kOpinion.m_iValue = iValue;10963	//	kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_REFUSED_REQUESTS");10964	//	aOpinions.push_back(kOpinion);10965	//}1096610967	iValue = pDiploAI->GetDenouncedUsScore(eWithPlayer);10968	if (iValue != 0)10969	{10970		Opinion kOpinion;10971		kOpinion.m_iValue = iValue;10972		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_DENOUNCED_BY_US");10973		aOpinions.push_back(kOpinion);10974	}1097510976	iValue = pDiploAI->GetDenouncedThemScore(eWithPlayer);10977	if (iValue != 0)10978	{10979		Opinion kOpinion;10980		kOpinion.m_iValue = iValue;10981		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_DENOUNCED_BY_THEM");10982		aOpinions.push_back(kOpinion);10983	}1098410985	iValue = pDiploAI->GetDenouncedFriendScore(eWithPlayer);10986	if (iValue != 0)10987	{10988		Opinion kOpinion;10989		kOpinion.m_iValue = iValue;10990		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_HUMAN_DENOUNCED_FRIEND");10991		aOpinions.push_back(kOpinion);10992	}1099310994	iValue = pDiploAI->GetDenouncedEnemyScore(eWithPlayer);10995	if (iValue != 0)10996	{10997		Opinion kOpinion;10998		kOpinion.m_iValue = iValue;10999		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_MUTUAL_ENEMY");11000		aOpinions.push_back(kOpinion);11001	}1100211003	iValue = pDiploAI->GetRecklessExpanderScore(eWithPlayer);11004	if (iValue != 0)11005	{11006		Opinion kOpinion;11007		kOpinion.m_iValue = iValue;11008		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_RECKLESS_EXPANDER");11009		aOpinions.push_back(kOpinion);11010	}1101111012	iValue = pDiploAI->GetRecentTradeScore(eWithPlayer);11013	if (iValue != 0)11014	{11015		Opinion kOpinion;11016		kOpinion.m_iValue = iValue;11017		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_TRADE_PARTNER");11018		aOpinions.push_back(kOpinion);11019	}1102011021	iValue = pDiploAI->GetCommonFoeScore(eWithPlayer);11022	if (iValue != 0)11023	{11024		Opinion kOpinion;11025		kOpinion.m_iValue = iValue;11026		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_COMMON_FOE");11027		aOpinions.push_back(kOpinion);11028	}1102911030	iValue = pDiploAI->GetRecentAssistScore(eWithPlayer);11031	if (iValue != 0)11032	{11033		Opinion kOpinion;11034		kOpinion.m_iValue = iValue;11035		if (iValue > 0)11036		{11037			kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_REFUSED_REQUESTS");11038		}11039		else if (iValue < 0)11040		{11041			kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_ASSISTANCE_TO_THEM");11042		}11043		aOpinions.push_back(kOpinion);11044	}1104511046	iValue = pDiploAI->GetNukedByScore(eWithPlayer);11047	if (iValue != 0)11048	{11049		Opinion kOpinion;11050		kOpinion.m_iValue = iValue;11051		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_NUKED");11052		aOpinions.push_back(kOpinion);11053	}1105411055	iValue = pDiploAI->GetCapitalCapturedByScore(eWithPlayer);11056	if (iValue != 0)11057	{11058		Opinion kOpinion;11059		kOpinion.m_iValue = iValue;11060		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_CAPTURED_CAPITAL");11061		aOpinions.push_back(kOpinion);11062	}1106311064	iValue = pDiploAI->GetGaveAssistanceToScore(eWithPlayer);11065	if (iValue != 0)11066	{11067		Opinion kOpinion;11068		kOpinion.m_iValue = iValue;11069		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_ASSISTANCE_FROM_THEM");11070		aOpinions.push_back(kOpinion);11071	}1107211073	iValue = pDiploAI->GetPaidTributeToScore(eWithPlayer);11074	if (iValue != 0)11075	{11076		Opinion kOpinion;11077		kOpinion.m_iValue = iValue;11078		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_PAID_TRIBUTE");11079		aOpinions.push_back(kOpinion);11080	}1108111082	iValue = pDiploAI->GetLikedTheirProposalScore(eWithPlayer);11083	if (iValue != 0)11084	{11085		Opinion kOpinion;11086		kOpinion.m_iValue = iValue;11087		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_LIKED_OUR_PROPOSAL");11088		aOpinions.push_back(kOpinion);11089	}11090	11091	iValue = pDiploAI->GetDislikedTheirProposalScore(eWithPlayer);11092	if (iValue != 0)11093	{11094		Opinion kOpinion;11095		kOpinion.m_iValue = iValue;11096		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_DISLIKED_OUR_PROPOSAL");11097		aOpinions.push_back(kOpinion);11098	}1109911100	iValue = pDiploAI->GetSupportedMyProposalScore(eWithPlayer);11101	if (iValue != 0)11102	{11103		Opinion kOpinion;11104		kOpinion.m_iValue = iValue;11105		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SUPPORTED_THEIR_PROPOSAL");11106		aOpinions.push_back(kOpinion);11107	}1110811109	iValue = pDiploAI->GetFoiledMyProposalScore(eWithPlayer);11110	if (iValue != 0)11111	{11112		Opinion kOpinion;11113		kOpinion.m_iValue = iValue;11114		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_FOILED_THEIR_PROPOSAL");11115		aOpinions.push_back(kOpinion);11116	}1111711118	iValue = pDiploAI->GetSupportedMyHostingScore(eWithPlayer);11119	if (iValue != 0)11120	{11121		Opinion kOpinion;11122		kOpinion.m_iValue = iValue;11123		kOpinion.m_str = Localization::Lookup("TXT_KEY_DIPLO_SUPPORTED_THEIR_HOSTING");11124		aOpinions.push_back(kOpinion);11125	}1112611127#if defined(MOD_EVENTS_DIPLO_MODIFIERS)11128	iValue = pDiploAI->GetDiploModifiers(eWithPlayer, aOpinions);11129#else11130	iValue = pDiploAI->GetScenarioModifier1(eWithPlayer);11131	if (iValue != 0)11132	{11133		Opinion kOpinion;11134		kOpinion.m_iValue = iValue;11135		kOpinion.m_str = Localization::Lookup("TXT_KEY_SPECIFIC_DIPLO_STRING_1");11136		aOpinions.push_back(kOpinion);11137	}1113811139	iValue = pDiploAI->GetScenarioModifier2(eWithPlayer);11140	if (iValue != 0)11141	{11142		Opinion kOpinion;11143		kOpinion.m_iValue = iValue;11144		kOpinion.m_str = Localization::Lookup("TXT_KEY_SPECIFIC_DIPLO_STRING_2");11145		aOpinions.push_back(kOpinion);11146	}1114711148	iValue = pDiploAI->GetScenarioModifier3(eWithPlayer);11149	if (iValue != 0)11150	{11151		Opinion kOpinion;11152		kOpinion.m_iValue = iValue;11153		kOpinion.m_str = Localization::Lookup("TXT_KEY_SPECIFIC_DIPLO_STRING_3");11154		aOpinions.push_back(kOpinion);11155	}11156#endif1115711158	std::stable_sort(aOpinions.begin(), aOpinions.end(), OpinionEval());1115911160	lua_createtable(L, 0, 0);11161	int index = 1;11162	std::string strOutput;11163	const char* strEmpty = "";11164	std::string strEndColor = "[ENDCOLOR]";11165	size_t EndColorFound;11166	std::string strColorPrefix = "[COLOR_";11167	size_t BeginColorPrefixFound;11168	std::string strColorSuffix = "]";11169	size_t BeginColorSuffixFound;11170	std::string strFullPositiveColor = "[COLOR_POSITIVE_TEXT]";11171	std::string strPartialPositiveColor = "[COLOR_FADING_POSITIVE_TEXT]";11172	std::string strNeutralColor = "[COLOR_GREY]";11173	std::string strPartialNegativeColor = "[COLOR_FADING_NEGATIVE_TEXT]";11174	std::string strFullNegativeColor = "[COLOR_NEGATIVE_TEXT]";1117511176	for (uint ui = 0; ui < aOpinions.size(); ui++)11177	{11178		strOutput = aOpinions[ui].m_str.toUTF8();1117911180		EndColorFound = strOutput.rfind(strEndColor);11181		if (EndColorFound != string::npos)11182		{11183			strOutput.replace(EndColorFound, strEndColor.length(), strEmpty);11184		}1118511186		BeginColorPrefixFound = strOutput.find(strColorPrefix);11187		if (BeginColorPrefixFound != string::npos)11188		{11189			BeginColorSuffixFound = strOutput.find(strColorSuffix);11190			if (BeginColorSuffixFound != string::npos)11191			{11192				strOutput.erase(BeginColorPrefixFound, (BeginColorSuffixFound - BeginColorPrefixFound) + 1);11193			}11194		}1119511196		if (aOpinions[ui].m_iValue > 10)11197		{11198			strOutput.insert(0, strFullNegativeColor);11199		}11200		else if (aOpinions[ui].m_iValue > 0)11201		{11202			strOutput.insert(0, strPartialNegativeColor);11203		}11204		else if (aOpinions[ui].m_iValue == 0)11205		{11206			strOutput.insert(0, strNeutralColor);11207		}11208		else if (aOpinions[ui].m_iValue >= -10)11209		{11210			strOutput.insert(0, strPartialPositiveColor);11211		}11212		else if (aOpinions[ui].m_iValue < -10)11213		{11214			strOutput.insert(0, strFullPositiveColor);11215		}11216#if defined(MOD_DIPLOMACY_BY_NUMBERS)11217		if(MOD_DIPLOMACY_BY_NUMBERS)11218		{11219			CvString strTemp;11220			// Reverse the value of the opinion so as to not confuse players11221			strTemp.Format(" (%d)", -(aOpinions[ui].m_iValue));1122211223			strOutput += strTemp;11224		}11225#endif11226		strOutput += strEndColor;1122711228		lua_pushstring(L, strOutput.c_str());11229		lua_rawseti(L, -2, index);11230		index++;11231	}1123211233	return 1;11234}

Calls

Called by