ScummVM API documentation
QDEngine::qdGameObjectState Class Referenceabstract

Состояние динамического объекта - базовый класс. More...

#include <qd_game_object_state.h>

Inheritance diagram for QDEngine::qdGameObjectState:
QDEngine::qdConditionalObject QDEngine::qdNamedObject QDEngine::qdNamedObjectBase QDEngine::qdGameObjectStateMask QDEngine::qdGameObjectStateStatic QDEngine::qdGameObjectStateWalk

Public Types

enum  {
  QD_OBJ_STATE_FLAG_HIDDEN = 0x01, QD_OBJ_STATE_FLAG_NOT_IN_TRIGGERS = 0x02, QD_OBJ_STATE_FLAG_RESTORE_PREV_STATE = 0x04, QD_OBJ_STATE_FLAG_HIDE_OBJECT = 0x08,
  QD_OBJ_STATE_FLAG_GLOBAL_OWNER = 0x10, QD_OBJ_STATE_FLAG_INVENTORY = 0x20, QD_OBJ_STATE_FLAG_MOVE_TO_INVENTORY = 0x40, QD_OBJ_STATE_FLAG_MOVE_TO_INVENTORY_FAILED = 0x80,
  QD_OBJ_STATE_FLAG_HAS_BOUND = 0x100, QD_OBJ_STATE_FLAG_ACTIVATION_TIMER = 0x200, QD_OBJ_STATE_FLAG_ACTIVATION_TIMER_END = 0x400, QD_OBJ_STATE_FLAG_DIALOG_PHRASE = 0x800,
  QD_OBJ_STATE_FLAG_SOUND_SYNC = 0x1000, QD_OBJ_STATE_FLAG_ENABLE_INTERRUPT = 0x2000, QD_OBJ_STATE_FLAG_WAS_ACTIVATED = 0x4000, QD_OBJ_STATE_FLAG_DISABLE_WALK_INTERRUPT = 0x8000,
  QD_OBJ_STATE_FLAG_MOUSE_STATE = 0x10000, QD_OBJ_STATE_FLAG_MOUSE_HOVER_STATE = 0x20000, QD_OBJ_STATE_FLAG_STAY_IN_INVENTORY = 0x40000, QD_OBJ_STATE_FLAG_FORCED_LOAD = 0x80000,
  QD_OBJ_STATE_FLAG_ENABLE_SKIP = 0x100000, QD_OBJ_STATE_FLAG_MOVE_TO_ZONE = 0x200000, QD_OBJ_STATE_FLAG_MOVE_ON_OBJECT = 0x400000, QD_OBJ_STATE_FLAG_ACTIVATE_PERSONAGE = 0x800000,
  QD_OBJ_STATE_FLAG_AUTO_LOAD = 0x1000000, QD_OBJ_STATE_FLAG_AUTO_SAVE = 0x2000000, QD_OBJ_STATE_FLAG_FADE_IN = 0x4000000, QD_OBJ_STATE_FLAG_FADE_OUT = 0x8000000
}
 Флаги состояния. More...
 
enum  StateType { STATE_STATIC, STATE_WALK, STATE_MASK }
 Тип состояния. More...
 
enum  { CURSOR_UNASSIGNED = -1 }
 
- Public Types inherited from QDEngine::qdConditionalObject
enum  ConditionsMode { CONDITIONS_AND, CONDITIONS_OR }
 Режим проверки условий. More...
 
enum  trigger_start_mode { TRIGGER_START_FAILED, TRIGGER_START_ACTIVATE, TRIGGER_START_WAIT }
 Варианты старта триггера. More...
 
typedef Std::vector< qdConditionconditions_container_t
 
typedef Std::vector< qdConditionGroupcondition_groups_container_t
 

Public Member Functions

 qdGameObjectState (StateType tp)
 
 qdGameObjectState (const qdGameObjectState &st)
 
virtual qdGameObjectStateoperator= (const qdGameObjectState &st)
 
int named_object_type () const
 Возвращает тип объекта.
 
qdCoordsAnimationcoords_animation ()
 Возвращает указатель на траекторию движения объекта для состояния.
 
const qdCoordsAnimationcoords_animation () const
 Возвращает указатель на траекторию движения объекта для состояния.
 
virtual bool load_script (const xml::tag *p)=0
 Загрузка данных из скрипта.
 
virtual bool save_script (Common::WriteStream &fh, int indent=0) const =0
 Запись данных в скрипт.
 
bool init ()
 Инициализация состояния, вызывается при старте и перезапуске игры.
 
bool load_data (Common::SeekableReadStream &fh, int save_version)
 Загрузка данных из сэйва.
 
bool save_data (Common::WriteStream &fh) const
 Запись данных в сэйв.
 
virtual bool register_resources ()
 Регистрация ресурсов состояния в диспетчере ресурсов.
 
virtual bool unregister_resources ()
 Отмена регистрации ресурсов состояния в диспетчере ресурсов.
 
virtual bool load_resources ()
 Загрузка ресурсов.
 
virtual bool free_resources ()
 Выгрузка ресурсов.
 
bool check_conditions ()
 Возвращает true, если условия активации состояния выполняются.
 
const Vect2scenter_offset () const
 Возвращет смещение центра объекта для состояния (в экранных координатах).
 
void set_center_offset (const Vect2s offs)
 Устанавливает смещение центра объекта для состояния (в экранных координатах).
 
void quant (float dt)
 Логический квант состояния.
 
qdGameObjectStateprev_state ()
 Возвращает указатель на предыдущее состояние.
 
void set_prev_state (qdGameObjectState *p)
 Устанавливает предыдущее состояние.
 
StateType state_type () const
 Возвращает тип состояния.
 
int mouse_cursor_ID () const
 Возвращает идентификатор мышиного курсора для состояния.
 
void set_mouse_cursor_ID (int id)
 Устанавливает идентификатор мышиного курсора для состояния. More...
 
bool has_mouse_cursor_ID () const
 Возвращает true, если состоянию назначен особый мышиный курсор.
 
const char * sound_name () const
 Устанавливает имя звукового эффекта, привязанного к состоянию.
 
void set_sound_name (const char *p)
 Возвращает имя звукового эффекта, привязанного к состоянию.
 
qdSoundsound () const
 Возвращает указатель на звуковой эффект, привязанный к состоянию.
 
bool has_sound () const
 Возвращает true, если для состояния задан звук.
 
const qdSoundHandlesound_handle () const
 Возвращает хэндл звука.
 
bool play_sound ()
 Запускает звук, position - стартовяя позиция, от 0.0 до 1.0.
 
bool stop_sound () const
 Останавливает звук.
 
bool set_sound_frequency (float frequency_coeff) const
 Установка частоты звука.
 
bool is_sound_finished () const
 
bool is_sound_playing () const
 
void set_sound_flag (int fl)
 Устанавливает флаг для звука.
 
void drop_sound_flag (int fl)
 Скидывает флаг для звука.
 
bool check_sound_flag (int fl) const
 Возвращает true, если установлен флаг для звука.
 
virtual bool is_state_empty () const
 Возвращает true, если состояние пустое.
 
bool is_active () const
 Возвращает true, если в данный момент состояние включено.
 
bool is_default () const
 Возвращает true, если состояние стартовое.
 
float activation_delay () const
 Возвращает задержку (в секундах) перед активацией состояния.
 
void set_activation_delay (float tm)
 Устанавливает задержку (в секундах) перед активацией состояния.
 
void set_activation_timer ()
 Устанавливает таймер перед активацией состояния.
 
void start ()
 Вызывается при активации состояния.
 
float cur_time () const
 Возвращает время в секундах, прошедшее с момента активации состояния.
 
float work_time () const
 Возвращает длительность состояния в секундах.
 
void set_work_time (float tm)
 Устанавливает длительность состояния в секундах.
 
bool need_to_walk () const
 Возвращает true, если персонажу требуется подойти к точке включения состояния.
 
virtual qdGameObjectStateclone () const =0
 
virtual float adjust_direction_angle (float angle) const
 
const Vect3f start_pos () const
 Возвращает координаты точки, в которой должно активироваться состояние.
 
float start_direction_angle () const
 Возвращает направление объекта в точке, в которой должно активироваться состояние.
 
int reference_count () const
 Возвращает количество ссылок на состояние.
 
void inc_reference_count ()
 Инкремент количества ссылок на состояние.
 
void dec_reference_count ()
 Декремент количества ссылок на состояние.
 
bool has_text () const
 Возвращает true, если у состояния задан текст субтитров.
 
const char * text () const
 Возвращает текст субтитров.
 
const char * full_text () const
 Возвращает полный текст субтитров.
 
const char * short_text () const
 Возвращает сокращенный текст субтитров.
 
bool has_full_text () const
 Возвращает true, если у состояния задан текст субтитров.
 
bool has_short_text () const
 Возвращает true, если у состояния задан сокращенный текст субтитров.
 
const char * full_text_ID () const
 Возвращает полный текст субтитров.
 
void set_full_text_ID (const char *p)
 Устанавливает полный текст субтитров. More...
 
const char * short_text_ID () const
 Возвращает сокращенный текст субтитров.
 
void set_short_text_ID (const char *p)
 Устанавливает сокращенный текст субтитров. More...
 
bool has_bound () const
 Возвращает true, если у состояния задан баунд.
 
const Vect3fbound () const
 Возвращает баунд состояния.
 
float radius () const
 Возвращает радиус состояния.
 
void set_bound (const Vect3f &b)
 Устанавливает баунд состояния.
 
virtual bool auto_bound ()
 Устанавливает баунд состояния по анимации.
 
void set_camera_mode (const qdCameraMode &mode)
 Устанавливает режим работы камеры, включается при активации состояния.
 
const qdCameraModecamera_mode () const
 Режим работы камеры, включается при активации состояния.
 
bool has_camera_mode () const
 Возвращает true, если у состояния задан режим работы камеры.
 
float rnd_move_radius () const
 
void set_rnd_move_radius (float radius)
 
float rnd_move_speed () const
 
void set_rnd_move_speed (float speed)
 
qdConditionalObject::trigger_start_mode trigger_start ()
 Активация триггера.
 
bool trigger_can_start () const
 Возвращает true, если триггер может быть активирован при выполнении его внутренних условий. More...
 
bool forced_load () const
 
float text_delay () const
 
bool has_text_delay () const
 
void set_text_delay (float delay)
 
float sound_delay () const
 
bool has_sound_delay () const
 
void set_sound_delay (float delay)
 
int autosave_slot () const
 
void set_autosave_slot (int slot)
 
float fade_time () const
 
void set_fade_time (float time)
 
uint32 shadow_color () const
 
int shadow_alpha () const
 
void set_shadow (uint32 color, int alpha)
 
const qdScreenTextFormattext_format (bool topic_mode=false) const
 
void set_text_format (const qdScreenTextFormat &text_format)
 
bool has_transform () const
 
const qdScreenTransformtransform () const
 
void set_transform (const qdScreenTransform &tr)
 
const qdScreenTransformtransform_speed () const
 
void set_transform_speed (const qdScreenTransform &tr_speed)
 
- Public Member Functions inherited from QDEngine::qdConditionalObject
 qdConditionalObject (const qdConditionalObject &obj)
 
qdConditionalObjectoperator= (const qdConditionalObject &obj)
 
int add_condition (const qdCondition *p)
 Добавляет условие. Возвращает поярдковый номер,-1 в случае ошибки.
 
bool update_condition (int num, const qdCondition &p)
 Обновляет условие условие с порядковым номером num.
 
bool remove_conditon (int idx)
 Удаляет условие.
 
const qdConditionget_condition (int idx=0) const
 Возвращает указатель на условие.
 
int conditions_count () const
 Возвращает количество условий.
 
int add_condition_group (const qdConditionGroup *p)
 Добавляет группу условий. Возвращает поярдковый номер,-1 в случае ошибки.
 
bool update_condition_group (int num, const qdConditionGroup &p)
 Обновляет группу условий с порядковым номером num.
 
bool remove_conditon_group (int idx)
 Удаляет группу условий.
 
const qdConditionGroupget_condition_group (int idx=0) const
 Возвращает указатель на группу условий.
 
int condition_groups_count () const
 Возвращает количество групп условий.
 
ConditionsMode conditions_mode () const
 Возвращает режим проверки условий.
 
void set_conditions_mode (ConditionsMode m)
 Устанавливает режим проверки условий.
 
bool has_conditions () const
 Возвращает true, если список условий не пустой.
 
void conditions_quant (float dt)
 Обсчет логики условий, dt - время в секундах.
 
bool is_condition_in_group (int condition_idx) const
 
- Public Member Functions inherited from QDEngine::qdNamedObject
 qdNamedObject (const qdNamedObject &p)
 
qdNamedObjectoperator= (const qdNamedObject &p)
 
qdNamedObjectowner () const
 Возвращает владельца объекта.
 
qdNamedObjectowner (qdNamedObjectType tp) const
 Возвращает владельца объекта, тип которого tp.
 
void set_owner (qdNamedObject *p)
 Устанавливает владельца объекта.
 
void set_flag (int fl)
 Устанавливает флаг.
 
void drop_flag (int fl)
 Скидывает флаг.
 
bool check_flag (int fl) const
 Возвращает true, если установлен флаг fl.
 
void clear_flags ()
 Очищает флаги.
 
int flags () const
 Возвращает значение флагов объекта.
 
void add_trigger_reference ()
 Добавляет ссылку из триггеров на объект.
 
void remove_trigger_reference ()
 Удаляет ссылку из триггеров на объект.
 
void clear_trigger_references ()
 Очищает счётчик ссылок из триггеров на объект.
 
bool is_in_triggers () const
 Возвращает true, если на объект есть ссылки из триггеров.
 
Common::String toString () const
 
- Public Member Functions inherited from QDEngine::qdNamedObjectBase
 qdNamedObjectBase (const qdNamedObjectBase &obj)
 
qdNamedObjectBaseoperator= (const qdNamedObjectBase &obj)
 
const char * name () const
 Возвращает имя объекта.
 
void set_name (const char *p)
 Устанавливает имя объекта.
 

Static Public Member Functions

static Common::String flag2str (int fl, bool truncate=false, bool icon=false)
 

Protected Member Functions

bool load_script_body (const xml::tag *p)
 Загрузка данных из скрипта.
 
bool save_script_body (Common::WriteStream &fh, int indent=0) const
 Запись данных в скрипт.
 
virtual bool need_sound_restart () const
 Возвращает true, если надо перезапустить звук.
 
- Protected Member Functions inherited from QDEngine::qdConditionalObject
bool load_conditions_script (const xml::tag *p)
 Загрузка данных из скрипта.
 
bool save_conditions_script (Common::WriteStream &fh, int indent=0) const
 Запись данных в скрипт.
 

Detailed Description

Состояние динамического объекта - базовый класс.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Флаги состояния.

Enumerator
QD_OBJ_STATE_FLAG_HIDDEN 

Объект спрятан.

QD_OBJ_STATE_FLAG_NOT_IN_TRIGGERS 

The state is not in triggers. Deprecated, replaced with is_in_triggers()

QD_OBJ_STATE_FLAG_RESTORE_PREV_STATE 

Восстанавливать предыдущее состояние по окончании состояния.

QD_OBJ_STATE_FLAG_HIDE_OBJECT 

Прятать объект по окончании состояния.

QD_OBJ_STATE_FLAG_GLOBAL_OWNER 

Объект, которому принадлежит состояние - глобальный.

QD_OBJ_STATE_FLAG_INVENTORY 

Состояние для инвентори.

QD_OBJ_STATE_FLAG_MOVE_TO_INVENTORY 

Положить объект в инвентори по окончании состояния.

QD_OBJ_STATE_FLAG_MOVE_TO_INVENTORY_FAILED 

Положить в инвентори не удалось.

QD_OBJ_STATE_FLAG_HAS_BOUND 

У состояния задан баунд.

QD_OBJ_STATE_FLAG_ACTIVATION_TIMER 

Активирована задержка перед включением состояния.

QD_OBJ_STATE_FLAG_ACTIVATION_TIMER_END 

Задержка перед включением состояния окончилась.

QD_OBJ_STATE_FLAG_DIALOG_PHRASE 

Заданный для состояния текст - вариант фразы для диалогов.

Означает, что одно из условий активации состояния - клик мышью по соответствующему тексту на экране.

QD_OBJ_STATE_FLAG_SOUND_SYNC 

Синхронизировать анимацию по звуку.

Когда заканчивается звук, анимация останавливается. Работает только для qdGameObjectStateStatic без координатной анимации.

QD_OBJ_STATE_FLAG_ENABLE_INTERRUPT 

Разрешить прерывать состояние.

Если флаг установлен, то состояние может быть прервано до окончания его работы (например для персонажа - кликом мыши).

QD_OBJ_STATE_FLAG_WAS_ACTIVATED 

Состояние уже было активировано.

Показывает, что состояние уже было хотя бы один раз активировано.

QD_OBJ_STATE_FLAG_DISABLE_WALK_INTERRUPT 

Запретить прерывать подход к стартовой точке состояния.

Имеет смысл только если для состояний с подходом к точке запуска (need_to_walk() == true).

QD_OBJ_STATE_FLAG_MOUSE_STATE 

Включать состояние, когда объект взят на мышь.

QD_OBJ_STATE_FLAG_MOUSE_HOVER_STATE 

Включать состояние, когда мышь над объектом в инвентори.

QD_OBJ_STATE_FLAG_STAY_IN_INVENTORY 

Не вытаскивать объект из инвентори, когда он взят на мышь.

QD_OBJ_STATE_FLAG_FORCED_LOAD 

Принудительно загружать ресурсы состояния в память при заходе на сцену, не выгружать их до выхода со сцены.

QD_OBJ_STATE_FLAG_ENABLE_SKIP 

Состояние можно скиповать кликом мыши.

QD_OBJ_STATE_FLAG_MOVE_TO_ZONE 

При включении состояния класть объект на зону под мышью.

QD_OBJ_STATE_FLAG_MOVE_ON_OBJECT 

При включении состояния класть объект в центр объекта под мышью.

QD_OBJ_STATE_FLAG_ACTIVATE_PERSONAGE 

По окончании работы состояния делать персонажа-владельца активным.

QD_OBJ_STATE_FLAG_AUTO_LOAD 

Автоматически загружать сэйв при активации состояния.

QD_OBJ_STATE_FLAG_AUTO_SAVE 

Автоматически писать сэйв при активации состояния.

◆ StateType

Тип состояния.

Enumerator
STATE_STATIC 

Статическая анимация.

STATE_WALK 

Походка.

STATE_MASK 

Маска на фоне.

Member Function Documentation

◆ set_mouse_cursor_ID()

void QDEngine::qdGameObjectState::set_mouse_cursor_ID ( int  id)
inline

Устанавливает идентификатор мышиного курсора для состояния.

Если должен использоваться курсор по-умолчанию - параметр должен быть равен CURSOR_UNASSIGNED.

◆ set_full_text_ID()

void QDEngine::qdGameObjectState::set_full_text_ID ( const char *  p)
inline

Устанавливает полный текст субтитров.

Если параметр нулевой, то текст очищается.

◆ set_short_text_ID()

void QDEngine::qdGameObjectState::set_short_text_ID ( const char *  p)
inline

Устанавливает сокращенный текст субтитров.

Если параметр нулевой, то текст очищается.

◆ trigger_can_start()

bool QDEngine::qdGameObjectState::trigger_can_start ( ) const
virtual

Возвращает true, если триггер может быть активирован при выполнении его внутренних условий.

Объект должен принадлежать активной сцене (игровые объекты, зоны на сетке, музыка) или не зависеть от нее (сцены, мини-игры и т.д.).

Reimplemented from QDEngine::qdConditionalObject.


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