[Orxonox-commit 1597] r6315 - code/branches/presentation2/src/modules/weapons/projectiles

scheusso at orxonox.net scheusso at orxonox.net
Thu Dec 10 20:56:48 CET 2009


Author: scheusso
Date: 2009-12-10 20:56:48 +0100 (Thu, 10 Dec 2009)
New Revision: 6315

Modified:
   code/branches/presentation2/src/modules/weapons/projectiles/Rocket.cc
Log:
fixed rocket on client (uninitialised values)


Modified: code/branches/presentation2/src/modules/weapons/projectiles/Rocket.cc
===================================================================
--- code/branches/presentation2/src/modules/weapons/projectiles/Rocket.cc	2009-12-10 17:30:13 UTC (rev 6314)
+++ code/branches/presentation2/src/modules/weapons/projectiles/Rocket.cc	2009-12-10 19:56:48 UTC (rev 6315)
@@ -54,13 +54,13 @@
         RegisterObject(Rocket);// - register the Rocket class to the core
 
         this->localAngularVelocity_ = 0;
+        this->bDestroy_ = false;
+        this->lifetime_ = 100;
         
         if (GameMode::isMaster())
         {
             this->setCollisionType(WorldEntity::Kinematic);
             this->setVelocity(0,0,-100);
-            this->lifetime_ = 100;
-            this->bDestroy_ = false;
         
             Model* model = new Model(this);
             model->setMeshSource("rocket.mesh");
@@ -81,15 +81,7 @@
             this->attachCollisionShape(collisionShape);
 
             this->destroyTimer_.setTimer(this->lifetime_, false, createExecutor(createFunctor(&Rocket::destroyObject, this)));
-        }
-        
-        CameraPosition* camPosition = new CameraPosition(this);
-        camPosition->setPosition(0,4,15);
-        camPosition->setAllowMouseLook(true);
-        this->addCameraPosition(camPosition);
-
-        if( GameMode::isMaster() )
-        {
+            
             this->defSndWpnEngine_ = new WorldSound(this);
             this->defSndWpnEngine_->setLooping(true);
             this->defSndWpnEngine_->setSource("sounds/Rocket_engine.ogg");
@@ -105,6 +97,11 @@
             this->defSndWpnEngine_ = 0;
             this->defSndWpnLaunch_ = 0;
         }
+        
+        CameraPosition* camPosition = new CameraPosition(this);
+        camPosition->setPosition(0,4,15);
+        camPosition->setAllowMouseLook(true);
+        this->addCameraPosition(camPosition);
     }
 
     /**
@@ -119,16 +116,18 @@
             {
                 this->player_->stopTemporaryControl();
             }
-            if(this->defSndWpnEngine_->isPlaying())
+            if ( this->defSndWpnEngine_ )
             {
-                this->defSndWpnEngine_->stop();
+                if ( this->defSndWpnEngine_->isPlaying() )
+                    this->defSndWpnEngine_->stop();
+                delete this->defSndWpnEngine_;
             }
-            if(this->defSndWpnLaunch_->isPlaying())
+            if ( this->defSndWpnLaunch_ )
             {
-                this->defSndWpnLaunch_->stop();
+                if ( this->defSndWpnLaunch_->isPlaying())
+                    this->defSndWpnLaunch_->stop();
+                delete this->defSndWpnLaunch_;
             }
-            delete this->defSndWpnEngine_;
-            delete this->defSndWpnLaunch_;
         }
     }
 
@@ -149,8 +148,11 @@
         this->player_ = this->owner_->getPlayer();
         this->owner_->getPlayer()->startTemporaryControl(this);
 
-        this->defSndWpnEngine_->play();
-        this->defSndWpnLaunch_->play();
+        if( GameMode::isMaster() )
+        {
+            this->defSndWpnEngine_->play();
+            this->defSndWpnLaunch_->play();
+        }
     }
 
     /**




More information about the Orxonox-commit mailing list