CDefObjInfoHandler.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "stdafx.h"
  2. #include "CDefObjInfoHandler.h"
  3. #include "../CGameInfo.h"
  4. #include "CLodHandler.h"
  5. #include <sstream>
  6. bool DefObjInfo::operator==(const std::string & por) const
  7. {
  8. return this->defName == por;
  9. }
  10. void CDefObjInfoHandler::load()
  11. {
  12. std::istringstream inp(CGameInfo::mainObj->bitmaph->getTextFile("ZOBJCTS.TXT"));
  13. int objNumber;
  14. inp>>objNumber;
  15. for(int hh=0; hh<objNumber; ++hh)
  16. {
  17. DefObjInfo nobj;
  18. std::string dump;
  19. inp>>nobj.defName;
  20. for(int o=0; o<6; ++o)
  21. {
  22. nobj.blockMap[o] = 0xff;
  23. nobj.visitMap[o] = 0x00;
  24. }
  25. std::string mapStr;
  26. inp>>mapStr;
  27. std::reverse(mapStr.begin(), mapStr.end());
  28. for(int v=0; v<mapStr.size(); ++v)
  29. {
  30. if(mapStr[v]=='0')
  31. {
  32. nobj.blockMap[v/8] &= 255 - (128 >> (v%8));
  33. }
  34. }
  35. inp>>mapStr;
  36. std::reverse(mapStr.begin(), mapStr.end());
  37. for(int v=0; v<mapStr.size(); ++v)
  38. {
  39. if(mapStr[v]=='1')
  40. {
  41. nobj.visitMap[v/8] |= (128 >> (v%8));
  42. }
  43. }
  44. for(int yy=0; yy<2; ++yy)
  45. inp>>dump;
  46. inp>>nobj.type;
  47. inp>>nobj.subtype;
  48. inp>>nobj.objType;
  49. inp>>nobj.priority;
  50. objs.push_back(nobj);
  51. }
  52. }