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