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
75bbf24b
Commit
75bbf24b
authored
Dec 16, 2023
by
Chen Bill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clear data while face-down
parent
1b54a189
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
103 deletions
+94
-103
gframe/client_card.cpp
gframe/client_card.cpp
+38
-50
gframe/client_card.h
gframe/client_card.h
+52
-50
gframe/client_field.cpp
gframe/client_field.cpp
+4
-3
No files found.
gframe/client_card.cpp
View file @
75bbf24b
...
@@ -5,51 +5,7 @@
...
@@ -5,51 +5,7 @@
namespace
ygo
{
namespace
ygo
{
ClientCard
::
ClientCard
()
{
ClientCard
::
ClientCard
()
{}
curAlpha
=
255
;
dAlpha
=
0
;
aniFrame
=
0
;
is_moving
=
false
;
is_fading
=
false
;
is_hovered
=
false
;
is_selectable
=
false
;
is_selected
=
false
;
is_showequip
=
false
;
is_showtarget
=
false
;
is_showchaintarget
=
false
;
is_highlighting
=
false
;
status
=
0
;
is_reversed
=
false
;
cmdFlag
=
0
;
code
=
0
;
chain_code
=
0
;
location
=
0
;
type
=
0
;
alias
=
0
;
level
=
0
;
rank
=
0
;
link
=
0
;
race
=
0
;
attribute
=
0
;
attack
=
0
;
defense
=
0
;
base_attack
=
0
;
base_defense
=
0
;
lscale
=
0
;
rscale
=
0
;
link_marker
=
0
;
position
=
0
;
cHint
=
0
;
chValue
=
0
;
atkstring
[
0
]
=
0
;
defstring
[
0
]
=
0
;
lvstring
[
0
]
=
0
;
linkstring
[
0
]
=
0
;
rscstring
[
0
]
=
0
;
lscstring
[
0
]
=
0
;
overlayTarget
=
0
;
equipTarget
=
0
;
}
void
ClientCard
::
SetCode
(
int
code
)
{
void
ClientCard
::
SetCode
(
int
code
)
{
if
((
location
==
LOCATION_HAND
)
&&
(
this
->
code
!=
(
unsigned
int
)
code
))
{
if
((
location
==
LOCATION_HAND
)
&&
(
this
->
code
!=
(
unsigned
int
)
code
))
{
this
->
code
=
code
;
this
->
code
=
code
;
...
@@ -59,8 +15,10 @@ void ClientCard::SetCode(int code) {
...
@@ -59,8 +15,10 @@ void ClientCard::SetCode(int code) {
}
}
void
ClientCard
::
UpdateInfo
(
unsigned
char
*
buf
)
{
void
ClientCard
::
UpdateInfo
(
unsigned
char
*
buf
)
{
int
flag
=
BufferIO
::
ReadInt32
(
buf
);
int
flag
=
BufferIO
::
ReadInt32
(
buf
);
if
(
flag
==
0
)
if
(
flag
==
0
)
{
ClearData
();
return
;
return
;
}
int
pdata
;
int
pdata
;
if
(
flag
&
QUERY_CODE
)
{
if
(
flag
&
QUERY_CODE
)
{
pdata
=
BufferIO
::
ReadInt32
(
buf
);
pdata
=
BufferIO
::
ReadInt32
(
buf
);
...
@@ -133,9 +91,11 @@ void ClientCard::UpdateInfo(unsigned char* buf) {
...
@@ -133,9 +91,11 @@ void ClientCard::UpdateInfo(unsigned char* buf) {
int
s
=
BufferIO
::
ReadInt8
(
buf
);
int
s
=
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
ClientCard
*
ecard
=
mainGame
->
dField
.
GetCard
(
mainGame
->
LocalPlayer
(
c
),
l
,
s
);
ClientCard
*
ecard
=
mainGame
->
dField
.
GetCard
(
mainGame
->
LocalPlayer
(
c
),
l
,
s
);
if
(
ecard
)
{
equipTarget
=
ecard
;
equipTarget
=
ecard
;
ecard
->
equipped
.
insert
(
this
);
ecard
->
equipped
.
insert
(
this
);
}
}
}
if
(
flag
&
QUERY_TARGET_CARD
)
{
if
(
flag
&
QUERY_TARGET_CARD
)
{
int
count
=
BufferIO
::
ReadInt32
(
buf
);
int
count
=
BufferIO
::
ReadInt32
(
buf
);
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
...
@@ -144,10 +104,12 @@ void ClientCard::UpdateInfo(unsigned char* buf) {
...
@@ -144,10 +104,12 @@ void ClientCard::UpdateInfo(unsigned char* buf) {
int
s
=
BufferIO
::
ReadInt8
(
buf
);
int
s
=
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
BufferIO
::
ReadInt8
(
buf
);
ClientCard
*
tcard
=
mainGame
->
dField
.
GetCard
(
mainGame
->
LocalPlayer
(
c
),
l
,
s
);
ClientCard
*
tcard
=
mainGame
->
dField
.
GetCard
(
mainGame
->
LocalPlayer
(
c
),
l
,
s
);
if
(
tcard
)
{
cardTarget
.
insert
(
tcard
);
cardTarget
.
insert
(
tcard
);
tcard
->
ownerTarget
.
insert
(
this
);
tcard
->
ownerTarget
.
insert
(
this
);
}
}
}
}
}
if
(
flag
&
QUERY_OVERLAY_CARD
)
{
if
(
flag
&
QUERY_OVERLAY_CARD
)
{
int
count
=
BufferIO
::
ReadInt32
(
buf
);
int
count
=
BufferIO
::
ReadInt32
(
buf
);
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
...
@@ -198,6 +160,32 @@ void ClientCard::ClearTarget() {
...
@@ -198,6 +160,32 @@ void ClientCard::ClearTarget() {
cardTarget
.
clear
();
cardTarget
.
clear
();
ownerTarget
.
clear
();
ownerTarget
.
clear
();
}
}
void
ClientCard
::
ClearData
()
{
alias
=
0
;
type
=
0
;
level
=
0
;
rank
=
0
;
race
=
0
;
attribute
=
0
;
attack
=
0
;
defense
=
0
;
base_attack
=
0
;
base_defense
=
0
;
lscale
=
0
;
rscale
=
0
;
link
=
0
;
link_marker
=
0
;
status
=
0
;
atkstring
[
0
]
=
0
;
defstring
[
0
]
=
0
;
lvstring
[
0
]
=
0
;
linkstring
[
0
]
=
0
;
rscstring
[
0
]
=
0
;
lscstring
[
0
]
=
0
;
counters
.
clear
();
equipped
.
clear
();
}
bool
ClientCard
::
client_card_sort
(
ClientCard
*
c1
,
ClientCard
*
c2
)
{
bool
ClientCard
::
client_card_sort
(
ClientCard
*
c1
,
ClientCard
*
c2
)
{
if
(
c1
->
is_selected
!=
c2
->
is_selected
)
if
(
c1
->
is_selected
!=
c2
->
is_selected
)
return
c1
->
is_selected
<
c2
->
is_selected
;
return
c1
->
is_selected
<
c2
->
is_selected
;
...
...
gframe/client_card.h
View file @
75bbf24b
...
@@ -53,67 +53,69 @@ public:
...
@@ -53,67 +53,69 @@ public:
irr
::
core
::
vector3df
curRot
;
irr
::
core
::
vector3df
curRot
;
irr
::
core
::
vector3df
dPos
;
irr
::
core
::
vector3df
dPos
;
irr
::
core
::
vector3df
dRot
;
irr
::
core
::
vector3df
dRot
;
u32
curAlpha
;
u32
curAlpha
{
255
};
u32
dAlpha
;
u32
dAlpha
{
0
};
u32
aniFrame
;
u32
aniFrame
{
0
};
bool
is_moving
;
bool
is_moving
{
false
};
bool
is_fading
;
bool
is_fading
{
false
};
bool
is_hovered
;
bool
is_hovered
{
false
};
bool
is_selectable
;
bool
is_selectable
{
false
};
bool
is_selected
;
bool
is_selected
{
false
};
bool
is_showequip
;
bool
is_showequip
{
false
};
bool
is_showtarget
;
bool
is_showtarget
{
false
};
bool
is_showchaintarget
;
bool
is_showchaintarget
{
false
};
bool
is_highlighting
;
bool
is_highlighting
{
false
};
bool
is_reversed
;
bool
is_reversed
{
false
};
u32
code
;
u32
chain_code
;
unsigned
int
code
{
0
};
u32
alias
;
unsigned
int
chain_code
{
0
};
u32
type
;
unsigned
int
alias
{
0
};
u32
level
;
unsigned
int
type
{
0
};
u32
rank
;
unsigned
int
level
{
0
};
u32
link
;
unsigned
int
rank
{
0
};
u32
attribute
;
unsigned
int
link
{
0
};
u32
race
;
unsigned
int
attribute
{
0
};
s32
attack
;
unsigned
int
race
{
0
};
s32
defense
;
int
attack
{
0
};
s32
base_attack
;
int
defense
{
0
};
s32
base_defense
;
int
base_attack
{
0
};
u32
lscale
;
int
base_defense
{
0
};
u32
rscale
;
unsigned
int
lscale
{
0
};
u32
link_marker
;
unsigned
int
rscale
{
0
};
u32
reason
;
unsigned
int
link_marker
{
0
};
u32
select_seq
;
unsigned
int
reason
{
0
};
u8
owner
;
unsigned
int
select_seq
{
0
};
u8
controler
;
unsigned
char
owner
{
PLAYER_NONE
};
u8
location
;
unsigned
char
controler
{
PLAYER_NONE
};
u8
sequence
;
unsigned
char
location
{
0
};
u8
position
;
unsigned
char
sequence
{
0
};
u32
status
;
unsigned
char
position
{
0
};
u8
cHint
;
unsigned
int
status
{
0
};
u32
chValue
;
unsigned
char
cHint
{
0
};
u32
opParam
;
unsigned
int
chValue
{
0
};
u32
symbol
;
unsigned
int
opParam
{
0
};
u32
cmdFlag
;
unsigned
int
symbol
{
0
};
ClientCard
*
overlayTarget
;
unsigned
int
cmdFlag
{
0
};
ClientCard
*
overlayTarget
{
nullptr
};
std
::
vector
<
ClientCard
*>
overlayed
;
std
::
vector
<
ClientCard
*>
overlayed
;
ClientCard
*
equipTarget
;
ClientCard
*
equipTarget
{
nullptr
}
;
std
::
set
<
ClientCard
*>
equipped
;
std
::
set
<
ClientCard
*>
equipped
;
std
::
set
<
ClientCard
*>
cardTarget
;
std
::
set
<
ClientCard
*>
cardTarget
;
std
::
set
<
ClientCard
*>
ownerTarget
;
std
::
set
<
ClientCard
*>
ownerTarget
;
std
::
map
<
int
,
int
>
counters
;
std
::
map
<
int
,
int
>
counters
;
std
::
map
<
int
,
int
>
desc_hints
;
std
::
map
<
int
,
int
>
desc_hints
;
wchar_t
atkstring
[
16
];
wchar_t
atkstring
[
16
]
{
0
}
;
wchar_t
defstring
[
16
];
wchar_t
defstring
[
16
]
{
0
}
;
wchar_t
lvstring
[
16
];
wchar_t
lvstring
[
16
]
{
0
}
;
wchar_t
linkstring
[
16
];
wchar_t
linkstring
[
16
]
{
0
}
;
wchar_t
lscstring
[
16
];
wchar_t
lscstring
[
16
]
{
0
}
;
wchar_t
rscstring
[
16
];
wchar_t
rscstring
[
16
]
{
0
}
;
ClientCard
();
ClientCard
();
void
SetCode
(
int
code
);
void
SetCode
(
int
code
);
void
UpdateInfo
(
unsigned
char
*
buf
);
void
UpdateInfo
(
unsigned
char
*
buf
);
void
ClearTarget
();
void
ClearTarget
();
void
ClearData
();
static
bool
client_card_sort
(
ClientCard
*
c1
,
ClientCard
*
c2
);
static
bool
client_card_sort
(
ClientCard
*
c1
,
ClientCard
*
c2
);
static
bool
deck_sort_lv
(
code_pointer
l1
,
code_pointer
l2
);
static
bool
deck_sort_lv
(
code_pointer
l1
,
code_pointer
l2
);
static
bool
deck_sort_atk
(
code_pointer
l1
,
code_pointer
l2
);
static
bool
deck_sort_atk
(
code_pointer
l1
,
code_pointer
l2
);
...
...
gframe/client_field.cpp
View file @
75bbf24b
...
@@ -305,8 +305,9 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
...
@@ -305,8 +305,9 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
}
}
void
ClientField
::
UpdateCard
(
int
controler
,
int
location
,
int
sequence
,
unsigned
char
*
data
)
{
void
ClientField
::
UpdateCard
(
int
controler
,
int
location
,
int
sequence
,
unsigned
char
*
data
)
{
ClientCard
*
pcard
=
GetCard
(
controler
,
location
,
sequence
);
ClientCard
*
pcard
=
GetCard
(
controler
,
location
,
sequence
);
if
(
pcard
)
int
len
=
BufferIO
::
ReadInt32
(
data
);
pcard
->
UpdateInfo
(
data
+
4
);
if
(
pcard
&&
len
>
LEN_HEADER
)
pcard
->
UpdateInfo
(
data
);
}
}
void
ClientField
::
UpdateFieldCard
(
int
controler
,
int
location
,
unsigned
char
*
data
)
{
void
ClientField
::
UpdateFieldCard
(
int
controler
,
int
location
,
unsigned
char
*
data
)
{
std
::
vector
<
ClientCard
*>*
lst
=
0
;
std
::
vector
<
ClientCard
*>*
lst
=
0
;
...
@@ -338,7 +339,7 @@ void ClientField::UpdateFieldCard(int controler, int location, unsigned char* da
...
@@ -338,7 +339,7 @@ void ClientField::UpdateFieldCard(int controler, int location, unsigned char* da
int
len
;
int
len
;
for
(
auto
cit
=
lst
->
begin
();
cit
!=
lst
->
end
();
++
cit
)
{
for
(
auto
cit
=
lst
->
begin
();
cit
!=
lst
->
end
();
++
cit
)
{
len
=
BufferIO
::
ReadInt32
(
data
);
len
=
BufferIO
::
ReadInt32
(
data
);
if
(
len
>
8
)
if
(
len
>
LEN_HEADER
)
(
*
cit
)
->
UpdateInfo
(
data
);
(
*
cit
)
->
UpdateInfo
(
data
);
data
+=
len
-
4
;
data
+=
len
-
4
;
}
}
...
...
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