[Orxonox-commit 2841] r7544 - in code/trunk: data/levels/templates src/modules/pickup/items
dafrick at orxonox.net
dafrick at orxonox.net
Fri Oct 15 08:14:03 CEST 2010
Author: dafrick
Date: 2010-10-15 08:14:03 +0200 (Fri, 15 Oct 2010)
New Revision: 7544
Modified:
code/trunk/data/levels/templates/pickup_representation_templates.oxt
code/trunk/src/modules/pickup/items/InvisiblePickup.cc
code/trunk/src/modules/pickup/items/InvisiblePickup.h
Log:
Fixing bug I introduced.
Modified: code/trunk/data/levels/templates/pickup_representation_templates.oxt
===================================================================
--- code/trunk/data/levels/templates/pickup_representation_templates.oxt 2010-10-14 21:58:56 UTC (rev 7543)
+++ code/trunk/data/levels/templates/pickup_representation_templates.oxt 2010-10-15 06:14:03 UTC (rev 7544)
@@ -343,7 +343,7 @@
<InvisiblePickup
duration = 5.0
activaionType = "immediate"
- durationType = "once"
+ durationType = "continuous"
/>
</Template>
@@ -367,7 +367,7 @@
<InvisiblePickup
duration = 10.0
activaionType = "immediate"
- durationType = "once"
+ durationType = "continuous"
/>
</Template>
@@ -391,7 +391,7 @@
<InvisiblePickup
duration = 20.0
activaionType = "immediate"
- durationType = "once"
+ durationType = "continuous"
/>
</Template>
Modified: code/trunk/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/InvisiblePickup.cc 2010-10-14 21:58:56 UTC (rev 7543)
+++ code/trunk/src/modules/pickup/items/InvisiblePickup.cc 2010-10-15 06:14:03 UTC (rev 7544)
@@ -115,7 +115,7 @@
if (this->isUsed())
{
- if(this->isContinuous()
+ if(this->isContinuous())
{
if(!this->durationTimer_.isActive() && this->durationTimer_.getRemainingTime() > 0.0f)
{
@@ -134,7 +134,7 @@
{
this->setInvisible(false);
- if(!this->durationTimer_.isActive() && this->durationTimer_.getRemainingTime() == this->getDuration())
+ if(this->isContinuous() || !this->durationTimer_.isActive() && this->durationTimer_.getRemainingTime() == this->getDuration())
{
this->Pickupable::destroy();
}
@@ -212,9 +212,9 @@
/**
@brief
- Sets the duration.
+ Sets the time the InvisibilityPickup will last.
@param duration
- The duration
+ The duration in seconds.
*/
void InvisiblePickup::setDuration(float duration)
{
@@ -229,6 +229,10 @@
}
}
+ /**
+ @brief
+ Helper method. Is called by the Timer as soon as it expires.
+ */
void InvisiblePickup::pickupTimerCallback(void)
{
this->setUsed(false);
Modified: code/trunk/src/modules/pickup/items/InvisiblePickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/InvisiblePickup.h 2010-10-14 21:58:56 UTC (rev 7543)
+++ code/trunk/src/modules/pickup/items/InvisiblePickup.h 2010-10-15 06:14:03 UTC (rev 7544)
@@ -64,6 +64,7 @@
InvisiblePickup(BaseObject* creator); //!< Constructor.
virtual ~InvisiblePickup(); //!< Destructor.
+
virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a HealthPickup object through XML.
virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
@@ -74,15 +75,21 @@
*/
inline bool getInvisibility(bool)
{ return this->invisible_; }
- inline float getDuration()
+ /**
+ @brief Get the time the InvisibilityPickup lasts.
+ @return Returns the time in seconds the InvisibiltyPickup lasts.
+ */
+ inline float getDuration(void)
{ return this->duration_; }
protected:
- bool setInvisible(bool invisibility); //!< Set the Pawn to be invisible or visible again.
- void setDuration(float duration);
void initializeIdentifier(void);
- void pickupTimerCallback(void); //!< Function that gets called when the timer ends.
+ bool setInvisible(bool invisibility); //!< Set the Pawn to be invisible or visible again.
+ void setDuration(float duration); //!< Sets the time the InvisibilityPickup will last.
+
+ void pickupTimerCallback(void); //!< Helper method. Is called by the Timer as soon as it expires.
+
private:
void initialize(void); //!< Initializes the member variables.
Pawn* carrierToPawnHelper(void); //!< Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
More information about the Orxonox-commit
mailing list