Implement conversion of Unit to String and back

This commit is contained in:
Marc Di Luzio 2014-12-16 13:13:02 +00:00
parent 7a75fbd369
commit b77411121a
6 changed files with 188 additions and 31 deletions

View file

@ -15,16 +15,19 @@ public:
// Constructor
CUnit();
// Move constructor and move asignement. CUnit cannot be copied
// Move constructor and move assignment. CUnit cannot be copied
CUnit(CUnit&& unit);
CUnit& operator=(CUnit&& unit);
bool operator==(const CUnit& rhs);
bool operator!=(const CUnit& rhs) { return !(*this == rhs); }
// Default dtor
~CUnit() = default;
// Getters for all the members
inline const unit_id_t& getID() const { return unit_id; }
inline const Team & getTeam() const { return team_id; }
inline const Team & getTeam() const { return team_id; }
inline const player_id_t& getPlayer() const { return player_id; }
inline const unitVis_c& getVisual() const { return unit_vis; }
inline const dir_t& getDir() const { return dir; }
@ -39,6 +42,9 @@ public:
inline const uvector2& getPos() const { return pos; }
inline void setPos(const uvector2& v) { pos = v; }
inline const unit_id_t& setIDForced(const unit_id_t& v) { return (unit_id = v); }
// Get the co-ordinate infront of the unit
uvector2 getInFront() const;
@ -48,9 +54,6 @@ public:
// Set a unit based solely on it's visual
bool setFromVisual( const unitVis_c& vis);
// Factory function for creating units from a visual
static CUnit getUnitFromVis( unitVis_c vis );
// Orientation methods
dir_t turnLeft();
dir_t turnRight();
@ -92,4 +95,14 @@ inline bool CUnit::valid() const
&& (unit_vis != unitVis_invalid);
}
// Factory function for creating units from a visual
CUnit GetUnitFromVis( unitVis_c vis );
// Units strings stored as
// "U:[unit_id] T:[team_id] P:[player_id] V:[unit_vis] D:[dir] POS:[pos.x],[pos.y]"
// Unit <--> string conversion functions
std::string GetStringFromUnit(const CUnit& unit );
CUnit GetUnitFromString(const std::string& unit );
#endif //_UNIT_H_