Browse Source

Many fixes, mostly related to hot-seat.

Michał W. Urbańczyk 15 years ago
parent
commit
d7a1898676
5 changed files with 19 additions and 16 deletions
  1. 2 2
      client/CBattleInterface.cpp
  2. 14 4
      client/CPlayerInterface.cpp
  3. 2 2
      lib/Connection.cpp
  4. 1 1
      lib/Connection.h
  5. 0 7
      mapHandler.cpp

+ 2 - 2
client/CBattleInterface.cpp

@@ -2543,9 +2543,9 @@ void CBattleInterface::stackIsCatapulting(const CatapultAttack & ca)
 void CBattleInterface::battleFinished(const BattleResult& br)
 {
 	bresult = &br;
-	curInt->pim->unlock();
+	LOCPLINT->pim->unlock();
 	animsAreDisplayed.waitUntil(false);
-	curInt->pim->lock();
+	LOCPLINT->pim->lock();
 	displayBattleFinished();
 }
 

+ 14 - 4
client/CPlayerInterface.cpp

@@ -120,9 +120,16 @@ CPlayerInterface::~CPlayerInterface()
 	delete pim;
 	delete showingDialog;
 	delete mainFPSmng;
-	if(adventureInt->active & CIntObject::KEYBOARD)
-		adventureInt->deactivateKeys();
-	delete adventureInt;
+	if(adventureInt)
+	{
+		if(adventureInt->active & CIntObject::KEYBOARD)
+			adventureInt->deactivateKeys();
+		delete adventureInt;
+		adventureInt = NULL;
+	}
+
+	if(cingconsole->active) //TODO
+		cingconsole->deactivate();
 	delete cingconsole;
 
 	for(std::map<int,SDL_Surface*>::iterator i=graphics->heroWins.begin(); i!= graphics->heroWins.end(); i++)
@@ -838,7 +845,7 @@ void CPlayerInterface::showInfoDialog(const std::string &text, const std::vector
 	pom.push_back(std::pair<std::string,CFunctionList<void()> >("IOKAY.DEF",0));
 	CInfoWindow * temp = new CInfoWindow(text,playerID,0,components,pom,false);
 
-	if(/*makingTurn && */GH.listInt.size())
+	if(makingTurn && GH.listInt.size() && LOCPLINT == this)
 	{
 		CGI->soundh->playSound(static_cast<soundBase::soundID>(soundID));
 		showingDialog->set(true);
@@ -1691,6 +1698,9 @@ void CPlayerInterface::finishMovement( const TryMoveHero &details, const int3 &h
 
 void CPlayerInterface::gameOver(ui8 player, bool victory )
 {
+	if(LOCPLINT != this)
+		return;
+
 	if(player == playerID)
 	{
 		if(!victory)

+ 2 - 2
lib/Connection.cpp

@@ -255,7 +255,7 @@ int CSaveFile::write( const void * data, unsigned size )
 	return size;
 }
 
-CLoadFile::CLoadFile( const std::string &fname )
+CLoadFile::CLoadFile( const std::string &fname, bool requireLatest )
 :sfile(new std::ifstream(fname.c_str(),std::ios::binary))
 {
 	registerTypes(*this);
@@ -278,7 +278,7 @@ CLoadFile::CLoadFile( const std::string &fname )
 		}
 
 		*this >> myVersion;	
-		if(myVersion != version)
+		if(myVersion != version && requireLatest)
 		{
 			tlog1 << "Error: Not supported save format! (file " << fname << " )\n";
 			delete sfile;

+ 1 - 1
lib/Connection.h

@@ -694,7 +694,7 @@ class DLL_EXPORT CLoadFile
 	}
 public:
 	std::ifstream *sfile;
-	CLoadFile(const std::string &fname);
+	CLoadFile(const std::string &fname, bool requireLatest = true);
 	~CLoadFile();
 	int read(const void * data, unsigned size);
 };

+ 0 - 7
mapHandler.cpp

@@ -434,13 +434,6 @@ void CMapHandler::init()
 	initObjectRects();
 	tlog0<<"\tMaking object rects: "<<th.getDif()<<std::endl;
 
-
-	for (int i = 0; i < 8 ; i++)
-	{
-		TerrainTile2 &t = ttiles[24+i][0][0];
-		//tlog0 << t.objects.front().first->defInfo->name << ' ';
-
-	}
 }
 
 // Update map window screen