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
df129c0e
Commit
df129c0e
authored
Jun 17, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
support reconnection
parent
4ea64055
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
525 additions
and
28 deletions
+525
-28
gframe/netserver.cpp
gframe/netserver.cpp
+12
-0
gframe/network.h
gframe/network.h
+9
-0
gframe/single_duel.cpp
gframe/single_duel.cpp
+226
-13
gframe/single_duel.h
gframe/single_duel.h
+15
-0
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+246
-13
gframe/tag_duel.h
gframe/tag_duel.h
+15
-0
ocgcore
ocgcore
+1
-1
script
script
+1
-1
No files found.
gframe/netserver.cpp
View file @
df129c0e
...
@@ -226,7 +226,11 @@ void NetServer::DisconnectPlayer(DuelPlayer* dp) {
...
@@ -226,7 +226,11 @@ void NetServer::DisconnectPlayer(DuelPlayer* dp) {
void
NetServer
::
HandleCTOSPacket
(
DuelPlayer
*
dp
,
char
*
data
,
unsigned
int
len
)
{
void
NetServer
::
HandleCTOSPacket
(
DuelPlayer
*
dp
,
char
*
data
,
unsigned
int
len
)
{
char
*
pdata
=
data
;
char
*
pdata
=
data
;
unsigned
char
pktType
=
BufferIO
::
ReadUInt8
(
pdata
);
unsigned
char
pktType
=
BufferIO
::
ReadUInt8
(
pdata
);
#ifdef YGOPRO_SERVER_MODE
if
((
pktType
!=
CTOS_SURRENDER
)
&&
(
pktType
!=
CTOS_CHAT
)
&&
(
pktType
!=
CTOS_REQUEST_FIELD
)
&&
(
dp
->
state
==
0xff
||
(
dp
->
state
&&
dp
->
state
!=
pktType
)))
#else
if
((
pktType
!=
CTOS_SURRENDER
)
&&
(
pktType
!=
CTOS_CHAT
)
&&
(
dp
->
state
==
0xff
||
(
dp
->
state
&&
dp
->
state
!=
pktType
)))
if
((
pktType
!=
CTOS_SURRENDER
)
&&
(
pktType
!=
CTOS_CHAT
)
&&
(
dp
->
state
==
0xff
||
(
dp
->
state
&&
dp
->
state
!=
pktType
)))
#endif
return
;
return
;
switch
(
pktType
)
{
switch
(
pktType
)
{
case
CTOS_RESPONSE
:
{
case
CTOS_RESPONSE
:
{
...
@@ -356,6 +360,14 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, char* data, unsigned int len) {
...
@@ -356,6 +360,14 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, char* data, unsigned int len) {
duel_mode
->
StartDuel
(
dp
);
duel_mode
->
StartDuel
(
dp
);
break
;
break
;
}
}
#ifdef YGOPRO_SERVER_MODE
case
CTOS_REQUEST_FIELD
:
{
if
(
!
dp
->
game
||
!
duel_mode
->
pduel
)
break
;
duel_mode
->
RequestField
(
dp
);
break
;
}
#endif
}
}
}
}
...
...
gframe/network.h
View file @
df129c0e
...
@@ -134,6 +134,9 @@ public:
...
@@ -134,6 +134,9 @@ public:
virtual
void
Surrender
(
DuelPlayer
*
dp
)
{}
virtual
void
Surrender
(
DuelPlayer
*
dp
)
{}
virtual
void
GetResponse
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
)
{}
virtual
void
GetResponse
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
)
{}
virtual
void
TimeConfirm
(
DuelPlayer
*
dp
)
{}
virtual
void
TimeConfirm
(
DuelPlayer
*
dp
)
{}
#ifdef YGOPRO_SERVER_MODE
virtual
void
RequestField
(
DuelPlayer
*
dp
)
{}
#endif
virtual
void
EndDuel
()
{};
virtual
void
EndDuel
()
{};
public:
public:
...
@@ -175,6 +178,9 @@ public:
...
@@ -175,6 +178,9 @@ public:
#define CTOS_HS_NOTREADY 0x23
#define CTOS_HS_NOTREADY 0x23
#define CTOS_HS_KICK 0x24
#define CTOS_HS_KICK 0x24
#define CTOS_HS_START 0x25
#define CTOS_HS_START 0x25
#ifdef YGOPRO_SERVER_MODE
#define CTOS_REQUEST_FIELD 0x30
#endif
#define STOC_GAME_MSG 0x1
#define STOC_GAME_MSG 0x1
#define STOC_ERROR_MSG 0x2
#define STOC_ERROR_MSG 0x2
...
@@ -196,6 +202,9 @@ public:
...
@@ -196,6 +202,9 @@ public:
#define STOC_HS_PLAYER_ENTER 0x20
#define STOC_HS_PLAYER_ENTER 0x20
#define STOC_HS_PLAYER_CHANGE 0x21
#define STOC_HS_PLAYER_CHANGE 0x21
#define STOC_HS_WATCH_CHANGE 0x22
#define STOC_HS_WATCH_CHANGE 0x22
#ifdef YGOPRO_SERVER_MODE
#define STOC_FIELD_FINISH 0x30
#endif
#define PLAYERCHANGE_OBSERVE 0x8
#define PLAYERCHANGE_OBSERVE 0x8
#define PLAYERCHANGE_READY 0x9
#define PLAYERCHANGE_READY 0x9
...
...
gframe/single_duel.cpp
View file @
df129c0e
This diff is collapsed.
Click to expand it.
gframe/single_duel.h
View file @
df129c0e
...
@@ -27,15 +27,27 @@ public:
...
@@ -27,15 +27,27 @@ public:
virtual
int
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
);
virtual
int
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
);
virtual
void
GetResponse
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
);
virtual
void
GetResponse
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
);
virtual
void
TimeConfirm
(
DuelPlayer
*
dp
);
virtual
void
TimeConfirm
(
DuelPlayer
*
dp
);
#ifdef YGOPRO_SERVER_MODE
virtual
void
RequestField
(
DuelPlayer
*
dp
);
#endif
virtual
void
EndDuel
();
virtual
void
EndDuel
();
void
DuelEndProc
();
void
DuelEndProc
();
void
WaitforResponse
(
int
playerid
);
void
WaitforResponse
(
int
playerid
);
#ifdef YGOPRO_SERVER_MODE
void
RefreshMzone
(
int
player
,
int
flag
=
0x881fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshSzone
(
int
player
,
int
flag
=
0x681fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshHand
(
int
player
,
int
flag
=
0x781fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshGrave
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshExtra
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshRemoved
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
#else
void
RefreshMzone
(
int
player
,
int
flag
=
0x881fff
,
int
use_cache
=
1
);
void
RefreshMzone
(
int
player
,
int
flag
=
0x881fff
,
int
use_cache
=
1
);
void
RefreshSzone
(
int
player
,
int
flag
=
0x681fff
,
int
use_cache
=
1
);
void
RefreshSzone
(
int
player
,
int
flag
=
0x681fff
,
int
use_cache
=
1
);
void
RefreshHand
(
int
player
,
int
flag
=
0x781fff
,
int
use_cache
=
1
);
void
RefreshHand
(
int
player
,
int
flag
=
0x781fff
,
int
use_cache
=
1
);
void
RefreshGrave
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
void
RefreshGrave
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
void
RefreshExtra
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
void
RefreshExtra
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
#endif
void
RefreshSingle
(
int
player
,
int
location
,
int
sequence
,
int
flag
=
0xf81fff
);
void
RefreshSingle
(
int
player
,
int
location
,
int
sequence
,
int
flag
=
0xf81fff
);
static
int
MessageHandler
(
long
fduel
,
int
type
);
static
int
MessageHandler
(
long
fduel
,
int
type
);
...
@@ -53,6 +65,9 @@ protected:
...
@@ -53,6 +65,9 @@ protected:
#ifdef YGOPRO_SERVER_MODE
#ifdef YGOPRO_SERVER_MODE
DuelPlayer
*
cache_recorder
;
DuelPlayer
*
cache_recorder
;
DuelPlayer
*
replay_recorder
;
DuelPlayer
*
replay_recorder
;
int
lp
[
2
];
unsigned
char
turn_player
;
unsigned
short
phase
;
#endif
#endif
Replay
last_replay
;
Replay
last_replay
;
bool
match_mode
;
bool
match_mode
;
...
...
gframe/tag_duel.cpp
View file @
df129c0e
This diff is collapsed.
Click to expand it.
gframe/tag_duel.h
View file @
df129c0e
...
@@ -27,15 +27,27 @@ public:
...
@@ -27,15 +27,27 @@ public:
virtual
int
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
);
virtual
int
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
);
virtual
void
GetResponse
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
);
virtual
void
GetResponse
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
);
virtual
void
TimeConfirm
(
DuelPlayer
*
dp
);
virtual
void
TimeConfirm
(
DuelPlayer
*
dp
);
#ifdef YGOPRO_SERVER_MODE
virtual
void
RequestField
(
DuelPlayer
*
dp
);
#endif
virtual
void
EndDuel
();
virtual
void
EndDuel
();
void
DuelEndProc
();
void
DuelEndProc
();
void
WaitforResponse
(
int
playerid
);
void
WaitforResponse
(
int
playerid
);
#ifdef YGOPRO_SERVER_MODE
void
RefreshMzone
(
int
player
,
int
flag
=
0x881fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshSzone
(
int
player
,
int
flag
=
0x681fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshHand
(
int
player
,
int
flag
=
0x781fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshGrave
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshExtra
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
void
RefreshRemoved
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
,
DuelPlayer
*
dp
=
0
);
#else
void
RefreshMzone
(
int
player
,
int
flag
=
0x881fff
,
int
use_cache
=
1
);
void
RefreshMzone
(
int
player
,
int
flag
=
0x881fff
,
int
use_cache
=
1
);
void
RefreshSzone
(
int
player
,
int
flag
=
0x681fff
,
int
use_cache
=
1
);
void
RefreshSzone
(
int
player
,
int
flag
=
0x681fff
,
int
use_cache
=
1
);
void
RefreshHand
(
int
player
,
int
flag
=
0x781fff
,
int
use_cache
=
1
);
void
RefreshHand
(
int
player
,
int
flag
=
0x781fff
,
int
use_cache
=
1
);
void
RefreshGrave
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
void
RefreshGrave
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
void
RefreshExtra
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
void
RefreshExtra
(
int
player
,
int
flag
=
0x81fff
,
int
use_cache
=
1
);
#endif
void
RefreshSingle
(
int
player
,
int
location
,
int
sequence
,
int
flag
=
0xf81fff
);
void
RefreshSingle
(
int
player
,
int
location
,
int
sequence
,
int
flag
=
0xf81fff
);
static
int
MessageHandler
(
long
fduel
,
int
type
);
static
int
MessageHandler
(
long
fduel
,
int
type
);
...
@@ -49,6 +61,9 @@ protected:
...
@@ -49,6 +61,9 @@ protected:
#ifdef YGOPRO_SERVER_MODE
#ifdef YGOPRO_SERVER_MODE
DuelPlayer
*
cache_recorder
;
DuelPlayer
*
cache_recorder
;
DuelPlayer
*
replay_recorder
;
DuelPlayer
*
replay_recorder
;
int
lp
[
2
];
int
turn_player
;
int
phase
;
#endif
#endif
bool
ready
[
4
];
bool
ready
[
4
];
Deck
pdeck
[
4
];
Deck
pdeck
[
4
];
...
...
ocgcore
@
df9d562f
Subproject commit
5d43ab2b741fa770b4463e1f6a34c68f543ba31f
Subproject commit
df9d562fe67926495bcacff3b5a8aa77cb405ff2
script
@
524c175c
Subproject commit
a7ac36907a08e612671914681a808af971290bc9
Subproject commit
524c175c16e2060901d66feab1b0ad45e8022b10
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