Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
ygopro-core
Commits
3028b766
Commit
3028b766
authored
Jan 13, 2020
by
DailyShana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avoid comparing iterators of different lists
parent
39906673
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
34 deletions
+34
-34
processor.cpp
processor.cpp
+34
-34
No files found.
processor.cpp
View file @
3028b766
...
...
@@ -1606,41 +1606,41 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
chain newchain;
if(core.ignition_priority_chains.size())
core.select_chains.swap(core.ignition_priority_chains);
for(
auto evit = core.point_event.begin(); evit != core.instant_event.end(); ++evit
) {
if(evit == core.point_event.end())
evit = core.instant_event.begin(
);
auto pr = effects.activate_effect.equal_range(evit->event_code);
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second
;
++eit
;
peffect->set_activate_location();
if(!peffect->is_flag(EFFECT_FLAG_DELAY) && peffect->is_chainable(priority) && peffect->is_activateable(priority, *evit)) {
card* phandler = peffect->get_handler()
;
newchain.flag = 0
;
newchain.chain_id = infos.field_id++
;
newchain.evt = *evi
t;
newchain.triggering_effect = peffect
;
newchain.set_triggering_state(phandler)
;
newchain.triggering_player = priority
;
core.select_chains.push_back(newchain);
for(
const auto* ev_list : { &core.point_event, &core.instant_event }
) {
for(const auto& ev : *ev_list) {
auto pr = effects.activate_effect.equal_range(ev.event_code
);
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit
;
peffect->set_activate_location()
;
if(!peffect->is_flag(EFFECT_FLAG_DELAY) && peffect->is_chainable(priority) && peffect->is_activateable(priority, ev)) {
card* phandler = peffect->get_handler();
newchain.flag = 0
;
newchain.chain_id = infos.field_id++
;
newchain.evt = ev
;
newchain.triggering_effect = peffec
t;
newchain.set_triggering_state(phandler)
;
newchain.triggering_player = priority
;
core.select_chains.push_back(newchain)
;
}
}
}
pr = effects.quick_o_effect.equal_range(evit->event_code);
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second
;
++eit
;
peffect->set_activate_location();
if(peffect->is_chainable(priority) && peffect->is_activateable(priority, *evit)) {
card* phandler = peffect->get_handler()
;
newchain.flag = 0
;
newchain.chain_id = infos.field_id++
;
newchain.evt = *evi
t;
newchain.triggering_effect = peffect
;
newchain.set_triggering_state(phandler)
;
newchain.triggering_player = priority
;
core.select_chains.push_back(newchain
);
core.delayed_quick_tmp.erase(std::make_pair(peffect, *evit
));
core.delayed_quick_break.erase(std::make_pair(peffect, *evit));
pr = effects.quick_o_effect.equal_range(ev.event_code);
for(auto eit = pr.first; eit != pr.second;) {
effect* peffect = eit->second;
++eit
;
peffect->set_activate_location()
;
if(peffect->is_chainable(priority) && peffect->is_activateable(priority, ev)) {
card* phandler = peffect->get_handler();
newchain.flag = 0
;
newchain.chain_id = infos.field_id++
;
newchain.evt = ev
;
newchain.triggering_effect = peffec
t;
newchain.set_triggering_state(phandler)
;
newchain.triggering_player = priority
;
core.select_chains.push_back(newchain)
;
core.delayed_quick_tmp.erase(std::make_pair(peffect, ev)
);
core.delayed_quick_break.erase(std::make_pair(peffect, ev
));
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment