Changeset 6387 for code/branches/presentation2/src/modules
- Timestamp:
- Dec 21, 2009, 1:18:36 PM (15 years ago)
- Location:
- code/branches/presentation2/src/modules
- Files:
-
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/presentation2/src/modules/objects/eventsystem/EventTarget.cc
r5929 r6387 45 45 { 46 46 } 47 47 48 48 void EventTarget::XMLPort(Element& xmlelement, XMLPort::Mode mode) 49 49 { … … 72 72 { 73 73 this->target_ = name; 74 74 75 75 for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it != ObjectList<BaseObject>::end(); ++it) 76 76 if (it->getName() == this->target_) -
code/branches/presentation2/src/modules/objects/eventsystem/EventTarget.h
r5929 r6387 42 42 EventTarget(BaseObject* creator); 43 43 virtual ~EventTarget(); 44 44 45 45 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 46 46 47 47 virtual void processEvent(Event& event); 48 48 … … 54 54 virtual void loadedNewXMLName(BaseObject* object); 55 55 void addEventTarget(BaseObject* object); 56 56 57 57 std::string target_; 58 58 bool bActive_; -
code/branches/presentation2/src/modules/overlays/GUIOverlay.cc
r6150 r6387 62 62 { 63 63 SUPER(GUIOverlay, changedVisibility); 64 64 65 65 //Setting player now. 66 66 if( this->getOwner() ) -
code/branches/presentation2/src/modules/overlays/hud/UnderAttackHealthBar.cc
r6054 r6387 94 94 } 95 95 } 96 96 97 97 void UnderAttackHealthBar::changedOverlayGroup() 98 98 { 99 99 SUPER(UnderAttackHealthBar, changedOverlayGroup); 100 100 101 101 this->getOverlayGroup()->addElement(this->text_.get()); 102 102 } -
code/branches/presentation2/src/modules/overlays/stats/CreateLines.cc
r5980 r6387 94 94 this->background_->changedVisibility(); 95 95 } 96 96 97 97 void CreateLines::setOverlayGroup( OverlayGroup* group ) 98 98 { -
code/branches/presentation2/src/modules/pong/Pong.cc
r5929 r6387 42 42 CreateEventName(PongCenterpoint, right); 43 43 CreateEventName(PongCenterpoint, left); 44 44 45 45 CreateUnloadableFactory(Pong); 46 46 … … 164 164 else if (player == this->getLeftPlayer()) 165 165 this->center_->fireEvent(FireEventName(PongCenterpoint, left)); 166 166 167 167 if (player) 168 168 this->gtinfo_->sendAnnounceMessage(player->getName() + " scored"); -
code/branches/presentation2/src/modules/pong/PongAI.cc
r5929 r6387 131 131 this->bOscillationAvoidanceActive_ = false; 132 132 } 133 133 134 134 // If the ball is close enough, calculate another random offset to accelerate the ball 135 135 if (!this->bChangedRandomOffset_) … … 206 206 // calculate the time until the ball reaches the other side 207 207 float totaltime = (-position.x + dimension.x / 2 * sgn(velocity.x)) / velocity.x; 208 208 209 209 // calculate wall bounce position (four possible solutions of the equation: pos.z + vel.z*t + acc.z/2*t^2 = +/- dim.z/2) 210 210 float bouncetime = totaltime; 211 211 bool bUpperWall = false; 212 212 213 213 if (acceleration.z == 0) 214 214 { … … 270 270 // ball bounces after <bouncetime> seconds, update the position and continue 271 271 velocity.z = velocity.z + acceleration.z * bouncetime; 272 272 273 273 if (bUpperWall) 274 274 { … … 281 281 velocity.z = fabs(velocity.z) - fabs(randomErrorZ); 282 282 } 283 283 284 284 position.x = position.x + velocity.x * bouncetime + randomErrorX; 285 285 this->ballEndPosition_ = position.z; -
code/branches/presentation2/src/modules/pong/PongBall.cc
r5929 r6387 105 105 velocity.z = distance * distance * sgn(distance) * PongBall::MAX_REL_Z_VELOCITY * this->speed_; 106 106 acceleration = this->bat_[1]->getVelocity() * this->accelerationFactor_ * -1; 107 107 108 108 this->fireEvent(); 109 109 } -
code/branches/presentation2/src/modules/questsystem/AddQuestHint.cc
r5781 r6387 71 71 72 72 XMLPortParam(AddQuestHint, "hintId", setHintId, getHintId, xmlelement, mode); 73 73 74 74 COUT(3) << "New AddQuestHint, with target QuestHint {" << this->getHintId() << "}, created." << std::endl; 75 75 } … … 90 90 return false; 91 91 } 92 92 93 93 this->hintId_ = id; 94 94 return true; -
code/branches/presentation2/src/modules/questsystem/AddReward.cc
r5781 r6387 67 67 68 68 XMLPortObject(AddReward, Rewardable, "", addRewardable, getRewardables, xmlelement, mode); 69 69 70 70 COUT(3) << "New AddReward, with " << this->rewards_.size() << " Rewardables created." << std::endl; 71 71 } … … 104 104 { 105 105 COUT(3) << "AddReward on player: " << player << " ." << std::endl; 106 106 107 107 bool check = true; 108 108 for ( std::list<Rewardable*>::iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward ) … … 110 110 check = check && (*reward)->reward(player); 111 111 } 112 112 113 113 COUT(3) << "Rewardable successfully added to player." << player << " ." << std::endl; 114 114 -
code/branches/presentation2/src/modules/questsystem/ChangeQuestStatus.cc
r5781 r6387 83 83 return false; 84 84 } 85 85 86 86 this->questId_ = id; 87 87 return true; -
code/branches/presentation2/src/modules/questsystem/CompleteQuest.cc
r5781 r6387 26 26 * 27 27 */ 28 28 29 29 /** 30 30 @file … … 67 67 { 68 68 SUPER(CompleteQuest, XMLPort, xmlelement, mode); 69 69 70 70 COUT(3) << "New CompleteQuest, with target Quest {" << this->getQuestId() << "}, created." << std::endl; 71 71 } -
code/branches/presentation2/src/modules/questsystem/FailQuest.cc
r5781 r6387 26 26 * 27 27 */ 28 28 29 29 /** 30 30 @file … … 67 67 { 68 68 SUPER(FailQuest, XMLPort, xmlelement, mode); 69 69 70 70 COUT(3) << "New FailQUest, with target Quest {" << this->getQuestId() << "}, created." << std::endl; 71 71 } … … 103 103 return false; 104 104 } 105 105 106 106 COUT(3) << "Quest {" << quest->getId() << "} failed by player: " << player << " ." << std::endl; 107 107 return true; -
code/branches/presentation2/src/modules/questsystem/GlobalQuest.cc
r5781 r6387 26 26 * 27 27 */ 28 28 29 29 /** 30 30 @file … … 59 59 60 60 } 61 61 62 62 /** 63 63 @brief … … 67 67 { 68 68 SUPER(GlobalQuest, XMLPort, xmlelement, mode); 69 69 70 70 XMLPortObject(GlobalQuest, QuestEffect, "reward-effects", addRewardEffect, getRewardEffects, xmlelement, mode); 71 71 72 72 COUT(3) << "New GlobalQuest {" << this->getId() << "} created." << std::endl; 73 73 } 74 74 75 75 /** 76 76 @brief … … 89 89 return false; 90 90 } 91 91 92 92 Quest::fail(player); 93 93 94 94 //! Iterate through all players possessing this Quest. 95 95 for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++) … … 118 118 return false; 119 119 } 120 120 121 121 //! Iterate through all players possessing the Quest. 122 122 for(std::set<PlayerInfo*>::const_iterator it = players_.begin(); it != players_.end(); it++) … … 124 124 QuestEffect::invokeEffects(*it, this->getCompleteEffectList()); 125 125 } 126 126 127 127 Quest::complete(player); 128 128 129 129 QuestEffect::invokeEffects(player, this->rewards_); //!< Invoke reward QuestEffects on the player completing the Quest. 130 130 return true; … … 230 230 this->players_.insert(player); //!< Add the player to the set. 231 231 } 232 232 233 233 this->status_ = status; //!< Set the status, which is global, remember...? 234 234 return true; 235 235 } 236 236 237 237 /** 238 238 @brief … … 256 256 return true; 257 257 } 258 258 259 259 /** 260 260 @brief -
code/branches/presentation2/src/modules/questsystem/LocalQuest.cc
r5781 r6387 87 87 return false; 88 88 } 89 89 90 90 Quest::fail(player); 91 91 92 92 QuestEffect::invokeEffects(player, this->getFailEffectList()); //!< Invoke the failEffects. 93 93 return true; … … 110 110 return false; 111 111 } 112 112 113 113 Quest::complete(player); 114 114 115 115 QuestEffect::invokeEffects(player, this->getCompleteEffectList()); //!< Invoke the complete QuestEffects. 116 116 return true; … … 188 188 return it->second; 189 189 } 190 190 191 191 return QuestStatus::Inactive; //!< If the player is not yet in the map, that means the status of the quest form him is 'inactive'. 192 192 } … … 209 209 return false; 210 210 } 211 211 212 212 this->playerStatus_[player] = status; 213 213 return true; -
code/branches/presentation2/src/modules/questsystem/Quest.cc
r5781 r6387 26 26 * 27 27 */ 28 28 29 29 /** 30 30 @file … … 204 204 { 205 205 int i = index; 206 206 207 207 //! Iterate through all subquests. 208 208 for (std::list<Quest*>::const_iterator subQuest = this->subQuests_.begin(); subQuest != this->subQuests_.end(); ++subQuest) … … 214 214 i--; 215 215 } 216 216 217 217 return NULL; //!< If the index is greater than the number of elements in the list. 218 218 } … … 229 229 { 230 230 int i = index; 231 231 232 232 //! Iterate through all QuestHints. 233 233 for (std::list<QuestHint*>::const_iterator hint = this->hints_.begin(); hint != this->hints_.end(); ++hint) … … 253 253 { 254 254 int i = index; 255 255 256 256 //! Iterate through all fail QuestEffects. 257 257 for (std::list<QuestEffect*>::const_iterator effect = this->failEffects_.begin(); effect != this->failEffects_.end(); ++effect) … … 277 277 { 278 278 int i = index; 279 279 280 280 //! Iterate through all complete QuestEffects. 281 281 for (std::list<QuestEffect*>::const_iterator effect = this->completeEffects_.begin(); effect != this->completeEffects_.end(); ++effect) … … 350 350 return this->getStatus(player) == QuestStatus::Completed; 351 351 } 352 352 353 353 /** 354 354 @brief … … 363 363 QuestListener::advertiseStatusChange(this->listeners_, "fail"); //!< Tells the QuestListeners, that the status has changed to failed. 364 364 this->setStatus(player, QuestStatus::Failed); 365 365 366 366 COUT(4) << "Quest {" << this->getId() << "} is failed for player: " << player << " ." <<std::endl; 367 367 368 368 this->getDescription()->sendFailQuestNotification(); 369 369 return true; 370 370 } 371 371 372 372 /** 373 373 @brief … … 382 382 QuestListener::advertiseStatusChange(this->listeners_, "complete"); //!< Tells the QuestListeners, that the status has changed to completed. 383 383 this->setStatus(player, QuestStatus::Completed); 384 384 385 385 COUT(4) << "Quest {" << this->getId() << "} is completed for player: " << player << " ." <<std::endl; 386 386 387 387 this->getDescription()->sendCompleteQuestNotification(); 388 388 return true; … … 404 404 return false; 405 405 } 406 406 407 407 COUT(4) << "Quest {" << this->getId() << "} is started for player: " << player << " ." <<std::endl; 408 408 409 409 QuestListener::advertiseStatusChange(this->listeners_, "start"); //!< Tells the QuestListeners, that the status has changed to active. 410 410 411 411 this->setStatus(player, QuestStatus::Active); 412 412 413 413 this->getDescription()->sendAddQuestNotification(); 414 414 return true; 415 415 } 416 416 417 417 /** 418 418 @brief … … 430 430 return false; 431 431 } 432 432 433 433 this->listeners_.push_back(listener); 434 434 return true; -
code/branches/presentation2/src/modules/questsystem/QuestDescription.cc
r5781 r6387 50 50 { 51 51 RegisterObject(QuestDescription); 52 52 53 53 this->title_ = ""; 54 54 this->description_ = ""; … … 79 79 COUT(3) << "New QuestDescription with title '" << this->getTitle() << "' created." << std::endl; 80 80 } 81 81 82 82 /** 83 83 @brief … … 124 124 return false; 125 125 } 126 126 127 127 QuestNotification* notification = new QuestNotification(message); 128 128 notification->send(); -
code/branches/presentation2/src/modules/questsystem/QuestEffect.cc
r5781 r6387 69 69 { 70 70 bool check = true; 71 71 72 72 COUT(4) << "Invoking QuestEffects on player: " << player << " ." << std::endl; 73 73 -
code/branches/presentation2/src/modules/questsystem/QuestGUI.cc
r5929 r6387 77 77 } 78 78 this->windows_.clear(); 79 79 80 80 if(this->root_ != NULL) 81 81 this->root_->destroy(); … … 104 104 105 105 this->clear(); //!< Clear the GUI. 106 106 107 107 int depth = 0; 108 108 int index = 0; … … 235 235 236 236 this->nodes_.insert(std::pair<CEGUI::Window*, QuestGUINode*>(node->getWindow(),node)); //!< Insert the node and its window in the nodes_ map. 237 237 238 238 index++; 239 239 -
code/branches/presentation2/src/modules/questsystem/QuestGUI.h
r5781 r6387 56 56 57 57 public: 58 58 59 59 QuestGUI(PlayerInfo* player); 60 60 virtual ~QuestGUI(); … … 86 86 inline PlayerInfo* getPlayer(void) 87 87 { return this->player_; } 88 88 89 89 private: 90 90 91 91 int createNode(QuestGUINode* parent, QuestItem* item, int depth, int index); //!< Recursive method to create Nodes for all Quests an Hints the given Quest is a parent to. 92 92 -
code/branches/presentation2/src/modules/questsystem/QuestGUINode.cc
r5781 r6387 119 119 void QuestGUINode::toggleVisibility(void) 120 120 { 121 121 122 122 } 123 123 … … 209 209 offset += height; 210 210 } 211 211 212 212 //! Create title pane for the description. 213 213 stream.str(""); … … 282 282 { 283 283 COUT(3) << "Open QuestItem..." << std::endl; 284 284 285 285 //CEGUI::Window* window = this->gui_->getRootWindow(); 286 286 CEGUI::Window* window = this->gui_->getWindowManager()->getWindow("orxonox/QuestGUI/Background"); … … 344 344 //! Set the height to the window. 345 345 window->setHeight(CEGUI::UDim(0, height)); 346 346 347 347 //Debug 348 348 const CEGUI::Rect newArea = getStaticTextArea(window); … … 368 368 { 369 369 Quest* quest = dynamic_cast<Quest*>(this->item_); 370 370 371 371 this->window_ = this->gui_->getWindow(); 372 372 std::ostringstream stream; … … 377 377 } 378 378 stream << this->index_; 379 379 380 380 this->window_->rename(stream.str()); 381 381 this->window_->setText(this->item_->getDescription()->getTitle()); -
code/branches/presentation2/src/modules/questsystem/QuestGUINode.h
r5781 r6387 44 44 45 45 public: 46 46 47 47 QuestGUINode(void); 48 48 QuestGUINode(QuestGUI* gui, QuestGUINode* parent, QuestItem* item, int depth, int index); 49 49 virtual ~QuestGUINode(void); 50 50 51 51 void toggleVisibility(void); 52 52 -
code/branches/presentation2/src/modules/questsystem/QuestHint.cc
r5781 r6387 26 26 * 27 27 */ 28 28 29 29 /** 30 30 @file … … 71 71 72 72 QuestManager::getInstance().registerHint(this); //!< Registers the QuestHint with the QuestManager. 73 73 74 74 COUT(3) << "New QuestHint {" << this->getId() << "} created." << std::endl; 75 75 } … … 100 100 return it->second; 101 101 } 102 102 103 103 return QuestStatus::Inactive; 104 104 } … … 119 119 { 120 120 this->playerStatus_[player] = QuestHintStatus::Active; 121 121 122 122 this->getDescription()->sendAddHintNotification(); 123 123 return true; … … 129 129 } 130 130 } 131 131 132 132 COUT(2) << "A hint of a non-active quest was trying to get activated." << std::endl; 133 133 return false; -
code/branches/presentation2/src/modules/questsystem/QuestItem.cc
r5781 r6387 26 26 * 27 27 */ 28 28 29 29 /** 30 30 @file … … 86 86 return; 87 87 } 88 88 89 89 this->id_ = id; 90 90 } -
code/branches/presentation2/src/modules/questsystem/QuestListener.cc
r5781 r6387 50 50 { 51 51 RegisterObject(QuestListener); 52 52 53 53 this->mode_ = QuestListenerMode::All; 54 54 this->quest_ = NULL; 55 55 } 56 56 57 57 /** 58 58 @brief … … 62 62 { 63 63 } 64 64 65 65 /** 66 66 @brief … … 75 75 76 76 this->quest_->addListener(this); //!< Adds the QuestListener to the Quests list of listeners. 77 77 78 78 COUT(3) << "QuestListener created for quest: {" << this->quest_->getId() << "} with mode '" << this->getMode() << "'." << std::endl; 79 79 } 80 80 81 81 /** 82 82 @brief … … 98 98 } 99 99 } 100 100 101 101 /** 102 102 @brief … … 110 110 { 111 111 this->quest_ = QuestManager::getInstance().findQuest(id); //!< Find the Quest corresponding to the given questId. 112 112 113 113 if(this->quest_ == NULL) //!< If there is no such Quest. 114 114 { … … 116 116 return false; 117 117 } 118 118 119 119 return true; 120 120 } 121 121 122 122 /** 123 123 @brief … … 152 152 return false; 153 153 } 154 154 155 155 return true; 156 156 } 157 157 158 158 /** 159 159 @brief -
code/branches/presentation2/src/modules/questsystem/QuestNotification.cc
r5781 r6387 38 38 this->initialize(); 39 39 } 40 40 41 41 QuestNotification::QuestNotification(const std::string & message) : Notification(message) 42 42 { 43 43 this->initialize(); 44 44 } 45 45 46 46 QuestNotification::~QuestNotification() 47 47 { 48 48 49 49 } 50 50 -
code/branches/presentation2/src/modules/questsystem/notifications/Notification.cc
r5781 r6387 49 49 this->initialize(); 50 50 } 51 51 52 52 /** 53 53 @brief … … 60 60 this->message_ = message; 61 61 } 62 62 63 63 /** 64 64 @brief … … 68 68 { 69 69 } 70 70 71 71 /** 72 72 @brief … … 79 79 this->sent_ = false; 80 80 } 81 81 82 82 /** 83 83 @brief … … 90 90 return this->send(NotificationManager::NONE); 91 91 } 92 92 93 93 /** 94 94 @brief … … 106 106 return false; 107 107 this->sent_ = true; 108 108 109 109 COUT(3) << "Notification \"" << this->getMessage() << "\" sent." << std::endl; 110 110 111 111 return true; 112 112 } 113 113 114 114 /** 115 115 @brief -
code/branches/presentation2/src/modules/weapons/projectiles/LightningGunProjectile.cc
r5929 r6387 43 43 this->maxTextureIndex_ = 8; 44 44 this->textureTimer_.setTimer(0.01f, true, createExecutor(createFunctor(&LightningGunProjectile::changeTexture, this))); 45 45 46 46 registerVariables(); 47 47 } 48 48 49 49 void LightningGunProjectile::registerVariables() 50 50 { 51 51 registerVariable(this->materialBase_); 52 52 } 53 53 54 54 void LightningGunProjectile::setMaterial(const std::string& material) 55 55 { 56 56 this->materialBase_ = material; 57 57 58 58 BillboardProjectile::setMaterial(material + multi_cast<std::string>(this->textureIndex_)); 59 59 } … … 64 64 if (this->textureIndex_ > this->maxTextureIndex_) 65 65 this->textureIndex_ = 1; 66 66 67 67 this->setMaterial(this->materialBase_); 68 68 } -
code/branches/presentation2/src/modules/weapons/projectiles/Rocket.cc
r6383 r6387 58 58 this->bDestroy_ = false; 59 59 this->lifetime_ = 100; 60 60 61 61 if (GameMode::isMaster()) 62 62 { 63 63 this->setCollisionType(WorldEntity::Kinematic); 64 64 this->setVelocity(0,0,-100); 65 65 66 66 Model* model = new Model(this); 67 67 model->setMeshSource("rocket.mesh"); … … 72 72 fire->setOrientation(this->getOrientation()); 73 73 fire->setSource("Orxonox/rocketfire"); 74 74 75 75 this->enableCollisionCallback(); 76 76 this->setCollisionResponse(false); … … 83 83 84 84 this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&Rocket::destroyObject, this))); 85 85 86 86 this->defSndWpnEngine_ = new WorldSound(this); 87 87 this->defSndWpnEngine_->setLooping(true); … … 99 99 this->defSndWpnLaunch_ = 0; 100 100 } 101 101 102 102 CameraPosition* camPosition = new CameraPosition(this); 103 103 camPosition->setPosition(0,4,15); … … 134 134 SUPER(Rocket, XMLPort, xmlelement, mode); 135 135 } 136 136 137 137 void Rocket::setOwner(Pawn* owner) 138 138 { … … 158 158 { 159 159 SUPER(Rocket, tick, dt); 160 160 161 161 if( this->hasLocalController() ) 162 162 { … … 164 164 this->setVelocity( this->getOrientation()*WorldEntity::FRONT*this->getVelocity().length() ); 165 165 this->localAngularVelocity_ = 0; 166 166 167 167 if( this->bDestroy_ ) 168 168 this->destroy(); 169 169 } 170 170 } 171 171 172 172 bool Rocket::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint) 173 173 { … … 176 176 if (otherObject == this->owner_) 177 177 return false; 178 178 179 179 this->bDestroy_ = true; 180 180 … … 211 211 return false; 212 212 } 213 213 214 214 void Rocket::destroyObject() 215 215 { … … 223 223 } 224 224 } 225 225 226 226 void Rocket::fired(unsigned int firemode) 227 227 { … … 258 258 { 259 259 ControllableEntity::rotateYaw(value); 260 260 261 261 if( !this->isInMouseLook() ) 262 262 this->localAngularVelocity_.y += value.x; … … 272 272 { 273 273 ControllableEntity::rotatePitch(value); 274 274 275 275 if( !this->isInMouseLook() ) 276 276 this->localAngularVelocity_.x += value.x; … … 286 286 { 287 287 ControllableEntity::rotateRoll(value); 288 288 289 289 if( !this->isInMouseLook() ) 290 290 this->localAngularVelocity_.z += value.x; 291 291 } 292 292 293 293 } -
code/branches/presentation2/src/modules/weapons/projectiles/Rocket.h
r6378 r6387 54 54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a Rocket through XML. 55 55 virtual void tick(float dt); //!< Defines which actions the Rocket has to take in each tick. 56 56 57 57 virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint); 58 58 void destroyObject(); 59 59 60 60 virtual void moveFrontBack(const Vector2& value){} 61 61 virtual void moveRightLeft(const Vector2& value){} … … 65 65 virtual void rotatePitch(const Vector2& value); 66 66 virtual void rotateRoll(const Vector2& value); 67 67 68 68 /** 69 69 @brief Moves the Rocket in the Front/Back-direction by the specifed amount. … … 84 84 inline void moveUpDown(float value) 85 85 { this->moveUpDown(Vector2(value, 0)); } 86 86 87 87 /** 88 88 @brief Rotates the Rocket around the y-axis by the specifed amount. … … 103 103 inline void rotateRoll(float value) 104 104 { this->rotateRoll(Vector2(value, 0)); } 105 105 106 106 void setOwner(Pawn* owner); 107 107 inline Pawn* getOwner() const 108 108 { return this->owner_; } 109 109 110 110 inline void setDamage(float damage) 111 111 { this->damage_ = damage; } … … 113 113 { return this->damage_; } 114 114 virtual void fired(unsigned int firemode); 115 115 116 116 private: 117 117 WeakPtr<Pawn> owner_; … … 120 120 bool bDestroy_; 121 121 ControllableEntity* originalControllableEntity_; 122 122 123 123 WeakPtr<PlayerInfo> player_; 124 124 Timer destroyTimer_;
Note: See TracChangeset
for help on using the changeset viewer.