Remove player IDs, keep it simple stupid

This commit is contained in:
Marc Di Luzio 2014-12-16 13:13:03 +00:00
parent e001396744
commit a90ad9f90c
8 changed files with 35 additions and 58 deletions

View file

@ -30,7 +30,7 @@ CTTRTSGame& CTTRTSGame::operator=(CTTRTSGame&& game)
}
// Interpret a string of orders
int CTTRTSGame::IssueOrders( player_id_t player, const std::string& _orders )
int CTTRTSGame::IssueOrders( Team team, const std::string& _orders )
{
COrderVector orderVector;
@ -53,17 +53,17 @@ int CTTRTSGame::IssueOrders( player_id_t player, const std::string& _orders )
}
// Call our add order by vector method
return IssueOrders(player,orderVector);
return IssueOrders(team,orderVector);
}
// Issue orders by vector to the game
int CTTRTSGame::IssueOrders( player_id_t player, const COrderVector& orders )
int CTTRTSGame::IssueOrders( Team team, const COrderVector& orders )
{
// verify all the orders
for ( auto order : orders )
{
// If any order returns non-zero, back out
if ( IssueOrder(player,order) )
if ( IssueOrder(team,order) )
return 1;
}
@ -71,10 +71,10 @@ int CTTRTSGame::IssueOrders( player_id_t player, const COrderVector& orders )
}
// Issue a single order
int CTTRTSGame::IssueOrder( player_id_t player, const COrder& order )
int CTTRTSGame::IssueOrder( Team team, const COrder& order )
{
// Verify the order
if ( VerifyOrder(player,order) )
if ( VerifyOrder(team,order) )
return 1;
// Get the right unit for the order
@ -290,7 +290,7 @@ int CTTRTSGame::AddUnits( CUnitVector&& units )
}
// Verify any order
int CTTRTSGame::VerifyOrder( player_id_t player, const COrder& order ) const
int CTTRTSGame::VerifyOrder( Team team, const COrder& order ) const
{
int ret = 1;

View file

@ -68,9 +68,9 @@ public:
std::string GetStateAsString() const;
// Issue orders to the game, returns non-zero if orders are incorrect
int IssueOrders( player_id_t player, const std::string& orders );
int IssueOrders( player_id_t player, const COrderVector& orders );
int IssueOrder( player_id_t player, const COrder& order );
int IssueOrders( Team team, const std::string& orders );
int IssueOrders( Team team, const COrderVector& orders );
int IssueOrder( Team team, const COrder& order );
// Add a units to the game, nonzero return value indicates error
int AddUnit( CUnit&& unit );
@ -100,7 +100,7 @@ public:
private:
// Verify any order or position - non-zero is error
int VerifyOrder( player_id_t player, const COrder& order ) const;
int VerifyOrder( Team team, const COrder& order ) const;
int VerifyPos( uvector2 vec ) const;
// Get a units new position after an order

View file

@ -14,11 +14,9 @@ enum class Team : char
};
typedef unsigned char player_id_t; // Type for player IDs
typedef unsigned short unit_id_t; // Type for unit IDs
typedef char unitVis_c; // Typedef for unit visual representations
static const player_id_t player_id_invalid = std::numeric_limits<player_id_t>::max();
static const unit_id_t unit_id_invalid = std::numeric_limits<unit_id_t>::max();
static const unitVis_c unitVis_invalid = std::numeric_limits<unitVis_c>::max();

View file

@ -48,7 +48,6 @@ std::string CUnit::GetStringFromUnit(const CUnit& unit )
snprintf(buff,128, UNIT_FORMATTER,
unit.unit_id,
(int)unit.team_id,
unit.player_id,
unit.unit_vis,
unit.dir,
unit.pos.x,
@ -65,7 +64,6 @@ CUnit CUnit::GetUnitFromString(const std::string& unit )
unsigned int id;
int team;
unsigned int player;
char vis;
char dir;
unsigned int posx;
@ -74,7 +72,6 @@ CUnit CUnit::GetUnitFromString(const std::string& unit )
sscanf(unit.c_str(), UNIT_FORMATTER,
&id,
&team,
&player,
&vis,
&dir,
&posx,
@ -82,7 +79,6 @@ CUnit CUnit::GetUnitFromString(const std::string& unit )
ret.unit_id = (unit_id_t)id;
ret.team_id = (Team)team;
ret.player_id = (player_id_t)player;
ret.unit_vis = (unitVis_c)vis;
ret.dir = (dir_t)dir;
ret.pos = uvector2(posx,posy);
@ -95,7 +91,6 @@ CUnit::CUnit()
: unit_id ( get_unique_unit_id() )
, team_id ( Team::NUM_INVALID )
, unit_vis ( unitVis_invalid )
, player_id ( player_id_invalid )
, dir ( dir_t::S )
, pos ( { ucoord_invalid, ucoord_invalid } )
{
@ -106,7 +101,6 @@ CUnit::CUnit()
CUnit::CUnit(CUnit&& unit)
: unit_id ( std::move(unit.unit_id) )
, team_id ( std::move(unit.team_id) )
, player_id ( std::move(unit.player_id) )
, unit_vis ( std::move(unit.unit_vis) )
, dir ( std::move(unit.dir) )
, pos ( std::move(unit.pos) )
@ -120,7 +114,6 @@ CUnit& CUnit::operator=(CUnit&& unit)
{
unit_id = std::move(unit.unit_id) ;
team_id = std::move(unit.team_id) ;
player_id = std::move(unit.player_id) ;
unit_vis = std::move(unit.unit_vis) ;
dir = std::move(unit.dir) ;
pos = std::move(unit.pos) ;
@ -132,7 +125,6 @@ bool CUnit::operator==(const CUnit& rhs)
{
return (unit_id == rhs.unit_id)
&& (team_id == rhs.team_id)
&& (player_id == rhs.player_id)
&& (unit_vis == rhs.unit_vis)
&& (dir == rhs.dir)
&& (pos == rhs.pos);

View file

@ -7,7 +7,7 @@
#include "gametypes.h"
#include "vector2.h"
#define UNIT_FORMATTER "UNIT:%u tm:%u pl:%u vs:%c dr:%c ps:[%u,%u]"
#define UNIT_FORMATTER "UNIT:%u tm:%u vs:%c dr:%c ps:[%u,%u]"
// Base unit type
class CUnit
@ -37,14 +37,12 @@ public:
// 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 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; }
inline const uvector2& getPos() const { return pos; }
// Set
inline Team setTeam(const Team & v) { return (team_id = v); }
inline player_id_t setPlayer(const player_id_t& v) { return ( player_id = v ); }
inline unitVis_c setVisual(const unitVis_c& v) { return ( unit_vis = v ); }
inline dir_t setDir(const dir_t& v) { return (dir = v); }
inline void setPos(const uvector2& v) { pos = v; }
@ -77,9 +75,6 @@ private:
// Team ID
Team team_id;
// Owner ID
player_id_t player_id;
// Direction
dir_t dir;
@ -95,7 +90,6 @@ inline bool CUnit::valid() const
{
return (unit_id != unit_id_invalid )
&& (team_id != Team::NUM_INVALID )
&& (player_id != player_id_invalid)
&& (unit_vis != unitVis_invalid);
}