22 #ifndef QDENGINE_QDCORE_QD_TRIGGER_ELEMENT_H 23 #define QDENGINE_QDCORE_QD_TRIGGER_ELEMENT_H 25 #include "qdengine/parser/xml_fwd.h" 26 #include "qdengine/qdcore/qd_named_object.h" 27 #include "qdengine/qdcore/qd_named_object_reference.h" 35 class qdTriggerElement;
38 typedef qdTriggerElement *qdTriggerElementPtr;
39 typedef qdTriggerElement
const *qdTriggerElementConstPtr;
86 qdTriggerElementPtr
const &
element()
const {
110 bool operator == (qdTriggerElementConstPtr e)
const {
111 return (_element == e);
121 _auto_restart = state;
125 return _auto_restart;
128 bool load_script(
const xml::tag *p);
137 qdTriggerElementPtr _element;
171 qdTriggerLink *find_child_link(qdTriggerElementConstPtr ptrChild);
174 qdTriggerLink *find_parent_link(qdTriggerElementConstPtr ptrParent);
191 bool debug_set_active();
196 bool debug_set_done();
201 bool debug_set_inactive();
203 bool check_external_conditions(
int link_type);
204 bool check_internal_conditions();
206 ElementStatus status()
const {
209 void set_status(ElementStatus st);
215 void set_id(
int id) {
222 bool add_object_trigger_reference();
223 bool clear_object_trigger_references();
228 qdTriggerLinkList &parents() {
231 qdTriggerLinkList &children() {
235 const qdTriggerLinkList &parents()
const {
238 const qdTriggerLinkList &children()
const {
242 bool is_parent(qdTriggerElementConstPtr p);
243 bool is_child(qdTriggerElementConstPtr p);
245 bool add_parent(qdTriggerElementPtr p,
int link_type = 0);
246 bool add_child(qdTriggerElementPtr p,
int link_type = 0,
bool auto_restart =
false);
248 bool remove_parent(qdTriggerElementPtr p);
249 bool remove_child(qdTriggerElementPtr p);
254 bool load_script(
const xml::tag *p);
262 bool quant(
float dt);
270 enum ElementStatusSpecial {
272 TRIGGER_EL_INACTIVE_ALL,
279 ElementStatus _status;
286 qdTriggerLinkList _parents;
287 qdTriggerLinkList _children;
289 bool load_links_script(
const xml::tag *p,
bool load_parents);
291 bool activate_links(qdTriggerElementPtr child);
292 bool deactivate_links(qdTriggerElementPtr child);
294 bool deactivate_link(qdTriggerElementPtr child);
295 bool conditions_quant(
int link_type);
303 #endif // QDENGINE_QDCORE_QD_TRIGGER_ELEMENT_H
bool is_active() const
Возвращает true, если элемент помечен как активный для отладочной проверки.
Definition: qd_trigger_element.h:178
Поименованный объект.
Definition: qd_named_object.h:70
bool set_element_ID(int id)
Устанавливает идентификатор элемента, к которому идет связь.
Definition: qd_trigger_element.h:102
qdTriggerElementPtr const & element() const
Возвращает элемент триггера, к которому идет связь.
Definition: qd_trigger_element.h:86
Связь между двумя элементами триггера.
Definition: qd_trigger_element.h:45
void set_status(LinkStatus st)
Устанавливает состояние связи.
Definition: qd_trigger_element.h:72
void set_type(int _t)
Устанавливает тип связи.
Definition: qd_trigger_element.h:81
int type() const
Возвращает тип связи.
Definition: qd_trigger_element.h:77
LinkStatus
Состояние связи.
Definition: qd_trigger_element.h:48
Definition: qd_trigger_chain.h:34
LinkStatus status() const
Возвращает состояние связи.
Definition: qd_trigger_element.h:68
Definition: qd_named_object_reference.h:35
int element_ID() const
Возвращает идентификатор элемента, к которому идет связь.
Definition: qd_trigger_element.h:95
XML тег.
Definition: xml_tag.h:33
Базовый класс для игровых ресурсов.
Definition: console.h:28
Definition: algorithm.h:29
Связь включена.
Definition: qd_trigger_element.h:55
bool auto_restart() const
Возвращает true, если надо автоматом перезапускать линк.
Definition: qd_trigger_element.h:124
Cвязь выключена.
Definition: qd_trigger_element.h:50
void make_active(bool v)
Помечает элемент как активный (или неактивный) для отладочной проверки.
Definition: qd_trigger_element.h:182
void toggle_auto_restart(bool state)
Устанавливает, надо ли автоматом перезапускать линк.
Definition: qd_trigger_element.h:120
void set_element(qdTriggerElementPtr const &el)
Устанавливает элемент триггера, к которому идет связь.
Definition: qd_trigger_element.h:90
Элемент триггера.
Definition: qd_trigger_element.h:152