Bazaar developer reference

CvLuaEnums::RegisterDynamicEnums(lua_State *, const char *, const char *, const char *, const char *)

Defined in
Lua/CvLuaEnums.cpp, line 1097
Class
CvLuaEnums
Hook name
CivHooks::CvLuaEnums_RegisterDynamicEnums

Hooks

static bool BeforeCvLuaEnums_RegisterDynamicEnums(lua_State* L, const char* szTableName, const char* szIdField, const char* szNameField, const char* szCountName);static void AfterCvLuaEnums_RegisterDynamicEnums(lua_State* L, const char* szTableName, const char* szIdField, const char* szNameField, const char* szCountName);static void ReplaceCvLuaEnums_RegisterDynamicEnums(void (*original)(lua_State*, const char*, const char*, const char*, const char*), lua_State* L, const char* szTableName, const char* szIdField, const char* szNameField, const char* szCountName);CivRegisterBefore<CivHooks::CvLuaEnums_RegisterDynamicEnums>(host, &BeforeCvLuaEnums_RegisterDynamicEnums);CivRegisterAfter<CivHooks::CvLuaEnums_RegisterDynamicEnums>(host, &AfterCvLuaEnums_RegisterDynamicEnums);CivRegisterReplace<CivHooks::CvLuaEnums_RegisterDynamicEnums>(host, &ReplaceCvLuaEnums_RegisterDynamicEnums);

Code

1097void CvLuaEnums::RegisterDynamicEnums(lua_State* L, const char* szTableName, const char* szIdField, const char* szNameField, const char* szCountName)1098{1099	Database::Connection& db = *GC.GetGameDatabase();1100	Database::Results kResults;11011102	char zSQL[256];1103	sprintf_s(zSQL, 255, "select %s, %s from %s", szIdField, szNameField, szTableName);11041105	if(db.Execute(kResults, zSQL))1106	{1107		while(kResults.Step())1108		{1109			const int value = kResults.GetInt(0);1110			const char* name = kResults.GetText(1);11111112			lua_pushstring(L, name);1113			lua_pushvalue(L, -1);11141115			lua_pushinteger(L, value);1116			lua_rawset(L, -4);11171118			lua_rawseti(L, -2, value);1119		}1120	}11211122	if(szCountName != NULL)1123	{1124		lua_pushstring(L, szCountName);1125		lua_pushinteger(L, db.Count(szTableName, false));1126		lua_rawset(L, -3);1127	}1128}

Calls

Called by