#include <animation_component.hpp>
Public Types | |
enum | STATE { STATE_STANDING, STATE_FORGET, STATE_ANIM } |
States for animation. More... | |
Public Member Functions | |
unit_animation_component (unit &my_unit) | |
normal anims More... | |
unit_animation_component (unit &my_unit, const unit_animation_component &o) | |
Copy construct a unit animation component, for use when copy constructing a unit. More... | |
const unit_animation * | choose_animation (const display &disp, const map_location &loc, const std::string &event, const map_location &second_loc=map_location::null_location(), const int damage=0, const unit_animation::hit_type hit_type=unit_animation::INVALID, const attack_type *attack=nullptr, const attack_type *second_attack=nullptr, int swing_num=0) |
Chooses an appropriate animation from the list of known animations. More... | |
void | set_standing (bool with_bars=true) |
Sets the animation state to standing. More... | |
void | set_ghosted (bool with_bars=true) |
Sets the animation state to ghosted. More... | |
void | set_disabled_ghosted (bool with_bars=true) |
Whiteboard related somehow. More... | |
void | set_idling () |
Sets the animation state to idling. More... | |
void | set_selecting () |
Sets the animation state to that when the unit is selected. More... | |
void | start_animation (int start_time, const unit_animation *animation, bool with_bars, const std::string &text="", Uint32 text_color=0, STATE state=STATE_ANIM) |
Begin an animation. More... | |
bool | invalidate (const display &disp) |
Invalidates an animation with respect to a display object, preparing it for redraw. More... | |
void | refresh () |
Intermittently activates the idling animations in place of the standing animations. More... | |
void | clear_haloes () |
Clear the haloes associated to the unit. More... | |
void | reset_after_advance (const unit_type *newtype=nullptr) |
Resets the animations list after the unit is advanced. More... | |
void | apply_new_animation_effect (const config &effect) |
Adds an animation described by a config. More... | |
unit_animation * | get_animation () const |
Get a pointer to the current animation. More... | |
Private Attributes | |
const unit & | u_ |
A reference to the unit that owns this object. More... | |
boost::scoped_ptr< unit_animation > | anim_ |
The current animation. More... | |
std::vector< unit_animation > | animations_ |
List of registered animations for this unit. More... | |
STATE | state_ |
animation state More... | |
int | next_idling_ |
time for next idle animation More... | |
int | frame_begin_time_ |
time for the frame to begin More... | |
bool | draw_bars_ |
bool indicating whether to draw bars with the unit More... | |
bool | refreshing_ |
avoid infinite recursion. flag used for drawing / animation More... | |
halo::handle | unit_halo_ |
handle to the halo of this unit More... | |
Friends | |
class | unit |
class | unit_drawer |
Definition at line 30 of file animation_component.hpp.
States for animation.
Enumerator | |
---|---|
STATE_STANDING | |
STATE_FORGET |
anim must fit in a hex |
STATE_ANIM |
animation will be automatically replaced by a standing anim when finished |
Definition at line 34 of file animation_component.hpp.
|
inline |
normal anims
Default construct a unit animation component corresponding to a unit.
Definition at line 40 of file animation_component.hpp.
|
inline |
Copy construct a unit animation component, for use when copy constructing a unit.
Definition at line 52 of file animation_component.hpp.
Adds an animation described by a config.
Uses an internal cache to avoid redoing work.
Definition at line 194 of file animation_component.cpp.
References unit_animation::add_anims(), and animations_.
const unit_animation * unit_animation_component::choose_animation | ( | const display & | disp, |
const map_location & | loc, | ||
const std::string & | event, | ||
const map_location & | second_loc = map_location::null_location() , |
||
const int | damage = 0 , |
||
const unit_animation::hit_type | hit_type = unit_animation::INVALID , |
||
const attack_type * | attack = nullptr , |
||
const attack_type * | second_attack = nullptr , |
||
int | swing_num = 0 |
||
) |
Chooses an appropriate animation from the list of known animations.
Definition at line 25 of file animation_component.cpp.
References animations_, i, unit_animation::MATCH_FAIL, preferences::options(), and u_.
Referenced by unit_animator::add_animation(), set_disabled_ghosted(), set_ghosted(), set_idling(), set_selecting(), and set_standing().
void unit_animation_component::clear_haloes | ( | ) |
Clear the haloes associated to the unit.
Definition at line 150 of file animation_component.cpp.
References anim_, and unit_halo_.
Referenced by unit_drawer::redraw_unit().
|
inline |
Get a pointer to the current animation.
Definition at line 108 of file animation_component.hpp.
References anim_.
Referenced by invalidate(), and unit_animator::replace_anim_if_invalid().
bool unit_animation_component::invalidate | ( | const display & | disp | ) |
Invalidates an animation with respect to a display object, preparing it for redraw.
Definition at line 156 of file animation_component.cpp.
References unit::default_anim_image(), get_animation(), display::get_map(), gamemap::get_terrain(), gamemap::get_terrain_info(), display::get_zoom_factor(), frame_parameters::halo_mod, frame_parameters::halo_y, frame_parameters::image, frame_parameters::image_mod, unit::image_mods(), unit_animation::invalidate(), unit::is_flying(), unit::loc_, unit::TC_image_mods(), gui2::terrain, u_, terrain_type::unit_height_adjust(), and frame_parameters::y.
void unit_animation_component::refresh | ( | ) |
Intermittently activates the idling animations in place of the standing animations.
Used by display object.
Definition at line 123 of file animation_component.cpp.
References anim_, get_current_animation_tick(), display::get_singleton(), display::idle_anim(), display::idle_anim_rate(), unit::incapacitated(), unit::loc_, next_idling_, set_idling(), set_standing(), state_, STATE_FORGET, STATE_STANDING, display::tile_nearly_on_screen(), and u_.
Resets the animations list after the unit is advanced.
Definition at line 184 of file animation_component.cpp.
References anim_, unit_type::animations(), animations_, and refreshing_.
void unit_animation_component::set_disabled_ghosted | ( | bool | with_bars = true | ) |
Whiteboard related somehow.
TODO: Figure out exactly what this does.
Definition at line 69 of file animation_component.cpp.
References choose_animation(), display::get_singleton(), unit::loc_, start_animation(), and u_.
Referenced by wb::ghost_owner_unit().
void unit_animation_component::set_ghosted | ( | bool | with_bars = true | ) |
Sets the animation state to ghosted.
(For use with whiteboard / planning mode.)
Definition at line 61 of file animation_component.cpp.
References anim_, choose_animation(), display::get_singleton(), unit::loc_, start_animation(), and u_.
void unit_animation_component::set_idling | ( | ) |
Sets the animation state to idling.
Definition at line 76 of file animation_component.cpp.
References choose_animation(), display::get_singleton(), unit::loc_, start_animation(), STATE_FORGET, and u_.
Referenced by refresh().
void unit_animation_component::set_selecting | ( | ) |
Sets the animation state to that when the unit is selected.
Definition at line 83 of file animation_component.cpp.
References choose_animation(), display::get_singleton(), unit::incapacitated(), unit::loc_, preferences::show_standing_animations(), start_animation(), STATE_FORGET, and u_.
void unit_animation_component::set_standing | ( | bool | with_bars = true | ) |
Sets the animation state to standing.
Definition at line 49 of file animation_component.cpp.
References choose_animation(), display::get_singleton(), unit::incapacitated(), unit::loc_, preferences::show_standing_animations(), start_animation(), STATE_STANDING, and u_.
Referenced by editor::editor_action_unit_replace::perform_without_undo(), unit_drawer::redraw_unit(), refresh(), start_animation(), teleport_unit_between(), wb::unghost_owner_unit(), and unit_display::unit_sheath_weapon().
void unit_animation_component::start_animation | ( | int | start_time, |
const unit_animation * | animation, | ||
bool | with_bars, | ||
const std::string & | text = "" , |
||
Uint32 | text_color = 0 , |
||
STATE | state = STATE_ANIM |
||
) |
Begin an animation.
Definition at line 95 of file animation_component.cpp.
References anim_, draw_bars_, unit::facing_, frame_begin_time_, get_current_animation_tick(), map_location::get_direction(), display::get_singleton(), display::idle_anim(), display::idle_anim_rate(), unit::loc_, next_idling_, set_standing(), state_, STATE_FORGET, STATE_STANDING, and u_.
Referenced by set_disabled_ghosted(), set_ghosted(), set_idling(), set_selecting(), and set_standing().
|
friend |
Definition at line 110 of file animation_component.hpp.
|
friend |
Definition at line 111 of file animation_component.hpp.
|
private |
The current animation.
Definition at line 115 of file animation_component.hpp.
Referenced by clear_haloes(), get_animation(), unit_drawer::redraw_unit(), refresh(), reset_after_advance(), set_ghosted(), and start_animation().
|
private |
List of registered animations for this unit.
Definition at line 116 of file animation_component.hpp.
Referenced by apply_new_animation_effect(), choose_animation(), and reset_after_advance().
|
private |
bool indicating whether to draw bars with the unit
Definition at line 123 of file animation_component.hpp.
Referenced by unit_drawer::redraw_unit(), and start_animation().
|
private |
time for the frame to begin
Definition at line 121 of file animation_component.hpp.
Referenced by start_animation().
|
private |
time for next idle animation
Definition at line 120 of file animation_component.hpp.
Referenced by refresh(), and start_animation().
|
private |
avoid infinite recursion. flag used for drawing / animation
Definition at line 124 of file animation_component.hpp.
Referenced by unit_drawer::redraw_unit(), and reset_after_advance().
|
private |
animation state
Definition at line 118 of file animation_component.hpp.
Referenced by refresh(), and start_animation().
|
private |
A reference to the unit that owns this object.
It does so with a scoped pointer, so this reference should not dangle.
Definition at line 113 of file animation_component.hpp.
Referenced by choose_animation(), invalidate(), refresh(), set_disabled_ghosted(), set_ghosted(), set_idling(), set_selecting(), set_standing(), and start_animation().
|
private |
handle to the halo of this unit
Definition at line 126 of file animation_component.hpp.
Referenced by clear_haloes(), and unit_drawer::redraw_unit().