Selaa lähdekoodia

* minor changes

mateuszb 16 vuotta sitten
vanhempi
sitoutus
49a142b92e

+ 1 - 0
AI/GeniusAI/BattleLogic.cpp

@@ -6,6 +6,7 @@
 #include <boost/lambda/if.hpp>
 
 #ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing
 #include <windows.h>
 HANDLE handleIn;
 HANDLE handleOut;

+ 2 - 1
AI/GeniusAI/CGeniusAI.cpp

@@ -8,6 +8,7 @@ using namespace std;
 using namespace GeniusAI;
 
 #if defined (_MSC_VER) && (_MSC_VER >= 1020) || (__MINGW32__)
+#define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing
 #include <windows.h>
 #endif
 
@@ -317,7 +318,7 @@ void CGeniusAI::addHeroObjectives(CGeniusAI::HypotheticalGameState::HeroModel &h
 		//TODO: what would the hero actually visit if he went to that spot
 		//      IE maybe the hero wants to visit a seemingly unguarded enemy town, but there is a hero on top of it.
 		//if(i->o->)
-		if(i->o->ID!=34)			//unless you are trying to visit a hero
+		if(i->o->ID!=HEROI_TYPE)			//unless you are trying to visit a hero
 		{
 			bool heroThere = false;
 			for(int ii = 0; ii < hgs.heroModels.size();ii++)

+ 1 - 0
CConsoleHandler.cpp

@@ -26,6 +26,7 @@
 	#define CONSOLE_WHITE "\x1b[1;40;39m"
 	#define CONSOLE_GRAY "\x1b[0;40;39m"
 #else
+	#define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing
 	#include <windows.h>
 	#include <dbghelp.h>
 	#pragma comment(lib, "dbghelp.lib")

+ 1 - 0
CGameInterface.cpp

@@ -2,6 +2,7 @@
 #include "CGameInterface.h"
 
 #ifdef _WIN32
+	#define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing
 	#include <windows.h> //for .dll libs
 #else
 	#include <dlfcn.h>

+ 2 - 2
client/CAdvmapInterface.cpp

@@ -1650,9 +1650,9 @@ void CAdvMapInt::keyPressed(const SDL_KeyboardEvent & key)
 		{
 			if(!active || !selection || key.state != SDL_PRESSED) 
 				return;
-			if(selection->ID == 34)
+			if(selection->ID == HEROI_TYPE)
 				LOCPLINT->openHeroWindow(static_cast<const CGHeroInstance*>(selection));
-			else if(selection->ID == 98)
+			else if(selection->ID == TOWNI_TYPE)
 				LOCPLINT->openTownWindow(static_cast<const CGTownInstance*>(selection));
 			return;
 		}

+ 0 - 1
client/CHeroWindow.cpp

@@ -2,7 +2,6 @@
 #include "AdventureMapButton.h"
 #include "CAdvmapInterface.h"
 #include "../CCallback.h"
-#include "CCastleInterface.h"
 #include "CGameInfo.h"
 #include "CHeroWindow.h"
 #include "CMessage.h"

+ 0 - 2
client/Graphics.cpp

@@ -1,7 +1,6 @@
 #include "../stdafx.h"
 #include "Graphics.h"
 #include "../hch/CDefHandler.h"
-#include "../hch/CObjectHandler.h"
 #include "SDL_Extensions.h"
 #include <boost/assign/std/vector.hpp> 
 #include <sstream>
@@ -16,7 +15,6 @@
 #include "../lib/VCMI_Lib.h"
 #include "../CCallback.h"
 #include "../hch/CTownHandler.h"
-#include "../hch/CDefObjInfoHandler.h"
 using namespace boost::assign;
 using namespace CSDL_Ext;
 #ifdef min

+ 18 - 2
global.h

@@ -139,6 +139,17 @@ namespace vstd
 				++itr;
 		return c2.end();
 	}
+	template <typename Container1, typename Container2>
+	typename Container2::const_iterator findFirstNot(const Container1 &c1, const Container2 &c2)//returns const first element of c2 not present in c1
+	{
+		typename Container2::const_iterator itr = c2.begin();
+		while(itr != c2.end())
+			if(!contains(c1,*itr))
+				return itr;
+			else
+				++itr;
+		return c2.end();
+	}
 	template <typename Container, typename Item>
 	typename Container::iterator find(const Container & c, const Item &i)
 	{
@@ -161,7 +172,12 @@ namespace vstd
 		return -1;
 	}
 	template <typename Container, typename Item>
-	typename Container::iterator find(Container & c, const Item &i)
+	typename Container::iterator find(Container & c, const Item &i) //returns iterator to the given element if present in container, end() if not
+	{
+		return std::find(c.begin(),c.end(),i);
+	}
+	template <typename Container, typename Item>
+	typename Container::const_iterator find(const Container & c, const Item &i)//returns const iterator to the given element if present in container, end() if not
 	{
 		return std::find(c.begin(),c.end(),i);
 	}
@@ -190,7 +206,7 @@ namespace vstd
 	public:
 		t1 &op1;
 		t2 op2;
-		assigner(t1 &a1, t2 a2)
+		assigner(t1 &a1, const t2 & a2)
 			:op1(a1), op2(a2)
 		{}
 		void operator()()

+ 1 - 0
hch/CVideoHandler.h

@@ -6,6 +6,7 @@ struct SDL_Surface;
 
 #ifdef _WIN32
 
+#define WIN32_LEAN_AND_MEAN //excludes rarely used stuff from windows headers - delete this line if something is missing
 #include <windows.h>
 
 #pragma pack(push,1)

+ 1 - 1
lib/CGameState.cpp

@@ -771,7 +771,7 @@ int CGameState::pickHero(int owner)
 }
 CGHeroInstance *CGameState::getHero(int objid)
 {
-	if(objid<0 || objid>=map->objects.size() || map->objects[objid]->ID!=34)
+	if(objid<0 || objid>=map->objects.size() || map->objects[objid]->ID!=HEROI_TYPE)
 		return NULL;
 	return static_cast<CGHeroInstance *>(map->objects[objid]);
 }

+ 50 - 132
mapHandler.cpp

@@ -16,6 +16,7 @@
 #include "lib/map.h"
 #include "hch/CDefHandler.h"
 #include "client/CConfigHandler.h"
+#include <boost/assign/list_of.hpp>
 
 /*
  * mapHandler.cpp, part of VCMI engine
@@ -278,49 +279,30 @@ void CMapHandler::borderAndTerrainBitmapInit()
 			{
 				if(i < 0 || i > (map->width-1) || j < 0  || j > (map->height-1))
 				{
+					int terBitmapNum = -1;
+
 					if(i==-1 && j==-1)
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[16].bitmap;
-						continue;
-					}
+						terBitmapNum = 16;
 					else if(i==-1 && j==(map->height))
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[19].bitmap;
-						continue;
-					}
+						terBitmapNum = 19;
 					else if(i==(map->width) && j==-1)
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[17].bitmap;
-						continue;
-					}
+						terBitmapNum = 17;
 					else if(i==(map->width) && j==(map->height))
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[18].bitmap;
-						continue;
-					}
+						terBitmapNum = 18;
 					else if(j == -1 && i > -1 && i < map->height)
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[22+rand()%2].bitmap;
-						continue;
-					}
+						terBitmapNum = 22+rand()%2;
 					else if(i == -1 && j > -1 && j < map->height)
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[33+rand()%2].bitmap;
-						continue;
-					}
+						terBitmapNum = 33+rand()%2;
 					else if(j == map->height && i >-1 && i < map->width)
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[29+rand()%2].bitmap;
-						continue;
-					}
+						terBitmapNum = 29+rand()%2;
 					else if(i == map->width && j > -1 && j < map->height)
-					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[25+rand()%2].bitmap;
-						continue;
-					}
+						terBitmapNum = 25+rand()%2;
 					else
+						terBitmapNum = rand()%16;
+
+					if(terBitmapNum != -1)
 					{
-						ttiles[i][j][k].terbitmap = bord->ourImages[rand()%16].bitmap;
+						ttiles[i][j][k].terbitmap = bord->ourImages[terBitmapNum].bitmap;
 						continue;
 					}
 				}
@@ -1006,38 +988,30 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	else if(!d2 && !d6 && !d4 && !d8 && !d7 && !d3 && !d9 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[22].bitmap); //visible left bottom corner
 		return partialHide->ourImages[34].bitmap; //visible left bottom corner
 	}
 	else if(!d2 && !d6 && !d4 && !d8 && d7 && !d3 && !d9 && !d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[15].bitmap); //visible left top corner
-		return partialHide->ourImages[35].bitmap;
+		return partialHide->ourImages[35].bitmap; //visible left top corner
 	}
 	else if(!d2 && !d6 && !d4 && d8 && d7 && !d3 && d9 && !d1)
 	{
-		//return partialHide->ourImages[rand()%2].bitmap; //visible top
 		return partialHide->ourImages[0].bitmap; //visible top
 	}
 	else if(d2 && !d6 && !d4 && !d8 && !d7 && d3 && !d9 && d1)
 	{
-		//return partialHide->ourImages[4+rand()%2].bitmap; //visble bottom
 		return partialHide->ourImages[4].bitmap; //visble bottom
 	}
 	else if(!d2 && !d6 && d4 && !d8 && d7 && !d3 && !d9 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[2+rand()%2].bitmap); //visible left
-		//return CSDL_Ext::rotate01(partialHide->ourImages[2].bitmap); //visible left
-		return partialHide->ourImages[36].bitmap;
+		return partialHide->ourImages[36].bitmap; //visible left
 	}
 	else if(!d2 && d6 && !d4 && !d8 && !d7 && d3 && d9 && !d1)
 	{
-		//return partialHide->ourImages[2+rand()%2].bitmap; //visible right
 		return partialHide->ourImages[2].bitmap; //visible right
 	}
 	else if(d2 && d6 && !d4 && !d8 && !d7)
 	{
-		//return partialHide->ourImages[12+2*(rand()%2)].bitmap; //visible bottom, right - bottom, right; left top corner hidden
 		return partialHide->ourImages[12].bitmap; //visible bottom, right - bottom, right; left top corner hidden
 	}
 	else if(!d2 && d6 && !d4 && d8 && !d1)
@@ -1046,14 +1020,11 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	else if(!d2 && !d6 && d4 && d8 && !d3)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[13].bitmap); //visible top, top - left, left; right bottom corner hidden
-		return partialHide->ourImages[37].bitmap;
+		return partialHide->ourImages[37].bitmap; //visible top, top - left, left; right bottom corner hidden
 	}
 	else if(d2 && !d6 && d4 && !d8 && !d9)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[12+2*(rand()%2)].bitmap); //visible left, left - bottom, bottom; right top corner hidden
-		//return CSDL_Ext::rotate01(partialHide->ourImages[12].bitmap); //visible left, left - bottom, bottom; right top corner hidden
-		return partialHide->ourImages[38].bitmap;
+		return partialHide->ourImages[38].bitmap; //visible left, left - bottom, bottom; right top corner hidden
 	}
 	else if(d2 && d6 && d4 && d8)
 	{
@@ -1069,13 +1040,11 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(!d2 && !d6 && !d4 && !d8 && d7 && !d3 && !d9 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[16].bitmap); //visible left corners
-		return partialHide->ourImages[39].bitmap;
+		return partialHide->ourImages[39].bitmap; //visible left corners
 	}
 	if(!d2 && !d6 && !d4 && !d8 && !d7 && d3 && !d9 && d1)
 	{
-		//return CSDL_Ext::hFlip(partialHide->ourImages[18].bitmap); //visible bottom corners
-		return partialHide->ourImages[40].bitmap;
+		return partialHide->ourImages[40].bitmap; //visible bottom corners
 	}
 	if(!d2 && !d6 && !d4 && !d8 && !d7 && !d3 && d9 && d1)
 	{
@@ -1083,8 +1052,7 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(!d2 && !d6 && !d4 && !d8 && d7 && d3 && !d9 && !d1)
 	{
-		//return CSDL_Ext::hFlip(partialHide->ourImages[17].bitmap); //visible top - left and bottom - right corners
-		return partialHide->ourImages[41].bitmap;
+		return partialHide->ourImages[41].bitmap; //visible top - left and bottom - right corners
 	}
 	if(!d2 && !d6 && !d4 && !d8 && !d7 && d3 && d9 && d1)
 	{
@@ -1096,13 +1064,11 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(!d2 && !d6 && !d4 && !d8 && d7 && !d3 && d9 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[20].bitmap); //visible corners without right bottom
-		return partialHide->ourImages[42].bitmap;
+		return partialHide->ourImages[42].bitmap; //visible corners without right bottom
 	}
 	if(!d2 && !d6 && !d4 && !d8 && d7 && d3 && !d9 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[19].bitmap); //visible corners without right top
-		return partialHide->ourImages[43].bitmap;
+		return partialHide->ourImages[43].bitmap; //visible corners without right top
 	}
 	if(!d2 && !d6 && !d4 && !d8 && d7 && d3 && d9 && d1)
 	{
@@ -1122,8 +1088,7 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(d2 && d6 && !d4 && d8)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[7].bitmap); //hidden left
-		return partialHide->ourImages[44].bitmap;
+		return partialHide->ourImages[44].bitmap; //hidden left
 	}
 	if(!d2 && d6 && d4 && !d8)
 	{
@@ -1139,8 +1104,7 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(!d2 && !d6 && !d4 && d8 && !d3 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[24].bitmap); //visible top and left bottom corner
-		return partialHide->ourImages[45].bitmap;
+		return partialHide->ourImages[45].bitmap; //visible top and left bottom corner
 	}
 	if(!d2 && !d6 && !d4 && d8 && d3 && d1)
 	{
@@ -1148,13 +1112,11 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(!d2 && !d6 && d4 && !d8 && !d3 && d9)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[26].bitmap); //visible left and right top corner
-		return partialHide->ourImages[46].bitmap;
+		return partialHide->ourImages[46].bitmap; //visible left and right top corner
 	}
 	if(!d2 && !d6 && d4 && !d8 && d3 && !d9)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[25].bitmap); //visible left and right bottom corner
-		return partialHide->ourImages[47].bitmap;
+		return partialHide->ourImages[47].bitmap; //visible left and right bottom corner
 	}
 	if(!d2 && !d6 && d4 && !d8 && d3 && d9)
 	{
@@ -1162,8 +1124,7 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(d2 && !d6 && !d4 && !d8 && d7 && !d9)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[30].bitmap); //visible bottom and left top corner
-		return partialHide->ourImages[48].bitmap;
+		return partialHide->ourImages[48].bitmap; //visible bottom and left top corner
 	}
 	if(d2 && !d6 && !d4 && !d8 && !d7 && d9)
 	{
@@ -1183,8 +1144,7 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	if(!d2 && d6 && !d4 && !d8 && d7 && d1)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[32].bitmap); //visible right and left cornres
-		return partialHide->ourImages[49].bitmap;
+		return partialHide->ourImages[49].bitmap; //visible right and left cornres
 	}
 	if(d2 && d6 && !d4 && !d8 && d7)
 	{
@@ -1196,13 +1156,11 @@ SDL_Surface * CMapHandler::getVisBitmap(int x, int y, const std::vector< std::ve
 	}
 	else if(!d2 && !d6 && d4 && d8 && d3)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[27].bitmap); //visible top, top - left, left; right bottom corner visible
-		return partialHide->ourImages[50].bitmap;
+		return partialHide->ourImages[50].bitmap; //visible top, top - left, left; right bottom corner visible
 	}
 	else if(d2 && !d6 && d4 && !d8 && d9)
 	{
-		//return CSDL_Ext::rotate01(partialHide->ourImages[28].bitmap); //visible left, left - bottom, bottom; right top corner visible
-		return partialHide->ourImages[51].bitmap;
+		return partialHide->ourImages[51].bitmap; //visible left, left - bottom, bottom; right top corner visible
 	}
 	//newly added
 	else if(!d2 && !d6 && !d4 && d8 && !d7 && !d3 && d9 && !d1) //visible t and tr
@@ -1341,51 +1299,19 @@ unsigned char CMapHandler::getHeroFrameNum(unsigned char dir, bool isMoving) con
 {
 	if(isMoving)
 	{
-		switch(dir)
-		{
-		case 1:
-			return 10;
-		case 2:
-			return 5;
-		case 3:
-			return 6;
-		case 4:
-			return 7;
-		case 5:
-			return 8;
-		case 6:
-			return 9;
-		case 7:
-			return 12;
-		case 8:
-			return 11;
-		default:
-			throw std::string("Something very wrong1.");
-		}
+		std::map<int, unsigned char> dirToFrame = boost::assign::map_list_of(1, 10)(2, 5)(3, 6)(4, 7)(5, 8)(6, 9)(7, 12)(8, 11);
+		if(dir >= 1 && dir <= 10)
+			return dirToFrame[dir];
+
+		throw std::string("Something very wrong1.");
 	}
 	else //if(isMoving)
 	{
-		switch(dir)
-		{
-		case 1:
-			return 13;
-		case 2:
-			return 0;
-		case 3:
-			return 1;
-		case 4:
-			return 2;
-		case 5:
-			return 3;
-		case 6:
-			return 4;
-		case 7:
-			return 15;
-		case 8:
-			return 14;
-		default:
-			throw std::string("Something very wrong2.");
-		}
+		std::map<int, unsigned char> dirToFrame = boost::assign::map_list_of(1, 13)(2, 0)(3, 1)(4, 2)(5, 3)(6, 4)(7, 15)(8, 14);
+		if(dir >= 1 && dir <= 10)
+			return dirToFrame[dir];
+
+		throw std::string("Something very wrong1.");
 	}
 }
 
@@ -1434,37 +1360,29 @@ unsigned char CMapHandler::getDir(const int3 &a, const int3 &b)
 	if(a.z!=b.z)
 		return -1; //error!
 	if(a.x==b.x+1 && a.y==b.y+1) //lt
-	{
 		return 0;
-	}
+
 	else if(a.x==b.x && a.y==b.y+1) //t
-	{
 		return 1;
-	}
+
 	else if(a.x==b.x-1 && a.y==b.y+1) //rt
-	{
 		return 2;
-	}
+
 	else if(a.x==b.x-1 && a.y==b.y) //r
-	{
 		return 3;
-	}
+
 	else if(a.x==b.x-1 && a.y==b.y-1) //rb
-	{
 		return 4;
-	}
+
 	else if(a.x==b.x && a.y==b.y-1) //b
-	{
 		return 5;
-	}
+
 	else if(a.x==b.x+1 && a.y==b.y-1) //lb
-	{
 		return 6;
-	}
+
 	else if(a.x==b.x+1 && a.y==b.y) //l
-	{
 		return 7;
-	}
+
 	return -2; //shouldn't happen
 }