Commit 175d9127 authored by nanahira's avatar nanahira

merge

parents 226c2ab7 a2037d81
...@@ -2297,7 +2297,13 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2297,7 +2297,13 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
} }
case MSG_SHUFFLE_SET_CARD: { case MSG_SHUFFLE_SET_CARD: {
std::vector<ClientCard*>::iterator cit; std::vector<ClientCard*>::iterator cit;
std::vector<ClientCard*>* lst = 0;
int loc = BufferIO::ReadInt8(pbuf);
int count = BufferIO::ReadInt8(pbuf); int count = BufferIO::ReadInt8(pbuf);
if(loc == LOCATION_MZONE)
lst = mainGame->dField.mzone;
else
lst = mainGame->dField.szone;
ClientCard* mc[5]; ClientCard* mc[5];
ClientCard* swp; ClientCard* swp;
int c, l, s, ps; int c, l, s, ps;
...@@ -2306,7 +2312,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2306,7 +2312,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
l = BufferIO::ReadInt8(pbuf); l = BufferIO::ReadInt8(pbuf);
s = BufferIO::ReadInt8(pbuf); s = BufferIO::ReadInt8(pbuf);
BufferIO::ReadInt8(pbuf); BufferIO::ReadInt8(pbuf);
mc[i] = mainGame->dField.mzone[c][s]; mc[i] = lst[c][s];
mc[i]->SetCode(0); mc[i]->SetCode(0);
if(!mainGame->dInfo.isReplaySkiping) { if(!mainGame->dInfo.isReplaySkiping) {
mc[i]->dPos = irr::core::vector3df((3.95f - mc[i]->curPos.X) / 10, 0, 0.05f); mc[i]->dPos = irr::core::vector3df((3.95f - mc[i]->curPos.X) / 10, 0, 0.05f);
...@@ -2324,9 +2330,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -2324,9 +2330,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
BufferIO::ReadInt8(pbuf); BufferIO::ReadInt8(pbuf);
ps = mc[i]->sequence; ps = mc[i]->sequence;
if (l > 0) { if (l > 0) {
swp = mainGame->dField.mzone[c][s]; swp = lst[c][s];
mainGame->dField.mzone[c][ps] = swp; lst[c][ps] = swp;
mainGame->dField.mzone[c][s] = mc[i]; lst[c][s] = mc[i];
mc[i]->sequence = s; mc[i]->sequence = s;
swp->sequence = ps; swp->sequence = ps;
} }
......
...@@ -499,6 +499,7 @@ bool ReplayMode::ReplayAnalyze(char* msg, unsigned int len) { ...@@ -499,6 +499,7 @@ bool ReplayMode::ReplayAnalyze(char* msg, unsigned int len) {
break; break;
} }
case MSG_SHUFFLE_SET_CARD: { case MSG_SHUFFLE_SET_CARD: {
pbuf++;
count = BufferIO::ReadInt8(pbuf); count = BufferIO::ReadInt8(pbuf);
pbuf += count * 8; pbuf += count * 8;
DuelClient::ClientAnalyze(offset, pbuf - offset); DuelClient::ClientAnalyze(offset, pbuf - offset);
......
...@@ -1066,6 +1066,7 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -1066,6 +1066,7 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
break; break;
} }
case MSG_SHUFFLE_SET_CARD: { case MSG_SHUFFLE_SET_CARD: {
int loc = BufferIO::ReadInt8(pbuf);
count = BufferIO::ReadInt8(pbuf); count = BufferIO::ReadInt8(pbuf);
pbuf += count * 8; pbuf += count * 8;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
...@@ -1075,8 +1076,14 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -1075,8 +1076,14 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder); NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif #endif
RefreshMzone(0, 0x181fff, 0); if(loc == LOCATION_MZONE) {
RefreshMzone(1, 0x181fff, 0); RefreshMzone(0, 0x181fff, 0);
RefreshMzone(1, 0x181fff, 0);
}
else {
RefreshSzone(0, 0x181fff, 0);
RefreshSzone(1, 0x181fff, 0);
}
break; break;
} }
case MSG_NEW_TURN: { case MSG_NEW_TURN: {
......
...@@ -417,6 +417,7 @@ bool SingleMode::SinglePlayAnalyze(char* msg, unsigned int len) { ...@@ -417,6 +417,7 @@ bool SingleMode::SinglePlayAnalyze(char* msg, unsigned int len) {
break; break;
} }
case MSG_SHUFFLE_SET_CARD: { case MSG_SHUFFLE_SET_CARD: {
pbuf++;
count = BufferIO::ReadInt8(pbuf); count = BufferIO::ReadInt8(pbuf);
pbuf += count * 8; pbuf += count * 8;
DuelClient::ClientAnalyze(offset, pbuf - offset); DuelClient::ClientAnalyze(offset, pbuf - offset);
......
...@@ -1020,6 +1020,7 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -1020,6 +1020,7 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
break; break;
} }
case MSG_SHUFFLE_SET_CARD: { case MSG_SHUFFLE_SET_CARD: {
int loc = BufferIO::ReadInt8(pbuf);
count = BufferIO::ReadInt8(pbuf); count = BufferIO::ReadInt8(pbuf);
pbuf += count * 8; pbuf += count * 8;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset);
...@@ -1031,8 +1032,13 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) { ...@@ -1031,8 +1032,13 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
NetServer::ReSendToPlayers(cache_recorder, replay_recorder); NetServer::ReSendToPlayers(cache_recorder, replay_recorder);
#endif #endif
RefreshMzone(0, 0x181fff, 0); if(loc == LOCATION_MZONE) {
RefreshMzone(1, 0x181fff, 0); RefreshMzone(0, 0x181fff, 0);
RefreshMzone(1, 0x181fff, 0);
} else {
RefreshSzone(0, 0x181fff, 0);
RefreshSzone(1, 0x181fff, 0);
}
break; break;
} }
case MSG_NEW_TURN: { case MSG_NEW_TURN: {
......
Subproject commit 73e30d79424afb20a39508e2a8fc596c37ae002f Subproject commit 9fb43bf0ef49641ba985b7b7a6666221acf5cf1e
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