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
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
...
@@ -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) {
int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_player, group* targets1, group* targets2, uint16 reset_phase, uint8 reset_count) {
switch(step) {
switch(step) {
case 0: {
case 0: {
returns
.
ivalue
[
0
]
=
0
;
core.units.begin()->step = 9
;
if(targets1->container.size() == 0)
if(targets1->container.size() == 0)
return
TRU
E
;
return
FALS
E;
if(targets2->container.size() == 0)
if(targets2->container.size() == 0)
return
TRU
E
;
return
FALS
E;
if(targets1->container.size() != targets2->container.size())
if(targets1->container.size() != targets2->container.size())
return
TRU
E
;
return
FALS
E;
for(auto cit = targets1->container.begin(); cit != targets1->container.end(); ++cit)
for(auto cit = targets1->container.begin(); cit != targets1->container.end(); ++cit)
(*cit)->filter_disable_related_cards();
(*cit)->filter_disable_related_cards();
for(auto cit = targets2->container.begin(); cit != targets2->container.end(); ++cit)
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
...
@@ -946,32 +946,32 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
auto cit2 = targets2->container.begin();
auto cit2 = targets2->container.begin();
uint8 p1 = (*cit1)->current.controler, p2 = (*cit2)->current.controler;
uint8 p1 = (*cit1)->current.controler, p2 = (*cit2)->current.controler;
if(p1 == p2 || p1 == PLAYER_NONE || p2 == PLAYER_NONE)
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) {
for(auto cit = targets1->container.begin(); cit != targets1->container.end(); ++cit) {
card* pcard = *cit;
card* pcard = *cit;
if(pcard->overlay_target)
if(pcard->overlay_target)
return
TRU
E
;
return
FALS
E;
if(pcard->current.controler != p1)
if(pcard->current.controler != p1)
return
TRU
E
;
return
FALS
E;
if(pcard->current.location != LOCATION_MZONE)
if(pcard->current.location != LOCATION_MZONE)
return
TRU
E
;
return
FALS
E;
if(!pcard->is_capable_change_control())
if(!pcard->is_capable_change_control())
return
TRU
E
;
return
FALS
E;
if(!pcard->is_affect_by_effect(reason_effect))
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) {
for(auto cit = targets2->container.begin(); cit != targets2->container.end(); ++cit) {
card* pcard = *cit;
card* pcard = *cit;
if(pcard->overlay_target)
if(pcard->overlay_target)
return
TRU
E
;
return
FALS
E;
if(pcard->current.controler != p2)
if(pcard->current.controler != p2)
return
TRU
E
;
return
FALS
E;
if(pcard->current.location != LOCATION_MZONE)
if(pcard->current.location != LOCATION_MZONE)
return
TRU
E
;
return
FALS
E;
if(!pcard->is_capable_change_control())
if(!pcard->is_capable_change_control())
return
TRU
E
;
return
FALS
E;
if(!pcard->is_affect_by_effect(reason_effect))
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) {
for(auto cit = targets1->container.begin(); cit != targets1->container.end(); ++cit) {
card* pcard = *cit;
card* pcard = *cit;
...
@@ -1004,6 +1004,7 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
...
@@ -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(pcard2->data.code);
pduel->write_buffer32(pcard1->get_info_location());
pduel->write_buffer32(pcard1->get_info_location());
}
}
core.units.begin()->step = 0;
return FALSE;
return FALSE;
}
}
case 1: {
case 1: {
...
@@ -1015,8 +1016,7 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
...
@@ -1015,8 +1016,7 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
add_unique_card(pcard);
add_unique_card(pcard);
raise_single_event(pcard, 0, EVENT_CONTROL_CHANGED, reason_effect, REASON_EFFECT, reason_player, pcard->current.controler, 0);
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_single_event();
process_instant_event();
process_instant_event();
return FALSE;
return FALSE;
...
@@ -1028,6 +1028,13 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
...
@@ -1028,6 +1028,13 @@ int32 field::swap_control(uint16 step, effect* reason_effect, uint8 reason_playe
pduel->delete_group(targets2);
pduel->delete_group(targets2);
return TRUE;
return TRUE;
}
}
case 10: {
core.operated_set.clear();
returns.ivalue[0] = 0;
pduel->delete_group(targets1);
pduel->delete_group(targets2);
return TRUE;
}
}
}
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