VCMI_Lib.cpp 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. #define VCMI_DLL
  2. #include "../global.h"
  3. #include "VCMI_Lib.h"
  4. #include "../hch/CArtHandler.h"
  5. #include "../hch/CCreatureHandler.h"
  6. #include "../hch/CDefObjInfoHandler.h"
  7. #include "../hch/CHeroHandler.h"
  8. #include "../hch/CObjectHandler.h"
  9. #include "../hch/CTownHandler.h"
  10. #include "../hch/CBuildingHandler.h"
  11. #include "../hch/CSpellHandler.h"
  12. #include "../hch/CGeneralTextHandler.h"
  13. class CLodHandler;
  14. LibClasses * VLC = NULL;
  15. CLodHandler * bitmaph=NULL;
  16. DLL_EXPORT CLogger<0> tlog0;
  17. DLL_EXPORT CLogger<1> tlog1;
  18. DLL_EXPORT CLogger<2> tlog2;
  19. DLL_EXPORT CLogger<3> tlog3;
  20. DLL_EXPORT CLogger<4> tlog4;
  21. DLL_EXPORT CLogger<5> tlog5;
  22. DLL_EXPORT CConsoleHandler *console = NULL;
  23. DLL_EXPORT std::ostream *logfile = NULL;
  24. DLL_EXPORT void initDLL(CLodHandler *b, CConsoleHandler *Console, std::ostream *Logfile)
  25. {
  26. console = Console;
  27. logfile = Logfile;
  28. timeHandler pomtime;
  29. bitmaph=b;
  30. VLC = new LibClasses;
  31. CHeroHandler * heroh = new CHeroHandler;
  32. heroh->loadHeroes();
  33. VLC->heroh = heroh;
  34. tlog0 <<"\tHero handler: "<<pomtime.getDif()<<std::endl;
  35. CArtHandler * arth = new CArtHandler;
  36. arth->loadArtifacts();
  37. VLC->arth = arth;
  38. tlog0<<"\tArtifact handler: "<<pomtime.getDif()<<std::endl;
  39. CCreatureHandler * creh = new CCreatureHandler();
  40. creh->loadCreatures();
  41. VLC->creh = creh;
  42. tlog0<<"\tCreature handler: "<<pomtime.getDif()<<std::endl;
  43. VLC->townh = new CTownHandler;
  44. VLC->townh->loadNames();
  45. tlog0<<"\tTown handler: "<<pomtime.getDif()<<std::endl;
  46. CObjectHandler * objh = new CObjectHandler;
  47. objh->loadObjects();
  48. VLC->objh = objh;
  49. tlog0<<"\tObject handler: "<<pomtime.getDif()<<std::endl;
  50. VLC->dobjinfo = new CDefObjInfoHandler;
  51. VLC->dobjinfo->load();
  52. tlog0<<"\tDef information handler: "<<pomtime.getDif()<<std::endl;
  53. VLC->buildh = new CBuildingHandler;
  54. VLC->buildh->loadBuildings();
  55. tlog0<<"\tBuilding handler: "<<pomtime.getDif()<<std::endl;
  56. CSpellHandler * spellh = new CSpellHandler;
  57. spellh->loadSpells();
  58. VLC->spellh = spellh;
  59. tlog0<<"\tSpell handler: "<<pomtime.getDif()<<std::endl;
  60. VLC->generaltexth = new CGeneralTextHandler;
  61. VLC->generaltexth->loadTexts();
  62. VLC->generaltexth->load();
  63. tlog0<<"\tGeneral text handler: "<<pomtime.getDif()<<std::endl;
  64. }
  65. DLL_EXPORT void loadToIt(std::string &dest, std::string &src, int &iter, int mode)
  66. {
  67. switch(mode)
  68. {
  69. case 0:
  70. {
  71. int hmcr = 0;
  72. for(iter; iter<src.size(); ++iter)
  73. {
  74. if(src[iter]=='\t')
  75. ++hmcr;
  76. if(hmcr==1)
  77. break;
  78. }
  79. ++iter;
  80. int befi=iter;
  81. for(iter; iter<src.size(); ++iter)
  82. {
  83. if(src[iter]=='\t')
  84. break;
  85. }
  86. dest = src.substr(befi, iter-befi);
  87. ++iter;
  88. hmcr = 0;
  89. for(iter; iter<src.size(); ++iter)
  90. {
  91. if(src[iter]=='\r')
  92. ++hmcr;
  93. if(hmcr==1)
  94. break;
  95. }
  96. iter+=2;
  97. break;
  98. }
  99. case 1:
  100. {
  101. int hmcr = 0;
  102. for(iter; iter<src.size(); ++iter)
  103. {
  104. if(src[iter]=='\t')
  105. ++hmcr;
  106. if(hmcr==1)
  107. break;
  108. }
  109. ++iter;
  110. int befi=iter;
  111. for(iter; iter<src.size(); ++iter)
  112. {
  113. if(src[iter]=='\r')
  114. break;
  115. }
  116. dest = src.substr(befi, iter-befi);
  117. iter+=2;
  118. break;
  119. }
  120. case 2:
  121. {
  122. int befi=iter;
  123. for(iter; iter<src.size(); ++iter)
  124. {
  125. if(src[iter]=='\t')
  126. break;
  127. }
  128. dest = src.substr(befi, iter-befi);
  129. ++iter;
  130. int hmcr = 0;
  131. for(iter; iter<src.size(); ++iter)
  132. {
  133. if(src[iter]=='\r')
  134. ++hmcr;
  135. if(hmcr==1)
  136. break;
  137. }
  138. iter+=2;
  139. break;
  140. }
  141. case 3:
  142. {
  143. int befi=iter;
  144. for(iter; iter<src.size(); ++iter)
  145. {
  146. if(src[iter]=='\r')
  147. break;
  148. }
  149. dest = src.substr(befi, iter-befi);
  150. iter+=2;
  151. break;
  152. }
  153. case 4:
  154. {
  155. int befi=iter;
  156. for(iter; iter<src.size(); ++iter)
  157. {
  158. if(src[iter]=='\t')
  159. break;
  160. }
  161. dest = src.substr(befi, iter-befi);
  162. iter++;
  163. break;
  164. }
  165. }
  166. }
  167. DLL_EXPORT void loadToIt(si32 &dest, std::string &src, int &iter, int mode)
  168. {
  169. std::string pom;
  170. loadToIt(pom,src,iter,mode);
  171. dest = atol(pom.c_str());
  172. }