Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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-2pick
Commits
4ee9545d
Commit
4ee9545d
authored
Apr 07, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'skip'
parents
5eb15fb5
7b088861
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
76 additions
and
57 deletions
+76
-57
gframe/duelclient.cpp
gframe/duelclient.cpp
+65
-57
gframe/event_handler.cpp
gframe/event_handler.cpp
+11
-0
No files found.
gframe/duelclient.cpp
View file @
4ee9545d
...
...
@@ -662,6 +662,8 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
btnChainAlways
->
setVisible
(
false
);
mainGame
->
btnChainWhenAvail
->
setVisible
(
false
);
mainGame
->
btnCancelOrFinish
->
setVisible
(
false
);
if
(
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplaySkiping
)
mainGame
->
dInfo
.
isReplaySkiping
=
false
;
mainGame
->
stMessage
->
setText
(
dataManager
.
GetSysString
(
1500
));
mainGame
->
PopupElement
(
mainGame
->
wMessage
);
mainGame
->
gMutex
.
Unlock
();
...
...
@@ -929,7 +931,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
type
=
BufferIO
::
ReadInt8
(
pbuf
);
/*int player = */
BufferIO
::
ReadInt8
(
pbuf
);
int
data
=
BufferIO
::
ReadInt32
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
switch
(
type
)
{
case
HINT_EVENT
:
{
...
...
@@ -1059,6 +1061,12 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_WIN
:
{
mainGame
->
dInfo
.
isFinished
=
true
;
if
(
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dInfo
.
isReplaySkiping
=
false
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
dField
.
RefreshAllCards
();
mainGame
->
gMutex
.
Unlock
();
}
int
player
=
BufferIO
::
ReadInt8
(
pbuf
);
int
type
=
BufferIO
::
ReadInt8
(
pbuf
);
mainGame
->
showcarddif
=
110
;
...
...
@@ -1928,7 +1936,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
code
!=
0
)
pcard
->
SetCode
(
code
);
}
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_REVEAL
);
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
207
),
count
);
...
...
@@ -1968,7 +1976,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
code
!=
0
)
pcard
->
SetCode
(
code
);
}
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_REVEAL
);
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
207
),
count
);
...
...
@@ -2001,7 +2009,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
std
::
vector
<
ClientCard
*>
field_confirm
;
std
::
vector
<
ClientCard
*>
panel_confirm
;
ClientCard
*
pcard
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
pbuf
+=
count
*
7
;
return
true
;
}
...
...
@@ -2105,7 +2113,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
mainGame
->
dField
.
deck
[
player
].
size
()
<
2
)
return
true
;
bool
rev
=
mainGame
->
dField
.
deck_reversed
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dField
.
deck_reversed
=
false
;
if
(
rev
)
{
for
(
size_t
i
=
0
;
i
<
mainGame
->
dField
.
deck
[
player
].
size
();
++
i
)
...
...
@@ -2117,7 +2125,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
dField
.
deck
[
player
][
i
]
->
code
=
0
;
mainGame
->
dField
.
deck
[
player
][
i
]
->
is_reversed
=
false
;
}
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_SHUFFLE
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
for
(
auto
cit
=
mainGame
->
dField
.
deck
[
player
].
begin
();
cit
!=
mainGame
->
dField
.
deck
[
player
].
end
();
++
cit
)
{
...
...
@@ -2142,7 +2150,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_SHUFFLE_HAND
:
{
int
player
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
int
count
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
if
(
count
>
1
)
soundManager
.
PlaySoundEffect
(
SOUND_SHUFFLE
);
mainGame
->
WaitFrameSignal
(
5
);
...
...
@@ -2171,7 +2179,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
for
(
auto
cit
=
mainGame
->
dField
.
hand
[
player
].
begin
();
cit
!=
mainGame
->
dField
.
hand
[
player
].
end
();
++
cit
)
(
*
cit
)
->
SetCode
(
BufferIO
::
ReadInt32
(
pbuf
));
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
for
(
auto
cit
=
mainGame
->
dField
.
hand
[
player
].
begin
();
cit
!=
mainGame
->
dField
.
hand
[
player
].
end
();
++
cit
)
{
(
*
cit
)
->
is_hovered
=
false
;
mainGame
->
dField
.
MoveCard
(
*
cit
,
5
);
...
...
@@ -2185,7 +2193,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
count
=
BufferIO
::
ReadInt8
(
pbuf
);
if
((
mainGame
->
dField
.
extra
[
player
].
size
()
-
mainGame
->
dField
.
extra_p_count
[
player
])
<
2
)
return
true
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
if
(
count
>
1
)
soundManager
.
PlaySoundEffect
(
SOUND_SHUFFLE
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
...
...
@@ -2215,7 +2223,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_SWAP_GRAVE_DECK
:
{
int
player
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dField
.
grave
[
player
].
swap
(
mainGame
->
dField
.
deck
[
player
]);
for
(
auto
cit
=
mainGame
->
dField
.
grave
[
player
].
begin
();
cit
!=
mainGame
->
dField
.
grave
[
player
].
end
();
++
cit
)
(
*
cit
)
->
location
=
LOCATION_GRAVE
;
...
...
@@ -2259,7 +2267,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_REVERSE_DECK
:
{
mainGame
->
dField
.
deck_reversed
=
!
mainGame
->
dField
.
deck_reversed
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
for
(
size_t
i
=
0
;
i
<
mainGame
->
dField
.
deck
[
0
].
size
();
++
i
)
mainGame
->
dField
.
MoveCard
(
mainGame
->
dField
.
deck
[
0
][
i
],
10
);
for
(
size_t
i
=
0
;
i
<
mainGame
->
dField
.
deck
[
1
].
size
();
++
i
)
...
...
@@ -2293,14 +2301,14 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
BufferIO
::
ReadInt8
(
pbuf
);
mc
[
i
]
=
mainGame
->
dField
.
mzone
[
c
][
s
];
mc
[
i
]
->
SetCode
(
0
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mc
[
i
]
->
dPos
=
irr
::
core
::
vector3df
((
3.95
f
-
mc
[
i
]
->
curPos
.
X
)
/
10
,
0
,
0.05
f
);
mc
[
i
]
->
dRot
=
irr
::
core
::
vector3df
(
0
,
0
,
0
);
mc
[
i
]
->
is_moving
=
true
;
mc
[
i
]
->
aniFrame
=
10
;
}
}
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
mainGame
->
WaitFrameSignal
(
20
);
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
c
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
...
...
@@ -2316,7 +2324,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
swp
->
sequence
=
ps
;
}
}
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_SHUFFLE
);
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
mainGame
->
dField
.
MoveCard
(
mc
[
i
],
10
);
...
...
@@ -2358,7 +2366,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
else
mainGame
->
dInfo
.
tag_player
[
1
]
=
!
mainGame
->
dInfo
.
tag_player
[
1
];
}
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_NEXT_TURN
);
mainGame
->
showcardcode
=
10
;
mainGame
->
showcarddif
=
30
;
...
...
@@ -2406,7 +2414,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
mainGame
->
btnPhaseStatus
->
setPressed
(
true
);
mainGame
->
btnPhaseStatus
->
setVisible
(
true
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_PHASE
);
mainGame
->
showcard
=
101
;
mainGame
->
WaitFrameSignal
(
40
);
...
...
@@ -2425,7 +2433,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
cs
=
BufferIO
::
ReadInt8
(
pbuf
);
int
cp
=
BufferIO
::
ReadInt8
(
pbuf
);
int
reason
=
BufferIO
::
ReadInt32
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
if
(
cl
&
LOCATION_REMOVED
&&
pl
!=
cl
)
soundManager
.
PlaySoundEffect
(
SOUND_BANISHED
);
else
if
(
reason
&
REASON_DESTROY
&&
pl
!=
cl
)
...
...
@@ -2435,7 +2443,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard
*
pcard
=
new
ClientCard
();
pcard
->
position
=
cp
;
pcard
->
SetCode
(
code
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
dField
.
AddCard
(
pcard
,
cc
,
cl
,
cs
);
mainGame
->
gMutex
.
Unlock
();
...
...
@@ -2452,7 +2460,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
ClearTarget
();
for
(
auto
eqit
=
pcard
->
equipped
.
begin
();
eqit
!=
pcard
->
equipped
.
end
();
++
eqit
)
(
*
eqit
)
->
equipTarget
=
0
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dField
.
FadeCard
(
pcard
,
5
,
20
);
mainGame
->
WaitFrameSignal
(
20
);
mainGame
->
gMutex
.
Lock
();
...
...
@@ -2484,7 +2492,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
is_showequip
=
false
;
pcard
->
is_showtarget
=
false
;
pcard
->
is_showchaintarget
=
false
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dField
.
RemoveCard
(
pc
,
pl
,
ps
);
pcard
->
position
=
cp
;
mainGame
->
dField
.
AddCard
(
pcard
,
cc
,
cl
,
cs
);
...
...
@@ -2536,7 +2544,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard
->
is_showtarget
=
false
;
pcard
->
is_showchaintarget
=
false
;
ClientCard
*
olcard
=
mainGame
->
dField
.
GetCard
(
cc
,
cl
&
0x7f
,
cs
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dField
.
RemoveCard
(
pc
,
pl
,
ps
);
olcard
->
overlayed
.
push_back
(
pcard
);
mainGame
->
dField
.
overlay_cards
.
insert
(
pcard
);
...
...
@@ -2565,7 +2573,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
else
if
(
!
(
cl
&
0x80
))
{
ClientCard
*
olcard
=
mainGame
->
dField
.
GetCard
(
pc
,
pl
&
0x7f
,
ps
);
ClientCard
*
pcard
=
olcard
->
overlayed
[
pp
];
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
olcard
->
overlayed
.
erase
(
olcard
->
overlayed
.
begin
()
+
pcard
->
sequence
);
pcard
->
overlayTarget
=
0
;
pcard
->
position
=
cp
;
...
...
@@ -2595,7 +2603,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard
*
olcard1
=
mainGame
->
dField
.
GetCard
(
pc
,
pl
&
0x7f
,
ps
);
ClientCard
*
pcard
=
olcard1
->
overlayed
[
pp
];
ClientCard
*
olcard2
=
mainGame
->
dField
.
GetCard
(
cc
,
cl
&
0x7f
,
cs
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
olcard1
->
overlayed
.
erase
(
olcard1
->
overlayed
.
begin
()
+
pcard
->
sequence
);
olcard2
->
overlayed
.
push_back
(
pcard
);
pcard
->
sequence
=
olcard2
->
overlayed
.
size
()
-
1
;
...
...
@@ -2638,7 +2646,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
code
!=
0
&&
pcard
->
code
!=
code
)
pcard
->
SetCode
(
code
);
pcard
->
position
=
cp
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
myswprintf
(
event_string
,
dataManager
.
GetSysString
(
1600
));
mainGame
->
dField
.
MoveCard
(
pcard
,
10
);
mainGame
->
WaitFrameSignal
(
11
);
...
...
@@ -2651,7 +2659,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
/*int cl = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int cs = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int cp = */
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
soundManager
.
PlaySoundEffect
(
SOUND_SET
);
myswprintf
(
event_string
,
dataManager
.
GetSysString
(
1601
));
return
true
;
...
...
@@ -2670,7 +2678,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
myswprintf
(
event_string
,
dataManager
.
GetSysString
(
1602
));
ClientCard
*
pc1
=
mainGame
->
dField
.
GetCard
(
c1
,
l1
,
s1
);
ClientCard
*
pc2
=
mainGame
->
dField
.
GetCard
(
c2
,
l2
,
s2
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
dField
.
RemoveCard
(
c1
,
l1
,
s1
);
mainGame
->
dField
.
RemoveCard
(
c2
,
l2
,
s2
);
...
...
@@ -2705,7 +2713,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
/*int cl = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int cs = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int cp = */
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_SUMMON
);
myswprintf
(
event_string
,
dataManager
.
GetSysString
(
1603
),
dataManager
.
GetName
(
code
));
mainGame
->
showcardcode
=
code
;
...
...
@@ -2728,7 +2736,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
/*int cl = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int cs = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int cp = */
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
CardData
cd
;
if
(
dataManager
.
GetData
(
code
,
&
cd
)
&&
(
cd
.
type
&
TYPE_TOKEN
))
soundManager
.
PlaySoundEffect
(
SOUND_TOKEN
);
...
...
@@ -2757,7 +2765,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard
*
pcard
=
mainGame
->
dField
.
GetCard
(
cc
,
cl
,
cs
);
pcard
->
SetCode
(
code
);
pcard
->
position
=
cp
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_FILP
);
myswprintf
(
event_string
,
dataManager
.
GetSysString
(
1607
),
dataManager
.
GetName
(
code
));
mainGame
->
dField
.
MoveCard
(
pcard
,
10
);
...
...
@@ -2787,7 +2795,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
cs
=
BufferIO
::
ReadInt8
(
pbuf
);
int
desc
=
BufferIO
::
ReadInt32
(
pbuf
);
/*int ct = */
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_ACTIVATE
);
ClientCard
*
pcard
=
mainGame
->
dField
.
GetCard
(
pcc
,
pcl
,
pcs
,
subs
);
...
...
@@ -2828,7 +2836,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_CHAINED
:
{
int
ct
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
myswprintf
(
event_string
,
dataManager
.
GetSysString
(
1609
),
dataManager
.
GetName
(
mainGame
->
dField
.
current_chain
.
code
));
mainGame
->
gMutex
.
Lock
();
...
...
@@ -2841,7 +2849,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_CHAIN_SOLVING
:
{
int
ct
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
if
(
mainGame
->
dField
.
chains
.
size
()
>
1
)
{
if
(
mainGame
->
dField
.
last_chain
)
...
...
@@ -2872,7 +2880,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_CHAIN_NEGATED
:
case
MSG_CHAIN_DISABLED
:
{
int
ct
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
showcardcode
=
mainGame
->
dField
.
chains
[
ct
-
1
].
code
;
mainGame
->
showcarddif
=
0
;
mainGame
->
showcard
=
3
;
...
...
@@ -2887,7 +2895,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_RANDOM_SELECTED
:
{
/*int player = */
BufferIO
::
ReadInt8
(
pbuf
);
int
count
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
pbuf
+=
count
*
4
;
return
true
;
}
...
...
@@ -2912,7 +2920,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_BECOME_TARGET
:
{
//soundManager.PlaySoundEffect(SOUND_TARGET);
int
count
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
pbuf
+=
count
*
4
;
return
true
;
}
...
...
@@ -2950,7 +2958,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
!
mainGame
->
dField
.
deck_reversed
||
code
)
pcard
->
SetCode
(
code
&
0x7fffffff
);
}
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
pcard
=
mainGame
->
dField
.
GetCard
(
player
,
LOCATION_DECK
,
mainGame
->
dField
.
deck
[
player
].
size
()
-
1
);
mainGame
->
dField
.
deck
[
player
].
erase
(
mainGame
->
dField
.
deck
[
player
].
end
()
-
1
);
...
...
@@ -2980,7 +2988,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
final
=
mainGame
->
dInfo
.
lp
[
player
]
-
val
;
if
(
final
<
0
)
final
=
0
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dInfo
.
lp
[
player
]
=
final
;
myswprintf
(
mainGame
->
dInfo
.
strLP
[
player
],
L"%d"
,
mainGame
->
dInfo
.
lp
[
player
]);
return
true
;
...
...
@@ -3009,7 +3017,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
player
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
int
val
=
BufferIO
::
ReadInt32
(
pbuf
);
int
final
=
mainGame
->
dInfo
.
lp
[
player
]
+
val
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dInfo
.
lp
[
player
]
=
final
;
myswprintf
(
mainGame
->
dInfo
.
strLP
[
player
],
L"%d"
,
mainGame
->
dInfo
.
lp
[
player
]);
return
true
;
...
...
@@ -3045,7 +3053,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
BufferIO
::
ReadInt8
(
pbuf
);
ClientCard
*
pc1
=
mainGame
->
dField
.
GetCard
(
c1
,
l1
,
s1
);
ClientCard
*
pc2
=
mainGame
->
dField
.
GetCard
(
c2
,
l2
,
s2
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
if
(
pc1
->
equipTarget
)
pc1
->
equipTarget
->
equipped
.
erase
(
pc1
);
pc1
->
equipTarget
=
pc2
;
...
...
@@ -3071,7 +3079,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_LPUPDATE
:
{
int
player
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
int
val
=
BufferIO
::
ReadInt32
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dInfo
.
lp
[
player
]
=
val
;
myswprintf
(
mainGame
->
dInfo
.
strLP
[
player
],
L"%d"
,
mainGame
->
dInfo
.
lp
[
player
]);
return
true
;
...
...
@@ -3092,7 +3100,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
s1
=
BufferIO
::
ReadInt8
(
pbuf
);
BufferIO
::
ReadInt8
(
pbuf
);
ClientCard
*
pc
=
mainGame
->
dField
.
GetCard
(
c1
,
l1
,
s1
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
pc
->
equipTarget
->
equipped
.
erase
(
pc
);
pc
->
equipTarget
=
0
;
}
else
{
...
...
@@ -3118,7 +3126,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
BufferIO
::
ReadInt8
(
pbuf
);
ClientCard
*
pc1
=
mainGame
->
dField
.
GetCard
(
c1
,
l1
,
s1
);
ClientCard
*
pc2
=
mainGame
->
dField
.
GetCard
(
c2
,
l2
,
s2
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
pc1
->
cardTarget
.
insert
(
pc2
);
pc2
->
ownerTarget
.
insert
(
pc1
);
}
else
{
...
...
@@ -3144,7 +3152,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
BufferIO
::
ReadInt8
(
pbuf
);
ClientCard
*
pc1
=
mainGame
->
dField
.
GetCard
(
c1
,
l1
,
s1
);
ClientCard
*
pc2
=
mainGame
->
dField
.
GetCard
(
c2
,
l2
,
s2
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
pc1
->
cardTarget
.
erase
(
pc2
);
pc2
->
ownerTarget
.
erase
(
pc1
);
}
else
{
...
...
@@ -3165,7 +3173,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
final
=
mainGame
->
dInfo
.
lp
[
player
]
-
cost
;
if
(
final
<
0
)
final
=
0
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
dInfo
.
lp
[
player
]
=
final
;
myswprintf
(
mainGame
->
dInfo
.
strLP
[
player
],
L"%d"
,
mainGame
->
dInfo
.
lp
[
player
]);
return
true
;
...
...
@@ -3196,7 +3204,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
pc
->
counters
.
count
(
type
))
pc
->
counters
[
type
]
+=
count
;
else
pc
->
counters
[
type
]
=
count
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_COUNTER_ADD
);
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
1617
),
dataManager
.
GetName
(
pc
->
code
),
count
,
dataManager
.
GetCounterName
(
type
));
...
...
@@ -3219,7 +3227,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pc
->
counters
[
type
]
-=
count
;
if
(
pc
->
counters
[
type
]
<=
0
)
pc
->
counters
.
erase
(
type
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_COUNTER_REMOVE
);
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
1618
),
dataManager
.
GetName
(
pc
->
code
),
count
,
dataManager
.
GetCounterName
(
type
));
...
...
@@ -3242,7 +3250,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
ld
=
BufferIO
::
ReadInt8
(
pbuf
);
int
sd
=
BufferIO
::
ReadInt8
(
pbuf
);
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
float
sy
;
if
(
ld
!=
0
)
{
...
...
@@ -3298,7 +3306,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
datk
=
BufferIO
::
ReadInt32
(
pbuf
);
int
ddef
=
BufferIO
::
ReadInt32
(
pbuf
);
/*int dd = */
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
mainGame
->
gMutex
.
Lock
();
ClientCard
*
pcard
=
mainGame
->
dField
.
GetCard
(
ca
,
la
,
sa
);
...
...
@@ -3354,7 +3362,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
*
pwbuf
++
=
L']'
;
}
*
pwbuf
=
0
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_COIN
);
mainGame
->
gMutex
.
Lock
();
...
...
@@ -3378,7 +3386,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
*
pwbuf
++
=
L']'
;
}
*
pwbuf
=
0
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
soundManager
.
PlaySoundEffect
(
SOUND_DICE
);
mainGame
->
gMutex
.
Lock
();
...
...
@@ -3392,7 +3400,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_ROCK_PAPER_SCISSORS
:
{
/*int player = */
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
PopupElement
(
mainGame
->
wHand
);
...
...
@@ -3401,7 +3409,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_HAND_RES
:
{
int
res
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
mainGame
->
stHintMsg
->
setVisible
(
false
);
int
res1
=
(
res
&
0x3
)
-
1
;
...
...
@@ -3533,7 +3541,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
chtype
==
CHINT_TURN
)
{
if
(
value
==
0
)
return
true
;
if
(
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
mainGame
->
dInfo
.
isReplaySkiping
)
return
true
;
if
(
pcard
->
location
&
LOCATION_ONFIELD
)
pcard
->
is_highlighting
=
true
;
...
...
@@ -3573,7 +3581,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
size_t
pcount
=
(
size_t
)
BufferIO
::
ReadInt8
(
pbuf
);
size_t
hcount
=
(
size_t
)
BufferIO
::
ReadInt8
(
pbuf
);
int
topcode
=
BufferIO
::
ReadInt32
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
for
(
auto
cit
=
mainGame
->
dField
.
deck
[
player
].
begin
();
cit
!=
mainGame
->
dField
.
deck
[
player
].
end
();
++
cit
)
{
if
(
player
==
0
)
(
*
cit
)
->
dPos
.
Y
=
0.4
f
;
else
(
*
cit
)
->
dPos
.
Y
=
-
0.6
f
;
...
...
@@ -3598,7 +3606,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
WaitFrameSignal
(
5
);
}
//
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
mainGame
->
gMutex
.
Lock
();
if
(
mainGame
->
dField
.
deck
[
player
].
size
()
>
mcount
)
{
while
(
mainGame
->
dField
.
deck
[
player
].
size
()
>
mcount
)
{
...
...
@@ -3646,10 +3654,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
}
mainGame
->
dField
.
extra_p_count
[
player
]
=
pcount
;
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
mainGame
->
gMutex
.
Unlock
();
//
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplay
Skiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
for
(
auto
cit
=
mainGame
->
dField
.
deck
[
player
].
begin
();
cit
!=
mainGame
->
dField
.
deck
[
player
].
end
();
++
cit
)
{
ClientCard
*
pcard
=
*
cit
;
mainGame
->
dField
.
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
);
...
...
gframe/event_handler.cpp
View file @
4ee9545d
...
...
@@ -1680,6 +1680,17 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
break
;
}
case
irr
:
:
KEY_KEY_Z
:
{
if
(
!
mainGame
->
dInfo
.
isReplay
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
{
mainGame
->
dInfo
.
isReplaySkiping
=
event
.
KeyInput
.
PressedDown
;
if
(
mainGame
->
dInfo
.
isStarted
&&
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
dField
.
RefreshAllCards
();
mainGame
->
gMutex
.
Unlock
();
}
}
break
;
}
case
irr
:
:
KEY_F1
:
case
irr
:
:
KEY_F2
:
case
irr
:
:
KEY_F3
:
...
...
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