Commit c39fc021 authored by nanahira's avatar nanahira

Merge branch 'server_mc' into server

parents 5859d279 4938a94e
......@@ -117,7 +117,12 @@ void NetServer::StopServer() {
return;
if(duel_mode)
duel_mode->EndDuel();
#ifdef YGOPRO_SERVER_MODE // For solving the problem of connection lost after duel. See https://github.com/Fluorohydride/ygopro/issues/2067 for details.
timeval etv = { 0, 1 };
event_base_loopexit(net_evbase, &etv);
#else
event_base_loopexit(net_evbase, 0);
#endif
}
void NetServer::StopBroadcast() {
if(!net_evbase || !broadcast_ev)
......
......@@ -193,7 +193,7 @@ void SingleDuel::LeaveGame(DuelPlayer* dp) {
NetServer::StopServer();
return;
}
if(!game_started) {
if(duel_stage == DUEL_STAGE_BEGIN) {
ready[host_pos] = false;
STOC_TypeChange sctc;
sctc.type = 0x10 | host_pos;
......@@ -633,8 +633,10 @@ void SingleDuel::DuelEndProc() {
NetServer::ReSendToPlayer(*oit);
#ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif
NetServer::StopServer();
#else
duel_stage = DUEL_STAGE_END;
#endif
} else {
int winc[3] = {0, 0, 0};
for(int i = 0; i < duel_count; ++i)
......@@ -649,8 +651,10 @@ void SingleDuel::DuelEndProc() {
NetServer::ReSendToPlayer(*oit);
#ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif
NetServer::StopServer();
#else
duel_stage = DUEL_STAGE_END;
#endif
} else {
if(players[0] != pplayer[0]) {
players[0] = pplayer[0];
......
......@@ -179,7 +179,7 @@ void TagDuel::LeaveGame(DuelPlayer* dp) {
NetServer::StopServer();
return;
}
if(!game_started) {
if(duel_stage == DUEL_STAGE_BEGIN) {
ready[host_pos] = false;
STOC_TypeChange sctc;
sctc.type = 0x10 | host_pos;
......@@ -640,8 +640,10 @@ void TagDuel::DuelEndProc() {
NetServer::ReSendToPlayer(*oit);
#ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif
NetServer::StopServer();
#else
duel_stage = DUEL_STAGE_END;
#endif
}
void TagDuel::Surrender(DuelPlayer* dp) {
if(dp->type > 3 || !pduel)
......
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