Allow specials to trigger while in a boat.

This commit is contained in:
2014-12-10 19:58:09 -05:00
parent 75b4dfa9e6
commit ff5a8cb4c2
3 changed files with 10 additions and 2 deletions

View File

@@ -46,6 +46,7 @@
#define SDF_SKIP_STARTUP 305][4 // preferably deprecated
#define SDF_LESS_SOUND 305][5
#define SDF_NO_TARGET_LINE 305][6
#define SDF_NO_BOAT_SPECIALS 305][7
#define SDF_RESURRECT_NO_BALM 305][8
#define SDF_HOSTILES_PRESENT 305][9
#define SDF_NO_MAPS 306][0

View File

@@ -527,8 +527,10 @@ void put_party_in_scen(std::string scen_name)
// Compatibility flags
if(scenario.format.prog_make_ver[0] < 2){
PSD[SDF_RESURRECT_NO_BALM] = 1;
PSD[SDF_NO_BOAT_SPECIALS] = 1;
} else {
PSD[SDF_RESURRECT_NO_BALM] = 0;
PSD[SDF_NO_BOAT_SPECIALS] = 0;
}
}

View File

@@ -238,8 +238,13 @@ bool check_special_terrain(location where_check,eSpecCtx mode,short which_pc,sho
*forced = true;
}
*spec_num = univ.town->spec_id[i];
if(!is_blocked(where_check) || ter_special == eTerSpec::CHANGE_WHEN_STEP_ON
|| ter_special == eTerSpec::CALL_SPECIAL) {
bool runSpecial = false;
if(!is_blocked(where_check)) runSpecial = true;
if(ter_special == eTerSpec::CHANGE_WHEN_STEP_ON) runSpecial = true;
if(ter_special == eTerSpec::CALL_SPECIAL) runSpecial = true;
if(!PSD[SDF_NO_BOAT_SPECIALS] && univ.party.in_boat >= 0 && scenario.ter_types[ter].boat_over)
runSpecial = true;
if(runSpecial) {
give_help(54,0);
run_special(mode,2,univ.town->spec_id[i],where_check,&s1,&s2,&s3);
if (s1 > 0)