From 056419288c2453cccb30aa698324c2491f78504e Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Fri, 23 Apr 2021 20:09:23 +0200 Subject: [PATCH] enabling canvas now automatically enables ls::single --- arbitrile.cpp | 2 +- archimedean.cpp | 2 +- dpgen.cpp | 4 ++-- mapeditor.cpp | 2 +- menus.cpp | 2 +- pattern2.cpp | 24 +++++++++++++----------- rogueviz/rogueviz.cpp | 4 ++-- textures.cpp | 2 +- tour.cpp | 3 +++ 9 files changed, 25 insertions(+), 20 deletions(-) diff --git a/arbitrile.cpp b/arbitrile.cpp index f22ec78d..739d54bc 100644 --- a/arbitrile.cpp +++ b/arbitrile.cpp @@ -119,7 +119,7 @@ void ensure_geometry(eGeometryClass c) { canvas_default_wall = waInvisibleFloor; patterns::whichCanvas = 'g'; patterns::canvasback = 0xFFFFFF; - firstland = specialland = laCanvas; + enable_canvas(); } start_game(); } diff --git a/archimedean.cpp b/archimedean.cpp index 3713c899..b0ae9134 100644 --- a/archimedean.cpp +++ b/archimedean.cpp @@ -1201,7 +1201,7 @@ EX void enable(archimedean_tiling& arct) { function setcanvas(char c) { return [c] () { stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); patterns::whichCanvas = c; start_game(); }; diff --git a/dpgen.cpp b/dpgen.cpp index 56b46b94..879c151c 100644 --- a/dpgen.cpp +++ b/dpgen.cpp @@ -64,11 +64,11 @@ void launch(int seed, int elimit, int hlimit) { dual::enable(); stop_game(); dual::switch_to(0); - specialland = firstland = laCanvas; + enable_canvas(); canvas_default_wall = waSea; pconf.scale = .5; dual::switch_to(1); - specialland = firstland = laCanvas; + enable_canvas(); shrand(seed); start_game(); in = true; diff --git a/mapeditor.cpp b/mapeditor.cpp index ca3209e0..3da5ab42 100644 --- a/mapeditor.cpp +++ b/mapeditor.cpp @@ -2374,7 +2374,7 @@ EX namespace mapeditor { if(sym == SDLK_F5) { dialog::push_confirm_dialog([] { stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); canvas_default_wall = waInvisibleFloor; patterns::whichCanvas = 'g'; patterns::canvasback = 0xFFFFFF; diff --git a/menus.cpp b/menus.cpp index 905adda4..326d4042 100644 --- a/menus.cpp +++ b/menus.cpp @@ -977,7 +977,7 @@ EX void showStartMenu() { pushScreen(texture::showMenu); resetModes('c'); stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); cheater = true; patterns::canvasback = 0xFFFFFF; mapeditor::drawplayer = false; diff --git a/pattern2.cpp b/pattern2.cpp index 9f0244dd..edfdb4af 100644 --- a/pattern2.cpp +++ b/pattern2.cpp @@ -17,6 +17,12 @@ enum cpatterntype { }; #endif +EX void enable_canvas() { + firstland = specialland = laCanvas; + randomPatternsMode = false; + land_structure = lsSingle; + } + EX int ctof(cell *c) { #if CAP_IRR if(IRREGULAR) return irr::ctof(c); @@ -2057,8 +2063,7 @@ EX namespace patterns { stop_game(); whichCanvas = 'g'; canvasback = c >> 8; - firstland = specialland = laCanvas; - randomPatternsMode = false; + enable_canvas(); start_game(); } else { @@ -2079,8 +2084,7 @@ EX namespace patterns { break; } if(instant) { - firstland = specialland = laCanvas; - randomPatternsMode = false; + enable_canvas(); start_game(); } } @@ -2115,8 +2119,7 @@ EX namespace patterns { if(instant) stop_game(); whichCanvas = 'f'; if(instant) { - firstland = specialland = laCanvas; - randomPatternsMode = false; + enable_canvas(); start_game(); } }; @@ -2128,8 +2131,7 @@ EX namespace patterns { whichCanvas = uni; subcanvas = rand(); if(instant) { - firstland = specialland = laCanvas; - randomPatternsMode = false; + enable_canvas(); start_game(); } if(uni == 'r') @@ -3107,7 +3109,7 @@ int read_pattern_args() { else if(argis("-canvas")) { PHASEFROM(2); stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); shift(); if(args() == "i") canvas_default_wall = waInvisibleFloor; else if(args().size() == 1) patterns::whichCanvas = args()[0]; @@ -3117,14 +3119,14 @@ int read_pattern_args() { else if(argis("-canvas-random")) { PHASEFROM(2); stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); patterns::whichCanvas = 'r'; shift(); patterns::rwalls = argi(); } else if(argis("-cformula")) { PHASEFROM(2); stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); patterns::whichCanvas = 'f'; shift(); patterns::color_formula = args(); } diff --git a/rogueviz/rogueviz.cpp b/rogueviz/rogueviz.cpp index d128b572..70d8b030 100644 --- a/rogueviz/rogueviz.cpp +++ b/rogueviz/rogueviz.cpp @@ -899,11 +899,11 @@ void init(flagtype _vizflags) { #if !ISWEB mapeditor::drawplayer = false; stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); restart_game(shmup::on ? rg::shmup : rg::nothing); #else stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); restart_game(rg::nothing); #endif autocheat = true; diff --git a/textures.cpp b/textures.cpp index 5092b5fc..e2657e4c 100644 --- a/textures.cpp +++ b/textures.cpp @@ -1326,7 +1326,7 @@ EX void showMenu() { pushScreen(patterns::showPrePattern); else { stop_game(); - firstland = specialland = laCanvas; + enable_canvas(); patterns::whichCanvas = 'g'; patterns::canvasback = 0xFFFFFF; start_game(); diff --git a/tour.cpp b/tour.cpp index 917e26a1..dbd83570 100644 --- a/tour.cpp +++ b/tour.cpp @@ -110,6 +110,9 @@ EX void setCanvas(presmode mode, char canv) { slide_backup(patterns::whichCanvas, canv); slide_backup(firstland, laCanvas); slide_backup(specialland, laCanvas); + slide_backup(land_structure); + slide_backup(randomPatternsMode); + enable_canvas(); start_game(); resetview(); }