Esempio n. 1
0
static int lua_aoi_enter(lua_State *L){
	aoi_map   * m = lua_touserdata(L,1);
	aoi_object* o = lua_touserdata(L,2);
	int x = (int)lua_tonumber(L,3);
	int y = (int)lua_tonumber(L,4);
	
	if(0 == aoi_enter(m,o,x,y))
		lua_pushboolean(L,1);
	else
		lua_pushboolean(L,0);
	return 1;	
}
Esempio n. 2
0
int luaAoiEnterMap(lua_State *L){
	struct battlemap *battlemap = (struct battlemap*)lua_touserdata(L,-1);
	luaObject_t self = create_luaObj(L,-2);
	int x = (int)lua_tonumber(L,-3);
	int y = (int)lua_tonumber(L,-4);	
	struct aoi_object *aoi_obj = calloc(1,sizeof(*aoi_obj));
	aoi_obj->ud = self;
	aoi_obj->in_myscope = in_myscope;
	aoi_obj->cb_enter = cb_enter;
	aoi_obj->cb_leave = cb_leave;
	
	if(0 == aoi_enter(battlemap->aoi,aoi_obj,x,y)){
		PUSH_LUSRDATA(L,aoi_obj);
	}else
	{
		free(aoi_obj);
		PUSH_NIL(L);
	}
	return 1;
}