63 #define SPECENUM_NAME api_types
64 #define SPECENUM_VALUE0 API_TYPE_INT
65 #define SPECENUM_VALUE0NAME "Int"
66 #define SPECENUM_VALUE1 API_TYPE_BOOL
67 #define SPECENUM_VALUE1NAME "Bool"
68 #define SPECENUM_VALUE2 API_TYPE_STRING
69 #define SPECENUM_VALUE2NAME "String"
70 #define SPECENUM_VALUE3 API_TYPE_PLAYER
71 #define SPECENUM_VALUE3NAME "Player"
72 #define SPECENUM_VALUE4 API_TYPE_CITY
73 #define SPECENUM_VALUE4NAME "City"
74 #define SPECENUM_VALUE5 API_TYPE_UNIT
75 #define SPECENUM_VALUE5NAME "Unit"
76 #define SPECENUM_VALUE6 API_TYPE_TILE
77 #define SPECENUM_VALUE6NAME "Tile"
78 #define SPECENUM_VALUE7 API_TYPE_GOVERNMENT
79 #define SPECENUM_VALUE7NAME "Government"
80 #define SPECENUM_VALUE8 API_TYPE_BUILDING_TYPE
81 #define SPECENUM_VALUE8NAME "Building_Type"
82 #define SPECENUM_VALUE9 API_TYPE_NATION_TYPE
83 #define SPECENUM_VALUE9NAME "Nation_Type"
84 #define SPECENUM_VALUE10 API_TYPE_UNIT_TYPE
85 #define SPECENUM_VALUE10NAME "Unit_Type"
86 #define SPECENUM_VALUE11 API_TYPE_TECH_TYPE
87 #define SPECENUM_VALUE11NAME "Tech_Type"
88 #define SPECENUM_VALUE12 API_TYPE_TERRAIN
89 #define SPECENUM_VALUE12NAME "Terrain"
90 #define SPECENUM_VALUE13 API_TYPE_CONNECTION
91 #define SPECENUM_VALUE13NAME "Connection"
92 #define SPECENUM_VALUE14 API_TYPE_DIRECTION
93 #define SPECENUM_VALUE14NAME "Direction"
94 #define SPECENUM_VALUE15 API_TYPE_DISASTER
95 #define SPECENUM_VALUE15NAME "Disaster"
96 #define SPECENUM_VALUE16 API_TYPE_ACHIEVEMENT
97 #define SPECENUM_VALUE16NAME "Achievement"
98 #define SPECENUM_VALUE17 API_TYPE_ACTION
99 #define SPECENUM_VALUE17NAME "Action"
100 #include "specenum_gen.h"
104 #include "sol/forward.hpp"
107 #define DEFINE_SOL_TOLUA_COMPAT(TYPE_) \
108 inline TYPE_ *sol_lua_check(sol::types<TYPE_ *>, lua_State *L, int index, \
109 sol::stack::record &) \
111 return (TYPE_ *) tolua_tousertype(L, index, 0); \
114 template <typename Handler> \
115 inline bool sol_lua_check(sol::types<TYPE_ *> expected, lua_State *L, \
116 int index, Handler &&handler, \
117 sol::stack::record &) \
120 if (tolua_isusertype(L, index, #TYPE_, 0, &err)) \
124 handler(L, index, (sol::type) LUA_TUSERDATA, \
125 (sol::type) lua_type(L, index), \
126 "could not convert to " #TYPE_); \
130 inline int sol_lua_push(sol::types<TYPE_ *>, lua_State *L, TYPE_ *object) \
132 tolua_pushusertype(L, (void *) object, #TYPE_); \
139 #undef DEFINE_SOL_TOLUA_COMPAT
const struct city_list_link City_List_Link
enum direction8 Direction
const struct unit_list_link Unit_List_Link
#define DEFINE_SOL_TOLUA_COMPAT(TYPE_)