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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
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
nanahira
ygopro
Commits
35a24f1e
Commit
35a24f1e
authored
Jun 27, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'patch-remove-ready-server' of ../versions/ygopro-mc into server-develop
parents
91edae35
398bb2bd
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
50 additions
and
7 deletions
+50
-7
gframe/netserver.cpp
gframe/netserver.cpp
+9
-0
gframe/premake5.lua
gframe/premake5.lua
+0
-3
gframe/replay.cpp
gframe/replay.cpp
+4
-0
gframe/replay.h
gframe/replay.h
+6
-0
gframe/single_duel.cpp
gframe/single_duel.cpp
+10
-0
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+9
-1
premake5.lua
premake5.lua
+12
-3
No files found.
gframe/netserver.cpp
View file @
35a24f1e
...
@@ -437,6 +437,14 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
...
@@ -437,6 +437,14 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode
->
ToObserver
(
dp
);
duel_mode
->
ToObserver
(
dp
);
break
;
break
;
}
}
#if defined(YGOPRO_SERVER_MODE) && !defined(YGOPRO_SERVER_RECEIVE_READY)
case
CTOS_HS_NOTREADY
:
{
if
(
!
duel_mode
||
duel_mode
->
pduel
)
return
;
duel_mode
->
PlayerReady
(
dp
,
false
);
break
;
}
#else
case
CTOS_HS_READY
:
case
CTOS_HS_READY
:
case
CTOS_HS_NOTREADY
:
{
case
CTOS_HS_NOTREADY
:
{
if
(
!
duel_mode
||
duel_mode
->
pduel
)
if
(
!
duel_mode
||
duel_mode
->
pduel
)
...
@@ -444,6 +452,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
...
@@ -444,6 +452,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode
->
PlayerReady
(
dp
,
(
CTOS_HS_NOTREADY
-
pktType
)
!=
0
);
duel_mode
->
PlayerReady
(
dp
,
(
CTOS_HS_NOTREADY
-
pktType
)
!=
0
);
break
;
break
;
}
}
#endif
case
CTOS_HS_KICK
:
{
case
CTOS_HS_KICK
:
{
if
(
!
duel_mode
||
duel_mode
->
pduel
)
if
(
!
duel_mode
||
duel_mode
->
pduel
)
return
;
return
;
...
...
gframe/premake5.lua
View file @
35a24f1e
...
@@ -39,9 +39,6 @@ end
...
@@ -39,9 +39,6 @@ end
if
SERVER_PRO2_SUPPORT
then
if
SERVER_PRO2_SUPPORT
then
defines
{
"SERVER_PRO2_SUPPORT"
}
defines
{
"SERVER_PRO2_SUPPORT"
}
end
end
if
SERVER_TAG_SURRENDER_CONFIRM
then
defines
{
"SERVER_TAG_SURRENDER_CONFIRM"
}
end
else
else
project
"ygopro"
project
"ygopro"
kind
"WindowedApp"
kind
"WindowedApp"
...
...
gframe/replay.cpp
View file @
35a24f1e
...
@@ -145,6 +145,7 @@ void Replay::SaveReplay(const wchar_t* name) {
...
@@ -145,6 +145,7 @@ void Replay::SaveReplay(const wchar_t* name) {
std
::
fwrite
(
comp_data
,
comp_size
,
1
,
rfp
);
std
::
fwrite
(
comp_data
,
comp_size
,
1
,
rfp
);
std
::
fclose
(
rfp
);
std
::
fclose
(
rfp
);
}
}
#ifndef YGOPRO_SERVER_MODE
bool
Replay
::
OpenReplay
(
const
wchar_t
*
name
)
{
bool
Replay
::
OpenReplay
(
const
wchar_t
*
name
)
{
FILE
*
rfp
=
mywfopen
(
name
,
"rb"
);
FILE
*
rfp
=
mywfopen
(
name
,
"rb"
);
if
(
!
rfp
)
{
if
(
!
rfp
)
{
...
@@ -260,6 +261,7 @@ void Replay::Rewind() {
...
@@ -260,6 +261,7 @@ void Replay::Rewind() {
data_position
=
0
;
data_position
=
0
;
can_read
=
true
;
can_read
=
true
;
}
}
#endif // YGOPRO_SERVER_MODE
void
Replay
::
Reset
()
{
void
Replay
::
Reset
()
{
is_recording
=
false
;
is_recording
=
false
;
is_replaying
=
false
;
is_replaying
=
false
;
...
@@ -273,6 +275,7 @@ void Replay::Reset() {
...
@@ -273,6 +275,7 @@ void Replay::Reset() {
decks
.
clear
();
decks
.
clear
();
script_name
.
clear
();
script_name
.
clear
();
}
}
#ifndef YGOPRO_SERVER_MODE
void
Replay
::
SkipInfo
(){
void
Replay
::
SkipInfo
(){
if
(
data_position
==
0
)
if
(
data_position
==
0
)
data_position
+=
info_offset
;
data_position
+=
info_offset
;
...
@@ -330,5 +333,6 @@ bool Replay::ReadInfo() {
...
@@ -330,5 +333,6 @@ bool Replay::ReadInfo() {
}
}
return
true
;
return
true
;
}
}
#endif // YGOPRO_SERVER_MODE
}
}
gframe/replay.h
View file @
35a24f1e
...
@@ -86,6 +86,9 @@ public:
...
@@ -86,6 +86,9 @@ public:
return
deck_index
;
return
deck_index
;
}
}
}
}
#ifdef YGOPRO_SERVER_MODE
void
Reset
();
#else
bool
OpenReplay
(
const
wchar_t
*
name
);
bool
OpenReplay
(
const
wchar_t
*
name
);
bool
ReadNextResponse
(
unsigned
char
resp
[]);
bool
ReadNextResponse
(
unsigned
char
resp
[]);
bool
ReadName
(
wchar_t
*
data
);
bool
ReadName
(
wchar_t
*
data
);
...
@@ -102,6 +105,7 @@ public:
...
@@ -102,6 +105,7 @@ public:
void
Reset
();
void
Reset
();
void
SkipInfo
();
void
SkipInfo
();
bool
IsReplaying
()
const
;
bool
IsReplaying
()
const
;
#endif // YGOPRO_SERVER_MODE
FILE
*
fp
{
nullptr
};
FILE
*
fp
{
nullptr
};
#ifdef _WIN32
#ifdef _WIN32
...
@@ -119,7 +123,9 @@ public:
...
@@ -119,7 +123,9 @@ public:
std
::
string
script_name
;
// 2 bytes, script name (max: 256 bytes)
std
::
string
script_name
;
// 2 bytes, script name (max: 256 bytes)
private:
private:
#ifndef YGOPRO_SERVER_MODE
bool
ReadInfo
();
bool
ReadInfo
();
#endif
unsigned
char
*
replay_data
;
unsigned
char
*
replay_data
;
size_t
replay_size
{};
size_t
replay_size
{};
...
...
gframe/single_duel.cpp
View file @
35a24f1e
...
@@ -408,6 +408,13 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
...
@@ -408,6 +408,13 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
#endif
#endif
valid
=
false
;
valid
=
false
;
if
(
!
valid
)
{
if
(
!
valid
)
{
#if defined(YGOPRO_SERVER_MODE) && !defined(YGOPRO_SERVER_RECEIVE_READY)
if
(
duel_count
==
0
)
{
STOC_HS_PlayerChange
scpc
;
scpc
.
status
=
(
dp
->
type
<<
4
)
|
PLAYERCHANGE_NOTREADY
;
NetServer
::
SendPacketToPlayer
(
dp
,
STOC_HS_PLAYER_CHANGE
,
scpc
);
}
#endif
STOC_ErrorMsg
scem
;
STOC_ErrorMsg
scem
;
scem
.
msg
=
ERRMSG_DECKERROR
;
scem
.
msg
=
ERRMSG_DECKERROR
;
scem
.
code
=
0
;
scem
.
code
=
0
;
...
@@ -416,6 +423,9 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
...
@@ -416,6 +423,9 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
}
}
if
(
duel_count
==
0
)
{
if
(
duel_count
==
0
)
{
deck_error
[
dp
->
type
]
=
DeckManager
::
LoadDeck
(
pdeck
[
dp
->
type
],
deckbuf
.
list
,
deckbuf
.
mainc
,
deckbuf
.
sidec
);
deck_error
[
dp
->
type
]
=
DeckManager
::
LoadDeck
(
pdeck
[
dp
->
type
],
deckbuf
.
list
,
deckbuf
.
mainc
,
deckbuf
.
sidec
);
#if defined(YGOPRO_SERVER_MODE) && !defined(YGOPRO_SERVER_RECEIVE_READY)
PlayerReady
(
dp
,
true
);
#endif
}
else
{
}
else
{
if
(
DeckManager
::
LoadSide
(
pdeck
[
dp
->
type
],
deckbuf
.
list
,
deckbuf
.
mainc
,
deckbuf
.
sidec
))
{
if
(
DeckManager
::
LoadSide
(
pdeck
[
dp
->
type
],
deckbuf
.
list
,
deckbuf
.
mainc
,
deckbuf
.
sidec
))
{
ready
[
dp
->
type
]
=
true
;
ready
[
dp
->
type
]
=
true
;
...
...
gframe/tag_duel.cpp
View file @
35a24f1e
...
@@ -394,6 +394,11 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
...
@@ -394,6 +394,11 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
#endif
#endif
valid
=
false
;
valid
=
false
;
if
(
!
valid
)
{
if
(
!
valid
)
{
#if defined(YGOPRO_SERVER_MODE) && !defined(YGOPRO_SERVER_RECEIVE_READY)
STOC_HS_PlayerChange
scpc
;
scpc
.
status
=
(
dp
->
type
<<
4
)
|
PLAYERCHANGE_NOTREADY
;
NetServer
::
SendPacketToPlayer
(
dp
,
STOC_HS_PLAYER_CHANGE
,
scpc
);
#endif
STOC_ErrorMsg
scem
;
STOC_ErrorMsg
scem
;
scem
.
msg
=
ERRMSG_DECKERROR
;
scem
.
msg
=
ERRMSG_DECKERROR
;
scem
.
code
=
0
;
scem
.
code
=
0
;
...
@@ -401,6 +406,9 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
...
@@ -401,6 +406,9 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
return
;
return
;
}
}
deck_error
[
dp
->
type
]
=
DeckManager
::
LoadDeck
(
pdeck
[
dp
->
type
],
deckbuf
.
list
,
deckbuf
.
mainc
,
deckbuf
.
sidec
);
deck_error
[
dp
->
type
]
=
DeckManager
::
LoadDeck
(
pdeck
[
dp
->
type
],
deckbuf
.
list
,
deckbuf
.
mainc
,
deckbuf
.
sidec
);
#if defined(YGOPRO_SERVER_MODE) && !defined(YGOPRO_SERVER_RECEIVE_READY)
PlayerReady
(
dp
,
true
);
#endif
}
}
void
TagDuel
::
StartDuel
(
DuelPlayer
*
dp
)
{
void
TagDuel
::
StartDuel
(
DuelPlayer
*
dp
)
{
if
(
dp
!=
host_player
)
if
(
dp
!=
host_player
)
...
@@ -728,7 +736,7 @@ void TagDuel::Surrender(DuelPlayer* dp) {
...
@@ -728,7 +736,7 @@ void TagDuel::Surrender(DuelPlayer* dp) {
if
(
dp
->
type
>
3
||
!
pduel
)
if
(
dp
->
type
>
3
||
!
pduel
)
return
;
return
;
uint32_t
player
=
dp
->
type
;
uint32_t
player
=
dp
->
type
;
#if !defined(YGOPRO_SERVER_MODE) || defined(SERVER_TAG_SURRENDER_CONFIRM)
#if !defined(YGOPRO_SERVER_MODE) || defined(
YGOPRO_
SERVER_TAG_SURRENDER_CONFIRM)
if
(
surrender
[
player
])
if
(
surrender
[
player
])
return
;
return
;
static
const
uint32_t
teammatemap
[]
=
{
1
,
0
,
3
,
2
};
static
const
uint32_t
teammatemap
[]
=
{
1
,
0
,
3
,
2
};
...
...
premake5.lua
View file @
35a24f1e
...
@@ -29,9 +29,12 @@ IRRKLANG_PRO_BUILD_IKPMP3 = false
...
@@ -29,9 +29,12 @@ IRRKLANG_PRO_BUILD_IKPMP3 = false
SERVER_MODE
=
true
SERVER_MODE
=
true
SERVER_ZIP_SUPPORT
=
false
SERVER_ZIP_SUPPORT
=
false
SERVER_PRO2_SUPPORT
=
false
SERVER_PRO2_SUPPORT
=
false
<<<<<<<
HEAD
SERVER_PRO3_SUPPORT
=
false
SERVER_PRO3_SUPPORT
=
false
SERVER_TAG_SURRENDER_CONFIRM
=
false
SERVER_TAG_SURRENDER_CONFIRM
=
false
USE_IRRKLANG
=
false
USE_IRRKLANG
=
false
=======
>>>>>>>
398
bb2bd44567c62089ea2ebba9b1effce34da3b
-- Read settings from command line or environment variables
-- Read settings from command line or environment variables
...
@@ -97,17 +100,26 @@ newoption { trigger = "mac-intel", category = "YGOPro", description = "Compile f
...
@@ -97,17 +100,26 @@ newoption { trigger = "mac-intel", category = "YGOPro", description = "Compile f
newoption
{
trigger
=
"server-mode"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-mode"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-zip-support"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-zip-support"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-pro2-support"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-pro2-support"
,
category
=
"YGOPro - server"
,
description
=
""
}
<<<<<<<
HEAD
newoption
{
trigger
=
"server-pro3-support"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-pro3-support"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-tag-surrender-confirm"
,
category
=
"YGOPro - server"
,
description
=
""
}
newoption
{
trigger
=
"server-tag-surrender-confirm"
,
category
=
"YGOPro - server"
,
description
=
""
}
=======
>>>>>>>
398
bb2bd44567c62089ea2ebba9b1effce34da3b
boolOptions
=
{
boolOptions
=
{
"compat-mycard"
,
"compat-mycard"
,
"no-lua-safe"
,
"no-lua-safe"
,
<<<<<<<
HEAD
"message-debug"
,
"message-debug"
,
"no-side-check"
,
"no-side-check"
,
"enable-debug-func"
,
"enable-debug-func"
,
"log-lua-memory-size"
,
"log-lua-memory-size"
,
"log-in-chat"
,
"log-in-chat"
,
=======
"no-side-check"
,
"server-tag-surrender-confirm"
,
"server-receive-ready"
,
>>>>>>>
398
bb2bd44567c62089ea2ebba9b1effce34da3b
}
}
for
_
,
boolOption
in
ipairs
(
boolOptions
)
do
for
_
,
boolOption
in
ipairs
(
boolOptions
)
do
...
@@ -170,9 +182,6 @@ if GetParam("server-pro3-support") then
...
@@ -170,9 +182,6 @@ if GetParam("server-pro3-support") then
SERVER_ZIP_SUPPORT
=
true
SERVER_ZIP_SUPPORT
=
true
SERVER_TAG_SURRENDER_CONFIRM
=
true
SERVER_TAG_SURRENDER_CONFIRM
=
true
end
end
if
GetParam
(
"server-tag-surrender-confirm"
)
then
SERVER_TAG_SURRENDER_CONFIRM
=
true
end
if
GetParam
(
"build-lua"
)
then
if
GetParam
(
"build-lua"
)
then
BUILD_LUA
=
true
BUILD_LUA
=
true
...
...
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