ScummVM API documentation
QDEngine::qdGameObjectMoving Class Reference

Персонаж. More...

#include <qd_game_object_moving.h>

Inheritance diagram for QDEngine::qdGameObjectMoving:
QDEngine::qdGameObjectAnimated QDEngine::qdGameObject QDEngine::qdNamedObject QDEngine::qdNamedObjectBase

Public Types

enum  movement_mode_t {
  MOVEMENT_MODE_STOP, MOVEMENT_MODE_TURN, MOVEMENT_MODE_START, MOVEMENT_MODE_MOVE,
  MOVEMENT_MODE_END
}
 
enum  control_type_t {
  CONTROL_MOUSE = 0x01, CONTROL_KEYBOARD = 0x02, CONTROL_COLLISION = 0x04, CONTROL_AVOID_COLLISION = 0x10,
  CONTROL_AUTO_MOVE = 0x20, CONTROL_CLEAR_PATH = 0x40, CONTROL_FOLLOW_ACTIVE_PERSONAGE = 0x80, CONTROL_REPEAT_ACTIVE_PERSONAGE_MOVEMENT = 0x100,
  CONTROL_ATTACHMENT_WITH_DIR_REL = 0x200, CONTROL_ATTACHMENT_WITHOUT_DIR_REL = 0x400, CONTROL_ATTACHMENT_TO_ACTIVE_WITH_MOVING = 0x800, CONTROL_ACTIVE_CLICK_REACTING = 0x1000,
  CONTROL_ANIMATED_ROTATION = 0x2000
}
 режимы управления персонажем More...
 
enum  follow_condition_t {
  FOLLOW_UPDATE_PATH = 0x01, FOLLOW_DONE = 0x02, FOLLOW_WAIT = 0x03, FOLLOW_FULL_STOP_WAIT = 0x04,
  FOLLOW_MOVING = 0x05
}
 флаги следования More...
 
- Public Types inherited from QDEngine::qdGameObjectAnimated
enum  StateStatus { STATE_INACTIVE, STATE_QUEUED, STATE_ACTIVE, STATE_DONE }
 

Public Member Functions

 qdGameObjectMoving (const qdGameObjectMoving &obj)
 
qdGameObjectMovingoperator= (const qdGameObjectMoving &obj)
 
int named_object_type () const
 Возвращает тип объекта.
 
bool has_control_type (control_type_t type) const
 
void add_control_type (control_type_t type)
 
void remove_control_type (control_type_t type)
 
int get_control_types ()
 
int get_movement_mode ()
 
qdGameObjectStateWalk::movement_type_t movement_type () const
 
bool is_walkable (const Vect3f &pos) const
 
bool is_walkable (const Vect2s &pos) const
 
const Vect3fbound (bool perspective_correction=true) const
 Возвращает баунд объекта.
 
Vect3f calc_bound_in_pos (Vect3f pos, bool perspective_correction=true)
 
bool calc_walk_grid (Vect2s &center, Vect2s &size) const
 
bool calc_cur_and_future_walk_grid (float dt, Vect2s &cen_cur, Vect2s &size_cur, Vect2s &cen_next, Vect2s &size_next)
 Возвращает текущее положение сетки движения, и положение сетки через dt.
 
float radius () const
 Возвращает радиус объекта.
 
bool adjust_z ()
 
bool mouse_handler (int x, int y, mouseDispatcher::mouseEvent ev)
 
float direction_angle () const
 
float calc_direction_angle (const Vect3f &target) const
 
float animate_rotation (float dt)
 
float rotation_angle () const
 
float rotation_angle_per_quant () const
 
void set_rotation_angle_per_quant (float ang)
 
bool set_direction (float angle)
 
int get_direction (float angle) const
 
float default_direction_angle () const
 
void set_default_direction (float ang)
 
void set_state (int st)
 
void set_state (qdGameObjectState *p)
 
void set_last_walk_state (qdGameObjectState *p)
 
qdGameObjectStatelast_walk_state ()
 
qdGameObjectStateget_default_state ()
 
const qdGameObjectStateget_default_state () const
 
void merge (qdGameObjectMoving *p)
 
void split (qdGameObjectMoving *p)
 
void set_button (qdInterfaceButton *p)
 
qdInterfaceButtonbutton () const
 
bool move (const Vect3f &target, bool lock_target=false)
 
bool move (const Vect3f &target, float angle, bool lock_target=false)
 
bool move2position (const Vect3f target)
 
bool skip_movement ()
 
bool stop_movement ()
 
bool is_moving () const
 
bool can_move () const
 
bool is_in_position (const Vect3f pos) const
 
bool is_in_position (const Vect3f pos, float angle) const
 
bool is_moving2position (const Vect3f pos) const
 
bool is_moving2position (const Vect3f pos, float angle) const
 
Vect3f local_target_position () const
 Текущая точка, к которой движется персонаж.
 
Vect3f target_position () const
 Точка, к которой движется персонаж.
 
void set_scale (float sc)
 
float scale () const
 
bool load_script (const xml::tag *p)
 
bool save_script (Common::WriteStream &fh, int indent=0) const
 
bool load_data (Common::SeekableReadStream &fh, int save_version)
 Загрузка данных из сэйва.
 
bool save_data (Common::WriteStream &fh) const
 Запись данных в сэйв.
 
bool load_resources ()
 
bool can_change_state (const qdGameObjectState *state=NULL) const
 Возвращает true, если объект в данный момент может менять состояние.
 
bool init ()
 Инициализация объекта, вызывается при старте и перезапуске игры.
 
Vect3f get_future_r (float dt, bool &end_movement, bool real_moving=false)
 
void quant (float dt)
 
void redraw (int offs_x=0, int offs_y=0) const
 
void debug_redraw () const
 
void draw_contour (uint32 color) const
 
void draw_shadow (int offs_x, int offs_y, uint32 color, int alpha) const
 
bool get_debug_info (Common::String &buf) const
 Копирует в буфер отладочную информацию для вывода на экран в отладочном режиме.
 
grScreenRegion screen_region () const
 
bool hit (int x, int y) const
 
bool update_screen_pos ()
 
Vect2s screen_size () const
 
void disable_control ()
 
void enable_control ()
 
bool is_control_disabled () const
 
bool keyboard_move ()
 
bool set_movement_impulse (float dir_angle)
 
float collision_radius () const
 
void set_collision_radius (float r)
 
float collision_delay () const
 
void set_collision_delay (float r)
 
float collision_path () const
 
void set_collision_path (float path)
 
float follow_min_radius () const
 
void set_follow_min_radius (float fmr)
 
float follow_max_radius () const
 
void set_follow_max_radius (float fmr)
 
int follow_condition () const
 
void set_follow_condition (int cond)
 
const Std::vector< const qdGameObjectMoving * > & const_ref_circuit_objs () const
 
Std::vector< const qdGameObjectMoving * > & ref_circuit_objs ()
 
const qdGameObjectMovingattacher () const
 
void set_attacher (const qdGameObjectMoving *mov_obj)
 
const qdNamedObjectReferenceattacher_ref () const
 
Vect2s attach_shift () const
 
void set_attach_shift (Vect2s shift)
 
Vect3f last_move_order () const
 
void set_last_move_order (const Vect3f &pnt)
 
bool avoid_collision (const qdGameObjectMoving *p)
 
bool move_from_personage_path ()
 
bool toggle_grid_zone (bool make_walkable=false)
 
void toggle_selection (bool state)
 
void set_path_attributes (int attr) const
 
void clear_path_attributes (int attr) const
 
- Public Member Functions inherited from QDEngine::qdGameObjectAnimated
 qdGameObjectAnimated (const qdGameObjectAnimated &obj)
 
qdGameObjectAnimatedoperator= (const qdGameObjectAnimated &obj)
 
bool auto_bound ()
 Устанавливает баунд объекта по текущему состоянию.
 
void set_bound (const Vect3f &b)
 Устанавливает баунд объекта.
 
bool has_bound () const
 Возвращает true, если у объекта выставлен баунд.
 
void draw_bound () const
 Отрисовка баунда (для отладки).
 
void draw_bound (Vect3f r, Vect3f const &bound, int const color) const
 
bool inters_with_bound (Vect3f bnd, Vect3f cen, bool perspective_correction=true) const
 Пересекается ли баунд, расположенный в точке с заданным баундом с центром в cen.
 
int cur_state () const
 Возвращает номер текущего состояния объекта.
 
void set_cur_state (int st)
 Устанавливает номер текущего состояния объекта.
 
int max_state () const
 Возвращает количество состояний объекта.
 
int get_state_index (const qdGameObjectState *p) const
 Возвращает номер состояния или -1 если не может такое состояние найти.
 
void set_states_owner ()
 Установка владельца состояний.
 
bool is_state_active (const char *state_name) const
 Возвращает true, если состояние с именем state_name активно.
 
bool was_state_active (const char *state_name) const
 Возвращает true, если состояние с именем state_name было активировано.
 
bool is_state_active (const qdGameObjectState *p) const
 Возвращает true, если состояние state активно.
 
bool was_state_previous (const char *state_name) const
 Возвращает true, если состояние с именем state_name было активно перед активным в данный момент состоянием.
 
bool was_state_previous (const qdGameObjectState *p) const
 Возвращает true, если состояние p было активно перед активным в данный момент состоянием.
 
bool was_state_active (const qdGameObjectState *p) const
 Возвращает true, если состояние state было активировано.
 
bool is_state_waiting (const qdGameObjectState *p) const
 
bool is_state_waiting (const char *state_name) const
 
const qdGameObjectStateVectorstate_vector () const
 Возвращает состояния объекта.
 
qdGameObjectStateget_state (const char *state_name)
 
qdGameObjectStateget_state (int state_index)
 
qdGameObjectStateget_cur_state ()
 
const qdGameObjectStateget_state (const char *state_name) const
 
const qdGameObjectStateget_state (int state_index) const
 
const qdGameObjectStateget_cur_state () const
 
void set_queued_state (qdGameObjectState *st)
 
qdGameObjectStatequeued_state ()
 
const qdGameObjectStatequeued_state () const
 
void merge_states (qdGameObjectAnimated *p)
 
void split_states (qdGameObjectAnimated *p)
 
StateStatus state_status (const qdGameObjectState *p) const
 
bool add_state (qdGameObjectState *p)
 
bool insert_state (int iBefore, qdGameObjectState *p)
 
qdGameObjectStateremove_state (int state_num)
 
bool remove_state (qdGameObjectState *p)
 
void restore_state ()
 
bool has_camera_mode () const
 
const qdCameraModecamera_mode () const
 
int num_directions () const
 Возвращает количество имеющихся у объекта направлений.
 
const Vect3fdefault_R () const
 
void set_default_pos (const Vect3f &r)
 
void set_default_state ()
 
qdGameObjectStateget_inventory_state ()
 
qdGameObjectStateget_mouse_state ()
 
qdGameObjectStateget_mouse_hover_state ()
 
qdAnimationget_animation ()
 
const qdAnimationget_animation () const
 
void set_animation (qdAnimation *p, const qdAnimationInfo *inf=NULL)
 
void set_animation_info (qdAnimationInfo *inf)
 
void set_screen_rotation (float target_angle, float speed)
 
float screen_rotation () const
 
void set_screen_scale (const Vect2f &scale, const Vect2f &speed)
 
const Vect2fscreen_scale () const
 
bool has_screen_transform () const
 
int inventory_type () const
 
void set_inventory_type (int tp)
 
bool handle_state_end ()
 Обработка окончания текущего состояния.
 
bool need_redraw () const
 
void post_redraw ()
 
void draw_grid_zone (const Vect2s sz) const
 
int mouse_cursor_ID () const
 
void free_resources ()
 
bool is_visible () const
 
const Vect2sgrid_size () const
 
bool init_grid_zone ()
 
bool save_grid_zone ()
 
bool restore_grid_zone ()
 
bool set_grid_zone_attributes (int attr) const
 
bool check_grid_zone_attributes (int attr) const
 
bool drop_grid_zone_attributes (int attr) const
 
bool set_grid_zone_attributes (const Vect2f &r, int attr) const
 
bool check_grid_zone_attributes (const Vect2f &r, int attr) const
 
bool drop_grid_zone_attributes (const Vect2f &r, int attr) const
 
const char * inventory_name () const
 
void set_inventory_name (const char *name)
 
bool has_inventory_name () const
 
const grScreenRegion last_screen_region () const
 
int inventory_cell_index () const
 
void set_inventory_cell_index (int idx)
 
int last_chg_time () const
 
void set_last_chg_time (int time)
 
int idle_time () const
 
int shadow_color () const
 
int shadow_alpha () const
 
void set_shadow (uint32 color, int alpha)
 
void clear_shadow ()
 
- Public Member Functions inherited from QDEngine::qdGameObject
 qdGameObject (const qdGameObject &obj)
 
qdGameObjectoperator= (const qdGameObject &obj)
 
void set_parallax_offset (int offs_x, int offs_y)
 
const Vect2iget_parallax_offset () const
 
const Vect2iscreen_pos () const
 
float screen_depth () const
 
const Vect3fR () const
 
void set_pos (const Vect3f &rr)
 
const Vect2iget_screen_R () const
 
void setTempPosInList (uint pos)
 
uint tempPosInList () const
 
Common::String flag2str (int flags) 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 control2str (int control, bool truncate=false)
 
static Common::String movement2str (int movement, bool truncate=false)
 

Protected Member Functions

bool load_script_body (const xml::tag *p)
 
bool save_script_body (Common::WriteStream &fh, int indent=0) const
 
- Protected Member Functions inherited from QDEngine::qdGameObjectAnimated
void set_last_state (qdGameObjectState *p)
 
void set_last_inventory_state (qdGameObjectState *p)
 
- Protected Member Functions inherited from QDEngine::qdGameObject
void set_screen_R (const Vect2i &v)
 

Detailed Description

Персонаж.

Member Enumeration Documentation

◆ control_type_t

режимы управления персонажем

Enumerator
CONTROL_MOUSE 

можно указывать мышью точки куда идти

CONTROL_KEYBOARD 

можно рулить с клавиатуры

CONTROL_COLLISION 

можно толкать другим персонажем

CONTROL_AVOID_COLLISION 

автоматически избегать столкновений с другими персонажами

CONTROL_AUTO_MOVE 

автоматически двигаться

CONTROL_CLEAR_PATH 

сгонять с пути других персонажей, если блокируют дорогу

CONTROL_FOLLOW_ACTIVE_PERSONAGE 

Персонаж стремится не отходить от активного персонажа более чем на некоторый радиус

CONTROL_REPEAT_ACTIVE_PERSONAGE_MOVEMENT 

Персонаж пытается двигаться в ту же сторону, что и активный

CONTROL_ATTACHMENT_WITH_DIR_REL 

Жесткая привязка персонажа к заданному персонажу

CONTROL_ATTACHMENT_WITHOUT_DIR_REL 

Жесткая привязка персонажа к заданному персонажу без учета направления движения персонажа к которому привязываемся

CONTROL_ACTIVE_CLICK_REACTING 

Режим реагирования на клик активному персонажу (персонаж бежит туда же)

CONTROL_ANIMATED_ROTATION 

Режим с анимацией поворота

◆ follow_condition_t

флаги следования

Enumerator
FOLLOW_UPDATE_PATH 

Для персонажа нужно просчитать путь следования

FOLLOW_DONE 

Все ок

FOLLOW_WAIT 

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

FOLLOW_FULL_STOP_WAIT 

Персонаж ждет остановки всех следующих персонажей, чтобы продолжить следование

FOLLOW_MOVING 

Персонаж следует


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