#ifndef _SHOT_MANAGER_
#define _SHOT_MANAGER_

#include <HPLE3DLapper.h>

namespace MotionTest {
namespace ShotType {
	enum {
		BULLET,
		MISSILE,
	};
}
/**
  *
  */
class ShotManager: public HPL::E3D::AbstractObjectManager<HPL::E3D::E3DObject> {
public:
	ShotManager();
	virtual ~ShotManager();
public:

	///////////////////
	// オーバーライド
	BOOL is_Skip( HPL::E3D::E3DObject* obj );
	int checkInView( HPL::E3D::E3DObject* obj );
	int move( HPL::E3D::E3DObject* obj );
	int checkHitToGround( HPL::E3D::E3DObject* obj );
	int checkHitToBillBoard( HPL::E3D::E3DObject* obj ) { return 1;}
	int checkHitToPlayer( HPL::E3D::E3DObject* obj ) { return checkHitToEnemy( obj ); }
	int render( HPL::E3D::E3DObject* obj );

	int checkHitToEnemy( HPL::E3D::E3DObject* obj );
	int createObjects( int nType, int nNum );

	/** MOAファイル読み込み
	  *
	  */
	int loadMOAFile( const char* lpszFilePath, HPL::E3D::E3DObject* obj );

	int add_Object( int nType, int nSigID );

	/** 待機しているオブジェクトを呼び出します。
	  * @retval NULL	既に全て埋まっていて存在しない場合
	  */
	HPL::E3D::E3DObject* search( int nType);
};
}


#endif
