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
df9d562f
Commit
df9d562f
authored
Jun 17, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro-core
into mc
parents
5d43ab2b
ac2ab90c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
18 deletions
+25
-18
field.cpp
field.cpp
+1
-1
ocgapi.cpp
ocgapi.cpp
+10
-1
operations.cpp
operations.cpp
+13
-15
processor.cpp
processor.cpp
+1
-1
No files found.
field.cpp
View file @
df9d562f
...
...
@@ -3132,7 +3132,7 @@ int32 field::is_player_can_spsummon(effect* peffect, uint32 sumtype, uint8 sumpo
}
restore_lp_cost
();
if
(
sumpos
&
POS_FACEDOWN
&&
is_player_affected_by_effect
(
playerid
,
EFFECT_DEVINE_LIGHT
))
sumpos
=
(
sumpos
&
POS_FACEUP
)
|
(
sumpos
>>
1
);
sumpos
=
(
sumpos
&
POS_FACEUP
)
|
(
(
sumpos
&
POS_FACEDOWN
)
>>
1
);
effect_set
eset
;
filter_player_effect
(
playerid
,
EFFECT_CANNOT_SPECIAL_SUMMON
,
&
eset
);
for
(
int32
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
...
...
ocgapi.cpp
View file @
df9d562f
...
...
@@ -291,18 +291,22 @@ extern "C" DECL_DLLEXPORT int32 query_field_info(ptr pduel, byte* buf) {
duel
*
ptduel
=
(
duel
*
)
pduel
;
*
buf
++
=
MSG_RELOAD_FIELD
;
*
buf
++
=
ptduel
->
game_field
->
core
.
duel_rule
;
int32
ct
=
2
;
for
(
int
playerid
=
0
;
playerid
<
2
;
++
playerid
)
{
auto
&
player
=
ptduel
->
game_field
->
player
[
playerid
];
*
((
int
*
)(
buf
))
=
player
.
lp
;
buf
+=
4
;
ct
+=
4
;
for
(
auto
cit
=
player
.
list_mzone
.
begin
();
cit
!=
player
.
list_mzone
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
if
(
pcard
)
{
*
buf
++
=
1
;
*
buf
++
=
pcard
->
current
.
position
;
*
buf
++
=
pcard
->
xyz_materials
.
size
();
ct
+=
3
;
}
else
{
*
buf
++
=
0
;
ct
++
;
}
}
for
(
auto
cit
=
player
.
list_szone
.
begin
();
cit
!=
player
.
list_szone
.
end
();
++
cit
)
{
...
...
@@ -310,8 +314,10 @@ extern "C" DECL_DLLEXPORT int32 query_field_info(ptr pduel, byte* buf) {
if
(
pcard
)
{
*
buf
++
=
1
;
*
buf
++
=
pcard
->
current
.
position
;
ct
+=
2
;
}
else
{
*
buf
++
=
0
;
ct
++
;
}
}
*
buf
++
=
player
.
list_main
.
size
();
...
...
@@ -320,8 +326,10 @@ extern "C" DECL_DLLEXPORT int32 query_field_info(ptr pduel, byte* buf) {
*
buf
++
=
player
.
list_remove
.
size
();
*
buf
++
=
player
.
list_extra
.
size
();
*
buf
++
=
player
.
extra_p_count
;
ct
+=
6
;
}
*
buf
++
=
ptduel
->
game_field
->
core
.
current_chain
.
size
();
ct
++
;
for
(
auto
chit
=
ptduel
->
game_field
->
core
.
current_chain
.
begin
();
chit
!=
ptduel
->
game_field
->
core
.
current_chain
.
end
();
++
chit
)
{
effect
*
peffect
=
chit
->
triggering_effect
;
*
((
int
*
)(
buf
))
=
peffect
->
get_handler
()
->
data
.
code
;
...
...
@@ -333,8 +341,9 @@ extern "C" DECL_DLLEXPORT int32 query_field_info(ptr pduel, byte* buf) {
*
buf
++
=
chit
->
triggering_sequence
;
*
((
int
*
)(
buf
))
=
peffect
->
description
;
buf
+=
4
;
ct
+=
15
;
}
return
0
;
return
ct
;
}
extern
"C"
DECL_DLLEXPORT
void
set_responsei
(
ptr
pduel
,
int32
value
)
{
((
duel
*
)
pduel
)
->
set_responsei
(
value
);
...
...
operations.cpp
View file @
df9d562f
...
...
@@ -156,7 +156,7 @@ void field::special_summon_rule(uint32 sumplayer, card* target, uint32 summon_ty
}
void
field
::
special_summon
(
card_set
*
target
,
uint32
sumtype
,
uint32
sumplayer
,
uint32
playerid
,
uint32
nocheck
,
uint32
nolimit
,
uint32
positions
,
uint32
zone
)
{
if
((
positions
&
POS_FACEDOWN
)
&&
is_player_affected_by_effect
(
sumplayer
,
EFFECT_DEVINE_LIGHT
))
positions
=
(
positions
&
POS_FACEUP
)
|
(
positions
>>
1
);
positions
=
(
positions
&
POS_FACEUP
)
|
(
(
positions
&
POS_FACEDOWN
)
>>
1
);
for
(
auto
cit
=
target
->
begin
();
cit
!=
target
->
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
pcard
->
temp
.
reason
=
pcard
->
current
.
reason
;
...
...
@@ -175,7 +175,7 @@ void field::special_summon(card_set* target, uint32 sumtype, uint32 sumplayer, u
}
void
field
::
special_summon_step
(
card
*
target
,
uint32
sumtype
,
uint32
sumplayer
,
uint32
playerid
,
uint32
nocheck
,
uint32
nolimit
,
uint32
positions
,
uint32
zone
)
{
if
((
positions
&
POS_FACEDOWN
)
&&
is_player_affected_by_effect
(
sumplayer
,
EFFECT_DEVINE_LIGHT
))
positions
=
(
positions
&
POS_FACEUP
)
|
(
positions
>>
1
);
positions
=
(
positions
&
POS_FACEUP
)
|
(
(
positions
&
POS_FACEDOWN
)
>>
1
);
target
->
temp
.
reason
=
target
->
current
.
reason
;
target
->
temp
.
reason_effect
=
target
->
current
.
reason_effect
;
target
->
temp
.
reason_player
=
target
->
current
.
reason_player
;
...
...
@@ -1838,9 +1838,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
return
FALSE
;
}
case
11
:
{
uint8
targetplayer
=
target
->
current
.
controler
;
if
(
target
->
owner
!=
targetplayer
)
set_control
(
target
,
targetplayer
,
0
,
0
);
set_control
(
target
,
target
->
current
.
controler
,
0
,
0
);
core
.
phase_action
=
TRUE
;
target
->
current
.
reason
=
REASON_SUMMON
;
target
->
summon_player
=
sumplayer
;
...
...
@@ -2282,9 +2280,7 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint
return
FALSE
;
}
case
9
:
{
uint8
targetplayer
=
target
->
current
.
controler
;
if
(
target
->
owner
!=
targetplayer
)
set_control
(
target
,
targetplayer
,
0
,
0
);
set_control
(
target
,
target
->
current
.
controler
,
0
,
0
);
core
.
phase_action
=
TRUE
;
core
.
normalsummon_state_count
[
setplayer
]
++
;
check_card_counter
(
target
,
2
,
setplayer
);
...
...
@@ -2564,9 +2560,7 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card* target, uin
return
FALSE
;
}
case
5
:
{
uint8
targetplayer
=
target
->
current
.
controler
;
if
(
target
->
owner
!=
targetplayer
)
set_control
(
target
,
targetplayer
,
0
,
0
);
set_control
(
target
,
target
->
current
.
controler
,
0
,
0
);
core
.
phase_action
=
TRUE
;
target
->
current
.
reason_effect
=
core
.
units
.
begin
()
->
peffect
;
core
.
summoning_card
=
target
;
...
...
@@ -2759,8 +2753,7 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card* target, uin
pduel
->
write_buffer8
(
pcard
->
current
.
location
);
pduel
->
write_buffer8
(
pcard
->
current
.
sequence
);
pduel
->
write_buffer8
(
pcard
->
current
.
position
);
if
(
pcard
->
owner
!=
pcard
->
current
.
controler
)
set_control
(
pcard
,
pcard
->
current
.
controler
,
0
,
0
);
set_control
(
pcard
,
pcard
->
current
.
controler
,
0
,
0
);
if
(
pgroup
->
it
!=
pgroup
->
container
.
end
())
core
.
units
.
begin
()
->
step
=
22
;
return
FALSE
;
...
...
@@ -2928,8 +2921,7 @@ int32 field::special_summon_step(uint16 step, group* targets, card* target, uint
}
case
3
:
{
returns
.
ivalue
[
0
]
=
TRUE
;
if
(
target
->
owner
!=
target
->
current
.
controler
)
set_control
(
target
,
target
->
current
.
controler
,
0
,
0
);
set_control
(
target
,
target
->
current
.
controler
,
0
,
0
);
target
->
set_status
(
STATUS_SPSUMMON_STEP
,
TRUE
);
return
TRUE
;
}
...
...
@@ -3656,6 +3648,12 @@ int32 field::send_to(uint16 step, group * targets, effect * reason_effect, uint3
pcard
->
sendto_param
.
location
=
redirect
;
pcard
->
sendto_param
.
sequence
=
redirect_seq
;
dest
=
redirect
;
if
(
dest
==
LOCATION_REMOVED
)
{
if
(
pcard
->
sendto_param
.
position
&
POS_FACEDOWN_ATTACK
)
pcard
->
sendto_param
.
position
=
(
pcard
->
sendto_param
.
position
&
~
POS_FACEDOWN_ATTACK
)
|
POS_FACEUP_ATTACK
;
if
(
pcard
->
sendto_param
.
position
&
POS_FACEDOWN_DEFENSE
)
pcard
->
sendto_param
.
position
=
(
pcard
->
sendto_param
.
position
&
~
POS_FACEDOWN_DEFENSE
)
|
POS_FACEUP_DEFENSE
;
}
}
redirect
=
pcard
->
destination_redirect
(
dest
,
pcard
->
current
.
reason
);
if
(
redirect
)
{
...
...
processor.cpp
View file @
df9d562f
...
...
@@ -4989,7 +4989,7 @@ int32 field::refresh_location_info(uint16 step) {
filter_field_effect
(
EFFECT_DISABLE_FIELD
,
&
eset
);
for
(
int32
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
value
=
eset
[
i
]
->
get_value
();
if
(
value
)
{
if
(
value
&&
!
eset
[
i
]
->
is_flag
(
EFFECT_FLAG_REPEAT
)
)
{
player
[
0
].
disabled_location
|=
value
&
0x1f7f
;
player
[
1
].
disabled_location
|=
(
value
>>
16
)
&
0x1f7f
;
}
else
...
...
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