CAbilityHandler.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "stdafx.h"
  2. #include "CAbilityHandler.h"
  3. void CAbilityHandler::loadAbilities()
  4. {
  5. std::ifstream inp("H3bitmap.lod\\SSTRAITS.TXT", std::ios::in);
  6. std::string dump;
  7. for(int i=0; i<5; ++i)
  8. {
  9. inp>>dump;
  10. }
  11. inp.ignore();
  12. while(!inp.eof())
  13. {
  14. CAbility nab; //new creature, that will be read
  15. std::string base;
  16. char * tab = new char[500];
  17. int iitBef = 0;
  18. int iit = 0;
  19. inp.getline(tab, 500);
  20. base = std::string(tab);
  21. if(base.size()<2) //ended, but some rubbish could still stay end we have something useless
  22. {
  23. inp.close();
  24. return; //add counter
  25. }
  26. while(base[iit]!='\t')
  27. {
  28. ++iit;
  29. }
  30. nab.name = base.substr(0, iit);
  31. ++iit;
  32. iitBef=iit;
  33. nab.basicText = base.substr(iitBef, base.size()-iitBef);
  34. inp.getline(tab, 500);
  35. inp.getline(tab, 500);
  36. base = std::string(tab);
  37. iitBef = 0;
  38. iit = 0;
  39. while(base[iit]!='\t')
  40. {
  41. ++iit;
  42. }
  43. nab.basicText2 = base.substr(0, iit);
  44. ++iit;
  45. iitBef=iit;
  46. nab.advText = base.substr(iitBef, base.size()-iitBef);
  47. inp.getline(tab, 500);
  48. inp.getline(tab, 500);
  49. base = std::string(tab);
  50. iitBef = 0;
  51. iit = 0;
  52. while(base[iit]!='\t')
  53. {
  54. ++iit;
  55. }
  56. nab.advText2 = base.substr(0, iit);
  57. ++iit;
  58. iitBef=iit;
  59. nab.expText = base.substr(iitBef, base.size()-iitBef);
  60. inp.getline(tab, 500);
  61. inp.getline(tab, 500);
  62. base = std::string(tab);
  63. nab.expText2 = base;
  64. nab.idNumber = abilities.size();
  65. abilities.push_back(nab);
  66. delete [500] tab;
  67. }
  68. }