Several little fixes
- Fix take_gold function adding to party gold instead of subtracting - Fix wandering NPCs not appearing if the town was stored in a save slot - If IF_FIELDS node called while outdoors, skip to jumpto - If IF_STATISTIC called on selected target with whole party selected, default to cumulative check
This commit is contained in:
@@ -67,7 +67,7 @@ void give_gold(short amount,bool print_result) {
|
||||
bool take_gold(short amount,bool print_result) {
|
||||
if(univ.party.gold < amount)
|
||||
return false;
|
||||
univ.party.gold += amount;
|
||||
univ.party.gold -= amount;
|
||||
if(print_result)
|
||||
put_pc_screen();
|
||||
return true;
|
||||
|
@@ -3158,6 +3158,7 @@ void ifthen_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
*next_spec = spec.ex1b;
|
||||
break;
|
||||
case eSpecType::IF_FIELDS:
|
||||
if(is_out()) break;
|
||||
if(!isValidField(spec.m1, false)) {
|
||||
giveError("Scenario tried to check for invalid field type (1...24)");
|
||||
break;
|
||||
@@ -3266,6 +3267,7 @@ void ifthen_spec(eSpecCtx which_mode,cSpecial cur_node,short cur_spec_type,
|
||||
*next_spec = spec.ex1b;
|
||||
break;
|
||||
}
|
||||
spec.ex2b = 0;
|
||||
}
|
||||
if(check_party_stat(eSkill(spec.ex2a), spec.ex2b) >= spec.ex1a)
|
||||
*next_spec = spec.ex1b;
|
||||
|
@@ -207,7 +207,7 @@ void start_town_mode(short which_town, short entry_dir) {
|
||||
switch(univ.town.monst[j].time_flag){
|
||||
case eMonstTime::ALWAYS: break; // Nothing to do.
|
||||
case eMonstTime::SOMETIMES_A: case eMonstTime::SOMETIMES_B: case eMonstTime::SOMETIMES_C:
|
||||
if((calc_day() % 3) + 3 != int(univ.town.monst[i].time_flag))
|
||||
if((calc_day() % 3) + 3 != int(univ.town.monst[j].time_flag))
|
||||
univ.town.monst[j].active = 0;
|
||||
else {
|
||||
univ.town.monst[j].active = 1;
|
||||
|
Reference in New Issue
Block a user