Let Lua access spectators mobjs
This commit is contained in:
parent
5a524f21da
commit
2eaf02d234
|
@ -97,6 +97,10 @@ static int player_get(lua_State *L)
|
||||||
lua_pushboolean(L, true);
|
lua_pushboolean(L, true);
|
||||||
else if (fastcmp(field,"name"))
|
else if (fastcmp(field,"name"))
|
||||||
lua_pushstring(L, player_names[plr-players]);
|
lua_pushstring(L, player_names[plr-players]);
|
||||||
|
else if (fastcmp(field,"realmo"))
|
||||||
|
LUA_PushUserdata(L, plr->mo, META_MOBJ);
|
||||||
|
// Kept for backward-compatibility
|
||||||
|
// Should be fixed to work like "realmo" later
|
||||||
else if (fastcmp(field,"mo"))
|
else if (fastcmp(field,"mo"))
|
||||||
{
|
{
|
||||||
if (plr->spectator)
|
if (plr->spectator)
|
||||||
|
@ -396,7 +400,7 @@ static int player_set(lua_State *L)
|
||||||
if (hud_running)
|
if (hud_running)
|
||||||
return luaL_error(L, "Do not alter player_t in HUD rendering code!");
|
return luaL_error(L, "Do not alter player_t in HUD rendering code!");
|
||||||
|
|
||||||
if (fastcmp(field,"mo")) {
|
if (fastcmp(field,"mo") || fastcmp(field,"realmo")) {
|
||||||
mobj_t *newmo = *((mobj_t **)luaL_checkudata(L, 3, META_MOBJ));
|
mobj_t *newmo = *((mobj_t **)luaL_checkudata(L, 3, META_MOBJ));
|
||||||
plr->mo->player = NULL; // remove player pointer from old mobj
|
plr->mo->player = NULL; // remove player pointer from old mobj
|
||||||
(newmo->player = plr)->mo = newmo; // set player pointer for new mobj, and set new mobj as the player's mobj
|
(newmo->player = plr)->mo = newmo; // set player pointer for new mobj, and set new mobj as the player's mobj
|
||||||
|
|
Loading…
Reference in a new issue