Browse Source

More fixes for campaigns.

Michał W. Urbańczyk 12 years ago
parent
commit
60c18f1bb8
2 changed files with 7 additions and 2 deletions
  1. 6 2
      client/CPreGame.cpp
  2. 1 0
      lib/Mapping/CCampaignHandler.h

+ 6 - 2
client/CPreGame.cpp

@@ -498,6 +498,10 @@ void CGPreGame::disposeGraphics()
 
 void CGPreGame::update()
 {
+	boost::unique_lock<boost::recursive_mutex> lock(*CPlayerInterface::pim); 
+	if(CGP != this) //don't update if you are not a main interface
+		return;
+
 	if (GH.listInt.empty())
 	{
 		GH.pushInt(this);
@@ -3565,10 +3569,10 @@ void CBonusSelection::startMap()
 {
 	StartInfo *si = new StartInfo(sInfo);
 
-	if (ourCampaign->mapsConquered.size())
+	/*if (ourCampaign->mapsConquered.size())
 	{
 		GH.popInts(1);
-	}
+	}*/
 	const CCampaignScenario & scenario = ourCampaign->camp->scenarios[ourCampaign->currentMap];
 
 	tlog1 << "Starting scenario " << int(ourCampaign->currentMap) << "\n";

+ 1 - 0
lib/Mapping/CCampaignHandler.h

@@ -155,6 +155,7 @@ public:
 
 	CCampaignState();
 	CCampaignState(unique_ptr<CCampaign> _camp);
+	~CCampaignState(){};
 
 	template <typename Handler> void serialize(Handler &h, const int version)
 	{