Commit 5565fb21 authored by nanahira's avatar nanahira

support reconnect

parent 8fe09d34
......@@ -602,6 +602,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->dInfo.time_player = 2;
mainGame->dInfo.isReplaySwapped = false;
mainGame->dInfo.announce_cache.clear();
mainGame->dInfo.isReconnected = false;
mainGame->is_building = false;
mainGame->wCardImg->setVisible(true);
mainGame->wInfos->setVisible(true);
......@@ -680,6 +681,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->dInfo.isStarted = false;
mainGame->dInfo.isFinished = true;
mainGame->dInfo.announce_cache.clear();
mainGame->dInfo.isReconnected = false;
mainGame->is_building = false;
mainGame->wDeckEdit->setVisible(false);
mainGame->btnCreateHost->setEnabled(true);
......@@ -738,8 +740,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
case STOC_TIME_LIMIT: {
STOC_TimeLimit* pkt = (STOC_TimeLimit*)pdata;
int lplayer = mainGame->LocalPlayer(pkt->player);
//if(lplayer == 0)
// DuelClient::SendPacketToServer(CTOS_TIME_CONFIRM);
if(lplayer == 0 && mainGame->dInfo.isReconnected)
{
mainGame->dInfo.isReconnected = false;
DuelClient::SendPacketToServer(CTOS_TIME_CONFIRM);
}
if(lplayer == 1)
mainGame->dInfo.time_player = lplayer;
mainGame->dInfo.time_left[lplayer] = pkt->left_time;
......@@ -3698,6 +3703,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->gMutex.Lock();
mainGame->dField.Clear();
mainGame->dInfo.duel_rule = BufferIO::ReadInt8(pbuf);
mainGame->dInfo.isReconnected = true;
int val = 0;
for(int i = 0; i < 2; ++i) {
int p = mainGame->LocalPlayer(i);
......
......@@ -90,6 +90,7 @@ struct DuelInfo {
wchar_t str_card_count[2][16];
video::SColor card_count_color[2];
bool isReplaySwapped;
bool isReconnected;
std::vector<unsigned int> announce_cache;
};
......
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