CGeneralTextHandler.cpp 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #include "CGeneralTextHandler.h"
  2. #include <fstream>
  3. void CGeneralTextHandler::load()
  4. {
  5. std::ifstream inp("H3bitmap.lod\\GENRLTXT.TXT", std::ios::in|std::ios::binary);
  6. inp.seekg(0,std::ios::end); // na koniec
  7. int andame = inp.tellg(); // read length
  8. inp.seekg(0,std::ios::beg); // wracamy na poczatek
  9. char * bufor = new char[andame]; // allocate memory
  10. inp.read((char*)bufor, andame); // read map file to buffer
  11. inp.close();
  12. std::string buf = std::string(bufor);
  13. delete [andame] bufor;
  14. int i=0; //buf iterator
  15. for(i; i<andame; ++i)
  16. {
  17. if(buf[i]=='\r')
  18. break;
  19. }
  20. i+=2;
  21. loadToIt(cantAddManager, buf, i, 2);
  22. loadToIt(experienceLimitScenarioReached, buf, i, 2);
  23. loadToIt(heroExperienceInfo, buf, i, 2);
  24. loadToIt(perDay, buf, i, 2);
  25. loadToIt(or, buf, i, 2);
  26. loadToIt(somethingVanquished, buf, i, 2);
  27. loadToIt(lastTownLostInfo, buf, i, 2);
  28. loadToIt(heroesAbandonedYou, buf, i, 2);
  29. loadToIt(heroesAbandonedHim, buf, i, 2);
  30. loadToIt(couldNotSaveGame, buf, i, 2);
  31. loadToIt(errorOpeningFile, buf, i, 2);
  32. loadToIt(newgameUppercase, buf, i, 2);
  33. loadToIt(sureToDismissArmy, buf, i, 2);
  34. loadToIt(playersTurn, buf, i, 2);
  35. loadToIt(errorReceivingDataKeepTrying, buf, i, 2);
  36. loadToIt(somethingTheSomething, buf, i, 2);
  37. loadToIt(recruit, buf, i, 2);
  38. loadToIt(noRoomInGarrision, buf, i, 2);
  39. loadToIt(numberOFAdventuringHeroes, buf, i, 2);
  40. loadToIt(heroWithoutCreatures, buf, i, 2);
  41. loadToIt(videoQuality, buf, i, 2);
  42. loadToIt(itemCantBeTraded, buf, i, 2);
  43. loadToIt(sureDismissHero, buf, i, 2);
  44. loadToIt(selectSpellTarget, buf, i, 2);
  45. loadToIt(invalidTeleportDestination, buf, i, 2);
  46. loadToIt(teleportHere, buf, i, 2);
  47. loadToIt(castSomething, buf, i, 2);
  48. loadToIt(castSomethingOnSomething, buf, i, 2);
  49. loadToIt(sureRetreat, buf, i, 2);
  50. loadToIt(notEnoughGold, buf, i, 2);
  51. loadToIt(capturedEnemyArtifact, buf, i, 2);
  52. loadToIt(none, buf, i, 2);
  53. loadToIt(surrenderProposal, buf, i, 2);
  54. loadToIt(highMoraleNextAttack, buf, i, 2);
  55. loadToIt(lowMoraleFreeze, buf, i, 2);
  56. loadToIt(makeRoomInArmyForSomething, buf, i, 2);
  57. loadToIt(attackSomethingSomethingDamage, buf, i, 2);
  58. loadToIt(shootSomethingOneShootLeftSomethingDamage, buf, i, 2);
  59. loadToIt(campaignDescription, buf, i, 2);
  60. loadToIt(somethingIsActive, buf, i, 2);
  61. loadToIt(sessionName, buf, i, 2);
  62. loadToIt(userName, buf, i, 2);
  63. loadToIt(creature, buf, i, 2);
  64. loadToIt(creatures, buf, i, 2);
  65. loadToIt(badLuckOnSomething, buf, i, 2);
  66. loadToIt(goodLuckOnSomething, buf, i, 2);
  67. loadToIt(treasure, buf, i, 2);
  68. loadToIt(somethingSomethingsUnderAttack, buf, i, 2);
  69. loadToIt(town, buf, i, 2);
  70. loadToIt(hero, buf, i, 2);
  71. loadToIt(townScreen, buf, i, 2);
  72. loadToIt(cannotBuildBoat, buf, i, 2);
  73. loadToIt(requires, buf, i, 2);
  74. loadToIt(systemUppercase, buf, i, 2);
  75. }
  76. void CGeneralTextHandler::loadToIt(std::string &dest, std::string &src, int &iter, int mode)
  77. {
  78. switch(mode)
  79. {
  80. case 0:
  81. {
  82. int hmcr = 0;
  83. for(iter; iter<src.size(); ++iter)
  84. {
  85. if(src[iter]=='\t')
  86. ++hmcr;
  87. if(hmcr==1)
  88. break;
  89. }
  90. ++iter;
  91. int befi=iter;
  92. for(iter; iter<src.size(); ++iter)
  93. {
  94. if(src[iter]=='\t')
  95. break;
  96. }
  97. dest = src.substr(befi, iter-befi);
  98. ++iter;
  99. hmcr = 0;
  100. for(iter; iter<src.size(); ++iter)
  101. {
  102. if(src[iter]=='\r')
  103. ++hmcr;
  104. if(hmcr==1)
  105. break;
  106. }
  107. iter+=2;
  108. break;
  109. }
  110. case 1:
  111. {
  112. int hmcr = 0;
  113. for(iter; iter<src.size(); ++iter)
  114. {
  115. if(src[iter]=='\t')
  116. ++hmcr;
  117. if(hmcr==1)
  118. break;
  119. }
  120. ++iter;
  121. int befi=iter;
  122. for(iter; iter<src.size(); ++iter)
  123. {
  124. if(src[iter]=='\r')
  125. break;
  126. }
  127. dest = src.substr(befi, iter-befi);
  128. iter+=2;
  129. break;
  130. }
  131. case 2:
  132. {
  133. int befi=iter;
  134. for(iter; iter<src.size(); ++iter)
  135. {
  136. if(src[iter]=='\t')
  137. break;
  138. }
  139. dest = src.substr(befi, iter-befi);
  140. ++iter;
  141. int hmcr = 0;
  142. for(iter; iter<src.size(); ++iter)
  143. {
  144. if(src[iter]=='\r')
  145. ++hmcr;
  146. if(hmcr==1)
  147. break;
  148. }
  149. iter+=2;
  150. break;
  151. }
  152. case 3:
  153. {
  154. int befi=iter;
  155. for(iter; iter<src.size(); ++iter)
  156. {
  157. if(src[iter]=='\r')
  158. break;
  159. }
  160. dest = src.substr(befi, iter-befi);
  161. iter+=2;
  162. break;
  163. }
  164. }
  165. }