Pyrogenesis  trunk
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | List of all members
CCmpTerritoryManager Class Reference
Inheritance diagram for CCmpTerritoryManager:
Inheritance graph
[legend]
Collaboration diagram for CCmpTerritoryManager:
Collaboration graph
[legend]

Classes

struct  SBoundaryLine
 

Public Member Functions

int GetComponentTypeId () const override
 
void Init (const CParamNode &paramNode) override
 
void Deinit () override
 
void Serialize (ISerializer &serialize) override
 
void Deserialize (const CParamNode &paramNode, IDeserializer &deserialize) override
 
void HandleMessage (const CMessage &msg, bool global) override
 
void MakeDirtyIfRelevantEntity (entity_id_t ent)
 
const Grid< u8 > & GetTerritoryGrid () override
 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...
 
player_id_t GetOwner (entity_pos_t x, entity_pos_t z) override
 Get owner of territory at given position. More...
 
std::vector< u32GetNeighbours (entity_pos_t x, entity_pos_t z, bool filterConnected) override
 get the number of neighbour tiles for per player for the selected position More...
 
bool IsConnected (entity_pos_t x, entity_pos_t z) override
 Get whether territory at given position is connected to a root object (civ center etc) owned by that territory's player. More...
 
void SetTerritoryBlinking (entity_pos_t x, entity_pos_t z, bool enable) override
 Set a piece of territory to blinking. More...
 
bool IsTerritoryBlinking (entity_pos_t x, entity_pos_t z) override
 Check if a piece of territory is blinking. More...
 
void MakeDirty ()
 
bool NeedUpdateTexture (size_t *dirtyID) override
 Returns whether the territory texture needs to be updated. More...
 
bool NeedUpdateAI (size_t *dirtyID, size_t *dirtyBlinkingID) const override
 Returns whether the AI territory map needs to be updated. More...
 
void CalculateCostGrid ()
 
void CalculateTerritories ()
 
u8 GetTerritoryPercentage (player_id_t player) override
 Returns the percentage of the world controlled by a given player as defined by the number of territory cells the given player owns. More...
 
std::vector< STerritoryBoundaryComputeBoundaries ()
 
void UpdateBoundaryLines ()
 
void Interpolate (float frameTime, float frameOffset)
 
void RenderSubmit (SceneCollector &collector, const CFrustum &frustum, bool culling)
 
void SetVisibility (bool visible) override
 Enables or disables rendering of an territory borders. More...
 
void UpdateColors () override
 Updates the boundary and territory colors. More...
 
- Public Member Functions inherited from IComponent
virtual ~IComponent ()
 
CEntityHandle GetEntityHandle () const
 
void SetEntityHandle (CEntityHandle ent)
 
entity_id_t GetEntityId () const
 
CEntityHandle GetSystemEntity () const
 
const CSimContextGetSimContext () const
 
void SetSimContext (const CSimContext &context)
 
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
 

Static Public Member Functions

static void ClassInit (CComponentManager &componentManager)
 
static IComponentAllocate (const ScriptInterface &, JS::HandleValue)
 
static void Deallocate (IComponent *cmp)
 
static std::string GetSchema ()
 
- 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 ()
 

Public Attributes

u8 m_ImpassableCost
 
float m_BorderThickness
 
float m_BorderSeparation
 
Grid< u8 > * m_Territories
 
std::vector< u16m_TerritoryCellCounts
 
u16 m_TerritoryTotalPassableCellCount
 
Grid< u8 > * m_CostGrid
 
bool m_TriggerEvent
 
std::vector< SBoundaryLinem_BoundaryLines
 
bool m_BoundaryLinesDirty
 
double m_AnimTime
 
TerritoryOverlaym_DebugOverlay
 
bool m_EnableLineDebugOverlays
 Enable node debugging overlays for boundary lines? More...
 
std::vector< SOverlayLinem_DebugBoundaryLineNodes
 
size_t m_DirtyID
 
size_t m_DirtyBlinkingID
 
bool m_ColorChanged
 

Private Attributes

bool m_Visible
 

Additional Inherited Members

- Public Types inherited from IComponent
using AllocFunc = IComponent *(*)(const ScriptInterface &scriptInterface, JS::HandleValue ctor)
 
using DeallocFunc = void(*)(IComponent *)
 
- Static Public Attributes inherited from ICmpTerritoryManager
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
 

Member Function Documentation

◆ Allocate()

static IComponent* CCmpTerritoryManager::Allocate ( const ScriptInterface ,
JS::HandleValue   
)
inlinestatic

◆ CalculateCostGrid()

void CCmpTerritoryManager::CalculateCostGrid ( )

◆ CalculateTerritories()

void CCmpTerritoryManager::CalculateTerritories ( )

◆ ClassInit()

static void CCmpTerritoryManager::ClassInit ( CComponentManager componentManager)
inlinestatic

◆ ComputeBoundaries()

std::vector< STerritoryBoundary > CCmpTerritoryManager::ComputeBoundaries ( )

◆ Deallocate()

static void CCmpTerritoryManager::Deallocate ( IComponent cmp)
inlinestatic

◆ Deinit()

void CCmpTerritoryManager::Deinit ( )
inlineoverridevirtual

Implements IComponent.

◆ Deserialize()

void CCmpTerritoryManager::Deserialize ( const CParamNode paramNode,
IDeserializer deserialize 
)
inlineoverridevirtual

Implements IComponent.

◆ GetComponentTypeId()

int CCmpTerritoryManager::GetComponentTypeId ( ) const
inlineoverridevirtual

Implements IComponent.

◆ GetNeighbours()

std::vector< u32 > CCmpTerritoryManager::GetNeighbours ( entity_pos_t  x,
entity_pos_t  z,
bool  filterConnected 
)
overridevirtual

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

Returns
A list with the number of neighbour tiles per player

Implements ICmpTerritoryManager.

◆ GetOwner()

player_id_t CCmpTerritoryManager::GetOwner ( entity_pos_t  x,
entity_pos_t  z 
)
overridevirtual

Get owner of territory at given position.

Returns
player ID of owner; 0 if neutral territory

Implements ICmpTerritoryManager.

◆ GetSchema()

static std::string CCmpTerritoryManager::GetSchema ( )
inlinestatic

◆ GetTerritoryGrid()

const Grid<u8>& CCmpTerritoryManager::GetTerritoryGrid ( )
inlineoverridevirtual

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).

Implements ICmpTerritoryManager.

◆ GetTerritoryPercentage()

u8 CCmpTerritoryManager::GetTerritoryPercentage ( player_id_t  player)
overridevirtual

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

Implements ICmpTerritoryManager.

◆ HandleMessage()

void CCmpTerritoryManager::HandleMessage ( const CMessage msg,
bool  global 
)
inlineoverridevirtual

Reimplemented from IComponent.

◆ Init()

void CCmpTerritoryManager::Init ( const CParamNode paramNode)
inlineoverridevirtual

Implements IComponent.

◆ Interpolate()

void CCmpTerritoryManager::Interpolate ( float  frameTime,
float  frameOffset 
)

◆ IsConnected()

bool CCmpTerritoryManager::IsConnected ( entity_pos_t  x,
entity_pos_t  z 
)
overridevirtual

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

Implements ICmpTerritoryManager.

◆ IsTerritoryBlinking()

bool CCmpTerritoryManager::IsTerritoryBlinking ( entity_pos_t  x,
entity_pos_t  z 
)
overridevirtual

Check if a piece of territory is blinking.

Implements ICmpTerritoryManager.

◆ MakeDirty()

void CCmpTerritoryManager::MakeDirty ( )
inline

◆ MakeDirtyIfRelevantEntity()

void CCmpTerritoryManager::MakeDirtyIfRelevantEntity ( entity_id_t  ent)
inline

◆ NeedUpdateAI()

bool CCmpTerritoryManager::NeedUpdateAI ( size_t *  dirtyID,
size_t *  dirtyBlinkingID 
) const
inlineoverridevirtual

Returns whether the AI territory map needs to be updated.

Implements ICmpTerritoryManager.

◆ NeedUpdateTexture()

bool CCmpTerritoryManager::NeedUpdateTexture ( size_t *  dirtyID)
inlineoverridevirtual

Returns whether the territory texture needs to be updated.

Implements ICmpTerritoryManager.

◆ RenderSubmit()

void CCmpTerritoryManager::RenderSubmit ( SceneCollector collector,
const CFrustum frustum,
bool  culling 
)

◆ Serialize()

void CCmpTerritoryManager::Serialize ( ISerializer serialize)
inlineoverridevirtual

Implements IComponent.

◆ SetTerritoryBlinking()

void CCmpTerritoryManager::SetTerritoryBlinking ( entity_pos_t  x,
entity_pos_t  z,
bool  enable 
)
overridevirtual

Set a piece of territory to blinking.

Must be updated on every territory calculation

Implements ICmpTerritoryManager.

◆ SetVisibility()

void CCmpTerritoryManager::SetVisibility ( bool  visible)
inlineoverridevirtual

Enables or disables rendering of an territory borders.

Implements ICmpTerritoryManager.

◆ UpdateBoundaryLines()

void CCmpTerritoryManager::UpdateBoundaryLines ( )

◆ UpdateColors()

void CCmpTerritoryManager::UpdateColors ( )
overridevirtual

Updates the boundary and territory colors.

Implements ICmpTerritoryManager.

Member Data Documentation

◆ m_AnimTime

double CCmpTerritoryManager::m_AnimTime

◆ m_BorderSeparation

float CCmpTerritoryManager::m_BorderSeparation

◆ m_BorderThickness

float CCmpTerritoryManager::m_BorderThickness

◆ m_BoundaryLines

std::vector<SBoundaryLine> CCmpTerritoryManager::m_BoundaryLines

◆ m_BoundaryLinesDirty

bool CCmpTerritoryManager::m_BoundaryLinesDirty

◆ m_ColorChanged

bool CCmpTerritoryManager::m_ColorChanged

◆ m_CostGrid

Grid<u8>* CCmpTerritoryManager::m_CostGrid

◆ m_DebugBoundaryLineNodes

std::vector<SOverlayLine> CCmpTerritoryManager::m_DebugBoundaryLineNodes

◆ m_DebugOverlay

TerritoryOverlay* CCmpTerritoryManager::m_DebugOverlay

◆ m_DirtyBlinkingID

size_t CCmpTerritoryManager::m_DirtyBlinkingID

◆ m_DirtyID

size_t CCmpTerritoryManager::m_DirtyID

◆ m_EnableLineDebugOverlays

bool CCmpTerritoryManager::m_EnableLineDebugOverlays

Enable node debugging overlays for boundary lines?

◆ m_ImpassableCost

u8 CCmpTerritoryManager::m_ImpassableCost

◆ m_Territories

Grid<u8>* CCmpTerritoryManager::m_Territories

◆ m_TerritoryCellCounts

std::vector<u16> CCmpTerritoryManager::m_TerritoryCellCounts

◆ m_TerritoryTotalPassableCellCount

u16 CCmpTerritoryManager::m_TerritoryTotalPassableCellCount

◆ m_TriggerEvent

bool CCmpTerritoryManager::m_TriggerEvent

◆ m_Visible

bool CCmpTerritoryManager::m_Visible
private

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