#include "../stdafx.h" #include "../CGameInfo.h" #include "CDefHandler.h" #include "CCreatureHandler.h" #include "CLodHandler.h" #include #include #include #include #include #include "../SDL_Extensions.h" int CCreature::getQuantityID(int quantity) { if (quantity<5) return 0; if (quantity<10) return 1; if (quantity<20) return 2; if (quantity<50) return 3; if (quantity<100) return 4; if (quantity<250) return 5; if (quantity<500) return 5; if (quantity<1000) return 6; if (quantity<4000) return 7; return 8; } bool CCreature::isDoubleWide() { return boost::algorithm::find_first(abilityRefs, "DOUBLE_WIDE"); } bool CCreature::isFlying() { return boost::algorithm::find_first(abilityRefs, "FLYING_ARMY"); } int CCreature::maxAmount(const std::vector &res) const //how many creatures can be bought { int ret = 2147483645; int resAmnt = std::min(res.size(),cost.size()); for(int i=0;ibitmaph->getTextFile("ZCRTRAIT.TXT"); int andame = buf.size(); int i=0; //buf iterator int hmcr=0; for(i; i> tempi >> temps; if (tempi>=creatures.size()) break; boost::assign::insert(nameToID)(temps,tempi); creatures[tempi].nameRef=temps; } ifs.close(); ifs.clear(); for(int i=1;i<=10;i++) levelCreatures.insert(std::pair >(i,std::vector())); ifs.open("config/monsters.txt"); { while(!ifs.eof()) { int id, lvl; ifs >> id >> lvl; if(lvl>0) { creatures[id].level = lvl; levelCreatures[lvl].push_back(&(creatures[id])); } } } ifs.close(); ifs.clear(); ifs.open("config/cr_bgs.txt"); while(!ifs.eof()) { int id; std::string name; ifs >> id >> name; backgrounds[id]=CGI->bitmaph->loadBitmap(name); } ifs.close(); ifs.clear(); ifs.open("config/cr_factions.txt"); while(!ifs.eof()) { int id, fact; ifs >> id >> fact; creatures[id].faction = fact; } ifs.close(); ifs.clear(); ifs.open("config/cr_upgrade_list.txt"); while(!ifs.eof()) { int id, up; ifs >> id >> up; creatures[id].upgrades.insert(up); } ifs.close(); ifs.clear(); //loading 32x32px imgs CDefHandler *smi = CGI->spriteh->giveDef("CPRSMALL.DEF"); smi->notFreeImgs = true; for (int i=0; iourImages.size(); i++) { boost::assign::insert(smallImgs)(i-2,smi->ourImages[i].bitmap); } delete smi; smi = CGI->spriteh->giveDef("TWCRPORT.DEF"); smi->notFreeImgs = true; for (int i=0; iourImages.size(); i++) { boost::assign::insert(bigImgs)(i-2,smi->ourImages[i].bitmap); } delete smi; // //loading unit animation def names std::ifstream inp("config/CREDEFS.TXT", std::ios::in | std::ios::binary); //this file is not in lod inp.seekg(0,std::ios::end); // na koniec int andame2 = inp.tellg(); // read length inp.seekg(0,std::ios::beg); // wracamy na poczatek char * bufor = new char[andame2]; // allocate memory inp.read((char*)bufor, andame2); // read map file to buffer inp.close(); buf = std::string(bufor); delete [andame2] bufor; i = 0; //buf iterator hmcr = 0; for(i; ibitmaph->getTextFile("CRANIM.TXT"); int andame = buf.size(); int i=0; //buf iterator int hmcr=0; for(i; i