#include #include #include "spells/shipcurse.h" #include #include #include #include static int tolua_levitate_ship(lua_State * L) { ship * sh = (ship *)tolua_tousertype(L, 1, 0); unit * mage = (unit *)tolua_tousertype(L, 2, 0); double power = (double)tolua_tonumber(L, 3, 0); int duration = (int)tolua_tonumber(L, 4, 0); int cno = levitate_ship(sh, mage, power, duration); tolua_pushnumber(L, (lua_Number)cno); return 1; } extern void spawn_undead(void); extern void spawn_dragons(void); extern void plan_monsters(struct faction * f); static int tolua_planmonsters(lua_State * L) { faction * f = (faction *)tolua_tousertype(L, 1, get_monsters()); if (f) { plan_monsters(f); } return 0; } static int tolua_spawn_dragons(lua_State * L) { spawn_dragons(); return 0; } static int tolua_spawn_undead(lua_State * L) { spawn_undead(); return 0; } void bind_eressea(struct lua_State * L) { tolua_module(L, NULL, 0); tolua_beginmodule(L, NULL); { tolua_function(L, TOLUA_CAST "levitate_ship", tolua_levitate_ship); tolua_function(L, TOLUA_CAST "plan_monsters", tolua_planmonsters); tolua_function(L, TOLUA_CAST "spawn_undead", tolua_spawn_undead); tolua_function(L, TOLUA_CAST "spawn_dragons", tolua_spawn_dragons); } tolua_endmodule(L); }