[Orxonox-commit 6402] r11059 - in code/branches/cpp11_v3/src: modules/overlays/hud orxonox/weaponsystem orxonox/worldentities/pawns

landauf at orxonox.net landauf at orxonox.net
Wed Jan 13 22:19:21 CET 2016


Author: landauf
Date: 2016-01-13 22:19:21 +0100 (Wed, 13 Jan 2016)
New Revision: 11059

Modified:
   code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.cc
   code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.h
   code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeaponSystem.cc
   code/branches/cpp11_v3/src/orxonox/weaponsystem/Weapon.h
   code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.cc
   code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.h
   code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.cc
   code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.h
   code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.cc
   code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.h
Log:
return const-ref to collections instead of pointer

Modified: code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.cc	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.cc	2016-01-13 21:19:21 UTC (rev 11059)
@@ -43,7 +43,6 @@
 
         weaponModeHUDActualSize_ = Vector2(0.0f,0.0f);
 
-        weaponModes_ = NULL;
         weaponIndex_ = 0;
         hudWeaponModes_.clear();
 
@@ -147,8 +146,6 @@
             
         destroyHUDChilds();
 
-        weaponModes_ = weapon_->getAllWeaponmodes();
-
         updateSize();
         createHUDChilds();
         positionHUDChilds();
@@ -156,14 +153,14 @@
 
     void HUDWeapon::createHUDChilds()
     {
-        if (weaponModes_ == NULL)
+        if (weapon_ == NULL)
         {
             return;
         }
 
         int positionIndex = 0;
 
-        for (std::multimap<unsigned int, WeaponMode*>::iterator it = weaponModes_->begin(); it != weaponModes_->end(); ++it)
+        for (std::multimap<unsigned int, WeaponMode*>::const_iterator it = weapon_->getAllWeaponmodes().begin(); it != weapon_->getAllWeaponmodes().end(); ++it)
         {
             HUDWeaponMode* hudWeaponMode = new HUDWeaponMode(this->getContext());
             hudWeaponMode->setOwner(owner_);
@@ -207,16 +204,16 @@
 
     void HUDWeapon::updateSize()
     {
-        if (weaponModes_ != NULL)
+        if (weapon_ != NULL)
         {
-            this->setSize(Vector2(weaponModeHUDActualSize_.x,weaponModeHUDActualSize_.y*weaponModes_->size()));
+            this->setSize(Vector2(weaponModeHUDActualSize_.x,weaponModeHUDActualSize_.y*weapon_->getAllWeaponmodes().size()));
             updatePosition();
         }        
     }
 
     void HUDWeapon::updatePosition()
     {
-        if (weaponModes_ != NULL)
+        if (weapon_ != NULL)
         {
             this->setPosition(Vector2(weaponModeHUDActualSize_.x*weaponIndex_,0.0f) + this->positionOffset_);
         }        

Modified: code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.h
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.h	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeapon.h	2016-01-13 21:19:21 UTC (rev 11059)
@@ -93,7 +93,6 @@
         WeakPtr<Pawn> owner_;
         WeakPtr<Weapon> weapon_;
 
-        std::multimap<unsigned int, WeaponMode*>* weaponModes_;
         std::vector<WeakPtr<HUDWeaponMode> > hudWeaponModes_;
 
         Ogre::PanelOverlayElement* overlayElement_;

Modified: code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeaponSystem.cc
===================================================================
--- code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeaponSystem.cc	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/modules/overlays/hud/HUDWeaponSystem.cc	2016-01-13 21:19:21 UTC (rev 11059)
@@ -125,20 +125,23 @@
 
         destroyHUDChilds();
 
-        std::vector<WeaponPack*>* weaponPacks = owner_->getAllWeaponPacks();
-
-        for (std::vector<WeaponPack*>::const_iterator itPacks = weaponPacks->begin(); itPacks != weaponPacks->end(); ++itPacks)
+        if (owner_->getWeaponSystem())
         {
-            std::vector<Weapon*>* weapons = (*itPacks)->getAllWeapons();
+            const std::vector<WeaponPack*>& weaponPacks = owner_->getWeaponSystem()->getAllWeaponPacks();
 
-            for (std::vector<Weapon*>::const_iterator itWeapons = weapons->begin(); itWeapons != weapons->end(); ++itWeapons)
+            for (std::vector<WeaponPack*>::const_iterator itPacks = weaponPacks.begin(); itPacks != weaponPacks.end(); ++itPacks)
             {
-                this->weapons_.push_back(*itWeapons);
+                const std::vector<Weapon*>& weapons = (*itPacks)->getAllWeapons();
+
+                for (std::vector<Weapon*>::const_iterator itWeapons = weapons.begin(); itWeapons != weapons.end(); ++itWeapons)
+                {
+                    this->weapons_.push_back(*itWeapons);
+                }
             }
+
+            createHUDChilds();
+            positionHUDChilds();
         }
-
-        createHUDChilds();
-        positionHUDChilds();
     }
 
     void HUDWeaponSystem::createHUDChilds()

Modified: code/branches/cpp11_v3/src/orxonox/weaponsystem/Weapon.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/weaponsystem/Weapon.h	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/weaponsystem/Weapon.h	2016-01-13 21:19:21 UTC (rev 11059)
@@ -56,8 +56,8 @@
 
             void addWeaponmode(WeaponMode* weaponmode);
             WeaponMode* getWeaponmode(unsigned int index) const;
-            inline std::multimap<unsigned int, WeaponMode*>* getAllWeaponmodes()
-                { return &weaponmodes_; }
+            inline const std::multimap<unsigned int, WeaponMode*>& getAllWeaponmodes() const
+                { return weaponmodes_; }
             inline int getNumWeaponModes() const
                 { return weaponmodes_.size(); }
 

Modified: code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.cc	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.cc	2016-01-13 21:19:21 UTC (rev 11059)
@@ -123,11 +123,6 @@
         return nullptr;
     }
 
-    std::vector<Weapon*>* WeaponPack::getAllWeapons()
-    {
-        return &weapons_;        
-    }    
-
     void WeaponPack::addDefaultWeaponmodeLink(DefaultWeaponmodeLink* link)
     {
         this->links_.insert(link);

Modified: code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.h	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponPack.h	2016-01-13 21:19:21 UTC (rev 11059)
@@ -51,7 +51,8 @@
             void addWeapon(Weapon * weapon);
             void removeWeapon(Weapon * weapon);
             Weapon * getWeapon(unsigned int index) const;
-            std::vector<Weapon*>* getAllWeapons();
+            inline const std::vector<Weapon*>& getAllWeapons() const
+                { return weapons_; }
 
             inline size_t getNumWeapons() const
                 { return this->weapons_.size(); }

Modified: code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.cc	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.cc	2016-01-13 21:19:21 UTC (rev 11059)
@@ -239,11 +239,6 @@
         return nullptr;
     }
 
-    std::vector<WeaponPack *> * WeaponSystem::getAllWeaponPacks()
-    {
-        return &weaponPacks_;
-    }    
-
     bool WeaponSystem::swapWeaponSlots(WeaponSlot * wSlot1, WeaponSlot * wSlot2)
     {
         if (!wSlot1 || !wSlot2)
@@ -347,4 +342,4 @@
             (*it)->updateMunition();
         }
     }
-}
\ No newline at end of file
+}

Modified: code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.h	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/weaponsystem/WeaponSystem.h	2016-01-13 21:19:21 UTC (rev 11059)
@@ -66,7 +66,8 @@
             bool addWeaponPack(WeaponPack * wPack);
             void removeWeaponPack(WeaponPack * wPack);
             WeaponPack * getWeaponPack(unsigned int index) const;
-            std::vector<WeaponPack *> * getAllWeaponPacks();
+            inline const std::vector<WeaponPack *>& getAllWeaponPacks() const
+                { return weaponPacks_; }
 
             // configure slots and firemodes
             bool swapWeaponSlots(WeaponSlot * wSlot1, WeaponSlot * wSlot2);

Modified: code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.cc	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.cc	2016-01-13 21:19:21 UTC (rev 11059)
@@ -512,14 +512,6 @@
             return nullptr;
     }
 
-    std::vector<WeaponPack *> * Pawn::getAllWeaponPacks()
-    {
-        if (this->weaponSystem_)
-            return this->weaponSystem_->getAllWeaponPacks();
-        else
-            return 0;        
-    }
-
     void Pawn::addMunitionXML(Munition* munition)
     {
         if (this->weaponSystem_ && munition)
@@ -599,4 +591,4 @@
             assert(0);
         return BLANKSTRING;
     }
-}
\ No newline at end of file
+}

Modified: code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.h	2016-01-10 19:01:09 UTC (rev 11058)
+++ code/branches/cpp11_v3/src/orxonox/worldentities/pawns/Pawn.h	2016-01-13 21:19:21 UTC (rev 11059)
@@ -169,7 +169,6 @@
             void addWeaponPack(WeaponPack * wPack);
             void addWeaponPackXML(WeaponPack * wPack);
             WeaponPack * getWeaponPack(unsigned int index) const;
-            std::vector<WeaponPack *> * getAllWeaponPacks();
 
             void addMunitionXML(Munition* munition);
             Munition* getMunitionXML() const;




More information about the Orxonox-commit mailing list