Strukturen.cpp 4.3 KB

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