Changeset 6521 for code/branches/pickup3/src
- Timestamp:
- Mar 15, 2010, 7:33:11 AM (15 years ago)
- Location:
- code/branches/pickup3/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/pickup3/src/libraries/core/Super.h
r6466 r6521 277 277 SUPER_NOARGS(classname, functionname) 278 278 279 #define SUPER_changedPickedUp(classname, functionname, ...) \ 280 SUPER_NOARGS(classname, functionname) 281 279 282 // (1/3) --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- 280 283 … … 537 540 538 541 SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(12, changedCarrier, false) 542 () 543 SUPER_FUNCTION_GLOBAL_DECLARATION_PART2; 544 545 SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(13, changedPickedUp, false) 539 546 () 540 547 SUPER_FUNCTION_GLOBAL_DECLARATION_PART2; … … 596 603 SUPER_INTRUSIVE_DECLARATION(clone); 597 604 SUPER_INTRUSIVE_DECLARATION(changedCarrier); 605 SUPER_INTRUSIVE_DECLARATION(changedPickedUp); 598 606 // (3/3) --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- --> HERE <-- 599 607 -
code/branches/pickup3/src/modules/pickup/Pickup.cc
r6515 r6521 182 182 @brief 183 183 Should be called when the pickup has transited from picked up to dropped or the other way around. 184 Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changed Carrier); to their changedCarriermethod.185 */ 186 void Pickup::changed Carrier(void)187 { 188 SUPER(Pickup, changed Carrier);184 Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedPickedUp); to their changedPickedUp method. 185 */ 186 void Pickup::changedPickedUp(void) 187 { 188 SUPER(Pickup, changedPickedUp); 189 189 190 190 //! Sets the Pickup to used if the Pickup has activation type 'immediate' and gets picked up. -
code/branches/pickup3/src/modules/pickup/Pickup.h
r6497 r6521 117 117 { return this->getDurationTypeDirect() == pickupDurationType::continuous; } 118 118 119 virtual void changed Carrier(void); //!< Should be called when the pickup has transited from picked up to dropped or the other way around.119 virtual void changedPickedUp(void); //!< Should be called when the pickup has transited from picked up to dropped or the other way around. 120 120 121 121 virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the Pickup. -
code/branches/pickup3/src/modules/pickup/PickupCollection.cc
r6519 r6521 138 138 } 139 139 140 //TODO: Steal description from Pickupable.141 140 void PickupCollection::changedUsed(void) 142 141 { … … 150 149 } 151 150 152 void PickupCollection::changedCarrier( )151 void PickupCollection::changedCarrier(void) 153 152 { 154 153 SUPER(PickupCollection, changedCarrier); 155 154 155 //! Change used for all Pickupables this PickupCollection consists of. 156 for(std::vector<Pickupable*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); it++) 157 { 158 (*it)->setCarrier(this->getCarrier()); 159 } 160 } 161 162 void PickupCollection::changedPickedUp() 163 { 164 SUPER(PickupCollection, changedPickedUp); 165 156 166 //! Change the carrier for all Pickupables this PickupCollection consists of. 157 167 for(std::vector<Pickupable*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); it++) 158 168 { 159 (*it)->setCarrier(this->getCarrier()); 160 } 161 } 162 163 //TODO: Steal description from Pickupable. 169 (*it)->setPickedUp(this->isPickedUp()); 170 } 171 } 172 164 173 void PickupCollection::clone(OrxonoxClass*& item) 165 174 { -
code/branches/pickup3/src/modules/pickup/PickupCollection.h
r6519 r6521 58 58 59 59 virtual void changedUsed(void); 60 61 60 virtual void changedCarrier(void); 61 virtual void changedPickedUp(void); 62 62 63 63 virtual void clone(OrxonoxClass*& item); -
code/branches/pickup3/src/orxonox/interfaces/PickupCarrier.h
r6518 r6521 46 46 namespace orxonox 47 47 { 48 48 49 49 class Pickup; 50 50 class HealthPickup; … … 175 175 virtual const Vector3& getCarrierPosition(void) = 0; 176 176 177 //TODO: Remove. 177 /** 178 @brief Get all Pickupables this PickupCarrier has. 179 @return Returns the set of all Pickupables this PickupCarrier has. 180 */ 178 181 std::set<Pickupable*>& getPickups(void) 179 182 { return this->pickups_; } -
code/branches/pickup3/src/orxonox/interfaces/Pickupable.cc
r6512 r6521 172 172 173 173 COUT(4) << "Pickupable (&" << this << ") got picked up by a PickupCarrier (&" << carrier << ")." << std::endl; 174 this->setCarrier(carrier); 174 175 this->setPickedUp(true); 175 this->setCarrier(carrier); 176 return true; 177 } 178 179 /** 180 @brief 181 Helper method to set the Pickupable to either picked up or not picked up. 182 @param pickedUp 183 The value this->pickedUp_ should be set to. 184 @return 185 Returns true if the pickedUp status was changed, false if not. 186 */ 187 bool Pickupable::setPickedUp(bool pickedUp) 188 { 189 if(this->pickedUp_ == pickedUp) 190 return false; 191 192 COUT(4) << "Pickupable (&" << this << ") set to pickedUp " << pickedUp << "." << std::endl; 193 194 this->pickedUp_ = pickedUp; 195 this->changedPickedUp(); 196 return true; 197 } 198 199 /** 200 @brief 201 Sets the carrier of the pickup. 202 @param carrier 203 Sets the input PickupCarrier as the carrier of the pickup. 204 */ 205 inline bool Pickupable::setCarrier(PickupCarrier* carrier) 206 { 207 if(this->carrier_ == carrier) 208 return false; 209 210 COUT(4) << "Pickupable (&" << this << ") changed Carrier (& " << carrier << ")." << std::endl; 211 212 this->carrier_ = carrier; 213 this->changedCarrier(); 176 214 return true; 177 215 } … … 205 243 } 206 244 207 208 /**209 @brief210 Sets the carrier of the pickup.211 @param carrier212 Sets the input PickupCarrier as the carrier of the pickup.213 @return214 Returns true if the carrier was changed, false if not.215 */216 bool Pickupable::setCarrier(PickupCarrier* carrier)217 {218 if(this->getCarrier() == carrier)219 return false;220 221 this->carrier_ = carrier;222 this->changedCarrier();223 return true;224 }225 226 245 /** 227 246 @brief … … 230 249 Returns the clone of this pickup as a pointer to a Pickupable. 231 250 */ 232 //TODO: Does this work?233 251 Pickupable* Pickupable::clone(void) 234 252 { -
code/branches/pickup3/src/orxonox/interfaces/Pickupable.h
r6519 r6521 70 70 */ 71 71 virtual void changedUsed(void) {} 72 bool setUsed(bool used); //!< Sets the Pickupable to used or unused, depending on the input. 72 73 /** 74 @brief Get the carrier of the pickup. 75 @return Returns a pointer to the carrier of the pickup. 76 */ 77 inline PickupCarrier* getCarrier(void) 78 { return this->carrier_; } 79 /** 80 @brief Should be called when the pickup has changed its PickupCarrier. 81 Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedCarrier); to their changedCarrier method. 82 */ 83 virtual void changedCarrier(void) {} 73 84 74 85 /** … … 78 89 inline bool isPickedUp(void) 79 90 { return this->pickedUp_; } 91 /** 92 @brief Should be called when the pickup has transited from picked up to dropped or the other way around. 93 Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedPickedUp); to their changedPickedUp method. 94 */ 95 virtual void changedPickedUp(void) {} 96 80 97 //TODO: Better private, or protected? 81 98 bool pickedUp(PickupCarrier* carrier); //!< Sets the Pickupable to picked up. … … 86 103 bool addTarget(PickupCarrier* target); //!< Add a PickupCarrier as target of this pickup. 87 104 bool addTarget(Identifier* identifier); //!< Add a class, representetd by the input Identifier, as target of this pickup. 88 89 /**90 @brief Get the carrier of the pickup.91 @return Returns a pointer to the carrier of the pickup.92 */93 inline PickupCarrier* getCarrier(void)94 { return this->carrier_; }95 /**96 @brief Should be called when the pickup has transited from picked up to dropped or the other way around.97 Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedCarrier); to their changedCarrier method.98 */99 virtual void changedCarrier(void) {}100 //TODO: Maybe private?101 bool setCarrier(PickupCarrier* carrier); //!< Sets the carrier of the pickup.102 105 103 106 Pickupable* clone(void); //!< Creates a duplicate of the Pickupable. … … 113 116 virtual void destroy(void) 114 117 { delete this; } 118 119 //TODO: Make them work as protected. 120 bool setUsed(bool used); //!< Sets the Pickupable to used or unused, depending on the input. 121 bool setPickedUp(bool pickedUp); //!< Helper method to set the Pickupable to either picked up or not picked up. 122 bool setCarrier(PickupCarrier* carrier); //!< Sets the carrier of the pickup. 115 123 116 124 protected: … … 134 142 135 143 private: 136 /**137 @brief Helper method to set the Pickupable to either picked up or not picked up.138 @param pickedUp The value this->pickedUp_ should be set to.139 */140 inline void setPickedUp(bool pickedUp)141 { this->pickedUp_ = pickedUp; }142 144 143 145 bool used_; //!< Whether the pickup is currently in use or not. … … 151 153 SUPER_FUNCTION(10, Pickupable, changedUsed, false); 152 154 SUPER_FUNCTION(12, Pickupable, changedCarrier, false); 155 SUPER_FUNCTION(13, Pickupable, changedPickedUp, false); 153 156 } 154 157
Note: See TracChangeset
for help on using the changeset viewer.