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
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
MyCard
ygopro-core
Commits
3143e6d7
Commit
3143e6d7
authored
Oct 12, 2016
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
d065a888
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
17 deletions
+24
-17
operations.cpp
operations.cpp
+24
-17
No files found.
operations.cpp
View file @
3143e6d7
...
...
@@ -931,13 +931,13 @@ int32 field::get_control(uint16 step, effect* reason_effect, uint8 reason_player
int32
field
::
swap_control
(
uint16
step
,
effect
*
reason_effect
,
uint8
reason_player
,
group
*
targets1
,
group
*
targets2
,
uint16
reset_phase
,
uint8
reset_count
)
{
switch
(
step
)
{
case
0
:
{
returns
.
ivalue
[
0
]
=
0
;
core
.
units
.
begin
()
->
step
=
9
;
if
(
targets1
->
container
.
size
()
==
0
)
return
TRU
E
;
return
FALS
E
;
if
(
targets2
->
container
.
size
()
==
0
)
return
TRU
E
;
return
FALS
E
;
if
(
targets1
->
container
.
size
()
!=
targets2
->
container
.
size
())
return
TRU
E
;
return
FALS
E
;
for
(
auto
cit
=
targets1
->
container
.
begin
();
cit
!=
targets1
->
container
.
end
();
++
cit
)
(
*
cit
)
->
filter_disable_related_cards
();
for
(
auto
cit
=
targets2
->
container
.
begin
();
cit
!=
targets2
->
container
.
end
();
++
cit
)
...
...
@@ -946,32 +946,32 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
auto
cit2
=
targets2
->
container
.
begin
();
uint8
p1
=
(
*
cit1
)
->
current
.
controler
,
p2
=
(
*
cit2
)
->
current
.
controler
;
if
(
p1
==
p2
||
p1
==
PLAYER_NONE
||
p2
==
PLAYER_NONE
)
return
TRU
E
;
return
FALS
E
;
for
(
auto
cit
=
targets1
->
container
.
begin
();
cit
!=
targets1
->
container
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
if
(
pcard
->
overlay_target
)
return
TRU
E
;
return
FALS
E
;
if
(
pcard
->
current
.
controler
!=
p1
)
return
TRU
E
;
return
FALS
E
;
if
(
pcard
->
current
.
location
!=
LOCATION_MZONE
)
return
TRU
E
;
return
FALS
E
;
if
(
!
pcard
->
is_capable_change_control
())
return
TRU
E
;
return
FALS
E
;
if
(
!
pcard
->
is_affect_by_effect
(
reason_effect
))
return
TRU
E
;
return
FALS
E
;
}
for
(
auto
cit
=
targets2
->
container
.
begin
();
cit
!=
targets2
->
container
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
if
(
pcard
->
overlay_target
)
return
TRU
E
;
return
FALS
E
;
if
(
pcard
->
current
.
controler
!=
p2
)
return
TRU
E
;
return
FALS
E
;
if
(
pcard
->
current
.
location
!=
LOCATION_MZONE
)
return
TRU
E
;
return
FALS
E
;
if
(
!
pcard
->
is_capable_change_control
())
return
TRU
E
;
return
FALS
E
;
if
(
!
pcard
->
is_affect_by_effect
(
reason_effect
))
return
TRU
E
;
return
FALS
E
;
}
for
(
auto
cit
=
targets1
->
container
.
begin
();
cit
!=
targets1
->
container
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
...
...
@@ -1004,6 +1004,7 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
pduel
->
write_buffer32
(
pcard2
->
data
.
code
);
pduel
->
write_buffer32
(
pcard1
->
get_info_location
());
}
core
.
units
.
begin
()
->
step
=
0
;
return
FALSE
;
}
case
1
:
{
...
...
@@ -1015,8 +1016,7 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
add_unique_card
(
pcard
);
raise_single_event
(
pcard
,
0
,
EVENT_CONTROL_CHANGED
,
reason_effect
,
REASON_EFFECT
,
reason_player
,
pcard
->
current
.
controler
,
0
);
}
if
(
targets1
->
container
.
size
())
raise_event
(
&
targets1
->
container
,
EVENT_CONTROL_CHANGED
,
reason_effect
,
REASON_EFFECT
,
reason_player
,
0
,
0
);
raise_event
(
&
targets1
->
container
,
EVENT_CONTROL_CHANGED
,
reason_effect
,
REASON_EFFECT
,
reason_player
,
0
,
0
);
process_single_event
();
process_instant_event
();
return
FALSE
;
...
...
@@ -1028,6 +1028,13 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
pduel
->
delete_group
(
targets2
);
return
TRUE
;
}
case
10
:
{
core
.
operated_set
.
clear
();
returns
.
ivalue
[
0
]
=
0
;
pduel
->
delete_group
(
targets1
);
pduel
->
delete_group
(
targets2
);
return
TRUE
;
}
}
return
TRUE
;
}
...
...
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