Commit 9b62a570 authored by Chen Bill's avatar Chen Bill

update std container erase

parent 45fc7229
...@@ -2855,14 +2855,21 @@ int32 card::fusion_check(group* fusion_m, card* cg, uint32 chkf, uint8 not_mater ...@@ -2855,14 +2855,21 @@ int32 card::fusion_check(group* fusion_m, card* cg, uint32 chkf, uint8 not_mater
effect_set eset; effect_set eset;
filter_effect(EFFECT_MATERIAL_LIMIT, &eset); filter_effect(EFFECT_MATERIAL_LIMIT, &eset);
for(auto cit = matgroup->container.begin(); cit != matgroup->container.end();) { for(auto cit = matgroup->container.begin(); cit != matgroup->container.end();) {
card* pcard = *cit++; card* pcard = *cit;
bool is_erase = false;
for(int32 i = 0; i < eset.size(); ++i) { for(int32 i = 0; i < eset.size(); ++i) {
pduel->lua->add_param(pcard, PARAM_TYPE_CARD); pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
pduel->lua->add_param(this, PARAM_TYPE_CARD); pduel->lua->add_param(this, PARAM_TYPE_CARD);
pduel->lua->add_param(summon_type, PARAM_TYPE_INT); pduel->lua->add_param(summon_type, PARAM_TYPE_INT);
if(!eset[i]->check_value_condition(3)) if (!eset[i]->check_value_condition(3)) {
matgroup->container.erase(pcard); is_erase = true;
break;
}
} }
if (is_erase)
cit = matgroup->container.erase(cit);
else
++cit;
} }
} else if(fusion_m) { } else if(fusion_m) {
matgroup = pduel->new_group(fusion_m->container); matgroup = pduel->new_group(fusion_m->container);
...@@ -2898,14 +2905,21 @@ void card::fusion_select(uint8 playerid, group* fusion_m, card* cg, uint32 chkf, ...@@ -2898,14 +2905,21 @@ void card::fusion_select(uint8 playerid, group* fusion_m, card* cg, uint32 chkf,
effect_set eset; effect_set eset;
filter_effect(EFFECT_MATERIAL_LIMIT, &eset); filter_effect(EFFECT_MATERIAL_LIMIT, &eset);
for(auto cit = matgroup->container.begin(); cit != matgroup->container.end();) { for(auto cit = matgroup->container.begin(); cit != matgroup->container.end();) {
card* pcard = *cit++; card* pcard = *cit;
bool is_erase = false;
for(int32 i = 0; i < eset.size(); ++i) { for(int32 i = 0; i < eset.size(); ++i) {
pduel->lua->add_param(pcard, PARAM_TYPE_CARD); pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
pduel->lua->add_param(this, PARAM_TYPE_CARD); pduel->lua->add_param(this, PARAM_TYPE_CARD);
pduel->lua->add_param(summon_type, PARAM_TYPE_INT); pduel->lua->add_param(summon_type, PARAM_TYPE_INT);
if(!eset[i]->check_value_condition(3)) if (!eset[i]->check_value_condition(3)) {
matgroup->container.erase(pcard); is_erase = true;
break;
}
} }
if (is_erase)
cit = matgroup->container.erase(cit);
else
++cit;
} }
} else if(fusion_m) { } else if(fusion_m) {
matgroup = pduel->new_group(fusion_m->container); matgroup = pduel->new_group(fusion_m->container);
......
...@@ -296,7 +296,7 @@ struct processor { ...@@ -296,7 +296,7 @@ struct processor {
uint32 set_group_used_zones{ 0 }; uint32 set_group_used_zones{ 0 };
uint8 set_group_seq[7]{ 0 }; uint8 set_group_seq[7]{ 0 };
uint8 dice_result[5]{ 0 }; uint8 dice_result[5]{ 0 };
uint8 coin_result[MAX_COIN_COUNT]; uint8 coin_result[MAX_COIN_COUNT]{ 0 };
int32 coin_count{ 0 }; int32 coin_count{ 0 };
uint8 to_bp{ FALSE }; uint8 to_bp{ FALSE };
......
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