1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-11-24 08:32:34 +02:00
vcmi/CObjectHandler.cpp
mateuszb 8860f1dca2 * zaczytywanie biografii bohaterów
* zaczytywanie nazw obiektów (są z numerami)
* klasa na zamek, klasy na różne obiekty
* poprawka zaczytywania defów (teraz zaczytuje wszystkie)
* rozpoczęcie prac nad zaczytywaniem obiektów (zaczytuje już ich ilość)
* poprawki kodu związanego z wyświetlaniem mapy (już nie ucina paska od dołu i z prawej, za to jest irytujący czarny pasek na dole związny z niecałkowitym wynikiem dzielenia 600 przez 32)
* może jakieś inne pomniejsze zmiany
2007-06-11 17:21:27 +00:00

30 lines
829 B
C++

#include "CObjectHandler.h"
#include "stdafx.h"
void CObjectHandler::loadObjects()
{
std::ifstream inp("H3bitmap.lod\\OBJNAMES.TXT", std::ios::in | std::ios::binary);
inp.seekg(0,std::ios::end); // na koniec
int andame = inp.tellg(); // read length
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
std::string buf = std::string(bufor);
delete [andame] bufor;
int i = 0; //buf iterator
while(!inp.eof())
{
if(objects.size()>200 && buf.substr(i, buf.size()-i).find('\r')==std::string::npos)
break;
CObject nobj;
int befi=i;
for(i; i<andame; ++i)
{
if(buf[i]=='\r')
break;
}
nobj.name = buf.substr(befi, i-befi);
i+=2;
objects.push_back(nobj);
}
}