Răsfoiți Sursa

Memory leak behoben

Kolja Strohm 5 ani în urmă
părinte
comite
7ee91103da
1 a modificat fișierele cu 28 adăugiri și 27 ștergeri
  1. 28 27
      Asteroids/Spiel/SpielerGUI/SpielerGUI.cpp

+ 28 - 27
Asteroids/Spiel/SpielerGUI/SpielerGUI.cpp

@@ -128,7 +128,8 @@ SpielerGUI::~SpielerGUI()
 // nicht constant
 void SpielerGUI::update( Spieler *zSpieler )
 {
-    player = (Spieler*)zSpieler->getThis();
+    if( !player )
+        player = (Spieler *)zSpieler->getThis();
     spieler->setText( zSpieler->name->getText() );
     spieler->setSchriftFarbe( zSpieler->farbe );
     Text txt;
@@ -138,12 +139,12 @@ void SpielerGUI::update( Spieler *zSpieler )
     txt.setPrecision( getStellen( zSpieler->maxStabilität ) + 2 );
     txt += zSpieler->maxStabilität;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->maxStabilität ) + 2 );
-    txt += zSpieler->team->maxStabilität;
+    txt.setPrecision( getStellen( zSpieler->zteam->maxStabilität ) + 2 );
+    txt += zSpieler->zteam->maxStabilität;
     txt += ")";
     stabilität->setText( txt );
     stabilitätB->reset();
-    stabilitätB->setAktionAnzahl( (int)( zSpieler->maxStabilität + zSpieler->team->maxStabilität ) );
+    stabilitätB->setAktionAnzahl( (int)( zSpieler->maxStabilität + zSpieler->zteam->maxStabilität ) );
     stabilitätB->aktionPlus( (int)( zSpieler->stabilität ) );
     txt.setPrecision( getStellen( zSpieler->energie ) + 2 );
     txt = zSpieler->energie;
@@ -151,91 +152,91 @@ void SpielerGUI::update( Spieler *zSpieler )
     txt.setPrecision( getStellen( zSpieler->maxEnergie ) + 2 );
     txt += zSpieler->maxEnergie;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->maxEnergie ) + 2 );
-    txt += zSpieler->team->maxEnergie;
+    txt.setPrecision( getStellen( zSpieler->zteam->maxEnergie ) + 2 );
+    txt += zSpieler->zteam->maxEnergie;
     txt += ")";
     energie->setText( txt );
     energieB->reset();
-    energieB->setAktionAnzahl( (int)( zSpieler->maxEnergie + zSpieler->team->maxEnergie ) );
+    energieB->setAktionAnzahl( (int)( zSpieler->maxEnergie + zSpieler->zteam->maxEnergie ) );
     energieB->aktionPlus( (int)( zSpieler->energie ) );
     txt = "Reparatur:";
     txt.setPrecision( getStellen( zSpieler->reparatur ) + 2 );
     txt += zSpieler->reparatur;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->reparatur ) + 2 );
-    txt += zSpieler->team->reparatur;
+    txt.setPrecision( getStellen( zSpieler->zteam->reparatur ) + 2 );
+    txt += zSpieler->zteam->reparatur;
     txt += ")";
     reparatur->setText( txt );
     txt = "Akku:";
     txt.setPrecision( getStellen( zSpieler->akkuLeistung ) + 2 );
     txt += zSpieler->akkuLeistung;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->akkuLeistung ) + 2 );
-    txt += zSpieler->team->akkuLeistung;
+    txt.setPrecision( getStellen( zSpieler->zteam->akkuLeistung ) + 2 );
+    txt += zSpieler->zteam->akkuLeistung;
     txt += ")";
     akkuLeistung->setText( txt );
     txt = "Wendigkeit:";
     txt.setPrecision( getStellen( zSpieler->wendigkeit ) + 2 );
     txt += zSpieler->wendigkeit;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->wendigkeit ) + 2 );
-    txt += zSpieler->team->wendigkeit;
+    txt.setPrecision( getStellen( zSpieler->zteam->wendigkeit ) + 2 );
+    txt += zSpieler->zteam->wendigkeit;
     txt += ")";
     wendigkeit->setText( txt );
     txt = "Beschleunigung:";
     txt.setPrecision( getStellen( zSpieler->beschleunigung ) + 2 );
     txt += zSpieler->beschleunigung;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->beschleunigung ) + 2 );
-    txt += zSpieler->team->beschleunigung;
+    txt.setPrecision( getStellen( zSpieler->zteam->beschleunigung ) + 2 );
+    txt += zSpieler->zteam->beschleunigung;
     txt += ")";
     beschleunigung->setText( txt );
     txt = "Antrieb effizienz:";
     txt.setPrecision( getStellen( zSpieler->antriebEffizienz ) + 2 );
     txt += zSpieler->antriebEffizienz;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->antriebEffizienz ) + 2 );
-    txt += zSpieler->team->antriebEffizienz;
+    txt.setPrecision( getStellen( zSpieler->zteam->antriebEffizienz ) + 2 );
+    txt += zSpieler->zteam->antriebEffizienz;
     txt += ")";
     antriebEffizienz->setText( txt );
     txt = "Laser intensität:";
     txt.setPrecision( getStellen( zSpieler->laserIntensität ) + 2 );
     txt += zSpieler->laserIntensität;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->laserIntensität ) + 2 );
-    txt += zSpieler->team->laserIntensität;
+    txt.setPrecision( getStellen( zSpieler->zteam->laserIntensität ) + 2 );
+    txt += zSpieler->zteam->laserIntensität;
     txt += ")";
     laserIntensität->setText( txt );
     txt = "Laser effizienz:";
     txt.setPrecision( getStellen( zSpieler->laserEffizienz ) + 2 );
     txt += zSpieler->laserEffizienz;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->laserEffizienz ) + 2 );
-    txt += zSpieler->team->laserEffizienz;
+    txt.setPrecision( getStellen( zSpieler->zteam->laserEffizienz ) + 2 );
+    txt += zSpieler->zteam->laserEffizienz;
     txt += ")";
     laserEffizienz->setText( txt );
     txt = "Laser tempo:";
     txt.setPrecision( getStellen( zSpieler->laserTempo ) + 2 );
     txt += zSpieler->laserTempo;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->laserTempo ) + 2 );
-    txt += zSpieler->team->laserTempo;
+    txt.setPrecision( getStellen( zSpieler->zteam->laserTempo ) + 2 );
+    txt += zSpieler->zteam->laserTempo;
     txt += ")";
     laserTempo->setText( txt );
     txt = "Energie Schild:";
     txt.setPrecision( getStellen( zSpieler->energieSchild ) + 2 );
     txt += zSpieler->energieSchild;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->energieSchild ) + 2 );
-    txt += zSpieler->team->energieSchild;
+    txt.setPrecision( getStellen( zSpieler->zteam->energieSchild ) + 2 );
+    txt += zSpieler->zteam->energieSchild;
     txt += ")";
     energieSchild->setText( txt );
     txt = "Schild effizienz:";
     txt.setPrecision( getStellen( zSpieler->energieSchildEffizienz ) + 2 );
     txt += zSpieler->energieSchildEffizienz;
     txt += "\r0xFF00FF00(+";
-    txt.setPrecision( getStellen( zSpieler->team->energieSchildEffizienz ) + 2 );
-    txt += zSpieler->team->energieSchildEffizienz;
+    txt.setPrecision( getStellen( zSpieler->zteam->energieSchildEffizienz ) + 2 );
+    txt += zSpieler->zteam->energieSchildEffizienz;
     txt += ")";
     energieSchildEffizienz->setText( txt );
     txt = "Netzwerk:";