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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef PLAYER_BASE_H
#define PLAYER_BASE_H
#include <string>
#include "Game/Players/TeamController.h"
#include "System/creg/creg_cond.h"
#include "System/UnorderedMap.hpp"
/**
* @brief Acts as a base class for the various player-representing classes
*/
class PlayerBase : public TeamController
{
CR_DECLARE_DERIVED(PlayerBase)
public:
typedef spring::unordered_map<std::string, std::string> customOpts;
PlayerBase();
virtual ~PlayerBase() {}
void SetValue(const std::string& key, const std::string& value);
const customOpts& GetAllValues() const { return customValues; }
const char* GetType(const bool capital = true) const {
if (capital)
return spectator ? "Spectator" : "Player";
return spectator ? "spectator" : "player";
}
void SetReadyToStart(bool b) { readyToStart = b; }
int GetRank() const { return rank; }
float GetCPUUsage() const { return cpuUsage; }
bool IsSpectator() const { return spectator; }
bool IsFromDemo() const { return isFromDemo; }
bool IsReadyToStart() const { return readyToStart; }
bool IsDesynced() const { return desynced; }
const std::string& GetCountryCode() const { return countryCode; }
// protected:
int rank = -1;
float cpuUsage = 0.0f;
bool spectator = false;
bool isFromDemo = false;
bool readyToStart = false;
bool desynced = false;
std::string countryCode;
private:
customOpts customValues;
};
#endif // PLAYER_BASE_H
|