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
04aa9301
Commit
04aa9301
authored
Dec 15, 2023
by
Chen Bill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update class field
parent
4f0639dd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
27 deletions
+27
-27
field.cpp
field.cpp
+27
-27
No files found.
field.cpp
View file @
04aa9301
...
@@ -66,11 +66,11 @@ field::field(duel* pduel) {
...
@@ -66,11 +66,11 @@ field::field(duel* pduel) {
player
[
i
].
tag_extra_p_count
=
0
;
player
[
i
].
tag_extra_p_count
=
0
;
player
[
i
].
list_mzone
.
resize
(
7
,
0
);
player
[
i
].
list_mzone
.
resize
(
7
,
0
);
player
[
i
].
list_szone
.
resize
(
8
,
0
);
player
[
i
].
list_szone
.
resize
(
8
,
0
);
player
[
i
].
list_main
.
reserve
(
45
);
player
[
i
].
list_main
.
reserve
(
60
);
player
[
i
].
list_hand
.
reserve
(
1
0
);
player
[
i
].
list_hand
.
reserve
(
6
0
);
player
[
i
].
list_grave
.
reserve
(
30
);
player
[
i
].
list_grave
.
reserve
(
75
);
player
[
i
].
list_remove
.
reserve
(
30
);
player
[
i
].
list_remove
.
reserve
(
75
);
player
[
i
].
list_extra
.
reserve
(
15
);
player
[
i
].
list_extra
.
reserve
(
30
);
}
}
returns
=
{
0
};
returns
=
{
0
};
temp_card
=
nullptr
;
temp_card
=
nullptr
;
...
@@ -200,9 +200,9 @@ void field::add_card(uint8 playerid, card* pcard, uint8 location, uint8 sequence
...
@@ -200,9 +200,9 @@ void field::add_card(uint8 playerid, card* pcard, uint8 location, uint8 sequence
pcard
->
unique_fieldid
=
UINT_MAX
;
pcard
->
unique_fieldid
=
UINT_MAX
;
pcard
->
turnid
=
infos
.
turn_id
;
pcard
->
turnid
=
infos
.
turn_id
;
if
(
location
==
LOCATION_MZONE
)
if
(
location
==
LOCATION_MZONE
)
player
[
playerid
].
used_location
|=
1
<<
sequence
;
player
[
playerid
].
used_location
|=
0x
1
<<
sequence
;
if
(
location
==
LOCATION_SZONE
)
if
(
location
==
LOCATION_SZONE
)
player
[
playerid
].
used_location
|=
256
<<
sequence
;
player
[
playerid
].
used_location
|=
0x100
<<
sequence
;
}
}
void
field
::
remove_card
(
card
*
pcard
)
{
void
field
::
remove_card
(
card
*
pcard
)
{
if
(
pcard
->
current
.
controler
==
PLAYER_NONE
||
pcard
->
current
.
location
==
0
)
if
(
pcard
->
current
.
controler
==
PLAYER_NONE
||
pcard
->
current
.
location
==
0
)
...
@@ -243,9 +243,9 @@ void field::remove_card(card* pcard) {
...
@@ -243,9 +243,9 @@ void field::remove_card(card* pcard) {
}
}
pcard
->
cancel_field_effect
();
pcard
->
cancel_field_effect
();
if
(
pcard
->
current
.
location
==
LOCATION_MZONE
)
if
(
pcard
->
current
.
location
==
LOCATION_MZONE
)
player
[
playerid
].
used_location
&=
~
(
1
<<
pcard
->
current
.
sequence
);
player
[
playerid
].
used_location
&=
~
(
0x
1
<<
pcard
->
current
.
sequence
);
if
(
pcard
->
current
.
location
==
LOCATION_SZONE
)
if
(
pcard
->
current
.
location
==
LOCATION_SZONE
)
player
[
playerid
].
used_location
&=
~
(
256
<<
pcard
->
current
.
sequence
);
player
[
playerid
].
used_location
&=
~
(
0x100
<<
pcard
->
current
.
sequence
);
pcard
->
previous
.
controler
=
pcard
->
current
.
controler
;
pcard
->
previous
.
controler
=
pcard
->
current
.
controler
;
pcard
->
previous
.
location
=
pcard
->
current
.
location
;
pcard
->
previous
.
location
=
pcard
->
current
.
location
;
pcard
->
previous
.
sequence
=
pcard
->
current
.
sequence
;
pcard
->
previous
.
sequence
=
pcard
->
current
.
sequence
;
...
@@ -321,9 +321,9 @@ void field::move_card(uint8 playerid, card* pcard, uint8 location, uint8 sequenc
...
@@ -321,9 +321,9 @@ void field::move_card(uint8 playerid, card* pcard, uint8 location, uint8 sequenc
pcard
->
current
.
sequence
=
sequence
;
pcard
->
current
.
sequence
=
sequence
;
}
else
{
}
else
{
player
[
preplayer
].
list_szone
[
presequence
]
=
0
;
player
[
preplayer
].
list_szone
[
presequence
]
=
0
;
player
[
preplayer
].
used_location
&=
~
(
256
<<
presequence
);
player
[
preplayer
].
used_location
&=
~
(
0x100
<<
presequence
);
player
[
playerid
].
list_szone
[
sequence
]
=
pcard
;
player
[
playerid
].
list_szone
[
sequence
]
=
pcard
;
player
[
playerid
].
used_location
|=
256
<<
sequence
;
player
[
playerid
].
used_location
|=
0x100
<<
sequence
;
pcard
->
current
.
controler
=
playerid
;
pcard
->
current
.
controler
=
playerid
;
pcard
->
current
.
sequence
=
sequence
;
pcard
->
current
.
sequence
=
sequence
;
}
}
...
@@ -436,13 +436,13 @@ void field::swap_card(card* pcard1, card* pcard2, uint8 new_sequence1, uint8 new
...
@@ -436,13 +436,13 @@ void field::swap_card(card* pcard1, card* pcard2, uint8 new_sequence1, uint8 new
player
[
p1
].
used_location
|=
1
<<
new_sequence1
;
player
[
p1
].
used_location
|=
1
<<
new_sequence1
;
}
else
if
(
l1
==
LOCATION_SZONE
)
{
}
else
if
(
l1
==
LOCATION_SZONE
)
{
player
[
p1
].
list_szone
[
s1
]
=
0
;
player
[
p1
].
list_szone
[
s1
]
=
0
;
player
[
p1
].
used_location
&=
~
(
256
<<
s1
);
player
[
p1
].
used_location
&=
~
(
0x100
<<
s1
);
player
[
p2
].
list_szone
[
s2
]
=
0
;
player
[
p2
].
list_szone
[
s2
]
=
0
;
player
[
p2
].
used_location
&=
~
(
256
<<
s2
);
player
[
p2
].
used_location
&=
~
(
0x100
<<
s2
);
player
[
p2
].
list_szone
[
new_sequence2
]
=
pcard1
;
player
[
p2
].
list_szone
[
new_sequence2
]
=
pcard1
;
player
[
p2
].
used_location
|=
256
<<
new_sequence2
;
player
[
p2
].
used_location
|=
0x100
<<
new_sequence2
;
player
[
p1
].
list_szone
[
new_sequence1
]
=
pcard2
;
player
[
p1
].
list_szone
[
new_sequence1
]
=
pcard2
;
player
[
p1
].
used_location
|=
256
<<
new_sequence1
;
player
[
p1
].
used_location
|=
0x100
<<
new_sequence1
;
}
}
}
else
{
}
else
{
remove_card
(
pcard1
);
remove_card
(
pcard1
);
...
@@ -513,21 +513,21 @@ card* field::get_field_card(uint32 playerid, uint32 location, uint32 sequence) {
...
@@ -513,21 +513,21 @@ card* field::get_field_card(uint32 playerid, uint32 location, uint32 sequence) {
if
(
sequence
<
player
[
playerid
].
list_mzone
.
size
())
if
(
sequence
<
player
[
playerid
].
list_mzone
.
size
())
return
player
[
playerid
].
list_mzone
[
sequence
];
return
player
[
playerid
].
list_mzone
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_SZONE
:
{
case
LOCATION_SZONE
:
{
if
(
sequence
<
player
[
playerid
].
list_szone
.
size
())
if
(
sequence
<
player
[
playerid
].
list_szone
.
size
())
return
player
[
playerid
].
list_szone
[
sequence
];
return
player
[
playerid
].
list_szone
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_FZONE
:
{
case
LOCATION_FZONE
:
{
if
(
sequence
==
0
)
if
(
sequence
==
0
)
return
player
[
playerid
].
list_szone
[
5
];
return
player
[
playerid
].
list_szone
[
5
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_PZONE
:
{
case
LOCATION_PZONE
:
{
...
@@ -538,46 +538,46 @@ card* field::get_field_card(uint32 playerid, uint32 location, uint32 sequence) {
...
@@ -538,46 +538,46 @@ card* field::get_field_card(uint32 playerid, uint32 location, uint32 sequence) {
card
*
pcard
=
player
[
playerid
].
list_szone
[
core
.
duel_rule
>=
4
?
4
:
7
];
card
*
pcard
=
player
[
playerid
].
list_szone
[
core
.
duel_rule
>=
4
?
4
:
7
];
return
pcard
&&
pcard
->
current
.
pzone
?
pcard
:
0
;
return
pcard
&&
pcard
->
current
.
pzone
?
pcard
:
0
;
}
else
}
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_DECK
:
{
case
LOCATION_DECK
:
{
if
(
sequence
<
player
[
playerid
].
list_main
.
size
())
if
(
sequence
<
player
[
playerid
].
list_main
.
size
())
return
player
[
playerid
].
list_main
[
sequence
];
return
player
[
playerid
].
list_main
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_HAND
:
{
case
LOCATION_HAND
:
{
if
(
sequence
<
player
[
playerid
].
list_hand
.
size
())
if
(
sequence
<
player
[
playerid
].
list_hand
.
size
())
return
player
[
playerid
].
list_hand
[
sequence
];
return
player
[
playerid
].
list_hand
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_GRAVE
:
{
case
LOCATION_GRAVE
:
{
if
(
sequence
<
player
[
playerid
].
list_grave
.
size
())
if
(
sequence
<
player
[
playerid
].
list_grave
.
size
())
return
player
[
playerid
].
list_grave
[
sequence
];
return
player
[
playerid
].
list_grave
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_REMOVED
:
{
case
LOCATION_REMOVED
:
{
if
(
sequence
<
player
[
playerid
].
list_remove
.
size
())
if
(
sequence
<
player
[
playerid
].
list_remove
.
size
())
return
player
[
playerid
].
list_remove
[
sequence
];
return
player
[
playerid
].
list_remove
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
case
LOCATION_EXTRA
:
{
case
LOCATION_EXTRA
:
{
if
(
sequence
<
player
[
playerid
].
list_extra
.
size
())
if
(
sequence
<
player
[
playerid
].
list_extra
.
size
())
return
player
[
playerid
].
list_extra
[
sequence
];
return
player
[
playerid
].
list_extra
[
sequence
];
else
else
return
0
;
return
nullptr
;
break
;
break
;
}
}
}
}
return
0
;
return
nullptr
;
}
}
int32
field
::
is_location_useable
(
uint32
playerid
,
uint32
location
,
uint32
sequence
)
{
int32
field
::
is_location_useable
(
uint32
playerid
,
uint32
location
,
uint32
sequence
)
{
uint32
flag
=
player
[
playerid
].
disabled_location
|
player
[
playerid
].
used_location
;
uint32
flag
=
player
[
playerid
].
disabled_location
|
player
[
playerid
].
used_location
;
...
@@ -1694,7 +1694,7 @@ effect* field::is_player_affected_by_effect(uint8 playerid, uint32 code) {
...
@@ -1694,7 +1694,7 @@ effect* field::is_player_affected_by_effect(uint8 playerid, uint32 code) {
if
(
peffect
->
is_target_player
(
playerid
)
&&
peffect
->
is_available
())
if
(
peffect
->
is_target_player
(
playerid
)
&&
peffect
->
is_available
())
return
peffect
;
return
peffect
;
}
}
return
0
;
return
nullptr
;
}
}
int32
field
::
get_release_list
(
uint8
playerid
,
card_set
*
release_list
,
card_set
*
ex_list
,
card_set
*
ex_list_oneof
,
int32
use_con
,
int32
use_hand
,
int32
fun
,
int32
exarg
,
card
*
exc
,
group
*
exg
)
{
int32
field
::
get_release_list
(
uint8
playerid
,
card_set
*
release_list
,
card_set
*
ex_list
,
card_set
*
ex_list_oneof
,
int32
use_con
,
int32
use_hand
,
int32
fun
,
int32
exarg
,
card
*
exc
,
group
*
exg
)
{
uint32
rcount
=
0
;
uint32
rcount
=
0
;
...
@@ -2195,7 +2195,7 @@ effect* field::check_unique_onfield(card* pcard, uint8 controler, uint8 location
...
@@ -2195,7 +2195,7 @@ effect* field::check_unique_onfield(card* pcard, uint8 controler, uint8 location
cset
.
insert
(
pcard
);
cset
.
insert
(
pcard
);
if
(
cset
.
size
()
>=
2
)
if
(
cset
.
size
()
>=
2
)
return
pcard
->
unique_effect
;
return
pcard
->
unique_effect
;
return
0
;
return
nullptr
;
}
}
int32
field
::
check_spsummon_once
(
card
*
pcard
,
uint8
playerid
)
{
int32
field
::
check_spsummon_once
(
card
*
pcard
,
uint8
playerid
)
{
if
(
pcard
->
spsummon_code
==
0
)
if
(
pcard
->
spsummon_code
==
0
)
...
...
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