Strukturen.cpp 6.6 KB

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