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
cb52dcb1
Commit
cb52dcb1
authored
Mar 14, 2017
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix xmaterial_effect
parent
21824200
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
7 deletions
+19
-7
card.cpp
card.cpp
+16
-2
effect.cpp
effect.cpp
+2
-2
libduel.cpp
libduel.cpp
+0
-1
processor.cpp
processor.cpp
+1
-2
No files found.
card.cpp
View file @
cb52dcb1
...
@@ -1921,6 +1921,8 @@ void card::filter_effect(int32 code, effect_set* eset, uint8 sort) {
...
@@ -1921,6 +1921,8 @@ void card::filter_effect(int32 code, effect_set* eset, uint8 sort) {
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
peffect
=
rg
.
first
->
second
;
peffect
=
rg
.
first
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
eset
->
add_item
(
peffect
);
eset
->
add_item
(
peffect
);
}
}
...
@@ -1957,8 +1959,12 @@ void card::filter_single_continuous_effect(int32 code, effect_set* eset, uint8 s
...
@@ -1957,8 +1959,12 @@ void card::filter_single_continuous_effect(int32 code, effect_set* eset, uint8 s
}
}
for
(
auto
cit
=
xyz_materials
.
begin
();
cit
!=
xyz_materials
.
end
();
++
cit
)
{
for
(
auto
cit
=
xyz_materials
.
begin
();
cit
!=
xyz_materials
.
end
();
++
cit
)
{
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
eset
->
add_item
(
rg
.
first
->
second
);
effect
*
peffect
=
rg
.
first
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
eset
->
add_item
(
peffect
);
}
}
}
if
(
sort
)
if
(
sort
)
eset
->
sort
();
eset
->
sort
();
...
@@ -1985,6 +1991,8 @@ void card::filter_immune_effect() {
...
@@ -1985,6 +1991,8 @@ void card::filter_immune_effect() {
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
EFFECT_IMMUNE_EFFECT
);
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
EFFECT_IMMUNE_EFFECT
);
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
peffect
=
rg
.
first
->
second
;
peffect
=
rg
.
first
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
peffect
->
is_available
())
if
(
peffect
->
is_available
())
immune_effect
.
add_item
(
peffect
);
immune_effect
.
add_item
(
peffect
);
}
}
...
@@ -2178,6 +2186,8 @@ effect* card::is_affected_by_effect(int32 code) {
...
@@ -2178,6 +2186,8 @@ effect* card::is_affected_by_effect(int32 code) {
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
peffect
=
rg
.
first
->
second
;
peffect
=
rg
.
first
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
return
peffect
;
return
peffect
;
}
}
...
@@ -2212,6 +2222,8 @@ effect* card::is_affected_by_effect(int32 code, card* target) {
...
@@ -2212,6 +2222,8 @@ effect* card::is_affected_by_effect(int32 code, card* target) {
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
code
);
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
peffect
=
rg
.
first
->
second
;
peffect
=
rg
.
first
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
)
&&
peffect
->
get_value
(
target
))
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
)
&&
peffect
->
get_value
(
target
))
return
peffect
;
return
peffect
;
}
}
...
@@ -2239,6 +2251,8 @@ effect* card::check_control_effect() {
...
@@ -2239,6 +2251,8 @@ effect* card::check_control_effect() {
auto
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
EFFECT_SET_CONTROL
);
auto
rg
=
(
*
cit
)
->
xmaterial_effect
.
equal_range
(
EFFECT_SET_CONTROL
);
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
for
(;
rg
.
first
!=
rg
.
second
;
++
rg
.
first
)
{
effect
*
peffect
=
rg
.
first
->
second
;
effect
*
peffect
=
rg
.
first
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
!
ret_effect
||
peffect
->
id
>
ret_effect
->
id
)
if
(
!
ret_effect
||
peffect
->
id
>
ret_effect
->
id
)
ret_effect
=
peffect
;
ret_effect
=
peffect
;
}
}
...
...
effect.cpp
View file @
cb52dcb1
...
@@ -423,7 +423,7 @@ int32 effect::is_activate_check(uint8 playerid, const tevent& e, int32 neglect_c
...
@@ -423,7 +423,7 @@ int32 effect::is_activate_check(uint8 playerid, const tevent& e, int32 neglect_c
int32
effect
::
is_target
(
card
*
pcard
)
{
int32
effect
::
is_target
(
card
*
pcard
)
{
if
(
type
&
EFFECT_TYPE_ACTIONS
)
if
(
type
&
EFFECT_TYPE_ACTIONS
)
return
FALSE
;
return
FALSE
;
if
(
type
&
(
EFFECT_TYPE_SINGLE
|
EFFECT_TYPE_EQUIP
|
EFFECT_TYPE_XMATERIAL
))
if
(
type
&
(
EFFECT_TYPE_SINGLE
|
EFFECT_TYPE_EQUIP
|
EFFECT_TYPE_XMATERIAL
)
&&
!
(
type
&
EFFECT_TYPE_FIELD
)
)
return
TRUE
;
return
TRUE
;
if
(
pcard
&&
!
is_flag
(
EFFECT_FLAG_SET_AVAILABLE
)
&&
(
pcard
->
current
.
location
&
LOCATION_ONFIELD
)
if
(
pcard
&&
!
is_flag
(
EFFECT_FLAG_SET_AVAILABLE
)
&&
(
pcard
->
current
.
location
&
LOCATION_ONFIELD
)
&&
!
pcard
->
is_position
(
POS_FACEUP
))
&&
!
pcard
->
is_position
(
POS_FACEUP
))
...
@@ -680,7 +680,7 @@ uint8 effect::get_handler_player() {
...
@@ -680,7 +680,7 @@ uint8 effect::get_handler_player() {
}
}
int32
effect
::
in_range
(
int32
loc
,
int32
seq
)
{
int32
effect
::
in_range
(
int32
loc
,
int32
seq
)
{
if
(
type
&
EFFECT_TYPE_XMATERIAL
)
if
(
type
&
EFFECT_TYPE_XMATERIAL
)
return
(
int32
)(
!!
handler
->
overlay_target
)
;
return
handler
->
overlay_target
?
TRUE
:
FALSE
;
if
(
loc
!=
LOCATION_SZONE
)
if
(
loc
!=
LOCATION_SZONE
)
return
range
&
loc
;
return
range
&
loc
;
if
(
seq
<
5
)
if
(
seq
<
5
)
...
...
libduel.cpp
View file @
cb52dcb1
...
@@ -1187,7 +1187,6 @@ int32 scriptlib::duel_shuffle_setcard(lua_State *L) {
...
@@ -1187,7 +1187,6 @@ int32 scriptlib::duel_shuffle_setcard(lua_State *L) {
uint8
seq
[
5
];
uint8
seq
[
5
];
uint8
tp
=
2
;
uint8
tp
=
2
;
uint8
ct
=
0
;
uint8
ct
=
0
;
card
*
pcard
=
0
;
for
(
auto
cit
=
pgroup
->
container
.
begin
();
cit
!=
pgroup
->
container
.
end
();
++
cit
)
{
for
(
auto
cit
=
pgroup
->
container
.
begin
();
cit
!=
pgroup
->
container
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
card
*
pcard
=
*
cit
;
if
(
pcard
->
current
.
location
!=
LOCATION_MZONE
||
(
pcard
->
current
.
position
&
POS_FACEUP
)
||
(
tp
!=
2
&&
(
pcard
->
current
.
controler
!=
tp
)))
if
(
pcard
->
current
.
location
!=
LOCATION_MZONE
||
(
pcard
->
current
.
position
&
POS_FACEUP
)
||
(
tp
!=
2
&&
(
pcard
->
current
.
controler
!=
tp
)))
...
...
processor.cpp
View file @
cb52dcb1
...
@@ -5133,9 +5133,8 @@ int32 field::adjust_step(uint16 step) {
...
@@ -5133,9 +5133,8 @@ int32 field::adjust_step(uint16 step) {
core
.
control_adjust_set
[
0
].
clear
();
core
.
control_adjust_set
[
0
].
clear
();
core
.
control_adjust_set
[
1
].
clear
();
core
.
control_adjust_set
[
1
].
clear
();
effect_set
eset
;
effect_set
eset
;
uint32
res
=
0
;
filter_field_effect
(
EFFECT_REMOVE_BRAINWASHING
,
&
eset
,
FALSE
);
filter_field_effect
(
EFFECT_REMOVE_BRAINWASHING
,
&
eset
,
FALSE
);
res
=
eset
.
size
()
?
TRUE
:
FALSE
;
uint32
res
=
eset
.
size
()
?
TRUE
:
FALSE
;
if
(
res
)
{
if
(
res
)
{
for
(
uint8
p
=
0
;
p
<
2
;
++
p
)
{
for
(
uint8
p
=
0
;
p
<
2
;
++
p
)
{
for
(
uint8
i
=
0
;
i
<
5
;
++
i
)
{
for
(
uint8
i
=
0
;
i
<
5
;
++
i
)
{
...
...
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