3 * Summary: Boolean feat-related functions lua library "feat".
17 #define FEATF(name, val) \
18 static int name(lua_State *ls) \
20 if (lua_gettop(ls) == 2) \
23 lua_pushboolean(ls, val(grd(c)));\
25 else if (lua_isnumber(ls, 1)) \
26 lua_pushboolean(ls, val(static_cast<dungeon_feature_type>( \
27 luaL_checkint(ls, 1)))); \
28 else if (lua_isstring(ls, 1)) \
29 lua_pushboolean(ls, val(dungeon_feature_by_name(\
30 luaL_checkstring(ls, 1))));\
34 FEATF(_feat_is_wall
, feat_is_wall
)
35 FEATF(_feat_is_solid
, feat_is_solid
)
36 FEATF(_feat_has_solid_floor
, feat_has_solid_floor
)
37 FEATF(_feat_is_opaque
, feat_is_opaque
)
38 FEATF(_feat_is_door
, feat_is_door
)
39 FEATF(_feat_is_closed_door
, feat_is_closed_door
)
40 FEATF(_feat_is_secret_door
, feat_is_secret_door
)
41 FEATF(_feat_is_statue_or_idol
, feat_is_statue_or_idol
)
42 FEATF(_feat_is_rock
, feat_is_rock
)
43 FEATF(_feat_is_permarock
, feat_is_permarock
)
44 FEATF(_feat_is_stone_stair
, feat_is_stone_stair
)
45 FEATF(_feat_is_staircase
, feat_is_staircase
)
46 FEATF(_feat_is_escape_hatch
, feat_is_escape_hatch
)
47 FEATF(_feat_is_trap
, feat_is_trap
)
48 FEATF(_feat_is_sealable_portal
, feat_sealable_portal
)
49 FEATF(_feat_is_portal
, feat_is_portal
)
50 FEATF(_feat_is_stair
, feat_is_stair
)
51 FEATF(_feat_is_travelable_stair
, feat_is_travelable_stair
)
52 FEATF(_feat_is_gate
, feat_is_gate
)
53 FEATF(_feat_is_water
, feat_is_water
)
54 FEATF(_feat_is_watery
, feat_is_watery
)
55 FEATF(_feat_is_altar
, feat_is_altar
)
56 FEATF(_feat_is_player_altar
, feat_is_player_altar
)
57 FEATF(_feat_is_branch_stairs
, feat_is_branch_stairs
)
58 FEATF(_feat_is_critical
, is_critical_feature
)
60 const struct luaL_reg feat_dlib
[] =
62 { "is_wall", _feat_is_wall
},
63 { "is_solid", _feat_is_solid
},
64 { "has_solid_floor", _feat_has_solid_floor
},
65 { "is_opaque", _feat_is_opaque
},
66 { "is_door", _feat_is_door
},
67 { "is_closed_door", _feat_is_closed_door
},
68 { "is_secret_door", _feat_is_secret_door
},
69 { "is_statue_or_idol", _feat_is_statue_or_idol
},
70 { "is_rock", _feat_is_rock
},
71 { "is_permarock", _feat_is_permarock
},
72 { "is_stone_stair", _feat_is_stone_stair
},
73 { "is_staircase", _feat_is_staircase
},
74 { "is_escape_hatch", _feat_is_escape_hatch
},
75 { "is_trap", _feat_is_trap
},
76 { "is_sealable_portal", _feat_is_sealable_portal
},
77 { "is_portal", _feat_is_portal
},
78 { "is_stair", _feat_is_stair
},
79 { "is_travelable_stair", _feat_is_travelable_stair
},
80 { "is_gate", _feat_is_gate
},
81 { "is_water", _feat_is_water
},
82 { "is_watery", _feat_is_watery
},
83 { "is_altar", _feat_is_altar
},
84 { "is_player_altar", _feat_is_player_altar
},
85 { "is_branch_stairs", _feat_is_branch_stairs
},
86 { "is_critical", _feat_is_critical
},