[Orxonox-commit 691] r3223 - in branches/core4/src: core network network/synchronisable orxonox/objects orxonox/objects/collisionshapes orxonox/objects/controllers orxonox/objects/gametypes orxonox/objects/infos orxonox/objects/items orxonox/objects/pickup orxonox/objects/quest orxonox/objects/weaponsystem/projectiles orxonox/objects/worldentities orxonox/objects/worldentities/pawns orxonox/objects/worldentities/triggers orxonox/overlays/hud orxonox/overlays/map
rgrieder at orxonox.net
rgrieder at orxonox.net
Tue Jun 23 19:28:49 CEST 2009
Author: rgrieder
Date: 2009-06-23 19:28:48 +0200 (Tue, 23 Jun 2009)
New Revision: 3223
Modified:
branches/core4/src/core/EventIncludes.h
branches/core4/src/core/Identifier.cc
branches/core4/src/core/Identifier.h
branches/core4/src/core/Iterator.h
branches/core4/src/core/OrxonoxClass.h
branches/core4/src/core/XMLPort.h
branches/core4/src/network/NetworkFunction.h
branches/core4/src/network/synchronisable/Synchronisable.cc
branches/core4/src/orxonox/objects/Level.cc
branches/core4/src/orxonox/objects/Scene.cc
branches/core4/src/orxonox/objects/collisionshapes/CollisionShape.cc
branches/core4/src/orxonox/objects/controllers/ArtificialController.cc
branches/core4/src/orxonox/objects/controllers/HumanController.cc
branches/core4/src/orxonox/objects/gametypes/Pong.cc
branches/core4/src/orxonox/objects/gametypes/TeamBaseMatch.cc
branches/core4/src/orxonox/objects/gametypes/TeamDeathmatch.cc
branches/core4/src/orxonox/objects/infos/PlayerInfo.cc
branches/core4/src/orxonox/objects/items/Engine.cc
branches/core4/src/orxonox/objects/pickup/PickupCollection.cc
branches/core4/src/orxonox/objects/pickup/PickupSpawner.cc
branches/core4/src/orxonox/objects/quest/QuestManager.cc
branches/core4/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc
branches/core4/src/orxonox/objects/worldentities/Attacher.cc
branches/core4/src/orxonox/objects/worldentities/BigExplosion.cc
branches/core4/src/orxonox/objects/worldentities/ControllableEntity.cc
branches/core4/src/orxonox/objects/worldentities/MovableEntity.cc
branches/core4/src/orxonox/objects/worldentities/PongBall.cc
branches/core4/src/orxonox/objects/worldentities/PongCenterpoint.cc
branches/core4/src/orxonox/objects/worldentities/WorldEntity.cc
branches/core4/src/orxonox/objects/worldentities/pawns/Destroyer.cc
branches/core4/src/orxonox/objects/worldentities/pawns/SpaceShip.cc
branches/core4/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc
branches/core4/src/orxonox/objects/worldentities/triggers/CheckPoint.cc
branches/core4/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
branches/core4/src/orxonox/overlays/hud/AnnounceMessage.cc
branches/core4/src/orxonox/overlays/hud/DeathMessage.cc
branches/core4/src/orxonox/overlays/hud/GametypeStatus.cc
branches/core4/src/orxonox/overlays/hud/HUDHealthBar.cc
branches/core4/src/orxonox/overlays/hud/HUDRadar.cc
branches/core4/src/orxonox/overlays/hud/HUDSpeedBar.cc
branches/core4/src/orxonox/overlays/hud/HUDTimer.cc
branches/core4/src/orxonox/overlays/hud/KillMessage.cc
branches/core4/src/orxonox/overlays/hud/PongScore.cc
branches/core4/src/orxonox/overlays/hud/TeamBaseMatchScore.cc
branches/core4/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
branches/core4/src/orxonox/overlays/map/Map.cc
Log:
Add a new core-feature: orxonox_cast<T>()
The functions casts objects like dynamic_cast, but uses the identifier instead for MSVC (much faster) and is just a redirection to dynamic_cast for GCC.
Also replaced almost all dynamic_casts (of course only those related to the class hierarchy).
Modified: branches/core4/src/core/EventIncludes.h
===================================================================
--- branches/core4/src/core/EventIncludes.h 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/core/EventIncludes.h 2009-06-23 17:28:48 UTC (rev 3223)
@@ -53,7 +53,7 @@
containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \
this->addEventContainer(eventname, containername); \
} \
- event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \
+ event.castedOriginator_ = orxonox::orxonox_cast<subclassname>(event.originator_); \
containername->process(this, event)
#define ORXONOX_SET_EVENT_GENERIC_TEMPLATE(containername, classname, eventname, functionname, event, subclassname, ...) \
@@ -65,7 +65,7 @@
containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \
this->addEventContainer(eventname, containername); \
} \
- event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \
+ event.castedOriginator_ = orxonox::orxonox_cast<subclassname>(event.originator_); \
containername->process(this, event)
#endif /* _EventIncludes_H__ */
Modified: branches/core4/src/core/Identifier.cc
===================================================================
--- branches/core4/src/core/Identifier.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/core/Identifier.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -46,12 +46,14 @@
// ###############################
// ### Identifier ###
// ###############################
- int Identifier::hierarchyCreatingCounter_s = 0; // Set the static member variable hierarchyCreatingCounter_s to zero (this static member variable is ok: it's used in main(), not before)
+ int Identifier::hierarchyCreatingCounter_s = 0;
+ unsigned int Identifier::classIDCounter_s = 0;
/**
@brief Constructor: No factory, no object created, new ObjectList and a unique networkID.
*/
Identifier::Identifier()
+ : classID_(classIDCounter_s++)
{
this->objects_ = new ObjectListBase(this);
@@ -66,9 +68,8 @@
this->children_ = new std::set<const Identifier*>();
this->directChildren_ = new std::set<const Identifier*>();
- // Use a static variable because the classID gets created before main() and that's why we should avoid static member variables
- static unsigned int classIDcounter_s = 0;
- this->classID_ = classIDcounter_s++;
+ // Default network ID is the class ID
+ this->networkID_ = this->classID_;
}
/**
@@ -243,8 +244,8 @@
*/
void Identifier::setNetworkID(uint32_t id)
{
- Factory::changeNetworkID(this, this->classID_, id);
- this->classID_ = id;
+ Factory::changeNetworkID(this, this->networkID_, id);
+ this->networkID_ = id;
}
/**
Modified: branches/core4/src/core/Identifier.h
===================================================================
--- branches/core4/src/core/Identifier.h 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/core/Identifier.h 2009-06-23 17:28:48 UTC (rev 3223)
@@ -223,11 +223,14 @@
inline static bool isCreatingHierarchy() { return (hierarchyCreatingCounter_s > 0); }
/** @brief Returns the network ID to identify a class through the network. @return the network ID */
- inline const uint32_t getNetworkID() const { return this->classID_; }
+ inline const uint32_t getNetworkID() const { return this->networkID_; }
/** @brief Sets the network ID to a new value. @param id The new value */
void setNetworkID(uint32_t id);
+ /** @brief Returns the unique ID of the class */
+ FORCEINLINE unsigned int getClassID() const { return this->classID_; }
+
void addConfigValueContainer(const std::string& varname, ConfigValueContainer* container);
ConfigValueContainer* getConfigValueContainer(const std::string& varname);
ConfigValueContainer* getLowercaseConfigValueContainer(const std::string& varname);
@@ -304,7 +307,9 @@
std::string name_; //!< The name of the class the Identifier belongs to
BaseFactory* factory_; //!< The Factory, able to create new objects of the given class (if available)
static int hierarchyCreatingCounter_s; //!< Bigger than zero if at least one Identifier stores its parents (its an int instead of a bool to avoid conflicts with multithreading)
- uint32_t classID_; //!< The network ID to identify a class through the network
+ uint32_t networkID_; //!< The network ID to identify a class through the network
+ const unsigned int classID_; //!< Uniquely identifies a class (might not be the same as the networkID_)
+ static unsigned int classIDCounter_s; //!< Static counter for the unique classIDs
bool bHasConfigValues_; //!< True if this class has at least one assigned config value
std::map<std::string, ConfigValueContainer*> configValues_; //!< A map to link the string of configurable variables with their ConfigValueContainer
@@ -426,6 +431,8 @@
{
COUT(5) << "*** ClassIdentifier: Added object to " << this->getName() << "-list." << std::endl;
object->getMetaList().add(this->objects_, this->objects_->add(new ObjectListElement<T>(object)));
+ // Add pointer of type T to the map in the OrxonoxClass instance that enables "dynamic_casts"
+ object->objectPointers_.push_back(std::make_pair(this->getClassID(), reinterpret_cast<void*>(object)));
}
/**
@@ -447,6 +454,31 @@
// ###############################
+ // ### orxonox_cast ###
+ // ###############################
+ /**
+ @brief
+ Casts on object of type OrxonoxClass to any derived type that is
+ registered in the class hierarchy.
+ @return
+ Returns NULL if the cast is not possible
+ @note
+ In case of NULL return (and using MSVC), a dynamic_cast might still be possible if
+ a class forgot to register its objects.
+ Also note that the function is implemented differently for GCC/MSVC.
+ */
+ template <class T, class U>
+ FORCEINLINE T* orxonox_cast(U* source)
+ {
+#ifdef ORXONOX_COMPILER_MSVC
+ return source->template getDerivedPointer<T>(ClassIdentifier<T>::getIdentifier()->getClassID());
+#else
+ return dynamic_cast<T*>(source);
+#endif
+ }
+
+
+ // ###############################
// ### SubclassIdentifier ###
// ###############################
//! The SubclassIdentifier acts almost like an Identifier, but has some prerequisites.
@@ -538,7 +570,7 @@
// Check if the creation was successful
if (newObject)
{
- return dynamic_cast<T*>(newObject);
+ return orxonox_cast<T>(newObject);
}
else
{
Modified: branches/core4/src/core/Iterator.h
===================================================================
--- branches/core4/src/core/Iterator.h 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/core/Iterator.h 2009-06-23 17:28:48 UTC (rev 3223)
@@ -239,7 +239,7 @@
inline T* operator*() const
{
if (this->element_)
- return dynamic_cast<T*>(this->element_->objectBase_);
+ return orxonox_cast<T>(this->element_->objectBase_);
else
return 0;
}
@@ -251,7 +251,7 @@
inline T* operator->() const
{
if (this->element_)
- return dynamic_cast<T*>(this->element_->objectBase_);
+ return orxonox_cast<T>(this->element_->objectBase_);
else
return 0;
}
Modified: branches/core4/src/core/OrxonoxClass.h
===================================================================
--- branches/core4/src/core/OrxonoxClass.h 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/core/OrxonoxClass.h 2009-06-23 17:28:48 UTC (rev 3223)
@@ -49,6 +49,9 @@
*/
class _CoreExport OrxonoxClass
{
+ template <class T>
+ friend class ClassIdentifier;
+
public:
OrxonoxClass();
virtual ~OrxonoxClass();
@@ -100,10 +103,30 @@
bool isParentOf(const OrxonoxClass* object);
bool isDirectParentOf(const OrxonoxClass* object);
+ /**
+ @brief
+ Returns a valid pointer of any derived type that is
+ registered in the class hierarchy.
+ @return
+ Returns NULL if the no pointer was found.
+ */
+ template <class T>
+ FORCEINLINE T* getDerivedPointer(unsigned int classID) const
+ {
+ for (int i = this->objectPointers_.size() - 1; i >= 0; --i)
+ {
+ if (this->objectPointers_[i].first == classID)
+ return reinterpret_cast<T*>(this->objectPointers_[i].second);
+ }
+ return NULL;
+ }
+
private:
Identifier* identifier_; //!< The Identifier of the object
std::set<const Identifier*>* parents_; //!< List of all parents of the object
MetaObjectList* metaList_; //!< MetaObjectList, containing all ObjectLists and ObjectListElements the object is registered in
+ //! 'Fast map' that holds this-pointers of all derived types
+ std::vector<std::pair<unsigned int, void*> > objectPointers_;
};
}
Modified: branches/core4/src/core/XMLPort.h
===================================================================
--- branches/core4/src/core/XMLPort.h 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/core/XMLPort.h 2009-06-23 17:28:48 UTC (rev 3223)
@@ -564,7 +564,7 @@
assert(newObject);
newObject->setLoaderIndentation(object->getLoaderIndentation() + " ");
- O* castedObject = dynamic_cast<O*>(newObject);
+ O* castedObject = orxonox_cast<O>(newObject);
assert(castedObject);
if (this->bLoadBefore_)
Modified: branches/core4/src/network/NetworkFunction.h
===================================================================
--- branches/core4/src/network/NetworkFunction.h 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/network/NetworkFunction.h 2009-06-23 17:28:48 UTC (rev 3223)
@@ -149,32 +149,32 @@
inline void call(uint32_t objectID)
{
if ( Synchronisable::getSynchronisable(objectID)!=0 )
- (*this->functor_)(dynamic_cast<T*>(Synchronisable::getSynchronisable(objectID)));
+ (*this->functor_)(orxonox_cast<T>(Synchronisable::getSynchronisable(objectID)));
}
inline void call(uint32_t objectID, const MultiType& mt1)
{
if ( Synchronisable::getSynchronisable(objectID)!=0 )
- (*this->functor_)(dynamic_cast<T*>(Synchronisable::getSynchronisable(objectID)), mt1);
+ (*this->functor_)(orxonox_cast<T>(Synchronisable::getSynchronisable(objectID)), mt1);
}
inline void call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2)
{
if ( Synchronisable::getSynchronisable(objectID)!=0 )
- (*this->functor_)(dynamic_cast<T*>(Synchronisable::getSynchronisable(objectID)), mt1, mt2);
+ (*this->functor_)(orxonox_cast<T>(Synchronisable::getSynchronisable(objectID)), mt1, mt2);
}
inline void call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3)
{
if ( Synchronisable::getSynchronisable(objectID)!=0 )
- (*this->functor_)(dynamic_cast<T*>(Synchronisable::getSynchronisable(objectID)), mt1, mt2, mt3);
+ (*this->functor_)(orxonox_cast<T>(Synchronisable::getSynchronisable(objectID)), mt1, mt2, mt3);
}
inline void call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4)
{
if ( Synchronisable::getSynchronisable(objectID)!=0 )
- (*this->functor_)(dynamic_cast<T*>(Synchronisable::getSynchronisable(objectID)), mt1, mt2, mt3, mt4);
+ (*this->functor_)(orxonox_cast<T>(Synchronisable::getSynchronisable(objectID)), mt1, mt2, mt3, mt4);
}
inline void call(uint32_t objectID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4, const MultiType& mt5)
{
if ( Synchronisable::getSynchronisable(objectID)!=0 )
- (*this->functor_)(dynamic_cast<T*>(Synchronisable::getSynchronisable(objectID)), mt1, mt2, mt3, mt4, mt5);
+ (*this->functor_)(orxonox_cast<T>(Synchronisable::getSynchronisable(objectID)), mt1, mt2, mt3, mt4, mt5);
}
private:
Modified: branches/core4/src/network/synchronisable/Synchronisable.cc
===================================================================
--- branches/core4/src/network/synchronisable/Synchronisable.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/network/synchronisable/Synchronisable.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -72,7 +72,7 @@
searchcreatorID:
if (creator)
{
- Synchronisable* synchronisable_creator = dynamic_cast<Synchronisable*>(creator);
+ Synchronisable* synchronisable_creator = orxonox_cast<Synchronisable>(creator);
if (synchronisable_creator && synchronisable_creator->objectMode_)
{
this->creatorID = synchronisable_creator->getObjectID();
@@ -160,12 +160,12 @@
return 0;
}
else
- creator = dynamic_cast<BaseObject*>(synchronisable_creator);
+ creator = orxonox_cast<BaseObject>(synchronisable_creator);
}
assert(getSynchronisable(header.getObjectID())==0); //make sure no object with this id exists
BaseObject *bo = id->fabricate(creator);
assert(bo);
- Synchronisable *no = dynamic_cast<Synchronisable *>(bo);
+ Synchronisable *no = orxonox_cast<Synchronisable>(bo);
assert(no);
no->objectID=header.getObjectID();
no->creatorID=header.getCreatorID(); //TODO: remove this
Modified: branches/core4/src/orxonox/objects/Level.cc
===================================================================
--- branches/core4/src/orxonox/objects/Level.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/Level.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -120,7 +120,7 @@
std::cout << "Load Gametype: " << this->gametype_ << std::endl;
- Gametype* rootgametype = dynamic_cast<Gametype*>(identifier->fabricate(this));
+ Gametype* rootgametype = orxonox_cast<Gametype>(identifier->fabricate(this));
this->setGametype(rootgametype);
std::cout << "root gametype: " << rootgametype->getIdentifier()->getName() << std::endl;
Modified: branches/core4/src/orxonox/objects/Scene.cc
===================================================================
--- branches/core4/src/orxonox/objects/Scene.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/Scene.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -325,9 +325,9 @@
{
// get the WorldEntity pointers
WorldEntity* object0 = (WorldEntity*)colObj0->getUserPointer();
- assert(dynamic_cast<WorldEntity*>(object0));
+ assert(orxonox_cast<WorldEntity>(object0));
WorldEntity* object1 = (WorldEntity*)colObj1->getUserPointer();
- assert(dynamic_cast<WorldEntity*>(object1));
+ assert(orxonox_cast<WorldEntity>(object1));
// false means that bullet will assume we didn't modify the contact
bool modified = false;
Modified: branches/core4/src/orxonox/objects/collisionshapes/CollisionShape.cc
===================================================================
--- branches/core4/src/orxonox/objects/collisionshapes/CollisionShape.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/collisionshapes/CollisionShape.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -84,12 +84,12 @@
Synchronisable* parent = Synchronisable::getSynchronisable(this->parentID_);
// Parent can either be a WorldEntity or a CompoundCollisionShape. The reason is that the
// internal collision shape (which is compound) of a WE doesn't get synchronised.
- CompoundCollisionShape* parentCCS = dynamic_cast<CompoundCollisionShape*>(parent);
+ CompoundCollisionShape* parentCCS = orxonox_cast<CompoundCollisionShape>(parent);
if (parentCCS)
parentCCS->attach(this);
else
{
- WorldEntity* parentWE = dynamic_cast<WorldEntity*>(parent);
+ WorldEntity* parentWE = orxonox_cast<WorldEntity>(parent);
if (parentWE)
parentWE->attachCollisionShape(this);
}
@@ -102,7 +102,7 @@
this->parent_ = newParent;
- WorldEntityCollisionShape* parentWECCS = dynamic_cast<WorldEntityCollisionShape*>(newParent);
+ WorldEntityCollisionShape* parentWECCS = orxonox_cast<WorldEntityCollisionShape>(newParent);
if (parentWECCS)
this->parentID_ = parentWECCS->getWorldEntityOwner()->getObjectID();
else
Modified: branches/core4/src/orxonox/objects/controllers/ArtificialController.cc
===================================================================
--- branches/core4/src/orxonox/objects/controllers/ArtificialController.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/controllers/ArtificialController.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -180,18 +180,18 @@
if (entity1->getXMLController())
{
- WaypointPatrolController* wpc = dynamic_cast<WaypointPatrolController*>(entity1->getXMLController());
+ WaypointPatrolController* wpc = orxonox_cast<WaypointPatrolController>(entity1->getXMLController());
if (wpc)
team1 = wpc->getTeam();
}
if (entity2->getXMLController())
{
- WaypointPatrolController* wpc = dynamic_cast<WaypointPatrolController*>(entity2->getXMLController());
+ WaypointPatrolController* wpc = orxonox_cast<WaypointPatrolController>(entity2->getXMLController());
if (wpc)
team2 = wpc->getTeam();
}
- TeamDeathmatch* tdm = dynamic_cast<TeamDeathmatch*>(gametype);
+ TeamDeathmatch* tdm = orxonox_cast<TeamDeathmatch>(gametype);
if (tdm)
{
if (entity1->getPlayer())
@@ -202,7 +202,7 @@
}
TeamBaseMatchBase* base = 0;
- base = dynamic_cast<TeamBaseMatchBase*>(entity1);
+ base = orxonox_cast<TeamBaseMatchBase>(entity1);
if (base)
{
switch (base->getState())
@@ -218,7 +218,7 @@
team1 = -1;
}
}
- base = dynamic_cast<TeamBaseMatchBase*>(entity2);
+ base = orxonox_cast<TeamBaseMatchBase>(entity2);
if (base)
{
switch (base->getState())
Modified: branches/core4/src/orxonox/objects/controllers/HumanController.cc
===================================================================
--- branches/core4/src/orxonox/objects/controllers/HumanController.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/controllers/HumanController.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -160,7 +160,7 @@
{
if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
{
- Pawn* pawn = dynamic_cast<Pawn*>(HumanController::localController_s->controllableEntity_);
+ Pawn* pawn = orxonox_cast<Pawn>(HumanController::localController_s->controllableEntity_);
if (pawn)
pawn->kill();
else if (HumanController::localController_s->player_)
@@ -195,7 +195,7 @@
Pawn* HumanController::getLocalControllerEntityAsPawn()
{
if (HumanController::localController_s)
- return dynamic_cast<Pawn*>(HumanController::localController_s->getControllableEntity());
+ return orxonox_cast<Pawn>(HumanController::localController_s->getControllableEntity());
else
return NULL;
}
Modified: branches/core4/src/orxonox/objects/gametypes/Pong.cc
===================================================================
--- branches/core4/src/orxonox/objects/gametypes/Pong.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/gametypes/Pong.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -143,7 +143,7 @@
if (player && player->getController() && player->getController()->isA(Class(PongAI)))
{
- PongAI* ai = dynamic_cast<PongAI*>(player->getController());
+ PongAI* ai = orxonox_cast<PongAI>(player->getController());
ai->setPongBall(this->ball_);
}
}
Modified: branches/core4/src/orxonox/objects/gametypes/TeamBaseMatch.cc
===================================================================
--- branches/core4/src/orxonox/objects/gametypes/TeamBaseMatch.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/gametypes/TeamBaseMatch.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -53,7 +53,7 @@
// Change the control of the defeated base and respawn it with its initial health
bool TeamBaseMatch::allowPawnDeath(Pawn* victim, Pawn* originator)
{
- TeamBaseMatchBase* base = dynamic_cast<TeamBaseMatchBase*>(victim);
+ TeamBaseMatchBase* base = orxonox_cast<TeamBaseMatchBase>(victim);
if (base)
{
if (!originator)
@@ -86,7 +86,7 @@
// if the player is in the same team as the base, he can't make any damage to it
bool TeamBaseMatch::allowPawnDamage(Pawn* victim, Pawn* originator)
{
- TeamBaseMatchBase* base = dynamic_cast<TeamBaseMatchBase*>(victim);
+ TeamBaseMatchBase* base = orxonox_cast<TeamBaseMatchBase>(victim);
if (base)
{
std::set<TeamBaseMatchBase*>::const_iterator it = this->bases_.find(base);
Modified: branches/core4/src/orxonox/objects/gametypes/TeamDeathmatch.cc
===================================================================
--- branches/core4/src/orxonox/objects/gametypes/TeamDeathmatch.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/gametypes/TeamDeathmatch.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -125,7 +125,7 @@
{
if ((*it)->isA(Class(TeamSpawnPoint)))
{
- TeamSpawnPoint* tsp = dynamic_cast<TeamSpawnPoint*>(*it);
+ TeamSpawnPoint* tsp = orxonox_cast<TeamSpawnPoint>(*it);
if (tsp && (int)tsp->getTeamNumber() != desiredTeamNr)
{
teamSpawnPoints.erase(it++);
@@ -170,7 +170,7 @@
{
if ((*it)->isA(Class(TeamColourable)))
{
- TeamColourable* tc = dynamic_cast<TeamColourable*>(*it);
+ TeamColourable* tc = orxonox_cast<TeamColourable>(*it);
tc->setTeamColour(this->teamcolours_[it_player->second]);
}
}
Modified: branches/core4/src/orxonox/objects/infos/PlayerInfo.cc
===================================================================
--- branches/core4/src/orxonox/objects/infos/PlayerInfo.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/infos/PlayerInfo.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -185,7 +185,7 @@
if (this->controllableEntityID_ != OBJECTID_UNKNOWN)
{
Synchronisable* temp = Synchronisable::getSynchronisable(this->controllableEntityID_);
- ControllableEntity* entity = dynamic_cast<ControllableEntity*>(temp);
+ ControllableEntity* entity = orxonox_cast<ControllableEntity>(temp);
this->startControl(entity);
}
else
@@ -198,7 +198,7 @@
{
if (this->gtinfoID_ != OBJECTID_UNKNOWN)
{
- this->gtinfo_ = dynamic_cast<GametypeInfo*>(Synchronisable::getSynchronisable(this->gtinfoID_));
+ this->gtinfo_ = orxonox_cast<GametypeInfo>(Synchronisable::getSynchronisable(this->gtinfoID_));
if (!this->gtinfo_)
this->gtinfoID_ = OBJECTID_UNKNOWN;
Modified: branches/core4/src/orxonox/objects/items/Engine.cc
===================================================================
--- branches/core4/src/orxonox/objects/items/Engine.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/items/Engine.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -137,7 +137,7 @@
{
Synchronisable* object = Synchronisable::getSynchronisable(this->shipID_);
if (object)
- this->addToSpaceShip(dynamic_cast<SpaceShip*>(object));
+ this->addToSpaceShip(orxonox_cast<SpaceShip>(object));
}
}
Modified: branches/core4/src/orxonox/objects/pickup/PickupCollection.cc
===================================================================
--- branches/core4/src/orxonox/objects/pickup/PickupCollection.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/pickup/PickupCollection.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -65,7 +65,7 @@
{
Identifier* ident = Class(UsableItem);
if(this->currentUsable_ == NULL && item->isA(ident))
- this->currentUsable_ = dynamic_cast<UsableItem*>(item);
+ this->currentUsable_ = orxonox_cast<UsableItem>(item);
this->items_.insert( std::pair<std::string, BaseItem*> (item->getPickupIdentifier(), item) );
return true;
@@ -335,7 +335,7 @@
for (std::multimap<std::string, BaseItem*>::iterator it = this->items_.begin(); it != this->items_.end(); it++)
{
if ((*it).second->isA(ident))
- ret.push_back(dynamic_cast<EquipmentItem*>((*it).second));
+ ret.push_back(orxonox_cast<EquipmentItem>((*it).second));
}
return ret;
@@ -352,7 +352,7 @@
for (std::multimap<std::string, BaseItem*>::iterator it = this->items_.begin(); it != this->items_.end(); it++)
{
if ((*it).second->isA(ident))
- ret.push_back(dynamic_cast<PassiveItem*>((*it).second));
+ ret.push_back(orxonox_cast<PassiveItem>((*it).second));
}
return ret;
@@ -369,7 +369,7 @@
for (std::multimap<std::string, BaseItem*>::iterator it = this->items_.begin(); it != this->items_.end(); it++)
{
if ((*it).second->isA(ident))
- ret.push_back(dynamic_cast<UsableItem*>((*it).second));
+ ret.push_back(orxonox_cast<UsableItem>((*it).second));
}
return ret;
Modified: branches/core4/src/orxonox/objects/pickup/PickupSpawner.cc
===================================================================
--- branches/core4/src/orxonox/objects/pickup/PickupSpawner.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/pickup/PickupSpawner.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -85,7 +85,7 @@
// Load the GUI image as soon as the PickupSpawner gets loaded
// = less delays while running
BaseObject* newObject = this->itemTemplate_->getBaseclassIdentifier()->fabricate(this);
- BaseItem* asItem = dynamic_cast<BaseItem*>(newObject);
+ BaseItem* asItem = orxonox_cast<BaseItem>(newObject);
if (asItem)
{
asItem->addTemplate(this->itemTemplate_);
@@ -153,7 +153,7 @@
if (this->isActive() && this->itemTemplate_ && this->itemTemplate_->getBaseclassIdentifier())
{
BaseObject* newObject = this->itemTemplate_->getBaseclassIdentifier()->fabricate(this);
- BaseItem* asItem = dynamic_cast<BaseItem*>(newObject);
+ BaseItem* asItem = orxonox_cast<BaseItem>(newObject);
if (asItem)
{
asItem->setPickupIdentifier(this->itemTemplateName_);
Modified: branches/core4/src/orxonox/objects/quest/QuestManager.cc
===================================================================
--- branches/core4/src/orxonox/objects/quest/QuestManager.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/quest/QuestManager.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -238,7 +238,7 @@
COUT(1) << "Error: GUIOverlay has no owner. " << std::endl;
return NULL;
}
- player = dynamic_cast<PlayerInfo*>(obj);
+ player = orxonox_cast<PlayerInfo>(obj);
QuestContainer* root = NULL;
QuestContainer* current = NULL;
Modified: branches/core4/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc
===================================================================
--- branches/core4/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -125,7 +125,7 @@
if (this->owner_)
dmg = this->owner_->getPickups().processModifiers(ModifierType::Damage, dmg, false);
- Pawn* victim = dynamic_cast<Pawn*>(otherObject);
+ Pawn* victim = orxonox_cast<Pawn>(otherObject);
if (victim)
victim->damage(dmg, this->owner_);
}
Modified: branches/core4/src/orxonox/objects/worldentities/Attacher.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/Attacher.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/Attacher.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -110,7 +110,7 @@
if (this->target_ || this->targetname_ == "")
return;
- WorldEntity* entity = dynamic_cast<WorldEntity*>(object);
+ WorldEntity* entity = orxonox_cast<WorldEntity>(object);
if (entity && entity->getName() == this->targetname_)
{
this->target_ = entity;
Modified: branches/core4/src/orxonox/objects/worldentities/BigExplosion.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/BigExplosion.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/BigExplosion.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -98,39 +98,39 @@
{
Identifier* idDE1 = Class(MovableEntity);
BaseObject* oDE1 = idDE1->fabricate(this);
- this->debrisEntity1_ = dynamic_cast<MovableEntity*>(oDE1);
+ this->debrisEntity1_ = orxonox_cast<MovableEntity>(oDE1);
Identifier* idDE2 = Class(MovableEntity);
BaseObject* oDE2 = idDE2->fabricate(this);
- this->debrisEntity2_ = dynamic_cast<MovableEntity*>(oDE2);
+ this->debrisEntity2_ = orxonox_cast<MovableEntity>(oDE2);
Identifier* idDE3 = Class(MovableEntity);
BaseObject* oDE3 = idDE3 ->fabricate(this);
- this->debrisEntity3_ = dynamic_cast<MovableEntity*>(oDE3);
+ this->debrisEntity3_ = orxonox_cast<MovableEntity>(oDE3);
Identifier* idDE4 = Class(MovableEntity);
BaseObject* oDE4 = idDE4->fabricate(this);
- this->debrisEntity4_ = dynamic_cast<MovableEntity*>(oDE4);
+ this->debrisEntity4_ = orxonox_cast<MovableEntity>(oDE4);
Identifier* idD1 = Class(Model);
BaseObject* oD1 = idD1->fabricate(this);
- this->debris1_ = dynamic_cast<Model*>(oD1);
+ this->debris1_ = orxonox_cast<Model>(oD1);
Identifier* idD2 = Class(Model);
BaseObject* oD2 = idD2->fabricate(this);
- this->debris2_ = dynamic_cast<Model*>(oD2);
+ this->debris2_ = orxonox_cast<Model>(oD2);
Identifier* idD3 = Class(Model);
BaseObject* oD3 = idD3->fabricate(this);
- this->debris3_ = dynamic_cast<Model*>(oD3);
+ this->debris3_ = orxonox_cast<Model>(oD3);
Identifier* idD4 = Class(Model);
BaseObject* oD4 = idD4->fabricate(this);
- this->debris4_ = dynamic_cast<Model*>(oD4);
+ this->debris4_ = orxonox_cast<Model>(oD4);
Identifier* id6 = Class(StaticEntity);
BaseObject* object4 = id6->fabricate(this);
- this->explosion_ = dynamic_cast<StaticEntity*>(object4);
+ this->explosion_ = orxonox_cast<StaticEntity>(object4);
this->debrisSmoke1_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
this->debrisSmoke2_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
@@ -201,20 +201,20 @@
{
Identifier* idf1 = Class(Model);
BaseObject* obj1 = idf1->fabricate(this);
- Model* part1 = dynamic_cast<Model*>(obj1);
+ Model* part1 = orxonox_cast<Model>(obj1);
Identifier* idf2 = Class(Model);
BaseObject* obj2 = idf2->fabricate(this);
- Model* part2 = dynamic_cast<Model*>(obj2);
+ Model* part2 = orxonox_cast<Model>(obj2);
Identifier* idf3 = Class(MovableEntity);
BaseObject* obj3 = idf3->fabricate(this);
- MovableEntity* partEntity1 = dynamic_cast<MovableEntity*>(obj3);
+ MovableEntity* partEntity1 = orxonox_cast<MovableEntity>(obj3);
Identifier* idf4 = Class(MovableEntity);
BaseObject* obj4 = idf4->fabricate(this);
- MovableEntity* partEntity2 = dynamic_cast<MovableEntity*>(obj4);
+ MovableEntity* partEntity2 = orxonox_cast<MovableEntity>(obj4);
partEntity1->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(10,100));
partEntity1->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
Modified: branches/core4/src/orxonox/objects/worldentities/ControllableEntity.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/ControllableEntity.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/ControllableEntity.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -266,7 +266,7 @@
// just do this in case the entity wasn't yet synchronized when the corresponding PlayerInfo got our objectID
if (this->playerID_ != OBJECTID_UNKNOWN)
{
- this->player_ = dynamic_cast<PlayerInfo*>(Synchronisable::getSynchronisable(this->playerID_));
+ this->player_ = orxonox_cast<PlayerInfo>(Synchronisable::getSynchronisable(this->playerID_));
if (this->player_ && (this->player_->getControllableEntity() != this))
this->player_->startControl(this);
}
Modified: branches/core4/src/orxonox/objects/worldentities/MovableEntity.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/MovableEntity.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/MovableEntity.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -75,7 +75,7 @@
{
if (GameMode::isMaster() && enableCollisionDamage_)
{
- Pawn* victim = dynamic_cast<Pawn*>(otherObject);
+ Pawn* victim = orxonox_cast<Pawn>(otherObject);
if (victim)
{
victim->damage(this->collisionDamage_ * (victim->getVelocity() - this->getVelocity()).length());
Modified: branches/core4/src/orxonox/objects/worldentities/PongBall.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/PongBall.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/PongBall.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -230,8 +230,8 @@
if (!this->bat_)
this->bat_ = new PongBat*[2];
if (this->batID_[0] != OBJECTID_UNKNOWN)
- this->bat_[0] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[0]));
+ this->bat_[0] = orxonox_cast<PongBat>(Synchronisable::getSynchronisable(this->batID_[0]));
if (this->batID_[1] != OBJECTID_UNKNOWN)
- this->bat_[1] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1]));
+ this->bat_[1] = orxonox_cast<PongBat>(Synchronisable::getSynchronisable(this->batID_[1]));
}
}
Modified: branches/core4/src/orxonox/objects/worldentities/PongCenterpoint.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/PongCenterpoint.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/PongCenterpoint.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -72,7 +72,7 @@
{
if (this->getGametype() && this->getGametype()->isA(Class(Pong)))
{
- Pong* pong_gametype = dynamic_cast<Pong*>(this->getGametype());
+ Pong* pong_gametype = orxonox_cast<Pong>(this->getGametype());
pong_gametype->setCenterpoint(this);
}
}
Modified: branches/core4/src/orxonox/objects/worldentities/WorldEntity.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/WorldEntity.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/WorldEntity.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -209,7 +209,7 @@
{
if (this->parentID_ != OBJECTID_UNKNOWN)
{
- WorldEntity* parent = dynamic_cast<WorldEntity*>(Synchronisable::getSynchronisable(this->parentID_));
+ WorldEntity* parent = orxonox_cast<WorldEntity>(Synchronisable::getSynchronisable(this->parentID_));
if (parent)
this->attachToParent(parent);
}
Modified: branches/core4/src/orxonox/objects/worldentities/pawns/Destroyer.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/pawns/Destroyer.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/pawns/Destroyer.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -39,7 +39,7 @@
{
RegisterObject(Destroyer);
- UnderAttack* gametype = dynamic_cast<UnderAttack*>(this->getGametype());
+ UnderAttack* gametype = orxonox_cast<UnderAttack>(this->getGametype());
if (gametype)
{
gametype->addDestroyer(this);
Modified: branches/core4/src/orxonox/objects/worldentities/pawns/SpaceShip.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/pawns/SpaceShip.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/pawns/SpaceShip.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -197,7 +197,7 @@
if (identifier)
{
BaseObject* object = identifier->fabricate(this);
- this->engine_ = dynamic_cast<Engine*>(object);
+ this->engine_ = orxonox_cast<Engine>(object);
if (this->engine_)
{
Modified: branches/core4/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -44,7 +44,7 @@
this->state_ = BaseState::uncontrolled;
- TeamBaseMatch* gametype = dynamic_cast<TeamBaseMatch*>(this->getGametype());
+ TeamBaseMatch* gametype = orxonox_cast<TeamBaseMatch>(this->getGametype());
if (gametype)
{
gametype->addBase(this);
@@ -57,7 +57,7 @@
{
this->fireEvent();
- TeamDeathmatch* gametype = dynamic_cast<TeamDeathmatch*>(this->getGametype());
+ TeamDeathmatch* gametype = orxonox_cast<TeamDeathmatch>(this->getGametype());
if (!gametype)
return;
@@ -83,7 +83,7 @@
{
if ((*it)->isA(Class(TeamColourable)))
{
- TeamColourable* tc = dynamic_cast<TeamColourable*>(*it);
+ TeamColourable* tc = orxonox_cast<TeamColourable>(*it);
tc->setTeamColour(colour);
}
}
Modified: branches/core4/src/orxonox/objects/worldentities/triggers/CheckPoint.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/triggers/CheckPoint.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/triggers/CheckPoint.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -84,7 +84,7 @@
{
DistanceTrigger::triggered(bIsTriggered);
- Asteroids* gametype = dynamic_cast<Asteroids*>(this->getGametype());
+ Asteroids* gametype = orxonox_cast<Asteroids>(this->getGametype());
if (gametype)
{
gametype->addTime(addTime_);
Modified: branches/core4/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
===================================================================
--- branches/core4/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -119,7 +119,7 @@
// Iterate through all objects
for (ClassTreeMaskObjectIterator it = this->targetMask_.begin(); it != this->targetMask_.end(); ++it)
{
- WorldEntity* entity = dynamic_cast<WorldEntity*>(*it);
+ WorldEntity* entity = orxonox_cast<WorldEntity>(*it);
if (!entity)
continue;
@@ -130,7 +130,7 @@
// If the target is a player (resp. is a, or is derived from a, ControllableEntity) the triggeringPlayer is set to the target entity.
if(this->isForPlayer())
{
- Pawn* player = dynamic_cast<Pawn*>(entity);
+ Pawn* player = orxonox_cast<Pawn>(entity);
this->setTriggeringPlayer(player);
}
Modified: branches/core4/src/orxonox/overlays/hud/AnnounceMessage.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/AnnounceMessage.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/AnnounceMessage.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -55,6 +55,6 @@
{
SUPER(AnnounceMessage, changedOwner);
- this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+ this->owner_ = orxonox_cast<PlayerInfo>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/DeathMessage.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/DeathMessage.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/DeathMessage.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -55,6 +55,6 @@
{
SUPER(DeathMessage, changedOwner);
- this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+ this->owner_ = orxonox_cast<PlayerInfo>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/GametypeStatus.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/GametypeStatus.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/GametypeStatus.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -85,6 +85,6 @@
{
SUPER(GametypeStatus, changedOwner);
- this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+ this->owner_ = orxonox_cast<PlayerInfo>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/HUDHealthBar.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/HUDHealthBar.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/HUDHealthBar.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -93,7 +93,7 @@
{
SUPER(HUDHealthBar, changedOwner);
- this->owner_ = dynamic_cast<Pawn*>(this->getOwner());
+ this->owner_ = orxonox_cast<Pawn>(this->getOwner());
}
void HUDHealthBar::changedOverlayGroup()
Modified: branches/core4/src/orxonox/overlays/hud/HUDRadar.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/HUDRadar.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/HUDRadar.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -163,6 +163,6 @@
{
SUPER(HUDRadar, changedOwner);
- this->owner_ = dynamic_cast<Pawn*>(this->getOwner());
+ this->owner_ = orxonox_cast<Pawn>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/HUDSpeedBar.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/HUDSpeedBar.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/HUDSpeedBar.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -64,6 +64,6 @@
{
SUPER(HUDSpeedBar, changedOwner);
- this->owner_ = dynamic_cast<SpaceShip*>(this->getOwner());
+ this->owner_ = orxonox_cast<SpaceShip>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/HUDTimer.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/HUDTimer.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/HUDTimer.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -67,6 +67,6 @@
{
SUPER(HUDTimer, changedOwner);
- this->owner_ = dynamic_cast<ControllableEntity*>(this->getOwner());
+ this->owner_ = orxonox_cast<ControllableEntity>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/KillMessage.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/KillMessage.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/KillMessage.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -55,6 +55,6 @@
{
SUPER(KillMessage, changedOwner);
- this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+ this->owner_ = orxonox_cast<PlayerInfo>(this->getOwner());
}
}
Modified: branches/core4/src/orxonox/overlays/hud/PongScore.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/PongScore.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/PongScore.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -132,7 +132,7 @@
SUPER(PongScore, changedOwner);
if (this->getOwner() && this->getOwner()->getGametype())
- this->owner_ = dynamic_cast<Pong*>(this->getOwner()->getGametype());
+ this->owner_ = orxonox_cast<Pong>(this->getOwner()->getGametype());
else
this->owner_ = 0;
}
Modified: branches/core4/src/orxonox/overlays/hud/TeamBaseMatchScore.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/TeamBaseMatchScore.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/TeamBaseMatchScore.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -117,7 +117,7 @@
SUPER(TeamBaseMatchScore, changedOwner);
if (this->getOwner() && this->getOwner()->getGametype())
- this->owner_ = dynamic_cast<TeamBaseMatch*>(this->getOwner()->getGametype());
+ this->owner_ = orxonox_cast<TeamBaseMatch>(this->getOwner()->getGametype());
else
this->owner_ = 0;
}
Modified: branches/core4/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
===================================================================
--- branches/core4/src/orxonox/overlays/hud/UnderAttackHealthBar.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/hud/UnderAttackHealthBar.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -72,12 +72,12 @@
{
SUPER(UnderAttackHealthBar, changedOwner);
- PlayerInfo* player = dynamic_cast<PlayerInfo*>(this->getOwner());
+ PlayerInfo* player = orxonox_cast<PlayerInfo>(this->getOwner());
if (player)
{
this->owner_ = player;
- UnderAttack* ua = dynamic_cast<UnderAttack*>(player->getGametype());
+ UnderAttack* ua = orxonox_cast<UnderAttack>(player->getGametype());
if (ua)
{
this->setOwner(ua->getDestroyer());
Modified: branches/core4/src/orxonox/overlays/map/Map.cc
===================================================================
--- branches/core4/src/orxonox/overlays/map/Map.cc 2009-06-23 16:59:43 UTC (rev 3222)
+++ branches/core4/src/orxonox/overlays/map/Map.cc 2009-06-23 17:28:48 UTC (rev 3223)
@@ -358,7 +358,7 @@
SUPER(Map, changedOwner);
//COUT(0) << "shipptr" << this->getOwner()->getReverseCamera() << std::endl;
- ControllableEntity* entity = dynamic_cast<ControllableEntity*>(this->getOwner());
+ ControllableEntity* entity = orxonox_cast<ControllableEntity>(this->getOwner());
if(entity && entity->getReverseCamera())
{
//COUT(0) << "foo";
More information about the Orxonox-commit
mailing list