From 8809af121f7428b7d48aa105a2158a5d5d87f94b Mon Sep 17 00:00:00 2001 From: Morel Berenger Date: Sat, 16 Jul 2022 14:38:33 +0200 Subject: [PATCH] Minor fixes to special node edit dialog. --- src/scenedit/scen.keydlgs.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/scenedit/scen.keydlgs.cpp b/src/scenedit/scen.keydlgs.cpp index 4a03b011..d7ffb34f 100644 --- a/src/scenedit/scen.keydlgs.cpp +++ b/src/scenedit/scen.keydlgs.cpp @@ -833,7 +833,6 @@ static bool edit_spec_enc_value(cDialog& me, std::string item_hit, node_stack_t& eStrType strt; short str_adj = 0; const char* title = ""; - cSpecial* node_to_change_to = nullptr; switch(btn) { case 'm': choose_string = false; @@ -852,23 +851,27 @@ static bool edit_spec_enc_value(cDialog& me, std::string item_hit, node_stack_t& store = val; edit_dialog_text(eStrMode(mode), &store, &me); break; - case 's': case 'S': + case 's': case 'S': { choose_string = false; store = val < 0 ? get_fresh_spec(mode) : val; me[field].setTextToNum(store); save_spec_enc(me, edit_stack); + cSpecial* node_to_change_to = nullptr; if(mode == 0) node_to_change_to = &scenario.scen_specials[store]; else if(mode == 1) node_to_change_to = ¤t_terrain->specials[store]; else if(mode == 2) node_to_change_to = &town->specials[store]; - if(node_to_change_to->pic < 0) - node_to_change_to->pic = 0; - edit_stack.push({store,mode,*node_to_change_to}); + if (node_to_change_to) { + if(node_to_change_to->pic < 0) + node_to_change_to->pic = 0; + edit_stack.push({store,mode,*node_to_change_to}); + } put_spec_enc_in_dlog(me, edit_stack); me["back"].show(); return true; + } case 'p': choose_string = false; if(pictype < 0) me["pictype"].setTextToNum(PIC_DLOG);