CPreGameTextHandler.cpp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  1. #include "stdafx.h"
  2. #include "CPreGameTextHandler.h"
  3. #include "../CGameInfo.h"
  4. #include "CLodHandler.h"
  5. std::string CPreGameTextHandler::getTitle(std::string text)
  6. {
  7. std::string ret;
  8. int i=0;
  9. while ((text[i++]!='{'));
  10. while ((text[i]!='}') && (i<text.length()))
  11. ret+=text[i++];
  12. return ret;
  13. }
  14. std::string CPreGameTextHandler::getDescr(std::string text)
  15. {
  16. std::string ret;
  17. int i=0;
  18. while ((text[i++]!='}'));
  19. i+=2;
  20. while ((text[i]!='"') && (i<text.length()))
  21. ret+=text[i++];
  22. return ret;
  23. }
  24. void CPreGameTextHandler::loadTexts()
  25. {
  26. std::string buf = CGameInfo::mainObj->bitmaph->getTextFile("ZELP.TXT");
  27. int i=0; //buf iterator
  28. int hmcr=0;
  29. for(i; i<buf.length(); ++i)
  30. {
  31. if(buf[i]=='\r')
  32. ++hmcr;
  33. if(hmcr==3)
  34. break;
  35. }
  36. i+=3;
  37. int befi=i;
  38. for(i; i<buf.length(); ++i)
  39. {
  40. if(buf[i]=='\t')
  41. break;
  42. }
  43. mainNewGame = buf.substr(befi, i-befi);
  44. ++i;
  45. hmcr = 0;
  46. for(i; i<buf.length(); ++i)
  47. {
  48. if(buf[i]=='\r')
  49. ++hmcr;
  50. if(hmcr==1)
  51. break;
  52. }
  53. i+=3;
  54. befi=i;
  55. for(i; i<buf.length(); ++i)
  56. {
  57. if(buf[i]=='\t')
  58. break;
  59. }
  60. mainLoadGame = buf.substr(befi, i-befi);
  61. ++i;
  62. hmcr = 0;
  63. for(i; i<buf.length(); ++i)
  64. {
  65. if(buf[i]=='\r')
  66. ++hmcr;
  67. if(hmcr==1)
  68. break;
  69. }
  70. i+=3;
  71. befi=i;
  72. for(i; i<buf.length(); ++i)
  73. {
  74. if(buf[i]=='\t')
  75. break;
  76. }
  77. mainHighScores = buf.substr(befi, i-befi);
  78. ++i;
  79. hmcr = 0;
  80. for(i; i<buf.length(); ++i)
  81. {
  82. if(buf[i]=='\r')
  83. ++hmcr;
  84. if(hmcr==1)
  85. break;
  86. }
  87. i+=3;
  88. befi=i;
  89. for(i; i<buf.length(); ++i)
  90. {
  91. if(buf[i]=='\t')
  92. break;
  93. }
  94. mainCredits = buf.substr(befi, i-befi);
  95. ++i;
  96. hmcr = 0;
  97. for(i; i<buf.length(); ++i)
  98. {
  99. if(buf[i]=='\r')
  100. ++hmcr;
  101. if(hmcr==1)
  102. break;
  103. }
  104. i+=3;
  105. befi=i;
  106. for(i; i<buf.length(); ++i)
  107. {
  108. if(buf[i]=='\t')
  109. break;
  110. }
  111. mainQuit = buf.substr(befi, i-befi);
  112. ++i;
  113. hmcr = 0;
  114. for(i; i<buf.length(); ++i)
  115. {
  116. if(buf[i]=='\r')
  117. ++hmcr;
  118. if(hmcr==3)
  119. break;
  120. }
  121. i+=3;
  122. befi=i;
  123. for(i; i<buf.length(); ++i)
  124. {
  125. if(buf[i]=='\t')
  126. break;
  127. }
  128. ngSingleScenario = buf.substr(befi, i-befi);
  129. ++i;
  130. hmcr = 0;
  131. for(i; i<buf.length(); ++i)
  132. {
  133. if(buf[i]=='\r')
  134. ++hmcr;
  135. if(hmcr==1)
  136. break;
  137. }
  138. i+=3;
  139. befi=i;
  140. for(i; i<buf.length(); ++i)
  141. {
  142. if(buf[i]=='\t')
  143. break;
  144. }
  145. ngCampain = buf.substr(befi, i-befi);
  146. ++i;
  147. hmcr = 0;
  148. for(i; i<buf.length(); ++i)
  149. {
  150. if(buf[i]=='\r')
  151. ++hmcr;
  152. if(hmcr==1)
  153. break;
  154. }
  155. i+=3;
  156. befi=i;
  157. for(i; i<buf.length(); ++i)
  158. {
  159. if(buf[i]=='\t')
  160. break;
  161. }
  162. ngMultiplayer = buf.substr(befi, i-befi);
  163. ++i;
  164. hmcr = 0;
  165. for(i; i<buf.length(); ++i)
  166. {
  167. if(buf[i]=='\r')
  168. ++hmcr;
  169. if(hmcr==1)
  170. break;
  171. }
  172. i+=3;
  173. befi=i;
  174. for(i; i<buf.length(); ++i)
  175. {
  176. if(buf[i]=='\t')
  177. break;
  178. }
  179. ngTutorial = buf.substr(befi, i-befi);
  180. ++i;
  181. hmcr = 0;
  182. for(i; i<buf.length(); ++i)
  183. {
  184. if(buf[i]=='\r')
  185. ++hmcr;
  186. if(hmcr==1)
  187. break;
  188. }
  189. i+=3;
  190. befi=i;
  191. for(i; i<buf.length(); ++i)
  192. {
  193. if(buf[i]=='\t')
  194. break;
  195. }
  196. ngBack = buf.substr(befi, i-befi);
  197. ++i;
  198. hmcr = 0;
  199. for(i; i<buf.length(); ++i)
  200. {
  201. if(buf[i]=='\r')
  202. ++hmcr;
  203. if(hmcr==4)
  204. break;
  205. }
  206. i+=2;
  207. loadToIt(singleChooseScenario, buf, i);
  208. loadToIt(singleSetAdvOptions, buf, i);
  209. loadToIt(singleRandomMap, buf, i);
  210. loadToIt(singleScenarioName, buf, i);
  211. loadToIt(singleDescriptionTitle, buf, i);
  212. loadToIt(singleDescriptionText, buf, i);
  213. loadToIt(singleEasy, buf, i);
  214. loadToIt(singleNormal, buf, i);
  215. loadToIt(singleHard, buf, i);
  216. loadToIt(singleExpert, buf, i);
  217. loadToIt(singleImpossible, buf, i);
  218. loadToIt(singleAllyFlag[0], buf, i);
  219. loadToIt(singleAllyFlag[1], buf, i);
  220. loadToIt(singleAllyFlag[2], buf, i);
  221. loadToIt(singleAllyFlag[3], buf, i, 1);
  222. loadToIt(singleAllyFlag[4], buf, i, 1);
  223. loadToIt(singleAllyFlag[5], buf, i, 1);
  224. loadToIt(singleAllyFlag[6], buf, i, 1);
  225. loadToIt(singleAllyFlag[7], buf, i, 1);
  226. loadToIt(singleEnemyFlag[0], buf, i, 1);
  227. loadToIt(singleEnemyFlag[1], buf, i, 1);
  228. loadToIt(singleEnemyFlag[2], buf, i, 1);
  229. loadToIt(singleEnemyFlag[3], buf, i, 1);
  230. loadToIt(singleEnemyFlag[4], buf, i, 1);
  231. loadToIt(singleEnemyFlag[5], buf, i, 1);
  232. loadToIt(singleEnemyFlag[6], buf, i, 1);
  233. loadToIt(singleEnemyFlag[7], buf, i, 1);
  234. loadToIt(singleViewHideScenarioList, buf, i, 1);
  235. loadToIt(singleViewHideAdvOptions, buf, i, 1);
  236. loadToIt(singlePlayRandom, buf, i, 1);
  237. loadToIt(singleChatDesc, buf, i, 1);
  238. loadToIt(singleMapDifficulty, buf, i, 1);
  239. loadToIt(singleRating, buf, i, 1);
  240. loadToIt(singleMapPossibleDifficulties, buf, i, 1);
  241. loadToIt(singleVicCon, buf, i, 1);
  242. loadToIt(singleLossCon, buf, i, 1);
  243. loadToIt(singleSFilter, buf, i, 1);
  244. loadToIt(singleMFilter, buf, i, 1);
  245. loadToIt(singleLFilter, buf, i, 1);
  246. loadToIt(singleXLFilter, buf, i, 1);
  247. loadToIt(singleAllFilter, buf, i, 1);
  248. for(int vv=0; vv<18; ++vv)
  249. {
  250. loadToIt(singleScenarioNameNr[vv], buf, i, 1);
  251. }
  252. for(int vv=0; vv<18; ++vv)
  253. {
  254. loadToIt(singleEntryScenarioNameNr[vv], buf, i, 1);
  255. }
  256. std::string ff = singleEntryScenarioNameNr[4];
  257. loadToIt(singleTurnDuration, buf, i, 1);
  258. loadToIt(singleChatText, buf, i, 0);
  259. loadToIt(singleChatEntry, buf, i, 0);
  260. loadToIt(singleChatPlug, buf, i, 0);
  261. loadToIt(singleChatPlayer, buf, i, 0);
  262. loadToIt(singleChatPlayerSlider, buf, i, 0);
  263. loadToIt(singleRollover, buf, i, 0);
  264. loadToIt(singleNext, buf, i, 0);
  265. loadToIt(singleBegin, buf, i, 0);
  266. loadToIt(singleBack, buf, i, 0);
  267. loadToIt(singleSSExit, buf, i, 0);
  268. loadToIt(singleWhichMap, buf, i, 0);
  269. loadToIt(singleSortNumber, buf, i, 0);
  270. loadToIt(singleSortSize, buf, i, 0);
  271. loadToIt(singleSortVersion, buf, i, 0);
  272. loadToIt(singleSortAlpha, buf, i, 0);
  273. loadToIt(singleSortVictory, buf, i, 0);
  274. loadToIt(singleSortLoss, buf, i, 1);
  275. loadToIt(singleBriefing, buf, i, 1);
  276. loadToIt(singleSSHero, buf, i, 1);
  277. loadToIt(singleGoldpic, buf, i, 1);
  278. for(int vv=0; vv<8; ++vv)
  279. {
  280. loadToIt(singleHumanCPU[vv], buf, i, 1);
  281. }
  282. for(int vv=0; vv<8; ++vv)
  283. {
  284. loadToIt(singleHandicap[vv], buf, i, 1);
  285. }
  286. for(int vv=0; vv<8; ++vv)
  287. {
  288. loadToIt(singleTownLeft[vv], buf, i, 1);
  289. }
  290. for(int vv=0; vv<8; ++vv)
  291. {
  292. loadToIt(singleTownRite[vv], buf, i, 1);
  293. }
  294. for(int vv=0; vv<8; ++vv)
  295. {
  296. loadToIt(singleHeroLeft[vv], buf, i, 1);
  297. }
  298. for(int vv=0; vv<8; ++vv)
  299. {
  300. loadToIt(singleHeroRite[vv], buf, i, 1);
  301. }
  302. for(int vv=0; vv<8; ++vv)
  303. {
  304. loadToIt(singleResLeft[vv], buf, i, 1);
  305. }
  306. for(int vv=0; vv<8; ++vv)
  307. {
  308. loadToIt(singleResRite[vv], buf, i, 1);
  309. }
  310. for(int vv=0; vv<8; ++vv)
  311. {
  312. loadToIt(singleHeroSetting[vv], buf, i, 1);
  313. }
  314. for(int vv=0; vv<8; ++vv)
  315. {
  316. loadToIt(singleTownSetting[vv], buf, i, 1);
  317. }
  318. loadToIt(singleConstCreateMap, buf, i, 1);
  319. loadToIt(singleConstMapSizeLabel, buf, i, 1);
  320. loadToIt(singleConstSmallMap, buf, i, 1);
  321. loadToIt(singleConstMediumMap, buf, i, 1);
  322. loadToIt(singleConstLargeMap, buf, i, 1);
  323. loadToIt(singleConstHugeMap, buf, i, 1);
  324. loadToIt(singleConstMapLevels, buf, i, 1);
  325. loadToIt(singleConstHumanPositionsLabel, buf, i, 1);
  326. for(int vv=0; vv<8; ++vv)
  327. {
  328. loadToIt(singleConstNHumans[vv], buf, i, 1);
  329. }
  330. loadToIt(singleConstRandomHumans, buf, i, 1);
  331. loadToIt(singleConstHumanTeamsLabel, buf, i, 1);
  332. loadToIt(singleConstNoHumanTeams, buf, i, 1);
  333. for(int vv=0; vv<7; ++vv)
  334. {
  335. loadToIt(singleConstNHumanTeams[vv], buf, i, 1);
  336. }
  337. loadToIt(singleConstRandomHumanTeams, buf, i, 1);
  338. loadToIt(singleConstComputerPositionsLabel, buf, i, 1);
  339. loadToIt(singleConstNoComputers, buf, i, 1);
  340. for(int vv=0; vv<7; ++vv)
  341. {
  342. loadToIt(singleConstNComputers[vv], buf, i, 1);
  343. }
  344. loadToIt(singleConstRandomComputers, buf, i, 1);
  345. loadToIt(singleConstComputerTeamsLabel, buf, i, 1);
  346. loadToIt(singleConstNoComputerTeams, buf, i, 1);
  347. for(int vv=0; vv<6; ++vv)
  348. {
  349. loadToIt(singleConstNComputerTeams[vv], buf, i, 1);
  350. }
  351. loadToIt(singleConstRandomComputerTeams, buf, i, 1);
  352. loadToIt(singleConstWaterLabel, buf, i, 1);
  353. loadToIt(singleConstNoWater, buf, i, 1);
  354. loadToIt(singleConstNormalWater, buf, i, 1);
  355. loadToIt(singleConstIslands, buf, i, 1);
  356. loadToIt(singleConstRandomWater, buf, i, 1);
  357. loadToIt(singleConstMonsterStrengthLabel, buf, i, 1);
  358. loadToIt(singleConstWeakMonsters, buf, i, 1);
  359. loadToIt(singleConstNormalMonsters, buf, i, 1);
  360. loadToIt(singleConstStrongMonsters, buf, i, 1);
  361. loadToIt(singleConstRandomMonsters, buf, i, 1);
  362. loadToIt(singleConstShowSavedRandomMaps, buf, i, 1);
  363. loadToIt(singleSliderChatWindow, buf, i, 1);
  364. loadToIt(singleSliderFileMenu, buf, i, 1);
  365. loadToIt(singleSliderDuration, buf, i, 1);
  366. loadToIt(singlePlayerHandicapHeaderID, buf, i, 0);
  367. loadToIt(singleTurnDurationHeaderID, buf, i, 0);
  368. loadToIt(singleStartingTownHeaderID, buf, i, 0);
  369. loadToIt(singleStartingTownHeaderWConfluxID, buf, i, 0);
  370. loadToIt(singleStartingHeroHeaderID, buf, i, 0);
  371. loadToIt(singleStartingBonusHeaderID, buf, i, 0);
  372. hmcr = 0;
  373. for(i; i<buf.length(); ++i)
  374. {
  375. if(buf[i]=='\r')
  376. ++hmcr;
  377. if(hmcr==3)
  378. break;
  379. }
  380. i+=2;
  381. loadToIt(multiOnlineService, buf, i, 0);
  382. loadToIt(multiHotSeat, buf, i, 0);
  383. loadToIt(multiIPX, buf, i, 0);
  384. loadToIt(multiTCPIP, buf, i, 0);
  385. loadToIt(multiModem, buf, i, 0);
  386. loadToIt(multiDirectConnection, buf, i, 0);
  387. loadToIt(multiHostGame, buf, i, 0);
  388. loadToIt(multiJoinGame, buf, i, 1);
  389. loadToIt(multiSearchGame, buf, i, 1);
  390. for(int vv=0; vv<12; ++vv)
  391. {
  392. loadToIt(multiGameNo[vv], buf, i, 1);
  393. }
  394. loadToIt(multiScrollGames, buf, i, 1);
  395. std::string dump;
  396. loadToIt(dump, buf, i, 1);
  397. loadToIt(multiCancel, buf, i, 0);
  398. loadToIt(dump, buf, i, 0);
  399. loadToIt(dump, buf, i, 4);
  400. loadToIt(dump, buf, i, 2);
  401. loadToIt(advWorldMap.first, buf, i, 4);
  402. loadToIt(advWorldMap.second, buf, i, 2);
  403. loadToIt(advStatusWindow1.first, buf, i, 4);
  404. loadToIt(advStatusWindow1.second, buf, i, 2);
  405. loadToIt(advKingdomOverview.first, buf, i, 4);
  406. loadToIt(advKingdomOverview.second, buf, i, 2);
  407. loadToIt(advSurfaceSwitch.first, buf, i, 4);
  408. loadToIt(advSurfaceSwitch.second, buf, i, 2);
  409. loadToIt(advQuestlog.first, buf, i, 4);
  410. loadToIt(advQuestlog.second, buf, i, 2);
  411. loadToIt(advSleepWake.first, buf, i, 4);
  412. loadToIt(advSleepWake.second, buf, i, 2);
  413. loadToIt(advMoveHero.first, buf, i, 4);
  414. loadToIt(advMoveHero.second, buf, i, 2);
  415. loadToIt(advCastSpell.first, buf, i, 4);
  416. loadToIt(advCastSpell.second, buf, i, 2);
  417. loadToIt(advAdvOptions.first, buf, i, 4);
  418. loadToIt(advAdvOptions.second, buf, i, 2);
  419. loadToIt(advSystemOptions.first, buf, i, 4);
  420. loadToIt(advSystemOptions.second, buf, i, 2);
  421. loadToIt(advNextHero.first, buf, i, 4);
  422. loadToIt(advNextHero.second, buf, i, 2);
  423. loadToIt(advEndTurn.first, buf, i, 4);
  424. loadToIt(advEndTurn.second, buf, i, 2);
  425. loadToIt(advHListUp.first, buf, i, 4);
  426. loadToIt(advHListUp.second, buf, i, 2);
  427. loadToIt(advHListDown.first, buf, i, 4);
  428. loadToIt(advHListDown.second, buf, i, 2);
  429. loadToIt(advHPortrait.first, buf, i, 4);
  430. loadToIt(advHPortrait.second, buf, i, 2);
  431. loadToIt(advTListUp.first, buf, i, 4);
  432. loadToIt(advTListUp.second, buf, i, 2);
  433. loadToIt(advTListDown.first, buf, i, 4);
  434. loadToIt(advTListDown.second, buf, i, 2);
  435. loadToIt(advTPortrait.first, buf, i, 4);
  436. loadToIt(advTPortrait.second, buf, i, 2);
  437. loadToIt(advRGold.first, buf, i, 4);
  438. loadToIt(advRGold.second, buf, i, 2);
  439. loadToIt(advRWood.first, buf, i, 4);
  440. loadToIt(advRWood.second, buf, i, 2);
  441. loadToIt(advRMercury.first, buf, i, 4);
  442. loadToIt(advRMercury.second, buf, i, 2);
  443. loadToIt(advROre.first, buf, i, 4);
  444. loadToIt(advROre.second, buf, i, 2);
  445. loadToIt(advRSulfur.first, buf, i, 4);
  446. loadToIt(advRSulfur.second, buf, i, 2);
  447. loadToIt(advRCrystal.first, buf, i, 4);
  448. loadToIt(advRCrystal.second, buf, i, 2);
  449. loadToIt(advRGems.first, buf, i, 4);
  450. loadToIt(advRGems.second, buf, i, 2);
  451. loadToIt(advDate.first, buf, i, 4);
  452. loadToIt(advDate.second, buf, i, 2);
  453. loadLossConditions();
  454. loadVictoryConditions();
  455. }
  456. void CPreGameTextHandler::loadToIt(std::string &dest, std::string &src, int &iter, int mode)
  457. {
  458. switch(mode)
  459. {
  460. case 0:
  461. {
  462. int hmcr = 0;
  463. for(iter; iter<src.size(); ++iter)
  464. {
  465. if(src[iter]=='\t')
  466. ++hmcr;
  467. if(hmcr==1)
  468. break;
  469. }
  470. ++iter;
  471. int befi=iter;
  472. for(iter; iter<src.size(); ++iter)
  473. {
  474. if(src[iter]=='\t')
  475. break;
  476. }
  477. dest = src.substr(befi, iter-befi);
  478. ++iter;
  479. hmcr = 0;
  480. for(iter; iter<src.size(); ++iter)
  481. {
  482. if(src[iter]=='\r')
  483. ++hmcr;
  484. if(hmcr==1)
  485. break;
  486. }
  487. iter+=2;
  488. break;
  489. }
  490. case 1:
  491. {
  492. int hmcr = 0;
  493. for(iter; iter<src.size(); ++iter)
  494. {
  495. if(src[iter]=='\t')
  496. ++hmcr;
  497. if(hmcr==1)
  498. break;
  499. }
  500. ++iter;
  501. int befi=iter;
  502. for(iter; iter<src.size(); ++iter)
  503. {
  504. if(src[iter]=='\r')
  505. break;
  506. }
  507. dest = src.substr(befi, iter-befi);
  508. iter+=2;
  509. break;
  510. }
  511. case 2:
  512. {
  513. int befi=iter;
  514. for(iter; iter<src.size(); ++iter)
  515. {
  516. if(src[iter]=='\t')
  517. break;
  518. }
  519. dest = src.substr(befi, iter-befi);
  520. ++iter;
  521. int hmcr = 0;
  522. for(iter; iter<src.size(); ++iter)
  523. {
  524. if(src[iter]=='\r')
  525. ++hmcr;
  526. if(hmcr==1)
  527. break;
  528. }
  529. iter+=2;
  530. break;
  531. }
  532. case 3:
  533. {
  534. int befi=iter;
  535. for(iter; iter<src.size(); ++iter)
  536. {
  537. if(src[iter]=='\r')
  538. break;
  539. }
  540. dest = src.substr(befi, iter-befi);
  541. iter+=2;
  542. break;
  543. }
  544. case 4:
  545. {
  546. int befi=iter;
  547. for(iter; iter<src.size(); ++iter)
  548. {
  549. if(src[iter]=='\t')
  550. break;
  551. }
  552. dest = src.substr(befi, iter-befi);
  553. iter++;
  554. break;
  555. }
  556. }
  557. //loadLossConditions();
  558. //loadVictoryConditions(); //moved to loadTexts
  559. }
  560. void CPreGameTextHandler::loadVictoryConditions()
  561. {
  562. //std::ifstream inp("H3bitmap.lod\\VCDESC.TXT", std::ios::in|std::ios::binary);
  563. //inp.seekg(0,std::ios::end); // na koniec
  564. //int andame = inp.tellg(); // read length
  565. //inp.seekg(0,std::ios::beg); // wracamy na poczatek
  566. //char * bufor = new char[andame]; // allocate memory
  567. //inp.read((char*)bufor, andame); // read map file to buffer
  568. //inp.close();
  569. //std::string buf = std::string(bufor);
  570. //delete [andame] bufor;
  571. std::string buf = CGameInfo::mainObj->bitmaph->getTextFile("VCDESC.TXT");
  572. int andame = buf.size();
  573. int i=0; //buf iterator
  574. for(int gg=0; gg<14; ++gg)
  575. {
  576. int befi=i;
  577. for(i; i<andame; ++i)
  578. {
  579. if(buf[i]=='\r')
  580. break;
  581. }
  582. victoryConditions[gg] = buf.substr(befi, i-befi);
  583. i+=2;
  584. }
  585. }
  586. void CPreGameTextHandler::loadLossConditions()
  587. {
  588. //std::ifstream inp("H3bitmap.lod\\LCDESC.TXT", std::ios::in|std::ios::binary);
  589. //inp.seekg(0,std::ios::end); // na koniec
  590. //int andame = inp.tellg(); // read length
  591. //inp.seekg(0,std::ios::beg); // wracamy na poczatek
  592. //char * bufor = new char[andame]; // allocate memory
  593. //inp.read((char*)bufor, andame); // read map file to buffer
  594. //inp.close();
  595. //std::string buf = std::string(bufor);
  596. //delete [andame] bufor;
  597. std::string buf = CGameInfo::mainObj->bitmaph->getTextFile("LCDESC.TXT");
  598. int andame = buf.size();
  599. int i=0; //buf iterator
  600. for(int gg=0; gg<4; ++gg)
  601. {
  602. int befi=i;
  603. for(i; i<andame; ++i)
  604. {
  605. if(buf[i]=='\r')
  606. break;
  607. }
  608. lossCondtions[gg] = buf.substr(befi, i-befi);
  609. i+=2;
  610. }
  611. }