[Orxonox-commit 2842] r7545 - in code/trunk/src: libraries/tools modules/pickup/items

dafrick at orxonox.net dafrick at orxonox.net
Fri Oct 15 08:35:20 CEST 2010


Author: dafrick
Date: 2010-10-15 08:35:20 +0200 (Fri, 15 Oct 2010)
New Revision: 7545

Modified:
   code/trunk/src/libraries/tools/Timer.h
   code/trunk/src/modules/pickup/items/InvisiblePickup.cc
   code/trunk/src/modules/pickup/items/InvisiblePickup.h
Log:
Improvements in InvisiblePickup.


Modified: code/trunk/src/libraries/tools/Timer.h
===================================================================
--- code/trunk/src/libraries/tools/Timer.h	2010-10-15 06:14:03 UTC (rev 7544)
+++ code/trunk/src/libraries/tools/Timer.h	2010-10-15 06:35:20 UTC (rev 7545)
@@ -132,7 +132,7 @@
             /// Unpauses the Timer - continues with the given state.
             inline void unpauseTimer()
                 { this->bActive_ = true; }
-            /// Returns true if the Timer is active (neither stoped nor paused).
+            /// Returns true if the Timer is active (neither stopped nor paused).
             inline bool isActive() const
                 { return this->bActive_; }
             /// Returns the remaining time until the Timer calls the executor.

Modified: code/trunk/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- code/trunk/src/modules/pickup/items/InvisiblePickup.cc	2010-10-15 06:14:03 UTC (rev 7544)
+++ code/trunk/src/modules/pickup/items/InvisiblePickup.cc	2010-10-15 06:35:20 UTC (rev 7545)
@@ -98,7 +98,6 @@
         XMLPortParam(InvisiblePickup, "duration", setDuration, getDuration, xmlelement, mode);
 
         this->initializeIdentifier();
-        this->setDurationType(Pickup::durationTypeOnce_s); // The duration type is always once.
     }
 
     /**
@@ -134,11 +133,11 @@
         {
             this->setInvisible(false);
 
-            if(this->isContinuous() || !this->durationTimer_.isActive() && this->durationTimer_.getRemainingTime() == this->getDuration())
+            if((!this->isContinuous() && this->isImmediate()) || (!this->durationTimer_.isActive() && this->durationTimer_.getRemainingTime() == this->getDuration()))
             {
                 this->Pickupable::destroy();
             }
-            else
+            else if(this->durationTimer_.isActive())
             {
                 this->durationTimer_.pauseTimer();
             }

Modified: code/trunk/src/modules/pickup/items/InvisiblePickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/InvisiblePickup.h	2010-10-15 06:14:03 UTC (rev 7544)
+++ code/trunk/src/modules/pickup/items/InvisiblePickup.h	2010-10-15 06:35:20 UTC (rev 7545)
@@ -53,6 +53,15 @@
         - The <b>duration type</b> It can be chosen to be either <em>once</em> or <em>continuous</em>. For <em>once</em> the InvisiblePickup just makes the Pawn invisible for as long as it is used, for <em>continuous</em> the Pawn is invisible for the specified duration.
         - The <b>duration</b> Specifies how long (in seconds) the invisibility lasts.
 
+        An examle of a XML implementation of a InvisiblePickup would be:
+        @code
+        <HealthPickup
+            activationType = "immediate"
+            durationType = "continuous"
+            duration = 30.0
+        />
+        @endcode
+
     @author
         Benedict Simlinger
 




More information about the Orxonox-commit mailing list