Ejemplo n.º 1
0
//----------------------------------------------------------------------------
// ObjectAddDeleteURDo
//----------------------------------------------------------------------------
ObjectAddDeleteURDo::ObjectAddDeleteURDo(bool isAdd,
	PX2::Object *object)
{
	mIsAdd = isAdd;
	mObject = object;

	Movable *mov = DynamicCast<Movable>(mObject);
	if (mov)
	{
		mParent = mov->GetParent();
	}

	Controller *ctrl = DynamicCast<Controller>(mObject);
	if (ctrl)
	{
		mParent = ctrl->GetControlledable();
	}

	Controller *comp = DynamicCast<Controller>(mObject);
	if (comp)
	{
		mParent = comp->GetControlledable();
	}
}
Ejemplo n.º 2
0
//----------------------------------------------------------------------------
bool EditMap::RemoveCtrl (PX2::Object *obj)
{
	if (!Project::GetSingletonPtr())
		return false;

	Controller *ctrl = DynamicCast<Controller>(obj);
	if (!ctrl)
		return false;

	Controlledable *ctrlAble = ctrl->GetControlledable();
	if (ctrlAble)
	{
		ctrlAble->DetachController(ctrl);

		Event *ent = EditorEventSpace::CreateEventX(EditorEventSpace::DetachControl);
		ent->SetData<Object*>(obj);
		EventWorld::GetSingleton().BroadcastingLocalEvent(ent);

		return true;
	}

	return false;
}