浏览代码

forward declaration

Laserlicht 2 年之前
父节点
当前提交
e18a4a09a9
共有 2 个文件被更改,包括 8 次插入7 次删除
  1. 4 4
      client/CServerHandler.cpp
  2. 4 3
      client/CServerHandler.h

+ 4 - 4
client/CServerHandler.cpp

@@ -676,10 +676,10 @@ void CServerHandler::startCampaignScenario(HighScoreParameter param, std::shared
 	if (!cs)
 	{
 		ourCampaign = si->campState;
-		calc.isCampaign = true;
-		calc.parameters.clear();
+		calc->isCampaign = true;
+		calc->parameters.clear();
 	}
-	calc.parameters.push_back(param);
+	calc->parameters.push_back(param);
 
 	GH.dispatchMainThread([ourCampaign, this]()
 	{
@@ -703,7 +703,7 @@ void CServerHandler::startCampaignScenario(HighScoreParameter param, std::shared
 			else
 			{
 				CMM->openCampaignScreen(ourCampaign->campaignSet);
-				GH.windows().createAndPushWindow<CHighScoreInputScreen>(true, calc);
+				GH.windows().createAndPushWindow<CHighScoreInputScreen>(true, *calc);
 			}
 		};
 		if(epilogue.hasPrologEpilog)

+ 4 - 3
client/CServerHandler.h

@@ -14,8 +14,6 @@
 #include "../lib/StartInfo.h"
 #include "../lib/CondSh.h"
 
-#include "mainmenu/CHighScoreScreen.h"
-
 VCMI_LIB_NAMESPACE_BEGIN
 
 class CConnection;
@@ -37,6 +35,9 @@ VCMI_LIB_NAMESPACE_END
 class CClient;
 class CBaseForLobbyApply;
 
+class HighScoreCalculation;
+class HighScoreParameter;
+
 // TODO: Add mutex so we can't set CONNECTION_CANCELLED if client already connected, but thread not setup yet
 enum class EClientState : ui8
 {
@@ -88,7 +89,7 @@ class CServerHandler : public IServerAPI, public LobbyInfo
 
 	std::vector<std::string> myNames;
 
-	HighScoreCalculation calc;
+	std::shared_ptr<HighScoreCalculation> calc;
 
 	void threadHandleConnection();
 	void threadRunServer();