Outdoor specials were triggered in a boat in original BoE, so remove the workaround to prevent it.

This commit is contained in:
2015-01-29 02:02:13 -05:00
parent d1e67403a4
commit b3106ff1f2

View File

@@ -65,34 +65,6 @@ void cOutdoors::append(legacy::outdoor_record_type& old){
terrain[i][j] = 38; terrain[i][j] = 38;
} }
} }
if(scenario.ter_types[terrain[i][j]].boat_over) {
// Try to fix specials that could be triggered while in a boat
// (Boats never triggered specials in the old BoE, so we probably don't want them to trigger.)
int found_spec = -1;
for(int k = 0; k < 18; k++) {
if(i == special_locs[k].x && j == special_locs[k].y) {
found_spec = k;
break;
}
}
if(found_spec >= 0) {
if(!unused_special_slots.empty()) {
int found_spec_id = special_id[found_spec], use_slot = unused_special_slots.back();
unused_special_slots.pop_back();
cSpecial& node = specials[use_slot];
node.type = eSpecType::IF_IN_BOAT;
node.ex1b = -1; // any boat;
node.ex1c = -1; // do nothing
node.jumpto = found_spec_id; // else jump here
special_id[found_spec] = use_slot;
} else {
std::stringstream sout;
sout << "In outdoor section (" << x << ',' << y << ") at (" << i << ',' << j << "); special node ID ";
sout << special_id[found_spec];
giveError("Warning: A special node was found that could be triggered from in a boat, which is probably not what the designer intended. An attempt to fix this has failed because there were not enough unused special nodes.", sout.str());
}
}
}
} }
for(i = 0; i < 18; i++){ for(i = 0; i < 18; i++){
special_locs[i].x = old.special_locs[i].x; special_locs[i].x = old.special_locs[i].x;