commit x64 compilation from lulu cause the other branch dont seems to compile properly at home
This commit is contained in:
58
include/engine/core/trigger.cpp
Normal file
58
include/engine/core/trigger.cpp
Normal file
@ -0,0 +1,58 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "core/trigger.h"
|
||||
|
||||
using namespace GS;
|
||||
using namespace GS::Core;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void Trigger::DropItem(Item *item) {
|
||||
ListForeachPtr(ItemInTrigger *, ti, items_in_trigger)
|
||||
if (ti->item == item) {
|
||||
items_in_trigger.Remove(ti);
|
||||
delete ti;
|
||||
}
|
||||
}
|
||||
void Trigger::MarkItem(Item *item)
|
||||
{
|
||||
ListForeachPtr(ItemInTrigger *, ti, items_in_trigger)
|
||||
if (ti->item == item)
|
||||
{
|
||||
ti->inside = true;
|
||||
return;
|
||||
}
|
||||
|
||||
items_in_trigger.Add(new ItemInTrigger(item));
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
void Trigger::ReadyItemList()
|
||||
{
|
||||
ListForeachPtr(ItemInTrigger *, ti, items_in_trigger)
|
||||
ti->inside = false;
|
||||
}
|
||||
void Trigger::PurgeItemList()
|
||||
{
|
||||
ListForeachPtr(ItemInTrigger *, ti, items_in_trigger)
|
||||
if (!ti->inside)
|
||||
DropItem(ti->item);
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
bool Trigger::IsInside(const Vector4 &p)
|
||||
{
|
||||
Vector4 local = p * GetInverseMatrix();
|
||||
return (local.x > -0.5) && (local.x < 0.5) && (local.y > -0.5) && (local.y < 0.5) && (local.z > -0.5) && (local.z < 0.5);
|
||||
}
|
||||
|
||||
Trigger::~Trigger()
|
||||
{
|
||||
ListForeachPtr(ItemInTrigger *, ti, items_in_trigger)
|
||||
delete ti;
|
||||
}
|
||||
Reference in New Issue
Block a user