Commit fd3b2e70 authored by mercury233's avatar mercury233

Merge branch 'master' of https://github.com/Fluorohydride/ygopro into server

parents 2865d83f 91a0f7bb
...@@ -633,10 +633,9 @@ void ClientField::ReplaySwap() { ...@@ -633,10 +633,9 @@ void ClientField::ReplaySwap() {
} }
mainGame->dInfo.isFirst = !mainGame->dInfo.isFirst; mainGame->dInfo.isFirst = !mainGame->dInfo.isFirst;
std::swap(mainGame->dInfo.lp[0], mainGame->dInfo.lp[1]); std::swap(mainGame->dInfo.lp[0], mainGame->dInfo.lp[1]);
for(int i = 0; i < 16; ++i) std::swap(mainGame->dInfo.strLP[0], mainGame->dInfo.strLP[1]);
std::swap(mainGame->dInfo.strLP[0][i], mainGame->dInfo.strLP[1][i]); std::swap(mainGame->dInfo.hostname, mainGame->dInfo.clientname);
for(int i = 0; i < 20; ++i) std::swap(mainGame->dInfo.hostname_tag, mainGame->dInfo.clientname_tag);
std::swap(mainGame->dInfo.hostname[i], mainGame->dInfo.clientname[i]);
for(auto chit = chains.begin(); chit != chains.end(); ++chit) { for(auto chit = chains.begin(); chit != chains.end(); ++chit) {
chit->controler = 1 - chit->controler; chit->controler = 1 - chit->controler;
GetChainLocation(chit->controler, chit->location, chit->sequence, &chit->chain_pos); GetChainLocation(chit->controler, chit->location, chit->sequence, &chit->chain_pos);
......
...@@ -1026,6 +1026,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1026,6 +1026,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard* pcard; ClientCard* pcard;
mainGame->dField.activatable_cards.clear(); mainGame->dField.activatable_cards.clear();
mainGame->dField.activatable_descs.clear(); mainGame->dField.activatable_descs.clear();
mainGame->dField.conti_cards.clear();
count = BufferIO::ReadInt8(pbuf); count = BufferIO::ReadInt8(pbuf);
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
code = BufferIO::ReadInt32(pbuf); code = BufferIO::ReadInt32(pbuf);
...@@ -1155,6 +1156,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1155,6 +1156,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
} }
mainGame->dField.activatable_cards.clear(); mainGame->dField.activatable_cards.clear();
mainGame->dField.activatable_descs.clear(); mainGame->dField.activatable_descs.clear();
mainGame->dField.conti_cards.clear();
count = BufferIO::ReadInt8(pbuf); count = BufferIO::ReadInt8(pbuf);
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
code = BufferIO::ReadInt32(pbuf); code = BufferIO::ReadInt32(pbuf);
......
This diff is collapsed.
...@@ -33,6 +33,8 @@ public: ...@@ -33,6 +33,8 @@ public:
static void Pause(bool is_pause, bool is_step); static void Pause(bool is_pause, bool is_step);
static bool ReadReplayResponse(); static bool ReadReplayResponse();
static int ReplayThread(void* param); static int ReplayThread(void* param);
static bool StartDuel();
static void EndDuel();
static void Restart(bool refresh); static void Restart(bool refresh);
static void Undo(); static void Undo();
static bool ReplayAnalyze(char* msg, unsigned int len); static bool ReplayAnalyze(char* msg, unsigned int len);
......
...@@ -1720,8 +1720,10 @@ void SingleDuel::RefreshMzone(int player, int flag, int use_cache) { ...@@ -1720,8 +1720,10 @@ void SingleDuel::RefreshMzone(int player, int flag, int use_cache) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
#endif #endif
for (int i = 0; i < 5; ++i) { int qlen = 0;
while(qlen < len) {
int clen = BufferIO::ReadInt32(qbuf); int clen = BufferIO::ReadInt32(qbuf);
qlen += clen;
if (clen == 4) if (clen == 4)
continue; continue;
if (qbuf[11] & POS_FACEDOWN) if (qbuf[11] & POS_FACEDOWN)
...@@ -1746,8 +1748,10 @@ void SingleDuel::RefreshSzone(int player, int flag, int use_cache) { ...@@ -1746,8 +1748,10 @@ void SingleDuel::RefreshSzone(int player, int flag, int use_cache) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
#endif #endif
for (int i = 0; i < 8; ++i) { int qlen = 0;
while(qlen < len) {
int clen = BufferIO::ReadInt32(qbuf); int clen = BufferIO::ReadInt32(qbuf);
qlen += clen;
if (clen == 4) if (clen == 4)
continue; continue;
if (qbuf[11] & POS_FACEDOWN) if (qbuf[11] & POS_FACEDOWN)
...@@ -1772,9 +1776,9 @@ void SingleDuel::RefreshHand(int player, int flag, int use_cache) { ...@@ -1772,9 +1776,9 @@ void SingleDuel::RefreshHand(int player, int flag, int use_cache) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
#endif #endif
int qlen = 0, slen; int qlen = 0;
while(qlen < len) { while(qlen < len) {
slen = BufferIO::ReadInt32(qbuf); int slen = BufferIO::ReadInt32(qbuf);
int qflag = *(int*)qbuf; int qflag = *(int*)qbuf;
int pos = slen - 8; int pos = slen - 8;
if(qflag & QUERY_LSCALE) if(qflag & QUERY_LSCALE)
......
...@@ -1780,8 +1780,10 @@ void TagDuel::RefreshMzone(int player, int flag, int use_cache) { ...@@ -1780,8 +1780,10 @@ void TagDuel::RefreshMzone(int player, int flag, int use_cache) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
#endif #endif
for (int i = 0; i < 5; ++i) { int qlen = 0;
while(qlen < len) {
int clen = BufferIO::ReadInt32(qbuf); int clen = BufferIO::ReadInt32(qbuf);
qlen += clen;
if (clen == 4) if (clen == 4)
continue; continue;
if (qbuf[11] & POS_FACEDOWN) if (qbuf[11] & POS_FACEDOWN)
...@@ -1810,8 +1812,10 @@ void TagDuel::RefreshSzone(int player, int flag, int use_cache) { ...@@ -1810,8 +1812,10 @@ void TagDuel::RefreshSzone(int player, int flag, int use_cache) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
#endif #endif
for (int i = 0; i < 8; ++i) { int qlen = 0;
while(qlen < len) {
int clen = BufferIO::ReadInt32(qbuf); int clen = BufferIO::ReadInt32(qbuf);
qlen += clen;
if (clen == 4) if (clen == 4)
continue; continue;
if (qbuf[11] & POS_FACEDOWN) if (qbuf[11] & POS_FACEDOWN)
...@@ -1838,9 +1842,9 @@ void TagDuel::RefreshHand(int player, int flag, int use_cache) { ...@@ -1838,9 +1842,9 @@ void TagDuel::RefreshHand(int player, int flag, int use_cache) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayer(replay_recorder); NetServer::ReSendToPlayer(replay_recorder);
#endif #endif
int qlen = 0, slen; int qlen = 0;
while(qlen < len) { while(qlen < len) {
slen = BufferIO::ReadInt32(qbuf); int slen = BufferIO::ReadInt32(qbuf);
int qflag = *(int*)qbuf; int qflag = *(int*)qbuf;
int pos = slen - 8; int pos = slen - 8;
if(qflag & QUERY_LSCALE) if(qflag & QUERY_LSCALE)
......
Subproject commit 745ef5f647a3a41bc04ef704099303b221e14e39 Subproject commit 2cb77212b7399a9c8a0368cafe89744160dae812
Subproject commit ef47b28ebdcecb27007e749f7275febf92bd71f2 Subproject commit 0da9693357cd309e5539f853566b1ba3921866e0
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