Bazaar developer reference

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

Called by