From a0debde38cc0f138c4eb1877c7734bef722c77af Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Tue, 26 Aug 2025 14:50:25 -0500 Subject: [PATCH] preview for TOWN_PORTAL dialog --- src/scenario/special-town.cpp | 4 +--- src/scenedit/scen.keydlgs.cpp | 15 ++++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/scenario/special-town.cpp b/src/scenario/special-town.cpp index ad8ec35d..5894174d 100644 --- a/src/scenario/special-town.cpp +++ b/src/scenario/special-town.cpp @@ -83,12 +83,10 @@ namespace { .msg1(eSpecPicker::MSG_SEQUENCE) .pic() .ex1b(eSpecPicker::NODE); - // TODO implement preview node_properties_t S_PORTAL = node_builder_t(eSpecType::TOWN_PORTAL) .msg1(eSpecPicker::MSG_SEQUENCE) .pic() - .loc(eSpecField::EX1A, eSpecField::EX1B, eLocType::ACTIVE_TOWN) - .no_preview(); + .loc(eSpecField::EX1A, eSpecField::EX1B, eLocType::ACTIVE_TOWN); // TODO implement preview node_properties_t S_STAIR = node_builder_t(eSpecType::TOWN_STAIR) .msg1(eSpecPicker::MSG_SEQUENCE) diff --git a/src/scenedit/scen.keydlgs.cpp b/src/scenedit/scen.keydlgs.cpp index 04ac895d..ceb57b6f 100644 --- a/src/scenedit/scen.keydlgs.cpp +++ b/src/scenedit/scen.keydlgs.cpp @@ -883,12 +883,17 @@ static bool preview_spec_enc_dlog(cDialog& me, std::string, cSpecial& special, s cDialog::defaultBackground = cDialog::BG_DARK; switch(special.type){ + case eSpecType::TOWN_PORTAL: + if(special.m1 < 0) break; + univ.get_strs(strs, cur_type,special.m1); + buttons = {9, 8, -1}; + custom_choice_dialog(strs, special.pic, ePicType(special.pictype), buttons, true, special.ex1c, special.ex2c, &univ); + break; case eSpecType::TOWN_LEVER: - if(special.m1 < 0) break; - univ.get_strs(strs,cur_type, special.m1); - buttons = {9, 35, -1}; - if(custom_choice_dialog(strs, special.pic, ePicType(special.pictype), buttons, true, special.ex1c, special.ex2c, &univ) == 1) - break; + if(special.m1 < 0) break; + univ.get_strs(strs,cur_type, special.m1); + buttons = {9, 35, -1}; + custom_choice_dialog(strs, special.pic, ePicType(special.pictype), buttons, true, special.ex1c, special.ex2c, &univ); break; case eSpecType::TOWN_GENERIC_STAIR: if(special.ex2b < 8)