瀏覽代碼

Iteratoren werden nun verwendet

Kolja Strohm 6 年之前
父節點
當前提交
e7875ae543

+ 6 - 6
Asteroids/Editor/Editor.cpp

@@ -141,8 +141,8 @@ void AsteroidsEditor::setSichtbar()
 void AsteroidsEditor::doMausEreignis( MausEreignis &me )
 {
     c.lock();
-    for( auto i = dialogs->getArray(); i.set && i.var; i++ )
-        i.var->doMausEreignis( me );
+    for( auto i = dialogs->getIterator(); i && i._; i++ )
+        i->doMausEreignis( me );
     bool dialogActive = dialogs->hat( 0 );
     int anz = dialogs->getEintragAnzahl();
     c.unlock();
@@ -174,8 +174,8 @@ void AsteroidsEditor::doMausEreignis( MausEreignis &me )
 void AsteroidsEditor::doTastaturEreignis( TastaturEreignis &te )
 {
     c.lock();
-    for( auto i = dialogs->getArray(); i.set && i.var; i++ )
-        i.var->doTastaturEreignis( te );
+    for( auto i = dialogs->getIterator(); i && i._; i++ )
+        i->doTastaturEreignis( te );
     int anz = dialogs->getEintragAnzahl();
     c.unlock();
     if( anz == 0 )
@@ -216,8 +216,8 @@ bool AsteroidsEditor::tick( double z )
         rend |= laden->tick( z );
     rend |= i->tick( z );
     c.lock();
-    for( auto i = dialogs->getArray(); i.set && i.var; i++ )
-        rend |= i.var->tick( z );
+    for( auto i = dialogs->getIterator(); i && i._; i++ )
+        rend |= i->tick( z );
     c.unlock();
     bool tmp = rend;
     rend = 0;

+ 2 - 2
Asteroids/Editor/Interface/RightTools/RightTools.cpp

@@ -113,8 +113,8 @@ void RightTools::render( Bild &rObj )
 void RightTools::selectTool( int index )
 {
     int i = 0;
-    for( auto e = tools->getArray(); e.set; e++ )
-        e.var->setStyle( Zeichnung::Style::Sichtbar, i++ == index );
+    for( auto e = tools->getIterator(); e; e++ )
+        e->setStyle( Zeichnung::Style::Sichtbar, i++ == index );
 }
 
 RightTools *RightTools::getThis()

+ 10 - 10
Asteroids/Editor/Karte/EditorKarte.cpp

@@ -20,12 +20,12 @@ KarteDaten::~KarteDaten()
     if( isRunning() )
         warteAufThread( INT_MAX );
     cs.lock();
-    for( auto i = objekte.getArray(); i.set; i++ )
-        delete i.var;
-    for( auto i = spieler.getArray(); i.set; i++ )
-        delete i.var;
-    for( auto i = teams.getArray(); i.set; i++ )
-        delete i.var;
+    for( auto i = objekte.getIterator(); i; i++ )
+        delete i;
+    for( auto i = spieler.getIterator(); i; i++ )
+        delete i;
+    for( auto i = teams.getIterator(); i; i++ )
+        delete i;
     sts->release();
     client->release();
 }
@@ -152,9 +152,9 @@ int KarteDaten::getSpielerIndexById( int id )
 {
     int index = 0;
     cs.lock();
-    for( auto i = spieler.getArray(); i.set; i++ )
+    for( auto i = spieler.getIterator(); i; i++ )
     {
-        if( i.var->id == id )
+        if( i->id == id )
             break;
         index++;
     }
@@ -171,9 +171,9 @@ int KarteDaten::getTeamIndexById( int id )
 {
     int index = 0;
     cs.lock();
-    for( auto i = teams.getArray(); i.set; i++ )
+    for( auto i = teams.getIterator(); i; i++ )
     {
-        if( i.var->id == id )
+        if( i->id == id )
             break;
         index++;
     }

+ 19 - 19
Asteroids/Spiel/Karte/Karte.cpp

@@ -113,20 +113,20 @@ Spieler *Karte::createSpieler( int sNum, Schrift *zSchrift, KSGClient::Informati
     if( sNum < 0 || sNum >= spielerAnzahl )
         return 0;
     SpielerStr *player = 0;
-    for( auto s = spieler->getArray(); s.set; s++ )
+    for( auto s = spieler->getIterator(); s; s++ )
     {
-        if( s.var->id == sNum + 1 )
-            player = s.var;
+        if( s->id == sNum + 1 )
+            player = s;
     }
     if( !player )
         return 0;
     Spieler *ret = new Spieler( zInfoK, zSchrift, player );
-    for( auto i = &ressources->getArray(); i && i->set && i->var; i = i->next )
+    for( auto i = ressources->getIterator(); i && i && i._; i++ )
     {
-        if( i->var->getId() == player->m2d )
-            ret->setModelData( i->var->zReccourceM2()->getThis(), zFStart, zFBurn );
-        if( i->var->getId() == player->bild )
-            ret->setSpielerFarbe( spielerFarbe->hat( sNum ) ? spielerFarbe->get( sNum ) : 0, i->var->zReccourceTxt() );
+        if( i->getId() == player->m2d )
+            ret->setModelData( i->zReccourceM2()->getThis(), zFStart, zFBurn );
+        if( i->getId() == player->bild )
+            ret->setSpielerFarbe( spielerFarbe->hat( sNum ) ? spielerFarbe->get( sNum ) : 0, i->zReccourceTxt() );
     }
     return ret;
 }
@@ -136,10 +136,10 @@ Team *Karte::createTeam( int tNum ) const
     if( tNum < 0 || tNum >= teamAnzahl )
         return 0;
     TeamStr *team = 0;
-    for( auto t = teams->getArray(); t.set; t++ )
+    for( auto t = teams->getIterator(); t; t++ )
     {
-        if( t.var->id == tNum + 1 )
-            team = t.var;
+        if( t->id == tNum + 1 )
+            team = t;
     }
     if( !team )
         return 0;
@@ -152,20 +152,20 @@ SpielObjekt *Karte::createObjekt( int oNum, Schrift *zSchrift ) const
     if( oNum < 0 || oNum > objekte->getEintragAnzahl() )
         return 0;
     ObjektStr *obj = 0;
-    for( auto o = objekte->getArray(); o.set; o++ )
+    for( auto o = objekte->getIterator(); o; o++ )
     {
-        if( o.var->id == oNum + 1 )
-            obj = o.var;
+        if( o->id == oNum + 1 )
+            obj = o;
     }
     if( !obj )
         return 0;
     SpielObjekt *ret = new SpielObjekt( obj, zSchrift );
-    for( auto i = &ressources->getArray(); i && i->set && i->var; i = i->next )
+    for( auto i = ressources->getIterator(); i && i._; i++ )
     {
-        if( i->var->getId() == obj->m2d )
-            ret->setModel( i->var->zReccourceM2()->getThis() );
-        if( i->var->getId() == obj->bild )
-            ret->setTextur( i->var->zReccourceTxt()->getThis() );
+        if( i->getId() == obj->m2d )
+            ret->setModel( i->zReccourceM2()->getThis() );
+        if( i->getId() == obj->bild )
+            ret->setTextur( i->zReccourceTxt()->getThis() );
     }
     return ret;
 }

+ 1 - 1
Asteroids/Spiel/Objekt/SpielObjekt.cpp

@@ -78,7 +78,7 @@ bool SpielObjekt::tick( const WeltInfo &info, double zeit )
     return 1;
 }
 
-void SpielObjekt::renderLeben( Mat3<float> &kamMat, Bild &zRObj )
+void SpielObjekt::renderLeben( const Mat3<float> &kamMat, Bild &zRObj )
 {
 	nText->setPosition( (Punkt)( kamMat * (getPosition() - Punkt( 76, (int)( zModel()->maxP.y * getSize() ) + 30 ) ) ) );
 	nText->render( zRObj );

+ 1 - 1
Asteroids/Spiel/Objekt/SpielObjekt.h

@@ -36,7 +36,7 @@ public:
 	void setTextur( Bild *textur );
 	void setTeam( Team *team );
 	bool tick( const WeltInfo &info, double zeit ) override;
-	void renderLeben( Mat3<float> &kamMat, Bild &zRObj );
+	void renderLeben( const Mat3<float> &kamMat, Bild &zRObj );
 	// constant
 	Team *zTeam() const;
 };

+ 4 - 4
Asteroids/Spiel/SpielKlasse.cpp

@@ -578,8 +578,8 @@ void SpielKlasse::stknVerarbeitung()
 					if( spieler->z( i )->getSpielerNummer() == sNum )
 					{
 						Team *tmp = spieler->z( i )->zTeam();
-						for( auto *j = &tmp->spieler->getArray(); j && j->set && j->var; j = j->next )
-							j->var->resetToSaveTime( zeit, welt->getWorldInfo() );
+						for( auto j = tmp->spieler->getIterator(); j && j._; j++ )
+							j->resetToSaveTime( zeit, welt->getWorldInfo() );
 						spieler->z( i )->setSkill( art );
 						tmp->akkuLeistung = tmp->getAkkuLeistungBonus();
 						tmp->beschleunigung = tmp->getBeschleunigungBonus();
@@ -593,8 +593,8 @@ void SpielKlasse::stknVerarbeitung()
                         tmp->antriebEffizienz = tmp->getAntriebEffizienzBonus();
                         tmp->energieSchild = tmp->getEnergieSchildBonus();
                         tmp->energieSchildEffizienz = tmp->getEnergieSchildEffizienzBonus();
-						for( auto *j = &tmp->spieler->getArray(); j && j->set && j->var; j = j->next )
-							j->var->resetToGameTime( spielZeit, welt->getWorldInfo() );
+						for( auto j = tmp->spieler->getIterator(); j && j._; j++ )
+							j->resetToGameTime( spielZeit, welt->getWorldInfo() );
 						break;
 					}
 				}

+ 25 - 25
Asteroids/Spiel/Spieler/Spieler.cpp

@@ -172,52 +172,52 @@ void Spieler::load()
 // nicht constant
 void Spieler::setModelData( Model2DData *data, Animation2DData *zFStart, Animation2DData *zFBurn )
 {
-    for( auto i = data->polygons->getArray(); i.set; i++ )
+    for( auto i = data->polygons->getIterator(); i; i++ )
     {
-        if( i.var.name->istGleich( "engine_l" ) )
+        if( i._.name->istGleich( "engine_l" ) )
         {
-            stL = *i.var.schwerpunkt;
+            stL = *i._.schwerpunkt;
             Vertex l, r;
             for( int j = 0; j < 4; j++ )
             {
-                if( i.var.tKordinaten->get( j ).y == 1.f )
+                if( i._.tKordinaten->get( j ).y == 1.f )
                 {
-                    if( i.var.tKordinaten->get( j ).x == 0.f )
-                        l = i.var.vertex->get( j );
-                    if( i.var.tKordinaten->get( j ).x == 1.f )
-                        r = i.var.vertex->get( j );
+                    if( i._.tKordinaten->get( j ).x == 0.f )
+                        l = i._.vertex->get( j );
+                    if( i._.tKordinaten->get( j ).x == 1.f )
+                        r = i._.vertex->get( j );
                 }
             }
             kL = ( ( l + ( r - l ) * 0.5 ) - stL );
         }
-        if( i.var.name->istGleich( "engine_r" ) )
+        if( i._.name->istGleich( "engine_r" ) )
         {
-            stR = *i.var.schwerpunkt;
+            stR = *i._.schwerpunkt;
             Vertex l, r;
             for( int j = 0; j < 4; j++ )
             {
-                if( i.var.tKordinaten->get( j ).y == 1.f )
+                if( i._.tKordinaten->get( j ).y == 1.f )
                 {
-                    if( i.var.tKordinaten->get( j ).x == 0.f )
-                        l = i.var.vertex->get( j );
-                    if( i.var.tKordinaten->get( j ).x == 1.f )
-                        r = i.var.vertex->get( j );
+                    if( i._.tKordinaten->get( j ).x == 0.f )
+                        l = i._.vertex->get( j );
+                    if( i._.tKordinaten->get( j ).x == 1.f )
+                        r = i._.vertex->get( j );
                 }
             }
             kR = ( ( l + ( r - l ) * 0.5 ) - stR );
         }
-        if( i.var.name->istGleich( "engine_m" ) )
+        if( i._.name->istGleich( "engine_m" ) )
         {
-            stM = *i.var.schwerpunkt;
+            stM = *i._.schwerpunkt;
             Vertex l, r;
             for( int j = 0; j < 4; j++ )
             {
-                if( i.var.tKordinaten->get( j ).y == 1.f )
+                if( i._.tKordinaten->get( j ).y == 1.f )
                 {
-                    if( i.var.tKordinaten->get( j ).x == 0.f )
-                        l = i.var.vertex->get( j );
-                    if( i.var.tKordinaten->get( j ).x == 1.f )
-                        r = i.var.vertex->get( j );
+                    if( i._.tKordinaten->get( j ).x == 0.f )
+                        l = i._.vertex->get( j );
+                    if( i._.tKordinaten->get( j ).x == 1.f )
+                        r = i._.vertex->get( j );
                 }
             }
             kM = ( ( l + ( r - l ) * 0.5 ) - stM );
@@ -410,11 +410,11 @@ void Spieler::render( Mat3< float > &kamMat, Bild &zRObj )
     __super::render( kamMat, zRObj );
 }
 
-void Spieler::renderLeben( Mat3< float > &kamMat, Bild &zRObj )
+void Spieler::renderLeben( const Mat3< float > &kamMat, Bild &zRObj )
 {
     if( !team || !amLeben )
         return;
-    nText->setPosition( (Punkt)( kamMat * getPosition() - Vertex( 76, (int)( zModel()->maxP.y * getSize() ) + 30 ) ) );
+    nText->setPosition( (Punkt)( kamMat * getPosition() - Vertex( 76, ( zModel()->maxP.y * getSize() ) + 30 ) ) );
     nText->render( zRObj );
     zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 4, 150, team->farbe );
     zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 25, 150, team->farbe );
@@ -548,7 +548,7 @@ void Spieler::calcDeadPlayerObject( Laser *zSchuss )
         npdB->erstelleModell( npaB );
         if( deadPlayer )
             deadPlayer->release();
-        deadPlayer = new DeadPlayer( npdA, npdB, pa, pb, getSpeed() * ( rand() / (double)RAND_MAX ), getSpeed() * ( rand() / (double)RAND_MAX ), getDrehung(), getDrehung(), getDrehungSpeed() * ( rand() / (float)RAND_MAX ), getDrehungSpeed() * ( rand() / (float)RAND_MAX ), zTextur( "ship" ) );
+        deadPlayer = new DeadPlayer( npdA, npdB, pa, pb, getSpeed() * ( rand() / (float)RAND_MAX ), getSpeed() * ( rand() / (float)RAND_MAX ), getDrehung(), getDrehung(), getDrehungSpeed() * ( rand() / (float)RAND_MAX ), getDrehungSpeed() * ( rand() / (float)RAND_MAX ), zTextur( "ship" ) );
     }
 }
 

+ 1 - 1
Asteroids/Spiel/Spieler/Spieler.h

@@ -142,7 +142,7 @@ public:
 	void setTastataturStatus( TastaturStatus ts, bool aktiv, int sZ, const WeltInfo &info );
 	bool tick( const WeltInfo &info, double zeit ) override;
 	void render( Mat3< float > &kamMat, Bild &zRObj ) override;
-	void renderLeben( Mat3< float > &kamMat, Bild &zRObj );
+	void renderLeben( const Mat3< float > &kamMat, Bild &zRObj );
 	void setSkill( int art );
 	void nimmSchaden( double &intensität );
     void calcDeadPlayerObject( Laser *zSchuss );

+ 24 - 24
Asteroids/Spiel/Team/Team.cpp

@@ -55,96 +55,96 @@ void Team::reset()
 double Team::getMaxEnergieBonus() const
 {
 	double ret = maxEnergieS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamMaxEnergieBonus();
+	for( auto i = spieler->getIterator(); i && i; i++ )
+		ret += i->getTeamMaxEnergieBonus();
 	return ret;
 }
 
 double Team::getMaxStabilitätBonus() const
 {
 	double ret = maxStabilitätS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamMaxStabilitätBonus();
+	for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamMaxStabilitätBonus();
 	return ret;
 }
 
 double Team::getReperaturBonus() const
 {
 	double ret = reparaturS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamReparaturBonus();
+	for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamReparaturBonus();
 	return ret;
 }
 
 double Team::getLaserIntensitätBonus() const
 {
 	double ret = laserIntensitätS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamLaserIntensitätBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamLaserIntensitätBonus();
 	return ret;
 }
 
 double Team::getLaserEffizienzBonus() const
 {
 	double ret = laserEffizienzS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamLaserEffizienzBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamLaserEffizienzBonus();
 	return ret;
 }
 
 double Team::getAkkuLeistungBonus() const
 {
 	double ret = akkuLeistungS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamAkkuLeistungBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamAkkuLeistungBonus();
 	return ret;
 }
 
 double Team::getLaserTempoBonus() const
 {
 	double ret = laserTempoS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamLaserTempoBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamLaserTempoBonus();
 	return ret;
 }
 
 double Team::getBeschleunigungBonus() const
 {
 	double ret = beschleunigungS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamBeschleunigungBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamBeschleunigungBonus();
 	return ret;
 }
 
 double Team::getWendigkeitBonus() const
 {
 	double ret = wendigkeitS;
-	for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-		ret += i->var->getTeamWendigkeitBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+		ret += i->getTeamWendigkeitBonus();
 	return ret;
 }
 
 double Team::getAntriebEffizienzBonus() const
 {
     double ret = antriebEffizienzS;
-    for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-        ret += i->var->getTeamAntriebEffizienzBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+        ret += i->getTeamAntriebEffizienzBonus();
     return ret;
 }
 
 double Team::getEnergieSchildBonus() const
 {
     double ret = energieSchildS;
-    for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-        ret += i->var->getTeamEnergieSchildBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+        ret += i->getTeamEnergieSchildBonus();
     return ret;
 }
 
 double Team::getEnergieSchildEffizienzBonus() const
 {
     double ret = energieSchildEffizienzS;
-    for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
-        ret += i->var->getTeamEnergieSchildEffizienzBonus();
+    for( auto i = spieler->getIterator(); i; i++ )
+        ret += i->getTeamEnergieSchildEffizienzBonus();
     return ret;
 }