Commit 0ca71d8e authored by nanahira's avatar nanahira

Merge branch 'patch-chat-reverse' into develop

parents 3472f1a2 13c2d7a9
Pipeline #26822 passed with stages
in 4 minutes and 33 seconds
...@@ -239,6 +239,7 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) { ...@@ -239,6 +239,7 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
mainGame->closeDoneSignal.Wait(); mainGame->closeDoneSignal.Wait();
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = false; mainGame->dInfo.isFinished = false;
mainGame->is_building = false; mainGame->is_building = false;
mainGame->device->setEventReceiver(&mainGame->menuHandler); mainGame->device->setEventReceiver(&mainGame->menuHandler);
...@@ -472,6 +473,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) { ...@@ -472,6 +473,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
case STOC_CHANGE_SIDE: { case STOC_CHANGE_SIDE: {
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dField.Clear(); mainGame->dField.Clear();
mainGame->is_building = true; mainGame->is_building = true;
mainGame->is_siding = true; mainGame->is_siding = true;
...@@ -776,6 +778,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) { ...@@ -776,6 +778,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
mainGame->closeDoneSignal.Wait(); mainGame->closeDoneSignal.Wait();
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = true; mainGame->dInfo.isFinished = true;
mainGame->dInfo.announce_cache.clear(); mainGame->dInfo.announce_cache.clear();
mainGame->is_building = false; mainGame->is_building = false;
...@@ -860,13 +863,13 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) { ...@@ -860,13 +863,13 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
int player = pkt->player; int player = pkt->player;
if(player < 4) { if(player < 4) {
if(!mainGame->dInfo.isTag) { if(!mainGame->dInfo.isTag) {
if(mainGame->dInfo.isStarted) { if(mainGame->dInfo.isInDuel) {
player = mainGame->LocalPlayer(player); player = mainGame->LocalPlayer(player);
if(player == 1 && mainGame->chkIgnore1->isChecked()) if(player == 1 && mainGame->chkIgnore1->isChecked())
break; break;
} }
} else { } else {
if(mainGame->dInfo.isStarted && !mainGame->dInfo.isFirst) if(mainGame->dInfo.isInDuel && !mainGame->dInfo.isFirst)
player ^= 2; player ^= 2;
if(player == 0) if(player == 0)
player = 0; player = 0;
...@@ -1111,6 +1114,7 @@ int DuelClient::ClientAnalyze(unsigned char* msg, unsigned int len) { ...@@ -1111,6 +1114,7 @@ int DuelClient::ClientAnalyze(unsigned char* msg, unsigned int len) {
mainGame->closeDoneSignal.Wait(); mainGame->closeDoneSignal.Wait();
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = false; mainGame->dInfo.isFinished = false;
mainGame->btnCreateHost->setEnabled(true); mainGame->btnCreateHost->setEnabled(true);
mainGame->btnJoinHost->setEnabled(true); mainGame->btnJoinHost->setEnabled(true);
...@@ -1362,6 +1366,7 @@ int DuelClient::ClientAnalyze(unsigned char* msg, unsigned int len) { ...@@ -1362,6 +1366,7 @@ int DuelClient::ClientAnalyze(unsigned char* msg, unsigned int len) {
mainGame->showcard = 0; mainGame->showcard = 0;
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dField.Clear(); mainGame->dField.Clear();
mainGame->dInfo.isInDuel = true;
int playertype = BufferIO::ReadUInt8(pbuf); int playertype = BufferIO::ReadUInt8(pbuf);
mainGame->dInfo.isFirst = (playertype & 0xf) ? false : true; mainGame->dInfo.isFirst = (playertype & 0xf) ? false : true;
if(playertype & 0xf0) if(playertype & 0xf0)
......
...@@ -127,6 +127,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -127,6 +127,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if(mainGame->dInfo.player_type == 7) { if(mainGame->dInfo.player_type == 7) {
DuelClient::StopClient(); DuelClient::StopClient();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = false; mainGame->dInfo.isFinished = false;
mainGame->device->setEventReceiver(&mainGame->menuHandler); mainGame->device->setEventReceiver(&mainGame->menuHandler);
mainGame->CloseDuelWindow(); mainGame->CloseDuelWindow();
......
...@@ -20,6 +20,7 @@ Game* mainGame; ...@@ -20,6 +20,7 @@ Game* mainGame;
void DuelInfo::Clear() { void DuelInfo::Clear() {
isStarted = false; isStarted = false;
isInDuel = false;
isFinished = false; isFinished = false;
isReplay = false; isReplay = false;
isReplaySkiping = false; isReplaySkiping = false;
......
...@@ -93,7 +93,8 @@ struct Config { ...@@ -93,7 +93,8 @@ struct Config {
struct DuelInfo { struct DuelInfo {
bool isStarted{ false }; bool isStarted{ false };
bool isFinished{ false }; bool isInDuel{ false };
bool isFinished{false};
bool isReplay{ false }; bool isReplay{ false };
bool isReplaySkiping{ false }; bool isReplaySkiping{ false };
bool isFirst{ false }; bool isFirst{ false };
......
...@@ -262,6 +262,7 @@ void ReplayMode::EndDuel() { ...@@ -262,6 +262,7 @@ void ReplayMode::EndDuel() {
} }
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = true; mainGame->dInfo.isFinished = true;
mainGame->dInfo.isReplay = false; mainGame->dInfo.isReplay = false;
mainGame->dInfo.isSingleMode = false; mainGame->dInfo.isSingleMode = false;
...@@ -280,7 +281,9 @@ void ReplayMode::EndDuel() { ...@@ -280,7 +281,9 @@ void ReplayMode::EndDuel() {
} }
void ReplayMode::Restart(bool refresh) { void ReplayMode::Restart(bool refresh) {
end_duel(pduel); end_duel(pduel);
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = true; mainGame->dInfo.isFinished = true;
mainGame->dField.Clear(); mainGame->dField.Clear();
//mainGame->device->setEventReceiver(&mainGame->dField); //mainGame->device->setEventReceiver(&mainGame->dField);
......
...@@ -162,6 +162,7 @@ int SingleMode::SinglePlayThread() { ...@@ -162,6 +162,7 @@ int SingleMode::SinglePlayThread() {
if(!is_closing) { if(!is_closing) {
mainGame->gMutex.lock(); mainGame->gMutex.lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->dInfo.isInDuel = false;
mainGame->dInfo.isFinished = true; mainGame->dInfo.isFinished = true;
mainGame->dInfo.isSingleMode = false; mainGame->dInfo.isSingleMode = false;
mainGame->gMutex.unlock(); mainGame->gMutex.unlock();
......
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