Commit 72a6cfce authored by VanillaSalt's avatar VanillaSalt

tweak

parent d5586f15
......@@ -2591,9 +2591,9 @@ void card::filter_spsummon_procedure(uint8 playerid, effect_set* peset, uint32 s
auto pr = field_effect.equal_range(EFFECT_SPSUMMON_PROC);
uint8 toplayer;
uint8 topos;
effect* peffect;
for(; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_flag(EFFECT_FLAG_SPSUM_PARAM)) {
topos = (uint8)peffect->s_range;
if(peffect->o_range == 0)
......@@ -2618,8 +2618,9 @@ void card::filter_spsummon_procedure(uint8 playerid, effect_set* peset, uint32 s
}
void card::filter_spsummon_procedure_g(uint8 playerid, effect_set* peset) {
auto pr = field_effect.equal_range(EFFECT_SPSUMMON_PROC_G);
for(; pr.first != pr.second; ++pr.first) {
effect* peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(!peffect->is_available() || !peffect->check_count_limit(playerid))
continue;
if(current.controler != playerid && !peffect->is_flag(EFFECT_FLAG_BOTH_SIDE))
......
......@@ -2187,8 +2187,9 @@ uint32 field::get_field_counter(uint8 self, uint8 s, uint8 o, uint16 countertype
}
int32 field::effect_replace_check(uint32 code, const tevent& e) {
auto pr = effects.continuous_effect.equal_range(code);
for (; pr.first != pr.second; ++pr.first) {
effect* peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_activateable(peffect->get_handler_player(), e))
return TRUE;
}
......@@ -3160,7 +3161,6 @@ int32 field::is_player_can_remove_counter(uint8 playerid, card * pcard, uint8 s,
if((pcard && pcard->get_counter(countertype) >= count) || (!pcard && get_field_counter(playerid, s, o, countertype) >= count))
return TRUE;
auto pr = effects.continuous_effect.equal_range(EFFECT_RCOUNTER_REPLACE + countertype);
effect* peffect;
tevent e;
e.event_cards = 0;
e.event_player = playerid;
......@@ -3168,8 +3168,9 @@ int32 field::is_player_can_remove_counter(uint8 playerid, card * pcard, uint8 s,
e.reason = reason;
e.reason_effect = core.reason_effect;
e.reason_player = playerid;
for (; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_activateable(peffect->get_handler_player(), e))
return TRUE;
}
......@@ -3179,7 +3180,6 @@ int32 field::is_player_can_remove_overlay_card(uint8 playerid, card * pcard, uin
if((pcard && pcard->xyz_materials.size() >= min) || (!pcard && get_overlay_count(playerid, s, o) >= min))
return TRUE;
auto pr = effects.continuous_effect.equal_range(EFFECT_OVERLAY_REMOVE_REPLACE);
effect* peffect;
tevent e;
e.event_cards = 0;
e.event_player = playerid;
......@@ -3187,8 +3187,9 @@ int32 field::is_player_can_remove_overlay_card(uint8 playerid, card * pcard, uin
e.reason = reason;
e.reason_effect = core.reason_effect;
e.reason_player = playerid;
for (; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_activateable(peffect->get_handler_player(), e))
return TRUE;
}
......
......@@ -1360,8 +1360,9 @@ int32 scriptlib::card_check_activate_effect(lua_State *L) {
int32 copy_info = lua_toboolean(L, 4);
duel* pduel = pcard->pduel;
tevent pe;
for(auto eit = pcard->field_effect.begin(); eit != pcard->field_effect.end(); ++eit) {
for(auto eit = pcard->field_effect.begin(); eit != pcard->field_effect.end();) {
effect* peffect = eit->second;
++eit;
if((peffect->type & EFFECT_TYPE_ACTIVATE)
&& pduel->game_field->check_event_c(peffect, pduel->game_field->core.reason_player, neglect_con, neglect_cost, copy_info, &pe)) {
if(!copy_info || (peffect->code == EVENT_FREE_CHAIN)) {
......
......@@ -332,8 +332,9 @@ void field::operation_replace(int32 type, int32 step, group* targets) {
int32 is_destroy = (type == EFFECT_DESTROY_REPLACE) ? TRUE : FALSE;
auto pr = effects.continuous_effect.equal_range(type);
std::vector<effect*> opp_effects;
for(auto it = pr.first; it != pr.second; ++it) {
effect* reffect = it->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* reffect = eit->second;
++eit;
if(reffect->get_handler_player() == infos.turn_player)
add_process(PROCESSOR_OPERATION_REPLACE, step, reffect, targets, is_destroy, 0);
else
......@@ -623,8 +624,9 @@ int32 field::pay_lp_cost(uint32 step, uint8 playerid, uint32 cost) {
core.select_effects.push_back(0);
}
auto pr = effects.continuous_effect.equal_range(EFFECT_LPCOST_REPLACE);
for (; pr.first != pr.second; ++pr.first) {
effect* peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_activateable(peffect->get_handler_player(), e)) {
core.select_options.push_back(peffect->description);
core.select_effects.push_back(peffect);
......@@ -679,7 +681,6 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
core.select_effects.push_back(0);
}
auto pr = effects.continuous_effect.equal_range(EFFECT_RCOUNTER_REPLACE + countertype);
effect* peffect;
tevent e;
e.event_cards = 0;
e.event_player = rplayer;
......@@ -687,8 +688,9 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
e.reason = reason;
e.reason_effect = core.reason_effect;
e.reason_player = rplayer;
for (; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_activateable(peffect->get_handler_player(), e)) {
core.select_options.push_back(peffect->description);
core.select_effects.push_back(peffect);
......@@ -756,7 +758,6 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
core.select_effects.push_back(0);
}
auto pr = effects.continuous_effect.equal_range(EFFECT_OVERLAY_REMOVE_REPLACE);
effect* peffect;
tevent e;
e.event_cards = 0;
e.event_player = rplayer;
......@@ -764,8 +765,9 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
e.reason = reason;
e.reason_effect = core.reason_effect;
e.reason_player = rplayer;
for (; pr.first != pr.second; ++pr.first) {
peffect = pr.first->second;
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit;
if(peffect->is_activateable(peffect->get_handler_player(), e)) {
core.select_options.push_back(peffect->description);
core.select_effects.push_back(peffect);
......
This diff is collapsed.
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