Strukturen.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #include "Strukturen.h"
  2. #include <M2Datei.h>
  3. #include <DateiSystem.h>
  4. // Inhalt der RessourceStr Klasse aus Strukturen.h
  5. // Konstruktor
  6. RessourceStr::RessourceStr(Datei* zDatei, int karteId, Text* zGamePath)
  7. : ReferenceCounter()
  8. {
  9. zDatei->lese((char*)&id, 4);
  10. char län = 0;
  11. zDatei->lese(&län, 1);
  12. Text txt;
  13. txt.fillText('0', län);
  14. zDatei->lese((char*)txt.getText(), län);
  15. pfad = 0;
  16. if (txt.positionVon("spiel:") == 0)
  17. {
  18. pfad = new Text(zGamePath->getText());
  19. if (pfad)
  20. pfad->append(txt.getTeilText(6));
  21. }
  22. if (txt.positionVon("map:") == 0)
  23. {
  24. pfad = new Text("data/tmp/Karten/");
  25. pfad->append(karteId);
  26. pfad->append("/spiel/files");
  27. pfad->append(txt.getTeilText(4));
  28. }
  29. m2d = 0;
  30. bild = 0;
  31. if (pfad && pfad->hat(".m2/"))
  32. {
  33. int pos = pfad->positionVon(".m2/", pfad->anzahlVon(".m2/") - 1);
  34. M2Datei* datei = new M2Datei(pfad->getTeilText(0, pos + 3));
  35. datei->leseDaten();
  36. m2d = datei->ladeModel(pfad->getTeilText(pos + 4));
  37. datei->release();
  38. }
  39. if (pfad && pfad->hat(".ltdb/"))
  40. {
  41. int pos = pfad->positionVon(".ltdb/", pfad->anzahlVon(".ltdb/") - 1);
  42. LTDBDatei* datei = new LTDBDatei();
  43. datei->setDatei(pfad->getTeilText(0, pos + 5));
  44. datei->leseDaten(0);
  45. bild = datei->laden(0, pfad->getTeilText(pos + 6));
  46. datei->release();
  47. }
  48. }
  49. // Destruktor
  50. RessourceStr::~RessourceStr()
  51. {
  52. if (pfad)
  53. pfad->release();
  54. if (m2d)
  55. m2d->release();
  56. if (bild)
  57. bild->release();
  58. }
  59. // constant
  60. int RessourceStr::getId() const
  61. {
  62. return id;
  63. }
  64. Model2DData* RessourceStr::zReccourceM2() const
  65. {
  66. return m2d;
  67. }
  68. Bild* RessourceStr::zReccourceTxt() const
  69. {
  70. return bild;
  71. }
  72. // Inhalt der ZeichnungStr Klasse aus Strukturen.h
  73. // Konstruktor
  74. ObjektStr::ObjektStr(Datei* zDatei)
  75. : ReferenceCounter()
  76. {
  77. zDatei->lese((char*)&pos.x, 4);
  78. zDatei->lese((char*)&pos.y, 4);
  79. zDatei->lese((char*)&rot, 4);
  80. zDatei->lese((char*)&scale, 4);
  81. zDatei->lese((char*)&id, 4);
  82. zDatei->lese((char*)&m2d, 4);
  83. zDatei->lese((char*)&bild, 4);
  84. zDatei->lese((char*)&style, 4);
  85. zDatei->lese((char*)&maxStabilität, 4);
  86. zDatei->lese((char*)&maxEnergie, 4);
  87. zDatei->lese((char*)&energieRadius, 4);
  88. zDatei->lese((char*)&reparatur, 8);
  89. zDatei->lese((char*)&akkuLeistung, 8);
  90. zDatei->lese(&team, 1);
  91. }
  92. // Inhalt der SpielerStr Klasse aus Strukturen.h
  93. // Konstruktor
  94. SpielerStr::SpielerStr(Datei* zDatei)
  95. : ReferenceCounter()
  96. {
  97. zDatei->lese((char*)&id, 4);
  98. zDatei->lese((char*)&pos.x, 4);
  99. zDatei->lese((char*)&pos.y, 4);
  100. zDatei->lese((char*)&rot, 8);
  101. zDatei->lese((char*)&beschleunigung, 8);
  102. zDatei->lese((char*)&maxStabilität, 4);
  103. zDatei->lese((char*)&maxEnergie, 4);
  104. zDatei->lese((char*)&reparatur, 8);
  105. zDatei->lese((char*)&akkuLeistung, 8);
  106. zDatei->lese((char*)&laserIntensität, 4);
  107. zDatei->lese((char*)&laserEffizienz, 4);
  108. zDatei->lese((char*)&laserTempo, 4);
  109. zDatei->lese((char*)&wendigkeit, 8);
  110. zDatei->lese((char*)&antriebEffizienz, 8);
  111. zDatei->lese((char*)&energieSchild, 8);
  112. zDatei->lese((char*)&energieSchildEffizienz, 8);
  113. zDatei->lese((char*)&netzwerk, 4);
  114. zDatei->lese((char*)&skillPunkte, 4);
  115. zDatei->lese((char*)&m2d, 4);
  116. zDatei->lese((char*)&bild, 4);
  117. }
  118. // Inhalt der TeamStr Klasse aus Strukturen.h
  119. // Konstruktor
  120. TeamStr::TeamStr(Datei* zDatei)
  121. : ReferenceCounter()
  122. {
  123. zDatei->lese((char*)&id, 4);
  124. zDatei->lese((char*)&maxPunkte, 4);
  125. zDatei->lese((char*)&beschleunigung, 8);
  126. zDatei->lese((char*)&maxStabilität, 4);
  127. zDatei->lese((char*)&maxEnergie, 4);
  128. zDatei->lese((char*)&reparatur, 8);
  129. zDatei->lese((char*)&akkuLeistung, 8);
  130. zDatei->lese((char*)&laserIntensität, 4);
  131. zDatei->lese((char*)&laserEffizienz, 4);
  132. zDatei->lese((char*)&laserTempo, 4);
  133. zDatei->lese((char*)&wendigkeit, 8);
  134. zDatei->lese((char*)&antriebEffizienz, 8);
  135. zDatei->lese((char*)&energieSchild, 8);
  136. zDatei->lese((char*)&energieSchildEffizienz, 8);
  137. zDatei->lese((char*)&punkte, 4);
  138. }