1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#ifndef INTERCEPTHANDLER_H
#define INTERCEPTHANDLER_H
#include "Object.h"
#include <list>
#include <boost/noncopyable.hpp>
#include "float3.h"
class CWeapon;
class CWeaponProjectile;
class CPlasmaRepulser;
class CProjectile;
class CInterceptHandler : public boost::noncopyable
{
CR_DECLARE(CInterceptHandler)
public:
CInterceptHandler(void);
~CInterceptHandler(void);
void AddInterceptorWeapon(CWeapon* weapon);
void RemoveInterceptorWeapon(CWeapon* weapon);
void AddInterceptTarget(CWeaponProjectile* target, float3 destination);
void AddShieldInterceptableProjectile(CWeaponProjectile* p);
float AddShieldInterceptableBeam(CWeapon* emitter, float3 start, float3 dir, float length, float3& newDir, CPlasmaRepulser*& repulsedBy);
void AddPlasmaRepulser(CPlasmaRepulser* r);
void RemovePlasmaRepulser(CPlasmaRepulser* r);
private:
std::list<CWeapon*> interceptors;
std::list<CPlasmaRepulser*> plasmaRepulsors;
};
extern CInterceptHandler interceptHandler;
#endif /* INTERCEPTHANDLER_H */
|