Expose G_BuildMapTitle to Lua

This commit is contained in:
James R 2020-01-15 20:04:50 -08:00
parent 7d5a8ac14b
commit 50b18acd3f

View file

@ -2772,7 +2772,7 @@ static int lib_gAddGametype(lua_State *L)
return 0; return 0;
} }
static int Lcheckmapnumber (lua_State *L, int idx) static int Lcheckmapnumber (lua_State *L, int idx, const char *fun)
{ {
if (ISINLEVEL) if (ISINLEVEL)
return luaL_optinteger(L, idx, gamemap); return luaL_optinteger(L, idx, gamemap);
@ -2781,8 +2781,8 @@ static int Lcheckmapnumber (lua_State *L, int idx)
if (lua_isnoneornil(L, idx)) if (lua_isnoneornil(L, idx))
{ {
return luaL_error(L, return luaL_error(L,
"G_BuildMapName can only be used " "%s can only be used without a parameter while in a level.",
"without a parameter while in a level." fun
); );
} }
else else
@ -2792,12 +2792,30 @@ static int Lcheckmapnumber (lua_State *L, int idx)
static int lib_gBuildMapName(lua_State *L) static int lib_gBuildMapName(lua_State *L)
{ {
INT32 map = Lcheckmapnumber(L, 1); INT32 map = Lcheckmapnumber(L, 1, "G_BuildMapName");
//HUDSAFE //HUDSAFE
lua_pushstring(L, G_BuildMapName(map)); lua_pushstring(L, G_BuildMapName(map));
return 1; return 1;
} }
static int lib_gBuildMapTitle(lua_State *L)
{
INT32 map = Lcheckmapnumber(L, 1, "G_BuoldMapTitle");
char *name;
if (map < 1 || map > NUMMAPS)
{
return luaL_error(L,
"map number %d out of range (1 - %d)",
map,
NUMMAPS
);
}
name = G_BuildMapTitle(map);
lua_pushstring(L, name);
Z_Free(name);
return 1;
}
static int lib_gDoReborn(lua_State *L) static int lib_gDoReborn(lua_State *L)
{ {
INT32 playernum = luaL_checkinteger(L, 1); INT32 playernum = luaL_checkinteger(L, 1);
@ -3174,6 +3192,7 @@ static luaL_Reg lib[] = {
// g_game // g_game
{"G_AddGametype", lib_gAddGametype}, {"G_AddGametype", lib_gAddGametype},
{"G_BuildMapName",lib_gBuildMapName}, {"G_BuildMapName",lib_gBuildMapName},
{"G_BuildMapTitle",lib_gBuildMapTitle},
{"G_DoReborn",lib_gDoReborn}, {"G_DoReborn",lib_gDoReborn},
{"G_SetCustomExitVars",lib_gSetCustomExitVars}, {"G_SetCustomExitVars",lib_gSetCustomExitVars},
{"G_EnoughPlayersFinished",lib_gEnoughPlayersFinished}, {"G_EnoughPlayersFinished",lib_gEnoughPlayersFinished},