From 3d6551a70e3f3ca212d4a6141aa816a193c9c4c7 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Sat, 10 Oct 2020 11:31:16 +0300 Subject: [PATCH] Lua: Allow matching any wall A 'w' in a map fragment will match any wall (IS_WALL macro): des.replace_terrain({ mapfragment = "w", toterrain = "F" }); --- src/sp_lev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sp_lev.c b/src/sp_lev.c index 446e78258..f11099af2 100755 --- a/src/sp_lev.c +++ b/src/sp_lev.c @@ -197,6 +197,9 @@ static struct monst *invent_carrying_monster = (struct monst *) 0; * end of no 'g.' */ +#define TYP_CANNOT_MATCH(typ) \ + ((typ) == MAX_TYPE || (typ) == INVALID_TYPE) + /* Does typ match with levl[][].typ, considering special types MATCH_WALL and MAX_TYPE (aka transparency)? */ static boolean @@ -277,7 +280,7 @@ struct mapfragment *mf; else if (!mapfrag_canmatch(mf)) { mapfrag_free(&mf); return "mapfragment needs to have odd height and width"; - } else if (mapfrag_get(mf, (mf->wid/2), (mf->hei/2)) >= MAX_TYPE) { + } else if (TYP_CANNOT_MATCH(mapfrag_get(mf, (mf->wid/2), (mf->hei/2)))) { mapfrag_free(&mf); return "mapfragment center must be valid terrain"; }