Bazaar developer reference

CvCity::canPrepare(SpecialistTypes, bool) const

Defined in
CvCity.cpp, line 3040
Class
CvCity
Hook name
CivHooks::CvCity_canPrepare
Lua events
GameEvents.CityCanPrepare

Hooks

static bool BeforeCvCity_canPrepare(const CvCity* self, SpecialistTypes eSpecialist, bool bContinue, bool& result);static void AfterCvCity_canPrepare(const CvCity* self, SpecialistTypes eSpecialist, bool bContinue, bool& result);static bool ReplaceCvCity_canPrepare(bool (*original)(const CvCity*, SpecialistTypes, bool), const CvCity* self, SpecialistTypes eSpecialist, bool bContinue);CivRegisterBefore<CivHooks::CvCity_canPrepare>(host, &BeforeCvCity_canPrepare);CivRegisterAfter<CivHooks::CvCity_canPrepare>(host, &AfterCvCity_canPrepare);CivRegisterReplace<CivHooks::CvCity_canPrepare>(host, &ReplaceCvCity_canPrepare);

Code

3040bool CvCity::canPrepare(SpecialistTypes eSpecialist, bool bContinue) const3041{3042	VALIDATE_OBJECT30433044	if(!(GET_PLAYER(getOwner()).canPrepare(eSpecialist, bContinue)))3045	{3046		return false;3047	}30483049	ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem();3050	if(pkScriptSystem)3051	{3052		CvLuaArgsHandle args;3053		args->Push(getOwner());3054		args->Push(GetID());3055		args->Push(eSpecialist);30563057		// Attempt to execute the game events.3058		// Will return false if there are no registered listeners.3059		bool bResult = false;3060		if(LuaSupport::CallTestAll(pkScriptSystem, "CityCanPrepare", args.get(), bResult))3061		{3062			// Check the result.3063			if(bResult == false)3064			{3065				return false;3066			}3067		}3068	}30693070	return true;3071}

Calls

Called by