22 #ifndef QDENGINE_QDCORE_QD_CONDITION_H 23 #define QDENGINE_QDCORE_QD_CONDITION_H 25 #include "qdengine/parser/xml_fwd.h" 26 #include "qdengine/qdcore/qd_named_object.h" 27 #include "qdengine/qdcore/qd_condition_data.h" 28 #include "qdengine/qdcore/qd_condition_object_reference.h" 467 MOUSE_OBJECT_NAME = 1,
474 MINIGAME_STATE_NAME = 1,
475 OBJECT_STATE_NAME = 1,
478 OBJECTS_DISTANCE = 2,
495 static const char *type2str(uint type);
497 bool put_value(
int idx,
const char *str);
499 bool is_click_condition()
const {
500 return (_type == CONDITION_MOUSE_CLICK || _type == CONDITION_MOUSE_DIALOG_CLICK || _type == CONDITION_MOUSE_ZONE_CLICK);
502 bool is_object_click_condition()
const {
503 return (_type == CONDITION_MOUSE_OBJECT_CLICK || _type == CONDITION_MOUSE_OBJECT_ZONE_CLICK);
508 bool put_value(
int idx,
int val,
int val_index = 0);
509 bool put_value(
int idx,
float val,
int val_index = 0);
511 bool get_value(
int idx,
const char *&str)
const;
512 bool get_value(
int idx,
int &val,
int val_index = 0)
const;
513 bool get_value(
int idx,
float &val,
int val_index = 0)
const;
525 bool load_script(
const xml::tag *p);
528 void quant(
float dt);
538 bool is_inversed()
const {
541 void inverse(
bool inverse_mode =
true) {
542 _is_inversed = inverse_mode;
547 bool is_in_group()
const {
550 void add_group_reference() {
553 void remove_group_reference() {
554 _is_in_group =
false;
557 static bool successful_click() {
558 return _successful_click;
560 static bool successful_object_click() {
561 return _successful_object_click;
563 static void clear_successful_clicks() {
564 _successful_click = _successful_object_click =
false;
573 data_container_t _data;
576 objects_container_t _objects;
582 static bool _successful_click;
583 static bool _successful_object_click;
585 bool init_data(
int data_index, qdConditionData::data_t data_type,
int data_size = 0) {
586 assert(data_index >= 0 && data_index < (
int)_data.
size());
588 _data[data_index].set_type(data_type);
590 _data[data_index].alloc_data(data_size);
598 #endif // QDENGINE_QDCORE_QD_CONDITION_H
объект на пути персонажа
Definition: qd_condition.h:419
клик по фразе определённого состояния
Definition: qd_condition.h:455
мышь наведена на объект
Definition: qd_condition.h:435
Условие.
Definition: qd_condition.h:357
ConditionType
Типы условий.
Definition: qd_condition.h:360
персонаж стоит и ориентирован в определенном направлении
Definition: qd_condition.h:375
время работы состояния в интервале
Definition: qd_condition.h:409
состояние объекта ждет активации
Definition: qd_condition.h:399
персонаж движется в определенном направлении
Definition: qd_condition.h:373
Поименованный объект.
Definition: qd_named_object.h:70
значние счетчика меньше числа
Definition: qd_condition.h:413
объект не находится в определенном состоянии
Definition: qd_condition.h:393
неудачный клик объектом на мыши
Definition: qd_condition.h:445
мини-игра находится в определенном состоянии
Definition: qd_condition.h:381
персонаж или объект в определенном месте сетки
Definition: qd_condition.h:371
клик мышью по фразе в диалоге
Definition: qd_condition.h:379
был клик объектом на мыши
Definition: qd_condition.h:449
время простоя больше заданного порога
Definition: qd_condition.h:459
значние счетчика больше числа
Definition: qd_condition.h:411
состояние в определенной фазе анимации
Definition: qd_condition.h:401
расстояние до одного объекта меньше чем до другого
Definition: qd_condition.h:457
время работы состояния больше значения
Definition: qd_condition.h:405
объект находится в определенном состоянии
Definition: qd_condition.h:383
правый клик мыши по объекту
Definition: qd_condition.h:425
клик мышью по зоне на сетке сцены
Definition: qd_condition.h:385
в зоне хотя бы один персонаж
Definition: qd_condition.h:423
правый клик объектом на мыши по объекту
Definition: qd_condition.h:427
значние счетчика больше значения другого счетчика
Definition: qd_condition.h:415
был клик мыши
Definition: qd_condition.h:447
клик мышью по объекту
Definition: qd_condition.h:367
всегда false.
Definition: qd_condition.h:364
XML тег.
Definition: xml_tag.h:33
расстояние по сетке между двумя объектами меньше заданного
Definition: qd_condition.h:395
состояние объекта не активировалось
Definition: qd_condition.h:391
был клик правой кнопкой мыши
Definition: qd_condition.h:451
Базовый класс для игровых ресурсов.
Definition: console.h:28
правый клик объектом по зоне на сетке сцены
Definition: qd_condition.h:431
Definition: algorithm.h:29
баунды двух объектов пересекаются
Definition: qd_condition.h:461
значние счетчика в интервале
Definition: qd_condition.h:417
size_type size() const
Definition: array.h:315
мышь наведена на зону
Definition: qd_condition.h:439
клик объектом по зоне на сетке сцены
Definition: qd_condition.h:387
мышь наведена на объект, на мыши объект
Definition: qd_condition.h:437
персонаж активен
Definition: qd_condition.h:397
правый клик мышью по зоне на сетке сцены
Definition: qd_condition.h:429
неудачный клик мыши
Definition: qd_condition.h:443
время работы одного состояния больше времени работы другого
Definition: qd_condition.h:407
объект скрыт
Definition: qd_condition.h:433
ConditionDataIndex
Индексы для обращения к данным в условиях.
Definition: qd_condition.h:465
всегда true.
Definition: qd_condition.h:362
мышь наведена на зону, на мыши объект
Definition: qd_condition.h:441
предыдущее состояние объекта
Definition: qd_condition.h:403
кнопка нажата
Definition: qd_condition.h:421
условие выпоняется с некоторой периодичностью
Definition: qd_condition.h:377
клик объектом на мыши по объекту
Definition: qd_condition.h:369
был клик правой кнопкой объектом на мыши
Definition: qd_condition.h:453
состояние объекта активировалось
Definition: qd_condition.h:389