Commit 01651763 authored by Chen Bill's avatar Chen Bill

update std container erase

parent e07f4703
...@@ -3615,14 +3615,13 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -3615,14 +3615,13 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
case 10: { case 10: {
effect_set eset; effect_set eset;
for (auto cit = targets->container.begin(); cit != targets->container.end();) { for (auto cit = targets->container.begin(); cit != targets->container.end();) {
auto rm = cit++; card* pcard = *cit;
card* pcard = *rm;
if (!pcard->is_destructable()) { if (!pcard->is_destructable()) {
pcard->current.reason = pcard->temp.reason; pcard->current.reason = pcard->temp.reason;
pcard->current.reason_effect = pcard->temp.reason_effect; pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player; pcard->current.reason_player = pcard->temp.reason_player;
pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE); pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE);
targets->container.erase(pcard); cit = targets->container.erase(cit);
continue; continue;
} }
eset.clear(); eset.clear();
...@@ -3647,7 +3646,7 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -3647,7 +3646,7 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
pcard->current.reason_effect = pcard->temp.reason_effect; pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player; pcard->current.reason_player = pcard->temp.reason_player;
pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE); pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE);
targets->container.erase(pcard); cit = targets->container.erase(cit);
continue; continue;
} }
} }
...@@ -3692,7 +3691,7 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -3692,7 +3691,7 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
pcard->current.reason_effect = pcard->temp.reason_effect; pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player; pcard->current.reason_player = pcard->temp.reason_player;
pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE); pcard->set_status(STATUS_DESTROY_CONFIRMED, FALSE);
targets->container.erase(pcard); cit = targets->container.erase(cit);
continue; continue;
} }
} }
...@@ -3714,9 +3713,10 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3 ...@@ -3714,9 +3713,10 @@ int32 field::destroy(uint16 step, group * targets, effect * reason_effect, uint3
pcard->current.reason_effect = pcard->temp.reason_effect; pcard->current.reason_effect = pcard->temp.reason_effect;
pcard->current.reason_player = pcard->temp.reason_player; pcard->current.reason_player = pcard->temp.reason_player;
core.destroy_canceled.insert(pcard); core.destroy_canceled.insert(pcard);
targets->container.erase(pcard); cit = targets->container.erase(cit);
} }
} }
++cit;
} }
if(targets->container.size()) { if(targets->container.size()) {
operation_replace(EFFECT_DESTROY_REPLACE, 12, targets); operation_replace(EFFECT_DESTROY_REPLACE, 12, targets);
......
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