CAbilityHandler.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. return; //add counter
  24. }
  25. while(base[iit]!='\t')
  26. {
  27. ++iit;
  28. }
  29. nab.name = base.substr(0, iit);
  30. ++iit;
  31. iitBef=iit;
  32. nab.basicText = base.substr(iitBef, base.size()-iitBef);
  33. inp.getline(tab, 500);
  34. inp.getline(tab, 500);
  35. base = std::string(tab);
  36. iitBef = 0;
  37. iit = 0;
  38. while(base[iit]!='\t')
  39. {
  40. ++iit;
  41. }
  42. nab.basicText2 = base.substr(0, iit);
  43. ++iit;
  44. iitBef=iit;
  45. nab.advText = base.substr(iitBef, base.size()-iitBef);
  46. inp.getline(tab, 500);
  47. inp.getline(tab, 500);
  48. base = std::string(tab);
  49. iitBef = 0;
  50. iit = 0;
  51. while(base[iit]!='\t')
  52. {
  53. ++iit;
  54. }
  55. nab.advText2 = base.substr(0, iit);
  56. ++iit;
  57. iitBef=iit;
  58. nab.expText = base.substr(iitBef, base.size()-iitBef);
  59. inp.getline(tab, 500);
  60. inp.getline(tab, 500);
  61. base = std::string(tab);
  62. nab.expText2 = base;
  63. nab.idNumber = abilities.size();
  64. abilities.push_back(nab);
  65. delete [500] tab;
  66. }
  67. }