Ver código fonte

Geist macht den spieler jetzt für andere Teams unsichtbar

Kolja Strohm 5 anos atrás
pai
commit
1866efb658
2 arquivos alterados com 22 adições e 1 exclusões
  1. 20 1
      StickmanWorldOnline/Spiel.cpp
  2. 2 0
      StickmanWorldOnline/Spiel.h

+ 20 - 1
StickmanWorldOnline/Spiel.cpp

@@ -468,6 +468,22 @@ void Spiel::tick()
     }
 }
 
+Spieler *Spiel::zEigenerSpieler() const
+{
+    for( auto s = spieler.getIterator(); s; s++ )
+    {
+        if( s->getId() == spielerNummer )
+            return s;
+    }
+    return 0;
+}
+
+Team *Spiel::zEigenesTeam() const
+{
+    Spieler *s = zEigenerSpieler();
+    return s ? s->zTeam() : 0;
+}
+
 // nicht constant
 void Spiel::lock()
 {
@@ -829,7 +845,10 @@ void Spiel::render( Bild &zRObj )
             b->render( zRObj );
         // TODO: render deads
         for( auto s = spieler.getIterator(); s; s++ )
-            s->render( zRObj );
+        {
+            if( s->istSichtbar( zEigenesTeam() ) )
+                s->render( zRObj );
+        }
         for( auto s = shots.getIterator(); s; s++ )
             s->render( zRObj );
         // TODO: render timer

+ 2 - 0
StickmanWorldOnline/Spiel.h

@@ -105,6 +105,8 @@ private:
 
     bool istAmLeben() const;
     void tick();
+    Spieler *zEigenerSpieler() const;
+    Team *zEigenesTeam() const;
 
 public:
     // Konstruktor