Split quest flags into two separate boolean values

This commit is contained in:
2023-01-22 18:14:04 -05:00
parent b19356757d
commit b03c34396d
10 changed files with 28 additions and 23 deletions

View File

@@ -657,7 +657,7 @@ static void fill_job_bank(cDialog& me, job_bank_t& bank, std::string) {
cQuest& quest = univ.scenario.quests[bank.jobs[i]];
std::string description = quest.descr;
if(quest.deadline > 0) {
if(quest.flags % 10 == 1)
if(quest.deadline_is_relative)
description += " Must be completed in " + std::to_string(quest.deadline) + " days.";
else description += " Must be completed by day " + std::to_string(quest.deadline) + ".";
}

View File

@@ -670,7 +670,7 @@ void put_quest_info(short which_i) {
int start = univ.party.active_quests[which_i].start;
quest_dlg["start"].setText("Day " + std::to_string(start));
if(quest.deadline > 0)
quest_dlg["chop"].setText("Day " + std::to_string(quest.deadline + (quest.flags % 10) * start));
quest_dlg["chop"].setText("Day " + std::to_string(quest.deadline + int(quest.deadline_is_relative) * start));
else quest_dlg["chop"].setText("None");
if(quest.gold > 0)
quest_dlg["pay"].setText(std::to_string(quest.gold) + " gold");

View File

@@ -1814,7 +1814,7 @@ void special_increase_age(long length, bool queue) {
cQuest& quest = univ.scenario.quests[p.first];
if(quest.deadline <= 0)
continue;
bool is_relative = quest.flags % 10;
bool is_relative = quest.deadline_is_relative;
int deadline = quest.deadline + is_relative * p.second.start;
if(day_reached(deadline + 1, quest.event)) {
p.second.status = eQuestStatus::FAILED;
@@ -1824,7 +1824,7 @@ void special_increase_age(long length, bool queue) {
if(bank >= univ.party.job_banks.size())
univ.party.job_banks.resize(bank + 1);
int add_anger = 1;
if(quest.flags % 10 == 1) {
if(quest.deadline_is_relative) {
if(quest.deadline < 20)
add_anger++;
if(quest.deadline < 10)