--- a/QTfrontend/game.cpp Fri Jul 26 01:13:48 2019 +0200
+++ b/QTfrontend/game.cpp Sat Jul 27 03:42:17 2019 +0200
@@ -76,22 +76,29 @@
void HWGame::onClientDisconnect()
{
- switch (gameType)
+ if (demoIsPresent)
{
- case gtDemo:
- // for video recording we need demo anyway
- emit HaveRecord(rtNeither, demo);
- break;
- case gtNet:
- emit HaveRecord(rtDemo, demo);
- break;
- default:
- if (gameState == gsInterrupted || gameState == gsHalted)
- emit HaveRecord(rtSave, demo);
- else if (gameState == gsFinished)
+ switch (gameType)
+ {
+ case gtDemo:
+ // for video recording we need demo anyway
+ emit HaveRecord(rtNeither, demo);
+ break;
+ case gtNet:
emit HaveRecord(rtDemo, demo);
- else
- emit HaveRecord(rtNeither, demo);
+ break;
+ default:
+ if (gameState == gsInterrupted || gameState == gsHalted)
+ emit HaveRecord(rtSave, demo);
+ else if (gameState == gsFinished)
+ emit HaveRecord(rtDemo, demo);
+ else
+ emit HaveRecord(rtNeither, demo);
+ }
+ }
+ else
+ {
+ emit HaveRecord(rtNeither, demo);
}
SetGameState(gsStopped);
}
@@ -452,6 +459,11 @@
SetGameState(gsFinished);
break;
}
+ case 'm':
+ {
+ SetDemoPresence(false);
+ break;
+ }
case 'H':
{
SetGameState(gsHalted);
@@ -751,6 +763,11 @@
}
}
+void HWGame::SetDemoPresence(bool hasDemo)
+{
+ emit DemoPresenceChanged(hasDemo);
+}
+
void HWGame::abort()
{
QByteArray buf;