Use lua_Integer when interfacing with lua.

This commit is contained in:
nhkeni
2022-03-17 16:30:16 -04:00
parent 1151d54500
commit 7a790c2a30
3 changed files with 47 additions and 44 deletions
+1 -1
View File
@@ -1761,7 +1761,7 @@ extern void lcheck_param_table(lua_State *);
extern schar get_table_mapchr(lua_State *, const char *); extern schar get_table_mapchr(lua_State *, const char *);
extern schar get_table_mapchr_opt(lua_State *, const char *, schar); extern schar get_table_mapchr_opt(lua_State *, const char *, schar);
extern short nhl_get_timertype(lua_State *, int); extern short nhl_get_timertype(lua_State *, int);
extern void nhl_add_table_entry_int(lua_State *, const char *, int); extern void nhl_add_table_entry_int(lua_State *, const char *, lua_Integer);
extern void nhl_add_table_entry_char(lua_State *, const char *, char); extern void nhl_add_table_entry_char(lua_State *, const char *, char);
extern void nhl_add_table_entry_str(lua_State *, const char *, const char *); extern void nhl_add_table_entry_str(lua_State *, const char *, const char *);
extern void nhl_add_table_entry_bool(lua_State *, const char *, boolean); extern void nhl_add_table_entry_bool(lua_State *, const char *, boolean);
+2 -2
View File
@@ -212,7 +212,7 @@ nhl_get_timertype(lua_State *L, int idx)
} }
void void
nhl_add_table_entry_int(lua_State *L, const char *name, int value) nhl_add_table_entry_int(lua_State *L, const char *name, lua_Integer value)
{ {
lua_pushstring(L, name); lua_pushstring(L, name);
lua_pushinteger(L, value); lua_pushinteger(L, value);
@@ -923,7 +923,7 @@ nhl_dnum_name(lua_State *L)
int argc = lua_gettop(L); int argc = lua_gettop(L);
if (argc == 1) { if (argc == 1) {
int dnum = luaL_checkinteger(L, 1); lua_Integer dnum = luaL_checkinteger(L, 1);
if (dnum >= 0 && dnum < g.n_dgns) if (dnum >= 0 && dnum < g.n_dgns)
lua_pushstring(L, g.dungeons[dnum].dname); lua_pushstring(L, g.dungeons[dnum].dname);
+44 -41
View File
@@ -93,11 +93,11 @@ static void selection_iterate(struct selectionvar *, select_iter_func,
static void sel_set_ter(int, int, genericptr_t); static void sel_set_ter(int, int, genericptr_t);
static void sel_set_door(int, int, genericptr_t); static void sel_set_door(int, int, genericptr_t);
static void sel_set_feature(int, int, genericptr_t); static void sel_set_feature(int, int, genericptr_t);
static int get_coord(lua_State *, int, int *, int *); static int get_coord(lua_State *, int, lua_Integer *, lua_Integer *);
static void levregion_add(lev_region *); static void levregion_add(lev_region *);
static void get_table_xy_or_coord(lua_State *, int *, int *); static void get_table_xy_or_coord(lua_State *, lua_Integer *, lua_Integer *);
static int get_table_region(lua_State *, const char *, int *, int *, int *, static int get_table_region(lua_State *, const char *, lua_Integer *, lua_Integer *, lua_Integer *,
int *, boolean); lua_Integer *, boolean);
static void set_wallprop_in_selection(lua_State *, int); static void set_wallprop_in_selection(lua_State *, int);
static xchar random_wdir(void); static xchar random_wdir(void);
static int floodfillchk_match_under(int, int); static int floodfillchk_match_under(int, int);
@@ -109,7 +109,7 @@ static int get_table_align(lua_State *);
static int get_table_monclass(lua_State *); static int get_table_monclass(lua_State *);
static int find_montype(lua_State *, const char *, int *); static int find_montype(lua_State *, const char *, int *);
static int get_table_montype(lua_State *, int *); static int get_table_montype(lua_State *, int *);
static int get_table_int_or_random(lua_State *, const char *, int); static lua_Integer get_table_int_or_random(lua_State *, const char *, int);
static int get_table_buc(lua_State *); static int get_table_buc(lua_State *);
static int get_table_objclass(lua_State *); static int get_table_objclass(lua_State *);
static int find_objtype(lua_State *, const char *); static int find_objtype(lua_State *, const char *);
@@ -118,7 +118,7 @@ static const char *get_mkroom_name(int);
static int get_table_roomtype_opt(lua_State *, const char *, int); static int get_table_roomtype_opt(lua_State *, const char *, int);
static int get_table_traptype_opt(lua_State *, const char *, int); static int get_table_traptype_opt(lua_State *, const char *, int);
static int get_traptype_byname(const char *); static int get_traptype_byname(const char *);
static int get_table_intarray_entry(lua_State *, int, int); static lua_Integer get_table_intarray_entry(lua_State *, int, int);
static struct sp_coder *sp_level_coder_init(void); static struct sp_coder *sp_level_coder_init(void);
/* lua_CFunction prototypes */ /* lua_CFunction prototypes */
@@ -2992,10 +2992,10 @@ get_table_montype(lua_State *L, int *mgender)
} }
static void static void
get_table_xy_or_coord(lua_State *L, int *x, int *y) get_table_xy_or_coord(lua_State *L, lua_Integer *x, lua_Integer *y)
{ {
int mx = get_table_int_opt(L, "x", -1); lua_Integer mx = get_table_int_opt(L, "x", -1);
int my = get_table_int_opt(L, "y", -1); lua_Integer my = get_table_int_opt(L, "y", -1);
if (mx == -1 && my == -1) { if (mx == -1 && my == -1) {
lua_getfield(L, 1, "coord"); lua_getfield(L, 1, "coord");
@@ -3019,7 +3019,8 @@ lspo_monster(lua_State *L)
{ {
int argc = lua_gettop(L); int argc = lua_gettop(L);
monster tmpmons; monster tmpmons;
int mx = -1, my = -1, mgend = NEUTRAL; lua_Integer mx = -1, my = -1;
int mgend = NEUTRAL;
char *mappear = NULL; char *mappear = NULL;
create_des_coder(); create_des_coder();
@@ -3176,10 +3177,10 @@ lspo_monster(lua_State *L)
/* the hash key 'name' is an integer or "random", /* the hash key 'name' is an integer or "random",
or if not existent, also return rndval */ or if not existent, also return rndval */
static int static lua_Integer
get_table_int_or_random(lua_State *L, const char *name, int rndval) get_table_int_or_random(lua_State *L, const char *name, int rndval)
{ {
int ret; lua_Integer ret;
char buf[BUFSZ]; char buf[BUFSZ];
lua_getfield(L, 1, name); lua_getfield(L, 1, name);
@@ -3297,7 +3298,7 @@ lspo_object(lua_State *L)
#endif #endif
long quancnt; long quancnt;
object tmpobj; object tmpobj;
int ox = -1, oy = -1; lua_Integer ox = -1, oy = -1;
int argc = lua_gettop(L); int argc = lua_gettop(L);
int maybe_contents = 0; int maybe_contents = 0;
@@ -3581,7 +3582,7 @@ lspo_engraving(lua_State *L)
create_des_coder(); create_des_coder();
if (argc == 1) { if (argc == 1) {
int ex, ey; lua_Integer ex, ey;
lcheck_param_table(L); lcheck_param_table(L);
get_table_xy_or_coord(L, &ex, &ey); get_table_xy_or_coord(L, &ex, &ey);
@@ -3590,7 +3591,7 @@ lspo_engraving(lua_State *L)
etyp = engrtypes2i[get_table_option(L, "type", "engrave", engrtypes)]; etyp = engrtypes2i[get_table_option(L, "type", "engrave", engrtypes)];
txt = get_table_str(L, "text"); txt = get_table_str(L, "text");
} else if (argc == 3) { } else if (argc == 3) {
int ex, ey; lua_Integer ex, ey;
get_coord(L, 1, &ex, &ey); get_coord(L, 1, &ex, &ey);
x = ex; x = ex;
y = ey; y = ey;
@@ -3721,7 +3722,7 @@ lspo_room(lua_State *L)
static const int t_or_b2i[] = { TOP, CENTER, BOTTOM, -1, -1, -1 }; static const int t_or_b2i[] = { TOP, CENTER, BOTTOM, -1, -1, -1 };
room tmproom; room tmproom;
struct mkroom *tmpcr; struct mkroom *tmpcr;
int rx, ry; lua_Integer rx, ry;
get_table_xy_or_coord(L, &rx, &ry); get_table_xy_or_coord(L, &rx, &ry);
tmproom.x = rx, tmproom.y = ry; tmproom.x = rx, tmproom.y = ry;
@@ -3811,7 +3812,7 @@ l_create_stairway(lua_State *L, boolean using_ladder)
struct trap *badtrap; struct trap *badtrap;
long scoord; long scoord;
int ax = -1, ay = -1; lua_Integer ax = -1, ay = -1;
int up; int up;
int ltype = lua_type(L, 1); int ltype = lua_type(L, 1);
@@ -3898,7 +3899,7 @@ lspo_grave(lua_State *L)
int argc = lua_gettop(L); int argc = lua_gettop(L);
xchar x, y; xchar x, y;
long scoord; long scoord;
int ax,ay; lua_Integer ax,ay;
char *txt; char *txt;
create_des_coder(); create_des_coder();
@@ -3942,7 +3943,7 @@ lspo_altar(lua_State *L)
altar tmpaltar; altar tmpaltar;
int x, y; lua_Integer x, y;
long acoord; long acoord;
int shrine; int shrine;
int al; int al;
@@ -4050,7 +4051,7 @@ int
lspo_trap(lua_State *L) lspo_trap(lua_State *L)
{ {
spltrap tmptrap; spltrap tmptrap;
int x, y; lua_Integer x, y;
int argc = lua_gettop(L); int argc = lua_gettop(L);
create_des_coder(); create_des_coder();
@@ -4085,7 +4086,7 @@ lspo_trap(lua_State *L)
lua_getfield(L, -1, "launchfrom"); lua_getfield(L, -1, "launchfrom");
if (lua_type(L, -1) == LUA_TTABLE) { if (lua_type(L, -1) == LUA_TTABLE) {
int lx = -1, ly = -1; lua_Integer lx = -1, ly = -1;
get_coord(L, -1, &lx, &ly); get_coord(L, -1, &lx, &ly);
lua_pop(L, 1); lua_pop(L, 1);
@@ -4120,7 +4121,7 @@ lspo_gold(lua_State *L)
xchar x, y; xchar x, y;
long amount; long amount;
long gcoord; long gcoord;
int gx, gy; lua_Integer gx, gy;
create_des_coder(); create_des_coder();
@@ -4865,7 +4866,7 @@ lspo_door(lua_State *L)
y = luaL_checkinteger(L, 3); y = luaL_checkinteger(L, 3);
} else { } else {
int dx, dy; lua_Integer dx, dy;
lcheck_param_table(L); lcheck_param_table(L);
get_table_xy_or_coord(L, &dx, &dy); get_table_xy_or_coord(L, &dx, &dy);
@@ -4963,7 +4964,7 @@ lspo_feature(lua_State *L)
if (argc == 2 && lua_type(L, 1) == LUA_TSTRING if (argc == 2 && lua_type(L, 1) == LUA_TSTRING
&& lua_type(L, 2) == LUA_TTABLE) { && lua_type(L, 2) == LUA_TTABLE) {
int fx, fy; lua_Integer fx, fy;
typ = features2i[luaL_checkoption(L, 1, NULL, features)]; typ = features2i[luaL_checkoption(L, 1, NULL, features)];
get_coord(L, 2, &fx, &fy); get_coord(L, 2, &fx, &fy);
x = fx; x = fx;
@@ -4973,7 +4974,7 @@ lspo_feature(lua_State *L)
x = luaL_checkinteger(L, 2); x = luaL_checkinteger(L, 2);
y = luaL_checkinteger(L, 3); y = luaL_checkinteger(L, 3);
} else { } else {
int fx, fy; lua_Integer fx, fy;
lcheck_param_table(L); lcheck_param_table(L);
get_table_xy_or_coord(L, &fx, &fy); get_table_xy_or_coord(L, &fx, &fy);
@@ -5038,7 +5039,7 @@ lspo_terrain(lua_State *L)
tmpterrain.ter = INVALID_TYPE; tmpterrain.ter = INVALID_TYPE;
if (argc == 1) { if (argc == 1) {
int tx, ty; lua_Integer tx, ty;
lcheck_param_table(L); lcheck_param_table(L);
get_table_xy_or_coord(L, &tx, &ty); get_table_xy_or_coord(L, &tx, &ty);
@@ -5052,7 +5053,7 @@ lspo_terrain(lua_State *L)
tmpterrain.tlit = get_table_int_opt(L, "lit", SET_LIT_NOCHANGE); tmpterrain.tlit = get_table_int_opt(L, "lit", SET_LIT_NOCHANGE);
} else if (argc == 2 && lua_type(L, 1) == LUA_TTABLE } else if (argc == 2 && lua_type(L, 1) == LUA_TTABLE
&& lua_type(L, 2) == LUA_TSTRING) { && lua_type(L, 2) == LUA_TSTRING) {
int tx, ty; lua_Integer tx, ty;
tmpterrain.ter = check_mapchr(luaL_checkstring(L, 2)); tmpterrain.ter = check_mapchr(luaL_checkstring(L, 2));
lua_pop(L, 1); lua_pop(L, 1);
get_coord(L, 1, &tx, &ty); get_coord(L, 1, &tx, &ty);
@@ -5101,7 +5102,7 @@ lspo_replace_terrain(lua_State *L)
struct selectionvar *sel = NULL; struct selectionvar *sel = NULL;
boolean freesel = FALSE; boolean freesel = FALSE;
int x, y; int x, y;
int x1, y1, x2, y2; lua_Integer x1, y1, x2, y2;
int chance; int chance;
int tolit; int tolit;
@@ -5295,10 +5296,10 @@ ensure_way_out(void)
selection_free(ov, TRUE); selection_free(ov, TRUE);
} }
static int static lua_Integer
get_table_intarray_entry(lua_State *L, int tableidx, int entrynum) get_table_intarray_entry(lua_State *L, int tableidx, int entrynum)
{ {
int ret = 0; lua_Integer ret = 0;
if (tableidx < 0) if (tableidx < 0)
tableidx--; tableidx--;
@@ -5321,11 +5322,11 @@ static int
get_table_region( get_table_region(
lua_State *L, lua_State *L,
const char *name, const char *name,
int *x1, int *y1, lua_Integer *x1, lua_Integer *y1,
int *x2, int *y2, lua_Integer *x2, lua_Integer *y2,
boolean optional) boolean optional)
{ {
int arrlen; lua_Integer arrlen;
lua_getfield(L, 1, name); lua_getfield(L, 1, name);
if (optional && lua_type(L, -1) == LUA_TNIL) { if (optional && lua_type(L, -1) == LUA_TNIL) {
@@ -5354,7 +5355,7 @@ get_table_region(
} }
static int static int
get_coord(lua_State *L, int i, int *x, int *y) get_coord(lua_State *L, int i, lua_Integer *x, lua_Integer *y)
{ {
if (lua_type(L, i) == LUA_TTABLE) { if (lua_type(L, i) == LUA_TTABLE) {
int arrlen; int arrlen;
@@ -5418,7 +5419,7 @@ lspo_teleport_region(lua_State *L)
static const char *const teledirs[] = { "both", "down", "up", NULL }; static const char *const teledirs[] = { "both", "down", "up", NULL };
static const int teledirs2i[] = { LR_TELE, LR_DOWNTELE, LR_UPTELE, -1 }; static const int teledirs2i[] = { LR_TELE, LR_DOWNTELE, LR_UPTELE, -1 };
lev_region tmplregion; lev_region tmplregion;
int x1,y1,x2,y2; lua_Integer x1,y1,x2,y2;
create_des_coder(); create_des_coder();
@@ -5471,7 +5472,7 @@ lspo_levregion(lua_State *L)
LR_TELE, LR_UPTELE, LR_DOWNTELE, 0 LR_TELE, LR_UPTELE, LR_DOWNTELE, 0
}; };
lev_region tmplregion; lev_region tmplregion;
int x1,y1,x2,y2; lua_Integer x1,y1,x2,y2;
create_des_coder(); create_des_coder();
@@ -5556,7 +5557,7 @@ lspo_region(lua_State *L)
dy2 = get_table_int_opt(L, "y2", -1); dy2 = get_table_int_opt(L, "y2", -1);
if (dx1 == -1 && dy1 == -1 && dx2 == -1 && dy2 == -1) { if (dx1 == -1 && dy1 == -1 && dx2 == -1 && dy2 == -1) {
int rx1, ry1, rx2, ry2; lua_Integer rx1, ry1, rx2, ry2;
get_table_region(L, "region", &rx1, &ry1, &rx2, &ry2, FALSE); get_table_region(L, "region", &rx1, &ry1, &rx2, &ry2, FALSE);
dx1 = rx1; dy1 = ry1; dx1 = rx1; dy1 = ry1;
dx2 = rx2; dy2 = ry2; dx2 = rx2; dy2 = ry2;
@@ -5679,7 +5680,8 @@ lspo_drawbridge(lua_State *L)
}; };
static const int dbopens2i[] = { 1, 0, -1, -2 }; static const int dbopens2i[] = { 1, 0, -1, -2 };
xchar x, y; xchar x, y;
int mx, my, dir; lua_Integer mx, my;
int dir;
int db_open; int db_open;
long dcoord; long dcoord;
@@ -5716,7 +5718,7 @@ lspo_mazewalk(lua_State *L)
}; };
static const int mwdirs2i[] = { W_NORTH, W_SOUTH, W_EAST, W_WEST, W_RANDOM, -2 }; static const int mwdirs2i[] = { W_NORTH, W_SOUTH, W_EAST, W_WEST, W_RANDOM, -2 };
xchar x, y; xchar x, y;
int mx, my; lua_Integer mx, my;
xchar ftyp = ROOM; xchar ftyp = ROOM;
int fstocked = 1, dir = -1; int fstocked = 1, dir = -1;
long mcoord; long mcoord;
@@ -5826,7 +5828,7 @@ lspo_wall_property(lua_State *L)
dy2 = get_table_int_opt(L, "y2", -1); dy2 = get_table_int_opt(L, "y2", -1);
if (dx1 == -1 && dy1 == -1 && dx2 == -1 && dy2 == -1) { if (dx1 == -1 && dy1 == -1 && dx2 == -1 && dy2 == -1) {
int rx1, ry1, rx2, ry2; lua_Integer rx1, ry1, rx2, ry2;
get_table_region(L, "region", &rx1, &ry1, &rx2, &ry2, FALSE); get_table_region(L, "region", &rx1, &ry1, &rx2, &ry2, FALSE);
dx1 = rx1; dy1 = ry1; dx1 = rx1; dy1 = ry1;
dx2 = rx2; dy2 = ry2; dx2 = rx2; dy2 = ry2;
@@ -6024,7 +6026,8 @@ TODO: g.coder->croom needs to be updated
"top", "center", "bottom", "none", NULL "top", "center", "bottom", "none", NULL
}; };
static const int t_or_b2i[] = { TOP, CENTER, BOTTOM, -1, -1 }; static const int t_or_b2i[] = { TOP, CENTER, BOTTOM, -1, -1 };
int lr, tb, x = -1, y = -1; int lr, tb;
lua_Integer x = -1, y = -1;
struct mapfragment *mf; struct mapfragment *mf;
char *tmpstr; char *tmpstr;
int argc = lua_gettop(L); int argc = lua_gettop(L);