mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 07:34:45 +00:00
Merge pull request #602 from Azaezel/Simpler_ShapeBase1
removes non-functional shield and invincibility functionality.
This commit is contained in:
commit
704dc47bdb
2 changed files with 5 additions and 252 deletions
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue