Pyrogenesis  trunk
Public Member Functions | Static Public Attributes | List of all members
ICmpTerritoryManager Class Referenceabstract

#include <ICmpTerritoryManager.h>

Inheritance diagram for ICmpTerritoryManager:
Inheritance graph
[legend]
Collaboration diagram for ICmpTerritoryManager:
Collaboration graph
[legend]

Public Member Functions

virtual bool NeedUpdateTexture (size_t *dirtyID)=0
 Returns whether the territory texture needs to be updated. More...
 
virtual bool NeedUpdateAI (size_t *dirtyID, size_t *dirtyBlinkingID) const =0
 Returns whether the AI territory map needs to be updated. More...
 
virtual const Grid< u8 > & GetTerritoryGrid ()=0
 For each tile, the TERRITORY_PLAYER_MASK bits are player ID; TERRITORY_CONNECTED_MASK is set if the tile is connected to a root object (civ center etc). More...
 
virtual player_id_t GetOwner (entity_pos_t x, entity_pos_t z)=0
 Get owner of territory at given position. More...
 
virtual std::vector< u32GetNeighbours (entity_pos_t x, entity_pos_t z, bool filterConnected)=0
 get the number of neighbour tiles for per player for the selected position More...
 
virtual bool IsConnected (entity_pos_t x, entity_pos_t z)=0
 Get whether territory at given position is connected to a root object (civ center etc) owned by that territory's player. More...
 
virtual void SetTerritoryBlinking (entity_pos_t x, entity_pos_t z, bool enable)=0
 Set a piece of territory to blinking. More...
 
virtual bool IsTerritoryBlinking (entity_pos_t x, entity_pos_t z)=0
 Check if a piece of territory is blinking. More...
 
virtual u8 GetTerritoryPercentage (player_id_t player)=0
 Returns the percentage of the world controlled by a given player as defined by the number of territory cells the given player owns. More...
 
virtual void SetVisibility (bool visible)=0
 Enables or disables rendering of an territory borders. More...
 
virtual void UpdateColors ()=0
 Updates the boundary and territory colors. More...
 
- Public Member Functions inherited from IComponent
virtual ~IComponent ()
 
virtual void Init (const CParamNode &paramNode)=0
 
virtual void Deinit ()=0
 
virtual void HandleMessage (const CMessage &msg, bool global)
 
CEntityHandle GetEntityHandle () const
 
void SetEntityHandle (CEntityHandle ent)
 
entity_id_t GetEntityId () const
 
CEntityHandle GetSystemEntity () const
 
const CSimContextGetSimContext () const
 
void SetSimContext (const CSimContext &context)
 
virtual void Serialize (ISerializer &serialize)=0
 
virtual void Deserialize (const CParamNode &paramNode, IDeserializer &deserialize)=0
 
virtual bool NewJSObject (const ScriptInterface &scriptInterface, JS::MutableHandleObject out) const
 Returns false by default, indicating that a scripted wrapper of this IComponent is not supported. More...
 
virtual JS::Value GetJSInstance () const
 
virtual int GetComponentTypeId () const =0
 

Static Public Attributes

static const int NAVCELLS_PER_TERRITORY_TILE = 8
 Number of pathfinder navcells per territory tile. More...
 
static const int TERRITORY_PLAYER_MASK = 0x1F
 
static const int TERRITORY_CONNECTED_MASK = 0x20
 
static const int TERRITORY_BLINKING_MASK = 0x40
 
static const int TERRITORY_PROCESSED_MASK = 0x80
 

Additional Inherited Members

- Public Types inherited from IComponent
using AllocFunc = IComponent *(*)(const ScriptInterface &scriptInterface, JS::HandleValue ctor)
 
using DeallocFunc = void(*)(IComponent *)
 
- Static Public Member Functions inherited from IComponent
static std::string GetSchema ()
 
static void RegisterComponentType (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static void RegisterComponentTypeScriptWrapper (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static u8 GetSerializationVersion ()
 

Member Function Documentation

◆ GetNeighbours()

virtual std::vector<u32> ICmpTerritoryManager::GetNeighbours ( entity_pos_t  x,
entity_pos_t  z,
bool  filterConnected 
)
pure virtual

get the number of neighbour tiles for per player for the selected position

Returns
A list with the number of neighbour tiles per player

Implemented in CCmpTerritoryManager.

◆ GetOwner()

virtual player_id_t ICmpTerritoryManager::GetOwner ( entity_pos_t  x,
entity_pos_t  z 
)
pure virtual

Get owner of territory at given position.

Returns
player ID of owner; 0 if neutral territory

Implemented in CCmpTerritoryManager.

◆ GetTerritoryGrid()

virtual const Grid<u8>& ICmpTerritoryManager::GetTerritoryGrid ( )
pure virtual

For each tile, the TERRITORY_PLAYER_MASK bits are player ID; TERRITORY_CONNECTED_MASK is set if the tile is connected to a root object (civ center etc).

Implemented in CCmpTerritoryManager.

◆ GetTerritoryPercentage()

virtual u8 ICmpTerritoryManager::GetTerritoryPercentage ( player_id_t  player)
pure virtual

Returns the percentage of the world controlled by a given player as defined by the number of territory cells the given player owns.

Implemented in CCmpTerritoryManager.

◆ IsConnected()

virtual bool ICmpTerritoryManager::IsConnected ( entity_pos_t  x,
entity_pos_t  z 
)
pure virtual

Get whether territory at given position is connected to a root object (civ center etc) owned by that territory's player.

Implemented in CCmpTerritoryManager.

◆ IsTerritoryBlinking()

virtual bool ICmpTerritoryManager::IsTerritoryBlinking ( entity_pos_t  x,
entity_pos_t  z 
)
pure virtual

Check if a piece of territory is blinking.

Implemented in CCmpTerritoryManager.

◆ NeedUpdateAI()

virtual bool ICmpTerritoryManager::NeedUpdateAI ( size_t *  dirtyID,
size_t *  dirtyBlinkingID 
) const
pure virtual

Returns whether the AI territory map needs to be updated.

Implemented in CCmpTerritoryManager.

◆ NeedUpdateTexture()

virtual bool ICmpTerritoryManager::NeedUpdateTexture ( size_t *  dirtyID)
pure virtual

Returns whether the territory texture needs to be updated.

Implemented in CCmpTerritoryManager.

◆ SetTerritoryBlinking()

virtual void ICmpTerritoryManager::SetTerritoryBlinking ( entity_pos_t  x,
entity_pos_t  z,
bool  enable 
)
pure virtual

Set a piece of territory to blinking.

Must be updated on every territory calculation

Implemented in CCmpTerritoryManager.

◆ SetVisibility()

virtual void ICmpTerritoryManager::SetVisibility ( bool  visible)
pure virtual

Enables or disables rendering of an territory borders.

Implemented in CCmpTerritoryManager.

◆ UpdateColors()

virtual void ICmpTerritoryManager::UpdateColors ( )
pure virtual

Updates the boundary and territory colors.

Implemented in CCmpTerritoryManager.

Member Data Documentation

◆ NAVCELLS_PER_TERRITORY_TILE

const int ICmpTerritoryManager::NAVCELLS_PER_TERRITORY_TILE = 8
static

Number of pathfinder navcells per territory tile.

Passability data is stored per navcell, but we probably don't need that much resolution, and a lower resolution can make the boundary lines look prettier and will take less memory, so we downsample the passability data.

◆ TERRITORY_BLINKING_MASK

const int ICmpTerritoryManager::TERRITORY_BLINKING_MASK = 0x40
static

◆ TERRITORY_CONNECTED_MASK

const int ICmpTerritoryManager::TERRITORY_CONNECTED_MASK = 0x20
static

◆ TERRITORY_PLAYER_MASK

const int ICmpTerritoryManager::TERRITORY_PLAYER_MASK = 0x1F
static

◆ TERRITORY_PROCESSED_MASK

const int ICmpTerritoryManager::TERRITORY_PROCESSED_MASK = 0x80
static

The documentation for this class was generated from the following file: