Commit f3070210 authored by mercury233's avatar mercury233
parents f20b6ddf 225a846f
...@@ -1899,8 +1899,10 @@ void card::reset(uint32 id, uint32 reset_type) { ...@@ -1899,8 +1899,10 @@ void card::reset(uint32 id, uint32 reset_type) {
battled_cards.clear(); battled_cards.clear();
reset_effect_count(); reset_effect_count();
auto pr = field_effect.equal_range(EFFECT_DISABLE_FIELD); auto pr = field_effect.equal_range(EFFECT_DISABLE_FIELD);
for(; pr.first != pr.second; ++pr.first) for(; pr.first != pr.second; ++pr.first){
pr.first->second->value = 0; if(!pr.first->second->is_flag(EFFECT_FLAG_FUNC_VALUE))
pr.first->second->value = 0;
}
} }
if(id & (RESET_TODECK | RESET_TOHAND | RESET_TOGRAVE | RESET_REMOVE | RESET_TEMP_REMOVE if(id & (RESET_TODECK | RESET_TOHAND | RESET_TOGRAVE | RESET_REMOVE | RESET_TEMP_REMOVE
| RESET_OVERLAY | RESET_MSCHANGE | RESET_TOFIELD | RESET_TURN_SET)) { | RESET_OVERLAY | RESET_MSCHANGE | RESET_TOFIELD | RESET_TURN_SET)) {
......
...@@ -4538,7 +4538,7 @@ int32 field::refresh_location_info(uint16 step) { ...@@ -4538,7 +4538,7 @@ int32 field::refresh_location_info(uint16 step) {
filter_field_effect(EFFECT_DISABLE_FIELD, &eset); filter_field_effect(EFFECT_DISABLE_FIELD, &eset);
for (int32 i = 0; i < eset.size(); ++i) { for (int32 i = 0; i < eset.size(); ++i) {
uint32 value = eset[i]->get_value(); uint32 value = eset[i]->get_value();
if(value && !eset[i]->is_flag(EFFECT_FLAG_REPEAT)) { if(value) {
player[0].disabled_location |= value & 0x1f7f; player[0].disabled_location |= value & 0x1f7f;
player[1].disabled_location |= (value >> 16) & 0x1f7f; player[1].disabled_location |= (value >> 16) & 0x1f7f;
} else } else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment