| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #include "../stdafx.h"
- #include "CPreGameTextHandler.h"
- #include "../CGameInfo.h"
- #include "CLodHandler.h"
- #include <boost/algorithm/string.hpp>
- #include <boost/algorithm/string/replace.hpp>
- std::string CPreGameTextHandler::getTitle(std::string text)
- {
- std::string ret;
- int i=0;
- while ((text[i++]!='{'));
- while ((text[i]!='}') && (i<text.length()))
- ret+=text[i++];
- return ret;
- }
- std::string CPreGameTextHandler::getDescr(std::string text)
- {
- std::string ret;
- int i=0;
- while ((text[i++]!='}'));
- i+=2;
- while ((text[i]!='"') && (i<text.length()))
- ret+=text[i++];
- return ret;
- }
- void CPreGameTextHandler::loadTexts()
- {
- std::string buf1 = CGI->bitmaph->getTextFile("ZELP.TXT");
- int itr=0, eol=-1, eolnext=-1, pom;
- eolnext = buf1.find_first_of('\r',itr);
- while(itr<buf1.size())
- {
- eol = eolnext; //end of this line
- eolnext = buf1.find_first_of('\r',eol+1); //end of the next line
- pom=buf1.find_first_of('\t',itr); //upcoming tab
- if(eol<0 || pom<0)
- break;
- if(pom>eol) //in current line there is not tab
- zelp.push_back(std::pair<std::string,std::string>());
- else
- {
- zelp.push_back
- (std::pair<std::string,std::string>
- (buf1.substr(itr,pom-itr),
- buf1.substr(pom+1,eol-pom-1)));
- boost::algorithm::replace_all(zelp[zelp.size()-1].first,"\t","");
- boost::algorithm::replace_all(zelp[zelp.size()-1].second,"\t","");
- }
- itr=eol+2;
- }
- std::string buf = CGI->bitmaph->getTextFile("VCDESC.TXT");
- int andame = buf.size();
- int i=0; //buf iterator
- for(int gg=0; gg<14; ++gg)
- {
- int befi=i;
- for(i; i<andame; ++i)
- {
- if(buf[i]=='\r')
- break;
- }
- victoryConditions[gg] = buf.substr(befi, i-befi);
- i+=2;
- }
- buf = CGI->bitmaph->getTextFile("LCDESC.TXT");
- andame = buf.size();
- i=0; //buf iterator
- for(int gg=0; gg<4; ++gg)
- {
- int befi=i;
- for(i; i<andame; ++i)
- {
- if(buf[i]=='\r')
- break;
- }
- lossCondtions[gg] = buf.substr(befi, i-befi);
- i+=2;
- }
- }
|