mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-16 09:04:38 +00:00
fixes for trigger onenter/onleave
1- corrects onleavetrigger for deletions 2-adds a testObjects to trip onenter when creating or moving a trigger itself so that that will list objects already there as opposed to only going off when something moves into it
This commit is contained in:
parent
341c7eeee1
commit
8ecb474a67
2 changed files with 21 additions and 2 deletions
|
|
@ -389,6 +389,20 @@ bool Trigger::setTickCmd(void *object, const char *index, const char *data)
|
||||||
return true; // to update the actual field
|
return true; // to update the actual field
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void Trigger::testObjects()
|
||||||
|
{
|
||||||
|
Vector<SceneObject*> foundobjs;
|
||||||
|
gServerContainer.findObjectList(getWorldBox(), 0xFFFFFFFF, &foundobjs);
|
||||||
|
for (S32 i = 0; i < foundobjs.size(); ++i)
|
||||||
|
{
|
||||||
|
GameBase* so = dynamic_cast<GameBase*>(foundobjs[i]);
|
||||||
|
if (so)
|
||||||
|
potentialEnterObject(so);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
bool Trigger::onAdd()
|
bool Trigger::onAdd()
|
||||||
|
|
@ -405,7 +419,9 @@ bool Trigger::onAdd()
|
||||||
|
|
||||||
if (isServerObject())
|
if (isServerObject())
|
||||||
scriptOnAdd();
|
scriptOnAdd();
|
||||||
|
|
||||||
|
testObjects();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -441,7 +457,7 @@ void Trigger::onDeleteNotify( SimObject *obj )
|
||||||
{
|
{
|
||||||
mObjects.erase(i);
|
mObjects.erase(i);
|
||||||
if (mDataBlock)
|
if (mDataBlock)
|
||||||
mDataBlock->onLeaveTrigger_callback( this, pScene );
|
mDataBlock->onLeaveTrigger_callback( this, NULL );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -517,6 +533,8 @@ void Trigger::setTransform(const MatrixF & mat)
|
||||||
|
|
||||||
setMaskBits(TransformMask | ScaleMask);
|
setMaskBits(TransformMask | ScaleMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Trigger::prepRenderImage( SceneRenderState *state )
|
void Trigger::prepRenderImage( SceneRenderState *state )
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,7 @@ class Trigger : public GameBase
|
||||||
|
|
||||||
static void consoleInit();
|
static void consoleInit();
|
||||||
static void initPersistFields();
|
static void initPersistFields();
|
||||||
|
void testObjects();
|
||||||
bool onAdd();
|
bool onAdd();
|
||||||
void onRemove();
|
void onRemove();
|
||||||
void onDeleteNotify(SimObject*);
|
void onDeleteNotify(SimObject*);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue