Strukturen.cpp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. #include "Strukturen.h"
  2. #include <M2Datei.h>
  3. #include <DateiSystem.h>
  4. #include <Text.h>
  5. // Inhalt der RessourceStr Klasse aus Strukturen.h
  6. // Konstruktor
  7. RessourceStr::RessourceStr(Datei* zDatei, SSDatenbankV* zDb, const char* tmpPfad, int kId)
  8. : ReferenceCounter()
  9. {
  10. zDatei->lese((char*)&id, 4);
  11. char len = 0;
  12. zDatei->lese(&len, 1);
  13. Text txt;
  14. txt.fillText('0', len + 1);
  15. zDatei->lese((char*)txt.getText(), len);
  16. pfad = 0;
  17. if (txt.positionVon("spiel:") == 0)
  18. {
  19. pfad = zDb->getSpielPfad(kId);
  20. if (pfad)
  21. pfad->append(txt.getTeilText(6));
  22. }
  23. if (txt.positionVon("map:") == 0)
  24. {
  25. pfad = new Text(tmpPfad);
  26. pfad->append("map/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. }
  40. // Destruktor
  41. RessourceStr::~RessourceStr()
  42. {
  43. if (pfad)
  44. pfad->release();
  45. if (m2d)
  46. m2d->release();
  47. if (bild)
  48. bild->release();
  49. }
  50. // constant
  51. int RessourceStr::getId() const
  52. {
  53. return id;
  54. }
  55. Model2DData* RessourceStr::zReccourceM2() const
  56. {
  57. return m2d;
  58. }
  59. Bild* RessourceStr::zReccourceTxt() const
  60. {
  61. return bild;
  62. }
  63. // Inhalt der ObjektStr Klasse aus Strukturen.h
  64. // Konstruktor
  65. ObjektStr::ObjektStr(Datei* zDatei)
  66. : ReferenceCounter()
  67. {
  68. if (zDatei)
  69. {
  70. zDatei->lese((char*)&pos.x, 4);
  71. zDatei->lese((char*)&pos.y, 4);
  72. zDatei->lese((char*)&rot, 4);
  73. zDatei->lese((char*)&scale, 4);
  74. zDatei->lese((char*)&id, 4);
  75. zDatei->lese((char*)&m2d, 4);
  76. zDatei->lese((char*)&bild, 4);
  77. zDatei->lese((char*)&style, 4);
  78. zDatei->lese((char*)&maxStability, 4);
  79. zDatei->lese((char*)&maxEnergie, 4);
  80. zDatei->lese((char*)&energieRadius, 4);
  81. zDatei->lese((char*)&reparatur, 8);
  82. zDatei->lese((char*)&akkuLeistung, 8);
  83. zDatei->lese(&team, 1);
  84. }
  85. }
  86. void ObjektStr::save(Datei* zDatei) const
  87. {
  88. zDatei->schreibe((char*)&pos.x, 4);
  89. zDatei->schreibe((char*)&pos.y, 4);
  90. zDatei->schreibe((char*)&rot, 4);
  91. zDatei->schreibe((char*)&scale, 4);
  92. zDatei->schreibe((char*)&id, 4);
  93. zDatei->schreibe((char*)&m2d, 4);
  94. zDatei->schreibe((char*)&bild, 4);
  95. zDatei->schreibe((char*)&style, 4);
  96. zDatei->schreibe((char*)&maxStability, 4);
  97. zDatei->schreibe((char*)&maxEnergie, 4);
  98. zDatei->schreibe((char*)&energieRadius, 4);
  99. zDatei->schreibe((char*)&reparatur, 8);
  100. zDatei->schreibe((char*)&akkuLeistung, 8);
  101. zDatei->schreibe((char*)&team, 1);
  102. }
  103. // Inhalt der SpielerStr Klasse aus Strukturen.h
  104. // Konstruktor
  105. SpielerStr::SpielerStr(Datei* zDatei)
  106. : ReferenceCounter()
  107. {
  108. if (zDatei)
  109. {
  110. zDatei->lese((char*)&id, 4);
  111. zDatei->lese((char*)&pos.x, 4);
  112. zDatei->lese((char*)&pos.y, 4);
  113. zDatei->lese((char*)&rot, 8);
  114. zDatei->lese((char*)&beschleunigung, 8);
  115. zDatei->lese((char*)&maxStability, 4);
  116. zDatei->lese((char*)&maxEnergie, 4);
  117. zDatei->lese((char*)&reparatur, 8);
  118. zDatei->lese((char*)&akkuLeistung, 8);
  119. zDatei->lese((char*)&laserIntensity, 4);
  120. zDatei->lese((char*)&laserEffizienz, 4);
  121. zDatei->lese((char*)&laserTempo, 4);
  122. zDatei->lese((char*)&wendigkeit, 8);
  123. zDatei->lese((char*)&antriebEffizienz, 8);
  124. zDatei->lese((char*)&energieSchild, 8);
  125. zDatei->lese((char*)&energieSchildEffizienz, 8);
  126. zDatei->lese((char*)&netzwerk, 4);
  127. zDatei->lese((char*)&skillPunkte, 4);
  128. zDatei->lese((char*)&m2d, 4);
  129. zDatei->lese((char*)&bild, 4);
  130. }
  131. }
  132. void SpielerStr::save(Datei* zDatei) const
  133. {
  134. zDatei->schreibe((char*)&id, 4);
  135. zDatei->schreibe((char*)&pos.x, 4);
  136. zDatei->schreibe((char*)&pos.y, 4);
  137. zDatei->schreibe((char*)&rot, 8);
  138. zDatei->schreibe((char*)&beschleunigung, 8);
  139. zDatei->schreibe((char*)&maxStability, 4);
  140. zDatei->schreibe((char*)&maxEnergie, 4);
  141. zDatei->schreibe((char*)&reparatur, 8);
  142. zDatei->schreibe((char*)&akkuLeistung, 8);
  143. zDatei->schreibe((char*)&laserIntensity, 4);
  144. zDatei->schreibe((char*)&laserEffizienz, 4);
  145. zDatei->schreibe((char*)&laserTempo, 4);
  146. zDatei->schreibe((char*)&wendigkeit, 8);
  147. zDatei->schreibe((char*)&antriebEffizienz, 8);
  148. zDatei->schreibe((char*)&energieSchild, 8);
  149. zDatei->schreibe((char*)&energieSchildEffizienz, 8);
  150. zDatei->schreibe((char*)&netzwerk, 4);
  151. zDatei->schreibe((char*)&skillPunkte, 4);
  152. zDatei->schreibe((char*)&m2d, 4);
  153. zDatei->schreibe((char*)&bild, 4);
  154. }
  155. // Inhalt der TeamStr Klasse aus Strukturen.h
  156. // Konstruktor
  157. TeamStr::TeamStr(Datei* zDatei)
  158. : ReferenceCounter()
  159. {
  160. if (zDatei)
  161. {
  162. zDatei->lese((char*)&id, 4);
  163. zDatei->lese((char*)&maxPunkte, 4);
  164. zDatei->lese((char*)&beschleunigung, 8);
  165. zDatei->lese((char*)&maxStability, 4);
  166. zDatei->lese((char*)&maxEnergie, 4);
  167. zDatei->lese((char*)&reparatur, 8);
  168. zDatei->lese((char*)&akkuLeistung, 8);
  169. zDatei->lese((char*)&laserIntensity, 4);
  170. zDatei->lese((char*)&laserEffizienz, 4);
  171. zDatei->lese((char*)&laserTempo, 4);
  172. zDatei->lese((char*)&wendigkeit, 8);
  173. zDatei->lese((char*)&antriebEffizienz, 8);
  174. zDatei->lese((char*)&energieSchild, 8);
  175. zDatei->lese((char*)&energieSchildEffizienz, 8);
  176. zDatei->lese((char*)&punkte, 4);
  177. }
  178. }
  179. void TeamStr::save(Datei* zDatei) const
  180. {
  181. zDatei->schreibe((char*)&id, 4);
  182. zDatei->schreibe((char*)&maxPunkte, 4);
  183. zDatei->schreibe((char*)&beschleunigung, 8);
  184. zDatei->schreibe((char*)&maxStability, 4);
  185. zDatei->schreibe((char*)&maxEnergie, 4);
  186. zDatei->schreibe((char*)&reparatur, 8);
  187. zDatei->schreibe((char*)&akkuLeistung, 8);
  188. zDatei->schreibe((char*)&laserIntensity, 4);
  189. zDatei->schreibe((char*)&laserEffizienz, 4);
  190. zDatei->schreibe((char*)&laserTempo, 4);
  191. zDatei->schreibe((char*)&wendigkeit, 8);
  192. zDatei->schreibe((char*)&antriebEffizienz, 8);
  193. zDatei->schreibe((char*)&energieSchild, 8);
  194. zDatei->schreibe((char*)&energieSchildEffizienz, 8);
  195. zDatei->schreibe((char*)&punkte, 4);
  196. }