void SingleDuel::RefreshSingle(int player, int location, int sequence, int flag) { char query_buffer[0x1000]; char* qbuf = query_buffer; BufferIO::WriteInt8(qbuf, MSG_UPDATE_CARD); BufferIO::WriteInt8(qbuf, player); BufferIO::WriteInt8(qbuf, location); BufferIO::WriteInt8(qbuf, sequence); int len = query_card(pduel, player, location, sequence, flag, (unsigned char*)qbuf, 0); NetServer::SendBufferToPlayer(players[player], STOC_GAME_MSG, query_buffer, len + 4); if(location == LOCATION_REMOVED && (qbuf[15] & POS_FACEDOWN)) return; if ((location & 0x90) || ((location & 0x2c) && (qbuf[15] & POS_FACEUP))) { NetServer::ReSendToPlayer(players[1 - player]); for(auto pit = observers.begin(); pit != observers.end(); ++pit) NetServer::ReSendToPlayer(*pit); } }
void SingleMode::SinglePlayRefreshSingle(int player, int location, int sequence, int flag) { unsigned char queryBuffer[0x1000]; /*int len = */query_card(pduel, player, location, sequence, flag, queryBuffer, 0); mainGame->dField.UpdateCard(mainGame->LocalPlayer(player), location, sequence, (char*)queryBuffer); }