CvDllPreGame::SetDLCAvailable(PlayerTypes, ICvEnumerator *)
- Defined in
- CvDllPreGame.cpp, line 1103
- Class
- CvDllPreGame
- Hook name
CivHooks::CvDllPreGame_SetDLCAvailable
Hooks
static bool BeforeCvDllPreGame_SetDLCAvailable(CvDllPreGame* self, PlayerTypes p, ICvEnumerator* pList);static void AfterCvDllPreGame_SetDLCAvailable(CvDllPreGame* self, PlayerTypes p, ICvEnumerator* pList);static void ReplaceCvDllPreGame_SetDLCAvailable(void (*original)(CvDllPreGame*, PlayerTypes, ICvEnumerator*), CvDllPreGame* self, PlayerTypes p, ICvEnumerator* pList);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvDllPreGame_SetDLCAvailable::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvDllPreGame_SetDLCAvailable);host->RegisterHook(host->pluginIndex, CivHooks::CvDllPreGame_SetDLCAvailable::ID, CIV_HOOK_AFTER, (void*)&AfterCvDllPreGame_SetDLCAvailable);host->RegisterHook(host->pluginIndex, CivHooks::CvDllPreGame_SetDLCAvailable::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvDllPreGame_SetDLCAvailable);
Code
1103void CvDllPreGame::SetDLCAvailable(PlayerTypes p, ICvEnumerator* pList)1104{1105 PackageIDList kDLCList;11061107 // Because CvEnumerator OWNS the pointer it's passed, use QueryInterface to1108 // construct a new pointer.1109 CvEnumerator<ICvDlcPackageInfo1> kEnum(pList->QueryInterface<ICvEnumerator>());1110 while(kEnum.MoveNext())1111 {1112 auto_ptr<ICvDlcPackageInfo1> pPackageInfo(kEnum.GetCurrent());1113 if(pPackageInfo.get() != NULL)1114 {1115 kDLCList.push_back(pPackageInfo->GetPackageID());1116 }1117 }11181119 CvPreGame::setDLCAvailable(p, kDLCList);1120}
Calls
CvEnumerator::CvEnumeratorCvEnumerator::GetCurrentCvEnumerator::MoveNext- CvPreGame::setDLCAvailable(PlayerTypes, const PackageIDList &)
ICvDlcPackageInfo1::GetPackageIDICvUnknown::QueryInterfacestd::auto_ptr::auto_ptrstd::auto_ptr::getstd::auto_ptr::operator->std::list::liststd::list::push_back