瀏覽代碼

Merge pull request #602 from Azaezel/Simpler_ShapeBase1

removes non-functional shield and invincibility functionality.
Andrew Mac 11 年之前
父節點
當前提交
704dc47bdb
共有 2 個文件被更改,包括 5 次插入252 次删除
  1. 2 212
      Engine/source/T3D/shapeBase.cpp
  2. 3 40
      Engine/source/T3D/shapeBase.h

+ 2 - 212
Engine/source/T3D/shapeBase.cpp

@@ -898,17 +898,9 @@ ShapeBase::ShapeBase()
    mCloakLevel( 0.0f ),
    mDamageFlash( 0.0f ),
    mWhiteOut( 0.0f ),
-   mInvincibleEffect( 0.0f ),
-   mInvincibleDelta( 0.0f ),
-   mInvincibleCount( 0.0f ),
-   mInvincibleSpeed( 0.0f ),
-   mInvincibleTime( 0.0f ),
-   mInvincibleFade( 0.1f ),
-   mInvincibleOn( false ),
    mIsControlled( false ),
    mConvexList( new Convex ),
    mCameraFov( 90.0f ),
-   mShieldNormal( 0.0f, 0.0f, 1.0f ),
    mFadeOut( true ),
    mFading( false ),
    mFadeVal( 1.0f ),
@@ -1382,9 +1374,6 @@ void ShapeBase::advanceTime(F32 dt)
             mCloakLevel = 0.0;
       }
    }
-   if(mInvincibleOn)
-      updateInvincibleEffect(dt);
-
    if(mFading)
    {
       mFadeElapsedTime += dt;
@@ -1987,119 +1976,6 @@ void ShapeBase::getCameraTransform(F32* pos,MatrixF* mat)
    mat->mul( gCamFXMgr.getTrans() );
 }
 
-// void ShapeBase::getCameraTransform(F32* pos,MatrixF* mat)
-// {
-//    // Returns camera to world space transform
-//    // Handles first person / third person camera position
-
-//    if (isServerObject() && mShapeInstance)
-//       mShapeInstance->animateNodeSubtrees(true);
-
-//    if (*pos != 0) {
-//       F32 min,max;
-//       Point3F offset;
-//       MatrixF eye,rot;
-//       getCameraParameters(&min,&max,&offset,&rot);
-//       getRenderEyeTransform(&eye);
-//       mat->mul(eye,rot);
-
-//       // Use the eye transform to orient the camera
-//       VectorF vp,vec;
-//       vp.x = vp.z = 0;
-//       vp.y = -(max - min) * *pos;
-//       eye.mulV(vp,&vec);
-
-//       // Use the camera node's pos.
-//       Point3F osp,sp;
-//       if (mDataBlock->cameraNode != -1) {
-//          mShapeInstance->mNodeTransforms[mDataBlock->cameraNode].getColumn(3,&osp);
-//          getRenderTransform().mulP(osp,&sp);
-//       }
-//       else
-//          getRenderTransform().getColumn(3,&sp);
-
-//       // Make sure we don't extend the camera into anything solid
-//       Point3F ep = sp + vec;
-//       ep += offset;
-//       disableCollision();
-//       if (isMounted())
-//          getObjectMount()->disableCollision();
-//       RayInfo collision;
-//       if (mContainer->castRay(sp,ep,(0xFFFFFFFF & ~(WaterObjectType|ForceFieldObjectType|GameBaseObjectType|DefaultObjectType)),&collision)) {
-//          *pos = collision.t *= 0.9;
-//          if (*pos == 0)
-//             eye.getColumn(3,&ep);
-//          else
-//             ep = sp + vec * *pos;
-//       }
-//       mat->setColumn(3,ep);
-//       if (isMounted())
-//          getObjectMount()->enableCollision();
-//       enableCollision();
-//    }
-//    else
-//    {
-//       getRenderEyeTransform(mat);
-//    }
-// }
-
-
-// void ShapeBase::getRenderCameraTransform(F32* pos,MatrixF* mat)
-// {
-//    // Returns camera to world space transform
-//    // Handles first person / third person camera position
-
-//    if (isServerObject() && mShapeInstance)
-//       mShapeInstance->animateNodeSubtrees(true);
-
-//    if (*pos != 0) {
-//       F32 min,max;
-//       Point3F offset;
-//       MatrixF eye,rot;
-//       getCameraParameters(&min,&max,&offset,&rot);
-//       getRenderEyeTransform(&eye);
-//       mat->mul(eye,rot);
-
-//       // Use the eye transform to orient the camera
-//       VectorF vp,vec;
-//       vp.x = vp.z = 0;
-//       vp.y = -(max - min) * *pos;
-//       eye.mulV(vp,&vec);
-
-//       // Use the camera node's pos.
-//       Point3F osp,sp;
-//       if (mDataBlock->cameraNode != -1) {
-//          mShapeInstance->mNodeTransforms[mDataBlock->cameraNode].getColumn(3,&osp);
-//          getRenderTransform().mulP(osp,&sp);
-//       }
-//       else
-//          getRenderTransform().getColumn(3,&sp);
-
-//       // Make sure we don't extend the camera into anything solid
-//       Point3F ep = sp + vec;
-//       ep += offset;
-//       disableCollision();
-//       if (isMounted())
-//          getObjectMount()->disableCollision();
-//       RayInfo collision;
-//       if (mContainer->castRay(sp,ep,(0xFFFFFFFF & ~(WaterObjectType|ForceFieldObjectType|GameBaseObjectType|DefaultObjectType)),&collision)) {
-//          *pos = collision.t *= 0.9;
-//          if (*pos == 0)
-//             eye.getColumn(3,&ep);
-//          else
-//             ep = sp + vec * *pos;
-//       }
-//       mat->setColumn(3,ep);
-//       if (isMounted())
-//          getObjectMount()->enableCollision();
-//       enableCollision();
-//    }
-//    else
-//    {
-//       getRenderEyeTransform(mat);
-//    }
-// }
-
 void ShapeBase::getCameraParameters(F32 *min,F32* max,Point3F* off,MatrixF* rot)
 {
    *min = mDataBlock->cameraMinDist;
@@ -2153,52 +2029,6 @@ bool ShapeBase::useObjsEyePoint() const
    return mDataBlock->useEyePoint;
 }
 
-
-//----------------------------------------------------------------------------
-F32 ShapeBase::getInvincibleEffect() const
-{
-   return mInvincibleEffect;
-}
-
-void ShapeBase::setupInvincibleEffect(F32 time, F32 speed)
-{
-   if(isClientObject())
-   {
-      mInvincibleCount = mInvincibleTime = time;
-      mInvincibleSpeed = mInvincibleDelta = speed;
-      mInvincibleEffect = 0.0f;
-      mInvincibleOn = true;
-      mInvincibleFade = 1.0f;
-   }
-   else
-   {
-      mInvincibleTime  = time;
-      mInvincibleSpeed = speed;
-      setMaskBits(InvincibleMask);
-   }
-}
-
-void ShapeBase::updateInvincibleEffect(F32 dt)
-{
-   if(mInvincibleCount > 0.0f )
-   {
-      if(mInvincibleEffect >= ((0.3 * mInvincibleFade) + 0.05f) && mInvincibleDelta > 0.0f)
-         mInvincibleDelta = -mInvincibleSpeed;
-      else if(mInvincibleEffect <= 0.05f && mInvincibleDelta < 0.0f)
-      {
-         mInvincibleDelta = mInvincibleSpeed;
-         mInvincibleFade = mInvincibleCount / mInvincibleTime;
-      }
-      mInvincibleEffect += mInvincibleDelta;
-      mInvincibleCount -= dt;
-   }
-   else
-   {
-      mInvincibleEffect = 0.0f;
-      mInvincibleOn = false;
-   }
-}
-
 //----------------------------------------------------------------------------
 void ShapeBase::setVelocity(const VectorF&)
 {
@@ -3102,8 +2932,7 @@ U32 ShapeBase::packUpdate(NetConnection *con, U32 mask, BitStream *stream)
    }
 
    if(!stream->writeFlag(mask & (NameMask | DamageMask | SoundMask | MeshHiddenMask |
-         ThreadMask | ImageMask | CloakMask | InvincibleMask |
-         ShieldMask | SkinMask)))
+         ThreadMask | ImageMask | CloakMask | SkinMask)))
       return retMask;
 
    if (stream->writeFlag(mask & DamageMask)) {
@@ -3173,7 +3002,7 @@ U32 ShapeBase::packUpdate(NetConnection *con, U32 mask, BitStream *stream)
    }
 
    // Group some of the uncommon stuff together.
-   if (stream->writeFlag(mask & (NameMask | ShieldMask | CloakMask | InvincibleMask | SkinMask | MeshHiddenMask ))) {
+   if (stream->writeFlag(mask & (NameMask | CloakMask | SkinMask | MeshHiddenMask ))) {
          
       if (stream->writeFlag(mask & CloakMask))
       {
@@ -3194,14 +3023,6 @@ U32 ShapeBase::packUpdate(NetConnection *con, U32 mask, BitStream *stream)
       if (stream->writeFlag(mask & NameMask)) {
          con->packNetStringHandleU(stream, mShapeNameHandle);
       }
-      if (stream->writeFlag(mask & ShieldMask)) {
-         stream->writeNormalVector(mShieldNormal, ShieldNormalBits);
-         stream->writeFloat( getEnergyValue(), EnergyLevelBits );
-      }
-      if (stream->writeFlag(mask & InvincibleMask)) {
-         stream->write(mInvincibleTime);
-         stream->write(mInvincibleSpeed);
-      }
 
       if ( stream->writeFlag( mask & MeshHiddenMask ) )
          stream->writeBits( mMeshHidden );
@@ -3443,25 +3264,6 @@ void ShapeBase::unpackUpdate(NetConnection *con, BitStream *stream)
       if (stream->readFlag())  { // NameMask
          mShapeNameHandle = con->unpackNetStringHandleU(stream);
       }
-      if(stream->readFlag())     // ShieldMask
-      {
-         // Cloaking, Shield, and invul masking
-         Point3F shieldNormal;
-         stream->readNormalVector(&shieldNormal, ShieldNormalBits);
-         
-         // CodeReview [bjg 4/6/07] This is our energy level - why aren't we storing it? Was in a
-         // local variable called energyPercent.
-         stream->readFloat(EnergyLevelBits);
-      }
-
-      if (stream->readFlag()) 
-      {
-         // InvincibleMask
-         F32 time, speed;
-         stream->read(&time);
-         stream->read(&speed);
-         setupInvincibleEffect(time, speed);
-      }
       
       if ( stream->readFlag() ) // MeshHiddenMask
       {
@@ -4826,18 +4628,6 @@ DefineEngineMethod( ShapeBase, setCameraFov, void, ( F32 fov ),,
       object->setCameraFov( fov );
 }
 
-DefineEngineMethod( ShapeBase, setInvincibleMode, void, ( F32 time, F32 speed ),,
-   "@brief Setup the invincible effect.\n\n"
-
-   "This effect is used for HUD feedback to the user that they are invincible.\n"
-   "@note Currently not implemented\n"
-
-   "@param time duration in seconds for the invincible effect\n"
-   "@param speed speed at which the invincible effect progresses\n" )
-{
-   object->setupInvincibleEffect( time, speed );
-}
-
 DefineEngineMethod( ShapeBase, startFade, void, ( S32 time, S32 delay, bool fadeOut ),,
    "@brief Fade the object in or out without removing it from the scene.\n\n"
 

+ 3 - 40
Engine/source/T3D/shapeBase.h

@@ -689,7 +689,6 @@ public:
       MaxMountedImages = 4,            ///< Should be a power of 2
       MaxImageEmitters = 3,
       NumImageBits = 3,
-      ShieldNormalBits = 8,
       CollisionTimeoutValue = 250      ///< Timeout in ms.
    };
 
@@ -743,17 +742,6 @@ protected:
 
    /// @}
 
-   /// @name Invincibility
-   /// @{
-   F32 mInvincibleCount;
-   F32 mInvincibleTime;
-   F32 mInvincibleSpeed;
-   F32 mInvincibleDelta;
-   F32 mInvincibleEffect;
-   F32 mInvincibleFade;
-   bool mInvincibleOn;
-   /// @}
-
    /// @name Motion
    /// @{
    bool mMoveMotion;    ///< Indicates that a Move has come in requesting x, y or z motion
@@ -918,9 +906,6 @@ protected:
 
    bool mFlipFadeVal;
 
-   /// Last shield direction (cur. unused)
-   Point3F mShieldNormal;
-
    /// Camera shake caused by weapon fire.
    CameraShake *mWeaponCamShake;
 
@@ -1156,11 +1141,9 @@ public:
       DamageMask      = Parent::NextFreeMask << 1,
       NoWarpMask      = Parent::NextFreeMask << 2,
       CloakMask       = Parent::NextFreeMask << 3,
-      ShieldMask      = Parent::NextFreeMask << 4,
-      InvincibleMask  = Parent::NextFreeMask << 5,
-      SkinMask        = Parent::NextFreeMask << 6,
-      MeshHiddenMask  = Parent::NextFreeMask << 7,
-      SoundMaskN      = Parent::NextFreeMask << 8,       ///< Extends + MaxSoundThreads bits
+      SkinMask        = Parent::NextFreeMask << 4,
+      MeshHiddenMask  = Parent::NextFreeMask << 5,
+      SoundMaskN      = Parent::NextFreeMask << 6,       ///< Extends + MaxSoundThreads bits
       ThreadMaskN     = SoundMaskN  << MaxSoundThreads,  ///< Extends + MaxScriptThreads bits
       ImageMaskN      = ThreadMaskN << MaxScriptThreads, ///< Extends + MaxMountedImage bits
       NextFreeMask    = ImageMaskN  << MaxMountedImages
@@ -1702,26 +1685,6 @@ public:
    virtual void setWhiteOut(const F32);
    /// @}
 
-   /// @name Invincibility effect
-   /// This is the screen effect when invincible in the HUD
-   /// @see GameRenderFilters()
-   /// @{
-
-   /// Returns the level of invincibility effect
-   virtual F32 getInvincibleEffect() const;
-
-   /// Initializes invincibility effect and interpolation parameters
-   ///
-   /// @param   time   Time it takes to become invincible
-   /// @param   speed  Speed at which invincibility effects progress
-   virtual void setupInvincibleEffect(F32 time, F32 speed);
-
-   /// Advance invincibility effect animation
-   /// @param   dt   Time since last call of this function
-   virtual void updateInvincibleEffect(F32 dt);
-
-   /// @}
-
    /// @name Movement & velocity
    /// @{