CvDllNetMessageHandler::ResponsePlayerDealFinalized(PlayerTypes, PlayerTypes, PlayerTypes, bool)
- Defined in
- CvDllNetMessageHandler.cpp, line 652
- Class
- CvDllNetMessageHandler
- Hook name
CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized
Hand-placed hooks inside
A replacement for this function that does not call original stops these hooks from running.
Hooks
static bool BeforeCvDllNetMessageHandler_ResponsePlayerDealFinalized(CvDllNetMessageHandler* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted);static void AfterCvDllNetMessageHandler_ResponsePlayerDealFinalized(CvDllNetMessageHandler* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted);static void ReplaceCvDllNetMessageHandler_ResponsePlayerDealFinalized(void (*original)(CvDllNetMessageHandler*, PlayerTypes, PlayerTypes, PlayerTypes, bool), CvDllNetMessageHandler* self, PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponsePlayerDealFinalized);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponsePlayerDealFinalized);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponsePlayerDealFinalized::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponsePlayerDealFinalized);
Code
652void CvDllNetMessageHandler::ResponsePlayerDealFinalized(PlayerTypes eFromPlayer, PlayerTypes eToPlayer, PlayerTypes eActBy, bool bAccepted)653{654 CvGame& game = GC.getGame();655 PlayerTypes eActivePlayer = game.getActivePlayer();656657 // is the deal valid?658#if defined(MOD_AI_MP_DIPLOMACY)659 const bool bFinalized = game.GetGameDeals()->FinalizeDeal(eFromPlayer, eToPlayer, bAccepted, true);660#else661 const bool bFinalized = game.GetGameDeals()->FinalizeDeal(eFromPlayer, eToPlayer, bAccepted);662#endif663#if defined(CIV_HOST_API)664 CivHandDealResolved(eFromPlayer, eToPlayer, eActBy, bAccepted, bFinalized);hand-placed hook: DealResolved665#endif666 if(!bFinalized)667 {668 Localization::String strMessage;669 Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_EXPIRED");670671 CvPlayerAI& kToPlayer = GET_PLAYER(eToPlayer);672 CvPlayerAI& kFromPlayer = GET_PLAYER(eFromPlayer);673 CvPlayerAI& kActivePlayer = GET_PLAYER(eActivePlayer);674675 strMessage = Localization::Lookup("TXT_KEY_DEAL_EXPIRED_FROM_YOU");676 strMessage << kToPlayer.getNickName();677 kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);678679 strMessage = Localization::Lookup("TXT_KEY_DEAL_EXPIRED_FROM_THEM");680 strMessage << kFromPlayer.getNickName();681 kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);682 }683 else684 {685 CvPlayerAI& kToPlayer = GET_PLAYER(eToPlayer);686 CvPlayerAI& kFromPlayer = GET_PLAYER(eFromPlayer);687 if(bAccepted)688 {689 Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED");690 Localization::String strMessage = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED_BY_THEM");691 strMessage << kToPlayer.getNickName();692 kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);693694 strSummary = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED");695 strMessage = Localization::Lookup("TXT_KEY_DEAL_ACCEPTED_BY_YOU");696 strMessage << kFromPlayer.getNickName();697 kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);698 }699 else700 {701 if(eActBy == eFromPlayer)702 {703 Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN");704 Localization::String strMessage = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN_BY_YOU");705 strMessage << kToPlayer.getNickName();706 kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);707708 strSummary = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN");709 strMessage = Localization::Lookup("TXT_KEY_DEAL_WITHDRAWN_BY_THEM");710 strMessage << kFromPlayer.getNickName();711 kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);712 }713 else714 {715 Localization::String strSummary = Localization::Lookup("TXT_KEY_DEAL_REJECTED");716 Localization::String strMessage = Localization::Lookup("TXT_KEY_DEAL_REJECTED_BY_THEM");717 strMessage << kToPlayer.getNickName();718 kFromPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eToPlayer, -1, -1);719720 strSummary = Localization::Lookup("TXT_KEY_DEAL_REJECTED");721 strMessage = Localization::Lookup("TXT_KEY_DEAL_REJECTED_BY_YOU");722 strMessage << kFromPlayer.getNickName();723 kToPlayer.GetNotifications()->Add(NOTIFICATION_PLAYER_DEAL_RESOLVED, strMessage.toUTF8(), strSummary.toUTF8(), eFromPlayer, -1, -1);724 }725 }726 }727}
Calls
CivHandDealResolved- CvGame::getActivePlayer() const
- CvGame::GetGameDeals()
- CvGameDeals::FinalizeDeal(PlayerTypes, PlayerTypes, bool, bool)
- CvGlobals::getGame()
- CvNotifications::Add(NotificationTypes, const char *, const char *, int, int, int, int)
- CvPlayer::getNickName() const
- CvPlayer::GetNotifications() const
- CvPlayerAI::getPlayer(PlayerTypes)
Localization::LookupLocalization::String::operator=Localization::String::StringLocalization::String::toUTF8operator<<