forked from github/server
fixing the code to work on ubuntu
This commit is contained in:
parent
aa2d227f39
commit
1cab3ce7f1
9 changed files with 92 additions and 27 deletions
30
src/Jamrules
30
src/Jamrules
|
@ -4,9 +4,9 @@ LINK = gcc ;
|
||||||
|
|
||||||
MSPACES = 1 ;
|
MSPACES = 1 ;
|
||||||
|
|
||||||
# BINDING = LUABIND ;
|
# BINDINGS = LUABIND ;
|
||||||
if ! $(BINDING) {
|
if ! $(BINDINGS) {
|
||||||
BINDING = TOLUA ;
|
BINDINGS = TOLUA ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ! $(LUA_VERSION) {
|
if ! $(LUA_VERSION) {
|
||||||
|
@ -104,14 +104,17 @@ rule zlib
|
||||||
LINKLIBS on $(<) += -lz ;
|
LINKLIBS on $(<) += -lz ;
|
||||||
}
|
}
|
||||||
|
|
||||||
rule luabind
|
rule liblua
|
||||||
{
|
{
|
||||||
LINKLIBS on $(<) += -L$(LUABIND_ROOT)/lib ;
|
|
||||||
if $(LUA_VERSION) = 5.1 {
|
if $(LUA_VERSION) = 5.1 {
|
||||||
LINKLIBS on $(<) += -llua5.1 ;
|
LINKLIBS on $(<) += -llua5.1 ;
|
||||||
} else {
|
} else {
|
||||||
LINKLIBS on $(<) += -llua50 -llualib50 ;
|
LINKLIBS on $(<) += -llua50 -llualib50 ;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rule libluabind
|
||||||
|
{
|
||||||
LINKLIBS on $(<) += -lm -lluabind ;
|
LINKLIBS on $(<) += -lm -lluabind ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,6 +123,23 @@ rule libxml2
|
||||||
LINKLIBS on $(<) += -lxml2 ;
|
LINKLIBS on $(<) += -lxml2 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rule libtolua
|
||||||
|
{
|
||||||
|
LINKLIBS on $(<) += -ltolua ;
|
||||||
|
}
|
||||||
|
|
||||||
|
rule libcurses
|
||||||
|
{
|
||||||
|
LINKLIBS on $(<) += -lncurses ;
|
||||||
|
}
|
||||||
|
|
||||||
|
rule libmcheck
|
||||||
|
{
|
||||||
|
if $(DEBUG) = 1 {
|
||||||
|
LINKLIBS on $(<) += -lmcheck ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rule UsingLuabind
|
rule UsingLuabind
|
||||||
{
|
{
|
||||||
SubDirHdrs $(LUABIND_ROOT)/include ;
|
SubDirHdrs $(LUABIND_ROOT)/include ;
|
||||||
|
|
|
@ -14,7 +14,9 @@
|
||||||
#ifndef H_KRNL_BUILDING
|
#ifndef H_KRNL_BUILDING
|
||||||
#define H_KRNL_BUILDING
|
#define H_KRNL_BUILDING
|
||||||
|
|
||||||
|
#include <kernel/types.h>
|
||||||
#include <util/variant.h>
|
#include <util/variant.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12,7 +12,12 @@ UsingLuabind ;
|
||||||
|
|
||||||
SEARCH_SOURCE += [ FDirName $(TOP) common iniparser ] ;
|
SEARCH_SOURCE += [ FDirName $(TOP) common iniparser ] ;
|
||||||
SEARCH_SOURCE += [ FDirName $(SUBDIR) curses ] ;
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) curses ] ;
|
||||||
SEARCH_SOURCE += [ FDirName $(SUBDIR) lua ] ;
|
if $(BINDINGS) = LUABIND {
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) lua ] ;
|
||||||
|
}
|
||||||
|
if $(BINDINGS) = TOLUA {
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) tolua ] ;
|
||||||
|
}
|
||||||
SubDirC++Flags -DHAVE_LUA ;
|
SubDirC++Flags -DHAVE_LUA ;
|
||||||
|
|
||||||
SubDirHdrs $(XMLHDRS) ;
|
SubDirHdrs $(XMLHDRS) ;
|
||||||
|
@ -21,7 +26,20 @@ LUASERVER = eressea-lua ;
|
||||||
|
|
||||||
SERVER_SOURCES = main.c korrektur.c ;
|
SERVER_SOURCES = main.c korrektur.c ;
|
||||||
|
|
||||||
SHARED_BINDINGS =
|
TOLUA_SOURCES =
|
||||||
|
<tolua>bindings.c
|
||||||
|
<tolua>helpers.c
|
||||||
|
<tolua>bind_unit.c
|
||||||
|
<tolua>bind_ship.c
|
||||||
|
<tolua>bind_faction.c
|
||||||
|
<tolua>bind_region.c
|
||||||
|
<tolua>bind_message.c
|
||||||
|
<tolua>bind_hashtable.c
|
||||||
|
<tolua>bind_building.c
|
||||||
|
<tolua>bind_gmtool.c
|
||||||
|
;
|
||||||
|
|
||||||
|
LUABIND_SOURCES =
|
||||||
<lua>alliance.cpp
|
<lua>alliance.cpp
|
||||||
<lua>building.cpp
|
<lua>building.cpp
|
||||||
<lua>eressea.cpp
|
<lua>eressea.cpp
|
||||||
|
@ -35,15 +53,23 @@ SHARED_BINDINGS =
|
||||||
<lua>unit.cpp
|
<lua>unit.cpp
|
||||||
<lua>item.cpp
|
<lua>item.cpp
|
||||||
<lua>test.cpp
|
<lua>test.cpp
|
||||||
;
|
|
||||||
|
|
||||||
Library luabindings : $(SHARED_BINDINGS) ;
|
|
||||||
|
|
||||||
LUASERVER_SOURCES =
|
|
||||||
<common!iniparser>iniparser.c
|
|
||||||
<lua>gm.cpp
|
<lua>gm.cpp
|
||||||
<lua>script.cpp
|
<lua>script.cpp
|
||||||
<lua>gamecode.cpp
|
<lua>gamecode.cpp
|
||||||
|
;
|
||||||
|
|
||||||
|
if $(BINDINGS) = LUABIND {
|
||||||
|
Library bindings : $(LUABIND_SOURCES) ;
|
||||||
|
libluabind $(LUASERVER) ;
|
||||||
|
}
|
||||||
|
if $(BINDINGS) = TOLUA {
|
||||||
|
Library bindings : $(TOLUA_SOURCES) ;
|
||||||
|
libtolua $(LUASERVER) ;
|
||||||
|
}
|
||||||
|
liblua $(LUASERVER) ;
|
||||||
|
|
||||||
|
LUASERVER_SOURCES =
|
||||||
|
<common!iniparser>iniparser.c
|
||||||
<curses>listbox.c
|
<curses>listbox.c
|
||||||
server.cpp
|
server.cpp
|
||||||
korrektur.c
|
korrektur.c
|
||||||
|
@ -54,11 +80,10 @@ LUASERVER_SOURCES =
|
||||||
|
|
||||||
# eressea-server with lua scripting
|
# eressea-server with lua scripting
|
||||||
LinkLibraries $(LUASERVER) :
|
LinkLibraries $(LUASERVER) :
|
||||||
luabindings gamecode items spells kernel modules attributes races triggers util ;
|
bindings gamecode items spells kernel modules attributes races triggers util ;
|
||||||
luabind $(LUASERVER) ;
|
|
||||||
libxml2 $(LUASERVER) ;
|
libxml2 $(LUASERVER) ;
|
||||||
LINKLIBS on $(LUASERVER) += -lm -ldl -lstdc++ -lncurses ;
|
libcurses $(LUASERVER) ;
|
||||||
if $(DEBUG) = 1 {
|
libmcheck $(LUASERVER) ;
|
||||||
LINKLIBS on $(LUASERVER) += -lmcheck ;
|
|
||||||
}
|
LINKLIBS on $(LUASERVER) += -lm -ldl -lstdc++ ;
|
||||||
Main $(LUASERVER) : $(LUASERVER_SOURCES) ;
|
Main $(LUASERVER) : $(LUASERVER_SOURCES) ;
|
||||||
|
|
|
@ -17,6 +17,7 @@ extern "C" {
|
||||||
struct lua_State;
|
struct lua_State;
|
||||||
struct selection;
|
struct selection;
|
||||||
struct state;
|
struct state;
|
||||||
|
struct region;
|
||||||
|
|
||||||
extern int gmmain(int argc, char *argv[]);
|
extern int gmmain(int argc, char *argv[]);
|
||||||
extern int curses_readline(struct lua_State * L, const char * prompt);
|
extern int curses_readline(struct lua_State * L, const char * prompt);
|
||||||
|
|
|
@ -52,7 +52,8 @@ msg_create_message(const char *type)
|
||||||
return lmsg;
|
return lmsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
/*
|
||||||
|
static void
|
||||||
msg_destroy_message(lua_message * msg)
|
msg_destroy_message(lua_message * msg)
|
||||||
{
|
{
|
||||||
if (msg->msg) msg_release(msg->msg);
|
if (msg->msg) msg_release(msg->msg);
|
||||||
|
@ -65,7 +66,7 @@ msg_destroy_message(lua_message * msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
msg_set_resource(lua_message * msg, const char * param, const char * resname)
|
msg_set_resource(lua_message * msg, const char * param, const char * resname)
|
||||||
{
|
{
|
||||||
|
|
|
@ -244,6 +244,7 @@ tolua_region_open(lua_State* tolua_S)
|
||||||
tolua_function(tolua_S, "get_resource", tolua_region_get_resource);
|
tolua_function(tolua_S, "get_resource", tolua_region_get_resource);
|
||||||
tolua_function(tolua_S, "set_resource", tolua_region_set_resource);
|
tolua_function(tolua_S, "set_resource", tolua_region_set_resource);
|
||||||
tolua_function(tolua_S, "get_flag", tolua_region_get_flag);
|
tolua_function(tolua_S, "get_flag", tolua_region_get_flag);
|
||||||
|
tolua_function(tolua_S, "set_flag", tolua_region_set_flag);
|
||||||
tolua_function(tolua_S, "create", tolua_region_create);
|
tolua_function(tolua_S, "create", tolua_region_create);
|
||||||
|
|
||||||
tolua_function(tolua_S, "get_key", tolua_region_getkey);
|
tolua_function(tolua_S, "get_key", tolua_region_getkey);
|
||||||
|
|
|
@ -46,6 +46,8 @@ without prior permission by the authors of Eressea.
|
||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
#include <tolua.h>
|
#include <tolua.h>
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
static int
|
static int
|
||||||
tolua_unit_get_objects(lua_State* tolua_S)
|
tolua_unit_get_objects(lua_State* tolua_S)
|
||||||
{
|
{
|
||||||
|
|
|
@ -280,9 +280,21 @@ tolua_dice_rand(lua_State * tolua_S)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
lua_addequipment(const char * eqname, const char * iname, const char * value)
|
tolua_addequipment(lua_State * tolua_S)
|
||||||
{
|
{
|
||||||
return 0;
|
const char * eqname = tolua_tostring(tolua_S, 1, 0);
|
||||||
|
const char * iname = tolua_tostring(tolua_S, 2, 0);
|
||||||
|
const char * value = tolua_tostring(tolua_S, 3, 0);
|
||||||
|
int result = -1;
|
||||||
|
if (iname!=NULL) {
|
||||||
|
const struct item_type * itype = it_find(iname);
|
||||||
|
if (itype!=NULL) {
|
||||||
|
equipment_setitem(create_equipment(eqname), itype, value);
|
||||||
|
result = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lua_pushnumber(tolua_S, (lua_Number)result);
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -345,7 +357,7 @@ tolua_get_nmrs(lua_State * tolua_S)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
tolua_lua_equipunit(lua_State * tolua_S)
|
tolua_equipunit(lua_State * tolua_S)
|
||||||
{
|
{
|
||||||
unit * u = (unit *)tolua_tousertype(tolua_S, 1, 0);
|
unit * u = (unit *)tolua_tousertype(tolua_S, 1, 0);
|
||||||
const char * eqname = tolua_tostring(tolua_S, 2, 0);
|
const char * eqname = tolua_tostring(tolua_S, 2, 0);
|
||||||
|
@ -709,7 +721,7 @@ tolua_eressea_open(lua_State* tolua_S)
|
||||||
{
|
{
|
||||||
tolua_variable(tolua_S, "name", tolua_get_alliance_name, tolua_set_alliance_name);
|
tolua_variable(tolua_S, "name", tolua_get_alliance_name, tolua_set_alliance_name);
|
||||||
tolua_variable(tolua_S, "id", tolua_get_alliance_id, NULL);
|
tolua_variable(tolua_S, "id", tolua_get_alliance_id, NULL);
|
||||||
tolua_variable(tolua_S, "factions", tolua_get_alliance_factions, NULL);
|
tolua_variable(tolua_S, "factions", &tolua_get_alliance_factions, NULL);
|
||||||
tolua_function(tolua_S, "create", tolua_alliance_create);
|
tolua_function(tolua_S, "create", tolua_alliance_create);
|
||||||
}
|
}
|
||||||
tolua_endmodule(tolua_S);
|
tolua_endmodule(tolua_S);
|
||||||
|
@ -763,7 +775,8 @@ tolua_eressea_open(lua_State* tolua_S)
|
||||||
tolua_function(tolua_S, "get_season", tolua_get_season);
|
tolua_function(tolua_S, "get_season", tolua_get_season);
|
||||||
|
|
||||||
tolua_function(tolua_S, "equipment_setitem", tolua_equipment_setitem);
|
tolua_function(tolua_S, "equipment_setitem", tolua_equipment_setitem);
|
||||||
tolua_function(tolua_S, "equip_unit", tolua_lua_equipunit);
|
tolua_function(tolua_S, "equip_unit", tolua_equipunit);
|
||||||
|
tolua_function(tolua_S, "add_equipment", tolua_addequipment);
|
||||||
|
|
||||||
tolua_function(tolua_S, "atoi36", tolua_atoi36);
|
tolua_function(tolua_S, "atoi36", tolua_atoi36);
|
||||||
tolua_function(tolua_S, "itoa36", tolua_itoa36);
|
tolua_function(tolua_S, "itoa36", tolua_itoa36);
|
||||||
|
|
Loading…
Reference in a new issue