Merge pull request #243 from Azaezel/alpha40_triggerTricks2

from @practicing01: trigger mounting
This commit is contained in:
Brian Roberts 2020-07-10 17:28:15 -05:00 committed by GitHub
commit 7de3829d38
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 0 deletions

View file

@ -537,6 +537,13 @@ void Trigger::setTransform(const MatrixF & mat)
testObjects();
}
void Trigger::onUnmount( SceneObject *obj, S32 node )
{
Parent::onUnmount( obj, node );
// Make sure the client get's the final server pos.
setMaskBits(TransformMask | ScaleMask);
}
void Trigger::prepRenderImage( SceneRenderState *state )
{
// only render if selected or render flag is set
@ -695,6 +702,13 @@ void Trigger::processTick(const Move* move)
if (!mDataBlock->isClientSide && isClientObject())
return;
if (isMounted()) {
MatrixF mat;
mMount.object->getMountTransform( mMount.node, mMount.xfm, &mat );
setTransform(mat);
setRenderTransform(mat);
}
//
if (mObjects.size() == 0)
return;
@ -734,6 +748,15 @@ void Trigger::processTick(const Move* move)
}
}
void Trigger::interpolateTick(F32 delta)
{
if (isMounted()) {
MatrixF mat;
mMount.object->getRenderMountTransform( delta, mMount.node, mMount.xfm, &mat );
setRenderTransform(mat);
}
}
//--------------------------------------------------------------------------
U32 Trigger::packUpdate(NetConnection* con, U32 mask, BitStream* stream)

View file

@ -89,6 +89,8 @@ class Trigger : public GameBase
static const U32 CMD_SIZE = 1024;
void onUnmount(SceneObject* obj,S32 node);
protected:
enum TriggerUpdateBits
@ -104,6 +106,7 @@ class Trigger : public GameBase
static bool smRenderTriggers;
bool testObject(GameBase* enter);
void processTick(const Move *move);
void interpolateTick(F32 delta);
void buildConvex(const Box3F& box, Convex* convex);