CDefObjInfoHandler.cpp 1.1 KB

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