mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Wczytywanie kilku dodatkowych tekstów, zamykanie strumieni plikowych, naprawienie drobnego błędu w czytaniu nagłówka mapy.
This commit is contained in:
		| @@ -21,6 +21,7 @@ void CAbilityHandler::loadAbilities() | ||||
| 		base = std::string(tab); | ||||
| 		if(base.size()<2) //ended, but some rubbish could still stay end we have something useless | ||||
| 		{ | ||||
| 			inp.close(); | ||||
| 			return; //add counter | ||||
| 		} | ||||
| 		while(base[iit]!='\t') | ||||
|   | ||||
| @@ -23,6 +23,7 @@ CAmbarCendamo::CAmbarCendamo (const char * tie) | ||||
| 	is->seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	bufor = new unsigned char[andame]; // allocate memory  | ||||
| 	is->read((char*)bufor, andame); // read map file to buffer | ||||
| 	is->close(); | ||||
| 	delete is; | ||||
| } | ||||
| CAmbarCendamo::~CAmbarCendamo ()  | ||||
| @@ -41,6 +42,7 @@ void CAmbarCendamo::teceDef() | ||||
| 		{ | ||||
| 			(*of) << map.defy[i].bytes[j]<<std::endl; | ||||
| 		} | ||||
| 		of->close(); | ||||
| 		delete of; | ||||
| 	} | ||||
| } | ||||
| @@ -48,7 +50,7 @@ void CAmbarCendamo::deh3m() | ||||
| { | ||||
| 	THC timeHandler th; | ||||
| 	map.version = (Eformat)bufor[0]; //wersja mapy | ||||
| 	map.areAnyPLayers = bufor[4]; | ||||
| 	map.areAnyPLayers = bufor[4]; //invalid on some maps | ||||
| 	map.height = map.width = bufor[5]; // wymiary mapy | ||||
| 	map.twoLevel = bufor[9]; //czy sa lochy | ||||
| 	map.terrain = new TerrainTile*[map.width]; // allocate memory  | ||||
| @@ -74,7 +76,7 @@ void CAmbarCendamo::deh3m() | ||||
| 	{ | ||||
| 		map.players[pom].canHumanPlay = bufor[i++]; | ||||
| 		map.players[pom].canComputerPlay = bufor[i++]; | ||||
| 		if ((!(map.players[pom].canHumanPlay || map.players[pom].canComputerPlay)) || (!map.areAnyPLayers)) | ||||
| 		if ((!(map.players[pom].canHumanPlay || map.players[pom].canComputerPlay))) | ||||
| 		{ | ||||
| 			i+=13; | ||||
| 			continue; | ||||
|   | ||||
| @@ -9,6 +9,7 @@ void CBuildingHandler::loadBuildings() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i=0; //buf iterator | ||||
| @@ -260,6 +261,7 @@ void CBuildingHandler::loadNames() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i=0; //buf iterator | ||||
| @@ -523,6 +525,7 @@ void CBuildingHandler::loadNeutNames() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i=0; //buf iterator | ||||
| @@ -646,6 +649,7 @@ void CBuildingHandler::loadDwellingNames() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i = 0; //buf iterator | ||||
|   | ||||
| @@ -272,6 +272,7 @@ void CCreatureHandler::loadAnimationInfo() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i=0; //buf iterator | ||||
|   | ||||
| @@ -25,6 +25,7 @@ void CHeroHandler::loadHeroes() | ||||
| 			loadSpecialAbilities(); | ||||
| 			loadBiographies(); | ||||
| 			loadHeroClasses(); | ||||
| 			inp.close(); | ||||
| 			return; | ||||
| 		} | ||||
| 		while(base[iit]!='\t') | ||||
| @@ -128,6 +129,7 @@ void CHeroHandler::loadSpecialAbilities() | ||||
| 		base = std::string(tab); | ||||
| 		if(base.size()<2) //ended, but some rubbish could still stay end we have something useless | ||||
| 		{ | ||||
| 			inp.close(); | ||||
| 			return; //add counter | ||||
| 		} | ||||
| 		while(base[iit]!='\t') | ||||
| @@ -162,6 +164,7 @@ void CHeroHandler::loadSpecialAbilities() | ||||
| 		++whHero; | ||||
| 		delete [500] tab; | ||||
| 	} | ||||
| 	inp.close(); | ||||
| } | ||||
|  | ||||
| void CHeroHandler::loadBiographies() | ||||
| @@ -172,6 +175,7 @@ void CHeroHandler::loadBiographies() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i = 0; //buf iterator | ||||
| @@ -196,6 +200,7 @@ void CHeroHandler::loadHeroClasses() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i = 0; //buf iterator | ||||
|   | ||||
							
								
								
									
										2
									
								
								CMT.cpp
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								CMT.cpp
									
									
									
									
									
								
							| @@ -280,7 +280,7 @@ int _tmain(int argc, _TCHAR* argv[]) | ||||
| 		CObjectHandler * objh = new CObjectHandler; | ||||
| 		objh->loadObjects(); | ||||
| 		cgi->objh = objh; | ||||
| 		CAmbarCendamo * ac = new CAmbarCendamo("Arrogance"); //4gryf | ||||
| 		CAmbarCendamo * ac = new CAmbarCendamo("Cave of Gerfrex"); //4gryf | ||||
| 		CMapHeader * mmhh = new CMapHeader(ac->bufor); //czytanie nag��wka | ||||
| 		cgi->ac = ac; | ||||
| 		THC std::cout<<"Wczytywanie pliku: "<<tmh.getDif()<<std::endl; | ||||
|   | ||||
| @@ -9,6 +9,7 @@ void CObjectHandler::loadObjects() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i = 0; //buf iterator | ||||
|   | ||||
| @@ -348,6 +348,7 @@ void CPreGame::showAskBox (std::string data, void(*f1)(),void(*f2)()) | ||||
| 	delete cmh; | ||||
| 	delete przyciski; | ||||
| 	delete btnspos; | ||||
|  | ||||
| } | ||||
| void CPreGame::hideBox () | ||||
| { | ||||
|   | ||||
| @@ -27,6 +27,7 @@ void CPreGameTextHandler::loadTexts() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i=0; //buf iterator | ||||
| @@ -395,6 +396,34 @@ void CPreGameTextHandler::loadTexts() | ||||
| 	loadToIt(singleStartingTownHeaderWConfluxID, buf, i, 0); | ||||
| 	loadToIt(singleStartingHeroHeaderID, buf, i, 0); | ||||
| 	loadToIt(singleStartingBonusHeaderID, buf, i, 0); | ||||
|  | ||||
| 	hmcr = 0; | ||||
| 	for(i; i<andame; ++i) | ||||
| 	{ | ||||
| 		if(buf[i]=='\r') | ||||
| 			++hmcr; | ||||
| 		if(hmcr==3) | ||||
| 			break; | ||||
| 	} | ||||
| 	i+=2; | ||||
|  | ||||
| 	loadToIt(multiOnlineService, buf, i, 0); | ||||
| 	loadToIt(multiHotSeat, buf, i, 0); | ||||
| 	loadToIt(multiIPX, buf, i, 0); | ||||
| 	loadToIt(multiTCPIP, buf, i, 0); | ||||
| 	loadToIt(multiModem, buf, i, 0); | ||||
| 	loadToIt(multiDirectConnection, buf, i, 0); | ||||
| 	loadToIt(multiHostGame, buf, i, 0); | ||||
| 	loadToIt(multiJoinGame, buf, i, 1); | ||||
| 	loadToIt(multiSearchGame, buf, i, 1); | ||||
| 	for(int vv=0; vv<12; ++vv) | ||||
| 	{ | ||||
| 		loadToIt(multiGameNo[vv], buf, i, 1); | ||||
| 	} | ||||
| 	loadToIt(multiScrollGames, buf, i, 1); | ||||
| 	std::string dump; | ||||
| 	loadToIt(dump, buf, i, 1); | ||||
| 	loadToIt(multiCancel, buf, i, 0); | ||||
| } | ||||
|  | ||||
| void CPreGameTextHandler::loadToIt(std::string &dest, std::string &src, int &iter, int mode) | ||||
|   | ||||
| @@ -25,6 +25,11 @@ public: | ||||
| 	std::string singleConstNComputerTeams[6]; | ||||
| 	std::string singleConstRandomComputerTeams, singleConstWaterLabel, singleConstNoWater, singleConstNormalWater, singleConstIslands, singleConstRandomWater, singleConstMonsterStrengthLabel, singleConstWeakMonsters, singleConstNormalMonsters, singleConstStrongMonsters, singleConstRandomMonsters, singleConstShowSavedRandomMaps, singleSliderChatWindow, singleSliderFileMenu, singleSliderDuration; | ||||
| 	std::string singlePlayerHandicapHeaderID, singleTurnDurationHeaderID, singleStartingTownHeaderID, singleStartingTownHeaderWConfluxID, singleStartingHeroHeaderID, singleStartingBonusHeaderID; | ||||
|  | ||||
| 	std::string multiOnlineService, multiHotSeat, multiIPX, multiTCPIP, multiModem, multiDirectConnection, multiHostGame, multiJoinGame, multiSearchGame; | ||||
| 	std::string multiGameNo [12]; | ||||
| 	std::string multiScrollGames, multiCancel; | ||||
|  | ||||
| 	std::string getTitle(std::string text); | ||||
| 	std::string getDescr(std::string text); | ||||
| 	void loadTexts(); | ||||
|   | ||||
| @@ -9,6 +9,7 @@ void CSpellHandler::loadSpells() | ||||
| 	inp.seekg(0,std::ios::beg); // wracamy na poczatek | ||||
| 	char * bufor = new char[andame]; // allocate memory  | ||||
| 	inp.read((char*)bufor, andame); // read map file to buffer | ||||
| 	inp.close(); | ||||
| 	std::string buf = std::string(bufor); | ||||
| 	delete [andame] bufor; | ||||
| 	int i=0; //buf iterator | ||||
|   | ||||
							
								
								
									
										4
									
								
								map.cpp
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								map.cpp
									
									
									
									
									
								
							| @@ -15,7 +15,7 @@ int readNormalNr (unsigned char * bufor, int pos, int bytCon = 4) | ||||
| CMapHeader::CMapHeader(unsigned char *map) | ||||
| { | ||||
| 	this->version = (Eformat)map[0]; //wersja mapy | ||||
| 	this->areAnyPLayers = map[4]; | ||||
| 	this->areAnyPLayers = map[4]; //seems to be invalid | ||||
| 	this->height = this->width = map[5]; // wymiary mapy | ||||
| 	this->twoLevel = map[9]; //czy sa lochy | ||||
| 	 | ||||
| @@ -33,7 +33,7 @@ CMapHeader::CMapHeader(unsigned char *map) | ||||
| 	{ | ||||
| 		this->players[pom].canHumanPlay = map[i++]; | ||||
| 		this->players[pom].canComputerPlay = map[i++]; | ||||
| 		if ((!(this->players[pom].canHumanPlay || this->players[pom].canComputerPlay)) || (!this->areAnyPLayers)) | ||||
| 		if ((!(this->players[pom].canHumanPlay || this->players[pom].canComputerPlay))) | ||||
| 		{ | ||||
| 			i+=13; | ||||
| 			continue; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user