Horizon Official Technical Documentation
Horizon::Zone::Traits::Status::StatusRegistry Class Reference

#include <Status.hpp>

Classes

struct  CompareStatusOperation
 
class  StatusOperation
 

Public Types

enum  status_operation_type {
  STATUS_OPERATION_ADD_TO_BASE = 0 , STATUS_OPERATION_SUBTRACT_FROM_BASE , STATUS_OPERATION_ADD_TO_EQUIP , STATUS_OPERATION_SUBTRACT_FROM_EQUIP ,
  STATUS_OPERATION_ADD_TO_STATUS , STATUS_OPERATION_SUBTRACT_FROM_STATUS , STATUS_OPERATION_ADD_TO_BASE_TEMPORARY , STATUS_OPERATION_SUBTRACT_FROM_BASE_TEMPORARY ,
  STATUS_OPERATION_ADD_TO_EQUIP_TEMPORARY , STATUS_OPERATION_SUBTRACT_FROM_EQUIP_TEMPORARY , STATUS_OPERATION_ADD_TO_STATUS_TEMPORARY , STATUS_OPERATION_SUBTRACT_FROM_STATUS_TEMPORARY ,
  STATUS_OPERATION_ADD_TO_BASE_INTERVAL , STATUS_OPERATION_SUBTRACT_FROM_BASE_INTERVAL , STATUS_OPERATION_ADD_TO_EQUIP_INTERVAL , STATUS_OPERATION_SUBTRACT_FROM_EQUIP_INTERVAL ,
  STATUS_OPERATION_ADD_TO_STATUS_INTERVAL , STATUS_OPERATION_SUBTRACT_FROM_STATUS_INTERVAL
}
 

Public Member Functions

void add_to_base (Attribute *attribute, uint32_t value, std::string source)
 
void subtract_from_base (Attribute *attribute, uint32_t value, std::string source)
 
void add_to_equip (Attribute *attribute, uint32_t value, std::string source)
 
void subtract_from_equip (Attribute *attribute, uint32_t value, std::string source)
 
void add_to_status (Attribute *attribute, uint32_t value, std::string source)
 
void subtract_from_status (Attribute *attribute, uint32_t value, std::string source)
 
void add_to_base_temporary (Attribute *attribute, uint32_t value, uint64_t duration, std::string source)
 
void sub_from_base_temporary (Attribute *attribute, uint32_t value, uint64_t duration, std::string source)
 
void add_to_equip_temporary (Attribute *attribute, uint32_t value, uint64_t duration, std::string source)
 
void sub_from_equip_temporary (Attribute *attribute, uint32_t value, uint64_t duration, std::string source)
 
void add_to_status_temporary (Attribute *attribute, uint32_t value, uint64_t duration, std::string source)
 
void sub_from_status_temporary (Attribute *attribute, uint32_t value, uint64_t duration, std::string source)
 
void add_to_base_interval (Attribute *attribute, uint32_t value, s_min_max minmax, uint64_t duration, uint64_t interval, std::string source)
 
void sub_from_base_interval (Attribute *attribute, uint32_t value, s_min_max minmax, uint64_t duration, uint64_t interval, std::string source)
 
void add_to_equip_interval (Attribute *attribute, uint32_t value, s_min_max minmax, uint64_t duration, uint64_t interval, std::string source)
 
void sub_from_equip_interval (Attribute *attribute, uint32_t value, s_min_max minmax, uint64_t duration, uint64_t interval, std::string source)
 
void add_to_status_interval (Attribute *attribute, uint32_t value, s_min_max minmax, uint64_t duration, uint64_t interval, std::string source)
 
void sub_from_status_interval (Attribute *attribute, uint32_t value, s_min_max minmax, uint64_t duration, uint64_t interval, std::string source)
 
bool has_next_operation ()
 
StatusOperationget_next_operation ()
 
void process_queue ()
 

Protected Attributes

std::priority_queue< StatusOperation *, std::vector< StatusOperation * >, CompareStatusOperation_status_operation_queue
 

Member Enumeration Documentation

◆ status_operation_type

Enumerator
STATUS_OPERATION_ADD_TO_BASE 
STATUS_OPERATION_SUBTRACT_FROM_BASE 
STATUS_OPERATION_ADD_TO_EQUIP 
STATUS_OPERATION_SUBTRACT_FROM_EQUIP 
STATUS_OPERATION_ADD_TO_STATUS 
STATUS_OPERATION_SUBTRACT_FROM_STATUS 
STATUS_OPERATION_ADD_TO_BASE_TEMPORARY 
STATUS_OPERATION_SUBTRACT_FROM_BASE_TEMPORARY 
STATUS_OPERATION_ADD_TO_EQUIP_TEMPORARY 
STATUS_OPERATION_SUBTRACT_FROM_EQUIP_TEMPORARY 
STATUS_OPERATION_ADD_TO_STATUS_TEMPORARY 
STATUS_OPERATION_SUBTRACT_FROM_STATUS_TEMPORARY 
STATUS_OPERATION_ADD_TO_BASE_INTERVAL 
STATUS_OPERATION_SUBTRACT_FROM_BASE_INTERVAL 
STATUS_OPERATION_ADD_TO_EQUIP_INTERVAL 
STATUS_OPERATION_SUBTRACT_FROM_EQUIP_INTERVAL 
STATUS_OPERATION_ADD_TO_STATUS_INTERVAL 
STATUS_OPERATION_SUBTRACT_FROM_STATUS_INTERVAL 
71 {
90 };
@ STATUS_OPERATION_SUBTRACT_FROM_STATUS_TEMPORARY
Definition: Status.hpp:83
@ STATUS_OPERATION_ADD_TO_BASE_TEMPORARY
Definition: Status.hpp:78
@ STATUS_OPERATION_SUBTRACT_FROM_BASE_TEMPORARY
Definition: Status.hpp:79
@ STATUS_OPERATION_ADD_TO_EQUIP_INTERVAL
Definition: Status.hpp:86
@ STATUS_OPERATION_SUBTRACT_FROM_EQUIP_INTERVAL
Definition: Status.hpp:87
@ STATUS_OPERATION_SUBTRACT_FROM_BASE
Definition: Status.hpp:73
@ STATUS_OPERATION_ADD_TO_BASE
Definition: Status.hpp:72
@ STATUS_OPERATION_ADD_TO_EQUIP_TEMPORARY
Definition: Status.hpp:80
@ STATUS_OPERATION_SUBTRACT_FROM_EQUIP
Definition: Status.hpp:75
@ STATUS_OPERATION_SUBTRACT_FROM_BASE_INTERVAL
Definition: Status.hpp:85
@ STATUS_OPERATION_ADD_TO_BASE_INTERVAL
Definition: Status.hpp:84
@ STATUS_OPERATION_ADD_TO_STATUS_TEMPORARY
Definition: Status.hpp:82
@ STATUS_OPERATION_ADD_TO_STATUS
Definition: Status.hpp:76
@ STATUS_OPERATION_SUBTRACT_FROM_EQUIP_TEMPORARY
Definition: Status.hpp:81
@ STATUS_OPERATION_ADD_TO_EQUIP
Definition: Status.hpp:74
@ STATUS_OPERATION_SUBTRACT_FROM_STATUS_INTERVAL
Definition: Status.hpp:89
@ STATUS_OPERATION_SUBTRACT_FROM_STATUS
Definition: Status.hpp:77
@ STATUS_OPERATION_ADD_TO_STATUS_INTERVAL
Definition: Status.hpp:88

Member Function Documentation

◆ add_to_base()

void Status::StatusRegistry::add_to_base ( Attribute attribute,
uint32_t  value,
std::string  source 
)
51{
52 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_BASE, value, source);
53 _status_operation_queue.push(operation);
54}
std::priority_queue< StatusOperation *, std::vector< StatusOperation * >, CompareStatusOperation > _status_operation_queue
Definition: Status.hpp:165

References _status_operation_queue, and STATUS_OPERATION_ADD_TO_BASE.

◆ add_to_base_interval()

void Status::StatusRegistry::add_to_base_interval ( Attribute attribute,
uint32_t  value,
s_min_max  minmax,
uint64_t  duration,
uint64_t  interval,
std::string  source 
)
111{
112 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_BASE_INTERVAL, value, minmax, duration, interval, source);
113 _status_operation_queue.push(operation);
114}

◆ add_to_base_temporary()

void Status::StatusRegistry::add_to_base_temporary ( Attribute attribute,
uint32_t  value,
uint64_t  duration,
std::string  source 
)
81{
82 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_BASE_TEMPORARY, value, duration, source);
83 _status_operation_queue.push(operation);
84}

◆ add_to_equip()

void Status::StatusRegistry::add_to_equip ( Attribute attribute,
uint32_t  value,
std::string  source 
)
61{
62 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_EQUIP, value, source);
63 _status_operation_queue.push(operation);
64}

◆ add_to_equip_interval()

void Status::StatusRegistry::add_to_equip_interval ( Attribute attribute,
uint32_t  value,
s_min_max  minmax,
uint64_t  duration,
uint64_t  interval,
std::string  source 
)
121{
122 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_EQUIP_INTERVAL, value, minmax, duration, interval, source);
123 _status_operation_queue.push(operation);
124}

◆ add_to_equip_temporary()

void Status::StatusRegistry::add_to_equip_temporary ( Attribute attribute,
uint32_t  value,
uint64_t  duration,
std::string  source 
)
91{
92 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_EQUIP_TEMPORARY, value, duration, source);
93 _status_operation_queue.push(operation);
94}

◆ add_to_status()

void Status::StatusRegistry::add_to_status ( Attribute attribute,
uint32_t  value,
std::string  source 
)
71{
72 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_STATUS, value, source);
73 _status_operation_queue.push(operation);
74}

◆ add_to_status_interval()

void Status::StatusRegistry::add_to_status_interval ( Attribute attribute,
uint32_t  value,
s_min_max  minmax,
uint64_t  duration,
uint64_t  interval,
std::string  source 
)
131{
132 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_STATUS_INTERVAL, value, minmax, duration, interval, source);
133 _status_operation_queue.push(operation);
134}

◆ add_to_status_temporary()

void Status::StatusRegistry::add_to_status_temporary ( Attribute attribute,
uint32_t  value,
uint64_t  duration,
std::string  source 
)
101{
102 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_ADD_TO_STATUS_TEMPORARY, value, duration, source);
103 _status_operation_queue.push(operation);
104}

◆ get_next_operation()

StatusOperation * Horizon::Zone::Traits::Status::StatusRegistry::get_next_operation ( )
inline
161{ return _status_operation_queue.top(); }

References _status_operation_queue.

◆ has_next_operation()

bool Horizon::Zone::Traits::Status::StatusRegistry::has_next_operation ( )
inline
160{ return !_status_operation_queue.empty(); }

References _status_operation_queue.

◆ process_queue()

void Status::StatusRegistry::process_queue ( )
238{
239 while (has_next_operation()) {
240 StatusOperation *operation = get_next_operation();
242 operation->execute();
243 delete operation;
244 }
245}
StatusOperation * get_next_operation()
Definition: Status.hpp:161
bool has_next_operation()
Definition: Status.hpp:160

References Horizon::Zone::Traits::Status::StatusRegistry::StatusOperation::execute().

+ Here is the call graph for this function:

◆ sub_from_base_interval()

void Status::StatusRegistry::sub_from_base_interval ( Attribute attribute,
uint32_t  value,
s_min_max  minmax,
uint64_t  duration,
uint64_t  interval,
std::string  source 
)
116{
117 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_BASE_INTERVAL, value, minmax, duration, interval, source);
118 _status_operation_queue.push(operation);
119}

◆ sub_from_base_temporary()

void Status::StatusRegistry::sub_from_base_temporary ( Attribute attribute,
uint32_t  value,
uint64_t  duration,
std::string  source 
)
86{
87 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_BASE_TEMPORARY, value, duration, source);
88 _status_operation_queue.push(operation);
89}

◆ sub_from_equip_interval()

void Status::StatusRegistry::sub_from_equip_interval ( Attribute attribute,
uint32_t  value,
s_min_max  minmax,
uint64_t  duration,
uint64_t  interval,
std::string  source 
)
126{
127 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_EQUIP_INTERVAL, value, minmax, duration, interval, source);
128 _status_operation_queue.push(operation);
129}

◆ sub_from_equip_temporary()

void Status::StatusRegistry::sub_from_equip_temporary ( Attribute attribute,
uint32_t  value,
uint64_t  duration,
std::string  source 
)
96{
97 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_EQUIP_TEMPORARY, value, duration, source);
98 _status_operation_queue.push(operation);
99}

◆ sub_from_status_interval()

void Status::StatusRegistry::sub_from_status_interval ( Attribute attribute,
uint32_t  value,
s_min_max  minmax,
uint64_t  duration,
uint64_t  interval,
std::string  source 
)
136{
137 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_STATUS_INTERVAL, value, minmax, duration, interval, source);
138 _status_operation_queue.push(operation);
139}

◆ sub_from_status_temporary()

void Status::StatusRegistry::sub_from_status_temporary ( Attribute attribute,
uint32_t  value,
uint64_t  duration,
std::string  source 
)
106{
107 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_STATUS_TEMPORARY, value, duration, source);
108 _status_operation_queue.push(operation);
109}

◆ subtract_from_base()

void Status::StatusRegistry::subtract_from_base ( Attribute attribute,
uint32_t  value,
std::string  source 
)
56{
57 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_BASE, value, source);
58 _status_operation_queue.push(operation);
59}

◆ subtract_from_equip()

void Status::StatusRegistry::subtract_from_equip ( Attribute attribute,
uint32_t  value,
std::string  source 
)
66{
67 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_EQUIP, value, source);
68 _status_operation_queue.push(operation);
69}

◆ subtract_from_status()

void Status::StatusRegistry::subtract_from_status ( Attribute attribute,
uint32_t  value,
std::string  source 
)
76{
77 StatusOperation *operation = new StatusOperation(attribute, STATUS_OPERATION_SUBTRACT_FROM_STATUS, value, source);
78 _status_operation_queue.push(operation);
79}

Member Data Documentation

◆ _status_operation_queue

std::priority_queue<StatusOperation *, std::vector<StatusOperation *>, CompareStatusOperation> Horizon::Zone::Traits::Status::StatusRegistry::_status_operation_queue
protected

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