Commit 35a24f1e authored by nanahira's avatar nanahira

Merge branch 'patch-remove-ready-server' of ../versions/ygopro-mc into server-develop

parents 91edae35 398bb2bd
......@@ -437,6 +437,14 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode->ToObserver(dp);
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_NOTREADY: {
if (!duel_mode || duel_mode->pduel)
......@@ -444,6 +452,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode->PlayerReady(dp, (CTOS_HS_NOTREADY - pktType) != 0);
break;
}
#endif
case CTOS_HS_KICK: {
if (!duel_mode || duel_mode->pduel)
return;
......
......@@ -39,9 +39,6 @@ end
if SERVER_PRO2_SUPPORT then
defines { "SERVER_PRO2_SUPPORT" }
end
if SERVER_TAG_SURRENDER_CONFIRM then
defines { "SERVER_TAG_SURRENDER_CONFIRM" }
end
else
project "ygopro"
kind "WindowedApp"
......
......@@ -145,6 +145,7 @@ void Replay::SaveReplay(const wchar_t* name) {
std::fwrite(comp_data, comp_size, 1, rfp);
std::fclose(rfp);
}
#ifndef YGOPRO_SERVER_MODE
bool Replay::OpenReplay(const wchar_t* name) {
FILE* rfp = mywfopen(name, "rb");
if(!rfp) {
......@@ -260,6 +261,7 @@ void Replay::Rewind() {
data_position = 0;
can_read = true;
}
#endif // YGOPRO_SERVER_MODE
void Replay::Reset() {
is_recording = false;
is_replaying = false;
......@@ -273,6 +275,7 @@ void Replay::Reset() {
decks.clear();
script_name.clear();
}
#ifndef YGOPRO_SERVER_MODE
void Replay::SkipInfo(){
if (data_position == 0)
data_position += info_offset;
......@@ -330,5 +333,6 @@ bool Replay::ReadInfo() {
}
return true;
}
#endif // YGOPRO_SERVER_MODE
}
......@@ -86,6 +86,9 @@ public:
return deck_index;
}
}
#ifdef YGOPRO_SERVER_MODE
void Reset();
#else
bool OpenReplay(const wchar_t* name);
bool ReadNextResponse(unsigned char resp[]);
bool ReadName(wchar_t* data);
......@@ -102,6 +105,7 @@ public:
void Reset();
void SkipInfo();
bool IsReplaying() const;
#endif // YGOPRO_SERVER_MODE
FILE* fp{ nullptr };
#ifdef _WIN32
......@@ -119,7 +123,9 @@ public:
std::string script_name; // 2 bytes, script name (max: 256 bytes)
private:
#ifndef YGOPRO_SERVER_MODE
bool ReadInfo();
#endif
unsigned char* replay_data;
size_t replay_size{};
......
......@@ -408,6 +408,13 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
#endif
valid = false;
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;
scem.msg = ERRMSG_DECKERROR;
scem.code = 0;
......@@ -416,6 +423,9 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
}
if(duel_count == 0) {
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 {
if(DeckManager::LoadSide(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec)) {
ready[dp->type] = true;
......
......@@ -394,6 +394,11 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
#endif
valid = false;
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;
scem.msg = ERRMSG_DECKERROR;
scem.code = 0;
......@@ -401,6 +406,9 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
return;
}
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) {
if(dp != host_player)
......@@ -728,7 +736,7 @@ void TagDuel::Surrender(DuelPlayer* dp) {
if(dp->type > 3 || !pduel)
return;
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])
return;
static const uint32_t teammatemap[] = { 1, 0, 3, 2 };
......
......@@ -29,9 +29,12 @@ IRRKLANG_PRO_BUILD_IKPMP3 = false
SERVER_MODE = true
SERVER_ZIP_SUPPORT = false
SERVER_PRO2_SUPPORT = false
<<<<<<< HEAD
SERVER_PRO3_SUPPORT = false
SERVER_TAG_SURRENDER_CONFIRM = false
USE_IRRKLANG = false
=======
>>>>>>> 398bb2bd44567c62089ea2ebba9b1effce34da3b
-- Read settings from command line or environment variables
......@@ -97,17 +100,26 @@ newoption { trigger = "mac-intel", category = "YGOPro", description = "Compile f
newoption { trigger = "server-mode", category = "YGOPro - server", description = "" }
newoption { trigger = "server-zip-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-tag-surrender-confirm", category = "YGOPro - server", description = "" }
=======
>>>>>>> 398bb2bd44567c62089ea2ebba9b1effce34da3b
boolOptions = {
"compat-mycard",
"no-lua-safe",
<<<<<<< HEAD
"message-debug",
"no-side-check",
"enable-debug-func",
"log-lua-memory-size",
"log-in-chat",
=======
"no-side-check",
"server-tag-surrender-confirm",
"server-receive-ready",
>>>>>>> 398bb2bd44567c62089ea2ebba9b1effce34da3b
}
for _, boolOption in ipairs(boolOptions) do
......@@ -170,9 +182,6 @@ if GetParam("server-pro3-support") then
SERVER_ZIP_SUPPORT = true
SERVER_TAG_SURRENDER_CONFIRM = true
end
if GetParam("server-tag-surrender-confirm") then
SERVER_TAG_SURRENDER_CONFIRM = true
end
if GetParam("build-lua") then
BUILD_LUA = true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment