Bazaar developer reference

CvWorldBuilderMapLoader::AddRandomItems(lua_State *)

Defined in
CvWorldBuilderMapLoader.cpp, line 2116
Class
CvWorldBuilderMapLoader
Hook name
CivHooks::CvWorldBuilderMapLoader_AddRandomItems

Hooks

static bool BeforeCvWorldBuilderMapLoader_AddRandomItems(lua_State* L, int& result);static void AfterCvWorldBuilderMapLoader_AddRandomItems(lua_State* L, int& result);static int ReplaceCvWorldBuilderMapLoader_AddRandomItems(int (*original)(lua_State*), lua_State* L);CivRegisterBefore<CivHooks::CvWorldBuilderMapLoader_AddRandomItems>(host, &BeforeCvWorldBuilderMapLoader_AddRandomItems);CivRegisterAfter<CivHooks::CvWorldBuilderMapLoader_AddRandomItems>(host, &AfterCvWorldBuilderMapLoader_AddRandomItems);CivRegisterReplace<CivHooks::CvWorldBuilderMapLoader_AddRandomItems>(host, &ReplaceCvWorldBuilderMapLoader_AddRandomItems);

Code

2116int CvWorldBuilderMapLoader::AddRandomItems(lua_State* L)2117{2118	if(L == NULL)2119	{2120		FAssertMsg(L, "Seriously, you really need a lua state for this.");2121		return 0;2122	}21232124	const int iTop = lua_gettop(L);21252126	const bool bRandomGoodies =2127	    sg_kSave.GetFlag(CvWorldBuilderMap::FLAG_RANDOM_GOODIES) ||2128	    (sg_kSave.GetFlag(CvWorldBuilderMap::FLAG_OLD_GOODIE_RULES) && !CvPreGame::loadWBScenario());21292130	const bool bRandomResources = sg_kSave.GetFlag(CvWorldBuilderMap::FLAG_RANDOM_RECOURCES);21312132	ICvEngineScriptSystem1* pkScriptSystem = gDLL->GetScriptSystem();2133	if(pkScriptSystem != NULL && (bRandomResources || bRandomGoodies))2134	{2135		const char* szLuaFile = "WorldBuilderRandomItems.lua";2136		const bool bLoadedMapGenerator = pkScriptSystem->LoadFile(L, szLuaFile);2137		FAssertMsg1(bLoadedMapGenerator, "Failed to load %s", szLuaFile);2138		if(bLoadedMapGenerator)2139		{2140			if(bRandomGoodies)2141			{2142				const char* szGoodiesFunction = "AddGoodies";2143				lua_getglobal(L, szGoodiesFunction);2144				if(lua_isfunction(L, -1))2145					pkScriptSystem->CallFunction(L, 0, 0);2146				else2147					FAssertMsg2(0, "Failed to find \"%s\" in %s", szGoodiesFunction, szLuaFile);2148			}21492150			if(bRandomResources)2151			{2152				const char* szResourcesFunction = "AddResourcesForWorldBuilderMap";2153				lua_getglobal(L, szResourcesFunction);2154				if(lua_isfunction(L, -1))2155					pkScriptSystem->CallFunction(L, 0, 0);2156				else2157					FAssertMsg2(0, "Failed to find \"%s\" in %s", szResourcesFunction, szLuaFile);2158			}2159		}2160	}21612162	lua_settop(L, iTop);21632164	return 0;2165}

Calls

Called by