summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/dat/bazaar.des12
-rw-r--r--crawl-ref/source/luadgn.cc88
-rw-r--r--crawl-ref/source/util/levcomp.ypp4
3 files changed, 54 insertions, 50 deletions
diff --git a/crawl-ref/source/dat/bazaar.des b/crawl-ref/source/dat/bazaar.des
index 029062fe7d..e9d22cdc23 100644
--- a/crawl-ref/source/dat/bazaar.des
+++ b/crawl-ref/source/dat/bazaar.des
@@ -293,7 +293,7 @@ ITEM: any book / good_item any book, any staff
SUBST: d=.d, e=.e, f=.f
# special cases for blue/red floor
: local colour = random_bazaar_colour()
-: _G.floor_colour(colour)
+: floorcol(colour)
: if colour == "red" then
SUBST: l = w
: else
@@ -328,7 +328,7 @@ ITEM: any wand, ring of levitation
SHUFFLE: leAB/wdBA
# special cases for blue/red floor
: local colour = random_bazaar_colour()
-: _G.floor_colour(colour)
+: floorcol(colour)
: if colour == "red" then
SUBST: l = w
: else
@@ -383,7 +383,7 @@ KFEAT: Z = stone_arch
SHUFFLE: lw
# special cases for blue/red floor
: local colour = random_bazaar_colour()
-: _G.floor_colour(colour)
+: floorcol(colour)
: if colour == "red" then
SUBST: l = w
: else
@@ -425,7 +425,7 @@ SUBST: a=T, z=V
SHUFFLE: lw
# special cases for blue/red floor
: local colour = random_bazaar_colour()
-: _G.floor_colour(colour)
+: floorcol(colour)
: if colour == "red" then
SUBST: l = w
: else
@@ -746,7 +746,7 @@ KFEAT: F = scroll shop / distillery shop
: bazaar_message(_G)
# special cases for blue floor
: local colour = random_bazaar_colour()
-: _G.floor_colour(colour)
+: floorcol(colour)
: if colour == "blue" then
SUBST: w = W
: end
@@ -868,7 +868,7 @@ SUBST: z = ., Z = w
SHUFFLE: wl, ABCD
# special cases for blue/red floor
: local colour = random_bazaar_colour()
-: _G.floor_colour(colour)
+: floorcol(colour)
: if colour == "red" then
SUBST: l = w
: else
diff --git a/crawl-ref/source/luadgn.cc b/crawl-ref/source/luadgn.cc
index fc5161071c..229fc9946d 100644
--- a/crawl-ref/source/luadgn.cc
+++ b/crawl-ref/source/luadgn.cc
@@ -1017,67 +1017,71 @@ static int dgn_load_des_file(lua_State *ls)
return (0);
}
-static int dgn_floor_colour(lua_State *ls)
+static int dgn_floorcol(lua_State *ls)
{
MAP(ls, 1, map);
- const char *s = luaL_checkstring(ls, 2);
- int colour = str_to_colour(s);
-
- if (colour < 0 || colour == BLACK)
+ if (!lua_isnone(ls, 2))
{
- std::string error;
+ const char *s = luaL_checkstring(ls, 2);
+ int colour = str_to_colour(s);
- if (colour == BLACK)
- {
- error = "Can't set floor to black.";
- }
- else
+ if (colour < 0 || colour == BLACK)
{
- error = "No such colour as '";
- error += s;
- error += "'";
- }
+ std::string error;
- luaL_argerror(ls, 2, error.c_str());
+ if (colour == BLACK)
+ {
+ error = "Can't set floor to black.";
+ }
+ else
+ {
+ error = "No such colour as '";
+ error += s;
+ error += "'";
+ }
- return (0);
- }
+ luaL_argerror(ls, 2, error.c_str());
- map->floor_colour = (unsigned char) colour;
- return (0);
+ return (0);
+ }
+ map->floor_colour = (unsigned char) colour;
+ }
+ PLUARET(string, colour_to_str(map->floor_colour).c_str());
}
-static int dgn_rock_colour(lua_State *ls)
+static int dgn_rockcol(lua_State *ls)
{
MAP(ls, 1, map);
- const char *s = luaL_checkstring(ls, 2);
- int colour = str_to_colour(s);
-
- if (colour < 0 || colour == BLACK)
+ if (!lua_isnone(ls, 2))
{
- std::string error;
+ const char *s = luaL_checkstring(ls, 2);
+ int colour = str_to_colour(s);
- if (colour == BLACK)
- {
- error = "Can't set rock to black.";
- }
- else
+ if (colour < 0 || colour == BLACK)
{
- error = "No such colour as '";
- error += s;
- error += "'";
- }
+ std::string error;
- luaL_argerror(ls, 2, error.c_str());
+ if (colour == BLACK)
+ {
+ error = "Can't set rock to black.";
+ }
+ else
+ {
+ error = "No such colour as '";
+ error += s;
+ error += "'";
+ }
- return (0);
- }
+ luaL_argerror(ls, 2, error.c_str());
- map->rock_colour = (unsigned char) colour;
+ return (0);
+ }
- return (0);
+ map->rock_colour = (unsigned char) colour;
+ }
+ PLUARET(string, colour_to_str(map->rock_colour).c_str());
}
static int dgn_get_floor_colour(lua_State *ls)
@@ -2099,8 +2103,8 @@ static const struct luaL_reg dgn_lib[] =
{ "subst", dgn_subst },
{ "nsubst", dgn_nsubst },
{ "colour", dgn_colour },
- { "floor_colour", dgn_floor_colour},
- { "rock_colour", dgn_rock_colour},
+ { "floorcol", dgn_floorcol},
+ { "rockcol", dgn_rockcol},
{ "subst_remove", dgn_subst_remove },
{ "map", dgn_map },
{ "mons", dgn_mons },
diff --git a/crawl-ref/source/util/levcomp.ypp b/crawl-ref/source/util/levcomp.ypp
index a678937ea9..23549491b6 100644
--- a/crawl-ref/source/util/levcomp.ypp
+++ b/crawl-ref/source/util/levcomp.ypp
@@ -359,7 +359,7 @@ floorcol : FLOORCOL { }
{
lc_map.main.add(
yylineno,
- make_stringf("floor_colour(\"%s\")",
+ make_stringf("floorcol(\"%s\")",
quote_lua_string($2).c_str()));
}
@@ -368,7 +368,7 @@ rockcol : ROCKCOL { }
{
lc_map.main.add(
yylineno,
- make_stringf("rock_colour(\"%s\")",
+ make_stringf("rockcol(\"%s\")",
quote_lua_string($2).c_str()));
}