diff options
author | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2010-01-05 01:31:26 +0530 |
---|---|---|
committer | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2010-01-05 01:34:27 +0530 |
commit | ed85466e0202b396bb8d5469d2babd2a24664afc (patch) | |
tree | dc8803ffada803a7910d1cea36d96361c916f59d /crawl-ref/source/cluautil.h | |
parent | e88370a40d2cad80bf114500d42291f11dcff5fb (diff) | |
download | crawl-ref-ed85466e0202b396bb8d5469d2babd2a24664afc.tar.gz crawl-ref-ed85466e0202b396bb8d5469d2babd2a24664afc.zip |
Fix Shoal:$ generation bugs: stairs could be surrounded by deep water, hut entrances could be blocked by rock.
shoal-hut.lua test generates 1k Shoal:$ levels and verifies that the levels pass sanity tests.
Diffstat (limited to 'crawl-ref/source/cluautil.h')
-rw-r--r-- | crawl-ref/source/cluautil.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/crawl-ref/source/cluautil.h b/crawl-ref/source/cluautil.h index 8b3a91937b..60f8f73e14 100644 --- a/crawl-ref/source/cluautil.h +++ b/crawl-ref/source/cluautil.h @@ -104,10 +104,14 @@ inline void dlua_push_userdata(lua_State *ls, T udata, const char *meta) } template <class T> -static void dlua_push_object_type(lua_State *ls, const char *meta, const T &data) +static int dlua_push_object_type(lua_State *ls, const char *meta, const T &data) { T **ptr = clua_new_userdata<T*>(ls, meta); - *ptr = new T(data); + if (ptr) + *ptr = new T(data); + else + lua_pushnil(ls); + return (1); } /* |