[Orxonox-commit 2181] r6897 - code/branches/hudelements/src/modules/overlays/hud
sfluecki at orxonox.net
sfluecki at orxonox.net
Tue May 11 14:56:32 CEST 2010
Author: sfluecki
Date: 2010-05-11 14:56:32 +0200 (Tue, 11 May 2010)
New Revision: 6897
Modified:
code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc
Log:
Updates in der reinitialisierung von HUDNavigation -> changes in constructor & destructor of HUDNavigation.cc / apparently there is still a segfault when starting the game.
Modified: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc 2010-05-10 15:02:26 UTC (rev 6896)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.cc 2010-05-11 12:56:32 UTC (rev 6897)
@@ -45,6 +45,7 @@
#include "controllers/HumanController.h"
#include "worldentities/pawns/Pawn.h"
#include "worldentities/WorldEntity.h"
+#include "interfaces/RadarViewable.h"
namespace orxonox
{
@@ -54,16 +55,19 @@
: OrxonoxOverlay(creator)
{
RegisterObject(HUDNavigation);
+
+ setFont("Monofur");
+ setTextSize(0.05f);
+ setNavMarkerSize(0.05f);
+
+ respawnObjectSet_ = this->getOwner()->getScene()->getRadar()->getRadarObjects();
+
+ for (respawnObjectSetIt_ = respawnObjectSet_.begin(); respawnObjectSetIt_ != respawnObjectSet_.end();
+ ++respawnObjectSetIt_)
+ {
+ if (!(*respawnObjectSetIt_)->isHumanShip_) addObject(*respawnObjectSetIt_);
+ }
-
- const std::set<RadarViewable*>& respawnObjectSet_ = this->getOwner()->getScene()->getRadar()->getRadarObjects();
- std::set<RadarViewable*>::const_iterator respawnObjectSetIt_;
-
- if(!respawnObjectSet_.empty()){
- for(respawnObjectSetIt_ = respawnObjectSet_.begin(); respawnObjectSetIt_ != respawnObjectSet_.end();
- ++respawnObjectSetIt_){ addObject(*respawnObjectSetIt_);}
- }
-
// // create nav text
// navText_ = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton()
// .createOverlayElement("TextArea", "HUDNavigation_navText_" + getUniqueNumberString()));
@@ -73,49 +77,39 @@
// .createOverlayElement("Panel", "HUDNavigation_navMarker_" + getUniqueNumberString()));
// navMarker_->setMaterialName("Orxonox/NavArrows");
- /*
- // create aim marker
- aimMarker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
- .createOverlayElement("Panel", "HUDNavigation_aimMarker_" + getUniqueNumberString()));
- aimMarker_->setMaterialName("Orxonox/NavCrosshair");
- this->wasOutOfView_ = true; // Ensure the material is changed right the first time..
+ /*
+ // create aim marker
+ aimMarker_ = static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton()
+ .createOverlayElement("Panel", "HUDNavigation_aimMarker_" + getUniqueNumberString()));
+ aimMarker_->setMaterialName("Orxonox/NavCrosshair");
+ this->wasOutOfView_ = true; // Ensure the material is changed right the first time..
- */
- /*
- background_->addChild(navMarker_);*/
+ */
+ /*
+ background_->addChild(navMarker_);*/
// background_->addChild(aimMarker_);
// background_->addChild(navText_);
- // hide at first
+ // hide at first
// this->setVisible(false);
- setFont("Monofur");
- setTextSize(0.05f);
- setNavMarkerSize(0.05f);
+
// setAimMarkerSize(0.04f);
+
}
-HUDNavigation::~HUDNavigation()
-{
+HUDNavigation::~HUDNavigation() {
if (this->isInitialized())
{
- if (!activeObjectList_.empty())
- {
- for (tempRadarViewable = activeObjectList_.begin(); tempRadarViewable!=activeObjectList_.end(); ++tempRadarViewable)
- {
- Ogre::OverlayManager::getSingleton().destroyOverlayElement(tempRadarViewable->second.first);
- Ogre::OverlayManager::getSingleton().destroyOverlayElement(tempRadarViewable->second.second);
-// Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->aimMarker_);
- }
- }
+ activeObjectList_.clear();
+ respawnObjectSet_.clear();
}
}
-void HUDNavigation::XMLPort(Element& xmlElement, XMLPort::Mode mode)
-{
+void HUDNavigation::XMLPort(Element& xmlElement, XMLPort::Mode mode) {
SUPER(HUDNavigation, XMLPort, xmlElement, mode);
XMLPortParam(HUDNavigation, "font", setFont, getFont, xmlElement, mode);
@@ -303,11 +297,11 @@
tempRadarViewable->second.second->setLeft((pos.x + 1.0f + tempRadarViewable->second.first->getWidth()) * 0.5f);
tempRadarViewable->second.second->setTop((-pos.y + 1.0f + tempRadarViewable->second.first->getHeight()) * 0.5f);
}
-
- tempRadarViewable->second.first->show();
- tempRadarViewable->second.second->show();
- }
+ tempRadarViewable->second.first->show();
+ tempRadarViewable->second.second->show();
+ }
+
}
}
@@ -397,6 +391,14 @@
}
}
+// void HUDRadar::changedOwner() {
+// SUPER(HUDRadar, changedOwner);
+//
+// this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
+// assert(this->radarObjects_.size()==0);
+// this->gatherObjects();
+// }
+
// void updateActiveObjectList(map activeObjectList_){}
//
// void HUDNavigation::objectChanged(RadarViewable* viewable){}
Modified: code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h 2010-05-10 15:02:26 UTC (rev 6896)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDNavigation.h 2010-05-11 12:56:32 UTC (rev 6897)
@@ -32,6 +32,7 @@
#include <utility>
#include <map>
#include "overlays/OverlaysPrereqs.h"
+#include "interfaces/RadarViewable.h"
#include "interfaces/RadarListener.h"
#include "util/OgreForwardRefs.h"
@@ -56,6 +57,7 @@
virtual void objectChanged(RadarViewable* viewable) {}
inline float getRadarSensitivity() const {return 1.0f;}
inline void radarTick(float dt) {}
+// virtual void changedOwner();
private:
@@ -110,6 +112,10 @@
typedef std::map<RadarViewable*, std::pair<Ogre::PanelOverlayElement*, Ogre::TextAreaOverlayElement*> > activeObjectListType;
activeObjectListType activeObjectList_;
activeObjectListType::iterator tempRadarViewable;
+
+ typedef std::set<RadarViewable*> respawnObjectSetType;
+ respawnObjectSetType respawnObjectSet_;
+ respawnObjectSetType::iterator respawnObjectSetIt_;
std::string fontName_;
float textSize_;
Modified: code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc 2010-05-10 15:02:26 UTC (rev 6896)
+++ code/branches/hudelements/src/modules/overlays/hud/HUDRadar.cc 2010-05-11 12:56:32 UTC (rev 6897)
@@ -187,10 +187,10 @@
void HUDRadar::changedOwner()
{
- SUPER(HUDRadar, changedOwner);
+ SUPER(HUDRadar, changedOwner);
- this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
- assert(this->radarObjects_.size()==0);
- this->gatherObjects();
- }
+ this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
+ assert(this->radarObjects_.size()==0);
+ this->gatherObjects();
}
+}
More information about the Orxonox-commit
mailing list