Quest node fields allow create/edit and choose
This commit is contained in:
@@ -165,7 +165,7 @@ namespace {
|
|||||||
.ex1c(eSpecPicker::NODE)
|
.ex1c(eSpecPicker::NODE)
|
||||||
.no_preview();
|
.no_preview();
|
||||||
node_properties_t S_QUEST = node_builder_t(eSpecType::IF_QUEST)
|
node_properties_t S_QUEST = node_builder_t(eSpecType::IF_QUEST)
|
||||||
.ex1a(STRT_QUEST)
|
.ex1a(eSpecPicker::QUEST)
|
||||||
.ex1b(STRT_QUEST_STATUS)
|
.ex1b(STRT_QUEST_STATUS)
|
||||||
.ex1c(eSpecPicker::NODE)
|
.ex1c(eSpecPicker::NODE)
|
||||||
.no_preview();
|
.no_preview();
|
||||||
|
@@ -196,7 +196,7 @@ namespace{
|
|||||||
.no_preview();
|
.no_preview();
|
||||||
node_properties_t S_QUEST = node_builder_t(eSpecType::UPDATE_QUEST)
|
node_properties_t S_QUEST = node_builder_t(eSpecType::UPDATE_QUEST)
|
||||||
.msg()
|
.msg()
|
||||||
.ex1a(STRT_QUEST)
|
.ex1a(eSpecPicker::QUEST)
|
||||||
.ex1b(STRT_QUEST_STATUS)
|
.ex1b(STRT_QUEST_STATUS)
|
||||||
.when(eSpecField::EX1B == 1, 1)
|
.when(eSpecField::EX1B == 1, 1)
|
||||||
.ex2a(eSpecPicker::JOB_BOARD)
|
.ex2a(eSpecPicker::JOB_BOARD)
|
||||||
|
@@ -772,13 +772,12 @@ static void setup_node_field(cDialog& me, std::string field, short value, const
|
|||||||
me[toggle].hide();
|
me[toggle].hide();
|
||||||
me[button2].hide();
|
me[button2].hide();
|
||||||
break;
|
break;
|
||||||
case eSpecPicker::NODE:
|
case eSpecPicker::QUEST: case eSpecPicker::NODE:
|
||||||
// TODO the other types below this could also have pickers in addition to Create/Edit
|
// TODO the other types below this could also have pickers in addition to Create/Edit
|
||||||
me[button2].show();
|
me[button2].show();
|
||||||
BOOST_FALLTHROUGH;
|
BOOST_FALLTHROUGH;
|
||||||
case eSpecPicker::MSG_PAIR: case eSpecPicker::MSG_SINGLE:
|
case eSpecPicker::MSG_PAIR: case eSpecPicker::MSG_SINGLE:
|
||||||
case eSpecPicker::MSG_SEQUENCE:
|
case eSpecPicker::MSG_SEQUENCE:
|
||||||
case eSpecPicker::QUEST:
|
|
||||||
me[button].show();
|
me[button].show();
|
||||||
me[toggle].hide();
|
me[toggle].hide();
|
||||||
if(is_sdf) break;
|
if(is_sdf) break;
|
||||||
@@ -1477,11 +1476,19 @@ static bool edit_spec_enc_value(cDialog& me, std::string item_hit, node_stack_t&
|
|||||||
me[otherField].setTextToNum(sdf.x);
|
me[otherField].setTextToNum(sdf.x);
|
||||||
} break;
|
} break;
|
||||||
case eSpecPicker::QUEST: {
|
case eSpecPicker::QUEST: {
|
||||||
if(val < 0 || val >= scenario.quests.size()){
|
// Picker:
|
||||||
val = scenario.quests.size();
|
if(alt_button){
|
||||||
|
std::vector<std::string> strings;
|
||||||
|
for(cQuest& quest : scenario.quests) {
|
||||||
|
strings.push_back(quest.name);
|
||||||
|
}
|
||||||
|
store = cStringChoice(strings, "Select a quest:", &me).show(me[field].getTextAsNum());
|
||||||
|
}else{
|
||||||
|
if(val < 0 || val >= scenario.quests.size()){
|
||||||
|
val = scenario.quests.size();
|
||||||
|
}
|
||||||
|
if(edit_quest(val)) store = val;
|
||||||
}
|
}
|
||||||
edit_quest(val);
|
|
||||||
store = val;
|
|
||||||
} break;
|
} break;
|
||||||
case eSpecPicker::SPELL_PATTERN: store = choose_pattern(val, &me, fcn.augmented); break;
|
case eSpecPicker::SPELL_PATTERN: store = choose_pattern(val, &me, fcn.augmented); break;
|
||||||
case eSpecPicker::FIELD: store = choose_field_type(val, &me, fcn.augmented); break;
|
case eSpecPicker::FIELD: store = choose_field_type(val, &me, fcn.augmented); break;
|
||||||
|
Reference in New Issue
Block a user