Add new type of item that gives a quest when picked up

This commit is contained in:
2015-02-07 12:42:06 -05:00
parent dcdf5324e7
commit 2e88b55759
12 changed files with 40 additions and 11 deletions

View File

@@ -545,6 +545,11 @@ static bool display_item_event_filter(cDialog& me, std::string id, size_t& first
} else if(item.variety == eItemType::SPECIAL) {
univ.party.spec_items.insert(item.item_level);
set_item_flag(&item);
} else if(item.variety == eItemType::QUEST) {
univ.party.quest_status[item.item_level] == eQuestStatus::STARTED;
univ.party.quest_start[item.item_level] = calc_day();
univ.party.quest_source[item.item_level] = -1;
set_item_flag(&item);
} else {
if(!allow_overload && item.item_weight() > univ.party[current_getting_pc].free_weight()) {
beep(); // TODO: This is a game event, so it should have a game sound, not a system alert.
@@ -935,7 +940,7 @@ void generate_job_bank(int which, job_bank_t& bank) {
static cItem get_random_store_item(int loot_type) {
cItem item = return_treasure(loot_type);
if(item.variety == eItemType::GOLD || item.variety == eItemType::SPECIAL || item.variety == eItemType::FOOD)
if(item.variety == eItemType::GOLD || item.variety == eItemType::SPECIAL || item.variety == eItemType::FOOD || item.variety == eItemType::QUEST)
item = cItem();
item.ident = true;
return item;