فهرست منبع

Fehler behoben und lebensanzeige von Objekten optional

Kolja Strohm 5 سال پیش
والد
کامیت
4007ae4e74

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

@@ -154,7 +154,8 @@ ObjektTool::ObjektTool( Schrift *zSchrift, KarteDaten *daten )
     laserCollision = initKontrollKnopf( 150, 720, 145, 20, zSchrift, KontrollKnopf::Style::Normal, "Laser Kollision" );
     neutral = initKontrollKnopf( 0, 745, 145, 20, zSchrift, KontrollKnopf::Style::Normal, "Neutral" );
     erfahrung = initKontrollKnopf( 150, 745, 145, 20, zSchrift, KontrollKnopf::Style::Normal, "Treffer Erfahrung" );
-    speichern = initKnopf( 0, 770, 100, 20, zSchrift, Knopf::Style::Normal, "Speichern" );
+    lebensAnzeige = initKontrollKnopf( 0, 770, 145, 20, zSchrift, KontrollKnopf::Style::Normal, "Lebensanzeige" );
+    speichern = initKnopf( 0, 795, 100, 20, zSchrift, Knopf::Style::Normal, "Speichern" );
     speichern->setMausEreignis( [ this ]( void *p, void *o, MausEreignis me )
     {
         if( me.id == ME_RLinks )
@@ -185,13 +186,15 @@ ObjektTool::ObjektTool( Schrift *zSchrift, KarteDaten *daten )
                         o->style |= 0x10;
                     if( erfahrung->hatStyle( KontrollKnopf::Style::Selected ) )
                         o->style |= 0x20;
+                    if( lebensAnzeige->hatStyle( KontrollKnopf::Style::Selected ) )
+                        o->style |= 0x40;
                     o->update();
                 } );
             } );
         }
         return 1;
     } );
-    löschen = initKnopf( 105, 770, 100, 20, zSchrift, Knopf::Style::Normal, "Löschen" );
+    löschen = initKnopf( 105, 795, 100, 20, zSchrift, Knopf::Style::Normal, "Löschen" );
     löschen->setMausEreignis( [ this ]( void *p, void *o, MausEreignis me )
     {
         if( me.id == ME_RLinks )
@@ -236,6 +239,7 @@ ObjektTool::~ObjektTool()
     laserCollision->release();
     neutral->release();
     erfahrung->release();
+    lebensAnzeige->release();
     speichern->release();
     löschen->release();
     daten->release();
@@ -280,6 +284,7 @@ void ObjektTool::doMausEreignis( MausEreignis & me )
     laserCollision->doMausEreignis( me );
     neutral->doMausEreignis( me );
     erfahrung->doMausEreignis( me );
+    lebensAnzeige->doMausEreignis( me );
     speichern->doMausEreignis( me );
     löschen->doMausEreignis( me );
     me.mx += pos.x;
@@ -330,6 +335,7 @@ bool ObjektTool::tick( double tickVal )
     rend |= laserCollision->tick( tickVal );
     rend |= neutral->tick( tickVal );
     rend |= erfahrung->tick( tickVal );
+    rend |= lebensAnzeige->tick( tickVal );
     rend |= speichern->tick( tickVal );
     rend |= löschen->tick( tickVal );
     return RightTool::tick( tickVal );
@@ -363,6 +369,7 @@ void ObjektTool::render( Bild & rObj )
         laserCollision->render( rObj );
         neutral->render( rObj );
         erfahrung->render( rObj );
+        lebensAnzeige->render( rObj );
         speichern->render( rObj );
         löschen->render( rObj );
         team->render( rObj );
@@ -402,6 +409,7 @@ void ObjektTool::selectObject( int id )
         laserCollision->removeStyle( KontrollKnopf::Style::Sichtbar );
         neutral->removeStyle( KontrollKnopf::Style::Sichtbar );
         erfahrung->removeStyle( KontrollKnopf::Style::Sichtbar );
+        lebensAnzeige->removeStyle( KontrollKnopf::Style::Sichtbar );
         speichern->removeStyle( M2DVorschau::Style::Sichtbar );
         löschen->removeStyle( KontrollKnopf::Style::Sichtbar );
     }
@@ -437,6 +445,7 @@ void ObjektTool::selectObject( int id )
         laserCollision->setStyle( KontrollKnopf::Style::Selected, ( o->style | 0x8 ) == o->style );
         neutral->setStyle( KontrollKnopf::Style::Selected, ( o->style | 0x10 ) == o->style );
         erfahrung->setStyle( KontrollKnopf::Style::Selected, ( o->style | 0x20 ) == o->style );
+        lebensAnzeige->setStyle( KontrollKnopf::Style::Selected, ( o->style | 0x40 ) == o->style );
         changeModel->addStyle( M2DVorschau::Style::Sichtbar );
         changeTextur->addStyle( M2DVorschau::Style::Sichtbar );
         stabilitätT->addStyle( M2DVorschau::Style::Sichtbar );
@@ -456,6 +465,7 @@ void ObjektTool::selectObject( int id )
         laserCollision->addStyle( KontrollKnopf::Style::Sichtbar );
         neutral->addStyle( KontrollKnopf::Style::Sichtbar );
         erfahrung->addStyle( KontrollKnopf::Style::Sichtbar );
+        lebensAnzeige->addStyle( KontrollKnopf::Style::Sichtbar );
         speichern->addStyle( M2DVorschau::Style::Sichtbar );
         löschen->addStyle( KontrollKnopf::Style::Sichtbar );
     }

+ 1 - 0
Asteroids/Editor/Interface/RightTools/ObjektOptionen/ObjektOptionen.h

@@ -34,6 +34,7 @@ namespace Editor
         KontrollKnopf *laserCollision;
         KontrollKnopf *neutral;
         KontrollKnopf *erfahrung;
+        KontrollKnopf *lebensAnzeige;
         Knopf *speichern;
         Knopf *löschen;
         KarteDaten *daten;

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

@@ -9,6 +9,9 @@ SpielObjekt::SpielObjekt( ObjektStr *zStr, Schrift *zSchrift )
     : Model2DObject()
 {
     id = zStr->id;
+    position = zStr->pos;
+    rotation = zStr->rot;
+    size = zStr->scale;
     style = zStr->style;
     stabilität = zStr->maxStabilität;
     energie = zStr->maxEnergie;
@@ -133,7 +136,7 @@ void SpielObjekt::render( Mat3<float> & kamMat, Bild & zRObj, const char *kamNam
     if( !amLeben )
         return;
     Model2DObject::render( kamMat, zRObj, kamName );
-    if( Text( "minimap" ).istGleich( kamName ) )
+    if( Text( "minimap" ).istGleich( kamName ) || ( style | 0x40 ) != style )
         return;
     nText->setPosition( (Punkt)( kamMat * ( getPosition() - Punkt( 76, (int)( zModel()->maxP.y * getSize() ) + 30 ) ) ) );
     nText->setText( Text( " (" ) + level + ")" );