2018-11-14 18:17:25 +01:00
|
|
|
#include <vector>
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
#include <irrlicht.h>
|
|
|
|
|
2018-11-19 01:07:50 +01:00
|
|
|
//! Spawns aircraft, conducts hit-testing and points counting
|
2018-11-14 18:17:25 +01:00
|
|
|
class Dispatcher
|
|
|
|
{
|
|
|
|
public:
|
2021-08-05 16:00:19 +02:00
|
|
|
typedef std::vector< std::unique_ptr<class Aircraft> > Aircrafts;
|
2018-11-14 18:17:25 +01:00
|
|
|
Dispatcher();
|
|
|
|
~Dispatcher();
|
|
|
|
|
|
|
|
void start();
|
|
|
|
void execute();
|
|
|
|
void stop();
|
|
|
|
const Aircrafts& getAircrafts() const;
|
|
|
|
bool evalShot(const irr::core::line3df&);
|
2018-11-15 18:17:22 +01:00
|
|
|
irr::u32 getAircraftsRemaining() const;
|
|
|
|
irr::u32 getPoints() const;
|
2018-11-14 18:17:25 +01:00
|
|
|
|
|
|
|
private:
|
|
|
|
irr::u32 lastDispatchMS;
|
|
|
|
Aircrafts aircrafts;
|
|
|
|
bool active;
|
|
|
|
|
2018-11-15 18:17:22 +01:00
|
|
|
irr::u32 aircraftsRemaining, points;
|
|
|
|
|
2018-11-15 15:37:22 +01:00
|
|
|
void dispatchAircraft();
|
2018-11-14 18:17:25 +01:00
|
|
|
};
|