2014-12-16 13:12:54 +00:00
|
|
|
#ifndef _UNIT_H_
|
|
|
|
#define _UNIT_H_
|
|
|
|
|
|
|
|
#include <string>
|
2014-12-16 13:12:56 +00:00
|
|
|
#include <memory>
|
2014-12-16 13:12:54 +00:00
|
|
|
|
2014-12-16 13:12:58 +00:00
|
|
|
#include "gametypes.h"
|
2014-12-16 13:12:54 +00:00
|
|
|
#include "vector2.h"
|
|
|
|
|
|
|
|
// Base unit type
|
|
|
|
class CUnit
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
virtual ~CUnit() = default;
|
|
|
|
|
2014-12-16 13:12:56 +00:00
|
|
|
virtual unitVis_c getVisual() const = 0;
|
|
|
|
virtual bool setFromVisual(unitVis_c& vis) = 0;
|
|
|
|
|
|
|
|
static std::unique_ptr<CUnit> getUnitFromVis( unitVis_c vis );
|
|
|
|
|
2014-12-16 13:12:59 +00:00
|
|
|
inline unit_id_t getID() const { return id; }
|
|
|
|
|
2014-12-16 13:12:56 +00:00
|
|
|
protected:
|
|
|
|
CUnit() = default;
|
2014-12-16 13:12:55 +00:00
|
|
|
|
2014-12-16 13:12:54 +00:00
|
|
|
private:
|
|
|
|
|
2014-12-16 13:12:58 +00:00
|
|
|
// Unit ID
|
|
|
|
unit_id_t id;
|
|
|
|
|
|
|
|
// Team ID
|
|
|
|
team_id_t team_id;
|
|
|
|
|
|
|
|
// Owner ID
|
|
|
|
player_id_t owner_id;
|
|
|
|
|
2014-12-16 13:12:54 +00:00
|
|
|
// All units must have position
|
|
|
|
uvector2 pos;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //_UNIT_H_
|