Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
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
Commits
86e1836a
Commit
86e1836a
authored
Feb 04, 2025
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into develop
parents
fae389eb
377824c5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
47 deletions
+54
-47
gframe/client_card.cpp
gframe/client_card.cpp
+17
-15
gframe/client_field.cpp
gframe/client_field.cpp
+5
-2
gframe/event_handler.cpp
gframe/event_handler.cpp
+32
-30
No files found.
gframe/client_card.cpp
View file @
86e1836a
...
...
@@ -220,27 +220,29 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
return
cp1
<
cp2
;
if
(
c1
->
location
!=
c2
->
location
)
return
c1
->
location
<
c2
->
location
;
if
(
c1
->
location
&
LOCATION_OVERLAY
)
{
if
(
c1
->
location
==
LOCATION_OVERLAY
)
{
if
(
c1
->
overlayTarget
!=
c2
->
overlayTarget
)
return
c1
->
overlayTarget
->
sequence
<
c2
->
overlayTarget
->
sequence
;
else
return
c1
->
sequence
<
c2
->
sequence
;
}
else
{
if
(
c1
->
location
&
(
LOCATION_DECK
|
LOCATION_GRAVE
|
LOCATION_REMOVED
|
LOCATION_EXTRA
))
{
auto
it1
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c1
](
const
ChainInfo
&
ch
)
{
return
c1
==
ch
.
chain_card
||
ch
.
target
.
find
(
c1
)
!=
ch
.
target
.
end
();
});
auto
it2
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c2
](
const
ChainInfo
&
ch
)
{
return
c2
==
ch
.
chain_card
||
ch
.
target
.
find
(
c2
)
!=
ch
.
target
.
end
(
);
});
if
(
it1
!=
mainGame
->
dField
.
chains
.
rend
()
||
it2
!=
mainGame
->
dField
.
chains
.
rend
())
{
return
it1
<
it2
;
}
return
c1
->
sequence
>
c2
->
sequence
;
else
if
(
c1
->
location
==
LOCATION_DECK
)
{
return
c1
->
sequence
>
c2
->
sequence
;
}
else
if
(
c1
->
location
&
(
LOCATION_GRAVE
|
LOCATION_REMOVED
|
LOCATION_EXTRA
))
{
auto
it1
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c1
](
const
ChainInfo
&
ch
)
{
return
c1
==
ch
.
chain_card
||
ch
.
target
.
find
(
c1
)
!=
ch
.
target
.
end
();
}
);
auto
it2
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c2
](
const
ChainInfo
&
ch
)
{
return
c2
==
ch
.
chain_card
||
ch
.
target
.
find
(
c2
)
!=
ch
.
target
.
end
();
})
;
if
(
it1
!=
mainGame
->
dField
.
chains
.
rend
()
||
it2
!=
mainGame
->
dField
.
chains
.
rend
())
{
return
it1
<
it2
;
}
else
return
c1
->
sequence
<
c2
->
sequence
;
return
c1
->
sequence
>
c2
->
sequence
;
}
else
{
return
c1
->
sequence
<
c2
->
sequence
;
}
}
}
gframe/client_field.cpp
View file @
86e1836a
...
...
@@ -127,7 +127,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
deck
[
player
].
push_back
(
pcard
);
pcard
->
owner
=
player
;
pcard
->
controler
=
player
;
pcard
->
location
=
0x1
;
pcard
->
location
=
LOCATION_DECK
;
pcard
->
sequence
=
i
;
pcard
->
position
=
POS_FACEDOWN_DEFENSE
;
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
,
true
);
...
...
@@ -137,7 +137,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
extra
[
player
].
push_back
(
pcard
);
pcard
->
owner
=
player
;
pcard
->
controler
=
player
;
pcard
->
location
=
0x40
;
pcard
->
location
=
LOCATION_EXTRA
;
pcard
->
sequence
=
i
;
pcard
->
position
=
POS_FACEDOWN_DEFENSE
;
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
,
true
);
...
...
@@ -202,6 +202,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
pcard
->
sequence
=
0
;
}
pcard
->
is_reversed
=
false
;
pcard
->
ClearData
();
pcard
->
ClearTarget
();
SetShowMark
(
pcard
,
false
);
break
;
}
case
LOCATION_HAND
:
{
...
...
gframe/event_handler.cpp
View file @
86e1836a
...
...
@@ -2419,19 +2419,19 @@ void ClientField::ShowCancelOrFinishButton(int buttonOp) {
void
ClientField
::
SetShowMark
(
ClientCard
*
pcard
,
bool
enable
)
{
if
(
pcard
->
equipTarget
)
pcard
->
equipTarget
->
is_showequip
=
enable
;
for
(
auto
cit
=
pcard
->
equipped
.
begin
();
cit
!=
pcard
->
equipped
.
end
();
++
cit
)
(
*
cit
)
->
is_showequip
=
enable
;
for
(
auto
cit
=
pcard
->
cardTarget
.
begin
();
cit
!=
pcard
->
cardTarget
.
end
();
++
ci
t
)
(
*
cit
)
->
is_showtarget
=
enable
;
for
(
auto
cit
=
pcard
->
ownerTarget
.
begin
();
cit
!=
pcard
->
ownerTarget
.
end
();
++
ci
t
)
(
*
cit
)
->
is_showtarget
=
enable
;
for
(
auto
chit
=
chains
.
begin
();
chit
!=
chains
.
end
();
++
chit
)
{
if
(
pcard
==
chit
->
chain_card
)
{
for
(
auto
tgit
=
chit
->
target
.
begin
();
tgit
!=
chit
->
target
.
end
();
++
tgi
t
)
(
*
tgit
)
->
is_showchaintarget
=
enable
;
for
(
auto
&
card
:
pcard
->
equipped
)
card
->
is_showequip
=
enable
;
for
(
auto
&
card
:
pcard
->
cardTarge
t
)
card
->
is_showtarget
=
enable
;
for
(
auto
&
card
:
pcard
->
ownerTarge
t
)
card
->
is_showtarget
=
enable
;
for
(
auto
&
ch
:
chains
)
{
if
(
pcard
==
ch
.
chain_card
)
{
for
(
auto
&
tg
:
ch
.
targe
t
)
tg
->
is_showchaintarget
=
enable
;
}
if
(
chit
->
target
.
find
(
pcard
)
!=
chit
->
target
.
end
())
ch
it
->
chain_card
->
is_showchaintarget
=
enable
;
if
(
ch
.
target
.
find
(
pcard
)
!=
ch
.
target
.
end
())
ch
.
chain_card
->
is_showchaintarget
=
enable
;
}
}
void
ClientField
::
ShowCardInfoInList
(
ClientCard
*
pcard
,
irr
::
gui
::
IGUIElement
*
element
,
irr
::
gui
::
IGUIElement
*
parent
)
{
...
...
@@ -2440,26 +2440,28 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
if
(
pcard
->
code
)
{
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
}
if
(
pcard
->
overlayTarget
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
225
),
dataManager
.
GetName
(
pcard
->
overlayTarget
->
code
),
pcard
->
overlayTarget
->
sequence
+
1
);
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
if
((
pcard
->
status
&
STATUS_PROC_COMPLETE
)
&&
(
pcard
->
type
&
(
TYPE_RITUAL
|
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
|
TYPE_SPSUMMON
)))
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
for
(
auto
iter
=
pcard
->
desc_hints
.
begin
();
iter
!=
pcard
->
desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
}
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
auto
chit
=
chains
[
i
];
if
(
pcard
==
chit
.
chain_card
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
216
),
i
+
1
);
if
(
pcard
->
location
!=
LOCATION_DECK
)
{
if
(
pcard
->
overlayTarget
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
225
),
dataManager
.
GetName
(
pcard
->
overlayTarget
->
code
),
pcard
->
overlayTarget
->
sequence
+
1
);
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
if
(
chit
.
target
.
find
(
pcard
)
!=
chit
.
target
.
end
())
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
217
),
i
+
1
,
dataManager
.
GetName
(
chit
.
chain_card
->
code
));
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
if
((
pcard
->
status
&
STATUS_PROC_COMPLETE
)
&&
(
pcard
->
type
&
(
TYPE_RITUAL
|
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
|
TYPE_SPSUMMON
)))
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
for
(
auto
iter
=
pcard
->
desc_hints
.
begin
();
iter
!=
pcard
->
desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
}
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
const
auto
&
chit
=
chains
[
i
];
if
(
pcard
==
chit
.
chain_card
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
216
),
i
+
1
);
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
if
(
chit
.
target
.
find
(
pcard
)
!=
chit
.
target
.
end
())
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
217
),
i
+
1
,
dataManager
.
GetName
(
chit
.
chain_card
->
code
));
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
}
}
if
(
str
.
length
()
>
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