CvDllNetMessageHandler::ResponseSetSwappableGreatWork(PlayerTypes, int, int)
- Defined in
- CvDllNetMessageHandler.cpp, line 512
- Class
- CvDllNetMessageHandler
- Hook name
CivHooks::CvDllNetMessageHandler_ResponseSetSwappableGreatWork
Hooks
static bool BeforeCvDllNetMessageHandler_ResponseSetSwappableGreatWork(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iWorkClass, int iWorkIndex);static void AfterCvDllNetMessageHandler_ResponseSetSwappableGreatWork(CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iWorkClass, int iWorkIndex);static void ReplaceCvDllNetMessageHandler_ResponseSetSwappableGreatWork(void (*original)(CvDllNetMessageHandler*, PlayerTypes, int, int), CvDllNetMessageHandler* self, PlayerTypes ePlayer, int iWorkClass, int iWorkIndex);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseSetSwappableGreatWork::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllNetMessageHandler_ResponseSetSwappableGreatWork);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseSetSwappableGreatWork::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllNetMessageHandler_ResponseSetSwappableGreatWork);host->RegisterHook(host->pluginIndex, CivHooks::CvDllNetMessageHandler_ResponseSetSwappableGreatWork::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllNetMessageHandler_ResponseSetSwappableGreatWork);
Code
512void CvDllNetMessageHandler::ResponseSetSwappableGreatWork(PlayerTypes ePlayer, int iWorkClass, int iWorkIndex)513{514 CvAssertMsg(ePlayer != NO_PLAYER, "ePlayer invalid");515 516 // is this player alive517 if (GET_PLAYER(ePlayer).isAlive())518 {519 // -1 indicates that they want to clear the slot520 if (iWorkIndex == -1)521 {522 if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_ARTIFACT"))523 {524 GET_PLAYER(ePlayer).GetCulture()->SetSwappableArtifactIndex(-1);525 }526 else if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_ART"))527 {528 GET_PLAYER(ePlayer).GetCulture()->SetSwappableArtIndex(-1);529 }530 else if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_LITERATURE"))531 {532 GET_PLAYER(ePlayer).GetCulture()->SetSwappableWritingIndex(-1);533 } 534 else if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_MUSIC"))535 {536 GET_PLAYER(ePlayer).GetCulture()->SetSwappableMusicIndex(-1);537 }538 }539 else540 {541 // does this player control this work542 if (GET_PLAYER(ePlayer).GetCulture()->ControlsGreatWork(iWorkIndex))543 {544 if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_ARTIFACT"))545 {546 GET_PLAYER(ePlayer).GetCulture()->SetSwappableArtifactIndex(iWorkIndex);547 }548 else if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_ART"))549 {550 GET_PLAYER(ePlayer).GetCulture()->SetSwappableArtIndex(iWorkIndex);551 }552 else if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_LITERATURE"))553 {554 GET_PLAYER(ePlayer).GetCulture()->SetSwappableWritingIndex(iWorkIndex);555 } 556 else if (iWorkClass == GC.getInfoTypeForString("GREAT_WORK_MUSIC"))557 {558 GET_PLAYER(ePlayer).GetCulture()->SetSwappableMusicIndex(iWorkIndex);559 } 560 }561 }562 GC.GetEngineUserInterface()->setDirty(GreatWorksScreen_DIRTY_BIT, true);563 }564}
Calls
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvPlayer::GetCulture() const
- CvPlayer::isAlive() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerCulture::ControlsGreatWork(int)
- CvPlayerCulture::SetSwappableArtifactIndex(int)
- CvPlayerCulture::SetSwappableArtIndex(int)
- CvPlayerCulture::SetSwappableMusicIndex(int)
- CvPlayerCulture::SetSwappableWritingIndex(int)
ICvUserInterface1::setDirty