/*=========================================================================

	ngen.cpp

	Author:		CRB
	Created: 
	Project:	Spongebob
	Purpose: 

	Copyright (c) 2001 Climax Development Ltd

===========================================================================*/

#ifndef __ENEMY_NPC_H__
#include "enemy\npc.h"
#endif

#ifndef	__ENEMY_NGEN_H__
#include "enemy\ngen.h"
#endif

#ifndef __ENEMY_NSCRAB_H__
#include "enemy\nscrab.h"
#endif

#ifndef __GAME_GAME_H__
#include "game\game.h"
#endif

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void CNpcEnemyGenerator::shutdown()
{
	deleteAllChild();
	CNpcEnemy::shutdown();
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void CNpcEnemyGenerator::think(int _frames)
{
	if ( getNumChildren() < 3 )
	{
		m_movementTimer -= _frames;

		if ( m_movementTimer < 0 )
		{
			m_movementTimer = 3 * GameState::getOneSecondInFrames();

			CNpcEnemy *enemy;
			enemy = new( "spider crab" ) CNpcSpiderCrabEnemy;
			ASSERT(enemy);
			enemy->setType( CNpcEnemy::NPC_SPIDER_CRAB );
			enemy->init();
			enemy->setLayerCollision( m_layerCollision );
			enemy->setStartPos( Pos.vx >> 4, Pos.vy >> 4 );

			CNpcWaypoint *sourceWaypoint = m_npcPath.getWaypointList();

			if ( sourceWaypoint )
			{
				// skip first waypoint

				sourceWaypoint = sourceWaypoint->nextWaypoint;

				while( sourceWaypoint )
				{
					enemy->addWaypoint( sourceWaypoint->pos.vx >> 4, sourceWaypoint->pos.vy >> 4 );
					sourceWaypoint = sourceWaypoint->nextWaypoint;
				}
			}

			enemy->setPathType( m_npcPath.getPathType() );

			enemy->postInit();

			addChild( enemy );
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void CNpcEnemyGenerator::render()
{
	// do nothing
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void CNpcEnemyGenerator::processEnemyCollision( CThing *thisThing )
{
	// do nothing
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////