30 lines
899 B
C++
30 lines
899 B
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#include "scene3d/scene.h"
|
|
#include "scene3d/mtrigger.h"
|
|
|
|
using namespace GS::S3D;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
void Scene::UpdateTriggers()
|
|
{
|
|
ListForeachPtr(MTrigger *, t, trigger_list)
|
|
if (t->isActive())
|
|
{
|
|
t->ReadyItemList();
|
|
|
|
ArrayListForeachPtr(MItem *, i, active_list)
|
|
if (i->mitem_flags.IsSet(MItem::Flag_TriggerDetected)) // TODO make a dedicated list.
|
|
if (i->isActive() && t->IsInside(i->GetBaseItem()->GetMatrix().GetRow(3)))
|
|
t->MarkItem(i->GetBaseItem());
|
|
|
|
t->PurgeItemList();
|
|
}
|
|
}
|
|
//------------------------------------------------------------------------------
|