Commit b6726cb3 authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:Fluorohydride/ygopro into develop

parents 5cec8b1b 1b1b8edd
...@@ -437,8 +437,8 @@ jobs: ...@@ -437,8 +437,8 @@ jobs:
- name: Copy premake files - name: Copy premake files
run: | run: |
cp -r premake/* . cp -pr premake/* .
cp -r resource/* . cp -pr resource/* .
- name: Use premake to generate make files (apt packages) - name: Use premake to generate make files (apt packages)
if: matrix.static-link != true if: matrix.static-link != true
...@@ -664,8 +664,8 @@ jobs: ...@@ -664,8 +664,8 @@ jobs:
- name: Copy premake files - name: Copy premake files
run: | run: |
cp -r premake/* . cp -pr premake/* .
cp -r resource/* . cp -pr resource/* .
- name: Use premake to generate make files (Homebrew packages) - name: Use premake to generate make files (Homebrew packages)
if: matrix.static-link != true if: matrix.static-link != true
......
...@@ -341,7 +341,7 @@ bool DeckManager::SaveDeck(const Deck& deck, const wchar_t* file) { ...@@ -341,7 +341,7 @@ bool DeckManager::SaveDeck(const Deck& deck, const wchar_t* file) {
return false; return false;
std::stringstream deckStream; std::stringstream deckStream;
SaveDeck(deck, deckStream); SaveDeck(deck, deckStream);
std::fwrite(deckStream.str().c_str(), 1, deckStream.str().length(), fp); std::fputs(deckStream.str().c_str(), fp);
std::fclose(fp); std::fclose(fp);
return true; return true;
} }
......
...@@ -3135,12 +3135,14 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -3135,12 +3135,14 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
else else
soundManager.PlaySoundEffect(SOUND_SPECIAL_SUMMON); soundManager.PlaySoundEffect(SOUND_SPECIAL_SUMMON);
myswprintf(event_string, dataManager.GetSysString(1605), dataManager.GetName(code)); myswprintf(event_string, dataManager.GetSysString(1605), dataManager.GetName(code));
mainGame->showcardcode = code; if(code) {
mainGame->showcarddif = 1; mainGame->showcardcode = code;
mainGame->showcard = 5; mainGame->showcarddif = 1;
mainGame->WaitFrameSignal(30); mainGame->showcard = 5;
mainGame->showcard = 0; mainGame->WaitFrameSignal(30);
mainGame->WaitFrameSignal(11); mainGame->showcard = 0;
mainGame->WaitFrameSignal(11);
}
} }
return true; return true;
} }
......
...@@ -1087,9 +1087,16 @@ int SingleDuel::Analyze(unsigned char* msgbuffer, unsigned int len) { ...@@ -1087,9 +1087,16 @@ int SingleDuel::Analyze(unsigned char* msgbuffer, unsigned int len) {
break; break;
} }
case MSG_SPSUMMONING: { case MSG_SPSUMMONING: {
pbufw = pbuf;
int cc = pbuf[4];
/*int cl = pbuf[5];*/
/*int cs = pbuf[6];*/
int cp = pbuf[7];
pbuf += 8; pbuf += 8;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); NetServer::SendBufferToPlayer(players[cc], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[1]); if (cp & POS_FACEDOWN)
BufferIO::Write<int32_t>(pbufw, 0);
NetServer::SendBufferToPlayer(players[1 - cc], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit); NetServer::ReSendToPlayer(*oit);
break; break;
......
...@@ -1092,11 +1092,20 @@ int TagDuel::Analyze(unsigned char* msgbuffer, unsigned int len) { ...@@ -1092,11 +1092,20 @@ int TagDuel::Analyze(unsigned char* msgbuffer, unsigned int len) {
break; break;
} }
case MSG_SPSUMMONING: { case MSG_SPSUMMONING: {
pbufw = pbuf;
int cc = pbuf[4];
/*int cl = pbuf[5];*/
/*int cs = pbuf[6];*/
int cp = pbuf[7];
pbuf += 8; pbuf += 8;
NetServer::SendBufferToPlayer(players[0], STOC_GAME_MSG, offset, pbuf - offset); auto pid = (cc == 0) ? 0 : 2;
NetServer::ReSendToPlayer(players[1]); NetServer::SendBufferToPlayer(players[pid], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[2]); NetServer::ReSendToPlayer(players[pid + 1]);
NetServer::ReSendToPlayer(players[3]); if (cp & POS_FACEDOWN)
BufferIO::Write<int32_t>(pbufw, 0);
pid = 2 - pid;
NetServer::SendBufferToPlayer(players[pid], STOC_GAME_MSG, offset, pbuf - offset);
NetServer::ReSendToPlayer(players[pid + 1]);
for(auto oit = observers.begin(); oit != observers.end(); ++oit) for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit); NetServer::ReSendToPlayer(*oit);
break; break;
......
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