game: try to not delete the party custom sheet when a scenario is downloaded

+ legacy mode: force_wall seems to be able to replace quickfire
+ correct a mistake...
This commit is contained in:
ALONSO Laurent
2021-10-27 16:59:41 +02:00
committed by Celtic Minstrel
parent e080efbee0
commit 5ca9255e7f
3 changed files with 4 additions and 4 deletions

View File

@@ -2519,7 +2519,7 @@ void load_spec_graphics_v1(fs::path scen_file) {
}
void load_spec_graphics_v2(int num_sheets) {
spec_scen_g.clear();
spec_scen_g.sheets.clear(); // we must not clear the party sheet here
if(num_sheets > 0) {
spec_scen_g.sheets.resize(num_sheets);
spec_scen_g.numSheets = num_sheets;

View File

@@ -1901,7 +1901,6 @@ void special_increase_age(long length, bool queue) {
auto party_timers = univ.party.party_event_timers;
for(short i = 0; i < party_timers.size(); i++) {
if(party_timers[i].time <= length) {
univ.party.age = age_before + party_timers[i].time;
univ.party.age = long(age_before) + party_timers[i].time;
auto which_type = party_timers[i].node_type;
bool need_redraw = false;

View File

@@ -356,7 +356,8 @@ bool cCurTown::set_force_wall(short x, short y, bool b){
if(b){ // If certain things are on space, there's no room for field.
if(is_impassable(x,y))
return false;
if(is_antimagic(x,y) || is_blade_wall(x,y) || is_quickfire(x,y))
// checkme: do we really want to change the comportement of quickfire in new game
if(is_antimagic(x,y) || is_blade_wall(x,y) || (!univ.scenario.is_legacy && is_quickfire(x,y)))
return false;
if(is_crate(x,y) || is_barrel(x,y) || is_fire_barr(x,y) || is_force_barr(x,y))
return false;
@@ -1144,7 +1145,7 @@ pic_num_t cUniverse::addGraphic(pic_num_t pic, ePicType type) {
// And finally, actually transfer the graphic over
spec_scen_g.copy_graphic(pos, pic, needSlots);
// Also mark these slots used so we don't overwrite them with the next copy
for(pic_num_t i = 1; i < needSlots; i++) {
for(pic_num_t i = 0; i < needSlots; i++) {
used_graphics.insert(pos + i);
}
return pos;