From 27e19ca5cacfccdb6dd65ae1262c218d9c3e015e Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Tue, 28 Jan 2020 16:42:07 +0100 Subject: [PATCH] mapeditor:: canvas_default_wall can be set now --- landgen.cpp | 3 +-- mapeditor.cpp | 3 +++ pattern2.cpp | 16 +++++++++++----- system.cpp | 2 +- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/landgen.cpp b/landgen.cpp index aa013c80..9330f9a0 100644 --- a/landgen.cpp +++ b/landgen.cpp @@ -2704,8 +2704,7 @@ EX void setdist(cell *c, int d, cell *from) { if(d == BARLEV && c->land == laCanvas) { color_t col = patterns::generateCanvas(c); c->landparam = col; - if(canvas_invisible) - c->wall = waInvisibleFloor; + c->wall = canvas_default_wall; if(WDIM == 3 && (col & 0x1000000)) c->wall = waWaxWall; } diff --git a/mapeditor.cpp b/mapeditor.cpp index b9152962..55e3a11c 100644 --- a/mapeditor.cpp +++ b/mapeditor.cpp @@ -277,6 +277,7 @@ namespace mapstream { f.write(patterns::subpattern_flags); f.write(patterns::whichCanvas); f.write(patterns::displaycodes); + f.write(canvas_default_wall); f.write(mapeditor::drawplayer); if(patterns::whichCanvas == 'f') f.write(patterns::color_formula); @@ -404,6 +405,8 @@ namespace mapstream { f.read(patterns::subpattern_flags); f.read(patterns::whichCanvas); f.read(patterns::displaycodes); + if(VERNUM_HEX >= 0xA816) + f.read(canvas_default_wall); f.read(mapeditor::drawplayer); if(patterns::whichCanvas == 'f') f.read(patterns::color_formula); diff --git a/pattern2.cpp b/pattern2.cpp index 1a6e2fd4..cc5914f8 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -1919,7 +1919,7 @@ EX namespace patterns { dialog::addBoolItem(XLAT("display only heptagons"), (whichShape == '7'), '7'); dialog::addBoolItem(XLAT("display the triheptagonal grid"), (whichShape == '8'), '8'); dialog::addBoolItem(XLAT("display full floors"), (whichShape == '9'), '9'); - dialog::addBoolItem(XLATN(winf[waInvisibleFloor].name), canvas_invisible, 'i'); + dialog::addSelItem(XLAT("floor type"), XLATN(winf[canvas_default_wall].name), 'i'); dialog::addItem(XLAT("line patterns"), 'L'); @@ -1950,14 +1950,20 @@ EX namespace patterns { }; } else if(uni == 'i') { - if(instant) { + if(instant) stop_game(); - canvas_invisible = !canvas_invisible; + + vector choices = {waNone, waInvisibleFloor, waChasm, waEternalFire, waStone, waSea, waBarrier, waCavewall}; + for(int i=0; i