[Add] Pilot:alive() and Pilot:broadcast() to Lua API.
This commit is contained in:
		
							parent
							
								
									7bbad458e0
								
							
						
					
					
						commit
						47a8efa9ee
					
				@ -1,4 +1,4 @@
 | 
			
		||||
include("../scripts/tpl/generic.lua")
 | 
			
		||||
include("../scripts/ai/tpl/generic.lua")
 | 
			
		||||
 | 
			
		||||
-- Settings
 | 
			
		||||
armour_run    = 40
 | 
			
		||||
 | 
			
		||||
@ -28,17 +28,22 @@ static const luaL_reg pilot_methods[] = {
 | 
			
		||||
  { 0, 0 }
 | 
			
		||||
}; /**< Pilot lua methods. */
 | 
			
		||||
 | 
			
		||||
/* Pilot metatable methods. */
 | 
			
		||||
static int pilotL_eq(lua_State* L);
 | 
			
		||||
static int pilotL_name(lua_State* L);
 | 
			
		||||
static int pilotL_alive(lua_State* L);
 | 
			
		||||
static int pilotL_rename(lua_State* L);
 | 
			
		||||
static int pilotL_position(lua_State* L);
 | 
			
		||||
static int pilotL_warp(lua_State* L);
 | 
			
		||||
static int pilotL_broadcast(lua_State* L);
 | 
			
		||||
static const luaL_reg pilotL_methods[] = {
 | 
			
		||||
  { "__eq",       pilotL_eq         },
 | 
			
		||||
  { "name",       pilotL_name       },
 | 
			
		||||
  { "alive",      pilotL_alive      },
 | 
			
		||||
  { "rename",     pilotL_rename     },
 | 
			
		||||
  { "pos",        pilotL_position   },
 | 
			
		||||
  { "warp",       pilotL_warp       },
 | 
			
		||||
  { "broadcast",  pilotL_broadcast  },
 | 
			
		||||
  { 0, 0 }
 | 
			
		||||
}; /**< Pilot metatable methods. */
 | 
			
		||||
 | 
			
		||||
@ -361,6 +366,29 @@ static int pilotL_name(lua_State* L) {
 | 
			
		||||
  return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @fn static int pilotL_alive(lua_State* L)
 | 
			
		||||
 * @ingroup META_PILOT
 | 
			
		||||
 *
 | 
			
		||||
 * @brief bool alive(nil)
 | 
			
		||||
 *
 | 
			
		||||
 * Checks to see if pilot is still alive.
 | 
			
		||||
 *    @return true if pilot is still alive.
 | 
			
		||||
 */
 | 
			
		||||
static int pilotL_alive(lua_State* L) {
 | 
			
		||||
  LLUA_MIN_ARGS(1);
 | 
			
		||||
  LuaPilot* lp;
 | 
			
		||||
  Pilot* p;
 | 
			
		||||
 | 
			
		||||
  /* Parse parameters. */
 | 
			
		||||
  lp = lua_topilot(L, 1);
 | 
			
		||||
  p = pilot_get(lp->pilot);
 | 
			
		||||
 | 
			
		||||
  /* Check if is alive. */
 | 
			
		||||
  lua_pushboolean(L, p != NULL);
 | 
			
		||||
  return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @fn static int pilotL_rename(lua_State* L)
 | 
			
		||||
 *
 | 
			
		||||
@ -449,3 +477,34 @@ static int pilotL_warp(lua_State* L) {
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @fn static int pilotL_broadcast(lua_State* L)
 | 
			
		||||
 * @ingroup META_PILOT
 | 
			
		||||
 *
 | 
			
		||||
 * @brief broadcast(string msg)
 | 
			
		||||
 *
 | 
			
		||||
 * Make the pilot broadcast a message.
 | 
			
		||||
 *    @param msg Message to broadcast.
 | 
			
		||||
 */
 | 
			
		||||
static int pilotL_broadcast(lua_State* L) {
 | 
			
		||||
  LLUA_MIN_ARGS(2);
 | 
			
		||||
  Pilot* p;
 | 
			
		||||
  LuaPilot* lp;
 | 
			
		||||
  char* msg;
 | 
			
		||||
 | 
			
		||||
  /* Parse arguments. */
 | 
			
		||||
  lp = lua_topilot(L, 1);
 | 
			
		||||
  if(lua_isstring(L, 2))
 | 
			
		||||
    msg = (char*)lua_tostring(L, 2);
 | 
			
		||||
  else LLUA_INVALID_PARAMETER();
 | 
			
		||||
 | 
			
		||||
  /* Check to see if pilot is valid. */
 | 
			
		||||
  p = pilot_get(lp->pilot);
 | 
			
		||||
  if(p == NULL)
 | 
			
		||||
    return 0;
 | 
			
		||||
 | 
			
		||||
  /* Broadcast message. */
 | 
			
		||||
  player_message("Broadcast %s> \"%s\"", p->name, msg);
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user