mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	More changes for netcode/serialization
Removed not needed stuff
This commit is contained in:
		| @@ -4,6 +4,7 @@ | ||||
| #include "CPlayerInterface.h" | ||||
| #include "hch/CPreGameTextHandler.h" | ||||
| #include "hch/CGeneralTextHandler.h" | ||||
| #include "hch/CDefHandler.h" | ||||
| #include "hch/CTownHandler.h" | ||||
| #include "CPathfinder.h" | ||||
| #include "CGameInfo.h" | ||||
|   | ||||
							
								
								
									
										191
									
								
								CCallback.cpp
									
									
									
									
									
								
							
							
						
						
									
										191
									
								
								CCallback.cpp
									
									
									
									
									
								
							| @@ -14,63 +14,8 @@ | ||||
| #include "CPlayerInterface.h" | ||||
| #include "hch/CBuildingHandler.h" | ||||
| #include "hch/CObjectHandler.h" | ||||
| LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); | ||||
| //LUALIB_API int (luaL_error) (lua_State *L, const char *fmt, ...); | ||||
|  | ||||
| int CCallback::lowestSpeed(CGHeroInstance * chi) | ||||
| { | ||||
| 	int min = 150; | ||||
| 	for (  std::map<int,std::pair<CCreature*,int> >::iterator i = chi->army.slots.begin();  | ||||
| 		   i!=chi->army.slots.end();		 i++													) | ||||
| 	{ | ||||
| 		if (min>(*i).second.first->speed) | ||||
| 			min = (*i).second.first->speed; | ||||
| 	} | ||||
| 	return min; | ||||
| } | ||||
| int CCallback::valMovePoints(CGHeroInstance * chi) | ||||
| { | ||||
| 	int ret = 1270+70*lowestSpeed(chi); | ||||
| 	if (ret>2000)  | ||||
| 		ret=2000; | ||||
| 	 | ||||
| 	//TODO: additional bonuses (but they aren't currently stored in chi) | ||||
|  | ||||
| 	return ret; | ||||
| } | ||||
| void CCallback::newTurn() | ||||
| { | ||||
| 	//std::map<int, PlayerState>::iterator i = gs->players.begin() ; | ||||
| 	gs->day++; | ||||
| 	for (std::set<CCPPObjectScript *>::iterator i=gs->cppscripts.begin();i!=gs->cppscripts.end();i++) | ||||
| 	{ | ||||
| 		(*i)->newTurn(); | ||||
| 	} | ||||
| 	for ( std::map<int, PlayerState>::iterator i=gs->players.begin() ; i!=gs->players.end();i++) | ||||
| 	{ | ||||
| 		//handle heroes///////////////////////////// | ||||
| 		for (int j=0;j<(*i).second.heroes.size();j++) | ||||
| 		{ | ||||
| 			(*i).second.heroes[j]->movement = valMovePoints((*i).second.heroes[j]); | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		//handle towns///////////////////////////// | ||||
| 		for(int j=0;j<i->second.towns.size();j++) | ||||
| 		{ | ||||
| 			i->second.towns[j]->builded=0; | ||||
| 			if(getDate(1)==1) //first day of week | ||||
| 			{ | ||||
| 				for(int k=0;k<CREATURES_PER_TOWN;k++) | ||||
| 				{ | ||||
| 					if(i->second.towns[j]->creatureDwelling(k))//there is dwelling | ||||
| 						i->second.towns[j]->strInfo.creatures[k]+=i->second.towns[j]->creatureGrowth(k); | ||||
| 				} | ||||
| 			} | ||||
| 			if((gs->day>1) && i->first<PLAYER_LIMIT) | ||||
| 				i->second.resources[6]+=i->second.towns[j]->dailyIncome(); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| bool CCallback::moveHero(int ID, CPath * path, int idtype, int pathType) | ||||
| { | ||||
| 	CGHeroInstance * hero = NULL; | ||||
| @@ -93,7 +38,7 @@ bool CCallback::moveHero(int ID, CPath * path, int idtype, int pathType) | ||||
| 	else //idtype==1; player<0 | ||||
| 	{ | ||||
|  | ||||
| 		for(std::map<int, PlayerState>::iterator j=CGI->state->players.begin(); j!=CGI->state->players.end(); ++j) | ||||
| 		for(std::map<ui8, PlayerState>::iterator j=CGI->state->players.begin(); j!=CGI->state->players.end(); ++j) | ||||
| 		{ | ||||
| 			for (int i=0; i<(*j).second.heroes.size();i++) | ||||
| 			{ | ||||
| @@ -193,7 +138,7 @@ bool CCallback::moveHero(int ID, CPath * path, int idtype, int pathType) | ||||
|  | ||||
| 				//notify interfacesabout move | ||||
| 				int nn=0; //number of interfece of currently browsed player | ||||
| 				for(std::map<int, PlayerState>::iterator j=CGI->state->players.begin(); j!=CGI->state->players.end(); ++j)//CGI->state->players.size(); ++j) //for testing | ||||
| 				for(std::map<ui8, PlayerState>::iterator j=CGI->state->players.begin(); j!=CGI->state->players.end(); ++j)//CGI->state->players.size(); ++j) //for testing | ||||
| 				{ | ||||
| 					if (j->first > PLAYER_LIMIT) | ||||
| 						break; | ||||
| @@ -425,30 +370,7 @@ std::vector<int> CCallback::getResourceAmount() | ||||
| } | ||||
| int CCallback::getDate(int mode) | ||||
| { | ||||
| 	int temp; | ||||
| 	switch (mode) | ||||
| 	{ | ||||
| 	case 0: | ||||
| 		return gs->day; | ||||
| 		break; | ||||
| 	case 1: | ||||
| 		temp = (gs->day)%7; | ||||
| 		if (temp) | ||||
| 			return temp; | ||||
| 		else return 7; | ||||
| 		break; | ||||
| 	case 2: | ||||
| 		temp = ((gs->day-1)/7)+1; | ||||
| 		if (!(temp%4)) | ||||
| 			return 4; | ||||
| 		else  | ||||
| 			return (temp%4); | ||||
| 		break; | ||||
| 	case 3: | ||||
| 		return ((gs->day-1)/28)+1; | ||||
| 		break; | ||||
| 	} | ||||
| 	return 0; | ||||
| 	return gs->getDate(mode); | ||||
| } | ||||
| bool CCallback::verifyPath(CPath * path, bool blockSea) | ||||
| { | ||||
| @@ -504,7 +426,7 @@ bool CCallback::isVisible(int3 pos, int Player) | ||||
| std::vector < const CGTownInstance *> CCallback::getTownsInfo(bool onlyOur) | ||||
| { | ||||
| 	std::vector < const CGTownInstance *> ret = std::vector < const CGTownInstance *>(); | ||||
| 	for ( std::map<int, PlayerState>::iterator i=gs->players.begin() ; i!=gs->players.end();i++) | ||||
| 	for ( std::map<ui8, PlayerState>::iterator i=gs->players.begin() ; i!=gs->players.end();i++) | ||||
| 	{ | ||||
| 		for (int j=0;j<(*i).second.towns.size();j++) | ||||
| 		{ | ||||
| @@ -519,7 +441,7 @@ std::vector < const CGTownInstance *> CCallback::getTownsInfo(bool onlyOur) | ||||
| std::vector < const CGHeroInstance *> CCallback::getHeroesInfo(bool onlyOur) | ||||
| { | ||||
| 	std::vector < const CGHeroInstance *> ret = std::vector < const CGHeroInstance *>(); | ||||
| 	for ( std::map<int, PlayerState>::iterator i=gs->players.begin() ; i!=gs->players.end();i++) | ||||
| 	for ( std::map<ui8, PlayerState>::iterator i=gs->players.begin() ; i!=gs->players.end();i++) | ||||
| 	{ | ||||
| 		for (int j=0;j<(*i).second.heroes.size();j++) | ||||
| 		{ | ||||
| @@ -1037,77 +959,68 @@ void CScriptCallback::startBattle(int heroID, CCreatureSet * army, int3 tile) // | ||||
| } | ||||
| void CLuaCallback::registerFuncs(lua_State * L) | ||||
| { | ||||
| 	lua_newtable(L); | ||||
|  | ||||
| #define REGISTER_C_FUNC(x) \ | ||||
| 	lua_pushstring(L, #x);      \ | ||||
| 	lua_pushcfunction(L, x);    \ | ||||
| 	lua_rawset(L, -3) | ||||
|  | ||||
| 	REGISTER_C_FUNC(getPos); | ||||
| 	REGISTER_C_FUNC(changePrimSkill); | ||||
| 	REGISTER_C_FUNC(getGnrlText); | ||||
| 	REGISTER_C_FUNC(getSelectedHero); | ||||
|  | ||||
| 	/* | ||||
| 	REGISTER_C_FUNC(changePrimSkill); | ||||
| 	REGISTER_C_FUNC(getGnrlText); | ||||
| 	REGISTER_C_FUNC(changePrimSkill); | ||||
| 	REGISTER_C_FUNC(getGnrlText); | ||||
| 	REGISTER_C_FUNC(changePrimSkill); | ||||
| 	REGISTER_C_FUNC(getGnrlText);*/ | ||||
| 	 | ||||
|  | ||||
| 	lua_setglobal(L, "vcmi"); | ||||
| 	#undef REGISTER_C_FUNC | ||||
| //	lua_newtable(L); | ||||
| // | ||||
| //#define REGISTER_C_FUNC(x) \ | ||||
| //	lua_pushstring(L, #x);      \ | ||||
| //	lua_pushcfunction(L, x);    \ | ||||
| //	lua_rawset(L, -3) | ||||
| // | ||||
| //	REGISTER_C_FUNC(getPos); | ||||
| //	REGISTER_C_FUNC(changePrimSkill); | ||||
| //	REGISTER_C_FUNC(getGnrlText); | ||||
| //	REGISTER_C_FUNC(getSelectedHero); | ||||
| // | ||||
| //	lua_setglobal(L, "vcmi"); | ||||
| //	#undef REGISTER_C_FUNC | ||||
| } | ||||
| int CLuaCallback::getPos(lua_State * L)//(CGObjectInstance * object); | ||||
| {	 | ||||
| 	const int args = lua_gettop(L); // number of arguments | ||||
| 	if ((args < 1) || !lua_isnumber(L, 1) ) | ||||
| 		luaL_error(L, | ||||
| 			"Incorrect arguments to getPos([Object address])"); | ||||
| 	CGObjectInstance * object = (CGObjectInstance *)(lua_tointeger(L, 1)); | ||||
| 	lua_pushinteger(L,object->pos.x); | ||||
| 	lua_pushinteger(L,object->pos.y); | ||||
| 	lua_pushinteger(L,object->pos.z); | ||||
| 	//const int args = lua_gettop(L); // number of arguments | ||||
| 	//if ((args < 1) || !lua_isnumber(L, 1) ) | ||||
| 	//	luaL_error(L, | ||||
| 	//		"Incorrect arguments to getPos([Object address])"); | ||||
| 	//CGObjectInstance * object = (CGObjectInstance *)(lua_tointeger(L, 1)); | ||||
| 	//lua_pushinteger(L,object->pos.x); | ||||
| 	//lua_pushinteger(L,object->pos.y); | ||||
| 	//lua_pushinteger(L,object->pos.z); | ||||
| 	return 3; | ||||
| } | ||||
| int CLuaCallback::changePrimSkill(lua_State * L)//(int ID, int which, int val); | ||||
| {	 | ||||
| 	const int args = lua_gettop(L); // number of arguments | ||||
| 	if ((args < 1) || !lua_isnumber(L, 1) || | ||||
| 	    ((args >= 2) && !lua_isnumber(L, 2)) || | ||||
| 	    ((args >= 3) && !lua_isnumber(L, 3))		) | ||||
| 	{ | ||||
| 		luaL_error(L, | ||||
| 			"Incorrect arguments to changePrimSkill([Hero ID], [Which Primary skill], [Change by])"); | ||||
| 	} | ||||
| 	int ID = lua_tointeger(L, 1), | ||||
| 		which = lua_tointeger(L, 2), | ||||
| 		val = lua_tointeger(L, 3); | ||||
| 	//const int args = lua_gettop(L); // number of arguments | ||||
| 	//if ((args < 1) || !lua_isnumber(L, 1) || | ||||
| 	//    ((args >= 2) && !lua_isnumber(L, 2)) || | ||||
| 	//    ((args >= 3) && !lua_isnumber(L, 3))		) | ||||
| 	//{ | ||||
| 	//	luaL_error(L, | ||||
| 	//		"Incorrect arguments to changePrimSkill([Hero ID], [Which Primary skill], [Change by])"); | ||||
| 	//} | ||||
| 	//int ID = lua_tointeger(L, 1), | ||||
| 	//	which = lua_tointeger(L, 2), | ||||
| 	//	val = lua_tointeger(L, 3); | ||||
|  | ||||
| 	CScriptCallback::changePrimSkill(ID,which,val); | ||||
| 	//CScriptCallback::changePrimSkill(ID,which,val); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
| int CLuaCallback::getGnrlText(lua_State * L) //(int which),returns string | ||||
| { | ||||
| 	const int args = lua_gettop(L); // number of arguments | ||||
| 	if ((args < 1) || !lua_isnumber(L, 1) ) | ||||
| 		luaL_error(L, | ||||
| 			"Incorrect arguments to getGnrlText([Text ID])"); | ||||
| 	int which = lua_tointeger(L,1); | ||||
| 	lua_pushstring(L,CGI->generaltexth->allTexts[which].c_str()); | ||||
| 	//const int args = lua_gettop(L); // number of arguments | ||||
| 	//if ((args < 1) || !lua_isnumber(L, 1) ) | ||||
| 	//	luaL_error(L, | ||||
| 	//		"Incorrect arguments to getGnrlText([Text ID])"); | ||||
| 	//int which = lua_tointeger(L,1); | ||||
| 	//lua_pushstring(L,CGI->generaltexth->allTexts[which].c_str()); | ||||
| 	return 1; | ||||
| } | ||||
| int CLuaCallback::getSelectedHero(lua_State * L) //(),returns int (ID of hero, -1 if no hero is seleceted) | ||||
| { | ||||
| 	int ret; | ||||
| 	if (LOCPLINT->adventureInt->selection.type == HEROI_TYPE) | ||||
| 		ret = ((CGHeroInstance*)(LOCPLINT->adventureInt->selection.selected))->subID; | ||||
| 	else  | ||||
| 		ret = -1; | ||||
| 	lua_pushinteger(L,ret); | ||||
| 	//int ret; | ||||
| 	//if (LOCPLINT->adventureInt->selection.type == HEROI_TYPE) | ||||
| 	//	ret = ((CGHeroInstance*)(LOCPLINT->adventureInt->selection.selected))->subID; | ||||
| 	//else  | ||||
| 	//	ret = -1; | ||||
| 	//lua_pushinteger(L,ret); | ||||
| 	return 1; | ||||
| } | ||||
|   | ||||
							
								
								
									
										11
									
								
								CCallback.h
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								CCallback.h
									
									
									
									
									
								
							| @@ -85,11 +85,8 @@ struct HeroMoveDetails | ||||
| class CCallback : public ICallback | ||||
| { | ||||
| private: | ||||
| 	void newTurn(); | ||||
| 	CCallback(CGameState * GS, int Player):gs(GS),player(Player){}; | ||||
| 	CGameState * gs; | ||||
| 	int lowestSpeed(CGHeroInstance * chi); //speed of the slowest stack | ||||
| 	int valMovePoints(CGHeroInstance * chi);  | ||||
| 	bool isVisible(int3 pos, int Player); | ||||
|  | ||||
| protected: | ||||
| @@ -148,7 +145,7 @@ public: | ||||
| 	 | ||||
|  | ||||
| //friends | ||||
| 	friend int _tmain(int argc, _TCHAR* argv[]); | ||||
| 	friend class CClient; | ||||
| }; | ||||
| class CScriptCallback | ||||
| { | ||||
| @@ -174,7 +171,8 @@ public: | ||||
| 	void startBattle(int heroID, CCreatureSet * army, int3 tile); //for hero<=>neutral army | ||||
|  | ||||
| 	//friends | ||||
| 	friend CGameState; | ||||
| 	friend class CGameState; | ||||
| 	friend class CClient; | ||||
| }; | ||||
| class CLuaCallback : public CScriptCallback | ||||
| { | ||||
| @@ -186,6 +184,7 @@ private: | ||||
| 	static int getGnrlText(lua_State * L);//(int ID, int which, int val); | ||||
| 	static int getSelectedHero(lua_State * L);//() | ||||
|  | ||||
| 	friend CGameState; | ||||
| 	friend class CGameState; | ||||
| 	friend class CClient; | ||||
| }; | ||||
| #endif //CCALLBACK_H | ||||
| @@ -7,7 +7,7 @@ class CConsoleHandler | ||||
| public: | ||||
| 	void runConsole(); | ||||
|  | ||||
| 	friend int _tmain(int argc, _TCHAR* argv[]); | ||||
| 	friend class CClient; | ||||
| }; | ||||
|  | ||||
| #endif //CCONSOLEHANDLER_H | ||||
| @@ -249,8 +249,37 @@ void CGameState::randomizeObject(CGObjectInstance *cur) | ||||
| 	map->defs.insert(cur->defInfo = VLC->dobjinfo->gobjs[ran.first][ran.second]); | ||||
| 	if(!cur->defInfo){std::cout<<"Missing def declaration for "<<cur->ID<<" "<<cur->subID<<std::endl;return;} | ||||
| } | ||||
| void CGameState::init(StartInfo * si, Mapa * map, int seed) | ||||
|  | ||||
| int CGameState::getDate(int mode) const | ||||
| { | ||||
| 	int temp; | ||||
| 	switch (mode) | ||||
| 	{ | ||||
| 	case 0: | ||||
| 		return day; | ||||
| 		break; | ||||
| 	case 1: | ||||
| 		temp = (day)%7; | ||||
| 		if (temp) | ||||
| 			return temp; | ||||
| 		else return 7; | ||||
| 		break; | ||||
| 	case 2: | ||||
| 		temp = ((day-1)/7)+1; | ||||
| 		if (!(temp%4)) | ||||
| 			return 4; | ||||
| 		else  | ||||
| 			return (temp%4); | ||||
| 		break; | ||||
| 	case 3: | ||||
| 		return ((day-1)/28)+1; | ||||
| 		break; | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
| void CGameState::init(StartInfo * si, Mapa * map, int Seed) | ||||
| { | ||||
| 	seed = Seed; | ||||
| 	ran.seed((long)seed); | ||||
| 	scenarioOps = si; | ||||
| 	this->map = map; | ||||
| @@ -313,7 +342,7 @@ void CGameState::init(StartInfo * si, Mapa * map, int seed) | ||||
| 		startres.push_back(k); | ||||
| 	} | ||||
| 	tis.close(); | ||||
| 	for (std::map<int,PlayerState>::iterator i = players.begin(); i!=players.end(); i++) | ||||
| 	for (std::map<ui8,PlayerState>::iterator i = players.begin(); i!=players.end(); i++) | ||||
| 	{ | ||||
| 		(*i).second.resources.resize(RESOURCE_QUANTITY); | ||||
| 		for (int x=0;x<RESOURCE_QUANTITY;x++) | ||||
| @@ -391,7 +420,7 @@ void CGameState::init(StartInfo * si, Mapa * map, int seed) | ||||
|  | ||||
| 	} | ||||
| 	/*************************FOG**OF**WAR******************************************/		 | ||||
| 	for(std::map<int, PlayerState>::iterator k=players.begin(); k!=players.end(); ++k) | ||||
| 	for(std::map<ui8, PlayerState>::iterator k=players.begin(); k!=players.end(); ++k) | ||||
| 	{ | ||||
| 		k->second.fogOfWarMap.resize(map->width); | ||||
| 		for(int g=0; g<map->width; ++g) | ||||
| @@ -439,7 +468,7 @@ void CGameState::init(StartInfo * si, Mapa * map, int seed) | ||||
| 		players[vti->getOwner()].towns.push_back(vti); | ||||
| 	} | ||||
|  | ||||
| 	for(std::map<int, PlayerState>::iterator k=players.begin(); k!=players.end(); ++k) | ||||
| 	for(std::map<ui8, PlayerState>::iterator k=players.begin(); k!=players.end(); ++k) | ||||
| 	{ | ||||
| 		if(k->first==-1 || k->first==255) | ||||
| 			continue; | ||||
|   | ||||
							
								
								
									
										23
									
								
								CGameState.h
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								CGameState.h
									
									
									
									
									
								
							| @@ -66,11 +66,12 @@ class DLL_EXPORT CGameState | ||||
| { | ||||
| private: | ||||
| 	StartInfo* scenarioOps; | ||||
| 	int currentPlayer; //ID of player currently having turn | ||||
| 	ui32 seed; | ||||
| 	ui8 currentPlayer; //ID of player currently having turn | ||||
| 	BattleInfo *curB; //current battle | ||||
| 	int day; //total number of days in game | ||||
| 	ui32 day; //total number of days in game | ||||
| 	Mapa * map; | ||||
| 	std::map<int,PlayerState> players; //ID <-> playerstate | ||||
| 	std::map<ui8,PlayerState> players; //ID <-> playerstate | ||||
| 	std::set<CCPPObjectScript *> cppscripts; //C++ scripts | ||||
| 	std::map<int, std::map<std::string, CObjectScript*> > objscr; //non-C++ scripts  | ||||
| 	 | ||||
| @@ -88,7 +89,7 @@ private: | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	void init(StartInfo * si, Mapa * map, int seed); | ||||
| 	void init(StartInfo * si, Mapa * map, int Seed); | ||||
| 	void randomizeObject(CGObjectInstance *cur); | ||||
| 	std::pair<int,int> pickObject(CGObjectInstance *obj); | ||||
| 	int pickHero(int owner); | ||||
| @@ -98,15 +99,17 @@ private: | ||||
| 	bool battleAttackCreatureStack(int ID, int dest); | ||||
| 	std::vector<int> battleGetRange(int ID); //called by std::vector<int> CCallback::battleGetAvailableHexes(int ID); | ||||
| public: | ||||
| 	friend CCallback; | ||||
| 	friend CPathfinder;; | ||||
| 	friend CLuaCallback; | ||||
| 	friend int _tmain(int argc, _TCHAR* argv[]); | ||||
| 	int getDate(int mode=0) const; //mode=0 - total days in game, mode=1 - day of week, mode=2 - current week, mode=3 - current month | ||||
| 	 | ||||
| 	friend class CCallback; | ||||
| 	friend class CPathfinder;; | ||||
| 	friend class CLuaCallback; | ||||
| 	friend class CClient; | ||||
| 	friend void initGameState(Mapa * map, CGameInfo * cgi); | ||||
| 	friend CScriptCallback; | ||||
| 	friend class CScriptCallback; | ||||
| 	friend void handleCPPObjS(std::map<int,CCPPObjectScript*> * mapa, CCPPObjectScript * script); | ||||
| 	friend class CMapHandler; | ||||
| 	friend class CVCMIServer; | ||||
| 	friend class CGameHandler; | ||||
| }; | ||||
|  | ||||
| #endif //CGAMESTATE_H | ||||
|   | ||||
							
								
								
									
										133
									
								
								CLua.cpp
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								CLua.cpp
									
									
									
									
									
								
							| @@ -2,12 +2,12 @@ | ||||
| #include "CLua.h" | ||||
| #include "CLuaHandler.h" | ||||
| #include "hch/CHeroHandler.h" | ||||
| #include "lua.h" | ||||
| #include "lualib.h" | ||||
| #include "lauxlib.h" | ||||
| #include "lobject.h" | ||||
| #include "lgc.h" | ||||
| #include "lapi.h" | ||||
| //#include "lua.h" | ||||
| //#include "lualib.h" | ||||
| //#include "lauxlib.h" | ||||
| //#include "lobject.h" | ||||
| //#include "lgc.h" | ||||
| //#include "lapi.h" | ||||
| #include "CGameInfo.h" | ||||
| #include "CGameState.h" | ||||
| #include <sstream> | ||||
| @@ -26,10 +26,11 @@ | ||||
| #pragma warning (disable : 4311) | ||||
| bool getGlobalFunc(lua_State * L, std::string fname) | ||||
| { | ||||
| 	unsigned int hash = lua_calchash(fname.c_str(), fname.size()); | ||||
| 	lua_pushhstring(L, hash, fname.c_str(), fname.size()); | ||||
| 	lua_gettable(L, LUA_GLOBALSINDEX); | ||||
| 	return lua_isfunction(L, -1); | ||||
| 	//unsigned int hash = lua_calchash(fname.c_str(), fname.size()); | ||||
| 	//lua_pushhstring(L, hash, fname.c_str(), fname.size()); | ||||
| 	//lua_gettable(L, LUA_GLOBALSINDEX); | ||||
| 	//return lua_isfunction(L, -1); | ||||
| 	return false; | ||||
| } | ||||
|  | ||||
| CObjectScript::CObjectScript() | ||||
| @@ -65,20 +66,20 @@ CLua::CLua() | ||||
| } | ||||
| void CLua::open(std::string initpath) | ||||
| { | ||||
| 	LST = lua_open(); | ||||
| 	opened = true; | ||||
| 	LUA_OPEN_LIB(LST, luaopen_base); | ||||
| 	LUA_OPEN_LIB(LST, luaopen_io); | ||||
| 	if ((luaL_loadfile (LST, initpath.c_str())) == 0) | ||||
| 	{ | ||||
| 		lua_pcall (LST, 0, LUA_MULTRET, 0); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		std::string temp = "Cannot open script "; | ||||
| 		temp += initpath; | ||||
| 		throw std::exception(temp.c_str()); | ||||
| 	} | ||||
| 	//LST = lua_open(); | ||||
| 	//opened = true; | ||||
| 	//LUA_OPEN_LIB(LST, luaopen_base); | ||||
| 	//LUA_OPEN_LIB(LST, luaopen_io); | ||||
| 	//if ((luaL_loadfile (LST, initpath.c_str())) == 0) | ||||
| 	//{ | ||||
| 	//	lua_pcall (LST, 0, LUA_MULTRET, 0); | ||||
| 	//} | ||||
| 	//else | ||||
| 	//{ | ||||
| 	//	std::string temp = "Cannot open script "; | ||||
| 	//	temp += initpath; | ||||
| 	//	throw std::exception(temp.c_str()); | ||||
| 	//} | ||||
| } | ||||
| void CLua::registerCLuaCallback() | ||||
| { | ||||
| @@ -86,31 +87,31 @@ void CLua::registerCLuaCallback() | ||||
|  | ||||
| CLua::~CLua() | ||||
| { | ||||
| 	//std::cout << "Usuwam obiekt clua "<<this<<std::endl; | ||||
| 	if (opened) | ||||
| 	{ | ||||
| 		std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl; | ||||
| 		lua_close(LST); | ||||
| 	} | ||||
| 	////std::cout << "Usuwam obiekt clua "<<this<<std::endl; | ||||
| 	//if (opened) | ||||
| 	//{ | ||||
| 	//	std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<std::endl; | ||||
| 	//	lua_close(LST); | ||||
| 	//} | ||||
| } | ||||
|  | ||||
| void CLua::findF(std::string fname) | ||||
| { | ||||
| 	 lua_getfield(is, LUA_GLOBALSINDEX, fname.c_str()); /* function to be called */ | ||||
| 	// lua_getfield(is, LUA_GLOBALSINDEX, fname.c_str()); /* function to be called */ | ||||
| } | ||||
| void CLua::findF2(std::string fname) | ||||
| { | ||||
| 	lua_pushstring (is, fname.c_str()); | ||||
| 	lua_gettable (is, LUA_GLOBALSINDEX);  | ||||
| 	//lua_pushstring (is, fname.c_str()); | ||||
| 	//lua_gettable (is, LUA_GLOBALSINDEX);  | ||||
| } | ||||
| void CLua::findFS(std::string fname) | ||||
| { | ||||
| 	lua_settop(is, 0); | ||||
| 	if (!getGlobalFunc(is,fname))  | ||||
| 	{ | ||||
| 		lua_settop(is, 0); | ||||
| 		throw new std::exception((fname + ": function not defined").c_str()); // the call is not defined | ||||
| 	} | ||||
| 	//lua_settop(is, 0); | ||||
| 	//if (!getGlobalFunc(is,fname))  | ||||
| 	//{ | ||||
| 	//	lua_settop(is, 0); | ||||
| 	//	throw new std::exception((fname + ": function not defined").c_str()); // the call is not defined | ||||
| 	//} | ||||
| } | ||||
| #undef LST | ||||
|  | ||||
| @@ -139,40 +140,40 @@ std::string CLuaObjectScript::genFN(std::string base, int ID) | ||||
|  | ||||
| void CLuaObjectScript::newObject(CGObjectInstance *os) | ||||
| { | ||||
| 	findF(genFN("newObject",os->ID)); | ||||
| 	lua_pushinteger(is, (int)os); | ||||
| 	if (lua_pcall (is, 1, 0, 0)) | ||||
| 	{ | ||||
| 		lua_settop(is, 0); | ||||
| 		throw new  std::exception(("Failed to call "+genFN("newObject",os->ID)+" function in lua script.").c_str()); | ||||
| 	} | ||||
| 	lua_settop(is, 0); | ||||
| 	//findF(genFN("newObject",os->ID)); | ||||
| 	//lua_pushinteger(is, (int)os); | ||||
| 	//if (lua_pcall (is, 1, 0, 0)) | ||||
| 	//{ | ||||
| 	//	lua_settop(is, 0); | ||||
| 	//	throw new  std::exception(("Failed to call "+genFN("newObject",os->ID)+" function in lua script.").c_str()); | ||||
| 	//} | ||||
| 	//lua_settop(is, 0); | ||||
| 	return; | ||||
| } | ||||
| void CLuaObjectScript::onHeroVisit(CGObjectInstance *os, int heroID) | ||||
| { | ||||
| 	findF(genFN("heroVisit",os->ID)); | ||||
| 	lua_pushinteger(is, (int)os); | ||||
| 	lua_pushinteger(is, heroID); | ||||
| 	if (lua_pcall (is, 2, 0, 0)) | ||||
| 	{ | ||||
| 		lua_settop(is, 0); | ||||
| 		throw new  std::exception(("Failed to call "+genFN("heroVisit",os->ID)+" function in lua script.").c_str()); | ||||
| 	} | ||||
| 	lua_settop(is, 0); | ||||
| 	//findF(genFN("heroVisit",os->ID)); | ||||
| 	//lua_pushinteger(is, (int)os); | ||||
| 	//lua_pushinteger(is, heroID); | ||||
| 	//if (lua_pcall (is, 2, 0, 0)) | ||||
| 	//{ | ||||
| 	//	lua_settop(is, 0); | ||||
| 	//	throw new  std::exception(("Failed to call "+genFN("heroVisit",os->ID)+" function in lua script.").c_str()); | ||||
| 	//} | ||||
| 	//lua_settop(is, 0); | ||||
| } | ||||
| std::string CLuaObjectScript::hoverText(CGObjectInstance *os) | ||||
| { | ||||
| 	findF(genFN("hoverText",os->ID)); | ||||
| 	lua_pushinteger(is, (int)os); | ||||
| 	if (lua_pcall (is, 1, 1, 0)) | ||||
| 	{ | ||||
| 		lua_settop(is, 0); | ||||
| 		throw new  std::exception(("Failed to call "+genFN("hoverText",os->ID)+" function in lua script.").c_str()); | ||||
| 	} | ||||
| 	std::string ret = lua_tostring(is,1); | ||||
| 	lua_settop(is, 0); | ||||
| 	return ret; | ||||
| 	//findF(genFN("hoverText",os->ID)); | ||||
| 	//lua_pushinteger(is, (int)os); | ||||
| 	//if (lua_pcall (is, 1, 1, 0)) | ||||
| 	//{ | ||||
| 	//	lua_settop(is, 0); | ||||
| 	//	throw new  std::exception(("Failed to call "+genFN("hoverText",os->ID)+" function in lua script.").c_str()); | ||||
| 	//} | ||||
| 	//std::string ret = lua_tostring(is,1); | ||||
| 	//lua_settop(is, 0); | ||||
| 	return ""; | ||||
| } | ||||
|  | ||||
| std::string CCPPObjectScript::hoverText(CGObjectInstance *os) | ||||
|   | ||||
							
								
								
									
										3
									
								
								CLua.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								CLua.h
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| #pragma once | ||||
| #include "global.h" | ||||
| #include "lstate.h" | ||||
| //#include "lstate.h" | ||||
| #include <set> | ||||
| #include <map> | ||||
| class CLua; | ||||
| @@ -13,6 +13,7 @@ class SComponent; | ||||
| class CSelectableComponent; | ||||
| class CGameState; | ||||
| struct Mapa; | ||||
| struct lua_State; | ||||
| enum ESLan{UNDEF=-1,CPP,ERM,LUA}; | ||||
| class CObjectScript | ||||
| { | ||||
|   | ||||
| @@ -23,45 +23,21 @@ CLuaHandler::~CLuaHandler() | ||||
| } | ||||
| void CLuaHandler::test() | ||||
| { | ||||
| 	int iErr = 0; | ||||
| 	lua_State *lua = lua_open ();  // Open Lua | ||||
| 	LUA_OPEN_LIB(lua, luaopen_base); | ||||
| 	LUA_OPEN_LIB(lua, luaopen_io); | ||||
|  | ||||
| 	//luabind::open(lua); | ||||
| 	//luabind::module(lua) | ||||
| 	//[ | ||||
| 	//	luabind::class_<int3>("int3") | ||||
| 	//		//.def(luabind::constructor<>()) | ||||
| 	//		//.def(luabind::constructor<const int&,const int&,const int&>()) | ||||
| 	//		.def_readwrite("x", &int3::x) | ||||
| 	//		.def_readwrite("y", &int3::y) | ||||
| 	//		.def_readwrite("z", &int3::z) | ||||
| 	//]; | ||||
| 	//luabind::module(lua) | ||||
| 	//[ | ||||
| 	//	luabind::def("powitanie",&piszpowitanie2) | ||||
| 	//]; | ||||
|  | ||||
|  | ||||
| 	if ((iErr = luaL_loadfile (lua, "scripts/lua/objects/0023_marletto_tower.lua")) == 0) | ||||
| 	{ | ||||
| 	   // Call main... | ||||
| 	   if ((iErr = lua_pcall (lua, 0, LUA_MULTRET, 0)) == 0) | ||||
| 	   {     | ||||
|  | ||||
| 			//int ret = luabind::call_function<int>(lua, "helloWorld2"); | ||||
| 			//lua_pushstring (lua, "helloWorld2"); | ||||
| 			//lua_gettable (lua, LUA_GLOBALSINDEX);   | ||||
| 			//lua_pcall (lua, 0, 0, 0); | ||||
|  | ||||
| 			// Push the function name onto the stack | ||||
| 			lua_pushstring (lua, "rightText"); | ||||
| 			lua_gettable (lua, LUA_GLOBALSINDEX);   | ||||
| 			lua_pcall (lua, 0, 0, 0); | ||||
| 		} | ||||
| 	} | ||||
| 	lua_close (lua); | ||||
| 	//int iErr = 0; | ||||
| 	//lua_State *lua = lua_open ();  // Open Lua | ||||
| 	//LUA_OPEN_LIB(lua, luaopen_base); | ||||
| 	//LUA_OPEN_LIB(lua, luaopen_io); | ||||
| 	//if ((iErr = luaL_loadfile (lua, "scripts/lua/objects/0023_marletto_tower.lua")) == 0) | ||||
| 	//{ | ||||
| 	//   // Call main... | ||||
| 	//   if ((iErr = lua_pcall (lua, 0, LUA_MULTRET, 0)) == 0) | ||||
| 	//   {     | ||||
| 	//		lua_pushstring (lua, "rightText"); | ||||
| 	//		lua_gettable (lua, LUA_GLOBALSINDEX);   | ||||
| 	//		lua_pcall (lua, 0, 0, 0); | ||||
| 	//	} | ||||
| 	//} | ||||
| 	//lua_close (lua); | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										150
									
								
								CMT.cpp
									
									
									
									
									
								
							
							
						
						
									
										150
									
								
								CMT.cpp
									
									
									
									
									
								
							| @@ -1,35 +1,19 @@ | ||||
| // CMT.cpp : Defines the entry point for the console application. | ||||
| // | ||||
| #include "stdafx.h" | ||||
| #include "SDL_TTF.h" | ||||
| #include "hch/CVideoHandler.h" | ||||
| #include "SDL_mixer.h" | ||||
| #include "hch/CBuildingHandler.h" | ||||
| #include "SDL_Extensions.h" | ||||
| #include "SDL_framerate.h" | ||||
| #include <cmath> | ||||
| #include <string> | ||||
| #include <vector> | ||||
| #include "zlib.h" | ||||
| #include <cmath> | ||||
| #include "hch/CArtHandler.h" | ||||
| #include "hch/CHeroHandler.h" | ||||
| #include "hch/CCreatureHandler.h" | ||||
| #include "hch/CAbilityHandler.h" | ||||
| #include "hch/CSpellHandler.h" | ||||
| #include "hch/CBuildingHandler.h" | ||||
| #include "hch/CObjectHandler.h" | ||||
| #include <boost/thread.hpp> | ||||
| #include "SDL_TTF.h" | ||||
| #include "SDL_mixer.h" | ||||
| #include "SDL_Extensions.h" | ||||
| #include "SDL_framerate.h" | ||||
| #include "CGameInfo.h" | ||||
| #include "hch/CMusicHandler.h" | ||||
| #include "hch/CLodHandler.h" | ||||
| #include "hch/CDefHandler.h" | ||||
| #include "hch/CTownHandler.h" | ||||
| #include "hch/CDefObjInfoHandler.h" | ||||
| #include "hch/CAmbarCendamo.h" | ||||
| #include "mapHandler.h" | ||||
| #include "global.h" | ||||
| #include "CPreGame.h" | ||||
| #include "hch/CGeneralTextHandler.h" | ||||
| #include "CConsoleHandler.h" | ||||
| #include "CCursorHandler.h" | ||||
| #include "CScreenHandler.h" | ||||
| @@ -40,10 +24,22 @@ | ||||
| #include "CLuaHandler.h" | ||||
| #include "CLua.h" | ||||
| #include "CAdvmapInterface.h" | ||||
| #include "hch/CBuildingHandler.h" | ||||
| #include "hch/CVideoHandler.h" | ||||
| #include "hch/CAbilityHandler.h" | ||||
| #include "hch/CHeroHandler.h" | ||||
| #include "hch/CCreatureHandler.h" | ||||
| #include "hch/CSpellHandler.h" | ||||
| #include "hch/CBuildingHandler.h" | ||||
| #include "hch/CMusicHandler.h" | ||||
| #include "hch/CLodHandler.h" | ||||
| #include "hch/CDefHandler.h" | ||||
| #include "hch/CAmbarCendamo.h" | ||||
| #include "hch/CGeneralTextHandler.h" | ||||
| #include "client/Graphics.h" | ||||
| #include <boost/thread.hpp> | ||||
| #include "Client/Client.h" | ||||
| #include "lib/Connection.h" | ||||
| #include <boost/crc.hpp> | ||||
| #include "lib/VCMI_Lib.h" | ||||
| std::string NAME = NAME_VER + std::string(" (client)"); | ||||
| DLL_EXPORT void initDLL(CLodHandler *b); | ||||
| SDL_Surface * screen, * screen2; | ||||
| @@ -108,6 +104,13 @@ int _tmain(int argc, _TCHAR* argv[]) | ||||
| 		cgi->bitmaph->init("Data\\H3bitmap.lod","Data"); | ||||
| 		THC std::cout<<"Loading .lod files: "<<tmh.getDif()<<std::endl; | ||||
| 		initDLL(cgi->bitmaph); | ||||
|  | ||||
| 		CGI->arth = VLC->arth; | ||||
| 		CGI->townh = VLC->townh; | ||||
| 		CGI->heroh = VLC->heroh; | ||||
| 		CGI->objh = VLC->objh; | ||||
| 		CGI->dobjinfo = VLC->dobjinfo; | ||||
|  | ||||
| 		THC std::cout<<"Initializing VCMI_Lib: "<<tmh.getDif()<<std::endl; | ||||
|  | ||||
| 		//cgi->curh->initCursor(); | ||||
| @@ -116,18 +119,12 @@ int _tmain(int argc, _TCHAR* argv[]) | ||||
| 		cgi->screenh = new CScreenHandler; | ||||
| 		cgi->screenh->initScreen(); | ||||
| 		THC std::cout<<"\tScreen handler: "<<pomtime.getDif()<<std::endl; | ||||
| 		cgi->townh = new CTownHandler; | ||||
| 		cgi->townh->loadNames(); | ||||
| 		THC std::cout<<"\tTown handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		CAbilityHandler * abilh = new CAbilityHandler; | ||||
| 		abilh->loadAbilities(); | ||||
| 		cgi->abilh = abilh; | ||||
| 		THC std::cout<<"\tAbility handler: "<<pomtime.getDif()<<std::endl; | ||||
| 		CHeroHandler * heroh = new CHeroHandler; | ||||
| 		heroh->loadHeroes(); | ||||
| 		heroh->loadPortraits(); | ||||
| 		cgi->heroh = heroh; | ||||
| 		THC std::cout<<"\tHero handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		THC std::cout<<"Preparing first handlers: "<<tmh.getDif()<<std::endl; | ||||
| 		pomtime.getDif(); | ||||
| 		graphics = new Graphics(); | ||||
| @@ -148,24 +145,12 @@ int _tmain(int argc, _TCHAR* argv[]) | ||||
| 		cpg->mush = mush; | ||||
| 		StartInfo *options = new StartInfo(cpg->runLoop()); | ||||
| /////////////////////////////////////////////////////////////////////////////////////// | ||||
| 		cgi->dobjinfo = new CDefObjInfoHandler; | ||||
| 		cgi->dobjinfo->load(); | ||||
| 		THC std::cout<<"\tDef information handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		cgi->state = new CGameState(); | ||||
| 		cgi->state->scenarioOps = options; | ||||
| 		THC std::cout<<"\tGamestate: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		THC tmh.getDif();pomtime.getDif();//reset timers | ||||
| 		CArtHandler * arth = new CArtHandler; | ||||
| 		arth->loadArtifacts(); | ||||
| 		cgi->arth = arth; | ||||
| 		THC std::cout<<"\tArtifact handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		CCreatureHandler * creh = new CCreatureHandler(); | ||||
| 		creh->loadCreatures(); | ||||
| 		cgi->creh = creh; | ||||
| 		THC std::cout<<"\tCreature handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		CSpellHandler * spellh = new CSpellHandler; | ||||
| 		spellh->loadSpells(); | ||||
| @@ -177,78 +162,21 @@ int _tmain(int argc, _TCHAR* argv[]) | ||||
| 		cgi->buildh = buildh; | ||||
| 		THC std::cout<<"\tBuilding handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 		CObjectHandler * objh = new CObjectHandler; | ||||
| 		objh->loadObjects(); | ||||
| 		cgi->objh = objh; | ||||
| 		THC std::cout<<"\tObject handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
|  | ||||
| 		cgi->pathf = new CPathfinder(); | ||||
| 		THC std::cout<<"\tPathfinder: "<<pomtime.getDif()<<std::endl; | ||||
| 		cgi->consoleh->cb = new CCallback(cgi->state,-1); | ||||
| 		cgi->consoleh->runConsole(); | ||||
| 		THC std::cout<<"\tCallback and console: "<<pomtime.getDif()<<std::endl; | ||||
| 		THC std::cout<<"Handlers initialization (together): "<<tmh.getDif()<<std::endl; | ||||
| //////////////////////////////////loading map and connecting | ||||
| 		CConnection c("localhost","3030",NAME,std::cout); | ||||
|  | ||||
| 		std::ofstream lll("client_log.txt"); | ||||
| 		CConnection c("localhost","3030",NAME,lll); | ||||
| 		THC std::cout<<"\tConnecting to the server: "<<tmh.getDif()<<std::endl; | ||||
| 		std::string mapname = cpg->ourScenSel->mapsel.ourMaps[cpg->ourScenSel->mapsel.selected].filename; | ||||
| 		std::cout<<"Opening map file: "<<mapname<<"\t\t"<<std::flush; | ||||
| 		gzFile map = gzopen(mapname.c_str(),"rb"); | ||||
| 		std::vector<unsigned char> mapstr; int pom; | ||||
| 		while((pom=gzgetc(map))>=0) | ||||
| 		{ | ||||
| 			mapstr.push_back(pom); | ||||
| 		} | ||||
| 		gzclose(map); | ||||
| 		unsigned char *initTable = new unsigned char[mapstr.size()]; | ||||
| 		for(int ss=0; ss<mapstr.size(); ++ss) | ||||
| 		{ | ||||
| 			initTable[ss] = mapstr[ss]; | ||||
| 		} | ||||
| 		std::cout<<"done."<<std::endl; | ||||
| //////////////////////////////////////////////////// | ||||
| 		ui8 pom8; | ||||
| 		c << uint8_t(2) << uint8_t(1) << mapname; | ||||
| 		c >> pom8; | ||||
| 		if(pom8) throw "Server cannot open the map!"; | ||||
| 		c < *options; | ||||
| 		c << ui8(options->playerInfos.size()); | ||||
| 		for(int i=0;i<options->playerInfos.size();i++) | ||||
| 			c << ui8(options->playerInfos[i].color); | ||||
| 		boost::crc_32_type  result; | ||||
| 		result.process_bytes(initTable,mapstr.size()); | ||||
| 		std::cout << "\tMap checksum: "<<result.checksum(); | ||||
| 		std::cout << "\t" << sizeof(result.checksum()); | ||||
| 		THC std::cout<<"\tSending info to the server: "<<tmh.getDif()<<std::endl; | ||||
| 		Mapa * mapa = new Mapa(initTable); | ||||
| 		CClient cl(&c,options); | ||||
|  | ||||
|  | ||||
|  | ||||
| 		THC std::cout<<"Reading and detecting map file (together): "<<tmh.getDif()<<std::endl; | ||||
| 		cgi->state->init(options,mapa,8); | ||||
|  | ||||
| 		CMapHandler * mh = cgi->mh = new CMapHandler(); | ||||
| 		THC std::cout<<"Initializing GameState (together): "<<tmh.getDif()<<std::endl; | ||||
| 		mh->map = mapa; | ||||
| 		THC std::cout<<"Creating mapHandler: "<<tmh.getDif()<<std::endl; | ||||
| 		mh->loadDefs(); | ||||
| 		THC std::cout<<"Reading terrain defs: "<<tmh.getDif()<<std::endl; | ||||
| 		mh->init(); | ||||
| 		THC std::cout<<"Initializing mapHandler (together): "<<tmh.getDif()<<std::endl; | ||||
|  | ||||
| 		for (int i=0; i<cgi->state->scenarioOps->playerInfos.size();i++) //initializing interfaces | ||||
| 		{  | ||||
|  | ||||
| 			if(!cgi->state->scenarioOps->playerInfos[i].human) | ||||
| 				cgi->playerint.push_back(static_cast<CGameInterface*>(CAIHandler::getNewAI(new CCallback(cgi->state,cgi->state->scenarioOps->playerInfos[i].color),"EmptyAI.dll"))); | ||||
| 			else  | ||||
| 			{ | ||||
| 				cgi->state->currentPlayer=cgi->state->scenarioOps->playerInfos[i].color; | ||||
| 				cgi->playerint.push_back(new CPlayerInterface(cgi->state->scenarioOps->playerInfos[i].color,i)); | ||||
| 				((CPlayerInterface*)(cgi->playerint[i]))->init(new CCallback(cgi->state,cgi->state->scenarioOps->playerInfos[i].color)); | ||||
| 			} | ||||
| 		} | ||||
| 		///claculating FoWs for minimap | ||||
| 		/****************************Minimaps' FoW******************************************/ | ||||
| 		//for(int g=0; g<cgi->playerint.size(); ++g) | ||||
| @@ -281,19 +209,7 @@ int _tmain(int argc, _TCHAR* argv[]) | ||||
| 		//	} | ||||
|  | ||||
| 		//} | ||||
|  | ||||
| 		while(1) //main game loop, one execution per turn | ||||
| 		{ | ||||
| 			cgi->consoleh->cb->newTurn(); | ||||
| 			for (int i=0;i<cgi->playerint.size();i++) | ||||
| 			{ | ||||
| 				cgi->state->currentPlayer=cgi->playerint[i]->playerID; | ||||
| 				try | ||||
| 				{ | ||||
| 					cgi->playerint[i]->yourTurn(); | ||||
| 				}HANDLE_EXCEPTION | ||||
| 			} | ||||
| 		} | ||||
| 		cl.run(); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
|   | ||||
							
								
								
									
										
											BIN
										
									
								
								CPreGame.cpp
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								CPreGame.cpp
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								DefSorter.exe
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								DefSorter.exe
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Projekt.dia
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Projekt.dia
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -9,7 +9,7 @@ | ||||
| #include <boost/algorithm/string.hpp> | ||||
| #include "hch/CDefHandler.h" | ||||
| #include <map> | ||||
| #include "client\Graphics.h" | ||||
| #include "client/Graphics.h" | ||||
|  | ||||
| SDL_Surface * CSDL_Ext::newSurface(int w, int h, SDL_Surface * mod) //creates new surface, with flags/format same as in surface given | ||||
| { | ||||
|   | ||||
							
								
								
									
										30
									
								
								StartInfo.h
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								StartInfo.h
									
									
									
									
									
								
							| @@ -21,16 +21,16 @@ struct StartInfo | ||||
| 		bool human; | ||||
| 		template <typename Handler> 	void serialize(Handler &h, const int version) | ||||
| 		{ | ||||
| 			h && castle; | ||||
| 			h && hero; | ||||
| 			h && heroPortrait; | ||||
| 			h && heroName; | ||||
| 			h && bonus; | ||||
| 			h && color; | ||||
| 			h && serial; | ||||
| 			h && handicap; | ||||
| 			h && name; | ||||
| 			h && human; | ||||
| 			h & castle; | ||||
| 			h & hero; | ||||
| 			h & heroPortrait; | ||||
| 			h & heroName; | ||||
| 			h & bonus; | ||||
| 			h & color; | ||||
| 			h & serial; | ||||
| 			h & handicap; | ||||
| 			h & name; | ||||
| 			h & human; | ||||
| 		} | ||||
| 	}; | ||||
| 	si32 difficulty; //0=easy; 4=impossible | ||||
| @@ -44,13 +44,13 @@ struct StartInfo | ||||
| 				return playerInfos[i]; | ||||
| 		throw new std::exception("Cannot find info about player"); | ||||
| 	} | ||||
| 	template <typename Handler> 	void serialize(Handler &h, const int version) | ||||
| 	template <typename Handler> void serialize(Handler &h, const int version) | ||||
| 	{ | ||||
| 		h && difficulty; | ||||
| 		h & difficulty; | ||||
| 		h & playerInfos; | ||||
| 		h && turnTime; | ||||
| 		h && mapname; | ||||
| 		h & turnTime; | ||||
| 		h & mapname; | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| #endif | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										110
									
								
								client/Client.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								client/Client.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | ||||
| #include "Client.h" | ||||
| #include "../lib/Connection.h" | ||||
| #include "../StartInfo.h" | ||||
| #include "../map.h" | ||||
| #include "../CGameState.h" | ||||
| #include "../CGameInfo.h" | ||||
| #include "../mapHandler.h" | ||||
| #include "../CCallback.h" | ||||
| #include "../CPlayerInterface.h" | ||||
| #include "../CConsoleHandler.h" | ||||
|  | ||||
| CClient::CClient(void) | ||||
| { | ||||
| } | ||||
| CClient::CClient(CConnection *con, StartInfo *si) | ||||
| 	:serv(con) | ||||
| { | ||||
| 	timeHandler tmh, pomtime; | ||||
| 	CConnection &c(*con); | ||||
| //////////////////////////////////////////////////// | ||||
| 	ui8 pom8; | ||||
| 	c << ui8(2) << ui8(1); | ||||
| 	c << *si; | ||||
| 	c >> pom8; | ||||
| 	if(pom8) throw "Server cannot open the map!"; | ||||
| 	c << ui8(si->playerInfos.size()); | ||||
| 	for(int i=0;i<si->playerInfos.size();i++) | ||||
| 		c << ui8(si->playerInfos[i].color); | ||||
|  | ||||
| 	ui32 seed, sum; | ||||
| 	std::string mapname; | ||||
| 	c >> mapname >> sum >> seed; | ||||
| 	THC std::cout<<"\tSending/Getting info to/from the server: "<<tmh.getDif()<<std::endl; | ||||
|  | ||||
| 	Mapa * mapa = new Mapa(mapname); | ||||
| 	THC std::cout<<"Reading and detecting map file (together): "<<tmh.getDif()<<std::endl; | ||||
| 	std::cout << "\tServer checksum for "<<mapname <<": "<<sum << std::endl; | ||||
| 	std::cout << "\tOur checksum for the map: "<< mapa->checksum << std::endl; | ||||
|  | ||||
| 	if(mapa->checksum != sum) | ||||
| 		exit(-1); | ||||
| 	std::cout << "\tUsing random seed: "<<seed << std::endl; | ||||
|  | ||||
| 	gs = CGI->state; | ||||
| 	gs->scenarioOps = si; | ||||
| 	gs->init(si,mapa,seed); | ||||
|  | ||||
| 	CGI->mh = new CMapHandler(); | ||||
| 	THC std::cout<<"Initializing GameState (together): "<<tmh.getDif()<<std::endl; | ||||
| 	CGI->mh->map = mapa; | ||||
| 	THC std::cout<<"Creating mapHandler: "<<tmh.getDif()<<std::endl; | ||||
| 	CGI->mh->init(); | ||||
| 	THC std::cout<<"Initializing mapHandler (together): "<<tmh.getDif()<<std::endl; | ||||
|  | ||||
| 	for (int i=0; i<CGI->state->scenarioOps->playerInfos.size();i++) //initializing interfaces | ||||
| 	{  | ||||
|  | ||||
| 		if(!CGI->state->scenarioOps->playerInfos[i].human) | ||||
| 			CGI->playerint.push_back(static_cast<CGameInterface*>(CAIHandler::getNewAI(new CCallback(CGI->state,CGI->state->scenarioOps->playerInfos[i].color),"EmptyAI.dll"))); | ||||
| 		else  | ||||
| 		{ | ||||
| 			CGI->state->currentPlayer=CGI->state->scenarioOps->playerInfos[i].color; | ||||
| 			CGI->playerint.push_back(new CPlayerInterface(CGI->state->scenarioOps->playerInfos[i].color,i)); | ||||
| 			((CPlayerInterface*)(CGI->playerint[i]))->init(new CCallback(CGI->state,CGI->state->scenarioOps->playerInfos[i].color)); | ||||
| 		} | ||||
| 	} | ||||
| 	CGI->consoleh->cb = new CCallback(CGI->state,-1); | ||||
| } | ||||
| CClient::~CClient(void) | ||||
| { | ||||
| } | ||||
| void CClient::process(int what) | ||||
| { | ||||
| 	switch (what) | ||||
| 	{ | ||||
| 	case 100: //one of our interaces has turn | ||||
| 		ui8 player; | ||||
| 		*serv >> player;//who? | ||||
| 		CGI->playerint[gs->players[player].serial]->yourTurn(); | ||||
| 		*serv << ui16(100); //report that we ended turn | ||||
| 		break; | ||||
| 	default: | ||||
| 		throw std::exception("Not supported server message!"); | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
| void CClient::run() | ||||
| { | ||||
| 	try | ||||
| 	{ | ||||
| 		ui16 typ; | ||||
| 		while(1) | ||||
| 		{ | ||||
| 			*serv >> typ; | ||||
| 			process(typ); | ||||
| 		} | ||||
| 	} HANDLE_EXCEPTION | ||||
| 	//while(1) //main game loop, one execution per turn | ||||
| 	//{ | ||||
| 	//	CGI->consoleh->cb->newTurn(); | ||||
| 	//	for (int i=0;i<CGI->playerint.size();i++) | ||||
| 	//	{ | ||||
| 	//		CGI->state->currentPlayer=CGI->playerint[i]->playerID; | ||||
| 	//		try | ||||
| 	//		{ | ||||
| 	//			CGI->playerint[i]->yourTurn(); | ||||
| 	//		}HANDLE_EXCEPTION | ||||
| 	//	} | ||||
| 	//} | ||||
| } | ||||
							
								
								
									
										19
									
								
								client/Client.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								client/Client.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| #pragma once | ||||
| #include "../global.h" | ||||
| struct StartInfo; | ||||
| class CGameState; | ||||
| class CGameInterface; | ||||
| class CConnection; | ||||
| class CClient | ||||
| { | ||||
| 	CGameState *gs; | ||||
| 	std::map<int,CGameInterface *> playerint; | ||||
| 	CConnection *serv; | ||||
| public: | ||||
| 	CClient(void); | ||||
| 	CClient(CConnection *con, StartInfo *si); | ||||
| 	~CClient(void); | ||||
|  | ||||
| 	void process(int what); | ||||
| 	void run(); | ||||
| }; | ||||
| @@ -124,8 +124,9 @@ | ||||
| 				BasicRuntimeChecks="0" | ||||
| 				RuntimeLibrary="2" | ||||
| 				EnableFunctionLevelLinking="false" | ||||
| 				EnableEnhancedInstructionSet="0" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="3" | ||||
| 				DebugInformationFormat="0" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| @@ -140,7 +141,8 @@ | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="SDL.lib zdll.lib SDL_image.lib SDL_ttf.lib SDL_mixer.lib lua5.1.lib VCMI_lib.lib" | ||||
| 				AdditionalLibraryDirectories="G:\vcmt\repa\libs" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				Driver="0" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				LinkTimeCodeGeneration="0" | ||||
| @@ -313,6 +315,10 @@ | ||||
| 				RelativePath="..\CHeroWindow.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\Client.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath="..\CLua.cpp" | ||||
| 				> | ||||
| @@ -381,138 +387,6 @@ | ||||
| 				RelativePath="..\SDL_framerate.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<Filter | ||||
| 				Name="lua" | ||||
| 				> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lapi.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lauxlib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lbaselib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lcode.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ldblib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ldebug.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ldo.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ldump.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lfunc.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lgc.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\linit.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\liolib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\llex.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lmathlib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lmem.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\loadlib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lobject.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lopcodes.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\loslib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lparser.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lstate.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lstring.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lstrlib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ltable.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ltablib.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\ltm.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lua.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\luac.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lundump.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lvm.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\lzio.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 				<File | ||||
| 					RelativePath="..\..\..\trunk\lua\src\print.cpp" | ||||
| 					> | ||||
| 				</File> | ||||
| 			</Filter> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Header Files" | ||||
| @@ -603,6 +477,10 @@ | ||||
| 				RelativePath="..\CHeroWindow.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\Client.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath="..\CLuaHandler.h" | ||||
| 				> | ||||
| @@ -692,12 +570,6 @@ | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Resource Files" | ||||
| 			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" | ||||
| 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" | ||||
| 			> | ||||
| 		</Filter> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
|   | ||||
							
								
								
									
										2
									
								
								int3.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								int3.h
									
									
									
									
									
								
							| @@ -76,7 +76,7 @@ inline std::istream & operator>>(std::istream & str, int3 & dest) | ||||
| 	str>>dest.x>>dest.y>>dest.z; | ||||
| 	return str; | ||||
| } | ||||
| inline std::ostream & operator<<(std::ostream & str, int3 & sth) | ||||
| inline std::ostream & operator<<(std::ostream & str, const int3 & sth) | ||||
| { | ||||
| 	return str<<sth.x<<' '<<sth.y<<' '<<sth.z; | ||||
| } | ||||
|   | ||||
| @@ -18,6 +18,38 @@ using namespace boost::asio::ip; | ||||
| #define LIL_ENDIAN | ||||
| #endif | ||||
|  | ||||
| //CConnection & operator<<(CConnection &c, const std::string &data) | ||||
| //{ | ||||
| //	boost::uint32_t length = data.size(); | ||||
| //	c << length; | ||||
| //	c.write(data.c_str(),length); | ||||
| //	return c; | ||||
| //} | ||||
| //CConnection & operator>>(CConnection &c, std::string &data) | ||||
| //{ | ||||
| //	boost::uint32_t length; | ||||
| //	c >> length; | ||||
| //	data.resize(length); | ||||
| //	c.read((void*)data.c_str(),length); | ||||
| //	return c; | ||||
| //} | ||||
| //CConnection & operator<<(CConnection &c, const char * &data) | ||||
| //{ | ||||
| //	boost::uint32_t length = strlen(data); | ||||
| //	c << length; | ||||
| //	c.write(data,length); | ||||
| //	return c; | ||||
| //} | ||||
| //CConnection & operator>>(CConnection &c, char * &data) | ||||
| //{ | ||||
| //	boost::uint32_t length; | ||||
| //	c >> length; | ||||
| //	std::cout <<"Alokujemy " <<length << " bajtow."<<std::endl; | ||||
| //	data = new char[length]; | ||||
| //	c.read(data,length); | ||||
| //	return c; | ||||
| //} | ||||
|  | ||||
| void CConnection::init() | ||||
| { | ||||
| #ifdef LIL_ENDIAN | ||||
| @@ -34,7 +66,7 @@ void CConnection::init() | ||||
| } | ||||
|  | ||||
| CConnection::CConnection(std::string host, std::string port, std::string Name, std::ostream & Out) | ||||
| :io_service(new asio::io_service), name(Name), out(Out), send(this), rec(this) | ||||
| :io_service(new asio::io_service), name(Name), out(Out)//, send(this), rec(this) | ||||
| { | ||||
|     system::error_code error = asio::error::host_not_found; | ||||
| 	socket = new tcp::socket(*io_service); | ||||
| @@ -48,12 +80,12 @@ CConnection::CConnection( | ||||
| 			boost::asio::basic_stream_socket<boost::asio::ip::tcp , boost::asio::stream_socket_service<boost::asio::ip::tcp>  > * Socket,  | ||||
| 			std::string Name,  | ||||
| 			std::ostream & Out	) | ||||
| 			:socket(Socket),io_service(Socket->io_service()), out(Out), name(Name), send(this), rec(this) | ||||
| 			:socket(Socket),io_service(&Socket->io_service()), out(Out), name(Name)//, send(this), rec(this) | ||||
| { | ||||
| 	init(); | ||||
| } | ||||
| CConnection::CConnection(boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > * acceptor, boost::asio::io_service *Io_service, std::string Name, std::ostream & Out) | ||||
| : out(Out), name(Name), send(this), rec(this) | ||||
| : out(Out), name(Name)//, send(this), rec(this) | ||||
| { | ||||
|     system::error_code error = asio::error::host_not_found; | ||||
| 	socket = new tcp::socket(*io_service); | ||||
| @@ -70,13 +102,14 @@ int CConnection::write(const void * data, unsigned size) | ||||
| } | ||||
| int CConnection::read(void * data, unsigned size) | ||||
| { | ||||
| 	LOG("odbieram dane o rozmiarze " << size << std::endl); | ||||
| 	int ret = asio::read(*socket,asio::mutable_buffers_1(asio::mutable_buffer(data,size))); | ||||
| 	return ret; | ||||
| } | ||||
| CConnection::~CConnection(void) | ||||
| { | ||||
| 	delete io_service; | ||||
| 	if(socket) | ||||
| 		socket->close(); | ||||
| 	delete socket; | ||||
| 	delete io_service; | ||||
| } | ||||
|   | ||||
							
								
								
									
										430
									
								
								lib/Connection.h
									
									
									
									
									
								
							
							
						
						
									
										430
									
								
								lib/Connection.h
									
									
									
									
									
								
							| @@ -3,9 +3,32 @@ | ||||
| #include <string> | ||||
| #include <vector> | ||||
| #include <set> | ||||
|  | ||||
| #include <boost/type_traits/is_pointer.hpp> | ||||
| #include <boost/type_traits/is_fundamental.hpp> | ||||
| #include <boost/type_traits/is_enum.hpp> | ||||
| #include <boost/type_traits/is_volatile.hpp> | ||||
| #include <boost/type_traits/is_const.hpp> | ||||
| #include <boost/type_traits/is_same.hpp> | ||||
| #include <boost/type_traits/remove_all_extents.hpp> | ||||
| #include <boost/serialization/is_abstract.hpp> | ||||
|  | ||||
| #include <boost/mpl/eval_if.hpp> | ||||
| #include <boost/mpl/and.hpp> | ||||
| #include <boost/mpl/less.hpp> | ||||
| #include <boost/mpl/greater_equal.hpp> | ||||
| #include <boost/mpl/equal_to.hpp> | ||||
| #include <boost/mpl/int.hpp> | ||||
| #include <boost/mpl/identity.hpp> | ||||
| #include <boost/mpl/list.hpp> | ||||
| #include <boost/mpl/empty.hpp> | ||||
| #include <boost/mpl/not.hpp> | ||||
|  | ||||
| const int version = 63; | ||||
| class CConnection; | ||||
|  | ||||
| namespace mpl = boost::mpl; | ||||
|  | ||||
| namespace boost | ||||
| { | ||||
| 	namespace asio | ||||
| @@ -24,48 +47,248 @@ namespace boost | ||||
| 		template <typename Protocol,typename SocketAcceptorService> | ||||
| 		class basic_socket_acceptor; | ||||
| 	} | ||||
| 	class mutex; | ||||
| }; | ||||
|  | ||||
| class CSender | ||||
| enum SerializationLvl | ||||
| { | ||||
| 	Wrong=0, | ||||
| 	Primitive, | ||||
| 	Serializable | ||||
| }; | ||||
|  | ||||
| template<typename T> | ||||
| struct SerializationLevel | ||||
| {     | ||||
| 	typedef mpl::integral_c_tag tag; | ||||
| 	typedef | ||||
| 		typename mpl::eval_if< | ||||
| 			boost::is_fundamental<T>, | ||||
| 			mpl::int_<Primitive>, | ||||
| 		//else | ||||
| 		typename mpl::eval_if< | ||||
| 			boost::is_class<T>, | ||||
| 			mpl::int_<Serializable>, | ||||
| 		//else | ||||
| 		typename mpl::eval_if< | ||||
| 			boost::is_array<T>, | ||||
| 			mpl::int_<Wrong>, | ||||
| 		//else | ||||
| 		typename mpl::eval_if< | ||||
| 			boost::is_enum<T>, | ||||
| 			mpl::int_<Primitive>, | ||||
| 		//else | ||||
| 			mpl::int_<Wrong> | ||||
| 		> | ||||
| 		> | ||||
| 		> | ||||
| 		>::type type; | ||||
| 	static const int value = SerializationLevel::type::value; | ||||
| }; | ||||
|  | ||||
| template <typename Serializer> class DLL_EXPORT COSer | ||||
| { | ||||
| public: | ||||
| 	CConnection* c; | ||||
| 	CSender(CConnection* C):c(C){}; | ||||
| 	template <typename T> CSender & operator&&(T &data) //send built-in type | ||||
| 	COSer(){}; | ||||
|     Serializer * This() | ||||
| 	{ | ||||
| 		*c << data; | ||||
| 		return *this; | ||||
| 		return static_cast<Serializer*>(this); | ||||
| 	} | ||||
| 	template <typename T> CSender & operator&(T &data) //send serializable type | ||||
|  | ||||
| 	template<class T> | ||||
| 	Serializer & operator<<(const T &t) | ||||
| 	{ | ||||
| 		*c < data; | ||||
| 		return *this; | ||||
| 		this->This()->save(t); | ||||
| 		return * this->This(); | ||||
| 	} | ||||
| 	 | ||||
| 	template<class T> | ||||
| 	Serializer & operator&(T & t){ | ||||
| 		return * this->This() << t; | ||||
| 	} | ||||
| }; | ||||
| class CReceiver | ||||
| template <typename Serializer> class DLL_EXPORT CISer | ||||
| { | ||||
| public: | ||||
| 	CConnection *c; | ||||
| 	CReceiver(CConnection* C):c(C){}; | ||||
| 	template <typename T> CReceiver & operator&&(T &data) //get built-in type | ||||
| 	CISer(){}; | ||||
|     Serializer * This() | ||||
| 	{ | ||||
| 		*c >> data; | ||||
| 		return *this; | ||||
| 		return static_cast<Serializer*>(this); | ||||
| 	} | ||||
| 	template <typename T> CReceiver & operator&(T &data) //get serializable type | ||||
|  | ||||
| 	template<class T> | ||||
| 	Serializer & operator>>(T &t) | ||||
| 	{ | ||||
| 		*c > data; | ||||
| 		return *this; | ||||
| 		this->This()->load(t); | ||||
| 		return * this->This(); | ||||
| 	} | ||||
| 	 | ||||
| 	template<class T> | ||||
| 	Serializer & operator&(T & t){ | ||||
| 		return * this->This() >> t; | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| template<typename Ser,typename T> | ||||
| struct SavePrimitive | ||||
| { | ||||
| 	static void invoke(Ser &s, const T &data) | ||||
| 	{ | ||||
| 		s.savePrimitive(data); | ||||
| 	} | ||||
| }; | ||||
| template<typename Ser,typename T> | ||||
| struct SaveSerializable | ||||
| { | ||||
| 	static void invoke(Ser &s, const T &data) | ||||
| 	{ | ||||
| 		s.saveSerializable(data); | ||||
| 	} | ||||
| }; | ||||
| template<typename Ser,typename T> | ||||
| struct LoadPrimitive | ||||
| { | ||||
| 	static void invoke(Ser &s, T &data) | ||||
| 	{ | ||||
| 		s.loadPrimitive(data); | ||||
| 	} | ||||
| }; | ||||
| template<typename Ser,typename T> | ||||
| struct LoadSerializable | ||||
| { | ||||
| 	static void invoke(Ser &s, T &data) | ||||
| 	{ | ||||
| 		s.loadSerializable(data); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| template<typename Ser,typename T> | ||||
| struct SaveWrong | ||||
| { | ||||
| 	static void invoke(Ser &s, const T &data) | ||||
| 	{ | ||||
| 		throw std::exception("Wrong save serialization call!"); | ||||
| 	} | ||||
| }; | ||||
| template<typename Ser,typename T> | ||||
| struct LoadWrong | ||||
| { | ||||
| 	static void invoke(Ser &s, const T &data) | ||||
| 	{ | ||||
| 		throw std::exception("Wrong load serialization call!"); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
|  | ||||
| class DLL_EXPORT CConnection | ||||
| 	:public CISer<CConnection>, public COSer<CConnection> | ||||
| { | ||||
|  | ||||
|  | ||||
| 	std::ostream &out; | ||||
| 	CConnection(void); | ||||
| 	void init(); | ||||
| 	boost::mutex *mx; | ||||
| public: | ||||
| 	CSender send; | ||||
| 	CReceiver rec; | ||||
|  | ||||
| 	template <typename T> | ||||
| 	void savePrimitive(const T &data) | ||||
| 	{ | ||||
| 		write(&data,sizeof(data)); | ||||
| 	} | ||||
| 	template <typename T> | ||||
| 	void loadPrimitive(T &data) | ||||
| 	{ | ||||
| 		read(&data,sizeof(data)); | ||||
| 	} | ||||
|  | ||||
| 	template <typename T> | ||||
| 	void saveSerializable(const T &data) | ||||
| 	{ | ||||
| 		const_cast<T&>(data).serialize(*static_cast<COSer*>(this),version); | ||||
| 	} | ||||
| 	template <typename T> | ||||
| 	void loadSerializable(T &data) | ||||
| 	{ | ||||
| 		data.serialize(*static_cast<CISer*>(this),version); | ||||
| 	} | ||||
| 	template <> | ||||
| 	void saveSerializable<std::string>(const std::string &data) | ||||
| 	{ | ||||
| 		*this << ui32(data.size()); | ||||
| 		write(data.c_str(),data.size()); | ||||
| 	} | ||||
| 	template <> | ||||
| 	void loadSerializable<std::string>(std::string &data) | ||||
| 	{ | ||||
| 		ui32 l; | ||||
| 		*this >> l; | ||||
| 		data.resize(l); | ||||
| 		read((void*)data.c_str(),l); | ||||
| 	} | ||||
| 	template <typename T> | ||||
| 	void saveSerializable(const std::vector<T> &data) | ||||
| 	{ | ||||
| 		boost::uint32_t length = data.size(); | ||||
| 		*this << length; | ||||
| 		for(ui32 i=0;i<length;i++) | ||||
| 			*this << data[i]; | ||||
| 	} | ||||
| 	template <typename T> | ||||
| 	void loadSerializable(std::vector<T> &data) | ||||
| 	{ | ||||
| 		boost::uint32_t length; | ||||
| 		*this >> length; | ||||
| 		data.resize(length); | ||||
| 		for(ui32 i=0;i<length;i++) | ||||
| 			*this >> data[i]; | ||||
| 	} | ||||
| 	//template <typename T> | ||||
| 	//void saveSerializable(T &data) | ||||
| 	//{ | ||||
| 	//	data.serialize(*static_cast<COSer*>(this),version); | ||||
| 	//} | ||||
| 	//template <typename T> | ||||
| 	//void loadSerializable(T &data) | ||||
| 	//{ | ||||
| 	//	data.serialize(*static_cast<CISer*>(this),version); | ||||
| 	//} | ||||
|  | ||||
| 	template <typename T> | ||||
| 	void save(const T &data) | ||||
| 	{ | ||||
| 		typedef  | ||||
| 			//if | ||||
| 			typename mpl::eval_if< mpl::equal_to<SerializationLevel<T>,mpl::int_<Primitive> >, | ||||
| 				mpl::identity<SavePrimitive<CConnection,T> >, | ||||
| 			//else if | ||||
| 			typename mpl::eval_if<mpl::equal_to<SerializationLevel<T>,mpl::int_<Serializable> >, | ||||
| 				mpl::identity<SaveSerializable<CConnection,T> >, | ||||
| 			//else | ||||
| 				mpl::identity<SaveWrong<CConnection,T> > | ||||
| 			> | ||||
| 			>::type typex; | ||||
| 		typex::invoke(*this, data); | ||||
| 	} | ||||
| 	template <typename T> | ||||
| 	void load(T &data) | ||||
| 	{ | ||||
| 		typedef  | ||||
| 			//if | ||||
| 			typename mpl::eval_if< mpl::equal_to<SerializationLevel<T>,mpl::int_<Primitive> >, | ||||
| 				mpl::identity<LoadPrimitive<CConnection,T> >, | ||||
| 			//else if | ||||
| 			typename mpl::eval_if<mpl::equal_to<SerializationLevel<T>,mpl::int_<Serializable> >, | ||||
| 				mpl::identity<LoadSerializable<CConnection,T> >, | ||||
| 			//else | ||||
| 				mpl::identity<LoadWrong<CConnection,T> > | ||||
| 			> | ||||
| 			>::type typex; | ||||
| 		typex::invoke(*this, data); | ||||
| 	} | ||||
|  | ||||
| 	//CSender send; | ||||
| 	//CReceiver rec; | ||||
| 	boost::asio::basic_stream_socket < boost::asio::ip::tcp , boost::asio::stream_socket_service<boost::asio::ip::tcp>  > * socket; | ||||
| 	bool logging; | ||||
| 	bool connected; | ||||
| @@ -88,56 +311,28 @@ public: | ||||
| }; | ||||
|  | ||||
|  | ||||
| template <typename T> CConnection & operator<<(CConnection &c, const T &data); | ||||
| template <typename T> CConnection & operator>>(CConnection &c, T &data); | ||||
| CConnection & operator<<(CConnection &c, const std::string &data) | ||||
| { | ||||
| 	boost::uint32_t length = data.size(); | ||||
| 	c << length; | ||||
| 	c.write(data.c_str(),length); | ||||
| 	return c; | ||||
| } | ||||
| CConnection & operator>>(CConnection &c, std::string &data) | ||||
| { | ||||
| 	boost::uint32_t length; | ||||
| 	c >> length; | ||||
| 	data.resize(length); | ||||
| 	c.read((void*)data.c_str(),length); | ||||
| 	return c; | ||||
| } | ||||
| CConnection & operator<<(CConnection &c, const char * &data) | ||||
| { | ||||
| 	boost::uint32_t length = strlen(data); | ||||
| 	c << length; | ||||
| 	c.write(data,length); | ||||
| 	return c; | ||||
| } | ||||
| CConnection & operator>>(CConnection &c, char * &data) | ||||
| { | ||||
| 	boost::uint32_t length; | ||||
| 	c >> length; | ||||
| 	std::cout <<"Alokujemy " <<length << " bajtow."<<std::endl; | ||||
| 	data = new char[length]; | ||||
| 	c.read(data,length); | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator<<(CConnection &c, std::vector<T> &data) | ||||
| { | ||||
| 	boost::uint32_t length = data.size(); | ||||
| 	c << length; | ||||
| 	for(ui32 i=0;i<length;i++) | ||||
| 		c << data[i]; | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator>>(CConnection &c,  std::vector<T> &data) | ||||
| { | ||||
| 	boost::uint32_t length; | ||||
| 	c >> length; | ||||
| 	data.resize(length); | ||||
| 	for(ui32 i=0;i<length;i++) | ||||
| 		c >> data[i]; | ||||
| 	return c; | ||||
| } | ||||
| //DLL_EXPORT CConnection & operator<<(CConnection &c, const std::string &data); | ||||
| //DLL_EXPORT CConnection & operator>>(CConnection &c, std::string &data); | ||||
| //DLL_EXPORT CConnection & operator<<(CConnection &c, const char * &data); | ||||
| //DLL_EXPORT CConnection & operator>>(CConnection &c, char * &data); | ||||
| // | ||||
| //template <typename T> CConnection & operator<<(CConnection &c, std::vector<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length = data.size(); | ||||
| //	c << length; | ||||
| //	for(ui32 i=0;i<length;i++) | ||||
| //		c << data[i]; | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator>>(CConnection &c,  std::vector<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length; | ||||
| //	c >> length; | ||||
| //	data.resize(length); | ||||
| //	for(ui32 i=0;i<length;i++) | ||||
| //		c >> data[i]; | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator<<(CConnection &c, std::set<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length = data.size(); | ||||
| @@ -159,40 +354,61 @@ template <typename T> CConnection & operator>>(CConnection &c,  std::vector<T> & | ||||
| //	} | ||||
| //	return c; | ||||
| //} | ||||
| template <typename T> CConnection & operator<<(CConnection &c, const T &data) | ||||
| { | ||||
| 	c.write(&data,sizeof(data)); | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator>>(CConnection &c, T &data) | ||||
| { | ||||
| 	c.read(&data,sizeof(data)); | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator<(CConnection &c, std::vector<T> &data) | ||||
| { | ||||
| 	boost::uint32_t length = data.size(); | ||||
| 	c << length; | ||||
| 	for(ui32 i=0;i<length;i++) | ||||
| 		data[i].serialize(c.send,version); | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator>(CConnection &c,  std::vector<T> &data) | ||||
| { | ||||
| 	boost::uint32_t length; | ||||
| 	c >> length; | ||||
| 	data.resize(length); | ||||
| 	for(ui32 i=0;i<length;i++) | ||||
| 		data[i].serialize(c.rec,version); | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator<(CConnection &c, T &data) | ||||
| { | ||||
| 	data.serialize(c.send,version); | ||||
| 	return c; | ||||
| } | ||||
| template <typename T> CConnection & operator>(CConnection &c, T &data) | ||||
| { | ||||
| 	data.serialize(c.rec,version); | ||||
| 	return c; | ||||
| } | ||||
| //template <typename T> CConnection & operator<<(CConnection &c, const T &data) | ||||
| //{ | ||||
| //	c.write(&data,sizeof(data)); | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator>>(CConnection &c, T &data) | ||||
| //{ | ||||
| //	c.read(&data,sizeof(data)); | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator<(CConnection &c, std::vector<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length = data.size(); | ||||
| //	c << length; | ||||
| //	for(ui32 i=0;i<length;i++) | ||||
| //		data[i].serialize(c.send,version); | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator>(CConnection &c,  std::vector<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length; | ||||
| //	c >> length; | ||||
| //	data.resize(length); | ||||
| //	for(ui32 i=0;i<length;i++) | ||||
| //		data[i].serialize(c.rec,version); | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator<(CConnection &c, std::set<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length = data.size(); | ||||
| //	c << length; | ||||
| //	for(std::set<T>::iterator i=data.begin();i!=data.end();i++) | ||||
| //		i->serialize(c.send,version); | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator>(CConnection &c,  std::set<T> &data) | ||||
| //{ | ||||
| //	boost::uint32_t length; | ||||
| //	c >> length; | ||||
| //	data.resize(length); | ||||
| //	T pom; | ||||
| //	for(int i=0;i<length;i++) | ||||
| //	{ | ||||
| //		pom.serialize(c.rec,version); | ||||
| //		data.insert(pom); | ||||
| //	} | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator<(CConnection &c, T &data) | ||||
| //{ | ||||
| //	data.serialize(c.send,version); | ||||
| //	return c; | ||||
| //} | ||||
| //template <typename T> CConnection & operator>(CConnection &c, T &data) | ||||
| //{ | ||||
| //	data.serialize(c.rec,version); | ||||
| //	return c; | ||||
| //} | ||||
|   | ||||
| @@ -1,14 +1,50 @@ | ||||
| #define VCMI_DLL | ||||
| #include "../global.h" | ||||
| #include "VCMI_Lib.h" | ||||
| #include "../hch/CArtHandler.h" | ||||
| #include "../hch/CCreatureHandler.h" | ||||
| #include "../hch/CDefObjInfoHandler.h" | ||||
| #include "../hch/CHeroHandler.h" | ||||
| #include "../hch/CObjectHandler.h" | ||||
| #include "../hch/CTownHandler.h" | ||||
| class CLodHandler; | ||||
| LibClasses * VLC = NULL; | ||||
| CLodHandler * bitmaph=NULL; | ||||
|  | ||||
| DLL_EXPORT void initDLL(CLodHandler *b) | ||||
| { | ||||
| 	timeHandler pomtime; | ||||
| 	bitmaph=b; | ||||
| 	VLC = new LibClasses; | ||||
|  | ||||
| 	CHeroHandler * heroh = new CHeroHandler; | ||||
| 	heroh->loadHeroes(); | ||||
| 	heroh->loadPortraits(); | ||||
| 	VLC->heroh = heroh; | ||||
| 	THC std::cout<<"\tHero handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 	CArtHandler * arth = new CArtHandler; | ||||
| 	arth->loadArtifacts(); | ||||
| 	VLC->arth = arth; | ||||
| 	THC std::cout<<"\tArtifact handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 	CCreatureHandler * creh = new CCreatureHandler(); | ||||
| 	creh->loadCreatures(); | ||||
| 	VLC->creh = creh; | ||||
| 	THC std::cout<<"\tCreature handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 	VLC->townh = new CTownHandler; | ||||
| 	VLC->townh->loadNames(); | ||||
| 	THC std::cout<<"\tTown handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 	CObjectHandler * objh = new CObjectHandler; | ||||
| 	objh->loadObjects(); | ||||
| 	VLC->objh = objh; | ||||
| 	THC std::cout<<"\tObject handler: "<<pomtime.getDif()<<std::endl; | ||||
|  | ||||
| 	VLC->dobjinfo = new CDefObjInfoHandler; | ||||
| 	VLC->dobjinfo->load(); | ||||
| 	THC std::cout<<"\tDef information handler: "<<pomtime.getDif()<<std::endl; | ||||
| } | ||||
|  | ||||
| DLL_EXPORT void loadToIt(std::string &dest, std::string &src, int &iter, int mode) | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| #include "../global.h" | ||||
|  | ||||
|  | ||||
| class CLodHandler; | ||||
| //class CMapHandler; | ||||
| class CArtHandler; | ||||
| class CHeroHandler; | ||||
| @@ -55,4 +55,7 @@ public: | ||||
| 	//StartInfo scenarioOps; | ||||
| }; | ||||
|  | ||||
| extern LibClasses * VLC; | ||||
| extern DLL_EXPORT LibClasses * VLC; | ||||
|  | ||||
|  | ||||
| DLL_EXPORT void initDLL(CLodHandler *b); | ||||
| @@ -124,7 +124,7 @@ | ||||
| 				RuntimeLibrary="2" | ||||
| 				EnableFunctionLevelLinking="false" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="3" | ||||
| 				DebugInformationFormat="0" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| @@ -140,7 +140,7 @@ | ||||
| 				AdditionalDependencies="zdll.lib" | ||||
| 				Version="" | ||||
| 				AdditionalLibraryDirectories="G:\vcmt\repa\libs" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				LinkTimeCodeGeneration="0" | ||||
| @@ -437,6 +437,10 @@ | ||||
| 				RelativePath="..\map.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\NetPacks.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\VCMI_Lib.h" | ||||
| 				> | ||||
|   | ||||
							
								
								
									
										27
									
								
								map.cpp
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								map.cpp
									
									
									
									
									
								
							| @@ -4,6 +4,8 @@ | ||||
| #include "hch/CObjectHandler.h" | ||||
| #include "hch/CDefObjInfoHandler.h" | ||||
| #include "lib/VCMI_Lib.h" | ||||
| #include <zlib.h> | ||||
| #include <boost/crc.hpp> | ||||
| std::set<int> convertBuildings(const std::set<int> h3m, int castleID) | ||||
| { | ||||
| 	std::map<int,int> mapa; | ||||
| @@ -440,7 +442,7 @@ CMapHeader::CMapHeader(unsigned char *map) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| Mapa::Mapa(unsigned char * bufor) | ||||
| void Mapa::initFromBytes(unsigned char * bufor) | ||||
| { | ||||
| 	THC timeHandler th; | ||||
| 	th.getDif(); | ||||
| @@ -2288,6 +2290,29 @@ borderguardend: | ||||
| 	//map readed, bufor no longer needed | ||||
| 	delete[] bufor; bufor=NULL; | ||||
| }	 | ||||
|  | ||||
| Mapa::Mapa(std::string filename) | ||||
| { | ||||
| 	std::cout<<"Opening map file: "<<filename<<"\t "<<std::flush; | ||||
| 	gzFile map = gzopen(filename.c_str(),"rb"); | ||||
| 	std::vector<unsigned char> mapstr; int pom; | ||||
| 	while((pom=gzgetc(map))>=0) | ||||
| 	{ | ||||
| 		mapstr.push_back(pom); | ||||
| 	} | ||||
| 	gzclose(map); | ||||
| 	unsigned char *initTable = new unsigned char[mapstr.size()]; | ||||
| 	for(int ss=0; ss<mapstr.size(); ++ss) | ||||
| 	{ | ||||
| 		initTable[ss] = mapstr[ss]; | ||||
| 	} | ||||
| 	std::cout<<"done."<<std::endl; | ||||
| 	boost::crc_32_type  result; | ||||
| 	result.process_bytes(initTable,mapstr.size()); | ||||
| 	std::cout << "\tOur map checksum: "<<result.checksum() << std::endl; | ||||
| 	initFromBytes(initTable); | ||||
| } | ||||
|  | ||||
| CGHeroInstance * Mapa::getHero(int ID, int mode) | ||||
| { | ||||
| 	if (mode != 0) | ||||
|   | ||||
							
								
								
									
										4
									
								
								map.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								map.h
									
									
									
									
									
								
							| @@ -448,6 +448,7 @@ public: | ||||
| struct DLL_EXPORT Mapa | ||||
| { | ||||
| 	Eformat version; // version of map Eformat | ||||
| 	ui32 checksum; | ||||
| 	int twoLevel; // if map has underground level | ||||
| 	int difficulty; // 0 easy - 4 impossible | ||||
| 	int levelLimit; | ||||
| @@ -478,7 +479,8 @@ struct DLL_EXPORT Mapa | ||||
| 	std::vector<CGHeroInstance*> heroes; | ||||
| 	std::vector<CGTownInstance*> towns; | ||||
|  | ||||
| 	Mapa(unsigned char * bufor); //creates map from decompressed .h3m data | ||||
| 	void initFromBytes(unsigned char * bufor); //creates map from decompressed .h3m data | ||||
| 	Mapa(std::string filename); //creates map structure from .h3m file | ||||
| 	CGHeroInstance * getHero(int ID, int mode=0); | ||||
| }; | ||||
| #endif //MAPD_H | ||||
|   | ||||
| @@ -10,11 +10,12 @@ | ||||
| #include "CLua.h" | ||||
| #include "hch/CHeroHandler.h" | ||||
| #include "hch/CTownHandler.h" | ||||
| #include "client\Graphics.h" | ||||
| #include "client/Graphics.h" | ||||
| #include <iomanip> | ||||
| #include <sstream> | ||||
| #include "hch/CObjectHandler.h" | ||||
| #include "map.h" | ||||
| #include "hch/CDefHandler.h" | ||||
| extern SDL_Surface * screen; | ||||
| std::string nameFromType (EterrainType typ) | ||||
| { | ||||
| @@ -567,6 +568,8 @@ void CMapHandler::init() | ||||
| { | ||||
| 	timeHandler th; | ||||
| 	th.getDif(); | ||||
| 	loadDefs(); | ||||
| 	THC std::cout<<"Reading terrain defs: "<<th.getDif()<<std::endl; | ||||
| 	std::for_each(map->defy.begin(),map->defy.end(),processDef); //load h3m defs | ||||
| 	std::for_each(map->defs.begin(),map->defs.end(),processDef); //and non-h3m defs | ||||
| 	THC std::cout<<"\tUnpacking and handling defs: "<<th.getDif()<<std::endl; | ||||
| @@ -876,17 +879,6 @@ SDL_Surface * CMapHandler::terrainRect(int x, int y, int dx, int dy, int level, | ||||
| 	//borders printed | ||||
| 	return su; | ||||
| } | ||||
|  | ||||
| SDL_Surface * CMapHandler::terrBitmap(int x, int y) | ||||
| { | ||||
| 	return ttiles[x+Woff][y+Hoff][0].terbitmap[0]; | ||||
| } | ||||
|  | ||||
| SDL_Surface * CMapHandler::undTerrBitmap(int x, int y) | ||||
| { | ||||
| 	return ttiles[x+Woff][y+Hoff][0].terbitmap[1]; | ||||
| } | ||||
|  | ||||
| SDL_Surface * CMapHandler::getVisBitmap(int x, int y, std::vector< std::vector< std::vector<unsigned char> > > & visibilityMap, int lvl) | ||||
| { | ||||
| 	int size = visibilityMap.size()-1;							//is tile visible. arrangement: (like num keyboard) | ||||
| @@ -1325,12 +1317,6 @@ bool CMapHandler::hideObject(CGObjectInstance *obj) | ||||
| 	} //for(int fx=0; fx<curd->ourImages[0].bitmap->w/32; ++fx) | ||||
| 	return true; | ||||
| } | ||||
|  | ||||
| std::string CMapHandler::getRandomizedDefName(CGDefInfo *di, CGObjectInstance * obj) | ||||
| { | ||||
| 	return std::string(); | ||||
| } | ||||
|  | ||||
| bool CMapHandler::removeObject(CGObjectInstance *obj) | ||||
| { | ||||
| 	hideObject(obj); | ||||
|   | ||||
							
								
								
									
										16
									
								
								mapHandler.h
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								mapHandler.h
									
									
									
									
									
								
							| @@ -2,8 +2,6 @@ | ||||
| #define MAPHANDLER_H | ||||
| #include "global.h" | ||||
| #include <SDL.h> | ||||
| #include "hch/CDefHandler.h" | ||||
| #include <boost/logic/tribool.hpp> | ||||
| #include <list> | ||||
| #include <set> | ||||
| const int Woff = 12; //width of map's frame | ||||
| @@ -13,7 +11,8 @@ class CGObjectInstance; | ||||
| class CGHeroInstance; | ||||
| struct Mapa; | ||||
| class CGDefInfo; | ||||
|  | ||||
| class CGObjectInstance; | ||||
| class CDefHandler; | ||||
| struct TerrainTile2 | ||||
| { | ||||
| 	int3 pos; //this tile's position | ||||
| @@ -81,8 +80,6 @@ public: | ||||
| 	CDefHandler * fullHide; | ||||
| 	CDefHandler * partialHide; | ||||
|  | ||||
| 	std::vector< std::vector< std::vector<unsigned char> > > visibility; //true means that pointed place is visible //not used now | ||||
| 	//std::vector< std::vector<char> > undVisibility; //true means that pointed place is visible | ||||
| 	std::vector<CDefHandler *> roadDefs; | ||||
| 	std::vector<CDefHandler *> staticRiverDefs; | ||||
| 	std::vector<CDefHandler*> defs; | ||||
| @@ -92,8 +89,6 @@ public: | ||||
| 	std::vector<std::vector<std::vector<unsigned char> > > hideBitmap; //specifies number of graphic that should be used to fully hide a tile | ||||
|  | ||||
| 	void loadDefs(); | ||||
| 	char & visAccess(int x, int y); | ||||
| 	char & undVisAccess(int x, int y); | ||||
| 	SDL_Surface * getVisBitmap(int x, int y, std::vector< std::vector< std::vector<unsigned char> > > & visibilityMap, int lvl); | ||||
|  | ||||
| 	int getCost(int3 & a, int3 & b, const CGHeroInstance * hero); | ||||
| @@ -107,20 +102,13 @@ public: | ||||
| 	bool recalculateHideVisPos(int3& pos); //recalculates position for hidden / visitable positions | ||||
| 	bool recalculateHideVisPosUnderObj(CGObjectInstance * obj, bool withBorder = false); //recalculates position for hidden / visitable positions under given object | ||||
| 	void init(); | ||||
| 	int pickHero(int owner); | ||||
| 	std::pair<int,int> pickObject(CGObjectInstance *obj); | ||||
| 	void randomizeObject(CGObjectInstance *cur); | ||||
| 	void calculateBlockedPos(); | ||||
| 	void initObjectRects(); | ||||
| 	void borderAndTerrainBitmapInit(); | ||||
| 	void roadsRiverTerrainInit(); | ||||
| 	void prepareFOWDefs(); | ||||
| 	void randomizeObjects(); | ||||
|  | ||||
| 	SDL_Surface * terrainRect(int x, int y, int dx, int dy, int level=0, unsigned char anim=0, std::vector< std::vector< std::vector<unsigned char> > > * visibilityMap = NULL, bool otherHeroAnim = false, unsigned char heroAnim = 0, SDL_Surface * extSurf = NULL, SDL_Rect * extRect = NULL); //if extSurf is specified, blit to it | ||||
| 	SDL_Surface * terrBitmap(int x, int y); | ||||
| 	SDL_Surface * undTerrBitmap(int x, int y); | ||||
| 	std::string getRandomizedDefName(CGDefInfo* di, CGObjectInstance * obj = NULL); //objinstance needed only for heroes and towns | ||||
| 	unsigned char getHeroFrameNum(const unsigned char & dir, const bool & isMoving) const; //terrainRect helper function | ||||
| 	void validateRectTerr(SDL_Rect * val, const SDL_Rect * ext); //terrainRect helper | ||||
| 	static unsigned char getDir(const int3 & a, const int3 & b); //returns direction number in range 0 - 7 (0 is left top, clockwise) [direction: form a to b] | ||||
|   | ||||
| @@ -1,9 +1,154 @@ | ||||
| #include <boost/foreach.hpp> | ||||
| #include <boost/thread.hpp> | ||||
| #include <boost/thread/shared_mutex.hpp> | ||||
| #include <boost/bind.hpp> | ||||
| #include "CGameHandler.h" | ||||
| #include "../CGameState.h" | ||||
| #include "../StartInfo.h" | ||||
| #include "../map.h" | ||||
| #include "../lib/NetPacks.h" | ||||
| #include "../lib/Connection.h" | ||||
| #include "../CLua.h" | ||||
| #include "../hch/CObjectHandler.h" | ||||
| #include "../hch/CTownHandler.h" | ||||
| #include "../hch/CHeroHandler.h" | ||||
|  | ||||
| bool makingTurn; | ||||
| boost::condition_variable cTurn; | ||||
| boost::mutex mTurn; | ||||
| boost::shared_mutex gsm; | ||||
|  | ||||
| void CGameHandler::handleConnection(std::set<int> players, CConnection &c) | ||||
| { | ||||
| 	ui16 pom; | ||||
| 	while(1) | ||||
| 	{ | ||||
| 		c >> pom; | ||||
| 		switch(pom) | ||||
| 		{ | ||||
| 		case 100: //my interface end its turn | ||||
| 			mTurn.lock(); | ||||
| 			makingTurn = false; | ||||
| 			mTurn.unlock(); | ||||
| 			cTurn.notify_all(); | ||||
| 			break; | ||||
| 		default: | ||||
| 			throw std::exception("Not supported client message!"); | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| CGameHandler::CGameHandler(void) | ||||
| { | ||||
| 	gs = NULL; | ||||
| } | ||||
|  | ||||
| CGameHandler::~CGameHandler(void) | ||||
| { | ||||
| 	delete gs; | ||||
| } | ||||
| void CGameHandler::init(StartInfo *si, int Seed) | ||||
| { | ||||
|  | ||||
| 	Mapa *map = new Mapa(si->mapname); | ||||
| 	gs = new CGameState(); | ||||
| 	gs->init(si,map,Seed); | ||||
| } | ||||
| int lowestSpeed(CGHeroInstance * chi) | ||||
| { | ||||
| 	std::map<int,std::pair<CCreature*,int> >::iterator i = chi->army.slots.begin(); | ||||
| 	int ret = (*i++).second.first->speed; | ||||
| 	for (;i!=chi->army.slots.end();i++) | ||||
| 	{ | ||||
| 		ret = min(ret,(*i).second.first->speed); | ||||
| 	} | ||||
| 	return ret; | ||||
| } | ||||
| int valMovePoints(CGHeroInstance * chi) | ||||
| { | ||||
| 	int ret = 1270+70*lowestSpeed(chi); | ||||
| 	if (ret>2000)  | ||||
| 		ret=2000; | ||||
| 	 | ||||
| 	//TODO: additional bonuses (but they aren't currently stored in chi) | ||||
|  | ||||
| 	return ret; | ||||
| } | ||||
| void CGameHandler::newTurn() | ||||
| { | ||||
| 	//std::map<int, PlayerState>::iterator i = gs->players.begin() ; | ||||
| 	gs->day++; | ||||
| 	for ( std::map<ui8, PlayerState>::iterator i=gs->players.begin() ; i!=gs->players.end();i++) | ||||
| 	{ | ||||
| 		//handle heroes///////////////////////////// | ||||
| 		for (unsigned j=0;j<(*i).second.heroes.size();j++) | ||||
| 		{ | ||||
| 			(*i).second.heroes[j]->movement = valMovePoints((*i).second.heroes[j]); | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		//handle towns///////////////////////////// | ||||
| 		for(unsigned j=0;j<i->second.towns.size();j++) | ||||
| 		{ | ||||
| 			i->second.towns[j]->builded=0; | ||||
| 			if(gs->getDate(1)==1) //first day of week | ||||
| 			{ | ||||
| 				for(int k=0;k<CREATURES_PER_TOWN;k++) //creature growths | ||||
| 				{ | ||||
| 					if(i->second.towns[j]->creatureDwelling(k))//there is dwelling (k-level) | ||||
| 						i->second.towns[j]->strInfo.creatures[k]+=i->second.towns[j]->creatureGrowth(k); | ||||
| 				} | ||||
| 			} | ||||
| 			if((gs->day>1) && i->first<PLAYER_LIMIT) | ||||
| 				i->second.resources[6]+=i->second.towns[j]->dailyIncome(); | ||||
| 		} | ||||
| 	}	 | ||||
| 	for (std::set<CCPPObjectScript *>::iterator i=gs->cppscripts.begin();i!=gs->cppscripts.end();i++) | ||||
| 	{ | ||||
| 		(*i)->newTurn(); | ||||
| 	} | ||||
| } | ||||
| void CGameHandler::run() | ||||
| {	 | ||||
| 	BOOST_FOREACH(CConnection *cc, conns) | ||||
| 	{//init conn. | ||||
| 		ui8 quantity, pom; | ||||
| 		//ui32 seed; | ||||
| 		(*cc) << gs->scenarioOps->mapname;// << gs->map->checksum << seed; | ||||
| 		(*cc) >> quantity; | ||||
| 		for(int i=0;i<quantity;i++) | ||||
| 		{ | ||||
| 			(*cc) >> pom; | ||||
| 			gsm.lock(); | ||||
| 			connections[pom] = cc; | ||||
| 			gsm.unlock(); | ||||
| 		}	 | ||||
| 	} | ||||
|  | ||||
| 	for(std::set<CConnection*>::iterator i = conns.begin(); i!=conns.end();i++) | ||||
| 	{ | ||||
| 		std::set<int> pom; | ||||
| 		for(std::map<int,CConnection*>::iterator j = connections.begin(); j!=connections.end();j++) | ||||
| 			if(j->second == *i) | ||||
| 				pom.insert(j->first); | ||||
|  | ||||
| 		boost::thread(boost::bind(&CGameHandler::handleConnection,this,pom,boost::ref(**i))); | ||||
| 	} | ||||
| 	while (1) | ||||
| 	{ | ||||
| 		for(std::map<ui8,PlayerState>::iterator i = gs->players.begin(); i != gs->players.end(); i++) | ||||
| 		{ | ||||
| 			if((i->second.towns.size()==0 && i->second.heroes.size()==0)  || i->second.color<0) continue; //players has not towns/castle - loser | ||||
| 			makingTurn = true; | ||||
| 			*connections[i->first] << ui16(100) << i->first;     | ||||
| 			//wait till turn is done | ||||
| 			boost::unique_lock<boost::mutex> lock(mTurn); | ||||
| 			while(makingTurn) | ||||
| 			{ | ||||
| 				cTurn.wait(lock); | ||||
| 			} | ||||
|  | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @@ -1,8 +1,23 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include "../global.h" | ||||
| #include <set> | ||||
| class CVCMIServer; | ||||
| class CGameState; | ||||
| class CConnection; | ||||
| struct StartInfo; | ||||
| class CGameHandler | ||||
| { | ||||
| 	CGameState *gs; | ||||
| 	CVCMIServer *s; | ||||
| 	std::map<int,CConnection*> connections; | ||||
| 	std::set<CConnection*> conns; | ||||
| public: | ||||
| 	CGameHandler(void); | ||||
| 	~CGameHandler(void); | ||||
| 	void init(StartInfo *si, int Seed); | ||||
| 	void handleConnection(std::set<int> players, CConnection &c); | ||||
| 	void run(); | ||||
| 	void newTurn(); | ||||
|  | ||||
| 	friend class CVCMIServer; | ||||
| }; | ||||
|   | ||||
| @@ -112,10 +112,15 @@ | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="2" | ||||
| 				EnableIntrinsicFunctions="true" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="true" | ||||
| 				EnableFiberSafeOptimizations="true" | ||||
| 				StringPooling="true" | ||||
| 				RuntimeLibrary="2" | ||||
| 				EnableFunctionLevelLinking="true" | ||||
| 				EnableFunctionLevelLinking="false" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="3" | ||||
| 				DebugInformationFormat="0" | ||||
| 				DisableSpecificWarnings="4251" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| @@ -130,7 +135,7 @@ | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="VCMI_lib.lib  zdll.lib" | ||||
| 				AdditionalLibraryDirectories="G:\vcmt\repa\libs" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				GenerateDebugInformation="false" | ||||
| 				OptimizeReferences="2" | ||||
| 				EnableCOMDATFolding="2" | ||||
| 				TargetMachine="1" | ||||
| @@ -184,6 +189,10 @@ | ||||
| 				RelativePath=".\CGameHandler.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\CVCMIServer.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Resource Files" | ||||
|   | ||||
| @@ -1,148 +1,143 @@ | ||||
| #include <iostream> | ||||
| #include <string> | ||||
| #include <boost/bind.hpp> | ||||
| #include <boost/asio.hpp> | ||||
| #include "../global.h" | ||||
| #include "../lib/Connection.h" | ||||
| #include "../CGameState.h" | ||||
| #include "zlib.h" | ||||
| #include <boost/thread.hpp> | ||||
| #include <tchar.h> | ||||
| #include "CVCMIServer.h" | ||||
| #include <boost/crc.hpp> | ||||
| #include <boost/serialization/split_member.hpp> | ||||
| #include "../StartInfo.h" | ||||
| #include "../map.h" | ||||
| #include "../hch/CLodHandler.h"  | ||||
| #include "../lib/VCMI_Lib.h" | ||||
| #include "CGameHandler.h" | ||||
| std::string NAME = NAME_VER + std::string(" (server)"); | ||||
| using boost::asio::ip::tcp; | ||||
| using namespace boost; | ||||
| using namespace boost::asio; | ||||
| using namespace boost::asio::ip; | ||||
| mutex smx1; | ||||
| class CVCMIServer | ||||
|  | ||||
|  | ||||
| CVCMIServer::CVCMIServer() | ||||
| : io(new io_service()), acceptor(new tcp::acceptor(*io, tcp::endpoint(tcp::v4(), 3030))) | ||||
| { | ||||
| 	CGameState *gs; | ||||
| 	tcp::acceptor acceptor; | ||||
| 	std::map<int,CConnection*> connections; | ||||
| 	std::set<CConnection*> conns; | ||||
| 	ui32 seed; | ||||
| public: | ||||
| 	CVCMIServer(io_service& io_service) | ||||
|     : acceptor(io_service, tcp::endpoint(tcp::v4(), 3030)) | ||||
| } | ||||
| CVCMIServer::~CVCMIServer() | ||||
| { | ||||
| 	delete io; | ||||
| 	delete acceptor; | ||||
| } | ||||
|  | ||||
| void CVCMIServer::newGame(CConnection &c) | ||||
| { | ||||
| 	CGameHandler gh; | ||||
| 	boost::system::error_code error; | ||||
| 	StartInfo *si = new StartInfo; | ||||
| 	ui8 clients; | ||||
| 	c >> clients; //how many clients should be connected - TODO: support more than one | ||||
| 	c >> *si; //get start options | ||||
| 	int problem; | ||||
| #ifdef _MSC_VER | ||||
| 	FILE *f; | ||||
| 	problem = fopen_s(&f,si->mapname.c_str(),"r"); | ||||
| #else | ||||
| 	FILE * f = fopen(si->mapname.c_str(),"r"); | ||||
| 	problem = !f; | ||||
| #endif | ||||
| 	if(problem) | ||||
| 	{ | ||||
| 		start(); | ||||
| 		c << ui8(problem); //WRONG! | ||||
| 		return; | ||||
| 	} | ||||
| 	void setUpConnection(CConnection *c, std::string mapname, si32 checksum) | ||||
| 	else | ||||
| 	{ | ||||
| 		ui8 quantity, pom; | ||||
| 		(*c) << mapname << checksum << seed; | ||||
| 		(*c) >> quantity; | ||||
| 		for(int i=0;i<quantity;i++) | ||||
| 		{ | ||||
| 			(*c) >> pom; | ||||
| 			smx1.lock(); | ||||
| 			connections[pom] = c; | ||||
| 			conns.insert(c); | ||||
| 			smx1.unlock(); | ||||
| 		} | ||||
| 		fclose(f); | ||||
| 		c << ui8(0); //OK! | ||||
| 	} | ||||
| 	void newGame(CConnection &c) | ||||
|  | ||||
| 	gh.init(si,rand()); | ||||
|  | ||||
| 	CConnection* cc; //tcp::socket * ss; | ||||
| 	for(int i=0; i<clients; i++) | ||||
| 	{ | ||||
| 		boost::system::error_code error; | ||||
| 		StartInfo *si = new StartInfo; | ||||
| 		ui8 clients; | ||||
| 		std::string mapname; | ||||
| 		c >> clients; | ||||
| 		c >> mapname; | ||||
| 	  //getting map | ||||
| 		gzFile map = gzopen(mapname.c_str(),"rb"); | ||||
| 		if(!map){ c << int8_t(1); return; } | ||||
| 		std::vector<unsigned char> mapstr; int pom; | ||||
| 		while((pom=gzgetc(map))>=0) | ||||
| 		if(!i)  | ||||
| 		{ | ||||
| 			mapstr.push_back(pom); | ||||
| 			cc=&c; | ||||
| 		} | ||||
| 		gzclose(map); | ||||
| 	  //map is decompressed | ||||
| 		c << int8_t(0); //OK! | ||||
| 		gs = new CGameState(); | ||||
| 		gs->scenarioOps = si; | ||||
| 		c > *si; //get start options | ||||
| 		boost::crc_32_type  result; | ||||
| 		result.process_bytes(&(*mapstr.begin()),mapstr.size()); | ||||
| 		int checksum = result.checksum(); | ||||
| 		std::cout << "Checksum:" << checksum << std::endl;  | ||||
| 		CConnection* cc; tcp::socket * ss; | ||||
| 		for(int i=0; i<clients; i++) | ||||
| 		else | ||||
| 		{ | ||||
| 			if(!i)  | ||||
| 			tcp::socket * s = new tcp::socket(acceptor->io_service()); | ||||
| 			acceptor->accept(*s,error); | ||||
| 			if(error) //retry | ||||
| 			{ | ||||
| 				cc=&c; | ||||
| 				std::cout<<"Cannot establish connection - retrying..." << std::endl; | ||||
| 				i--; | ||||
| 				continue; | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				tcp::socket * s = new tcp::socket(acceptor.io_service()); | ||||
| 				acceptor.accept(*s,error); | ||||
| 				if(error) //retry | ||||
| 				{ | ||||
| 					std::cout<<"Cannot establish connection - retrying..." << std::endl; | ||||
| 					i--; | ||||
| 					continue; | ||||
| 				} | ||||
| 				cc = new CConnection(s,NAME,std::cout); | ||||
| 			} | ||||
| 			setUpConnection(cc,mapname,checksum); | ||||
| 		} | ||||
| 		//TODO: wait for other connections | ||||
| 			cc = new CConnection(s,NAME,std::cout); | ||||
| 		}	 | ||||
| 		gh.conns.insert(cc); | ||||
| 	} | ||||
| 	void start() | ||||
|  | ||||
| 	gh.run(); | ||||
| } | ||||
| void CVCMIServer::start() | ||||
| { | ||||
| 	boost::system::error_code error; | ||||
| 	std::cout<<"Listening for connections at port " << acceptor->local_endpoint().port() << std::endl; | ||||
| 	tcp::socket * s = new tcp::socket(acceptor->io_service()); | ||||
| 	acceptor->accept(*s,error); | ||||
| 	if (error) | ||||
| 	{ | ||||
| 		srand ( time(NULL) ); | ||||
| 		seed = rand(); | ||||
| 		boost::system::error_code error; | ||||
| 		std::cout<<"Listening for connections at port " << acceptor.local_endpoint().port() << std::endl; | ||||
| 		tcp::socket * s = new tcp::socket(acceptor.io_service()); | ||||
| 		acceptor.accept(*s,error); | ||||
| 		if (error) | ||||
| 		std::cout<<"Got connection but there is an error " << std::endl; | ||||
| 		return; | ||||
| 	} | ||||
| 	CConnection connection(s,NAME,std::cout); | ||||
| 	std::cout<<"Got connection!" << std::endl; | ||||
| 	while(1) | ||||
| 	{ | ||||
| 		uint8_t mode; | ||||
| 		connection >> mode; | ||||
| 		switch (mode) | ||||
| 		{ | ||||
| 			std::cout<<"Got connection but there is an error " << std::endl; | ||||
| 		case 0: | ||||
| 			connection.socket->close(); | ||||
| 			exit(0); | ||||
| 			break; | ||||
| 		case 1: | ||||
| 			connection.socket->close(); | ||||
| 			return; | ||||
| 		} | ||||
| 		CConnection connection(s,NAME,std::cout); | ||||
| 		std::cout<<"Got connection!" << std::endl; | ||||
| 		while(1) | ||||
| 		{ | ||||
| 			uint8_t mode; | ||||
| 			connection >> mode; | ||||
| 			switch (mode) | ||||
| 			{ | ||||
| 			case 0: | ||||
| 				connection.socket->close(); | ||||
| 				exit(0); | ||||
| 				break; | ||||
| 			case 1: | ||||
| 				connection.socket->close(); | ||||
| 				return; | ||||
| 				break; | ||||
| 			case 2: | ||||
| 				newGame(connection); | ||||
| 				break; | ||||
| 			} | ||||
| 			break; | ||||
| 		case 2: | ||||
| 			newGame(connection); | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
| } | ||||
|  | ||||
| int _tmain(int argc, _TCHAR* argv[]) | ||||
| { | ||||
|   try | ||||
|   { | ||||
|     io_service io_service; | ||||
|     CVCMIServer server(io_service); | ||||
| 	while(1) | ||||
| 		server.start(); | ||||
|     io_service.run(); | ||||
|   } | ||||
|   catch (std::exception& e) | ||||
|   { | ||||
|     std::cerr << e.what() << std::endl; | ||||
|   } | ||||
|  | ||||
| 	CLodHandler h3bmp; | ||||
| 	h3bmp.init("Data\\H3bitmap.lod","Data"); | ||||
| 	initDLL(&h3bmp); | ||||
| 	srand ( (unsigned int)time(NULL) ); | ||||
| 	try | ||||
| 	{ | ||||
| 		io_service io_service; | ||||
| 		CVCMIServer server; | ||||
| 		while(1) | ||||
| 			server.start(); | ||||
| 		io_service.run(); | ||||
| 	} | ||||
| 	catch (std::exception& e) | ||||
| 	{ | ||||
| 		std::cerr << e.what() << std::endl; | ||||
| 	} | ||||
| 	catch(...) | ||||
| 	{ | ||||
| 		; | ||||
| 	} | ||||
|   return 0; | ||||
| } | ||||
|   | ||||
| @@ -1,38 +0,0 @@ | ||||
| using namespace System; | ||||
| using namespace System::Reflection; | ||||
| using namespace System::Runtime::CompilerServices; | ||||
| using namespace System::Runtime::InteropServices; | ||||
| using namespace System::Security::Permissions; | ||||
|  | ||||
| // | ||||
| // General Information about an assembly is controlled through the following | ||||
| // set of attributes. Change these attribute values to modify the information | ||||
| // associated with an assembly. | ||||
| // | ||||
| [assembly:AssemblyTitleAttribute("wyprujdef")]; | ||||
| [assembly:AssemblyDescriptionAttribute("Cudowne narz�dzie pozwalaj�ce w szybkimczasie wypru� defy.")]; | ||||
| [assembly:AssemblyConfigurationAttribute("")]; | ||||
| [assembly:AssemblyCompanyAttribute("VCMI Team")]; | ||||
| [assembly:AssemblyProductAttribute("wyprujdef")]; | ||||
| [assembly:AssemblyCopyrightAttribute("Copyright (c)  2008")]; | ||||
| [assembly:AssemblyTrademarkAttribute("")]; | ||||
| [assembly:AssemblyCultureAttribute("")]; | ||||
|  | ||||
| // | ||||
| // Version information for an assembly consists of the following four values: | ||||
| // | ||||
| //      Major Version | ||||
| //      Minor Version | ||||
| //      Build Number | ||||
| //      Revision | ||||
| // | ||||
| // You can specify all the value or you can default the Revision and Build Numbers | ||||
| // by using the '*' as shown below: | ||||
|  | ||||
| [assembly:AssemblyVersionAttribute("1.0.*")]; | ||||
|  | ||||
| [assembly:ComVisible(false)]; | ||||
|  | ||||
| [assembly:CLSCompliantAttribute(true)]; | ||||
|  | ||||
| [assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,62 +0,0 @@ | ||||
| #include "Oknopruj.h" | ||||
| #include "tchar.h" | ||||
| #include "CDefHandler.h" | ||||
| #include "Oknopruj.h" | ||||
| #include <string> | ||||
| #include <sstream> | ||||
| using namespace System; | ||||
| using namespace wyprujdef; | ||||
| std::string Oknopruj::ToString(System::String^ src) | ||||
| { | ||||
| 	std::string dest; | ||||
| 	using namespace System::Runtime::InteropServices; | ||||
| 	const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(src)).ToPointer(); | ||||
| 	dest = chars; | ||||
| 	Marshal::FreeHGlobal(IntPtr((void*)chars)); | ||||
| 	return dest; | ||||
| } | ||||
| void Oknopruj::wyprujDefyZPlikow(array<String^> ^pliki) | ||||
| { | ||||
| 	progressBar1->Maximum = pliki->Length; | ||||
| 	progressBar1->Value = 0; | ||||
| 	CDefHandler * defik; | ||||
| 	for each(String ^ plik in pliki) | ||||
| 	{ | ||||
| 		progressBar1->Value++; | ||||
| 		if(!((plik->EndsWith(".def")||(plik->EndsWith(".DEF"))))) | ||||
| 			continue; | ||||
| 		defik = new CDefHandler(); | ||||
| 		defik->openDef(ToString(plik)); | ||||
|  | ||||
| 		int to=1; | ||||
| 		std::string bmpname; | ||||
| 		if (rall->Checked) | ||||
| 		{ | ||||
| 			to = defik->ourImages.size(); | ||||
| 		} | ||||
|  | ||||
| 		for (int i=0;i<to;i++) | ||||
| 		{ | ||||
| 			std::ostringstream oss; | ||||
| 			oss << ToString(plik->Substring(0,plik->Length-4)) << '_' << i << "_.bmp"; | ||||
| 			SDL_SaveBMP(defik->ourImages[i].bitmap,oss.str().c_str()); | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		delete defik; | ||||
| 	} | ||||
| } | ||||
| [STAThreadAttribute] | ||||
| int WinMain() | ||||
| { | ||||
| 	String^ folder = (System::IO::Directory::GetCurrentDirectory()); | ||||
| 	array<String^>^ pliki = IO::Directory::GetFiles(folder); | ||||
| 	Oknopruj ^ okno = gcnew Oknopruj(); | ||||
| 	Application::Run(okno); | ||||
| 	exit(0); | ||||
| } | ||||
|  | ||||
| void Oknopruj::runSearch() | ||||
| { | ||||
| 	wyprujDefyZPlikow(IO::Directory::GetFiles(pathBox->Text)); | ||||
| }// wyprujdef.cpp : main project file. | ||||
| @@ -1,235 +0,0 @@ | ||||
| #pragma once | ||||
| #include <string> | ||||
| using namespace System; | ||||
| using namespace System::ComponentModel; | ||||
| using namespace System::Collections; | ||||
| using namespace System::Windows::Forms; | ||||
| using namespace System::Data; | ||||
| using namespace System::Drawing; | ||||
|  | ||||
|  | ||||
| namespace wyprujdef { | ||||
|  | ||||
| 	/// <summary> | ||||
| 	/// Summary for Oknopruj | ||||
| 	/// | ||||
| 	/// WARNING: If you change the name of this class, you will need to change the | ||||
| 	///          'Resource File Name' property for the managed resource compiler tool | ||||
| 	///          associated with all .resx files this class depends on.  Otherwise, | ||||
| 	///          the designers will not be able to interact properly with localized | ||||
| 	///          resources associated with this form. | ||||
| 	/// </summary> | ||||
| 	public ref class Oknopruj : public System::Windows::Forms::Form | ||||
| 	{ | ||||
| 	public: | ||||
|  | ||||
| 		static std::string ToString(System::String^ src); | ||||
| 		void runSearch(); | ||||
| 		void wyprujDefyZPlikow(array<String^> ^pliki); | ||||
|  | ||||
| 		Oknopruj(void) | ||||
| 		{ | ||||
| 			InitializeComponent(); | ||||
| 		} | ||||
|  | ||||
| 	protected: | ||||
| 		/// <summary> | ||||
| 		/// Clean up any resources being used. | ||||
| 		/// </summary> | ||||
| 		~Oknopruj() | ||||
| 		{ | ||||
| 			if (components) | ||||
| 			{ | ||||
| 				delete components; | ||||
| 			} | ||||
| 		} | ||||
| 	private: System::Windows::Forms::MenuStrip^  menuStrip1; | ||||
| 	protected:  | ||||
| 	private: System::Windows::Forms::ToolStripMenuItem^  rUNToolStripMenuItem; | ||||
| 	private: System::Windows::Forms::ToolStripMenuItem^  getProgramDirToolStripMenuItem; | ||||
| 	private: System::Windows::Forms::ToolStripMenuItem^  browseToolStripMenuItem; | ||||
|  | ||||
| 	private: System::Windows::Forms::ToolStripMenuItem^  vCMIHomepageToolStripMenuItem; | ||||
| 	private: System::Windows::Forms::ProgressBar^  progressBar1; | ||||
| 	private: System::Windows::Forms::TextBox^  pathBox; | ||||
|  | ||||
| 	private: System::Windows::Forms::Label^  label1; | ||||
| 	private: System::DirectoryServices::DirectorySearcher^  directorySearcher1; | ||||
| 	private: System::Windows::Forms::FolderBrowserDialog^  folderBrowserDialog1; | ||||
| 	private: System::Windows::Forms::RadioButton^  rfirst; | ||||
| 	private: System::Windows::Forms::RadioButton^  rall; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| 	private: | ||||
| 		/// <summary> | ||||
| 		/// Required designer variable. | ||||
| 		/// </summary> | ||||
| 		System::ComponentModel::Container ^components; | ||||
|  | ||||
| #pragma region Windows Form Designer generated code | ||||
| 		/// <summary> | ||||
| 		/// Required method for Designer support - do not modify | ||||
| 		/// the contents of this method with the code editor. | ||||
| 		/// </summary> | ||||
| 		void InitializeComponent(void) | ||||
| 		{ | ||||
| 			this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip()); | ||||
| 			this->rUNToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); | ||||
| 			this->getProgramDirToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); | ||||
| 			this->browseToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); | ||||
| 			this->vCMIHomepageToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem()); | ||||
| 			this->progressBar1 = (gcnew System::Windows::Forms::ProgressBar()); | ||||
| 			this->pathBox = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label1 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->directorySearcher1 = (gcnew System::DirectoryServices::DirectorySearcher()); | ||||
| 			this->folderBrowserDialog1 = (gcnew System::Windows::Forms::FolderBrowserDialog()); | ||||
| 			this->rfirst = (gcnew System::Windows::Forms::RadioButton()); | ||||
| 			this->rall = (gcnew System::Windows::Forms::RadioButton()); | ||||
| 			this->menuStrip1->SuspendLayout(); | ||||
| 			this->SuspendLayout(); | ||||
| 			//  | ||||
| 			// menuStrip1 | ||||
| 			//  | ||||
| 			this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(4) {this->rUNToolStripMenuItem,  | ||||
| 				this->getProgramDirToolStripMenuItem, this->browseToolStripMenuItem, this->vCMIHomepageToolStripMenuItem}); | ||||
| 			this->menuStrip1->Location = System::Drawing::Point(0, 0); | ||||
| 			this->menuStrip1->Name = L"menuStrip1"; | ||||
| 			this->menuStrip1->Size = System::Drawing::Size(308, 24); | ||||
| 			this->menuStrip1->TabIndex = 0; | ||||
| 			this->menuStrip1->Text = L"menuStrip1"; | ||||
| 			//  | ||||
| 			// rUNToolStripMenuItem | ||||
| 			//  | ||||
| 			this->rUNToolStripMenuItem->Name = L"rUNToolStripMenuItem"; | ||||
| 			this->rUNToolStripMenuItem->Size = System::Drawing::Size(44, 20); | ||||
| 			this->rUNToolStripMenuItem->Text = L"RUN!"; | ||||
| 			this->rUNToolStripMenuItem->Click += gcnew System::EventHandler(this, &Oknopruj::rUNToolStripMenuItem_Click); | ||||
| 			//  | ||||
| 			// getProgramDirToolStripMenuItem | ||||
| 			//  | ||||
| 			this->getProgramDirToolStripMenuItem->Name = L"getProgramDirToolStripMenuItem"; | ||||
| 			this->getProgramDirToolStripMenuItem->Size = System::Drawing::Size(94, 20); | ||||
| 			this->getProgramDirToolStripMenuItem->Text = L"Get program dir"; | ||||
| 			this->getProgramDirToolStripMenuItem->Click += gcnew System::EventHandler(this, &Oknopruj::getProgramDirToolStripMenuItem_Click); | ||||
| 			//  | ||||
| 			// browseToolStripMenuItem | ||||
| 			//  | ||||
| 			this->browseToolStripMenuItem->Name = L"browseToolStripMenuItem"; | ||||
| 			this->browseToolStripMenuItem->Size = System::Drawing::Size(66, 20); | ||||
| 			this->browseToolStripMenuItem->Text = L"Browse..."; | ||||
| 			this->browseToolStripMenuItem->Click += gcnew System::EventHandler(this, &Oknopruj::browseToolStripMenuItem_Click); | ||||
| 			//  | ||||
| 			// vCMIHomepageToolStripMenuItem | ||||
| 			//  | ||||
| 			this->vCMIHomepageToolStripMenuItem->Name = L"vCMIHomepageToolStripMenuItem"; | ||||
| 			this->vCMIHomepageToolStripMenuItem->Size = System::Drawing::Size(97, 20); | ||||
| 			this->vCMIHomepageToolStripMenuItem->Text = L"VCMI homepage"; | ||||
| 			this->vCMIHomepageToolStripMenuItem->Click += gcnew System::EventHandler(this, &Oknopruj::vCMIHomepageToolStripMenuItem_Click); | ||||
| 			//  | ||||
| 			// progressBar1 | ||||
| 			//  | ||||
| 			this->progressBar1->Location = System::Drawing::Point(12, 96); | ||||
| 			this->progressBar1->Name = L"progressBar1"; | ||||
| 			this->progressBar1->Size = System::Drawing::Size(284, 14); | ||||
| 			this->progressBar1->TabIndex = 1; | ||||
| 			//  | ||||
| 			// pathBox | ||||
| 			//  | ||||
| 			this->pathBox->Location = System::Drawing::Point(12, 50); | ||||
| 			this->pathBox->Name = L"pathBox"; | ||||
| 			this->pathBox->Size = System::Drawing::Size(276, 20); | ||||
| 			this->pathBox->TabIndex = 2; | ||||
| 			//  | ||||
| 			// label1 | ||||
| 			//  | ||||
| 			this->label1->AutoSize = true; | ||||
| 			this->label1->Location = System::Drawing::Point(137, 34); | ||||
| 			this->label1->Name = L"label1"; | ||||
| 			this->label1->Size = System::Drawing::Size(32, 13); | ||||
| 			this->label1->TabIndex = 3; | ||||
| 			this->label1->Text = L"Path:"; | ||||
| 			//  | ||||
| 			// directorySearcher1 | ||||
| 			//  | ||||
| 			this->directorySearcher1->ClientTimeout = System::TimeSpan::Parse(L"-00:00:01"); | ||||
| 			this->directorySearcher1->ServerPageTimeLimit = System::TimeSpan::Parse(L"-00:00:01"); | ||||
| 			this->directorySearcher1->ServerTimeLimit = System::TimeSpan::Parse(L"-00:00:01"); | ||||
| 			//  | ||||
| 			// rfirst | ||||
| 			//  | ||||
| 			this->rfirst->AutoSize = true; | ||||
| 			this->rfirst->Checked = true; | ||||
| 			this->rfirst->Location = System::Drawing::Point(12, 73); | ||||
| 			this->rfirst->Name = L"rfirst"; | ||||
| 			this->rfirst->Size = System::Drawing::Size(128, 17); | ||||
| 			this->rfirst->TabIndex = 4; | ||||
| 			this->rfirst->TabStop = true; | ||||
| 			this->rfirst->Text = L"Extract only first frame"; | ||||
| 			this->rfirst->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// rall | ||||
| 			//  | ||||
| 			this->rall->AutoSize = true; | ||||
| 			this->rall->Location = System::Drawing::Point(183, 73); | ||||
| 			this->rall->Name = L"rall"; | ||||
| 			this->rall->Size = System::Drawing::Size(105, 17); | ||||
| 			this->rall->TabIndex = 4; | ||||
| 			this->rall->Text = L"Extract all frames"; | ||||
| 			this->rall->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// Oknopruj | ||||
| 			//  | ||||
| 			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); | ||||
| 			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; | ||||
| 			this->ClientSize = System::Drawing::Size(308, 120); | ||||
| 			this->Controls->Add(this->rall); | ||||
| 			this->Controls->Add(this->rfirst); | ||||
| 			this->Controls->Add(this->label1); | ||||
| 			this->Controls->Add(this->pathBox); | ||||
| 			this->Controls->Add(this->progressBar1); | ||||
| 			this->Controls->Add(this->menuStrip1); | ||||
| 			this->MainMenuStrip = this->menuStrip1; | ||||
| 			this->MaximizeBox = false; | ||||
| 			this->Name = L"Oknopruj"; | ||||
| 			this->ShowIcon = false; | ||||
| 			this->Text = L"Defopruj 1.0"; | ||||
| 			this->Load += gcnew System::EventHandler(this, &Oknopruj::Oknopruj_Load); | ||||
| 			this->menuStrip1->ResumeLayout(false); | ||||
| 			this->menuStrip1->PerformLayout(); | ||||
| 			this->ResumeLayout(false); | ||||
| 			this->PerformLayout(); | ||||
|  | ||||
| 		} | ||||
| #pragma endregion | ||||
| private: System::Void rUNToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)  | ||||
| 		 { | ||||
| 			 runSearch(); | ||||
| 		 } | ||||
| private: System::Void Oknopruj_Load(System::Object^  sender, System::EventArgs^  e)  | ||||
| 		 { | ||||
| 			 pathBox->Text = IO::Directory::GetCurrentDirectory(); | ||||
| 		 } | ||||
| private: System::Void getProgramDirToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)  | ||||
| 		 { | ||||
| 			 pathBox->Text = IO::Directory::GetCurrentDirectory(); | ||||
| 		 } | ||||
| private: System::Void browseToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)  | ||||
| 		 { | ||||
| 			 if (folderBrowserDialog1->ShowDialog()==System::Windows::Forms::DialogResult::OK) | ||||
| 			 { | ||||
| 				 pathBox->Text = folderBrowserDialog1->SelectedPath; | ||||
| 			 } | ||||
| 		 } | ||||
| private: System::Void aboutToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)  | ||||
| 		 { | ||||
|  | ||||
| 		 } | ||||
| private: System::Void vCMIHomepageToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e)  | ||||
| 		 { | ||||
| 			 Diagnostics::Process::Start(gcnew String("http://antypika.aplus.pl/vcmi")); | ||||
| 		 } | ||||
| }; | ||||
| } | ||||
| @@ -1,260 +0,0 @@ | ||||
| <?xml version="1.0" encoding="windows-1250"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="9,00" | ||||
| 	Name="wyprujdef" | ||||
| 	ProjectGUID="{D247EBCC-E8B2-4DE9-8B72-DFF180DB6241}" | ||||
| 	RootNamespace="wyprujdef" | ||||
| 	Keyword="ManagedCProj" | ||||
| 	TargetFrameworkVersion="196613" | ||||
| 	> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32" | ||||
| 		/> | ||||
| 	</Platforms> | ||||
| 	<ToolFiles> | ||||
| 	</ToolFiles> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="Debug|Win32" | ||||
| 			OutputDirectory="$(SolutionDir)$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			CharacterSet="1" | ||||
| 			ManagedExtensions="1" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="G:\tp\SDL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG" | ||||
| 				RuntimeLibrary="3" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="SDL.lib $(NOINHERIT)" | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="G:\tp\SDL\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				AssemblyDebug="1" | ||||
| 				SubSystem="0" | ||||
| 				EntryPointSymbol="" | ||||
| 				TargetMachine="1" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCALinkTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManifestTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXDCMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCBscMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCFxCopTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCAppVerifierTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool" | ||||
| 			/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="Release|Win32" | ||||
| 			OutputDirectory="$(SolutionDir)$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			CharacterSet="1" | ||||
| 			ManagedExtensions="1" | ||||
| 			WholeProgramOptimization="1" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="3" | ||||
| 				InlineFunctionExpansion="0" | ||||
| 				EnableIntrinsicFunctions="true" | ||||
| 				FavorSizeOrSpeed="1" | ||||
| 				OmitFramePointers="true" | ||||
| 				EnableFiberSafeOptimizations="true" | ||||
| 				AdditionalIncludeDirectories="G:\tp\SDL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG" | ||||
| 				StringPooling="true" | ||||
| 				MinimalRebuild="false" | ||||
| 				RuntimeLibrary="2" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="4" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="SDL.lib $(NOINHERIT)" | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="G:\tp\SDL\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				SubSystem="2" | ||||
| 				TargetMachine="1" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCALinkTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManifestTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXDCMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCBscMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCFxCopTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCAppVerifierTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool" | ||||
| 			/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.dll" | ||||
| 			AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.Data.dll" | ||||
| 			AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.XML.dll" | ||||
| 			AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.Drawing.dll" | ||||
| 			AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.Windows.Forms.dll" | ||||
| 			AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.DirectoryServices.dll" | ||||
| 			AssemblyName="System.DirectoryServices, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" | ||||
| 			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\AssemblyInfo.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\CDefHandler.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\Oknopruj.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Header Files" | ||||
| 			Filter="h;hpp;hxx;hm;inl;inc;xsd" | ||||
| 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\CDefHandler.h" | ||||
| 				> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath=".\Oknopruj.h" | ||||
| 				FileType="3" | ||||
| 				> | ||||
| 				<File | ||||
| 					RelativePath=".\Oknopruj.resx" | ||||
| 					SubType="Designer" | ||||
| 					> | ||||
| 				</File> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Resource Files" | ||||
| 			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" | ||||
| 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" | ||||
| 			> | ||||
| 		</Filter> | ||||
| 		<File | ||||
| 			RelativePath=".\ReadMe.txt" | ||||
| 			> | ||||
| 		</File> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
							
								
								
									
										99
									
								
								tools/Defsorter/Form1.Designer.cs
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										99
									
								
								tools/Defsorter/Form1.Designer.cs
									
									
									
										generated
									
									
									
								
							| @@ -1,99 +0,0 @@ | ||||
| namespace DefSorter | ||||
| { | ||||
|     partial class Form1 | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Required designer variable. | ||||
|         /// </summary> | ||||
|         private System.ComponentModel.IContainer components = null; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Clean up any resources being used. | ||||
|         /// </summary> | ||||
|         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | ||||
|         protected override void Dispose(bool disposing) | ||||
|         { | ||||
|             if (disposing && (components != null)) | ||||
|             { | ||||
|                 components.Dispose(); | ||||
|             } | ||||
|             base.Dispose(disposing); | ||||
|         } | ||||
|  | ||||
|         #region Windows Form Designer generated code | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Required method for Designer support - do not modify | ||||
|         /// the contents of this method with the code editor. | ||||
|         /// </summary> | ||||
|         private void InitializeComponent() | ||||
|         { | ||||
|             this.button1 = new System.Windows.Forms.Button(); | ||||
|             this.label1 = new System.Windows.Forms.Label(); | ||||
|             this.label2 = new System.Windows.Forms.Label(); | ||||
|             this.progressBar1 = new System.Windows.Forms.ProgressBar(); | ||||
|             this.SuspendLayout(); | ||||
|             //  | ||||
|             // button1 | ||||
|             //  | ||||
|             this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.button1.Location = new System.Drawing.Point(41, 35); | ||||
|             this.button1.Name = "button1"; | ||||
|             this.button1.Size = new System.Drawing.Size(138, 27); | ||||
|             this.button1.TabIndex = 0; | ||||
|             this.button1.Text = "Posortuj defy!"; | ||||
|             this.button1.UseVisualStyleBackColor = true; | ||||
|             this.button1.Click += new System.EventHandler(this.button1_Click); | ||||
|             //  | ||||
|             // label1 | ||||
|             //  | ||||
|             this.label1.AutoSize = true; | ||||
|             this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label1.Location = new System.Drawing.Point(12, 9); | ||||
|             this.label1.Name = "label1"; | ||||
|             this.label1.Size = new System.Drawing.Size(114, 18); | ||||
|             this.label1.TabIndex = 1; | ||||
|             this.label1.Text = "Defów wykryto: "; | ||||
|             //  | ||||
|             // label2 | ||||
|             //  | ||||
|             this.label2.AutoSize = true; | ||||
|             this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label2.Location = new System.Drawing.Point(146, 9); | ||||
|             this.label2.Name = "label2"; | ||||
|             this.label2.Size = new System.Drawing.Size(52, 18); | ||||
|             this.label2.TabIndex = 2; | ||||
|             this.label2.Text = "XXXX"; | ||||
|             //  | ||||
|             // progressBar1 | ||||
|             //  | ||||
|             this.progressBar1.Location = new System.Drawing.Point(4, 73); | ||||
|             this.progressBar1.Name = "progressBar1"; | ||||
|             this.progressBar1.Size = new System.Drawing.Size(202, 19); | ||||
|             this.progressBar1.TabIndex = 3; | ||||
|             //  | ||||
|             // Form1 | ||||
|             //  | ||||
|             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | ||||
|             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | ||||
|             this.ClientSize = new System.Drawing.Size(210, 97); | ||||
|             this.Controls.Add(this.progressBar1); | ||||
|             this.Controls.Add(this.label2); | ||||
|             this.Controls.Add(this.label1); | ||||
|             this.Controls.Add(this.button1); | ||||
|             this.Name = "Form1"; | ||||
|             this.Text = "Def sorter by Tow"; | ||||
|             this.ResumeLayout(false); | ||||
|             this.PerformLayout(); | ||||
|  | ||||
|         } | ||||
|  | ||||
|         #endregion | ||||
|  | ||||
|         private System.Windows.Forms.Button button1; | ||||
|         private System.Windows.Forms.Label label1; | ||||
|         private System.Windows.Forms.Label label2; | ||||
|         private System.Windows.Forms.ProgressBar progressBar1; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -1,242 +0,0 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.ComponentModel; | ||||
| using System.Data; | ||||
| using System.Drawing; | ||||
| using System.Text; | ||||
| using System.Windows.Forms; | ||||
| using System.IO; | ||||
| using System.Collections; | ||||
| namespace DefSorter | ||||
| { | ||||
|     public partial class Form1 : Form | ||||
|     { | ||||
|         int bledy; | ||||
|         public Form1() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|             int ile = 0; | ||||
|             bledy = 0; | ||||
|             string[] pliczki = Directory.GetFiles(Directory.GetCurrentDirectory()); | ||||
|             foreach (string ss in pliczki) | ||||
|             { | ||||
|                 if ((!(ss.EndsWith(".DEF")))&&(!(ss.EndsWith(".def")))) | ||||
|                     continue; | ||||
|                 else ile++; | ||||
|             } | ||||
|             label2.Text = ile.ToString(); | ||||
|             progressBar1.Visible = false; | ||||
|         } | ||||
|  | ||||
|         private void button1_Click(object sender, EventArgs e) | ||||
|         { | ||||
|             int s12 = 0, s13 = 0, s14 = 0, s15 = 0, s16 = 0, s17 = 0, s18 = 0, | ||||
|                 s19 = 0, s20 = 0, s21 = 0; | ||||
|             Form2 pozegnanie = new Form2(); | ||||
|             ArrayList defy = new ArrayList(); | ||||
|             string[] pliczki = Directory.GetFiles(Directory.GetCurrentDirectory(),"*.DEF"); | ||||
|             progressBar1.Visible = true; | ||||
|             progressBar1.Minimum = progressBar1.Value = 0; | ||||
|             progressBar1.Maximum = Convert.ToInt32(label2.Text); | ||||
|             foreach (string ss in pliczki) | ||||
|             { | ||||
|                 if ((!(ss.EndsWith(".DEF"))) && (!(ss.EndsWith(".def")))) | ||||
|                     continue; | ||||
|                 FileStream czytacz = File.OpenRead(ss); | ||||
|                 int coTo = czytacz.ReadByte(); | ||||
|                 czytacz.Close(); | ||||
|                 int poczP = ss.LastIndexOf('\\'); | ||||
|                 string nazwa = ss.Substring(poczP + 1, ss.Length - poczP - 1); | ||||
|                 try | ||||
|                 { | ||||
|                     switch (coTo) | ||||
|                     { | ||||
|                         case 64: | ||||
|                             if (!Directory.Exists("40Spell")) | ||||
|                                 Directory.CreateDirectory("40Spell"); | ||||
|                             File.Copy(ss, "40Spell\\" + nazwa); | ||||
|                             s12++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "40Spell\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "40Spell\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 65: | ||||
|                             if (!Directory.Exists("41SpriteDef")) | ||||
|                                 Directory.CreateDirectory("41SpriteDef"); | ||||
|                             File.Copy(ss, "41SpriteDef\\" + nazwa); | ||||
|                             s13++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "41SpriteDef\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "41SpriteDef\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 66: | ||||
|                             if (!Directory.Exists("42Creature")) | ||||
|                                 Directory.CreateDirectory("42Creature"); | ||||
|                             File.Copy(ss, "42Creature\\" + nazwa); | ||||
|                             s14++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "42Creature\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "42Creature\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 67: | ||||
|                             if (!Directory.Exists("43AdvObject")) | ||||
|                                 Directory.CreateDirectory("43AdvObject"); | ||||
|                             File.Copy(ss, "43AdvObject\\" + nazwa); | ||||
|                             s15++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "43AdvObject\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "43AdvObject\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 68: | ||||
|                             if (!Directory.Exists("44Hero")) | ||||
|                                 Directory.CreateDirectory("44Hero"); | ||||
|                             File.Copy(ss, "44Hero\\" + nazwa); | ||||
|                             s16++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "44Hero\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "44Hero\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 69: | ||||
|                             if (!Directory.Exists("45Terrain")) | ||||
|                                 Directory.CreateDirectory("45Terrain"); | ||||
|                             File.Copy(ss, "45Terrain\\" + nazwa); | ||||
|                             s17++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4)+".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4)+".MSK","45Terrain\\"+nazwa.Substring(0, nazwa.Length - 4)+".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4)+".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4)+".MSG","45Terrain\\"+nazwa.Substring(0, nazwa.Length - 4)+".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 70: | ||||
|                             if (!Directory.Exists("46Cursor")) | ||||
|                                 Directory.CreateDirectory("46Cursor"); | ||||
|                             File.Copy(ss, "46Cursor\\" + nazwa); | ||||
|                             s18++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "46Cursor\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "46Cursor\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 71: | ||||
|                             if (!Directory.Exists("47Interface")) | ||||
|                                 Directory.CreateDirectory("47Interface"); | ||||
|                             File.Copy(ss, "47Interface\\" + nazwa); | ||||
|                             s19++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "47Interface\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "47Interface\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 72: | ||||
|                             if (!Directory.Exists("48Spriteframe")) | ||||
|                                 Directory.CreateDirectory("48Spriteframe"); | ||||
|                             File.Copy(ss, "48Spriteframe\\" + nazwa); | ||||
|                             s20++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "48Spriteframe\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "48Spriteframe\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                         case 73: | ||||
|                             if (!Directory.Exists("49CombatHero")) | ||||
|                                 Directory.CreateDirectory("49CombatHero"); | ||||
|                             File.Copy(ss, "49CombatHero\\" + nazwa); | ||||
|                             s21++; | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSK")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSK", "49CombatHero\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSK"); | ||||
|                             } | ||||
|                             if (File.Exists(nazwa.Substring(0, nazwa.Length - 4) + ".MSG")) | ||||
|                             { | ||||
|                                 File.Copy(nazwa.Substring(0, nazwa.Length - 4) + ".MSG", "49CombatHero\\" + nazwa.Substring(0, nazwa.Length - 4) + ".MSG"); | ||||
|                             } | ||||
|                             break; | ||||
|                     } | ||||
|                 } | ||||
|                 catch (Exception ee) | ||||
|                 { | ||||
|                     bledy++; | ||||
|                     Form3 niedobrze = new Form3(); | ||||
|                     niedobrze.textBox1.Text += ee.Message; | ||||
|                     DialogResult res = niedobrze.ShowDialog(); | ||||
|                     switch (res) | ||||
|                     { | ||||
|                         case DialogResult.Ignore: | ||||
|                             break; | ||||
|                         case DialogResult.Cancel: | ||||
|                             try { Directory.Delete("40Spell"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("41SpriteDef"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("42Creature"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("43AdvObject"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("45Terrain"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("46Cursor"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("47Interface"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("48Spriteframe"); }catch(Exception){}; | ||||
|                             try { Directory.Delete("49CombatHero"); }catch(Exception){}; | ||||
|                             Application.Exit(); | ||||
|                             break; | ||||
|                     } | ||||
|                 } | ||||
|                 progressBar1.Value++; | ||||
|                 if (progressBar1.Value % 100 == 5) | ||||
|                     this.Update(); | ||||
|             } | ||||
|             progressBar1.Visible = false; | ||||
|             pozegnanie.label12.Text = s12.ToString(); | ||||
|             pozegnanie.label13.Text = s13.ToString(); | ||||
|             pozegnanie.label14.Text = s14.ToString(); | ||||
|             pozegnanie.label15.Text = s15.ToString(); | ||||
|             pozegnanie.label16.Text = s16.ToString(); | ||||
|             pozegnanie.label17.Text = s17.ToString(); | ||||
|             pozegnanie.label18.Text = s18.ToString(); | ||||
|             pozegnanie.label19.Text = s19.ToString(); | ||||
|             pozegnanie.label20.Text = s20.ToString(); | ||||
|             pozegnanie.label21.Text = s21.ToString(); | ||||
|             pozegnanie.label34.Text = bledy.ToString(); | ||||
|             if (bledy == 0) | ||||
|                 pozegnanie.label35.Text = ":)"; | ||||
|             pozegnanie.Show(); | ||||
|             pozegnanie.Activate(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										517
									
								
								tools/Defsorter/Form2.Designer.cs
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										517
									
								
								tools/Defsorter/Form2.Designer.cs
									
									
									
										generated
									
									
									
								
							| @@ -1,517 +0,0 @@ | ||||
| namespace DefSorter | ||||
| { | ||||
|     partial class Form2 | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Required designer variable. | ||||
|         /// </summary> | ||||
|         private System.ComponentModel.IContainer components = null; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Clean up any resources being used. | ||||
|         /// </summary> | ||||
|         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | ||||
|         protected override void Dispose(bool disposing) | ||||
|         { | ||||
|             if (disposing && (components != null)) | ||||
|             { | ||||
|                 components.Dispose(); | ||||
|             } | ||||
|             base.Dispose(disposing); | ||||
|         } | ||||
|  | ||||
|         #region Windows Form Designer generated code | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Required method for Designer support - do not modify | ||||
|         /// the contents of this method with the code editor. | ||||
|         /// </summary> | ||||
|         private void InitializeComponent() | ||||
|         { | ||||
|             this.label1 = new System.Windows.Forms.Label(); | ||||
|             this.label2 = new System.Windows.Forms.Label(); | ||||
|             this.label3 = new System.Windows.Forms.Label(); | ||||
|             this.label4 = new System.Windows.Forms.Label(); | ||||
|             this.label5 = new System.Windows.Forms.Label(); | ||||
|             this.label6 = new System.Windows.Forms.Label(); | ||||
|             this.label7 = new System.Windows.Forms.Label(); | ||||
|             this.label8 = new System.Windows.Forms.Label(); | ||||
|             this.label9 = new System.Windows.Forms.Label(); | ||||
|             this.label10 = new System.Windows.Forms.Label(); | ||||
|             this.label11 = new System.Windows.Forms.Label(); | ||||
|             this.label12 = new System.Windows.Forms.Label(); | ||||
|             this.label13 = new System.Windows.Forms.Label(); | ||||
|             this.label14 = new System.Windows.Forms.Label(); | ||||
|             this.label15 = new System.Windows.Forms.Label(); | ||||
|             this.label16 = new System.Windows.Forms.Label(); | ||||
|             this.label17 = new System.Windows.Forms.Label(); | ||||
|             this.label18 = new System.Windows.Forms.Label(); | ||||
|             this.label19 = new System.Windows.Forms.Label(); | ||||
|             this.label20 = new System.Windows.Forms.Label(); | ||||
|             this.label21 = new System.Windows.Forms.Label(); | ||||
|             this.label22 = new System.Windows.Forms.Label(); | ||||
|             this.label23 = new System.Windows.Forms.Label(); | ||||
|             this.label24 = new System.Windows.Forms.Label(); | ||||
|             this.label25 = new System.Windows.Forms.Label(); | ||||
|             this.label26 = new System.Windows.Forms.Label(); | ||||
|             this.label27 = new System.Windows.Forms.Label(); | ||||
|             this.label28 = new System.Windows.Forms.Label(); | ||||
|             this.label29 = new System.Windows.Forms.Label(); | ||||
|             this.label30 = new System.Windows.Forms.Label(); | ||||
|             this.label31 = new System.Windows.Forms.Label(); | ||||
|             this.label32 = new System.Windows.Forms.Label(); | ||||
|             this.button1 = new System.Windows.Forms.Button(); | ||||
|             this.label33 = new System.Windows.Forms.Label(); | ||||
|             this.label34 = new System.Windows.Forms.Label(); | ||||
|             this.label35 = new System.Windows.Forms.Label(); | ||||
|             this.SuspendLayout(); | ||||
|             //  | ||||
|             // label1 | ||||
|             //  | ||||
|             this.label1.AutoSize = true; | ||||
|             this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label1.Location = new System.Drawing.Point(12, 9); | ||||
|             this.label1.Name = "label1"; | ||||
|             this.label1.Size = new System.Drawing.Size(255, 17); | ||||
|             this.label1.TabIndex = 0; | ||||
|             this.label1.Text = "Szczęśliwie posortowano. Wg kategorii:"; | ||||
|             //  | ||||
|             // label2 | ||||
|             //  | ||||
|             this.label2.AutoSize = true; | ||||
|             this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label2.Location = new System.Drawing.Point(12, 26); | ||||
|             this.label2.Name = "label2"; | ||||
|             this.label2.Size = new System.Drawing.Size(59, 17); | ||||
|             this.label2.TabIndex = 1; | ||||
|             this.label2.Text = "40Spell:"; | ||||
|             //  | ||||
|             // label3 | ||||
|             //  | ||||
|             this.label3.AutoSize = true; | ||||
|             this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label3.Location = new System.Drawing.Point(12, 43); | ||||
|             this.label3.Name = "label3"; | ||||
|             this.label3.Size = new System.Drawing.Size(87, 17); | ||||
|             this.label3.TabIndex = 1; | ||||
|             this.label3.Text = "41SpriteDef:"; | ||||
|             //  | ||||
|             // label4 | ||||
|             //  | ||||
|             this.label4.AutoSize = true; | ||||
|             this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label4.Location = new System.Drawing.Point(12, 60); | ||||
|             this.label4.Name = "label4"; | ||||
|             this.label4.Size = new System.Drawing.Size(83, 17); | ||||
|             this.label4.TabIndex = 1; | ||||
|             this.label4.Text = "42Creature:"; | ||||
|             //  | ||||
|             // label5 | ||||
|             //  | ||||
|             this.label5.AutoSize = true; | ||||
|             this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label5.Location = new System.Drawing.Point(12, 77); | ||||
|             this.label5.Name = "label5"; | ||||
|             this.label5.Size = new System.Drawing.Size(93, 17); | ||||
|             this.label5.TabIndex = 1; | ||||
|             this.label5.Text = "43AdvObject:"; | ||||
|             //  | ||||
|             // label6 | ||||
|             //  | ||||
|             this.label6.AutoSize = true; | ||||
|             this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label6.Location = new System.Drawing.Point(12, 94); | ||||
|             this.label6.Name = "label6"; | ||||
|             this.label6.Size = new System.Drawing.Size(59, 17); | ||||
|             this.label6.TabIndex = 1; | ||||
|             this.label6.Text = "44Hero:"; | ||||
|             //  | ||||
|             // label7 | ||||
|             //  | ||||
|             this.label7.AutoSize = true; | ||||
|             this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label7.Location = new System.Drawing.Point(12, 111); | ||||
|             this.label7.Name = "label7"; | ||||
|             this.label7.Size = new System.Drawing.Size(74, 17); | ||||
|             this.label7.TabIndex = 1; | ||||
|             this.label7.Text = "45Terrain:"; | ||||
|             //  | ||||
|             // label8 | ||||
|             //  | ||||
|             this.label8.AutoSize = true; | ||||
|             this.label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label8.Location = new System.Drawing.Point(12, 128); | ||||
|             this.label8.Name = "label8"; | ||||
|             this.label8.Size = new System.Drawing.Size(70, 17); | ||||
|             this.label8.TabIndex = 1; | ||||
|             this.label8.Text = "46Cursor:"; | ||||
|             //  | ||||
|             // label9 | ||||
|             //  | ||||
|             this.label9.AutoSize = true; | ||||
|             this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label9.Location = new System.Drawing.Point(12, 145); | ||||
|             this.label9.Name = "label9"; | ||||
|             this.label9.Size = new System.Drawing.Size(83, 17); | ||||
|             this.label9.TabIndex = 1; | ||||
|             this.label9.Text = "47Interface:"; | ||||
|             //  | ||||
|             // label10 | ||||
|             //  | ||||
|             this.label10.AutoSize = true; | ||||
|             this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label10.Location = new System.Drawing.Point(12, 162); | ||||
|             this.label10.Name = "label10"; | ||||
|             this.label10.Size = new System.Drawing.Size(101, 17); | ||||
|             this.label10.TabIndex = 1; | ||||
|             this.label10.Text = "48Spriteframe:"; | ||||
|             //  | ||||
|             // label11 | ||||
|             //  | ||||
|             this.label11.AutoSize = true; | ||||
|             this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label11.Location = new System.Drawing.Point(12, 179); | ||||
|             this.label11.Name = "label11"; | ||||
|             this.label11.Size = new System.Drawing.Size(107, 17); | ||||
|             this.label11.TabIndex = 1; | ||||
|             this.label11.Text = "49CombatHero:"; | ||||
|             this.label11.Click += new System.EventHandler(this.label11_Click); | ||||
|             //  | ||||
|             // label12 | ||||
|             //  | ||||
|             this.label12.AutoSize = true; | ||||
|             this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label12.Location = new System.Drawing.Point(125, 26); | ||||
|             this.label12.Name = "label12"; | ||||
|             this.label12.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label12.TabIndex = 2; | ||||
|             this.label12.Text = "XXXX"; | ||||
|             //  | ||||
|             // label13 | ||||
|             //  | ||||
|             this.label13.AutoSize = true; | ||||
|             this.label13.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label13.Location = new System.Drawing.Point(125, 43); | ||||
|             this.label13.Name = "label13"; | ||||
|             this.label13.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label13.TabIndex = 2; | ||||
|             this.label13.Text = "XXXX"; | ||||
|             //  | ||||
|             // label14 | ||||
|             //  | ||||
|             this.label14.AutoSize = true; | ||||
|             this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label14.Location = new System.Drawing.Point(125, 60); | ||||
|             this.label14.Name = "label14"; | ||||
|             this.label14.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label14.TabIndex = 2; | ||||
|             this.label14.Text = "XXXX"; | ||||
|             //  | ||||
|             // label15 | ||||
|             //  | ||||
|             this.label15.AutoSize = true; | ||||
|             this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label15.Location = new System.Drawing.Point(125, 77); | ||||
|             this.label15.Name = "label15"; | ||||
|             this.label15.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label15.TabIndex = 2; | ||||
|             this.label15.Text = "XXXX"; | ||||
|             //  | ||||
|             // label16 | ||||
|             //  | ||||
|             this.label16.AutoSize = true; | ||||
|             this.label16.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label16.Location = new System.Drawing.Point(125, 94); | ||||
|             this.label16.Name = "label16"; | ||||
|             this.label16.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label16.TabIndex = 2; | ||||
|             this.label16.Text = "XXXX"; | ||||
|             //  | ||||
|             // label17 | ||||
|             //  | ||||
|             this.label17.AutoSize = true; | ||||
|             this.label17.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label17.Location = new System.Drawing.Point(125, 111); | ||||
|             this.label17.Name = "label17"; | ||||
|             this.label17.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label17.TabIndex = 2; | ||||
|             this.label17.Text = "XXXX"; | ||||
|             //  | ||||
|             // label18 | ||||
|             //  | ||||
|             this.label18.AutoSize = true; | ||||
|             this.label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label18.Location = new System.Drawing.Point(125, 128); | ||||
|             this.label18.Name = "label18"; | ||||
|             this.label18.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label18.TabIndex = 2; | ||||
|             this.label18.Text = "XXXX"; | ||||
|             //  | ||||
|             // label19 | ||||
|             //  | ||||
|             this.label19.AutoSize = true; | ||||
|             this.label19.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label19.Location = new System.Drawing.Point(125, 145); | ||||
|             this.label19.Name = "label19"; | ||||
|             this.label19.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label19.TabIndex = 2; | ||||
|             this.label19.Text = "XXXX"; | ||||
|             //  | ||||
|             // label20 | ||||
|             //  | ||||
|             this.label20.AutoSize = true; | ||||
|             this.label20.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label20.Location = new System.Drawing.Point(125, 162); | ||||
|             this.label20.Name = "label20"; | ||||
|             this.label20.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label20.TabIndex = 2; | ||||
|             this.label20.Text = "XXXX"; | ||||
|             //  | ||||
|             // label21 | ||||
|             //  | ||||
|             this.label21.AutoSize = true; | ||||
|             this.label21.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label21.Location = new System.Drawing.Point(125, 179); | ||||
|             this.label21.Name = "label21"; | ||||
|             this.label21.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label21.TabIndex = 2; | ||||
|             this.label21.Text = "XXXX"; | ||||
|             //  | ||||
|             // label22 | ||||
|             //  | ||||
|             this.label22.AutoSize = true; | ||||
|             this.label22.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label22.Location = new System.Drawing.Point(179, 26); | ||||
|             this.label22.Name = "label22"; | ||||
|             this.label22.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label22.TabIndex = 3; | ||||
|             this.label22.Text = "defów."; | ||||
|             //  | ||||
|             // label23 | ||||
|             //  | ||||
|             this.label23.AutoSize = true; | ||||
|             this.label23.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label23.Location = new System.Drawing.Point(179, 43); | ||||
|             this.label23.Name = "label23"; | ||||
|             this.label23.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label23.TabIndex = 3; | ||||
|             this.label23.Text = "defów."; | ||||
|             //  | ||||
|             // label24 | ||||
|             //  | ||||
|             this.label24.AutoSize = true; | ||||
|             this.label24.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label24.Location = new System.Drawing.Point(179, 60); | ||||
|             this.label24.Name = "label24"; | ||||
|             this.label24.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label24.TabIndex = 3; | ||||
|             this.label24.Text = "defów."; | ||||
|             //  | ||||
|             // label25 | ||||
|             //  | ||||
|             this.label25.AutoSize = true; | ||||
|             this.label25.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label25.Location = new System.Drawing.Point(179, 77); | ||||
|             this.label25.Name = "label25"; | ||||
|             this.label25.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label25.TabIndex = 3; | ||||
|             this.label25.Text = "defów."; | ||||
|             //  | ||||
|             // label26 | ||||
|             //  | ||||
|             this.label26.AutoSize = true; | ||||
|             this.label26.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label26.Location = new System.Drawing.Point(179, 94); | ||||
|             this.label26.Name = "label26"; | ||||
|             this.label26.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label26.TabIndex = 3; | ||||
|             this.label26.Text = "defów."; | ||||
|             //  | ||||
|             // label27 | ||||
|             //  | ||||
|             this.label27.AutoSize = true; | ||||
|             this.label27.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label27.Location = new System.Drawing.Point(179, 111); | ||||
|             this.label27.Name = "label27"; | ||||
|             this.label27.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label27.TabIndex = 3; | ||||
|             this.label27.Text = "defów."; | ||||
|             //  | ||||
|             // label28 | ||||
|             //  | ||||
|             this.label28.AutoSize = true; | ||||
|             this.label28.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label28.Location = new System.Drawing.Point(179, 128); | ||||
|             this.label28.Name = "label28"; | ||||
|             this.label28.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label28.TabIndex = 3; | ||||
|             this.label28.Text = "defów."; | ||||
|             //  | ||||
|             // label29 | ||||
|             //  | ||||
|             this.label29.AutoSize = true; | ||||
|             this.label29.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label29.Location = new System.Drawing.Point(179, 145); | ||||
|             this.label29.Name = "label29"; | ||||
|             this.label29.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label29.TabIndex = 3; | ||||
|             this.label29.Text = "defów."; | ||||
|             //  | ||||
|             // label30 | ||||
|             //  | ||||
|             this.label30.AutoSize = true; | ||||
|             this.label30.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label30.Location = new System.Drawing.Point(179, 162); | ||||
|             this.label30.Name = "label30"; | ||||
|             this.label30.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label30.TabIndex = 3; | ||||
|             this.label30.Text = "defów."; | ||||
|             //  | ||||
|             // label31 | ||||
|             //  | ||||
|             this.label31.AutoSize = true; | ||||
|             this.label31.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label31.Location = new System.Drawing.Point(179, 179); | ||||
|             this.label31.Name = "label31"; | ||||
|             this.label31.Size = new System.Drawing.Size(49, 17); | ||||
|             this.label31.TabIndex = 3; | ||||
|             this.label31.Text = "defów."; | ||||
|             //  | ||||
|             // label32 | ||||
|             //  | ||||
|             this.label32.AutoSize = true; | ||||
|             this.label32.Location = new System.Drawing.Point(12, 221); | ||||
|             this.label32.Name = "label32"; | ||||
|             this.label32.Size = new System.Drawing.Size(258, 13); | ||||
|             this.label32.TabIndex = 4; | ||||
|             this.label32.Text = "Defy zostaly umieszczone w odpowiednich folderach."; | ||||
|             //  | ||||
|             // button1 | ||||
|             //  | ||||
|             this.button1.Location = new System.Drawing.Point(98, 237); | ||||
|             this.button1.Name = "button1"; | ||||
|             this.button1.Size = new System.Drawing.Size(75, 23); | ||||
|             this.button1.TabIndex = 5; | ||||
|             this.button1.Text = "Koniec!"; | ||||
|             this.button1.UseVisualStyleBackColor = true; | ||||
|             this.button1.Click += new System.EventHandler(this.button1_Click); | ||||
|             //  | ||||
|             // label33 | ||||
|             //  | ||||
|             this.label33.AutoSize = true; | ||||
|             this.label33.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label33.Location = new System.Drawing.Point(12, 196); | ||||
|             this.label33.Name = "label33"; | ||||
|             this.label33.Size = new System.Drawing.Size(57, 17); | ||||
|             this.label33.TabIndex = 1; | ||||
|             this.label33.Text = "Błędów:"; | ||||
|             this.label33.Click += new System.EventHandler(this.label11_Click); | ||||
|             //  | ||||
|             // label34 | ||||
|             //  | ||||
|             this.label34.AutoSize = true; | ||||
|             this.label34.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label34.Location = new System.Drawing.Point(125, 196); | ||||
|             this.label34.Name = "label34"; | ||||
|             this.label34.Size = new System.Drawing.Size(48, 17); | ||||
|             this.label34.TabIndex = 2; | ||||
|             this.label34.Text = "XXXX"; | ||||
|             //  | ||||
|             // label35 | ||||
|             //  | ||||
|             this.label35.AutoSize = true; | ||||
|             this.label35.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); | ||||
|             this.label35.Location = new System.Drawing.Point(179, 196); | ||||
|             this.label35.Name = "label35"; | ||||
|             this.label35.Size = new System.Drawing.Size(17, 17); | ||||
|             this.label35.TabIndex = 3; | ||||
|             this.label35.Text = ":("; | ||||
|             //  | ||||
|             // Form2 | ||||
|             //  | ||||
|             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | ||||
|             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | ||||
|             this.ClientSize = new System.Drawing.Size(276, 272); | ||||
|             this.Controls.Add(this.button1); | ||||
|             this.Controls.Add(this.label32); | ||||
|             this.Controls.Add(this.label35); | ||||
|             this.Controls.Add(this.label31); | ||||
|             this.Controls.Add(this.label29); | ||||
|             this.Controls.Add(this.label30); | ||||
|             this.Controls.Add(this.label27); | ||||
|             this.Controls.Add(this.label28); | ||||
|             this.Controls.Add(this.label26); | ||||
|             this.Controls.Add(this.label25); | ||||
|             this.Controls.Add(this.label24); | ||||
|             this.Controls.Add(this.label23); | ||||
|             this.Controls.Add(this.label22); | ||||
|             this.Controls.Add(this.label34); | ||||
|             this.Controls.Add(this.label21); | ||||
|             this.Controls.Add(this.label20); | ||||
|             this.Controls.Add(this.label19); | ||||
|             this.Controls.Add(this.label18); | ||||
|             this.Controls.Add(this.label17); | ||||
|             this.Controls.Add(this.label16); | ||||
|             this.Controls.Add(this.label15); | ||||
|             this.Controls.Add(this.label14); | ||||
|             this.Controls.Add(this.label13); | ||||
|             this.Controls.Add(this.label12); | ||||
|             this.Controls.Add(this.label33); | ||||
|             this.Controls.Add(this.label11); | ||||
|             this.Controls.Add(this.label10); | ||||
|             this.Controls.Add(this.label9); | ||||
|             this.Controls.Add(this.label8); | ||||
|             this.Controls.Add(this.label7); | ||||
|             this.Controls.Add(this.label6); | ||||
|             this.Controls.Add(this.label5); | ||||
|             this.Controls.Add(this.label4); | ||||
|             this.Controls.Add(this.label3); | ||||
|             this.Controls.Add(this.label2); | ||||
|             this.Controls.Add(this.label1); | ||||
|             this.Name = "Form2"; | ||||
|             this.Text = "Udało się! :)"; | ||||
|             this.ResumeLayout(false); | ||||
|             this.PerformLayout(); | ||||
|  | ||||
|         } | ||||
|  | ||||
|         #endregion | ||||
|  | ||||
|         private System.Windows.Forms.Label label1; | ||||
|         private System.Windows.Forms.Label label2; | ||||
|         private System.Windows.Forms.Label label3; | ||||
|         private System.Windows.Forms.Label label4; | ||||
|         private System.Windows.Forms.Label label5; | ||||
|         private System.Windows.Forms.Label label6; | ||||
|         private System.Windows.Forms.Label label7; | ||||
|         private System.Windows.Forms.Label label8; | ||||
|         private System.Windows.Forms.Label label9; | ||||
|         private System.Windows.Forms.Label label10; | ||||
|         private System.Windows.Forms.Label label11; | ||||
|         private System.Windows.Forms.Label label22; | ||||
|         private System.Windows.Forms.Label label23; | ||||
|         private System.Windows.Forms.Label label24; | ||||
|         private System.Windows.Forms.Label label25; | ||||
|         private System.Windows.Forms.Label label26; | ||||
|         private System.Windows.Forms.Label label27; | ||||
|         private System.Windows.Forms.Label label28; | ||||
|         private System.Windows.Forms.Label label29; | ||||
|         private System.Windows.Forms.Label label30; | ||||
|         private System.Windows.Forms.Label label31; | ||||
|         private System.Windows.Forms.Label label32; | ||||
|         private System.Windows.Forms.Button button1; | ||||
|         public System.Windows.Forms.Label label12; | ||||
|         public System.Windows.Forms.Label label13; | ||||
|         public System.Windows.Forms.Label label14; | ||||
|         public System.Windows.Forms.Label label15; | ||||
|         public System.Windows.Forms.Label label16; | ||||
|         public System.Windows.Forms.Label label17; | ||||
|         public System.Windows.Forms.Label label18; | ||||
|         public System.Windows.Forms.Label label19; | ||||
|         public System.Windows.Forms.Label label20; | ||||
|         public System.Windows.Forms.Label label21; | ||||
|         private System.Windows.Forms.Label label33; | ||||
|         public System.Windows.Forms.Label label34; | ||||
|         public System.Windows.Forms.Label label35; | ||||
|     } | ||||
| } | ||||
| @@ -1,28 +0,0 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.ComponentModel; | ||||
| using System.Data; | ||||
| using System.Drawing; | ||||
| using System.Text; | ||||
| using System.Windows.Forms; | ||||
|  | ||||
| namespace DefSorter | ||||
| { | ||||
|     public partial class Form2 : Form | ||||
|     { | ||||
|         public Form2() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|         } | ||||
|  | ||||
|         private void button1_Click(object sender, EventArgs e) | ||||
|         { | ||||
|             Application.Exit(); | ||||
|         } | ||||
|  | ||||
|         private void label11_Click(object sender, EventArgs e) | ||||
|         { | ||||
|  | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										101
									
								
								tools/Defsorter/Form3.Designer.cs
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										101
									
								
								tools/Defsorter/Form3.Designer.cs
									
									
									
										generated
									
									
									
								
							| @@ -1,101 +0,0 @@ | ||||
| namespace DefSorter | ||||
| { | ||||
|     partial class Form3 | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Required designer variable. | ||||
|         /// </summary> | ||||
|         private System.ComponentModel.IContainer components = null; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Clean up any resources being used. | ||||
|         /// </summary> | ||||
|         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | ||||
|         protected override void Dispose(bool disposing) | ||||
|         { | ||||
|             if (disposing && (components != null)) | ||||
|             { | ||||
|                 components.Dispose(); | ||||
|             } | ||||
|             base.Dispose(disposing); | ||||
|         } | ||||
|  | ||||
|         #region Windows Form Designer generated code | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Required method for Designer support - do not modify | ||||
|         /// the contents of this method with the code editor. | ||||
|         /// </summary> | ||||
|         private void InitializeComponent() | ||||
|         { | ||||
|             this.textBox1 = new System.Windows.Forms.TextBox(); | ||||
|             this.button1 = new System.Windows.Forms.Button(); | ||||
|             this.button2 = new System.Windows.Forms.Button(); | ||||
|             this.button3 = new System.Windows.Forms.Button(); | ||||
|             this.SuspendLayout(); | ||||
|             //  | ||||
|             // textBox1 | ||||
|             //  | ||||
|             this.textBox1.Location = new System.Drawing.Point(12, 12); | ||||
|             this.textBox1.Multiline = true; | ||||
|             this.textBox1.Name = "textBox1"; | ||||
|             this.textBox1.ReadOnly = true; | ||||
|             this.textBox1.Size = new System.Drawing.Size(268, 209); | ||||
|             this.textBox1.TabIndex = 0; | ||||
|             //  | ||||
|             // button1 | ||||
|             //  | ||||
|             this.button1.DialogResult = System.Windows.Forms.DialogResult.Ignore; | ||||
|             this.button1.Location = new System.Drawing.Point(12, 231); | ||||
|             this.button1.Name = "button1"; | ||||
|             this.button1.Size = new System.Drawing.Size(75, 23); | ||||
|             this.button1.TabIndex = 1; | ||||
|             this.button1.Text = "Pomiń"; | ||||
|             this.button1.UseVisualStyleBackColor = true; | ||||
|             //  | ||||
|             // button2 | ||||
|             //  | ||||
|             this.button2.Location = new System.Drawing.Point(205, 231); | ||||
|             this.button2.Name = "button2"; | ||||
|             this.button2.Size = new System.Drawing.Size(75, 23); | ||||
|             this.button2.TabIndex = 1; | ||||
|             this.button2.Text = "Harakiri"; | ||||
|             this.button2.UseVisualStyleBackColor = true; | ||||
|             this.button2.Click += new System.EventHandler(this.button2_Click); | ||||
|             //  | ||||
|             // button3 | ||||
|             //  | ||||
|             this.button3.DialogResult = System.Windows.Forms.DialogResult.Cancel; | ||||
|             this.button3.Location = new System.Drawing.Point(93, 231); | ||||
|             this.button3.Name = "button3"; | ||||
|             this.button3.Size = new System.Drawing.Size(106, 23); | ||||
|             this.button3.TabIndex = 1; | ||||
|             this.button3.Text = "Anuluj wszystko"; | ||||
|             this.button3.UseVisualStyleBackColor = true; | ||||
|             //  | ||||
|             // Form3 | ||||
|             //  | ||||
|             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | ||||
|             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | ||||
|             this.ClientSize = new System.Drawing.Size(292, 266); | ||||
|             this.Controls.Add(this.button3); | ||||
|             this.Controls.Add(this.button2); | ||||
|             this.Controls.Add(this.button1); | ||||
|             this.Controls.Add(this.textBox1); | ||||
|             this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; | ||||
|             this.Name = "Form3"; | ||||
|             this.Text = "Nastapil blad :("; | ||||
|             this.ResumeLayout(false); | ||||
|             this.PerformLayout(); | ||||
|  | ||||
|         } | ||||
|  | ||||
|         #endregion | ||||
|  | ||||
|         public System.Windows.Forms.TextBox textBox1; | ||||
|         public System.Windows.Forms.Button button1; | ||||
|         public System.Windows.Forms.Button button2; | ||||
|         public System.Windows.Forms.Button button3; | ||||
|  | ||||
|     } | ||||
| } | ||||
| @@ -1,23 +0,0 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.ComponentModel; | ||||
| using System.Data; | ||||
| using System.Drawing; | ||||
| using System.Text; | ||||
| using System.Windows.Forms; | ||||
|  | ||||
| namespace DefSorter | ||||
| { | ||||
|     public partial class Form3 : Form | ||||
|     { | ||||
|         public Form3() | ||||
|         { | ||||
|             InitializeComponent(); | ||||
|         } | ||||
|  | ||||
|         private void button2_Click(object sender, EventArgs e) | ||||
|         { | ||||
|             Application.Exit(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,20 +0,0 @@ | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Windows.Forms; | ||||
|  | ||||
| namespace DefSorter | ||||
| { | ||||
|     static class Program | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// The main entry point for the application. | ||||
|         /// </summary> | ||||
|         [STAThread] | ||||
|         static void Main() | ||||
|         { | ||||
|             Application.EnableVisualStyles(); | ||||
|             Application.SetCompatibleTextRenderingDefault(false); | ||||
|             Application.Run(new Form1()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,44 +0,0 @@ | ||||
| 0	Mage guild 1 | ||||
| 1	Mage guild 2 | ||||
| 2	Mage guild 3 | ||||
| 3	Mage guild 4 | ||||
| 4	Mage guild 5 | ||||
| 5	tavern | ||||
| 6	shipyard when it's present:)) | ||||
| 7	fort | ||||
| 8	citadel | ||||
| 9	castle | ||||
| 10	village hall | ||||
| 11	town hall | ||||
| 12	city hall | ||||
| 13	capitol | ||||
| 14	marketplace | ||||
| 15	resource silo | ||||
| 16	blacksmith | ||||
| 17	lighthouse(0) mystic pond(1) artifact merchants(2,5,8) veil of darkness(4) escape tunnel(6) cage of warlords(7) | ||||
| 18	horde buildings for non-upgraded creatures: Griffins, dwarves, stone gargoyles, imps, skeletons, troglodytes, goblins, gnolls, pixies. | ||||
| 19	horde buildings for upgraded creatures Royal griffins, battle dwarves, obsidian gargoyles, familiars, skeleton warriors, infernal troglodytes, hobgoblins, gnoll marauders, sprites | ||||
| 20	Ship at the Shipyard | ||||
| 21	stables(0) fountain of fortune(1) lookout tower(2) brimstone clouds(3) necromancy amplifier(4) mana vortex(5) freelancer's guild(6) glyphs of fear(7) magic university(8) | ||||
| 22	brotherhood of sword(0) dwarven treasury(1) library(2) castle gates(3) skeleton transformer(4) portal of summoning(5) ballista yard(6) blood obelisk(7) | ||||
| 23	wall of Knowledge.(2) order of fire(3) academy of battle scholars(5) hall of valhalla(6) | ||||
| 24	horde buildings for non-upgraded creatures: dendroid guards, hell hounds | ||||
| 25	horde buildings for upgraded creatures: Dendroid soldiers, Cerberi | ||||
| 26	Grail | ||||
| 27	Houses near city hall | ||||
| 28	Houses near municipal | ||||
| 29	Houses near Capitol | ||||
| 30	dwelling 1 | ||||
| 31	dwelling 2 | ||||
| 32	dwelling 3 | ||||
| 33	dwelling 4 | ||||
| 34	dwelling 5 | ||||
| 35	dwelling 6 | ||||
| 36	dwelling 7 | ||||
| 37	upgraded dwelling 1 | ||||
| 38	upgraded dwelling 2 | ||||
| 39	upgraded dwelling 3 | ||||
| 40	upgraded dwelling 4 | ||||
| 41	upgraded dwelling 5 | ||||
| 42	upgraded dwelling 6 | ||||
| 43	upgraded dwelling 7 | ||||
| @@ -1,791 +0,0 @@ | ||||
| #pragma once | ||||
| #include <string> | ||||
| #include <fstream> | ||||
|  | ||||
| namespace Obwodziciel { | ||||
|  | ||||
| 	using namespace System; | ||||
| 	using namespace System::ComponentModel; | ||||
| 	using namespace System::Collections; | ||||
| 	using namespace System::Windows::Forms; | ||||
| 	using namespace System::Data; | ||||
| 	using namespace System::Drawing; | ||||
|  | ||||
| std::string ToString(System::String^ src) | ||||
| { | ||||
| 	std::string dest; | ||||
| 	using namespace System::Runtime::InteropServices; | ||||
| 	const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(src)).ToPointer(); | ||||
| 	dest = chars; | ||||
| 	Marshal::FreeHGlobal(IntPtr((void*)chars)); | ||||
| 	return dest; | ||||
| } | ||||
| 	/// <summary> | ||||
| 	/// Summary for Form1 | ||||
| 	/// | ||||
| 	/// WARNING: If you change the name of this class, you will need to change the | ||||
| 	///          'Resource File Name' property for the managed resource compiler tool | ||||
| 	///          associated with all .resx files this class depends on.  Otherwise, | ||||
| 	///          the designers will not be able to interact properly with localized | ||||
| 	///          resources associated with this form. | ||||
| 	/// </summary> | ||||
| 	public ref class Form1 : public System::Windows::Forms::Form | ||||
| 	{ | ||||
| 	public: | ||||
| 		value struct BuildingEntry | ||||
| 		{ | ||||
| 			int townID, ID; | ||||
| 			String^ defname; | ||||
| 		}; | ||||
| 		Form1(void) | ||||
| 		{ | ||||
| 			InitializeComponent(); | ||||
| 			source1->Text = IO::Directory::GetCurrentDirectory(); | ||||
| 			source2->Text = IO::Directory::GetCurrentDirectory(); | ||||
|  | ||||
| 			IO::StreamReader ^sr = gcnew IO::StreamReader(IO::Directory::GetCurrentDirectory()+L"\\BNAMES.TXT"); | ||||
| 			int i=0; | ||||
| 			while(!sr->EndOfStream) | ||||
| 			{ | ||||
| 				String ^ n = sr->ReadLine(); | ||||
| 				//n = (i.ToString()) + L". " + n; | ||||
| 				buildingTypes->Items->Add(n); | ||||
| 				i++; | ||||
| 			} | ||||
| 			buildingTypes->SelectedIndex=0; | ||||
| 			sr->Close(); | ||||
| 			delete sr; | ||||
|  | ||||
| 			sr = gcnew IO::StreamReader(IO::Directory::GetCurrentDirectory()+L"\\TOWNTYPE.TXT"); | ||||
| 			while(!sr->EndOfStream) | ||||
| 			{ | ||||
| 				String ^ n = sr->ReadLine(); | ||||
| 				castleType->Items->Add(n); | ||||
| 			} | ||||
| 			castleType->SelectedIndex = 0; | ||||
|  | ||||
| 			std::ifstream bb("buildings.txt"); | ||||
| 			std::string pom; | ||||
| 			while(!bb.eof()) | ||||
| 			{ | ||||
| 				BuildingEntry be; | ||||
| 				bb >> be.townID >> be.ID >> pom >> i >> i; | ||||
| 				be.defname = gcnew String(pom.c_str()); | ||||
| 				lista.Add(be); | ||||
| 			} | ||||
| 			bb.close(); | ||||
| 			bb.clear(); | ||||
|  | ||||
| 			out = gcnew IO::StreamWriter("wynik.txt"); | ||||
| 		} | ||||
|  | ||||
| 	protected: | ||||
| 		/// <summary> | ||||
| 		/// Clean up any resources being used. | ||||
| 		/// </summary> | ||||
| 		~Form1() | ||||
| 		{ | ||||
| 			if (components) | ||||
| 			{ | ||||
| 				delete components; | ||||
| 			} | ||||
| 			out->Close(); | ||||
| 		} | ||||
| 	private: System::Windows::Forms::PictureBox^  pictureBox1; | ||||
| 	protected:  | ||||
| 	private: System::Windows::Forms::PictureBox^  pictureBox2; | ||||
| 	private: System::Windows::Forms::ListBox^  listBox1; | ||||
| 	private: System::Windows::Forms::ListBox^  listBox2; | ||||
| 	private: System::Windows::Forms::TextBox^  searchpat1; | ||||
| 	private: System::Windows::Forms::Label^  label1; | ||||
| 	private: System::Windows::Forms::TextBox^  searchpat2; | ||||
| 	private: System::Windows::Forms::Label^  label2; | ||||
| 	private: System::Windows::Forms::Button^  search1; | ||||
| 	private: System::Windows::Forms::Button^  search2; | ||||
| 	private: System::Windows::Forms::Label^  label3; | ||||
| 	private: System::Windows::Forms::Label^  label4; | ||||
| 	private: System::Windows::Forms::Button^  prev1; | ||||
| 	private: System::Windows::Forms::Button^  next1; | ||||
| 	private: System::Windows::Forms::Button^  prev2; | ||||
| 	private: System::Windows::Forms::Button^  next2; | ||||
| 	private: System::Windows::Forms::Button^  assign1; | ||||
| 	private: System::Windows::Forms::Button^  assign2; | ||||
| 	private: System::Windows::Forms::ListBox^  possibilites1; | ||||
| 	private: System::Windows::Forms::ListBox^  possibilites2; | ||||
| 	private: System::Windows::Forms::Button^  confirm1; | ||||
| 	private: System::Windows::Forms::Button^  confirm2; | ||||
| 	private: System::Windows::Forms::TextBox^  source1; | ||||
| 	private: System::Windows::Forms::Label^  label5; | ||||
| 	private: System::Windows::Forms::TextBox^  source2; | ||||
| 	private: System::Windows::Forms::Label^  label6; | ||||
| 	private: System::Windows::Forms::Button^  browse1; | ||||
| 	private: System::Windows::Forms::Button^  button1; | ||||
| 	private: System::Windows::Forms::Button^  browse2; | ||||
| 	private: System::Windows::Forms::Label^  label7; | ||||
| 	private: System::Windows::Forms::Label^  label8; | ||||
| 	private: System::Windows::Forms::Label^  label9; | ||||
|  | ||||
|  | ||||
|  | ||||
| 	private: System::Windows::Forms::Label^  label10; | ||||
| 	private: System::Windows::Forms::FolderBrowserDialog^  folderBrowserDialog1; | ||||
|  | ||||
|  | ||||
| 	private: | ||||
| 		/// <summary> | ||||
| 		/// Required designer variable. | ||||
| 		/// </summary> | ||||
|  | ||||
| 		int b1, b2; | ||||
| 		IO::StreamWriter ^out; | ||||
| 		System::Collections::Generic::List<BuildingEntry> lista; | ||||
| 	private: System::Windows::Forms::ComboBox^  buildingTypes; | ||||
| private: System::Windows::Forms::ComboBox^  castleType; | ||||
|  | ||||
| 		System::ComponentModel::Container ^components; | ||||
|  | ||||
| #pragma region Windows Form Designer generated code | ||||
| 		/// <summary> | ||||
| 		/// Required method for Designer support - do not modify | ||||
| 		/// the contents of this method with the code editor. | ||||
| 		/// </summary> | ||||
| 		void InitializeComponent(void) | ||||
| 		{ | ||||
| 			this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox()); | ||||
| 			this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox()); | ||||
| 			this->listBox1 = (gcnew System::Windows::Forms::ListBox()); | ||||
| 			this->listBox2 = (gcnew System::Windows::Forms::ListBox()); | ||||
| 			this->searchpat1 = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label1 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->searchpat2 = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label2 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->search1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->search2 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->label3 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->label4 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->prev1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->next1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->prev2 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->next2 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->assign1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->assign2 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->possibilites1 = (gcnew System::Windows::Forms::ListBox()); | ||||
| 			this->possibilites2 = (gcnew System::Windows::Forms::ListBox()); | ||||
| 			this->confirm1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->confirm2 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->source1 = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label5 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->source2 = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label6 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->browse1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->button1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->browse2 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->label7 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->label8 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->label9 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->label10 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->folderBrowserDialog1 = (gcnew System::Windows::Forms::FolderBrowserDialog()); | ||||
| 			this->buildingTypes = (gcnew System::Windows::Forms::ComboBox()); | ||||
| 			this->castleType = (gcnew System::Windows::Forms::ComboBox()); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit(); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox2))->BeginInit(); | ||||
| 			this->SuspendLayout(); | ||||
| 			//  | ||||
| 			// pictureBox1 | ||||
| 			//  | ||||
| 			this->pictureBox1->Location = System::Drawing::Point(12, 38); | ||||
| 			this->pictureBox1->Name = L"pictureBox1"; | ||||
| 			this->pictureBox1->Size = System::Drawing::Size(450, 298); | ||||
| 			this->pictureBox1->TabIndex = 0; | ||||
| 			this->pictureBox1->TabStop = false; | ||||
| 			//  | ||||
| 			// pictureBox2 | ||||
| 			//  | ||||
| 			this->pictureBox2->Location = System::Drawing::Point(522, 38); | ||||
| 			this->pictureBox2->Name = L"pictureBox2"; | ||||
| 			this->pictureBox2->Size = System::Drawing::Size(450, 298); | ||||
| 			this->pictureBox2->TabIndex = 0; | ||||
| 			this->pictureBox2->TabStop = false; | ||||
| 			//  | ||||
| 			// listBox1 | ||||
| 			//  | ||||
| 			this->listBox1->FormattingEnabled = true; | ||||
| 			this->listBox1->HorizontalScrollbar = true; | ||||
| 			this->listBox1->Location = System::Drawing::Point(12, 342); | ||||
| 			this->listBox1->Name = L"listBox1"; | ||||
| 			this->listBox1->Size = System::Drawing::Size(167, 186); | ||||
| 			this->listBox1->TabIndex = 1; | ||||
| 			this->listBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::listBox1_SelectedIndexChanged); | ||||
| 			//  | ||||
| 			// listBox2 | ||||
| 			//  | ||||
| 			this->listBox2->FormattingEnabled = true; | ||||
| 			this->listBox2->HorizontalScrollbar = true; | ||||
| 			this->listBox2->Location = System::Drawing::Point(805, 342); | ||||
| 			this->listBox2->Name = L"listBox2"; | ||||
| 			this->listBox2->Size = System::Drawing::Size(167, 186); | ||||
| 			this->listBox2->TabIndex = 1; | ||||
| 			this->listBox2->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::listBox2_SelectedIndexChanged); | ||||
| 			//  | ||||
| 			// searchpat1 | ||||
| 			//  | ||||
| 			this->searchpat1->Location = System::Drawing::Point(185, 363); | ||||
| 			this->searchpat1->Name = L"searchpat1"; | ||||
| 			this->searchpat1->Size = System::Drawing::Size(173, 20); | ||||
| 			this->searchpat1->TabIndex = 2; | ||||
| 			this->searchpat1->Text = L"TOCS*.bmp"; | ||||
| 			//  | ||||
| 			// label1 | ||||
| 			//  | ||||
| 			this->label1->AutoSize = true; | ||||
| 			this->label1->Location = System::Drawing::Point(243, 345); | ||||
| 			this->label1->Name = L"label1"; | ||||
| 			this->label1->Size = System::Drawing::Size(77, 13); | ||||
| 			this->label1->TabIndex = 3; | ||||
| 			this->label1->Text = L"Search pattern"; | ||||
| 			//  | ||||
| 			// searchpat2 | ||||
| 			//  | ||||
| 			this->searchpat2->Location = System::Drawing::Point(626, 361); | ||||
| 			this->searchpat2->Name = L"searchpat2"; | ||||
| 			this->searchpat2->Size = System::Drawing::Size(173, 20); | ||||
| 			this->searchpat2->TabIndex = 2; | ||||
| 			this->searchpat2->Text = L"TBCS*.bmp"; | ||||
| 			//  | ||||
| 			// label2 | ||||
| 			//  | ||||
| 			this->label2->AutoSize = true; | ||||
| 			this->label2->Location = System::Drawing::Point(664, 345); | ||||
| 			this->label2->Name = L"label2"; | ||||
| 			this->label2->Size = System::Drawing::Size(77, 13); | ||||
| 			this->label2->TabIndex = 3; | ||||
| 			this->label2->Text = L"Search pattern"; | ||||
| 			//  | ||||
| 			// search1 | ||||
| 			//  | ||||
| 			this->search1->Location = System::Drawing::Point(185, 393); | ||||
| 			this->search1->Name = L"search1"; | ||||
| 			this->search1->Size = System::Drawing::Size(103, 21); | ||||
| 			this->search1->TabIndex = 4; | ||||
| 			this->search1->Text = L"Search"; | ||||
| 			this->search1->UseVisualStyleBackColor = true; | ||||
| 			this->search1->Click += gcnew System::EventHandler(this, &Form1::search1_Click); | ||||
| 			//  | ||||
| 			// search2 | ||||
| 			//  | ||||
| 			this->search2->Location = System::Drawing::Point(696, 391); | ||||
| 			this->search2->Name = L"search2"; | ||||
| 			this->search2->Size = System::Drawing::Size(103, 21); | ||||
| 			this->search2->TabIndex = 4; | ||||
| 			this->search2->Text = L"Search"; | ||||
| 			this->search2->UseVisualStyleBackColor = true; | ||||
| 			this->search2->Click += gcnew System::EventHandler(this, &Form1::search2_Click); | ||||
| 			//  | ||||
| 			// label3 | ||||
| 			//  | ||||
| 			this->label3->AutoSize = true; | ||||
| 			this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label3->Location = System::Drawing::Point(160, 6); | ||||
| 			this->label3->Name = L"label3"; | ||||
| 			this->label3->Size = System::Drawing::Size(81, 29); | ||||
| 			this->label3->TabIndex = 5; | ||||
| 			this->label3->Text = L"POLE"; | ||||
| 			//  | ||||
| 			// label4 | ||||
| 			//  | ||||
| 			this->label4->AutoSize = true; | ||||
| 			this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 18, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label4->Location = System::Drawing::Point(743, 6); | ||||
| 			this->label4->Name = L"label4"; | ||||
| 			this->label4->Size = System::Drawing::Size(93, 29); | ||||
| 			this->label4->TabIndex = 5; | ||||
| 			this->label4->Text = L"IMAGE"; | ||||
| 			//  | ||||
| 			// prev1 | ||||
| 			//  | ||||
| 			this->prev1->Enabled = false; | ||||
| 			this->prev1->Location = System::Drawing::Point(294, 393); | ||||
| 			this->prev1->Name = L"prev1"; | ||||
| 			this->prev1->Size = System::Drawing::Size(64, 21); | ||||
| 			this->prev1->TabIndex = 6; | ||||
| 			this->prev1->Text = L"<-"; | ||||
| 			this->prev1->UseVisualStyleBackColor = true; | ||||
| 			this->prev1->Click += gcnew System::EventHandler(this, &Form1::prev1_Click); | ||||
| 			//  | ||||
| 			// next1 | ||||
| 			//  | ||||
| 			this->next1->Enabled = false; | ||||
| 			this->next1->Location = System::Drawing::Point(364, 393); | ||||
| 			this->next1->Name = L"next1"; | ||||
| 			this->next1->Size = System::Drawing::Size(64, 21); | ||||
| 			this->next1->TabIndex = 6; | ||||
| 			this->next1->Text = L"->"; | ||||
| 			this->next1->UseVisualStyleBackColor = true; | ||||
| 			this->next1->Click += gcnew System::EventHandler(this, &Form1::next1_Click); | ||||
| 			//  | ||||
| 			// prev2 | ||||
| 			//  | ||||
| 			this->prev2->Enabled = false; | ||||
| 			this->prev2->Location = System::Drawing::Point(556, 391); | ||||
| 			this->prev2->Name = L"prev2"; | ||||
| 			this->prev2->Size = System::Drawing::Size(64, 21); | ||||
| 			this->prev2->TabIndex = 6; | ||||
| 			this->prev2->Text = L"<-"; | ||||
| 			this->prev2->UseVisualStyleBackColor = true; | ||||
| 			this->prev2->Click += gcnew System::EventHandler(this, &Form1::prev2_Click); | ||||
| 			//  | ||||
| 			// next2 | ||||
| 			//  | ||||
| 			this->next2->Enabled = false; | ||||
| 			this->next2->Location = System::Drawing::Point(626, 391); | ||||
| 			this->next2->Name = L"next2"; | ||||
| 			this->next2->Size = System::Drawing::Size(64, 21); | ||||
| 			this->next2->TabIndex = 6; | ||||
| 			this->next2->Text = L"->"; | ||||
| 			this->next2->UseVisualStyleBackColor = true; | ||||
| 			this->next2->Click += gcnew System::EventHandler(this, &Form1::next2_Click); | ||||
| 			//  | ||||
| 			// assign1 | ||||
| 			//  | ||||
| 			this->assign1->Location = System::Drawing::Point(434, 391); | ||||
| 			this->assign1->Name = L"assign1"; | ||||
| 			this->assign1->Size = System::Drawing::Size(116, 22); | ||||
| 			this->assign1->TabIndex = 7; | ||||
| 			this->assign1->Text = L"Assign there >"; | ||||
| 			this->assign1->UseVisualStyleBackColor = true; | ||||
| 			this->assign1->Click += gcnew System::EventHandler(this, &Form1::assign1_Click); | ||||
| 			//  | ||||
| 			// assign2 | ||||
| 			//  | ||||
| 			this->assign2->Location = System::Drawing::Point(434, 414); | ||||
| 			this->assign2->Name = L"assign2"; | ||||
| 			this->assign2->Size = System::Drawing::Size(116, 22); | ||||
| 			this->assign2->TabIndex = 7; | ||||
| 			this->assign2->Text = L"< Assign there"; | ||||
| 			this->assign2->UseVisualStyleBackColor = true; | ||||
| 			this->assign2->Click += gcnew System::EventHandler(this, &Form1::assign2_Click); | ||||
| 			//  | ||||
| 			// possibilites1 | ||||
| 			//  | ||||
| 			this->possibilites1->FormattingEnabled = true; | ||||
| 			this->possibilites1->HorizontalScrollbar = true; | ||||
| 			this->possibilites1->Location = System::Drawing::Point(185, 422); | ||||
| 			this->possibilites1->Name = L"possibilites1"; | ||||
| 			this->possibilites1->Size = System::Drawing::Size(120, 108); | ||||
| 			this->possibilites1->TabIndex = 8; | ||||
| 			this->possibilites1->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::possibilites1_SelectedIndexChanged); | ||||
| 			//  | ||||
| 			// possibilites2 | ||||
| 			//  | ||||
| 			this->possibilites2->FormattingEnabled = true; | ||||
| 			this->possibilites2->HorizontalScrollbar = true; | ||||
| 			this->possibilites2->Location = System::Drawing::Point(679, 422); | ||||
| 			this->possibilites2->Name = L"possibilites2"; | ||||
| 			this->possibilites2->Size = System::Drawing::Size(120, 108); | ||||
| 			this->possibilites2->TabIndex = 8; | ||||
| 			this->possibilites2->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::possibilites2_SelectedIndexChanged); | ||||
| 			//  | ||||
| 			// confirm1 | ||||
| 			//  | ||||
| 			this->confirm1->Location = System::Drawing::Point(312, 422); | ||||
| 			this->confirm1->Name = L"confirm1"; | ||||
| 			this->confirm1->Size = System::Drawing::Size(116, 25); | ||||
| 			this->confirm1->TabIndex = 9; | ||||
| 			this->confirm1->Text = L"Confirm"; | ||||
| 			this->confirm1->UseVisualStyleBackColor = true; | ||||
| 			this->confirm1->Click += gcnew System::EventHandler(this, &Form1::confirm1_Click); | ||||
| 			//  | ||||
| 			// confirm2 | ||||
| 			//  | ||||
| 			this->confirm2->Location = System::Drawing::Point(557, 422); | ||||
| 			this->confirm2->Name = L"confirm2"; | ||||
| 			this->confirm2->Size = System::Drawing::Size(116, 25); | ||||
| 			this->confirm2->TabIndex = 9; | ||||
| 			this->confirm2->Text = L"Confirm"; | ||||
| 			this->confirm2->UseVisualStyleBackColor = true; | ||||
| 			this->confirm2->Click += gcnew System::EventHandler(this, &Form1::confirm2_Click); | ||||
| 			//  | ||||
| 			// source1 | ||||
| 			//  | ||||
| 			this->source1->Location = System::Drawing::Point(312, 468); | ||||
| 			this->source1->Name = L"source1"; | ||||
| 			this->source1->Size = System::Drawing::Size(116, 20); | ||||
| 			this->source1->TabIndex = 10; | ||||
| 			//  | ||||
| 			// label5 | ||||
| 			//  | ||||
| 			this->label5->AutoSize = true; | ||||
| 			this->label5->Location = System::Drawing::Point(335, 452); | ||||
| 			this->label5->Name = L"label5"; | ||||
| 			this->label5->Size = System::Drawing::Size(73, 13); | ||||
| 			this->label5->TabIndex = 11; | ||||
| 			this->label5->Text = L"Source folder:"; | ||||
| 			//  | ||||
| 			// source2 | ||||
| 			//  | ||||
| 			this->source2->Location = System::Drawing::Point(556, 468); | ||||
| 			this->source2->Name = L"source2"; | ||||
| 			this->source2->Size = System::Drawing::Size(116, 20); | ||||
| 			this->source2->TabIndex = 10; | ||||
| 			//  | ||||
| 			// label6 | ||||
| 			//  | ||||
| 			this->label6->AutoSize = true; | ||||
| 			this->label6->Location = System::Drawing::Point(579, 452); | ||||
| 			this->label6->Name = L"label6"; | ||||
| 			this->label6->Size = System::Drawing::Size(73, 13); | ||||
| 			this->label6->TabIndex = 11; | ||||
| 			this->label6->Text = L"Source folder:"; | ||||
| 			//  | ||||
| 			// browse1 | ||||
| 			//  | ||||
| 			this->browse1->Location = System::Drawing::Point(312, 494); | ||||
| 			this->browse1->Name = L"browse1"; | ||||
| 			this->browse1->Size = System::Drawing::Size(116, 23); | ||||
| 			this->browse1->TabIndex = 12; | ||||
| 			this->browse1->Text = L"Browse"; | ||||
| 			this->browse1->UseVisualStyleBackColor = true; | ||||
| 			this->browse1->Click += gcnew System::EventHandler(this, &Form1::browse1_Click); | ||||
| 			//  | ||||
| 			// button1 | ||||
| 			//  | ||||
| 			this->button1->Location = System::Drawing::Point(557, 494); | ||||
| 			this->button1->Name = L"button1"; | ||||
| 			this->button1->Size = System::Drawing::Size(116, 23); | ||||
| 			this->button1->TabIndex = 12; | ||||
| 			this->button1->Text = L"Browse"; | ||||
| 			this->button1->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// browse2 | ||||
| 			//  | ||||
| 			this->browse2->Location = System::Drawing::Point(556, 494); | ||||
| 			this->browse2->Name = L"browse2"; | ||||
| 			this->browse2->Size = System::Drawing::Size(116, 23); | ||||
| 			this->browse2->TabIndex = 12; | ||||
| 			this->browse2->Text = L"Browse"; | ||||
| 			this->browse2->UseVisualStyleBackColor = true; | ||||
| 			this->browse2->Click += gcnew System::EventHandler(this, &Form1::browse2_Click); | ||||
| 			//  | ||||
| 			// label7 | ||||
| 			//  | ||||
| 			this->label7->AutoSize = true; | ||||
| 			this->label7->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label7->Location = System::Drawing::Point(440, 472); | ||||
| 			this->label7->Name = L"label7"; | ||||
| 			this->label7->Size = System::Drawing::Size(104, 20); | ||||
| 			this->label7->TabIndex = 13; | ||||
| 			this->label7->Text = L"Obwodziciel"; | ||||
| 			//  | ||||
| 			// label8 | ||||
| 			//  | ||||
| 			this->label8->AutoSize = true; | ||||
| 			this->label8->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label8->Location = System::Drawing::Point(442, 492); | ||||
| 			this->label8->Name = L"label8"; | ||||
| 			this->label8->Size = System::Drawing::Size(102, 20); | ||||
| 			this->label8->TabIndex = 13; | ||||
| 			this->label8->Text = L"VCMI Team"; | ||||
| 			//  | ||||
| 			// label9 | ||||
| 			//  | ||||
| 			this->label9->AutoSize = true; | ||||
| 			this->label9->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label9->Location = System::Drawing::Point(459, 512); | ||||
| 			this->label9->Name = L"label9"; | ||||
| 			this->label9->Size = System::Drawing::Size(66, 20); | ||||
| 			this->label9->TabIndex = 13; | ||||
| 			this->label9->Text = L"� 2008"; | ||||
| 			//  | ||||
| 			// label10 | ||||
| 			//  | ||||
| 			this->label10->AutoSize = true; | ||||
| 			this->label10->Location = System::Drawing::Point(463, 344); | ||||
| 			this->label10->Name = L"label10"; | ||||
| 			this->label10->Size = System::Drawing::Size(58, 13); | ||||
| 			this->label10->TabIndex = 16; | ||||
| 			this->label10->Text = L"Building ID"; | ||||
| 			//  | ||||
| 			// buildingTypes | ||||
| 			//  | ||||
| 			this->buildingTypes->FormattingEnabled = true; | ||||
| 			this->buildingTypes->Location = System::Drawing::Point(365, 364); | ||||
| 			this->buildingTypes->Name = L"buildingTypes"; | ||||
| 			this->buildingTypes->Size = System::Drawing::Size(255, 21); | ||||
| 			this->buildingTypes->TabIndex = 17; | ||||
| 			//  | ||||
| 			// castleType | ||||
| 			//  | ||||
| 			this->castleType->FormattingEnabled = true; | ||||
| 			this->castleType->Location = System::Drawing::Point(434, 445); | ||||
| 			this->castleType->Name = L"castleType"; | ||||
| 			this->castleType->Size = System::Drawing::Size(116, 21); | ||||
| 			this->castleType->TabIndex = 18; | ||||
| 			//  | ||||
| 			// Form1 | ||||
| 			//  | ||||
| 			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); | ||||
| 			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; | ||||
| 			this->ClientSize = System::Drawing::Size(984, 535); | ||||
| 			this->Controls->Add(this->castleType); | ||||
| 			this->Controls->Add(this->buildingTypes); | ||||
| 			this->Controls->Add(this->label10); | ||||
| 			this->Controls->Add(this->label9); | ||||
| 			this->Controls->Add(this->label8); | ||||
| 			this->Controls->Add(this->label7); | ||||
| 			this->Controls->Add(this->browse2); | ||||
| 			this->Controls->Add(this->button1); | ||||
| 			this->Controls->Add(this->browse1); | ||||
| 			this->Controls->Add(this->label6); | ||||
| 			this->Controls->Add(this->label5); | ||||
| 			this->Controls->Add(this->source2); | ||||
| 			this->Controls->Add(this->source1); | ||||
| 			this->Controls->Add(this->confirm2); | ||||
| 			this->Controls->Add(this->confirm1); | ||||
| 			this->Controls->Add(this->possibilites2); | ||||
| 			this->Controls->Add(this->possibilites1); | ||||
| 			this->Controls->Add(this->assign2); | ||||
| 			this->Controls->Add(this->assign1); | ||||
| 			this->Controls->Add(this->next2); | ||||
| 			this->Controls->Add(this->next1); | ||||
| 			this->Controls->Add(this->prev2); | ||||
| 			this->Controls->Add(this->prev1); | ||||
| 			this->Controls->Add(this->label4); | ||||
| 			this->Controls->Add(this->label3); | ||||
| 			this->Controls->Add(this->search2); | ||||
| 			this->Controls->Add(this->search1); | ||||
| 			this->Controls->Add(this->label2); | ||||
| 			this->Controls->Add(this->label1); | ||||
| 			this->Controls->Add(this->searchpat2); | ||||
| 			this->Controls->Add(this->searchpat1); | ||||
| 			this->Controls->Add(this->listBox2); | ||||
| 			this->Controls->Add(this->listBox1); | ||||
| 			this->Controls->Add(this->pictureBox2); | ||||
| 			this->Controls->Add(this->pictureBox1); | ||||
| 			this->Name = L"Form1"; | ||||
| 			this->Text = L"Obwodziciel 1.00"; | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit(); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox2))->EndInit(); | ||||
| 			this->ResumeLayout(false); | ||||
| 			this->PerformLayout(); | ||||
|  | ||||
| 		} | ||||
| #pragma endregion | ||||
| 	private: System::Void browse1_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 				 folderBrowserDialog1->ShowDialog(); | ||||
| 				 source1->Text = folderBrowserDialog1->SelectedPath; | ||||
| 			 } | ||||
| private: System::Void browse2_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 				 folderBrowserDialog1->ShowDialog(); | ||||
| 				 source2->Text = folderBrowserDialog1->SelectedPath; | ||||
| 		 } | ||||
| private: System::Void search1_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 listBox1->Items->Clear(); | ||||
| 			 array<String^>^ pliki = IO::Directory::GetFiles(source1->Text,searchpat1->Text); | ||||
| 			 for each(String^ plik in pliki) | ||||
| 			 { | ||||
| 				 listBox1->Items->Add(plik); | ||||
| 			 } | ||||
| 			if(listBox1->Items->Count>0) | ||||
| 				listBox1->SelectedIndex=0; | ||||
| 		 } | ||||
| private: System::Void search2_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 listBox2->Items->Clear(); | ||||
| 			 array<String^>^ pliki = IO::Directory::GetFiles(source2->Text,searchpat2->Text); | ||||
| 			 for each(String^ plik in pliki) | ||||
| 			 { | ||||
| 				 listBox2->Items->Add(plik); | ||||
| 			 } | ||||
| 			if(listBox2->Items->Count>0) | ||||
| 				listBox2->SelectedIndex=0; | ||||
| 		 } | ||||
| private: System::Void listBox1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 if(listBox1->SelectedIndex<0) | ||||
| 				 return; | ||||
| 			 pictureBox1->Image = gcnew Drawing::Bitmap(dynamic_cast<String^>(listBox1->SelectedItem)); | ||||
| 		 } | ||||
| private: System::Void listBox2_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 if(listBox2->SelectedIndex<0) | ||||
| 				 return; | ||||
| 			 String^ s = dynamic_cast<String^>(listBox2->SelectedItem); | ||||
| 			 pictureBox2->Image = gcnew Drawing::Bitmap(s); | ||||
| 			 s = s->Substring(s->LastIndexOf(L"\\")+1); | ||||
| 			 s = s->Replace(L"_0_",L""); | ||||
| 			 s = s->Replace(L".bmp",L".def"); | ||||
| 			 s = s->Replace(L".BMP",L".def"); | ||||
| 			 for each(BuildingEntry b in lista) | ||||
| 			 { | ||||
| 				 if(b.defname == s) | ||||
| 					 buildingTypes->SelectedIndex = b.ID; | ||||
| 			 } | ||||
| 		 } | ||||
| private: System::Void assign2_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 possibilites1->Items->Clear(); | ||||
| 			 for each(Object^ item in listBox1->Items) | ||||
| 			 { | ||||
| 				 String^ path = dynamic_cast<String^>(item); | ||||
| 				 Bitmap ^b = gcnew Bitmap(path); | ||||
| 				 if( (b->Width == pictureBox2->Image->Width) && (b->Height == pictureBox2->Image->Height) ) | ||||
| 					 possibilites1->Items->Add(path); | ||||
| 				 delete b; | ||||
| 			 } | ||||
| 			 if (possibilites1->Items->Count>0) | ||||
| 			 { | ||||
| 				 possibilites1->SelectedIndex=0; | ||||
| 			 } | ||||
| 		 } | ||||
| private: System::Void assign1_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 possibilites2->Items->Clear(); | ||||
| 			 for each(Object^ item in listBox2->Items) | ||||
| 			 { | ||||
| 				 String^ path = dynamic_cast<String^>(item); | ||||
| 				 Bitmap ^b = gcnew Bitmap(path); | ||||
| 				 if( (b->Width == pictureBox1->Image->Width) && (b->Height == pictureBox1->Image->Height) ) | ||||
| 					 possibilites2->Items->Add(path); | ||||
| 				 delete b; | ||||
| 			 } | ||||
| 			 if (possibilites2->Items->Count>0) | ||||
| 			 { | ||||
| 				 possibilites2->SelectedIndex=0; | ||||
| 			 } | ||||
| 		 } | ||||
| private: System::Void possibilites1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 if(possibilites1->SelectedIndex<0) | ||||
| 				 return; | ||||
| 			 String^ s = dynamic_cast<String^>(possibilites1->SelectedItem); | ||||
| 			 pictureBox1->Image = gcnew Drawing::Bitmap(s); | ||||
| 			 s = s->Substring(s->LastIndexOf(L"\\")+1); | ||||
| 			 s = s->Replace(L"_0_",L""); | ||||
| 			 s = s->Replace(L".bmp",L".def"); | ||||
| 			 s = s->Replace(L".BMP",L".def"); | ||||
| 			 for each(BuildingEntry b in lista) | ||||
| 			 { | ||||
| 				 if(b.defname == s) | ||||
| 					 buildingTypes->SelectedIndex = b.ID; | ||||
| 			 } | ||||
| 		 } | ||||
| private: System::Void possibilites2_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 if(possibilites2->SelectedIndex<0) | ||||
| 				 return; | ||||
| 			 String^ s = dynamic_cast<String^>(possibilites2->SelectedItem); | ||||
| 			 pictureBox2->Image = gcnew Drawing::Bitmap(s); | ||||
| 			 s = s->Substring(s->LastIndexOf(L"\\")+1); | ||||
| 			 s = s->Replace(L"_0_",L""); | ||||
| 			 s = s->Replace(L".bmp",L".def"); | ||||
| 			 s = s->Replace(L".BMP",L".def"); | ||||
| 			 for each(BuildingEntry b in lista) | ||||
| 			 { | ||||
| 				 if(b.defname == s) | ||||
| 					 buildingTypes->SelectedIndex = b.ID; | ||||
| 			 } | ||||
| 		 } | ||||
| 		 void confirm(bool first) | ||||
| 		 { | ||||
| 			 try | ||||
| 			 { | ||||
| 				 //out format:  | ||||
| 				 //	townId	ID	defname	bordername	areaname | ||||
|  | ||||
| 				 String^ s, ^s2, ^s3; | ||||
| 				 if(first) | ||||
| 				 { | ||||
| 					s = dynamic_cast<String^>(possibilites2->SelectedItem); | ||||
| 				 } | ||||
| 				 else | ||||
| 				 { | ||||
| 					 s = dynamic_cast<String^>(listBox2->SelectedItem); | ||||
| 				 } | ||||
| 				 s = s->Substring(s->LastIndexOf(L"\\")+1); | ||||
| 				 s = s->Replace(L"_0_",L""); | ||||
| 				 s = s->Replace(L".bmp",L".def"); | ||||
| 				 s = s->Replace(L".BMP",L".def"); | ||||
|  | ||||
| 				 if(!first) | ||||
| 				 { | ||||
| 					 s2 = dynamic_cast<String^>(possibilites1->SelectedItem); | ||||
| 				 } | ||||
| 				 else | ||||
| 				 { | ||||
| 					 s2 = dynamic_cast<String^>(listBox1->SelectedItem); | ||||
| 				 } | ||||
| 				 s2 = s2->Substring(s2->LastIndexOf(L"\\")+1); | ||||
|  | ||||
| 				 s3 = L"TZ" + s2->Substring(2); | ||||
|  | ||||
| 				 String^ toOut; | ||||
| 				 toOut = castleType->SelectedIndex.ToString() + L"\t"  | ||||
| 							+ buildingTypes->SelectedIndex + (L"\t")  | ||||
| 							+ s + L"\t"  | ||||
| 							+ s2 +  L"\t" | ||||
| 							+ s3; | ||||
| 				 out->WriteLine(toOut); | ||||
| 				 out->Flush(); | ||||
|  | ||||
| 				 if(first) | ||||
| 				 { | ||||
| 					 for each(Object^ obj in listBox2->Items) | ||||
| 					 { | ||||
| 						String^ str = dynamic_cast<String^>(obj), | ||||
| 							^usw = dynamic_cast<String^>(possibilites2->SelectedItem); | ||||
| 						if(str==usw) | ||||
| 						{ | ||||
| 							listBox2->Items->Remove(obj); | ||||
| 							if(listBox2->Items->Count>0) | ||||
| 								listBox2->SelectedIndex = 0; | ||||
| 							break; | ||||
| 						} | ||||
| 					 } | ||||
| 					 listBox1->Items->Remove(listBox1->SelectedItem); | ||||
| 					 if(listBox1->Items->Count>0) | ||||
| 						 listBox1->SelectedIndex++; | ||||
| 				 } | ||||
| 				 else | ||||
| 				 { | ||||
| 					 for each(Object^ obj in listBox1->Items) | ||||
| 					 { | ||||
| 						String^ str = dynamic_cast<String^>(obj), | ||||
| 							^usw = dynamic_cast<String^>(possibilites1->SelectedItem); | ||||
| 						if(str==usw) | ||||
| 						{ | ||||
| 							listBox1->Items->Remove(obj); | ||||
| 							if(listBox1->Items->Count>0) | ||||
| 								listBox1->SelectedIndex = 0; | ||||
| 							break; | ||||
| 						} | ||||
| 					 } | ||||
| 					 int tempp = listBox2->SelectedIndex; | ||||
| 					 listBox2->Items->Remove(listBox2->SelectedItem); | ||||
| 					 if(listBox2->Items->Count>tempp) | ||||
| 						 listBox2->SelectedIndex=tempp; | ||||
| 				 } | ||||
|  | ||||
| 				 possibilites1->Items->Clear(); | ||||
| 				 possibilites2->Items->Clear(); | ||||
| 			 } | ||||
| 			 catch(...) | ||||
| 			 { | ||||
| 				 possibilites1->Items->Clear(); | ||||
| 				 possibilites2->Items->Clear(); | ||||
| 			 } | ||||
| 		 } | ||||
| private: System::Void confirm1_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			confirm(true); | ||||
| 		 } | ||||
| private: System::Void confirm2_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			confirm(false); | ||||
| 		 } | ||||
| private: System::Void prev1_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 		 } | ||||
| private: System::Void next1_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 		 } | ||||
| private: System::Void prev2_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 		 } | ||||
| private: System::Void next2_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 		 } | ||||
| }; | ||||
| } | ||||
|  | ||||
| @@ -1,126 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <root> | ||||
|   <!--  | ||||
|     Microsoft ResX Schema  | ||||
|      | ||||
|     Version 2.0 | ||||
|      | ||||
|     The primary goals of this format is to allow a simple XML format  | ||||
|     that is mostly human readable. The generation and parsing of the  | ||||
|     various data types are done through the TypeConverter classes  | ||||
|     associated with the data types. | ||||
|      | ||||
|     Example: | ||||
|      | ||||
|     ... ado.net/XML headers & schema ... | ||||
|     <resheader name="resmimetype">text/microsoft-resx</resheader> | ||||
|     <resheader name="version">2.0</resheader> | ||||
|     <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | ||||
|     <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | ||||
|     <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | ||||
|     <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | ||||
|     <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | ||||
|         <value>[base64 mime encoded serialized .NET Framework object]</value> | ||||
|     </data> | ||||
|     <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||||
|         <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | ||||
|         <comment>This is a comment</comment> | ||||
|     </data> | ||||
|                  | ||||
|     There are any number of "resheader" rows that contain simple  | ||||
|     name/value pairs. | ||||
|      | ||||
|     Each data row contains a name, and value. The row also contains a  | ||||
|     type or mimetype. Type corresponds to a .NET class that support  | ||||
|     text/value conversion through the TypeConverter architecture.  | ||||
|     Classes that don't support this are serialized and stored with the  | ||||
|     mimetype set. | ||||
|      | ||||
|     The mimetype is used for serialized objects, and tells the  | ||||
|     ResXResourceReader how to depersist the object. This is currently not  | ||||
|     extensible. For a given mimetype the value must be set accordingly: | ||||
|      | ||||
|     Note - application/x-microsoft.net.object.binary.base64 is the format  | ||||
|     that the ResXResourceWriter will generate, however the reader can  | ||||
|     read any of the formats listed below. | ||||
|      | ||||
|     mimetype: application/x-microsoft.net.object.binary.base64 | ||||
|     value   : The object must be serialized with  | ||||
|             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter | ||||
|             : and then encoded with base64 encoding. | ||||
|      | ||||
|     mimetype: application/x-microsoft.net.object.soap.base64 | ||||
|     value   : The object must be serialized with  | ||||
|             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | ||||
|             : and then encoded with base64 encoding. | ||||
|  | ||||
|     mimetype: application/x-microsoft.net.object.bytearray.base64 | ||||
|     value   : The object must be serialized into a byte array  | ||||
|             : using a System.ComponentModel.TypeConverter | ||||
|             : and then encoded with base64 encoding. | ||||
|     --> | ||||
|   <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | ||||
|     <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> | ||||
|     <xsd:element name="root" msdata:IsDataSet="true"> | ||||
|       <xsd:complexType> | ||||
|         <xsd:choice maxOccurs="unbounded"> | ||||
|           <xsd:element name="metadata"> | ||||
|             <xsd:complexType> | ||||
|               <xsd:sequence> | ||||
|                 <xsd:element name="value" type="xsd:string" minOccurs="0" /> | ||||
|               </xsd:sequence> | ||||
|               <xsd:attribute name="name" use="required" type="xsd:string" /> | ||||
|               <xsd:attribute name="type" type="xsd:string" /> | ||||
|               <xsd:attribute name="mimetype" type="xsd:string" /> | ||||
|               <xsd:attribute ref="xml:space" /> | ||||
|             </xsd:complexType> | ||||
|           </xsd:element> | ||||
|           <xsd:element name="assembly"> | ||||
|             <xsd:complexType> | ||||
|               <xsd:attribute name="alias" type="xsd:string" /> | ||||
|               <xsd:attribute name="name" type="xsd:string" /> | ||||
|             </xsd:complexType> | ||||
|           </xsd:element> | ||||
|           <xsd:element name="data"> | ||||
|             <xsd:complexType> | ||||
|               <xsd:sequence> | ||||
|                 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | ||||
|                 <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | ||||
|               </xsd:sequence> | ||||
|               <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> | ||||
|               <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | ||||
|               <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | ||||
|               <xsd:attribute ref="xml:space" /> | ||||
|             </xsd:complexType> | ||||
|           </xsd:element> | ||||
|           <xsd:element name="resheader"> | ||||
|             <xsd:complexType> | ||||
|               <xsd:sequence> | ||||
|                 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | ||||
|               </xsd:sequence> | ||||
|               <xsd:attribute name="name" type="xsd:string" use="required" /> | ||||
|             </xsd:complexType> | ||||
|           </xsd:element> | ||||
|         </xsd:choice> | ||||
|       </xsd:complexType> | ||||
|     </xsd:element> | ||||
|   </xsd:schema> | ||||
|   <resheader name="resmimetype"> | ||||
|     <value>text/microsoft-resx</value> | ||||
|   </resheader> | ||||
|   <resheader name="version"> | ||||
|     <value>2.0</value> | ||||
|   </resheader> | ||||
|   <resheader name="reader"> | ||||
|     <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||
|   </resheader> | ||||
|   <resheader name="writer"> | ||||
|     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||||
|   </resheader> | ||||
|   <metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||||
|     <value>17, 17</value> | ||||
|   </metadata> | ||||
|   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> | ||||
|     <value>42</value> | ||||
|   </metadata> | ||||
| </root> | ||||
| @@ -1,17 +0,0 @@ | ||||
| // Obwodziciel.cpp : main project file. | ||||
|  | ||||
| #include "Form1.h" | ||||
|  | ||||
| using namespace Obwodziciel; | ||||
|  | ||||
| [STAThreadAttribute] | ||||
| int main(array<System::String ^> ^args) | ||||
| { | ||||
| 	// Enabling Windows XP visual effects before any controls are created | ||||
| 	Application::EnableVisualStyles(); | ||||
| 	Application::SetCompatibleTextRenderingDefault(false);  | ||||
|  | ||||
| 	// Create the main window and run it | ||||
| 	Application::Run(gcnew Form1()); | ||||
| 	return 0; | ||||
| } | ||||
| @@ -1,236 +0,0 @@ | ||||
| <?xml version="1.0" encoding="windows-1250"?> | ||||
| <VisualStudioProject | ||||
| 	ProjectType="Visual C++" | ||||
| 	Version="9,00" | ||||
| 	Name="Obwodziciel" | ||||
| 	ProjectGUID="{0910DE2E-6C6C-48FE-9BCA-A961AFF5844F}" | ||||
| 	RootNamespace="Obwodziciel" | ||||
| 	Keyword="ManagedCProj" | ||||
| 	TargetFrameworkVersion="196613" | ||||
| 	> | ||||
| 	<Platforms> | ||||
| 		<Platform | ||||
| 			Name="Win32" | ||||
| 		/> | ||||
| 	</Platforms> | ||||
| 	<ToolFiles> | ||||
| 	</ToolFiles> | ||||
| 	<Configurations> | ||||
| 		<Configuration | ||||
| 			Name="Debug|Win32" | ||||
| 			OutputDirectory="$(SolutionDir)$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			CharacterSet="1" | ||||
| 			ManagedExtensions="2" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="G:\tp\SDL\include" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG" | ||||
| 				RuntimeLibrary="3" | ||||
| 				UsePrecompiledHeader="0" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="SDL.lib " | ||||
| 				LinkIncremental="2" | ||||
| 				AdditionalLibraryDirectories="G:\tp\SDL\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				AssemblyDebug="1" | ||||
| 				SubSystem="2" | ||||
| 				EntryPointSymbol="main" | ||||
| 				TargetMachine="1" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCALinkTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManifestTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXDCMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCBscMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCFxCopTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCAppVerifierTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool" | ||||
| 			/> | ||||
| 		</Configuration> | ||||
| 		<Configuration | ||||
| 			Name="Release|Win32" | ||||
| 			OutputDirectory="$(SolutionDir)$(ConfigurationName)" | ||||
| 			IntermediateDirectory="$(ConfigurationName)" | ||||
| 			ConfigurationType="1" | ||||
| 			CharacterSet="1" | ||||
| 			ManagedExtensions="2" | ||||
| 			WholeProgramOptimization="1" | ||||
| 			> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXMLDataGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				AdditionalIncludeDirectories="G:\tp\SDL\include" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG" | ||||
| 				RuntimeLibrary="2" | ||||
| 				UsePrecompiledHeader="2" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="3" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManagedResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				AdditionalDependencies="SDL.lib " | ||||
| 				LinkIncremental="1" | ||||
| 				AdditionalLibraryDirectories="G:\tp\SDL\lib" | ||||
| 				GenerateDebugInformation="true" | ||||
| 				SubSystem="2" | ||||
| 				EntryPointSymbol="main" | ||||
| 				TargetMachine="1" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCALinkTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCManifestTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCXDCMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCBscMakeTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCFxCopTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCAppVerifierTool" | ||||
| 			/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool" | ||||
| 			/> | ||||
| 		</Configuration> | ||||
| 	</Configurations> | ||||
| 	<References> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.dll" | ||||
| 			AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.Data.dll" | ||||
| 			AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.Drawing.dll" | ||||
| 			AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.Windows.Forms.dll" | ||||
| 			AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 		<AssemblyReference | ||||
| 			RelativePath="System.XML.dll" | ||||
| 			AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" | ||||
| 			MinFrameworkVersion="131072" | ||||
| 		/> | ||||
| 	</References> | ||||
| 	<Files> | ||||
| 		<Filter | ||||
| 			Name="Source Files" | ||||
| 			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" | ||||
| 			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\Obwodziciel.cpp" | ||||
| 				> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Header Files" | ||||
| 			Filter="h;hpp;hxx;hm;inl;inc;xsd" | ||||
| 			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" | ||||
| 			> | ||||
| 			<File | ||||
| 				RelativePath=".\Form1.h" | ||||
| 				FileType="3" | ||||
| 				> | ||||
| 				<File | ||||
| 					RelativePath=".\Form1.resX" | ||||
| 					SubType="Designer" | ||||
| 					> | ||||
| 				</File> | ||||
| 			</File> | ||||
| 		</Filter> | ||||
| 		<Filter | ||||
| 			Name="Resource Files" | ||||
| 			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" | ||||
| 			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" | ||||
| 			> | ||||
| 		</Filter> | ||||
| 		<File | ||||
| 			RelativePath=".\ReadMe.txt" | ||||
| 			> | ||||
| 		</File> | ||||
| 	</Files> | ||||
| 	<Globals> | ||||
| 	</Globals> | ||||
| </VisualStudioProject> | ||||
| @@ -1,9 +0,0 @@ | ||||
| Castle | ||||
| Rampart | ||||
| Tower | ||||
| Inferno | ||||
| Necropolis | ||||
| Dungeon | ||||
| Stronghold | ||||
| Fortress | ||||
| Conflux | ||||
| @@ -1,37 +0,0 @@ | ||||
| 0 16 TBCSBLAK.def 213 251 | ||||
| 0 8 TBCSCAS2.def 478 66 | ||||
| 0 9 TBCSCAS3.def 478 37 | ||||
| 0 7 TBCSCSTL.def 595 66 | ||||
| 0 6 TBCSDOCK.def 478 134 | ||||
| 0 30 TBCSDW_0.def 304 92 | ||||
| 0 31 TBCSDW_1.def 360 130 | ||||
| 0 32 TBCSDW_2.def 76 57 | ||||
| 0 33 TBCSDW_3.def 176 101 | ||||
| 0 34 TBCSDW_4.def 563 211 | ||||
| 0 35 TBCSDW_5.def 174 190 | ||||
| 0 36 TBCSDW_6.def 303 0 | ||||
| 0 21 TBCSEXT0.def 384 193 | ||||
| 0 22 TBCSEXT1.def 0 198 | ||||
| 0 11 TBCSHAL2.def 0 176 | ||||
| 0 12 TBCSHAL3.def 0 164 | ||||
| 0 13 TBCSHAL4.def 0 154 | ||||
| 0 10 TBCSHALL.def 0 209 | ||||
| 0 26 TBCSHOLY.def 456 109 | ||||
| 0 18 TBCSHRD1.def 76 53 | ||||
| 0 19 TBCSHRD2.def 76 35 | ||||
| 0 1 TBCSMAG2.def 706 135 | ||||
| 0 2 TBCSMAG3.def 704 107 | ||||
| 0 3 TBCSMAG4.def 704 76 | ||||
| 0 0 TBCSMAGE.def 707 166 | ||||
| 0 14 TBCSMARK.def 413 264 | ||||
| 0 15 TBCSSILO.def 488 228 | ||||
| 0 17 TBCSSPEC.def 533 71 | ||||
| 0 5 TBCSTVRN.def 0 230 | ||||
| 0 37 TBCSUP_0.def 304 65 | ||||
| 0 38 TBCSUP_1.def 360 115 | ||||
| 0 39 TBCSUP_2.def 76 35 | ||||
| 0 40 TBCSUP_3.def 176 85 | ||||
| 0 41 TBCSUP_4.def 563 173 | ||||
| 0 42 TBCSUP_5.def 160 190 | ||||
| 0 43 TBCSUP_6.def 303 0 | ||||
| 0 20 TBCSBOAT.def 478 134 | ||||
| @@ -1,38 +0,0 @@ | ||||
| using namespace System; | ||||
| using namespace System::Reflection; | ||||
| using namespace System::Runtime::CompilerServices; | ||||
| using namespace System::Runtime::InteropServices; | ||||
| using namespace System::Security::Permissions; | ||||
|  | ||||
| // | ||||
| // General Information about an assembly is controlled through the following | ||||
| // set of attributes. Change these attribute values to modify the information | ||||
| // associated with an assembly. | ||||
| // | ||||
| [assembly:AssemblyTitleAttribute("Wpasujbud 1.0")]; | ||||
| [assembly:AssemblyDescriptionAttribute("Cudowne narzedzie, ktore wpasuje budynki za mnie")]; | ||||
| [assembly:AssemblyConfigurationAttribute("")]; | ||||
| [assembly:AssemblyCompanyAttribute("VCMI Team")]; | ||||
| [assembly:AssemblyProductAttribute("ret")]; | ||||
| [assembly:AssemblyCopyrightAttribute("Copyright (c)  2008")]; | ||||
| [assembly:AssemblyTrademarkAttribute("")]; | ||||
| [assembly:AssemblyCultureAttribute("")]; | ||||
|  | ||||
| // | ||||
| // Version information for an assembly consists of the following four values: | ||||
| // | ||||
| //      Major Version | ||||
| //      Minor Version | ||||
| //      Build Number | ||||
| //      Revision | ||||
| // | ||||
| // You can specify all the value or you can default the Revision and Build Numbers | ||||
| // by using the '*' as shown below: | ||||
|  | ||||
| [assembly:AssemblyVersionAttribute("1.0.*")]; | ||||
|  | ||||
| [assembly:ComVisible(false)]; | ||||
|  | ||||
| [assembly:CLSCompliantAttribute(true)]; | ||||
|  | ||||
| [assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; | ||||
| @@ -1,361 +0,0 @@ | ||||
| // Wpasujbud.cpp : main project file. | ||||
| //#include <msclr\marshal.h> | ||||
| #include "SDL.h" | ||||
| #include "Wpasujbud.h" | ||||
| #include "tchar.h" | ||||
| #include "obrazek.h" | ||||
| #include "dataEditor.h" | ||||
| using namespace Wpasuj; | ||||
|  | ||||
| int Inaccuracy=5; | ||||
| int zgodnosc(Bitmap^ bg, Bitmap^ st, int x, int y); | ||||
| int zgodnosc(SDL_Surface * bg, SDL_Surface * st, int x, int y); | ||||
|  | ||||
| std::string Wpasujbud::ToString(System::String^ src) | ||||
| { | ||||
| 	std::string dest; | ||||
| 	using namespace System::Runtime::InteropServices; | ||||
| 	const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(src)).ToPointer(); | ||||
| 	dest = chars; | ||||
| 	Marshal::FreeHGlobal(IntPtr((void*)chars)); | ||||
| 	return dest; | ||||
| } | ||||
|  | ||||
| [STAThreadAttribute] | ||||
| int __stdcall WinMain() | ||||
| { | ||||
| 	// Enabling Windows XP visual effects before any controls are created | ||||
| 	Application::EnableVisualStyles(); | ||||
| 	Application::SetCompatibleTextRenderingDefault(false);  | ||||
|  | ||||
| 	Application::Run(gcnew Wpasujbud()); | ||||
| 	exit(0); | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| Wpasujbud::Wpasujbud(void) | ||||
| { | ||||
| 	InitializeComponent(); | ||||
| 	openFileDialog1->InitialDirectory = IO::Directory::GetCurrentDirectory(); | ||||
| 	IO::StreamReader ^sr = gcnew IO::StreamReader(L"config/TOWNTYPE.TXT"); | ||||
| 	Int32 i=0; | ||||
| 	while(!sr->EndOfStream) | ||||
| 	{ | ||||
| 		String ^ n = sr->ReadLine(); | ||||
| 		n = (i.ToString()) + L". " + n; | ||||
| 		townID->Items->Add(n); | ||||
| 		i++; | ||||
| 	} | ||||
| 	townID->SelectedIndex=0; | ||||
| 	sr->Close(); | ||||
| 	i++; | ||||
|  | ||||
| 	 | ||||
| 	sr = gcnew IO::StreamReader(L"config/BNAMES.TXT"); | ||||
| 	i=0; | ||||
| 	while(!sr->EndOfStream) | ||||
| 	{ | ||||
| 		String ^ n = sr->ReadLine(); | ||||
| 		//n = (i.ToString()) + L". " + n; | ||||
| 		buildingType->Items->Add(n); | ||||
| 		i++; | ||||
| 	} | ||||
| 	buildingType->SelectedIndex=0; | ||||
| 	sr->Close(); | ||||
| 	i++; | ||||
|  | ||||
| 	bitmapsFolder->Text = openFileDialog1->InitialDirectory; | ||||
|  | ||||
| } | ||||
|  | ||||
| System::Void Wpasujbud::searchBitmaps_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	bitmapList->Items->Clear(); | ||||
| 	array<String^>^ pliki = IO::Directory::GetFiles(bitmapsFolder->Text,bmpPattern->Text); | ||||
| 	for each(String ^ plik in pliki) | ||||
| 	{ | ||||
| 		//if(plik->EndsWith(L".bmp") || plik->EndsWith(L".BMP")) | ||||
| 			bitmapList->Items->Add(plik->Substring(plik->LastIndexOf('\\')+1)); | ||||
| 	} | ||||
| 	if(bitmapList->Items->Count>0) | ||||
| 		bitmapList->SelectedIndex=0; | ||||
| } | ||||
| System::Void Wpasujbud::startLocating_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	searchPicturePos(); | ||||
| } | ||||
| System::Void Wpasujbud::setBackground_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	if(townBgPath->Text->Length==0) | ||||
| 		return; | ||||
| 	Bitmap ^ bg = gcnew Bitmap(townBgPath->Text); | ||||
| 	townBg->Image = dynamic_cast<Image^>(bg); | ||||
| 	sbg = SDL_LoadBMP(ToString(townBgPath->Text).c_str()); | ||||
| } | ||||
| System::Void Wpasujbud::openFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e)  | ||||
| { | ||||
| 	townBgPath->Text = (dynamic_cast<OpenFileDialog^>(sender))->FileName; | ||||
| } | ||||
| System::Void Wpasujbud::browseForBg_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	openFileDialog1->ShowDialog(); | ||||
| } | ||||
| System::Void Wpasujbud::browseForbmpfol_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	folderBrowserDialog1->ShowDialog(); | ||||
| 	bitmapsFolder->Text = folderBrowserDialog1->SelectedPath; | ||||
| } | ||||
| System::Void Wpasujbud::bitmapList_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	int nsel = bitmapList->SelectedIndex; | ||||
| 	if (nsel<0) | ||||
| 		return; | ||||
| 	String ^ bmpname = bitmapsFolder->Text + "\\" + dynamic_cast<String^>(bitmapList->SelectedItem); | ||||
| 	Bitmap ^building = gcnew Bitmap(bmpname); | ||||
| 	buildingImg->Image = dynamic_cast<Image^>(building); | ||||
| } | ||||
| System::Void Wpasujbud::townBg_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	//Int32 tx, ty, ux, uy; | ||||
| 	//tx = townBg->Location.X; | ||||
| 	//ty = townBg->Location.Y; | ||||
| 	//ux = Location.X; | ||||
| 	//uy = Location.Y; | ||||
| 	mx = MousePosition.X - townBg->Location.X - Location.X - 4; | ||||
| 	my = MousePosition.Y - townBg->Location.Y - Location.Y - 30; | ||||
| 	koordy->Text = mx.ToString() + L", " + my.ToString(); | ||||
| } | ||||
| System::Void Wpasujbud::button1_Click(System::Object^  sender, System::EventArgs^  e) //skip | ||||
| { | ||||
| 	nextPicture(); | ||||
| } | ||||
|  | ||||
| Uint32 SDL_GetPixel(SDL_Surface *surface, int x, int y) | ||||
| { | ||||
| 	Uint8 *p = (Uint8 *)surface->pixels + y * surface->pitch + x * surface->format->BytesPerPixel; | ||||
|  | ||||
|     switch(surface->format->BytesPerPixel)  | ||||
| 	{ | ||||
|     case 1: | ||||
| 		{ | ||||
| 			SDL_Color * color = surface->format->palette->colors+(*p); | ||||
| 			return color->r<<16 | color->g<<8 | color->b; | ||||
| 		} | ||||
|     case 3: | ||||
|         return p[0] | p[1] << 8 | p[2] << 16; | ||||
|     } | ||||
| } | ||||
| int zgodnosc(SDL_Surface * bg, SDL_Surface * st, int x, int y) | ||||
| { | ||||
| 	int ret=0; | ||||
| 	for(int i=0;i<st->w;i+=Inaccuracy) | ||||
| 	{ | ||||
| 		for(int j=0;j<st->h;j+=Inaccuracy) | ||||
| 		{ | ||||
| 			int c1 = SDL_GetPixel(bg,i+x,j+y); | ||||
| 			int c2 = SDL_GetPixel(st,i,j); | ||||
| 			if((i+x)>=bg->w) | ||||
| 				break; | ||||
| 			if((j+y)>=bg->h) | ||||
| 				break; | ||||
| 			if(SDL_GetPixel(bg,i+x,j+y) == SDL_GetPixel(st,i,j)) | ||||
| 			{ | ||||
| 				ret++; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return ret*(Inaccuracy*Inaccuracy); | ||||
| } | ||||
| int zgodnosc(Bitmap^ bg, Bitmap^ st, int x, int y) | ||||
| { | ||||
| 	int ret=0; | ||||
| 	for(int i=0;i<st->Width;i++) | ||||
| 	{ | ||||
| 		for(int j=0;j<st->Height;j++) | ||||
| 		{ | ||||
| 			//Color c1 = bg->GetPixel(i+x,j+y); | ||||
| 			//Color c2 = st->GetPixel(i,j); | ||||
| 			if((i+x)>=bg->Width) | ||||
| 				break; | ||||
| 			if((j+y)>=bg->Height) | ||||
| 				break; | ||||
| 			if(bg->GetPixel(i+x,j+y) == st->GetPixel(i,j)) | ||||
| 			{ | ||||
| 				ret++; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return ret; | ||||
| } | ||||
| void Wpasujbud::searchPicturePos() | ||||
| { | ||||
| 	//Bitmap^ b = gcnew Bitmap((townBg->Image)->Width,(townBg->Image)->Height,Imaging::PixelFormat::Format24bppRgb); | ||||
| 	//Bitmap^ s = dynamic_cast<Bitmap^>(buildingImg->Image); | ||||
| 	//Graphics ^ g = Graphics::FromImage(b); | ||||
| 	//g->DrawImage(townBg->Image,0,0); | ||||
| 	//townBg->Image = b; | ||||
| 	String^ sss = bitmapsFolder->Text; | ||||
| 	if(!(sss->EndsWith(L"/")||sss->EndsWith(L"\\"))) | ||||
| 		sss+=L"\\"; | ||||
| 	sss+=dynamic_cast<String^>(bitmapList->SelectedItem); | ||||
| 	SDL_Surface *str = SDL_LoadBMP(ToString(sss).c_str()); | ||||
| 	Int32 colorPxs = 0; | ||||
|  | ||||
| 	int aq = 0x00ffff; | ||||
| 	for (int x=0;x<str->w;x++) | ||||
| 	{ | ||||
| 		for(int y=0;y<str->h;y++) | ||||
| 		{ | ||||
| 			if(SDL_GetPixel(str,x,y) != aq) | ||||
| 				colorPxs++; | ||||
| 		} | ||||
| 	} | ||||
| 	int zgoda=0, retx, rety; | ||||
| 	int px=mx, py=my, maxr = Convert::ToInt32(radious->Text); | ||||
| 	if (radioButton2->Checked) | ||||
| 	{ | ||||
| 		px-=str->w/2; | ||||
| 		py-=str->h/2; | ||||
| 	} | ||||
| 	else if (radioButton3->Checked) | ||||
| 	{ | ||||
| 		px-=str->w; | ||||
| 		py-=str->h; | ||||
| 	} | ||||
| 	px-=maxr/2; | ||||
| 	py-=maxr/2; | ||||
| 	for(int i=0;i<maxr;i++) | ||||
| 	{ | ||||
| 		for (int j=0;j<maxr;j++) | ||||
| 		{ | ||||
| 			int pom = zgodnosc(sbg,str,px+i,py+j); | ||||
| 			if (pom>zgoda) | ||||
| 			{ | ||||
| 				zgoda = pom; | ||||
| 				retx = px+i; | ||||
| 				rety = py+j; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	//for(int r=0;r<maxr;r++) | ||||
| 	//{ | ||||
| 	//	for(int i=0;i<=r;i++) | ||||
| 	//	{ | ||||
| 	//		int pom, pom2; | ||||
| 	//		pom = zgodnosc(sbg,str,px+i,py); | ||||
| 	//		if (pom>zgoda) | ||||
| 	//		{ | ||||
| 	//			zgoda = pom; | ||||
| 	//			retx = px+i; | ||||
| 	//			rety = py; | ||||
| 	//		} | ||||
| 	//		pom = zgodnosc(sbg,str,px+i,py+r); | ||||
| 	//		if (pom>zgoda) | ||||
| 	//		{ | ||||
| 	//			zgoda = pom; | ||||
| 	//			retx = px+i; | ||||
| 	//			rety = py+r; | ||||
| 	//		} | ||||
| 	//		pom = zgodnosc(sbg,str,px,py+i); | ||||
| 	//		if (pom>zgoda) | ||||
| 	//		{ | ||||
| 	//			zgoda = pom; | ||||
| 	//			retx = px; | ||||
| 	//			rety = py+i; | ||||
| 	//		} | ||||
| 	//		pom = zgodnosc(sbg,str,px+r,py+i); | ||||
| 	//		if (pom>zgoda) | ||||
| 	//		{ | ||||
| 	//			zgoda = pom; | ||||
| 	//			retx = px+r; | ||||
| 	//			rety = py+i; | ||||
| 	//		} | ||||
| 	//		float per = zgoda/colorPxs; | ||||
| 	//		 | ||||
| 	//	} | ||||
| 	//	px--; | ||||
| 	//	py--; | ||||
| 	//} | ||||
| 	accordanceBox->Text = zgoda.ToString() + L"/" + colorPxs.ToString(); | ||||
| 	curx = retx; | ||||
| 	cury = rety; | ||||
| 	foundedCoords->Text = retx.ToString() + L", " + rety.ToString(); | ||||
| 	//townBg->Refresh(); | ||||
| } | ||||
|  | ||||
| System::Void Wpasujbud::inaccuracy_TextChanged(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	int ni = Convert::ToUInt32(inaccuracy->Text); | ||||
| 	if(ni==0) | ||||
| 	{ | ||||
| 		inaccuracy->Text == L"1"; | ||||
| 		Inaccuracy = 1; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		Inaccuracy = ni; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void Wpasujbud::nextPicture() | ||||
| { | ||||
| 	if(bitmapList->SelectedIndex<(bitmapList->Items->Count-1)) | ||||
| 		bitmapList->SelectedIndex++; | ||||
| } | ||||
| void Wpasujbud::previousPicture() | ||||
| { | ||||
| 	if(bitmapList->SelectedIndex>0) | ||||
| 		bitmapList->SelectedIndex--; | ||||
| }  | ||||
|  | ||||
| System::Void Wpasujbud::confirm_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	CBuildingData ^cbd = gcnew CBuildingData(); | ||||
| 	//cbd->defname = bitmapsFolder->Text; | ||||
| 	//if(!(cbd->defname->EndsWith(L"/")||cbd->defname->EndsWith(L"\\"))) | ||||
| 	//	cbd->defname+=L"\\"; | ||||
| 	cbd->defname+=dynamic_cast<String^>(bitmapList->SelectedItem); | ||||
| 	cbd->defname = (cbd->defname)->Substring(0,cbd->defname->Length-7)+".def"; | ||||
| 	cbd->ID = buildingType->SelectedIndex; | ||||
| 	cbd->townID = townID->SelectedIndex; | ||||
| 	cbd->x = curx; | ||||
| 	cbd->y = cury; | ||||
|  | ||||
| 	//int curind = bitmapList->SelectedIndex; | ||||
| 	bitmapList->Items->RemoveAt(bitmapList->SelectedIndex); | ||||
|  | ||||
| 	nextPicture(); | ||||
| 	nextPicture(); | ||||
| 	data.push_back(cbd); | ||||
|  | ||||
| } | ||||
| 	//System::String^ defname; | ||||
| 	//System::Int32 ID, x, y; | ||||
| 	//System::Int32 townID; | ||||
| System::Void Wpasujbud::save_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	String ^n = DateTime::Now.ToString()+".txt"; | ||||
| 	n = n->Replace(L" ",L"___")->Replace(':','_'); | ||||
| 	IO::StreamWriter sr(IO::Directory::GetCurrentDirectory() + L"\\" + n); | ||||
| 	for each (CBuildingData ^Data in data) | ||||
| 	{ | ||||
| 		String ^temp = Data->ToString(); | ||||
| 		sr.Write(temp); | ||||
| 	} | ||||
| 	sr.Close(); | ||||
| } | ||||
|  | ||||
| System::Void Wpasujbud::buildingImg_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	if (!buildingImg->Image) | ||||
| 		return; | ||||
| 	obrazek ^ob = gcnew obrazek(buildingImg->Image); | ||||
| 	ob->Show(); | ||||
| } | ||||
| System::Void Wpasujbud::dataview_Click(System::Object^  sender, System::EventArgs^  e) | ||||
| { | ||||
| 	if (data.size()<=0) | ||||
| 		return; | ||||
| 	dataEditor ^ de = gcnew dataEditor(%data); | ||||
| 	de->Show(); | ||||
| } | ||||
| @@ -1,649 +0,0 @@ | ||||
| #pragma once | ||||
| #include <cliext/vector>  | ||||
| #include "data.h" | ||||
| #include "obrazek.h" | ||||
| #include "dataEditor.h" | ||||
| #include <string> | ||||
| namespace Wpasuj { | ||||
|  | ||||
| 	using namespace System; | ||||
| 	using namespace System::ComponentModel; | ||||
| 	using namespace System::Collections; | ||||
| 	using namespace System::Windows::Forms; | ||||
| 	using namespace System::Data; | ||||
| 	using namespace System::Drawing; | ||||
|  | ||||
|  | ||||
| 	/// <summary> | ||||
| 	/// Summary for Wpasujbud | ||||
| 	/// | ||||
| 	/// WARNING: If you change the name of this class, you will need to change the | ||||
| 	///          'Resource File Name' property for the managed resource compiler tool | ||||
| 	///          associated with all .resx files this class depends on.  Otherwise, | ||||
| 	///          the designers will not be able to interact properly with localized | ||||
| 	///          resources associated with this form. | ||||
| 	/// </summary> | ||||
| 	public ref class Wpasujbud : public System::Windows::Forms::Form | ||||
| 	{ | ||||
| 	public: | ||||
| 		cliext::vector<CBuildingData^> data; | ||||
| 		 | ||||
| 		Int32 mx, my, curx, cury; | ||||
| 		SDL_Surface * sbg; | ||||
| 	private: System::Windows::Forms::TextBox^  foundedCoords; | ||||
| 	public:  | ||||
|  | ||||
| 	public:  | ||||
|  | ||||
| 	public:  | ||||
|  | ||||
| 	public:  | ||||
| 	private: System::Windows::Forms::Label^  label11; | ||||
| 	private: System::Windows::Forms::Button^  confirm; | ||||
|  | ||||
| 	private: System::Windows::Forms::Label^  label12; | ||||
| 	private: System::Windows::Forms::Button^  button3; | ||||
| 	private: System::Windows::Forms::TextBox^  accordanceBox; | ||||
| 	private: System::Windows::Forms::Button^  button4; | ||||
| 	private: System::Windows::Forms::TextBox^  inaccuracy; | ||||
| 	private: System::Windows::Forms::Label^  label13; | ||||
| 	private: System::Windows::Forms::Button^  save; | ||||
|  | ||||
| 	private: System::Windows::Forms::RadioButton^  radioButton3; | ||||
| 	private: System::Windows::Forms::Button^  dataview; | ||||
| 	private: System::Windows::Forms::Label^  label9; | ||||
| 	private: System::Windows::Forms::Label^  label14; | ||||
|  | ||||
| 	private: System::Windows::Forms::Button^  button1; | ||||
| 	public:  | ||||
| 	 | ||||
| 		void searchPicturePos(); | ||||
| 		void nextPicture(); | ||||
| 		void previousPicture(); | ||||
| 		std::string ToString(System::String^ src); | ||||
|  | ||||
|  | ||||
| 		obrazek ^curob; | ||||
| 		dataEditor ^cured; | ||||
|  | ||||
| 		Wpasujbud(void); | ||||
|  | ||||
| 	protected: | ||||
| 		/// <summary> | ||||
| 		/// Clean up any resources being used. | ||||
| 		/// </summary> | ||||
| 		~Wpasujbud() | ||||
| 		{ | ||||
| 			if (components) | ||||
| 			{ | ||||
| 				delete components; | ||||
| 			} | ||||
| 		} | ||||
| 	private: System::Windows::Forms::PictureBox^  townBg; | ||||
| 	private: System::Windows::Forms::PictureBox^  buildingImg; | ||||
|  | ||||
| 	private: System::Windows::Forms::Label^  label1; | ||||
| 	private: System::Windows::Forms::RadioButton^  radioButton1; | ||||
| 	private: System::Windows::Forms::RadioButton^  radioButton2; | ||||
| 	private: System::Windows::Forms::TextBox^  koordy; | ||||
| 	private: System::Windows::Forms::Label^  label2; | ||||
| 	private: System::Windows::Forms::ComboBox^  buildingType; | ||||
|  | ||||
| 	private: System::Windows::Forms::Label^  label3; | ||||
| 	private: System::Windows::Forms::Label^  label4; | ||||
| 	private: System::Windows::Forms::ComboBox^  townID; | ||||
| 	private: System::Windows::Forms::TextBox^  bmpPattern; | ||||
| 	private: System::Windows::Forms::Label^  label5; | ||||
| 	private: System::Windows::Forms::ListBox^  bitmapList; | ||||
| 	private: System::Windows::Forms::Label^  label6; | ||||
| 	private: System::Windows::Forms::Button^  searchBitmaps; | ||||
| 	private: System::Windows::Forms::Button^  startLocating; | ||||
|  | ||||
| 	private: System::Windows::Forms::TextBox^  townBgPath; | ||||
| 	private: System::Windows::Forms::Label^  label7; | ||||
| 	private: System::Windows::Forms::Button^  setBackground; | ||||
|  | ||||
| 	private: System::Windows::Forms::TextBox^  radious; | ||||
| 	private: System::Windows::Forms::Label^  label8; | ||||
|  | ||||
|  | ||||
| 	private: System::Windows::Forms::OpenFileDialog^  openFileDialog1; | ||||
| 	private: System::Windows::Forms::Button^  browseForBg; | ||||
| 	private: System::Windows::Forms::TextBox^  bitmapsFolder; | ||||
| 	private: System::Windows::Forms::Label^  label10; | ||||
| 	private: System::Windows::Forms::Button^  browseForbmpfol; | ||||
|  | ||||
| 	private: System::Windows::Forms::FolderBrowserDialog^  folderBrowserDialog1; | ||||
|  | ||||
|  | ||||
| 	protected:  | ||||
|  | ||||
| 	protected:  | ||||
|  | ||||
| 	private: | ||||
| 		/// <summary> | ||||
| 		/// Required designer variable. | ||||
| 		/// </summary> | ||||
| 		System::ComponentModel::Container ^components; | ||||
|  | ||||
| #pragma region Windows Form Designer generated code | ||||
| 		/// <summary> | ||||
| 		/// Required method for Designer support - do not modify | ||||
| 		/// the contents of this method with the code editor. | ||||
| 		/// </summary> | ||||
| 		void InitializeComponent(void) | ||||
| 		{ | ||||
| 			this->townBg = (gcnew System::Windows::Forms::PictureBox()); | ||||
| 			this->buildingImg = (gcnew System::Windows::Forms::PictureBox()); | ||||
| 			this->label1 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->radioButton1 = (gcnew System::Windows::Forms::RadioButton()); | ||||
| 			this->radioButton2 = (gcnew System::Windows::Forms::RadioButton()); | ||||
| 			this->koordy = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label2 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->buildingType = (gcnew System::Windows::Forms::ComboBox()); | ||||
| 			this->label3 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->label4 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->townID = (gcnew System::Windows::Forms::ComboBox()); | ||||
| 			this->bmpPattern = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label5 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->bitmapList = (gcnew System::Windows::Forms::ListBox()); | ||||
| 			this->label6 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->searchBitmaps = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->startLocating = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->townBgPath = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label7 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->setBackground = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->radious = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label8 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog()); | ||||
| 			this->browseForBg = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->bitmapsFolder = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label10 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->browseForbmpfol = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->folderBrowserDialog1 = (gcnew System::Windows::Forms::FolderBrowserDialog()); | ||||
| 			this->button1 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->foundedCoords = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label11 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->confirm = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->label12 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->button3 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->accordanceBox = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->button4 = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->inaccuracy = (gcnew System::Windows::Forms::TextBox()); | ||||
| 			this->label13 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->save = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->radioButton3 = (gcnew System::Windows::Forms::RadioButton()); | ||||
| 			this->dataview = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->label9 = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->label14 = (gcnew System::Windows::Forms::Label()); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->townBg))->BeginInit(); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->buildingImg))->BeginInit(); | ||||
| 			this->SuspendLayout(); | ||||
| 			//  | ||||
| 			// townBg | ||||
| 			//  | ||||
| 			this->townBg->Location = System::Drawing::Point(12, 6); | ||||
| 			this->townBg->Name = L"townBg"; | ||||
| 			this->townBg->Size = System::Drawing::Size(800, 374); | ||||
| 			this->townBg->TabIndex = 0; | ||||
| 			this->townBg->TabStop = false; | ||||
| 			this->townBg->Click += gcnew System::EventHandler(this, &Wpasujbud::townBg_Click); | ||||
| 			//  | ||||
| 			// buildingImg | ||||
| 			//  | ||||
| 			this->buildingImg->Location = System::Drawing::Point(12, 401); | ||||
| 			this->buildingImg->Name = L"buildingImg"; | ||||
| 			this->buildingImg->Size = System::Drawing::Size(163, 137); | ||||
| 			this->buildingImg->TabIndex = 1; | ||||
| 			this->buildingImg->TabStop = false; | ||||
| 			this->buildingImg->Click += gcnew System::EventHandler(this, &Wpasujbud::buildingImg_Click); | ||||
| 			//  | ||||
| 			// label1 | ||||
| 			//  | ||||
| 			this->label1->AutoSize = true; | ||||
| 			this->label1->Location = System::Drawing::Point(12, 385); | ||||
| 			this->label1->Name = L"label1"; | ||||
| 			this->label1->Size = System::Drawing::Size(166, 13); | ||||
| 			this->label1->TabIndex = 2; | ||||
| 			this->label1->Text = L"Current building (click for full size):"; | ||||
| 			//  | ||||
| 			// radioButton1 | ||||
| 			//  | ||||
| 			this->radioButton1->AutoSize = true; | ||||
| 			this->radioButton1->Checked = true; | ||||
| 			this->radioButton1->Location = System::Drawing::Point(185, 491); | ||||
| 			this->radioButton1->Name = L"radioButton1"; | ||||
| 			this->radioButton1->Size = System::Drawing::Size(94, 17); | ||||
| 			this->radioButton1->TabIndex = 3; | ||||
| 			this->radioButton1->TabStop = true; | ||||
| 			this->radioButton1->Text = L"Top left corner"; | ||||
| 			this->radioButton1->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// radioButton2 | ||||
| 			//  | ||||
| 			this->radioButton2->AutoSize = true; | ||||
| 			this->radioButton2->Location = System::Drawing::Point(185, 512); | ||||
| 			this->radioButton2->Name = L"radioButton2"; | ||||
| 			this->radioButton2->Size = System::Drawing::Size(85, 17); | ||||
| 			this->radioButton2->TabIndex = 3; | ||||
| 			this->radioButton2->Text = L"Middle of pic"; | ||||
| 			this->radioButton2->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// koordy | ||||
| 			//  | ||||
| 			this->koordy->Location = System::Drawing::Point(185, 470); | ||||
| 			this->koordy->Name = L"koordy"; | ||||
| 			this->koordy->Size = System::Drawing::Size(121, 20); | ||||
| 			this->koordy->TabIndex = 4; | ||||
| 			//  | ||||
| 			// label2 | ||||
| 			//  | ||||
| 			this->label2->AutoSize = true; | ||||
| 			this->label2->Location = System::Drawing::Point(214, 456); | ||||
| 			this->label2->Name = L"label2"; | ||||
| 			this->label2->Size = System::Drawing::Size(67, 13); | ||||
| 			this->label2->TabIndex = 5; | ||||
| 			this->label2->Text = L"Your coords:"; | ||||
| 			//  | ||||
| 			// buildingType | ||||
| 			//  | ||||
| 			this->buildingType->FormattingEnabled = true; | ||||
| 			this->buildingType->Location = System::Drawing::Point(185, 400); | ||||
| 			this->buildingType->Name = L"buildingType"; | ||||
| 			this->buildingType->Size = System::Drawing::Size(121, 21); | ||||
| 			this->buildingType->TabIndex = 6; | ||||
| 			//  | ||||
| 			// label3 | ||||
| 			//  | ||||
| 			this->label3->AutoSize = true; | ||||
| 			this->label3->Location = System::Drawing::Point(214, 385); | ||||
| 			this->label3->Name = L"label3"; | ||||
| 			this->label3->Size = System::Drawing::Size(67, 13); | ||||
| 			this->label3->TabIndex = 7; | ||||
| 			this->label3->Text = L"Building type"; | ||||
| 			//  | ||||
| 			// label4 | ||||
| 			//  | ||||
| 			this->label4->AutoSize = true; | ||||
| 			this->label4->Location = System::Drawing::Point(224, 422); | ||||
| 			this->label4->Name = L"label4"; | ||||
| 			this->label4->Size = System::Drawing::Size(48, 13); | ||||
| 			this->label4->TabIndex = 7; | ||||
| 			this->label4->Text = L"Town ID"; | ||||
| 			//  | ||||
| 			// townID | ||||
| 			//  | ||||
| 			this->townID->FormattingEnabled = true; | ||||
| 			this->townID->Location = System::Drawing::Point(185, 435); | ||||
| 			this->townID->Name = L"townID"; | ||||
| 			this->townID->Size = System::Drawing::Size(121, 21); | ||||
| 			this->townID->TabIndex = 6; | ||||
| 			//  | ||||
| 			// bmpPattern | ||||
| 			//  | ||||
| 			this->bmpPattern->Location = System::Drawing::Point(317, 467); | ||||
| 			this->bmpPattern->Name = L"bmpPattern"; | ||||
| 			this->bmpPattern->Size = System::Drawing::Size(121, 20); | ||||
| 			this->bmpPattern->TabIndex = 4; | ||||
| 			this->bmpPattern->Text = L"*.bmp"; | ||||
| 			//  | ||||
| 			// label5 | ||||
| 			//  | ||||
| 			this->label5->AutoSize = true; | ||||
| 			this->label5->Location = System::Drawing::Point(332, 452); | ||||
| 			this->label5->Name = L"label5"; | ||||
| 			this->label5->Size = System::Drawing::Size(103, 13); | ||||
| 			this->label5->TabIndex = 5; | ||||
| 			this->label5->Text = L"Search bmp pattern:"; | ||||
| 			//  | ||||
| 			// bitmapList | ||||
| 			//  | ||||
| 			this->bitmapList->Enabled = false; | ||||
| 			this->bitmapList->FormattingEnabled = true; | ||||
| 			this->bitmapList->Location = System::Drawing::Point(449, 400); | ||||
| 			this->bitmapList->Name = L"bitmapList"; | ||||
| 			this->bitmapList->Size = System::Drawing::Size(133, 95); | ||||
| 			this->bitmapList->TabIndex = 8; | ||||
| 			this->bitmapList->SelectedIndexChanged += gcnew System::EventHandler(this, &Wpasujbud::bitmapList_SelectedIndexChanged); | ||||
| 			//  | ||||
| 			// label6 | ||||
| 			//  | ||||
| 			this->label6->AutoSize = true; | ||||
| 			this->label6->Location = System::Drawing::Point(485, 384); | ||||
| 			this->label6->Name = L"label6"; | ||||
| 			this->label6->Size = System::Drawing::Size(57, 13); | ||||
| 			this->label6->TabIndex = 9; | ||||
| 			this->label6->Text = L"Bitmap list:"; | ||||
| 			//  | ||||
| 			// searchBitmaps | ||||
| 			//  | ||||
| 			this->searchBitmaps->Location = System::Drawing::Point(449, 501); | ||||
| 			this->searchBitmaps->Name = L"searchBitmaps"; | ||||
| 			this->searchBitmaps->Size = System::Drawing::Size(133, 23); | ||||
| 			this->searchBitmaps->TabIndex = 10; | ||||
| 			this->searchBitmaps->Text = L"Search bitmaps"; | ||||
| 			this->searchBitmaps->UseVisualStyleBackColor = true; | ||||
| 			this->searchBitmaps->Click += gcnew System::EventHandler(this, &Wpasujbud::searchBitmaps_Click); | ||||
| 			//  | ||||
| 			// startLocating | ||||
| 			//  | ||||
| 			this->startLocating->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 10, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->startLocating->Location = System::Drawing::Point(696, 464); | ||||
| 			this->startLocating->Name = L"startLocating"; | ||||
| 			this->startLocating->Size = System::Drawing::Size(120, 29); | ||||
| 			this->startLocating->TabIndex = 11; | ||||
| 			this->startLocating->Text = L"Search pos!"; | ||||
| 			this->startLocating->UseVisualStyleBackColor = true; | ||||
| 			this->startLocating->Click += gcnew System::EventHandler(this, &Wpasujbud::startLocating_Click); | ||||
| 			//  | ||||
| 			// townBgPath | ||||
| 			//  | ||||
| 			this->townBgPath->Location = System::Drawing::Point(317, 403); | ||||
| 			this->townBgPath->Name = L"townBgPath"; | ||||
| 			this->townBgPath->Size = System::Drawing::Size(121, 20); | ||||
| 			this->townBgPath->TabIndex = 4; | ||||
| 			//  | ||||
| 			// label7 | ||||
| 			//  | ||||
| 			this->label7->AutoSize = true; | ||||
| 			this->label7->Location = System::Drawing::Point(332, 386); | ||||
| 			this->label7->Name = L"label7"; | ||||
| 			this->label7->Size = System::Drawing::Size(94, 13); | ||||
| 			this->label7->TabIndex = 5; | ||||
| 			this->label7->Text = L"Town background"; | ||||
| 			//  | ||||
| 			// setBackground | ||||
| 			//  | ||||
| 			this->setBackground->Location = System::Drawing::Point(317, 427); | ||||
| 			this->setBackground->Name = L"setBackground"; | ||||
| 			this->setBackground->Size = System::Drawing::Size(52, 23); | ||||
| 			this->setBackground->TabIndex = 12; | ||||
| 			this->setBackground->Text = L"Set bg"; | ||||
| 			this->setBackground->UseVisualStyleBackColor = true; | ||||
| 			this->setBackground->Click += gcnew System::EventHandler(this, &Wpasujbud::setBackground_Click); | ||||
| 			//  | ||||
| 			// radious | ||||
| 			//  | ||||
| 			this->radious->Location = System::Drawing::Point(591, 441); | ||||
| 			this->radious->Name = L"radious"; | ||||
| 			this->radious->Size = System::Drawing::Size(98, 20); | ||||
| 			this->radious->TabIndex = 13; | ||||
| 			this->radious->Text = L"100"; | ||||
| 			//  | ||||
| 			// label8 | ||||
| 			//  | ||||
| 			this->label8->AutoSize = true; | ||||
| 			this->label8->Location = System::Drawing::Point(597, 426); | ||||
| 			this->label8->Name = L"label8"; | ||||
| 			this->label8->Size = System::Drawing::Size(62, 13); | ||||
| 			this->label8->TabIndex = 5; | ||||
| 			this->label8->Text = L"Search rad:"; | ||||
| 			//  | ||||
| 			// openFileDialog1 | ||||
| 			//  | ||||
| 			this->openFileDialog1->FileName = L"openFileDialog1"; | ||||
| 			this->openFileDialog1->Filter = L"BMP Files (*.bmp)|*.bmp|All files (*.*)|*.*"; | ||||
| 			this->openFileDialog1->FileOk += gcnew System::ComponentModel::CancelEventHandler(this, &Wpasujbud::openFileDialog1_FileOk); | ||||
| 			//  | ||||
| 			// browseForBg | ||||
| 			//  | ||||
| 			this->browseForBg->Location = System::Drawing::Point(373, 427); | ||||
| 			this->browseForBg->Name = L"browseForBg"; | ||||
| 			this->browseForBg->Size = System::Drawing::Size(65, 23); | ||||
| 			this->browseForBg->TabIndex = 14; | ||||
| 			this->browseForBg->Text = L"Browse"; | ||||
| 			this->browseForBg->UseVisualStyleBackColor = true; | ||||
| 			this->browseForBg->Click += gcnew System::EventHandler(this, &Wpasujbud::browseForBg_Click); | ||||
| 			//  | ||||
| 			// bitmapsFolder | ||||
| 			//  | ||||
| 			this->bitmapsFolder->Location = System::Drawing::Point(317, 505); | ||||
| 			this->bitmapsFolder->Name = L"bitmapsFolder"; | ||||
| 			this->bitmapsFolder->Size = System::Drawing::Size(121, 20); | ||||
| 			this->bitmapsFolder->TabIndex = 4; | ||||
| 			//  | ||||
| 			// label10 | ||||
| 			//  | ||||
| 			this->label10->AutoSize = true; | ||||
| 			this->label10->Location = System::Drawing::Point(334, 490); | ||||
| 			this->label10->Name = L"label10"; | ||||
| 			this->label10->Size = System::Drawing::Size(97, 13); | ||||
| 			this->label10->TabIndex = 5; | ||||
| 			this->label10->Text = L"Folder with bitmaps"; | ||||
| 			//  | ||||
| 			// browseForbmpfol | ||||
| 			//  | ||||
| 			this->browseForbmpfol->Location = System::Drawing::Point(321, 528); | ||||
| 			this->browseForbmpfol->Name = L"browseForbmpfol"; | ||||
| 			this->browseForbmpfol->Size = System::Drawing::Size(111, 19); | ||||
| 			this->browseForbmpfol->TabIndex = 15; | ||||
| 			this->browseForbmpfol->Text = L"Browse"; | ||||
| 			this->browseForbmpfol->UseVisualStyleBackColor = true; | ||||
| 			this->browseForbmpfol->Click += gcnew System::EventHandler(this, &Wpasujbud::browseForbmpfol_Click); | ||||
| 			//  | ||||
| 			// button1 | ||||
| 			//  | ||||
| 			this->button1->Location = System::Drawing::Point(592, 466); | ||||
| 			this->button1->Name = L"button1"; | ||||
| 			this->button1->Size = System::Drawing::Size(97, 23); | ||||
| 			this->button1->TabIndex = 16; | ||||
| 			this->button1->Text = L"Next pic"; | ||||
| 			this->button1->UseVisualStyleBackColor = true; | ||||
| 			this->button1->Click += gcnew System::EventHandler(this, &Wpasujbud::button1_Click); | ||||
| 			//  | ||||
| 			// foundedCoords | ||||
| 			//  | ||||
| 			this->foundedCoords->Location = System::Drawing::Point(696, 441); | ||||
| 			this->foundedCoords->Name = L"foundedCoords"; | ||||
| 			this->foundedCoords->Size = System::Drawing::Size(120, 20); | ||||
| 			this->foundedCoords->TabIndex = 17; | ||||
| 			this->foundedCoords->Text = L"0, 0"; | ||||
| 			//  | ||||
| 			// label11 | ||||
| 			//  | ||||
| 			this->label11->AutoSize = true; | ||||
| 			this->label11->Location = System::Drawing::Point(722, 425); | ||||
| 			this->label11->Name = L"label11"; | ||||
| 			this->label11->Size = System::Drawing::Size(87, 13); | ||||
| 			this->label11->TabIndex = 18; | ||||
| 			this->label11->Text = L"Founded coords:"; | ||||
| 			//  | ||||
| 			// confirm | ||||
| 			//  | ||||
| 			this->confirm->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->confirm->Location = System::Drawing::Point(590, 525); | ||||
| 			this->confirm->Name = L"confirm"; | ||||
| 			this->confirm->Size = System::Drawing::Size(120, 23); | ||||
| 			this->confirm->TabIndex = 19; | ||||
| 			this->confirm->Text = L"Confirm"; | ||||
| 			this->confirm->UseVisualStyleBackColor = true; | ||||
| 			this->confirm->Click += gcnew System::EventHandler(this, &Wpasujbud::confirm_Click); | ||||
| 			//  | ||||
| 			// label12 | ||||
| 			//  | ||||
| 			this->label12->AutoSize = true; | ||||
| 			this->label12->Location = System::Drawing::Point(722, 385); | ||||
| 			this->label12->Name = L"label12"; | ||||
| 			this->label12->Size = System::Drawing::Size(68, 13); | ||||
| 			this->label12->TabIndex = 21; | ||||
| 			this->label12->Text = L"Accordance:"; | ||||
| 			//  | ||||
| 			// button3 | ||||
| 			//  | ||||
| 			this->button3->Location = System::Drawing::Point(736, 496); | ||||
| 			this->button3->Name = L"button3"; | ||||
| 			this->button3->Size = System::Drawing::Size(83, 23); | ||||
| 			this->button3->TabIndex = 22; | ||||
| 			this->button3->Text = L"Check pos"; | ||||
| 			this->button3->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// accordanceBox | ||||
| 			//  | ||||
| 			this->accordanceBox->Enabled = false; | ||||
| 			this->accordanceBox->Location = System::Drawing::Point(696, 401); | ||||
| 			this->accordanceBox->Name = L"accordanceBox"; | ||||
| 			this->accordanceBox->Size = System::Drawing::Size(115, 20); | ||||
| 			this->accordanceBox->TabIndex = 20; | ||||
| 			this->accordanceBox->Text = L"0/0"; | ||||
| 			//  | ||||
| 			// button4 | ||||
| 			//  | ||||
| 			this->button4->Location = System::Drawing::Point(592, 496); | ||||
| 			this->button4->Name = L"button4"; | ||||
| 			this->button4->Size = System::Drawing::Size(83, 23); | ||||
| 			this->button4->TabIndex = 23; | ||||
| 			this->button4->Text = L"Previous pic"; | ||||
| 			this->button4->UseVisualStyleBackColor = true; | ||||
| 			this->button4->Click += gcnew System::EventHandler(this, &Wpasujbud::button4_Click); | ||||
| 			//  | ||||
| 			// inaccuracy | ||||
| 			//  | ||||
| 			this->inaccuracy->Location = System::Drawing::Point(592, 401); | ||||
| 			this->inaccuracy->Name = L"inaccuracy"; | ||||
| 			this->inaccuracy->Size = System::Drawing::Size(98, 20); | ||||
| 			this->inaccuracy->TabIndex = 20; | ||||
| 			this->inaccuracy->Text = L"5"; | ||||
| 			this->inaccuracy->TextChanged += gcnew System::EventHandler(this, &Wpasujbud::inaccuracy_TextChanged); | ||||
| 			//  | ||||
| 			// label13 | ||||
| 			//  | ||||
| 			this->label13->AutoSize = true; | ||||
| 			this->label13->Location = System::Drawing::Point(587, 385); | ||||
| 			this->label13->Name = L"label13"; | ||||
| 			this->label13->Size = System::Drawing::Size(88, 13); | ||||
| 			this->label13->TabIndex = 21; | ||||
| 			this->label13->Text = L"Inaccuracy level:"; | ||||
| 			//  | ||||
| 			// save | ||||
| 			//  | ||||
| 			this->save->Location = System::Drawing::Point(681, 497); | ||||
| 			this->save->Name = L"save"; | ||||
| 			this->save->Size = System::Drawing::Size(48, 23); | ||||
| 			this->save->TabIndex = 24; | ||||
| 			this->save->Text = L"Save"; | ||||
| 			this->save->UseVisualStyleBackColor = true; | ||||
| 			this->save->Click += gcnew System::EventHandler(this, &Wpasujbud::save_Click); | ||||
| 			//  | ||||
| 			// radioButton3 | ||||
| 			//  | ||||
| 			this->radioButton3->AutoSize = true; | ||||
| 			this->radioButton3->Location = System::Drawing::Point(185, 531); | ||||
| 			this->radioButton3->Name = L"radioButton3"; | ||||
| 			this->radioButton3->Size = System::Drawing::Size(114, 17); | ||||
| 			this->radioButton3->TabIndex = 3; | ||||
| 			this->radioButton3->Text = L"Bottom right corner"; | ||||
| 			this->radioButton3->UseVisualStyleBackColor = true; | ||||
| 			//  | ||||
| 			// dataview | ||||
| 			//  | ||||
| 			this->dataview->Location = System::Drawing::Point(449, 528); | ||||
| 			this->dataview->Name = L"dataview"; | ||||
| 			this->dataview->Size = System::Drawing::Size(135, 21); | ||||
| 			this->dataview->TabIndex = 25; | ||||
| 			this->dataview->Text = L"Data view/edition"; | ||||
| 			this->dataview->UseVisualStyleBackColor = true; | ||||
| 			this->dataview->Click += gcnew System::EventHandler(this, &Wpasujbud::dataview_Click); | ||||
| 			//  | ||||
| 			// label9 | ||||
| 			//  | ||||
| 			this->label9->AutoSize = true; | ||||
| 			this->label9->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label9->Location = System::Drawing::Point(722, 523); | ||||
| 			this->label9->Name = L"label9"; | ||||
| 			this->label9->Size = System::Drawing::Size(99, 15); | ||||
| 			this->label9->TabIndex = 26; | ||||
| 			this->label9->Text = L"By VCMI Team"; | ||||
| 			//  | ||||
| 			// label14 | ||||
| 			//  | ||||
| 			this->label14->AutoSize = true; | ||||
| 			this->label14->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,  | ||||
| 				static_cast<System::Byte>(238))); | ||||
| 			this->label14->Location = System::Drawing::Point(742, 538); | ||||
| 			this->label14->Name = L"label14"; | ||||
| 			this->label14->Size = System::Drawing::Size(53, 15); | ||||
| 			this->label14->TabIndex = 27; | ||||
| 			this->label14->Text = L"� 2008"; | ||||
| 			//  | ||||
| 			// Wpasujbud | ||||
| 			//  | ||||
| 			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); | ||||
| 			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; | ||||
| 			this->ClientSize = System::Drawing::Size(823, 554); | ||||
| 			this->Controls->Add(this->label14); | ||||
| 			this->Controls->Add(this->label9); | ||||
| 			this->Controls->Add(this->dataview); | ||||
| 			this->Controls->Add(this->save); | ||||
| 			this->Controls->Add(this->button4); | ||||
| 			this->Controls->Add(this->button3); | ||||
| 			this->Controls->Add(this->label13); | ||||
| 			this->Controls->Add(this->label12); | ||||
| 			this->Controls->Add(this->inaccuracy); | ||||
| 			this->Controls->Add(this->accordanceBox); | ||||
| 			this->Controls->Add(this->confirm); | ||||
| 			this->Controls->Add(this->label11); | ||||
| 			this->Controls->Add(this->foundedCoords); | ||||
| 			this->Controls->Add(this->button1); | ||||
| 			this->Controls->Add(this->browseForbmpfol); | ||||
| 			this->Controls->Add(this->browseForBg); | ||||
| 			this->Controls->Add(this->radious); | ||||
| 			this->Controls->Add(this->setBackground); | ||||
| 			this->Controls->Add(this->startLocating); | ||||
| 			this->Controls->Add(this->searchBitmaps); | ||||
| 			this->Controls->Add(this->label6); | ||||
| 			this->Controls->Add(this->bitmapList); | ||||
| 			this->Controls->Add(this->label4); | ||||
| 			this->Controls->Add(this->label3); | ||||
| 			this->Controls->Add(this->townID); | ||||
| 			this->Controls->Add(this->buildingType); | ||||
| 			this->Controls->Add(this->label8); | ||||
| 			this->Controls->Add(this->label7); | ||||
| 			this->Controls->Add(this->label10); | ||||
| 			this->Controls->Add(this->label5); | ||||
| 			this->Controls->Add(this->label2); | ||||
| 			this->Controls->Add(this->bitmapsFolder); | ||||
| 			this->Controls->Add(this->townBgPath); | ||||
| 			this->Controls->Add(this->bmpPattern); | ||||
| 			this->Controls->Add(this->koordy); | ||||
| 			this->Controls->Add(this->radioButton3); | ||||
| 			this->Controls->Add(this->radioButton2); | ||||
| 			this->Controls->Add(this->radioButton1); | ||||
| 			this->Controls->Add(this->label1); | ||||
| 			this->Controls->Add(this->buildingImg); | ||||
| 			this->Controls->Add(this->townBg); | ||||
| 			this->MaximizeBox = false; | ||||
| 			this->Name = L"Wpasujbud"; | ||||
| 			this->Text = L"Cudowny wpasowywacz 1.00"; | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->townBg))->EndInit(); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->buildingImg))->EndInit(); | ||||
| 			this->ResumeLayout(false); | ||||
| 			this->PerformLayout(); | ||||
|  | ||||
| 		} | ||||
| #pragma endregion | ||||
| 	private:  | ||||
| 		System::Void searchBitmaps_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void startLocating_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void setBackground_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void openFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) ; | ||||
| 		System::Void browseForBg_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void browseForbmpfol_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void bitmapList_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void townBg_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void button1_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void inaccuracy_TextChanged(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void confirm_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void button4_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 previousPicture(); | ||||
| 		 } | ||||
| 		System::Void save_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void buildingImg_Click(System::Object^  sender, System::EventArgs^  e); | ||||
| 		System::Void dataview_Click(System::Object^  sender, System::EventArgs^  e); | ||||
|  | ||||
| }; | ||||
|  | ||||
| } | ||||
|  | ||||
| @@ -1,44 +0,0 @@ | ||||
| 0	Mage guild 1 | ||||
| 1	Mage guild 2 | ||||
| 2	Mage guild 3 | ||||
| 3	Mage guild 4 | ||||
| 4	Mage guild 5 | ||||
| 5	tavern | ||||
| 6	shipyard when it's present:)) | ||||
| 7	fort | ||||
| 8	citadel | ||||
| 9	castle | ||||
| 10	village hall | ||||
| 11	town hall | ||||
| 12	city hall | ||||
| 13	capitol | ||||
| 14	marketplace | ||||
| 15	resource silo | ||||
| 16	blacksmith | ||||
| 17	lighthouse(0) mystic pond(1) artifact merchants(2,5,8) veil of darkness(4) escape tunnel(6) cage of warlords(7) | ||||
| 18	horde buildings for non-upgraded creatures: Griffins, dwarves, stone gargoyles, imps, skeletons, troglodytes, goblins, gnolls, pixies. | ||||
| 19	horde buildings for upgraded creatures Royal griffins, battle dwarves, obsidian gargoyles, familiars, skeleton warriors, infernal troglodytes, hobgoblins, gnoll marauders, sprites | ||||
| 20	Ship at the Shipyard | ||||
| 21	stables(0) fountain of fortune(1) lookout tower(2) brimstone clouds(3) necromancy amplifier(4) mana vortex(5) freelancer's guild(6) glyphs of fear(7) magic university(8) | ||||
| 22	brotherhood of sword(0) dwarven treasury(1) library(2) castle gates(3) skeleton transformer(4) portal of summoning(5) ballista yard(6) blood obelisk(7) | ||||
| 23	wall of Knowledge.(2) order of fire(3) academy of battle scholars(5) hall of valhalla(6) | ||||
| 24	horde buildings for non-upgraded creatures: dendroid guards, hell hounds | ||||
| 25	horde buildings for upgraded creatures: Dendroid soldiers, Cerberi | ||||
| 26	Grail | ||||
| 27	Houses near city hall | ||||
| 28	Houses near municipal | ||||
| 29	Houses near Capitol | ||||
| 30	dwelling 1 | ||||
| 31	dwelling 2 | ||||
| 32	dwelling 3 | ||||
| 33	dwelling 4 | ||||
| 34	dwelling 5 | ||||
| 35	dwelling 6 | ||||
| 36	dwelling 7 | ||||
| 37	upgraded dwelling 1 | ||||
| 38	upgraded dwelling 2 | ||||
| 39	upgraded dwelling 3 | ||||
| 40	upgraded dwelling 4 | ||||
| 41	upgraded dwelling 5 | ||||
| 42	upgraded dwelling 6 | ||||
| 43	upgraded dwelling 7 | ||||
| @@ -1,9 +0,0 @@ | ||||
| Castle | ||||
| Rampart | ||||
| Tower | ||||
| Inferno | ||||
| Necropolis | ||||
| Dungeon | ||||
| Stronghold | ||||
| Fortress | ||||
| Conflux | ||||
| @@ -1,12 +0,0 @@ | ||||
| #pragma once | ||||
| public ref class CBuildingData | ||||
| { | ||||
| public: | ||||
| 	System::String^ defname; | ||||
| 	System::Int32 ID, x, y; | ||||
| 	System::Int32 townID; | ||||
| 	virtual System::String^ ToString()override | ||||
| 	{ | ||||
| 		return townID.ToString() + L" " + ID.ToString() + L" " +  defname + L" " +  x.ToString() + L" " +  y.ToString() + L"\n"; | ||||
| 	} | ||||
| };   | ||||
| @@ -1,2 +0,0 @@ | ||||
| #include "dataEditor.h" | ||||
|  | ||||
| @@ -1,209 +0,0 @@ | ||||
| #pragma once | ||||
| #include "data.h" | ||||
| #include <cliext/vector>  | ||||
| using namespace System; | ||||
| using namespace System::ComponentModel; | ||||
| using namespace System::Collections; | ||||
| using namespace System::Windows::Forms; | ||||
| using namespace System::Data; | ||||
| using namespace System::Drawing; | ||||
|  | ||||
|  | ||||
| namespace Wpasuj { | ||||
|  | ||||
| 	/// <summary> | ||||
| 	/// Summary for dataEditor | ||||
| 	/// | ||||
| 	/// WARNING: If you change the name of this class, you will need to change the | ||||
| 	///          'Resource File Name' property for the managed resource compiler tool | ||||
| 	///          associated with all .resx files this class depends on.  Otherwise, | ||||
| 	///          the designers will not be able to interact properly with localized | ||||
| 	///          resources associated with this form. | ||||
| 	/// </summary> | ||||
| 	public ref class dataEditor : public System::Windows::Forms::Form | ||||
| 	{ | ||||
| 	public: | ||||
| 		dataEditor(cliext::vector<CBuildingData^> ^Data) | ||||
| 		{ | ||||
| 			data = Data; | ||||
| 			InitializeComponent(); | ||||
| 			dataGridView1->Rows->Add(data->size()); | ||||
| 			for (int i=0;i<data->size();i++) | ||||
| 			{ | ||||
| 				dataGridView1->Rows[i]->Cells[0]->Value = data->at(i)->townID; | ||||
| 				dataGridView1->Rows[i]->Cells[1]->Value = data->at(i)->ID; | ||||
| 				dataGridView1->Rows[i]->Cells[2]->Value = data->at(i)->defname; | ||||
| 				dataGridView1->Rows[i]->Cells[3]->Value = data->at(i)->x; | ||||
| 				dataGridView1->Rows[i]->Cells[4]->Value = data->at(i)->y; | ||||
| 			} | ||||
| 		} | ||||
| 	private: System::Windows::Forms::DataGridViewTextBoxColumn^  townid; | ||||
| 	public:  | ||||
| 	private: System::Windows::Forms::DataGridViewTextBoxColumn^  buildingID; | ||||
| 	private: System::Windows::Forms::DataGridViewTextBoxColumn^  defname; | ||||
| 	private: System::Windows::Forms::DataGridViewTextBoxColumn^  x; | ||||
| 	private: System::Windows::Forms::DataGridViewTextBoxColumn^  y; | ||||
| 	private: System::Windows::Forms::Button^  save; | ||||
| 	private: System::Windows::Forms::Button^  clear; | ||||
| 	private: System::Windows::Forms::Button^  close; | ||||
| 	private: | ||||
|  | ||||
| 		cliext::vector<CBuildingData^> ^data; | ||||
| 	protected: | ||||
| 		/// <summary> | ||||
| 		/// Clean up any resources being used. | ||||
| 		/// </summary> | ||||
| 		~dataEditor() | ||||
| 		{ | ||||
| 			if (components) | ||||
| 			{ | ||||
| 				delete components; | ||||
| 			} | ||||
| 		} | ||||
| 	private: System::Windows::Forms::DataGridView^  dataGridView1; | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| 	protected:  | ||||
|  | ||||
| 	protected:  | ||||
|  | ||||
| 	private: | ||||
| 		/// <summary> | ||||
| 		/// Required designer variable. | ||||
| 		/// </summary> | ||||
| 		System::ComponentModel::Container ^components; | ||||
|  | ||||
| #pragma region Windows Form Designer generated code | ||||
| 		/// <summary> | ||||
| 		/// Required method for Designer support - do not modify | ||||
| 		/// the contents of this method with the code editor. | ||||
| 		/// </summary> | ||||
| 		void InitializeComponent(void) | ||||
| 		{ | ||||
| 			this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView()); | ||||
| 			this->townid = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); | ||||
| 			this->buildingID = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); | ||||
| 			this->defname = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); | ||||
| 			this->x = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); | ||||
| 			this->y = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); | ||||
| 			this->save = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->clear = (gcnew System::Windows::Forms::Button()); | ||||
| 			this->close = (gcnew System::Windows::Forms::Button()); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->BeginInit(); | ||||
| 			this->SuspendLayout(); | ||||
| 			//  | ||||
| 			// dataGridView1 | ||||
| 			//  | ||||
| 			this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; | ||||
| 			this->dataGridView1->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^  >(5) {this->townid,  | ||||
| 				this->buildingID, this->defname, this->x, this->y}); | ||||
| 			this->dataGridView1->Location = System::Drawing::Point(12, 12); | ||||
| 			this->dataGridView1->Name = L"dataGridView1"; | ||||
| 			this->dataGridView1->Size = System::Drawing::Size(334, 276); | ||||
| 			this->dataGridView1->TabIndex = 0; | ||||
| 			//  | ||||
| 			// townid | ||||
| 			//  | ||||
| 			this->townid->HeaderText = L"Town ID"; | ||||
| 			this->townid->Name = L"townid"; | ||||
| 			this->townid->Width = 50; | ||||
| 			//  | ||||
| 			// buildingID | ||||
| 			//  | ||||
| 			this->buildingID->HeaderText = L"Building ID"; | ||||
| 			this->buildingID->Name = L"buildingID"; | ||||
| 			this->buildingID->Width = 60; | ||||
| 			//  | ||||
| 			// defname | ||||
| 			//  | ||||
| 			this->defname->HeaderText = L"Def name"; | ||||
| 			this->defname->Name = L"defname"; | ||||
| 			this->defname->Width = 120; | ||||
| 			//  | ||||
| 			// x | ||||
| 			//  | ||||
| 			this->x->HeaderText = L"X"; | ||||
| 			this->x->Name = L"x"; | ||||
| 			this->x->Width = 30; | ||||
| 			//  | ||||
| 			// y | ||||
| 			//  | ||||
| 			this->y->HeaderText = L"Y"; | ||||
| 			this->y->Name = L"y"; | ||||
| 			this->y->Width = 30; | ||||
| 			//  | ||||
| 			// save | ||||
| 			//  | ||||
| 			this->save->Location = System::Drawing::Point(12, 294); | ||||
| 			this->save->Name = L"save"; | ||||
| 			this->save->Size = System::Drawing::Size(105, 23); | ||||
| 			this->save->TabIndex = 1; | ||||
| 			this->save->Text = L"Save changes"; | ||||
| 			this->save->UseVisualStyleBackColor = true; | ||||
| 			this->save->Click += gcnew System::EventHandler(this, &dataEditor::save_Click); | ||||
| 			//  | ||||
| 			// clear | ||||
| 			//  | ||||
| 			this->clear->Location = System::Drawing::Point(248, 294); | ||||
| 			this->clear->Name = L"clear"; | ||||
| 			this->clear->Size = System::Drawing::Size(96, 23); | ||||
| 			this->clear->TabIndex = 2; | ||||
| 			this->clear->Text = L"Clear changes"; | ||||
| 			this->clear->UseVisualStyleBackColor = true; | ||||
| 			this->clear->Click += gcnew System::EventHandler(this, &dataEditor::clear_Click); | ||||
| 			//  | ||||
| 			// close | ||||
| 			//  | ||||
| 			this->close->Location = System::Drawing::Point(123, 294); | ||||
| 			this->close->Name = L"close"; | ||||
| 			this->close->Size = System::Drawing::Size(119, 23); | ||||
| 			this->close->TabIndex = 3; | ||||
| 			this->close->Text = L"Close"; | ||||
| 			this->close->UseVisualStyleBackColor = true; | ||||
| 			this->close->Click += gcnew System::EventHandler(this, &dataEditor::close_Click); | ||||
| 			//  | ||||
| 			// dataEditor | ||||
| 			//  | ||||
| 			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); | ||||
| 			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; | ||||
| 			this->ClientSize = System::Drawing::Size(356, 328); | ||||
| 			this->Controls->Add(this->close); | ||||
| 			this->Controls->Add(this->clear); | ||||
| 			this->Controls->Add(this->save); | ||||
| 			this->Controls->Add(this->dataGridView1); | ||||
| 			this->Name = L"dataEditor"; | ||||
| 			this->Text = L"dataEditor"; | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->EndInit(); | ||||
| 			this->ResumeLayout(false); | ||||
|  | ||||
| 		} | ||||
| #pragma endregion | ||||
|  | ||||
| 	private: System::Void clear_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 				for (int i=0;i<data->size();i++) | ||||
| 				{ | ||||
| 					dataGridView1->Rows[i]->Cells[0]->Value = data->at(i)->townID; | ||||
| 					dataGridView1->Rows[i]->Cells[1]->Value = data->at(i)->ID; | ||||
| 					dataGridView1->Rows[i]->Cells[2]->Value = data->at(i)->defname; | ||||
| 					dataGridView1->Rows[i]->Cells[3]->Value = data->at(i)->x; | ||||
| 					dataGridView1->Rows[i]->Cells[4]->Value = data->at(i)->y; | ||||
| 				} | ||||
| 			} | ||||
| private: System::Void close_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 			 Close(); | ||||
| 		 } | ||||
| private: System::Void save_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 				for (int i=0;i<data->size();i++) | ||||
| 				{ | ||||
| 					data->at(i)->townID =  Convert::ToInt32( static_cast<String^>(dataGridView1->Rows[i]->Cells[0]->Value)); | ||||
| 					data->at(i)->ID = Convert::ToInt32( static_cast<String^>(dataGridView1->Rows[i]->Cells[1]->Value)); | ||||
| 					data->at(i)->defname =  static_cast<String^>(dataGridView1->Rows[i]->Cells[2]->Value); | ||||
| 					data->at(i)->x = Convert::ToInt32( static_cast<String^>(dataGridView1->Rows[i]->Cells[3]->Value)); | ||||
| 					data->at(i)->y = Convert::ToInt32( static_cast<String^>(dataGridView1->Rows[i]->Cells[4]->Value)); | ||||
| 				} | ||||
| 		 } | ||||
| }; | ||||
| } | ||||
| @@ -1,2 +0,0 @@ | ||||
| #include "obrazek.h" | ||||
|  | ||||
| @@ -1,121 +0,0 @@ | ||||
| #pragma once | ||||
|  | ||||
| using namespace System; | ||||
| using namespace System::ComponentModel; | ||||
| using namespace System::Collections; | ||||
| using namespace System::Windows::Forms; | ||||
| using namespace System::Data; | ||||
| using namespace System::Drawing; | ||||
|  | ||||
|  | ||||
| namespace Wpasuj { | ||||
|  | ||||
| 	/// <summary> | ||||
| 	/// Summary for obrazek | ||||
| 	/// | ||||
| 	/// WARNING: If you change the name of this class, you will need to change the | ||||
| 	///          'Resource File Name' property for the managed resource compiler tool | ||||
| 	///          associated with all .resx files this class depends on.  Otherwise, | ||||
| 	///          the designers will not be able to interact properly with localized | ||||
| 	///          resources associated with this form. | ||||
| 	/// </summary> | ||||
| 	public ref class obrazek : public System::Windows::Forms::Form | ||||
| 	{ | ||||
| 	public: | ||||
| 		obrazek(System::Drawing::Image^ img) | ||||
| 		{ | ||||
| 			InitializeComponent(img); | ||||
| 		} | ||||
|  | ||||
| 	protected: | ||||
| 		/// <summary> | ||||
| 		/// Clean up any resources being used. | ||||
| 		/// </summary> | ||||
| 		~obrazek() | ||||
| 		{ | ||||
| 			if (components) | ||||
| 			{ | ||||
| 				delete components; | ||||
| 			} | ||||
| 		} | ||||
| 	private: System::Windows::Forms::PictureBox^  pictureBox1; | ||||
| 	private: System::Windows::Forms::TrackBar^  trackBar1; | ||||
| 	private: System::Windows::Forms::Label^  Transparency; | ||||
| 	protected:  | ||||
|  | ||||
| 	private: | ||||
| 		/// <summary> | ||||
| 		/// Required designer variable. | ||||
| 		/// </summary> | ||||
| 		System::ComponentModel::Container ^components; | ||||
|  | ||||
| #pragma region Windows Form Designer generated code | ||||
| 		/// <summary> | ||||
| 		/// Required method for Designer support - do not modify | ||||
| 		/// the contents of this method with the code editor. | ||||
| 		/// </summary> | ||||
| 		void InitializeComponent(System::Drawing::Image^ img) | ||||
| 		{ | ||||
| 			this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox()); | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit(); | ||||
| 			this->SuspendLayout(); | ||||
| 			//  | ||||
| 			// pictureBox1 | ||||
| 			//  | ||||
| 			this->pictureBox1->Location = System::Drawing::Point(12, 12); | ||||
| 			this->pictureBox1->Name = L"pictureBox1"; | ||||
| 			this->pictureBox1->Size = System::Drawing::Size(img->Width,img->Height);//(268, 242); | ||||
| 			this->pictureBox1->TabIndex = 0; | ||||
| 			this->pictureBox1->TabStop = false; | ||||
| 			this->pictureBox1->Image = img; | ||||
| 			this->pictureBox1->Click += gcnew System::EventHandler(this,&obrazek::obrazek_Click); | ||||
|  | ||||
|  | ||||
| 			 | ||||
| 			this->Transparency = (gcnew System::Windows::Forms::Label()); | ||||
| 			this->Transparency->AutoSize = true; | ||||
| 			this->Transparency->Location = System::Drawing::Point(12, img->Height+70); | ||||
| 			this->Transparency->Name = L"label13"; | ||||
| 			this->Transparency->Size = System::Drawing::Size(110, 13); | ||||
| 			this->Transparency->TabIndex = 21; | ||||
| 			this->Transparency->Text = L"Window transparency"; | ||||
|  | ||||
|  | ||||
| 			this->trackBar1 = (gcnew System::Windows::Forms::TrackBar()); | ||||
| 			this->trackBar1->Location = System::Drawing::Point(12, img->Height+24); | ||||
| 			this->trackBar1->Name = L"trackBar1"; | ||||
| 			this->trackBar1->Size = System::Drawing::Size(img->Width, 45); | ||||
| 			this->trackBar1->TabIndex = 26; | ||||
| 			this->trackBar1->Minimum = 0; | ||||
| 			this->trackBar1->Maximum = 255; | ||||
| 			this->trackBar1->Value = 255; | ||||
| 			this->trackBar1->TickFrequency=1; | ||||
| 			this->trackBar1->ValueChanged += gcnew System::EventHandler(this,&obrazek::suwakiemRuszono); | ||||
|  | ||||
| 			//  | ||||
| 			// obrazek | ||||
| 			//  | ||||
| 			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); | ||||
| 			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; | ||||
| 			this->ClientSize = System::Drawing::Size(img->Width+24,img->Height+94);//(292, 266); | ||||
| 			this->Controls->Add(this->pictureBox1); | ||||
| 			this->Controls->Add(this->trackBar1); | ||||
| 			this->Controls->Add(this->Transparency); | ||||
| 			this->Click += gcnew System::EventHandler(this,&obrazek::obrazek_Click); | ||||
| 			this->Name = L"obrazek"; | ||||
| 			this->Text = L"Picture window"; | ||||
| 			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit(); | ||||
| 			this->ResumeLayout(false); | ||||
|  | ||||
|  | ||||
| 		} | ||||
| #pragma endregion | ||||
|  | ||||
| 	private: System::Void obrazek_Click(System::Object^  sender, System::EventArgs^  e) { | ||||
| 				Close(); | ||||
| 			 } | ||||
| 	private: System::Void suwakiemRuszono(System::Object^  sender, System::EventArgs^  e) { | ||||
| 				 Opacity = trackBar1->Value/((double)255); | ||||
| 			 } | ||||
| 	}; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user