Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 8, 2009, 12:36:08 AM (16 years ago)
Author:
dafrick
Message:

Merging of the current QuestSystem branch.

Location:
code/branches/questsystem5
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/questsystem5

  • code/branches/questsystem5/src/orxonox/objects/worldentities/ControllableEntity.cc

    r2662 r2907  
    3434#include "core/CoreIncludes.h"
    3535#include "core/ConfigValueIncludes.h"
    36 #include "core/Core.h"
     36#include "core/GameMode.h"
    3737#include "core/XMLPort.h"
    3838#include "core/Template.h"
     
    144144    void ControllableEntity::addCameraPosition(CameraPosition* position)
    145145    {
    146         if (position->getAllowMouseLook())
    147             position->attachToNode(this->cameraPositionRootNode_);
     146        if (!position->getIsAbsolute())
     147        {
     148            if (position->getAllowMouseLook())
     149                position->attachToNode(this->cameraPositionRootNode_);
     150            else
     151                this->attach(position);
     152        }
    148153        else
    149             this->attach(position);
     154        {
     155            WorldEntity* parent = this->getParent();
     156            if (parent)
     157                parent->attach(position);
     158        }
    150159        this->cameraPositions_.push_back(position);
    151160    }
     
    236245            this->startLocalHumanControl();
    237246
    238             if (!Core::isMaster())
     247            if (!GameMode::isMaster())
    239248            {
    240249                this->client_overwrite_ = this->server_overwrite_;
     
    242251            }
    243252        }
     253
     254        this->changedPlayer();
    244255    }
    245256
     
    254265        this->bHasHumanController_ = false;
    255266        this->setObjectMode(objectDirection::toclient);
     267
     268        this->changedPlayer();
    256269
    257270        if (this->bDestroyWhenPlayerLeft_)
     
    322335    }
    323336
     337    void ControllableEntity::parentChanged()
     338    {
     339        WorldEntity::parentChanged();
     340
     341        WorldEntity* parent = this->getParent();
     342        if (parent)
     343        {
     344            for (std::list<CameraPosition*>::iterator it = this->cameraPositions_.begin(); it != this->cameraPositions_.end(); ++it)
     345                if ((*it)->getIsAbsolute())
     346                    parent->attach((*it));
     347        }
     348    }
     349
    324350    void ControllableEntity::tick(float dt)
    325351    {
     
    331357            if (!this->isDynamic())
    332358            {
    333                 if (Core::isMaster())
     359                if (GameMode::isMaster())
    334360                {
    335361                    this->server_position_ = this->getPosition();
     
    446472    void ControllableEntity::setPosition(const Vector3& position)
    447473    {
    448         if (Core::isMaster())
     474        if (GameMode::isMaster())
    449475        {
    450476            MobileEntity::setPosition(position);
     
    461487    void ControllableEntity::setOrientation(const Quaternion& orientation)
    462488    {
    463         if (Core::isMaster())
     489        if (GameMode::isMaster())
    464490        {
    465491            MobileEntity::setOrientation(orientation);
     
    476502    void ControllableEntity::setVelocity(const Vector3& velocity)
    477503    {
    478         if (Core::isMaster())
     504        if (GameMode::isMaster())
    479505        {
    480506            MobileEntity::setVelocity(velocity);
     
    491517    void ControllableEntity::setAngularVelocity(const Vector3& velocity)
    492518    {
    493         if (Core::isMaster())
     519        if (GameMode::isMaster())
    494520        {
    495521            MobileEntity::setAngularVelocity(velocity);
     
    507533    {
    508534        MobileEntity::setWorldTransform(worldTrans);
    509         if (Core::isMaster())
     535        if (GameMode::isMaster())
    510536        {
    511537            this->server_position_ = this->getPosition();
Note: See TracChangeset for help on using the changeset viewer.