Hooks
static bool BeforeCvLeague_CanProposeRepeal(CvLeague* self, int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink, bool& result);static void AfterCvLeague_CanProposeRepeal(CvLeague* self, int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink, bool& result);static bool ReplaceCvLeague_CanProposeRepeal(bool (*original)(CvLeague*, int, PlayerTypes, CvString*), CvLeague* self, int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink);CivRegisterBefore<CivHooks::CvLeague_CanProposeRepeal>(host, &BeforeCvLeague_CanProposeRepeal);CivRegisterAfter<CivHooks::CvLeague_CanProposeRepeal>(host, &AfterCvLeague_CanProposeRepeal);CivRegisterReplace<CivHooks::CvLeague_CanProposeRepeal>(host, &ReplaceCvLeague_CanProposeRepeal);
Code
2579bool CvLeague::CanProposeRepeal(int iResolutionID, PlayerTypes eProposer, CvString* sTooltipSink)2580{2581 bool bValid = true;25822583 // Is a player proposing this?2584 if (eProposer != NO_PLAYER)2585 {2586 // Must be a member2587 if (!IsMember(eProposer))2588 bValid = false;25892590 // Must have right to propose2591 if (!CanPropose(eProposer))2592 bValid = false;2593 }2594 CvAssertMsg(eProposer != NO_PLAYER, "Checking to see if a NO_PLAYER can propose a repeal. Please send Anton your save file and version.");25952596 // Must not already be proposed2597 if (IsRepealProposed(iResolutionID))2598 {2599 if (sTooltipSink != NULL)2600 {2601 (*sTooltipSink) += "[NEWLINE][NEWLINE][COLOR_WARNING_TEXT]";2602 (*sTooltipSink) += Localization::Lookup("TXT_KEY_LEAGUE_OVERVIEW_INVALID_RESOLUTION_ALREADY_PROPOSED").toUTF8();2603 (*sTooltipSink) += "[ENDCOLOR]";2604 }2605 bValid = false;2606 }26072608#if defined(MOD_EVENTS_RESOLUTIONS)2609 if (MOD_EVENTS_RESOLUTIONS) {2610 if (GAMEEVENTINVOKE_TESTALL(GAMEEVENT_PlayerCanPropose, eProposer, iResolutionID, 0, false) == GAMEEVENTRETURN_FALSE) {2611 bValid = false;2612 }2613 }2614#endif2615 2616 2617 // Must already be active2618 for (uint iIndex = 0; iIndex < m_vActiveResolutions.size(); iIndex++)2619 {2620 if (m_vActiveResolutions[iIndex].GetID() == iResolutionID)2621 {2622 return bValid;2623 }2624 }2625 CvAssertMsg(false, "Resolution ID does not exist as an Active Resolution. Please send Anton your save file and version.");2626 return false;2627}