/*********************************************************************//**
*	Scripted sequence.
*	objekt pouzivany k vytvareni pripravenych animaci 3D modelu.
*	
*	author: Michal Jirous
*	date: 23.04.2009
*	file: ent_scripted_sequence.cpp
**********************************************************************/

#include "ent_basemonster.h"


ScriptedSequence::ScriptedSequence()
{
	m_sClassName = "scripted_sequence";
	m_iAnimation = -1;
	m_bMoveHere = true;	
	m_pMonster = NULL;
}


void ScriptedSequence::passFlags( int flags )
{
	if( flags & NO_MOVEMENT )
		m_bMoveHere = false;
}

void ScriptedSequence::setParameters( parameters_t &parametersMap )
{
	CBaseEnvironment::setParameters( parametersMap );

	m_sMonster = getParameterValue( parametersMap, "targetmonster" );

	std::string value = getParameterValue( parametersMap, "animation" );
	if( !value.empty() )
		m_iAnimation = atoi( value.c_str() );

}

void ScriptedSequence::onEnd()
{
	
}

void ScriptedSequence::onTarget( int target_type )
{
	if( m_pMonster )
		m_pMonster->setTarget( this );
}

#include "level_loader.H"

void ScriptedSequence::compile()
{
	CBaseEnvironment::compile();

	entityList_t *pList = levelLoader.m_Entities.getEntitiesByName( m_sMonster );

	if( pList && !pList->empty() )
	{
		if( pList->front()->getProperties() & ENT_PARM_MONSTER )
			m_pMonster = reinterpret_cast<CBaseMonster*>( pList->front() );
	}

}
