This repository has been archived on 2023-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
BWMirror-Generator/c/BWAPI/Race.h
2014-08-05 10:43:14 +02:00

59 lines
2.2 KiB
C++

#pragma once
#include <string>
#include <set>
#include "Type.h"
namespace BWAPI
{
class UnitType;
class Race : public Type
{
public:
Race();
Race(int id);
/** Returns the name of the race. For example Races::Terran.getName() will return a std::string object
* containing "Terran". */
const std::string &getName() const;
const char *c_str() const;
/** Returns the worker unit type for the given race. For example Races::Protoss.getWorker() will return
* a pointer to UnitTypes::Protoss_Probe. */
UnitType getWorker() const;
/** Returns the center unit type for the given race. For example Races::Terran.getCenter() will return a
* pointer to UnitTypes::Terran_Command_Center. While there are three center types for Zerg
* (Hatchery, Lair, and Hive), Races::Zerg.getCenter() will only return a pointer to
* UnitTypes::Zerg_Hatchery, since it is the unit type needed to make a new center. */
UnitType getCenter() const;
/** Returns the refinery unit type for the given race. For example: Races::Zerg.getRefinery() will
* return a pointer to UnitTypes::Zerg_Extractor?. */
UnitType getRefinery() const;
/** Returns the transport unit type for the given race. For example: Races::Protoss.getTransport() will
* return a pointer to UnitTypes::Protoss_Shuttle. */
UnitType getTransport() const;
/** Returns the main supply provider unit type for the given race. For example:
* Races::Terran.getSupplyProvider() will return a pointer to UnitTypes::Terran_Supply_Depot?. */
UnitType getSupplyProvider() const;
};
namespace Races
{
/** Given the name of a race, this function will return the race type. For example:
* Races::getRace("Zerg") will return Races::Zerg. */
Race getRace(std::string name);
/** Returns the set of all the races, which are listed below. */
const std::set<Race>& allRaces();
void init();
extern const Race Zerg;
extern const Race Terran;
extern const Race Protoss;
extern const Race Random;
extern const Race Other;
extern const Race None;
extern const Race Unknown;
}
}