CvPlayerEspionage::GetPercentOfStateComplete(uint)
- Defined in
- CvEspionageClasses.cpp, line 2515
- Class
- CvPlayerEspionage
- Hook name
CivHooks::CvPlayerEspionage_GetPercentOfStateComplete
Hooks
static bool BeforeCvPlayerEspionage_GetPercentOfStateComplete(CvPlayerEspionage* self, uint uiSpyIndex, int& result);static void AfterCvPlayerEspionage_GetPercentOfStateComplete(CvPlayerEspionage* self, uint uiSpyIndex, int& result);static int ReplaceCvPlayerEspionage_GetPercentOfStateComplete(int (*original)(CvPlayerEspionage*, uint), CvPlayerEspionage* self, uint uiSpyIndex);CivRegisterBefore<CivHooks::CvPlayerEspionage_GetPercentOfStateComplete>(host, &BeforeCvPlayerEspionage_GetPercentOfStateComplete);CivRegisterAfter<CivHooks::CvPlayerEspionage_GetPercentOfStateComplete>(host, &AfterCvPlayerEspionage_GetPercentOfStateComplete);CivRegisterReplace<CivHooks::CvPlayerEspionage_GetPercentOfStateComplete>(host, &ReplaceCvPlayerEspionage_GetPercentOfStateComplete);
Code
2514/// GetPercentOfStateComplete - What percentage of this spy's current state is complete?2515int CvPlayerEspionage::GetPercentOfStateComplete(uint uiSpyIndex)2516{2517 CvAssertMsg(uiSpyIndex < m_aSpyList.size(), "iSpyIndex is out of bounds");2518 if(uiSpyIndex >= m_aSpyList.size())2519 {2520 return -2;2521 }25222523 PlayerTypes ePlayer = m_pPlayer->GetID();2524 CvCity* pCity = NULL;2525 CvCityEspionage* pCityEspionage = NULL;25262527 switch(m_aSpyList[uiSpyIndex].m_eSpyState)2528 {2529 case SPY_STATE_UNASSIGNED:2530 // no end time2531 return -1;2532 break;2533 case SPY_STATE_TRAVELLING:2534 case SPY_STATE_SURVEILLANCE:2535 case SPY_STATE_GATHERING_INTEL:2536 case SPY_STATE_MAKING_INTRODUCTIONS:2537 pCity = GetCityWithSpy(uiSpyIndex);2538 if (pCity)2539 {2540 pCityEspionage = pCity->GetCityEspionage();2541 CvAssertMsg(pCityEspionage->m_aiGoal[ePlayer] != 0, "Trying to div by zero!");2542 if(pCityEspionage->m_aiGoal[ePlayer] != 0)2543 {2544 return (pCityEspionage->m_aiAmount[ePlayer] * 100) / pCityEspionage->m_aiGoal[ePlayer];2545 }2546 }2547 return -1;2548 case SPY_STATE_RIG_ELECTION:2549 if(GC.getGame().GetTurnsBetweenMinorCivElections() != 0)2550 {2551 return ((GC.getGame().GetTurnsBetweenMinorCivElections() - GC.getGame().GetTurnsUntilMinorCivElection()) * 100) / GC.getGame().GetTurnsBetweenMinorCivElections();2552 }2553 else2554 {2555 return -1;2556 }2557 break;2558 case SPY_STATE_COUNTER_INTEL:2559 case SPY_STATE_SCHMOOZE:2560 // no end time2561 return -1;2562 break;2563 case SPY_STATE_DEAD:2564 // no end time2565 return -1;2566 break;2567#if defined(MOD_API_ESPIONAGE)2568 case SPY_STATE_TERMINATED:2569 // no end time2570 return -1;2571 break;2572#endif2573 }25742575 return -1;2576}
Calls
BaseVector::operator[]BaseVector::size- CvCity::GetCityEspionage() const
- CvGame::GetTurnsBetweenMinorCivElections()
- CvGame::GetTurnsUntilMinorCivElection()
- CvGlobals::getGame()
- CvPlayer::GetID() const
- CvPlayerEspionage::GetCityWithSpy(uint)
Firaxis::Array::operator[]