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
81c836ca
Commit
81c836ca
authored
Jan 17, 2025
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into develop
parents
7501b725
b57b331b
Pipeline
#32624
passed with stages
in 8 minutes and 54 seconds
Changes
5
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
13 additions
and
15 deletions
+13
-15
gframe/data_manager.cpp
gframe/data_manager.cpp
+4
-6
gframe/duelclient.cpp
gframe/duelclient.cpp
+3
-3
gframe/netserver.cpp
gframe/netserver.cpp
+3
-3
gframe/network.h
gframe/network.h
+1
-1
gframe/replay.h
gframe/replay.h
+2
-2
No files found.
gframe/data_manager.cpp
View file @
81c836ca
...
...
@@ -260,7 +260,7 @@ const wchar_t* DataManager::GetCounterName(int code) const {
const
wchar_t
*
DataManager
::
GetSetName
(
int
code
)
const
{
auto
csit
=
_setnameStrings
.
find
(
code
);
if
(
csit
==
_setnameStrings
.
end
())
return
nullptr
;
return
unknown_string
;
return
csit
->
second
.
c_str
();
}
std
::
vector
<
unsigned
int
>
DataManager
::
GetSetCodes
(
std
::
wstring
setname
)
const
{
...
...
@@ -356,11 +356,9 @@ std::wstring DataManager::FormatSetName(const uint16_t setcode[]) const {
if
(
!
setcode
[
i
])
break
;
const
wchar_t
*
setname
=
GetSetName
(
setcode
[
i
]);
if
(
setname
)
{
if
(
!
buffer
.
empty
())
buffer
.
push_back
(
L'|'
);
buffer
.
append
(
setname
);
}
if
(
!
buffer
.
empty
())
buffer
.
push_back
(
L'|'
);
buffer
.
append
(
setname
);
}
if
(
buffer
.
empty
())
return
std
::
wstring
(
unknown_string
);
...
...
gframe/duelclient.cpp
View file @
81c836ca
...
...
@@ -9,6 +9,7 @@
#include "deck_manager.h"
#include "replay.h"
#include <thread>
#include <array>
namespace
ygo
{
...
...
@@ -101,18 +102,17 @@ void DuelClient::ClientRead(bufferevent* bev, void* ctx) {
int
len
=
evbuffer_get_length
(
input
);
if
(
len
<
2
)
return
;
unsigned
char
*
duel_client_read
=
new
unsigned
char
[
SIZE_NETWORK_BUFFER
]
;
std
::
array
<
unsigned
char
,
SIZE_NETWORK_BUFFER
>
duel_client_read
;
uint16_t
packet_len
=
0
;
while
(
len
>=
2
)
{
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
if
(
len
<
packet_len
+
2
)
break
;
int
read_len
=
evbuffer_remove
(
input
,
duel_client_read
,
packet_len
+
2
);
int
read_len
=
evbuffer_remove
(
input
,
duel_client_read
.
data
()
,
packet_len
+
2
);
if
(
read_len
>
2
)
HandleSTOCPacketLan
(
&
duel_client_read
[
2
],
read_len
-
2
);
len
-=
packet_len
+
2
;
}
delete
[]
duel_client_read
;
}
void
DuelClient
::
ClientEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
if
(
events
&
BEV_EVENT_CONNECTED
)
{
...
...
gframe/netserver.cpp
View file @
81c836ca
...
...
@@ -4,6 +4,7 @@
#include "tag_duel.h"
#include "deck_manager.h"
#include <thread>
#include <array>
namespace
ygo
{
std
::
unordered_map
<
bufferevent
*
,
DuelPlayer
>
NetServer
::
users
;
...
...
@@ -126,18 +127,17 @@ void NetServer::ServerEchoRead(bufferevent *bev, void *ctx) {
int
len
=
evbuffer_get_length
(
input
);
if
(
len
<
2
)
return
;
unsigned
char
*
net_server_read
=
new
unsigned
char
[
SIZE_NETWORK_BUFFER
]
;
std
::
array
<
unsigned
char
,
SIZE_NETWORK_BUFFER
>
net_server_read
;
uint16_t
packet_len
=
0
;
while
(
len
>=
2
)
{
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
if
(
len
<
packet_len
+
2
)
break
;
int
read_len
=
evbuffer_remove
(
input
,
net_server_read
,
packet_len
+
2
);
int
read_len
=
evbuffer_remove
(
input
,
net_server_read
.
data
()
,
packet_len
+
2
);
if
(
read_len
>
2
)
HandleCTOSPacket
(
&
users
[
bev
],
&
net_server_read
[
2
],
read_len
-
2
);
len
-=
packet_len
+
2
;
}
delete
[]
net_server_read
;
}
void
NetServer
::
ServerEchoEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
if
(
events
&
(
BEV_EVENT_EOF
|
BEV_EVENT_ERROR
))
{
...
...
gframe/network.h
View file @
81c836ca
...
...
@@ -14,7 +14,7 @@
namespace
ygo
{
constexpr
int
SIZE_NETWORK_BUFFER
=
0x20000
;
constexpr
int
MAX_DATA_SIZE
=
SIZE_NETWORK_BUFFER
-
3
;
constexpr
int
MAX_DATA_SIZE
=
UINT16_MAX
-
1
;
constexpr
int
MAINC_MAX
=
250
;
// the limit of card_state
constexpr
int
SIDEC_MAX
=
MAINC_MAX
;
...
...
gframe/replay.h
View file @
81c836ca
...
...
@@ -13,8 +13,8 @@ namespace ygo {
#define REPLAY_UNIFORM 0x10
// max size
#define MAX_REPLAY_SIZE 0x20000
#define MAX_COMP_SIZE 0x2000
constexpr
int
MAX_REPLAY_SIZE
=
0x20000
;
constexpr
int
MAX_COMP_SIZE
=
UINT16_MAX
+
1
;
struct
ReplayHeader
{
unsigned
int
id
{};
...
...
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