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
6f962667
Commit
6f962667
authored
Aug 08, 2017
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test
parent
551606a6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
43 additions
and
49 deletions
+43
-49
gframe/game.cpp
gframe/game.cpp
+5
-5
gframe/game.h
gframe/game.h
+1
-1
gframe/netserver.cpp
gframe/netserver.cpp
+28
-40
gframe/netserver.h
gframe/netserver.h
+8
-2
ocgcore
ocgcore
+1
-1
No files found.
gframe/game.cpp
View file @
6f962667
...
@@ -27,6 +27,7 @@ namespace ygo {
...
@@ -27,6 +27,7 @@ namespace ygo {
Game
*
mainGame
;
Game
*
mainGame
;
#ifdef YGOPRO_SERVER_MODE
unsigned
short
aServerPort
;
unsigned
short
aServerPort
;
unsigned
int
lflist
;
unsigned
int
lflist
;
unsigned
char
rule
;
unsigned
char
rule
;
...
@@ -40,17 +41,16 @@ unsigned short replay_mode;
...
@@ -40,17 +41,16 @@ unsigned short replay_mode;
unsigned
char
start_hand
;
unsigned
char
start_hand
;
unsigned
char
draw_count
;
unsigned
char
draw_count
;
void
Game
::
MainServerLoop
(
int
bDuel_
mode
,
int
lflist
)
{
void
Game
::
MainServerLoop
(
int
mode
,
int
lflist
)
{
deckManager
.
LoadLFList
();
deckManager
.
LoadLFList
();
LoadExpansionDB
();
LoadExpansionDB
();
dataManager
.
LoadDB
(
"cards.cdb"
);
dataManager
.
LoadDB
(
"cards.cdb"
);
aServerPort
=
NetServer
::
StartServer
(
aServerPort
);
aServerPort
=
NetServer
::
StartServer
(
aServerPort
);
NetServer
::
Init
duel
(
bDuel_
mode
,
lflist
);
NetServer
::
Init
Duel
(
mode
,
lflist
);
printf
(
"%u
\n
"
,
aServerPort
);
printf
(
"%u
\n
"
,
aServerPort
);
fflush
(
stdout
);
fflush
(
stdout
);
while
(
NetServer
::
net_evbase
)
{
while
(
NetServer
::
net_evbase
)
{
#ifdef WIN32
#ifdef WIN32
Sleep
(
200
);
Sleep
(
200
);
...
@@ -59,7 +59,7 @@ void Game::MainServerLoop(int bDuel_mode, int lflist) {
...
@@ -59,7 +59,7 @@ void Game::MainServerLoop(int bDuel_mode, int lflist) {
#endif
#endif
}
}
}
}
#
ifndef YGOPRO_SERVER_MODE
#
else
bool
Game
::
Initialize
()
{
bool
Game
::
Initialize
()
{
srand
(
time
(
0
));
srand
(
time
(
0
));
LoadConfig
();
LoadConfig
();
...
...
gframe/game.h
View file @
6f962667
...
@@ -87,7 +87,7 @@ class Game {
...
@@ -87,7 +87,7 @@ class Game {
public:
public:
bool
Initialize
();
bool
Initialize
();
#ifdef YGOPRO_SERVER_MODE
#ifdef YGOPRO_SERVER_MODE
void
MainServerLoop
(
int
bDuel_
mode
,
int
lflist
);
void
MainServerLoop
(
int
mode
,
int
lflist
);
void
LoadExpansionDB
();
void
LoadExpansionDB
();
#else
#else
void
MainLoop
();
void
MainLoop
();
...
...
gframe/netserver.cpp
View file @
6f962667
...
@@ -13,53 +13,41 @@ char NetServer::net_server_read[0x2000];
...
@@ -13,53 +13,41 @@ char NetServer::net_server_read[0x2000];
char
NetServer
::
net_server_write
[
0x2000
];
char
NetServer
::
net_server_write
[
0x2000
];
unsigned
short
NetServer
::
last_sent
=
0
;
unsigned
short
NetServer
::
last_sent
=
0
;
#ifdef YGOPRO_SERVER_MODE
void
NetServer
::
Init
duel
(
int
bDuel_
mode
,
int
lflist
)
void
NetServer
::
Init
Duel
(
int
mode
,
int
lflist
)
{
{
CTOS_CreateGame
*
pkt
=
new
CTOS_CreateGame
;
if
(
mode
==
MODE_SINGLE
)
{
pkt
->
info
.
mode
=
MODE_SINGLE
;
duel_mode
=
new
SingleDuel
(
false
);
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
SingleDuel
::
SingleTimer
,
duel_mode
);
if
(
bDuel_mode
==
MODE_SINGLE
)
{
}
else
if
(
mode
==
MODE_MATCH
)
{
duel_mode
=
new
SingleDuel
(
false
);
duel_mode
=
new
SingleDuel
(
true
);
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
SingleDuel
::
SingleTimer
,
duel_mode
);
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
SingleDuel
::
SingleTimer
,
duel_mode
);
}
else
if
(
bDuel_mode
==
MODE_MATCH
)
{
}
else
if
(
mode
==
MODE_TAG
)
{
duel_mode
=
new
SingleDuel
(
true
);
duel_mode
=
new
TagDuel
();
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
SingleDuel
::
SingleTimer
,
duel_mode
);
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
TagDuel
::
TagTimer
,
duel_mode
);
}
else
if
(
bDuel_mode
==
MODE_TAG
)
{
}
duel_mode
=
new
TagDuel
();
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
TagDuel
::
TagTimer
,
duel_mode
);
}
if
(
pkt
->
info
.
rule
>
3
)
pkt
->
info
.
rule
=
0
;
if
(
pkt
->
info
.
mode
>
2
)
pkt
->
info
.
mode
=
0
;
unsigned
int
hash
=
0
;
pkt
->
info
.
lflist
=
deckManager
.
_lfList
[
lflist
].
hash
;
CTOS_CreateGame
*
pkt
=
new
CTOS_CreateGame
;
for
(
auto
lfit
=
deckManager
.
_lfList
.
begin
();
lfit
!=
deckManager
.
_lfList
.
end
();
++
lfit
)
{
pkt
->
info
.
mode
=
mode
;
if
(
pkt
->
info
.
lflist
==
lfit
->
hash
)
{
hash
=
pkt
->
info
.
lflist
;
break
;
}
}
if
(
!
hash
)
if
(
lflist
==
-
1
)
pkt
->
info
.
lflist
=
deckManager
.
_lfList
[
0
].
hash
;
pkt
->
info
.
lflist
=
0
;
else
if
(
lflist
>=
deckManager
.
_lfList
.
size
())
if
(
lflist
==
-
1
)
pkt
->
info
.
lflist
=
deckManager
.
_lfList
[
0
].
hash
;
pkt
->
info
.
lflist
=
0
;
else
duel_mode
->
host_info
=
pkt
->
info
;
pkt
->
info
.
lflist
=
deckManager
.
_lfList
[
lflist
].
hash
;
BufferIO
::
CopyWStr
(
pkt
->
name
,
duel_mode
->
name
,
20
);
BufferIO
::
CopyWStr
(
pkt
->
pass
,
duel_mode
->
pass
,
20
);
duel_mode
->
host_info
=
pkt
->
info
;
// duel_mode->JoinGame(dp, 0, true);
// StartBroadcast();
BufferIO
::
CopyWStr
(
pkt
->
name
,
duel_mode
->
name
,
20
);
BufferIO
::
CopyWStr
(
pkt
->
pass
,
duel_mode
->
pass
,
20
);
}
}
unsigned
short
NetServer
::
StartServer
(
unsigned
short
port
)
{
unsigned
short
NetServer
::
StartServer
(
unsigned
short
port
)
{
#else
bool
NetServer
::
StartServer
(
unsigned
short
port
)
{
#endif //YGOPRO_SERVER_MODE
if
(
net_evbase
)
if
(
net_evbase
)
return
false
;
return
false
;
net_evbase
=
event_base_new
();
net_evbase
=
event_base_new
();
...
...
gframe/netserver.h
View file @
6f962667
...
@@ -14,7 +14,9 @@ class NetServer {
...
@@ -14,7 +14,9 @@ class NetServer {
private:
private:
static
std
::
unordered_map
<
bufferevent
*
,
DuelPlayer
>
users
;
static
std
::
unordered_map
<
bufferevent
*
,
DuelPlayer
>
users
;
static
unsigned
short
server_port
;
static
unsigned
short
server_port
;
#ifndef YGOPRO_SERVER_MODE
static
event_base
*
net_evbase
;
#endif //YGOPRO_SERVER_MODE
static
event
*
broadcast_ev
;
static
event
*
broadcast_ev
;
static
evconnlistener
*
listener
;
static
evconnlistener
*
listener
;
static
DuelMode
*
duel_mode
;
static
DuelMode
*
duel_mode
;
...
@@ -23,9 +25,13 @@ private:
...
@@ -23,9 +25,13 @@ private:
static
unsigned
short
last_sent
;
static
unsigned
short
last_sent
;
public:
public:
#ifdef YGOPRO_SERVER_MODE
static
event_base
*
net_evbase
;
static
event_base
*
net_evbase
;
static
void
Init
duel
(
int
duel_
mode
,
int
lflist
);
static
void
Init
Duel
(
int
mode
,
int
lflist
);
static
unsigned
short
StartServer
(
unsigned
short
port
);
static
unsigned
short
StartServer
(
unsigned
short
port
);
#else
static
bool
StartServer
(
unsigned
short
port
);
#endif //YGOPRO_SERVER_MODE
static
bool
StartBroadcast
();
static
bool
StartBroadcast
();
static
void
StopServer
();
static
void
StopServer
();
static
void
StopBroadcast
();
static
void
StopBroadcast
();
...
...
ocgcore
@
4291281e
Subproject commit
0db546f8d051f478f410cb3d53161153ddb355bb
Subproject commit
4291281e2cfd31b76354d04a283641c045532133
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