41 lines
1.1 KiB
C++
41 lines
1.1 KiB
C++
/* -----------------------------------------------------------------------------
|
|
GSFramework
|
|
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
|
----------------------------------------------------------------------------- */
|
|
|
|
|
|
#include "scene3d/mtrigger.h"
|
|
#include "scene3d/mitem_event_interface.h"
|
|
#include "scene3d/scene_message.h"
|
|
|
|
using namespace GS::S3D;
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
void MTriggerProxy::MarkItem(GS::Core::Item *item)
|
|
{
|
|
MItem *mitem = (MItem *)item->mitem;
|
|
mitem->item_event->OnTrigger(mitem, mtrigger);
|
|
|
|
Trigger::MarkItem(item);
|
|
|
|
mitem->item_event->OnEnterTrigger(mitem, mtrigger);
|
|
mtrigger->item_event->OnItemEnter(mtrigger, mitem);
|
|
}
|
|
void MTriggerProxy::DropItem(GS::Core::Item *item)
|
|
{
|
|
MItem *mitem = (MItem *)item->mitem;
|
|
|
|
mitem->item_event->OnExitTrigger(mitem, mtrigger);
|
|
mtrigger->item_event->OnItemExit(mtrigger, mitem);
|
|
|
|
Trigger::DropItem(item);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
|
|
MTrigger::MTrigger() : MTriggerProxy(this)
|
|
{
|
|
item_type = Type_Trigger;
|
|
mitem = (void *)((MItem *)this);
|
|
}
|