Fix warning message when setting a node that doesn't yet exist

This commit is contained in:
2017-02-07 20:09:42 -05:00
parent 61816b7529
commit bc810f9238

View File

@@ -1138,16 +1138,19 @@ void edit_dialog_text(eStrMode mode,short *str1,cDialog* parent) {
static bool edit_special_num_event_filter(cDialog& me, std::string item_hit, short spec_mode) {
size_t num_specs;
switch(spec_mode) {
case 0: num_specs = scenario.scen_specials.size();
case 1: num_specs = current_terrain->specials.size();
case 2: num_specs = town->specials.size();
case 0: num_specs = scenario.scen_specials.size(); break;
case 1: num_specs = current_terrain->specials.size(); break;
case 2: num_specs = town->specials.size(); break;
}
if(item_hit == "cancel") me.setResult<short>(-1);
else if(item_hit == "okay") {
short i = me["num"].getTextAsNum();
if(i < 0 || i >= num_specs) {
showWarning("There is no special node with that number. The available range is 0 to " + std::to_string(num_specs - 1) + ".","The node has been set anyway. To create it, select Edit Special Nodes from the menu, scroll to the bottom, and select Create new Node.",&me);
std::string range = num_specs
? "The available range is 0 to " + std::to_string(num_specs - 1) + "."
: "There are currently no nodes defined at all.";
showWarning("There is no special node with that number. " + range,"The node has been set anyway. To create it, select Edit Special Nodes from the menu, scroll to the bottom, and select Create new Node.",&me);
}
me.setResult(i);
me.toast(true);