CvPreGame::bindLeaderKeys(PlayerTypes)
- Defined in
- CvPreGame.cpp, line 318
- Hook name
CivHooks::CvPreGame_bindLeaderKeys
Hooks
static bool BeforeCvPreGame_bindLeaderKeys(PlayerTypes p, bool& result);static void AfterCvPreGame_bindLeaderKeys(PlayerTypes p, bool& result);static bool ReplaceCvPreGame_bindLeaderKeys(bool (*original)(PlayerTypes), PlayerTypes p);CivRegisterBefore<CivHooks::CvPreGame_bindLeaderKeys>(host, &BeforeCvPreGame_bindLeaderKeys);CivRegisterAfter<CivHooks::CvPreGame_bindLeaderKeys>(host, &AfterCvPreGame_bindLeaderKeys);CivRegisterReplace<CivHooks::CvPreGame_bindLeaderKeys>(host, &ReplaceCvPreGame_bindLeaderKeys);
Code
317// Bind a leader head key to the leader head using the current leader head ID318bool bindLeaderKeys(PlayerTypes p)319{320 LeaderHeadTypes l = leaderHead(p);321322 bool bFailed = false;323 if(l != NO_LEADER)324 {325 // During the pre-game, we can't be sure the cached *Infos are current, so query the database326 Database::Connection* pDB = GC.GetGameDatabase();327 if(pDB)328 {329 Database::Results kResults;330 if(pDB->Execute(kResults, "SELECT Type, PackageID from Leaders where ID = ? LIMIT 1"))331 {332 kResults.Bind(1, l);333 if(kResults.Step())334 {335 s_leaderKeys[p] = kResults.GetText(0);336 if(!ExtractGUID(kResults.GetText(1), s_leaderPackageID[p]))337 ClearGUID(s_leaderPackageID[p]);338 s_leaderKeysAvailable[p] = true;339 }340 else341 bFailed = true;342 }343 else344 bFailed = true;345 }346 }347 else348 bFailed = true;349350 if(bFailed)351 {352 s_leaderKeys[p].clear();353 ClearGUID(s_leaderPackageID[p]);354 s_leaderKeysAvailable[p] = false;355 }356357 return bFailed;358}
Calls
- ClearGUID(GUID &)
- CvGlobals::GetGameDatabase()
- CvPreGame::leaderHead(PlayerTypes)
CvString::operator=Database::Connection::ExecuteDatabase::Results::BindDatabase::Results::GetTextDatabase::Results::ResultsDatabase::Results::Step- ExtractGUID(const char *, GUID &, UINT *)
std::_Vb_reference::operator=std::basic_string::clearstd::vector::operator[]std::vector::operator[]std::vector::operator[]