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