all[quests]: add a function to protect access from bad index..
This commit is contained in:
@@ -642,11 +642,11 @@ static bool handle_rb_action(location the_point, bool option_hit) {
|
||||
if(j == scenario.quests.size() - 1)
|
||||
scenario.quests.pop_back();
|
||||
else {
|
||||
scenario.quests[j] = cQuest();
|
||||
scenario.quests[j].name = "Unused Quest";
|
||||
scenario.get_quest(j) = cQuest();
|
||||
scenario.get_quest(j).name = "Unused Quest";
|
||||
}
|
||||
} else {
|
||||
if(!edit_quest(j) && j == size_before && scenario.quests[j].name == "New Quest")
|
||||
if(!edit_quest(j) && j == size_before && scenario.get_quest(j).name == "New Quest")
|
||||
scenario.quests.pop_back();
|
||||
}
|
||||
start_quest_editing(size_before == scenario.quests.size());
|
||||
@@ -2491,7 +2491,7 @@ void start_quest_editing(bool just_redo_text) {
|
||||
std::string title;
|
||||
if(i == scenario.quests.size())
|
||||
title = "Create New Quest";
|
||||
else title = scenario.quests[i].name;
|
||||
else title = scenario.get_quest(i).name;
|
||||
title = std::to_string(i) + " - " + title;
|
||||
set_rb(i, RB_QUEST, i, title);
|
||||
}
|
||||
|
@@ -2088,7 +2088,7 @@ static bool save_quest_from_dlog(cDialog& me, cQuest& quest, size_t which_quest,
|
||||
quest.bank2 = me["bank2"].getTextAsNum();
|
||||
} else quest.bank1 = quest.bank2 = -1;
|
||||
|
||||
scenario.quests[which_quest] = quest;
|
||||
scenario.get_quest(which_quest) = quest;
|
||||
if(!close) me.untoast();
|
||||
return true;
|
||||
}
|
||||
@@ -2107,7 +2107,7 @@ static bool change_quest_dlog_page(cDialog& me, std::string dir, cQuest& quest,
|
||||
which_quest = 0;
|
||||
}
|
||||
|
||||
quest = scenario.quests[which_quest];
|
||||
quest = scenario.get_quest(which_quest);
|
||||
put_quest_in_dlog(me, quest, which_quest);
|
||||
return true;
|
||||
}
|
||||
@@ -2118,7 +2118,7 @@ bool edit_quest(size_t which_quest) {
|
||||
scenario.quests.resize(which_quest + 1);
|
||||
scenario.quests[which_quest].name = "New Quest";
|
||||
}
|
||||
cQuest quest = scenario.quests[which_quest];
|
||||
cQuest quest = scenario.get_quest(which_quest);
|
||||
|
||||
cDialog quest_dlg("edit-quest");
|
||||
quest_dlg["cancel"].attachClickHandler(std::bind(&cDialog::toast, _1, false));
|
||||
|
@@ -199,7 +199,7 @@ void writeScenarioToXml(ticpp::Printer&& data, cScenario& scenario) {
|
||||
data.CloseElement("special-item");
|
||||
}
|
||||
for(size_t i = 0; i < scenario.quests.size(); i++) {
|
||||
cQuest& quest = scenario.quests[i];
|
||||
cQuest const &quest = scenario.quests[i];
|
||||
data.OpenElement("quest");
|
||||
data.PushAttribute("start-with", boolstr(quest.flags / 10));
|
||||
if(quest.deadline >= 0) {
|
||||
|
Reference in New Issue
Block a user