[Orxonox-commit 1555] r6273 - in code/branches/presentation2/src: modules/overlays/hud orxonox

scheusso at orxonox.net scheusso at orxonox.net
Tue Dec 8 11:48:52 CET 2009


Author: scheusso
Date: 2009-12-08 11:48:52 +0100 (Tue, 08 Dec 2009)
New Revision: 6273

Modified:
   code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
   code/branches/presentation2/src/orxonox/Radar.cc
Log:
radar working again (also focus incl. cycleNavigationFocus)


Modified: code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc	2009-12-08 09:51:08 UTC (rev 6272)
+++ code/branches/presentation2/src/modules/overlays/hud/HUDNavigation.cc	2009-12-08 10:48:52 UTC (rev 6273)
@@ -40,6 +40,8 @@
 #include "core/XMLPort.h"
 #include "Scene.h"
 #include "Radar.h"
+#include "controllers/HumanController.h"
+#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {
@@ -252,11 +254,10 @@
 
     float HUDNavigation::getDist2Focus() const
     {
-/*
-        if (Radar::getInstance().getFocus())
-            return (Radar::getInstance().getFocus()->getRVWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
+        Radar* radar = this->getOwner()->getScene()->getRadar();
+        if (radar->getFocus() && HumanController::getLocalControllerEntityAsPawn())
+            return (radar->getFocus()->getRVWorldPosition() - HumanController::getLocalControllerEntityAsPawn()->getWorldPosition()).length();
         else
-*/
             return 0;
     }
 

Modified: code/branches/presentation2/src/orxonox/Radar.cc
===================================================================
--- code/branches/presentation2/src/orxonox/Radar.cc	2009-12-08 09:51:08 UTC (rev 6272)
+++ code/branches/presentation2/src/orxonox/Radar.cc	2009-12-08 10:48:52 UTC (rev 6273)
@@ -39,12 +39,15 @@
 #include "core/ConsoleCommand.h"
 #include "core/ObjectList.h"
 #include "interfaces/RadarListener.h"
+#include "controllers/HumanController.h"
+#include "worldentities/pawns/Pawn.h"
 
 namespace orxonox
 {
 
     Radar::Radar()
         : focus_(0)
+        , itFocus_(0)
         , objectTypeCounter_(0)
     {
         // TODO: make this mapping configurable. Maybe there's a possibility with self configured
@@ -117,21 +120,21 @@
 
     void Radar::cycleFocus()
     {
-        if (ObjectList<RadarViewable>::begin() == 0)
+        if (ObjectList<RadarViewable>::begin() == ObjectList<RadarViewable>::end())
         {
             // list is empty
             this->itFocus_ = 0;
             this->focus_ = 0;
         }
-/*
-        else if (this->owner_)
+
+        else if (HumanController::getLocalControllerEntityAsPawn())
         {
-            Vector3 localPosition = this->owner_->getPosition();
+            Vector3 localPosition = HumanController::getLocalControllerEntityAsPawn()->getWorldPosition();
             Vector3 targetPosition = localPosition;
-            if (*(this->itFocus_))
+            if (this->itFocus_ && *(this->itFocus_))
                 targetPosition = this->itFocus_->getRVWorldPosition();
 
-            // find the closed object further away than targetPosition
+            // find the closest object further away than targetPosition
             float currentDistance = localPosition.squaredDistance(targetPosition);
             float nextDistance = FLT_MAX;
             float minimumDistance = FLT_MAX;
@@ -139,7 +142,7 @@
 
             for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it)
             {
-                if (*it == static_cast<RadarViewable*>(this)->owner_)
+                if (*it == static_cast<RadarViewable*>(HumanController::getLocalControllerEntityAsPawn()))
                     continue;
 
                 float targetDistance = localPosition.squaredDistance((*it)->getRVWorldPosition());
@@ -166,7 +169,6 @@
                 this->focus_ = *(this->itFocus_);
             }
         }
-*/
     }
 
     void Radar::releaseFocus()




More information about the Orxonox-commit mailing list