Commit db3aa642 authored by nanahira's avatar nanahira

Merge branch 'patch-remove-ready' of ../versions/ygopro-mc into server-develop

parents 69b9e8cf d9d0cb8c
Pipeline #37916 failed with stages
in 4 minutes and 55 seconds
...@@ -165,7 +165,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -165,7 +165,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break; break;
} }
UpdateDeck(); UpdateDeck();
DuelClient::SendPacketToServer(CTOS_HS_READY);
mainGame->cbCategorySelect->setEnabled(false); mainGame->cbCategorySelect->setEnabled(false);
mainGame->cbDeckSelect->setEnabled(false); mainGame->cbDeckSelect->setEnabled(false);
break; break;
...@@ -615,7 +614,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -615,7 +614,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break; break;
} }
UpdateDeck(); UpdateDeck();
DuelClient::SendPacketToServer(CTOS_HS_READY);
mainGame->cbCategorySelect->setEnabled(false); mainGame->cbCategorySelect->setEnabled(false);
mainGame->cbDeckSelect->setEnabled(false); mainGame->cbDeckSelect->setEnabled(false);
} else { } else {
......
...@@ -437,11 +437,10 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) { ...@@ -437,11 +437,10 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, unsigned char* data, int len) {
duel_mode->ToObserver(dp); duel_mode->ToObserver(dp);
break; break;
} }
case CTOS_HS_READY:
case CTOS_HS_NOTREADY: { case CTOS_HS_NOTREADY: {
if (!duel_mode || duel_mode->pduel) if (!duel_mode || duel_mode->pduel)
return; return;
duel_mode->PlayerReady(dp, (CTOS_HS_NOTREADY - pktType) != 0); duel_mode->PlayerReady(dp, false);
break; break;
} }
case CTOS_HS_KICK: { case CTOS_HS_KICK: {
......
...@@ -276,7 +276,7 @@ public: ...@@ -276,7 +276,7 @@ public:
#define CTOS_EXTERNAL_ADDRESS 0x17 // CTOS_ExternalAddress #define CTOS_EXTERNAL_ADDRESS 0x17 // CTOS_ExternalAddress
#define CTOS_HS_TODUELIST 0x20 // no data #define CTOS_HS_TODUELIST 0x20 // no data
#define CTOS_HS_TOOBSERVER 0x21 // no data #define CTOS_HS_TOOBSERVER 0x21 // no data
#define CTOS_HS_READY 0x22 // no data // #define CTOS_HS_READY 0x22 // no data
#define CTOS_HS_NOTREADY 0x23 // no data #define CTOS_HS_NOTREADY 0x23 // no data
#define CTOS_HS_KICK 0x24 // CTOS_Kick #define CTOS_HS_KICK 0x24 // CTOS_Kick
#define CTOS_HS_START 0x25 // no data #define CTOS_HS_START 0x25 // no data
......
...@@ -408,6 +408,11 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) { ...@@ -408,6 +408,11 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
#endif #endif
valid = false; valid = false;
if (!valid) { if (!valid) {
if(duel_count == 0) {
STOC_HS_PlayerChange scpc;
scpc.status = (dp->type << 4) | PLAYERCHANGE_NOTREADY;
NetServer::SendPacketToPlayer(dp, STOC_HS_PLAYER_CHANGE, scpc);
}
STOC_ErrorMsg scem; STOC_ErrorMsg scem;
scem.msg = ERRMSG_DECKERROR; scem.msg = ERRMSG_DECKERROR;
scem.code = 0; scem.code = 0;
...@@ -416,6 +421,7 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) { ...@@ -416,6 +421,7 @@ void SingleDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
} }
if(duel_count == 0) { if(duel_count == 0) {
deck_error[dp->type] = DeckManager::LoadDeck(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec); deck_error[dp->type] = DeckManager::LoadDeck(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec);
PlayerReady(dp, true);
} else { } else {
if(DeckManager::LoadSide(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec)) { if(DeckManager::LoadSide(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec)) {
ready[dp->type] = true; ready[dp->type] = true;
......
...@@ -394,6 +394,9 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) { ...@@ -394,6 +394,9 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
#endif #endif
valid = false; valid = false;
if (!valid) { if (!valid) {
STOC_HS_PlayerChange scpc;
scpc.status = (dp->type << 4) | PLAYERCHANGE_NOTREADY;
NetServer::SendPacketToPlayer(dp, STOC_HS_PLAYER_CHANGE, scpc);
STOC_ErrorMsg scem; STOC_ErrorMsg scem;
scem.msg = ERRMSG_DECKERROR; scem.msg = ERRMSG_DECKERROR;
scem.code = 0; scem.code = 0;
...@@ -401,6 +404,7 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) { ...@@ -401,6 +404,7 @@ void TagDuel::UpdateDeck(DuelPlayer* dp, unsigned char* pdata, int len) {
return; return;
} }
deck_error[dp->type] = DeckManager::LoadDeck(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec); deck_error[dp->type] = DeckManager::LoadDeck(pdeck[dp->type], deckbuf.list, deckbuf.mainc, deckbuf.sidec);
PlayerReady(dp, true);
} }
void TagDuel::StartDuel(DuelPlayer* dp) { void TagDuel::StartDuel(DuelPlayer* dp) {
if(dp != host_player) if(dp != host_player)
......
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