Merge pull request #602 from Azaezel/Simpler_ShapeBase1

removes non-functional shield and invincibility functionality.
This commit is contained in:
Andrew Mac 2014-05-08 23:39:33 -03:00
commit 704dc47bdb
2 changed files with 5 additions and 252 deletions

View file

@ -898,17 +898,9 @@ ShapeBase::ShapeBase()
mCloakLevel( 0.0f ), mCloakLevel( 0.0f ),
mDamageFlash( 0.0f ), mDamageFlash( 0.0f ),
mWhiteOut( 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 ), mIsControlled( false ),
mConvexList( new Convex ), mConvexList( new Convex ),
mCameraFov( 90.0f ), mCameraFov( 90.0f ),
mShieldNormal( 0.0f, 0.0f, 1.0f ),
mFadeOut( true ), mFadeOut( true ),
mFading( false ), mFading( false ),
mFadeVal( 1.0f ), mFadeVal( 1.0f ),
@ -1382,9 +1374,6 @@ void ShapeBase::advanceTime(F32 dt)
mCloakLevel = 0.0; mCloakLevel = 0.0;
} }
} }
if(mInvincibleOn)
updateInvincibleEffect(dt);
if(mFading) if(mFading)
{ {
mFadeElapsedTime += dt; mFadeElapsedTime += dt;
@ -1987,119 +1976,6 @@ void ShapeBase::getCameraTransform(F32* pos,MatrixF* mat)
mat->mul( gCamFXMgr.getTrans() ); 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) void ShapeBase::getCameraParameters(F32 *min,F32* max,Point3F* off,MatrixF* rot)
{ {
*min = mDataBlock->cameraMinDist; *min = mDataBlock->cameraMinDist;
@ -2153,52 +2029,6 @@ bool ShapeBase::useObjsEyePoint() const
return mDataBlock->useEyePoint; 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&) 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 | if(!stream->writeFlag(mask & (NameMask | DamageMask | SoundMask | MeshHiddenMask |
ThreadMask | ImageMask | CloakMask | InvincibleMask | ThreadMask | ImageMask | CloakMask | SkinMask)))
ShieldMask | SkinMask)))
return retMask; return retMask;
if (stream->writeFlag(mask & DamageMask)) { 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. // 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)) if (stream->writeFlag(mask & CloakMask))
{ {
@ -3194,14 +3023,6 @@ U32 ShapeBase::packUpdate(NetConnection *con, U32 mask, BitStream *stream)
if (stream->writeFlag(mask & NameMask)) { if (stream->writeFlag(mask & NameMask)) {
con->packNetStringHandleU(stream, mShapeNameHandle); 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 ) ) if ( stream->writeFlag( mask & MeshHiddenMask ) )
stream->writeBits( mMeshHidden ); stream->writeBits( mMeshHidden );
@ -3443,25 +3264,6 @@ void ShapeBase::unpackUpdate(NetConnection *con, BitStream *stream)
if (stream->readFlag()) { // NameMask if (stream->readFlag()) { // NameMask
mShapeNameHandle = con->unpackNetStringHandleU(stream); 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 if ( stream->readFlag() ) // MeshHiddenMask
{ {
@ -4826,18 +4628,6 @@ DefineEngineMethod( ShapeBase, setCameraFov, void, ( F32 fov ),,
object->setCameraFov( 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 ),, 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" "@brief Fade the object in or out without removing it from the scene.\n\n"

View file

@ -689,7 +689,6 @@ public:
MaxMountedImages = 4, ///< Should be a power of 2 MaxMountedImages = 4, ///< Should be a power of 2
MaxImageEmitters = 3, MaxImageEmitters = 3,
NumImageBits = 3, NumImageBits = 3,
ShieldNormalBits = 8,
CollisionTimeoutValue = 250 ///< Timeout in ms. 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 /// @name Motion
/// @{ /// @{
bool mMoveMotion; ///< Indicates that a Move has come in requesting x, y or z motion bool mMoveMotion; ///< Indicates that a Move has come in requesting x, y or z motion
@ -918,9 +906,6 @@ protected:
bool mFlipFadeVal; bool mFlipFadeVal;
/// Last shield direction (cur. unused)
Point3F mShieldNormal;
/// Camera shake caused by weapon fire. /// Camera shake caused by weapon fire.
CameraShake *mWeaponCamShake; CameraShake *mWeaponCamShake;
@ -1156,11 +1141,9 @@ public:
DamageMask = Parent::NextFreeMask << 1, DamageMask = Parent::NextFreeMask << 1,
NoWarpMask = Parent::NextFreeMask << 2, NoWarpMask = Parent::NextFreeMask << 2,
CloakMask = Parent::NextFreeMask << 3, CloakMask = Parent::NextFreeMask << 3,
ShieldMask = Parent::NextFreeMask << 4, SkinMask = Parent::NextFreeMask << 4,
InvincibleMask = Parent::NextFreeMask << 5, MeshHiddenMask = Parent::NextFreeMask << 5,
SkinMask = Parent::NextFreeMask << 6, SoundMaskN = Parent::NextFreeMask << 6, ///< Extends + MaxSoundThreads bits
MeshHiddenMask = Parent::NextFreeMask << 7,
SoundMaskN = Parent::NextFreeMask << 8, ///< Extends + MaxSoundThreads bits
ThreadMaskN = SoundMaskN << MaxSoundThreads, ///< Extends + MaxScriptThreads bits ThreadMaskN = SoundMaskN << MaxSoundThreads, ///< Extends + MaxScriptThreads bits
ImageMaskN = ThreadMaskN << MaxScriptThreads, ///< Extends + MaxMountedImage bits ImageMaskN = ThreadMaskN << MaxScriptThreads, ///< Extends + MaxMountedImage bits
NextFreeMask = ImageMaskN << MaxMountedImages NextFreeMask = ImageMaskN << MaxMountedImages
@ -1702,26 +1685,6 @@ public:
virtual void setWhiteOut(const F32); 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 /// @name Movement & velocity
/// @{ /// @{