#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 map_location &loc, const std::string &event, const map_location &second_loc=map_location::null_location(), const int damage=0, const strike_result::type hit_type=strike_result::type::invalid, const_attack_ptr attack=nullptr, const_attack_ptr 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="", color_t text_color={}, 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... | |
std::vector< std::string > | get_flags () |
Get the flags of all registered animations. More... | |
Private Attributes | |
const unit & | u_ |
A reference to the unit that owns this object. More... | |
std::unique_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. More... | |
halo::handle | unit_halo_ |
handle to the halo of this unit More... | |
std::vector< halo::handle > | abil_halos_ |
handle to the abilities halos of this unit More... | |
std::vector< std::string > | abil_halos_ref_ |
vector used to check that halo_abilities vector isn't modified between each read More... | |
Friends | |
class | unit |
class | unit_drawer |
Definition at line 27 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 31 of file animation_component.hpp.
|
inline |
normal anims
Default construct a unit animation component corresponding to a unit.
Definition at line 37 of file animation_component.hpp.
|
inline |
Copy construct a unit animation component, for use when copy constructing a unit.
Definition at line 51 of file animation_component.hpp.
void unit_animation_component::apply_new_animation_effect | ( | const config & | effect | ) |
Adds an animation described by a config.
Uses an internal cache to avoid redoing work.
Definition at line 197 of file animation_component.cpp.
References unit_animation::add_anims(), and animations_.
const unit_animation * unit_animation_component::choose_animation | ( | const map_location & | loc, |
const std::string & | event, | ||
const map_location & | second_loc = map_location::null_location() , |
||
const int | damage = 0 , |
||
const strike_result::type | hit_type = strike_result::type::invalid , |
||
const_attack_ptr | attack = nullptr , |
||
const_attack_ptr | second_attack = nullptr , |
||
int | swing_num = 0 |
||
) |
Chooses an appropriate animation from the list of known animations.
Definition at line 42 of file animation_component.cpp.
References animations_, randomness::rng::default_instance(), randomness::rng::get_random_int(), unit_animation::MATCH_FAIL, and u_.
Referenced by 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 151 of file animation_component.cpp.
References abil_halos_, abil_halos_ref_, anim_, and unit_halo_.
Referenced by unit_drawer::redraw_unit().
|
inline |
Get a pointer to the current animation.
Definition at line 109 of file animation_component.hpp.
References anim_.
Referenced by invalidate().
std::vector< std::string > unit_animation_component::get_flags | ( | ) |
Get the flags of all registered animations.
Definition at line 210 of file animation_component.cpp.
References animations_, and game_config::images::flag.
Referenced by UNIT_GETTER().
bool unit_animation_component::invalidate | ( | const display & | disp | ) |
Invalidates an animation with respect to a display object, preparing it for redraw.
Definition at line 159 of file animation_component.cpp.
References display::context(), unit::default_anim_image(), get_animation(), gamemap_base::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_, display_context::map(), unit::TC_image_mods(), 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 129 of file animation_component.cpp.
References anim_, get_current_animation_tick(), display::get_singleton(), unit::incapacitated(), unit::loc_, next_idling_, set_idling(), set_standing(), state_, STATE_FORGET, STATE_STANDING, display::tile_nearly_on_screen(), and u_.
void unit_animation_component::reset_after_advance | ( | const unit_type * | newtype = nullptr | ) |
Resets the animations list after the unit is advanced.
Definition at line 187 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 84 of file animation_component.cpp.
References choose_animation(), 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 77 of file animation_component.cpp.
References anim_, choose_animation(), unit::loc_, start_animation(), and u_.
void unit_animation_component::set_idling | ( | ) |
Sets the animation state to idling.
Definition at line 90 of file animation_component.cpp.
References choose_animation(), 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 96 of file animation_component.cpp.
References choose_animation(), prefs::get(), unit::incapacitated(), unit::loc_, start_animation(), STATE_FORGET, and u_.
Referenced by events::mouse_handler::select_hex().
void unit_animation_component::set_standing | ( | bool | with_bars = true | ) |
Sets the animation state to standing.
Definition at line 66 of file animation_component.cpp.
References choose_animation(), prefs::get(), unit::incapacitated(), unit::loc_, start_animation(), STATE_STANDING, and u_.
Referenced by editor::editor_action_unit_replace::perform_without_undo(), unit_drawer::redraw_unit(), refresh(), start_animation(), and wb::unghost_owner_unit().
void unit_animation_component::start_animation | ( | int | start_time, |
const unit_animation * | animation, | ||
bool | with_bars, | ||
const std::string & | text = "" , |
||
color_t | text_color = {} , |
||
STATE | state = STATE_ANIM |
||
) |
Begin an animation.
Definition at line 107 of file animation_component.cpp.
References anim_, draw_bars_, unit::facing_, frame_begin_time_, map_location::get_direction(), 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 114 of file animation_component.hpp.
|
friend |
Definition at line 115 of file animation_component.hpp.
|
private |
handle to the abilities halos of this unit
Definition at line 141 of file animation_component.hpp.
Referenced by clear_haloes().
|
private |
vector used to check that halo_abilities vector isn't modified between each read
Definition at line 143 of file animation_component.hpp.
Referenced by clear_haloes().
|
private |
The current animation.
Definition at line 121 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 123 of file animation_component.hpp.
Referenced by apply_new_animation_effect(), choose_animation(), get_flags(), and reset_after_advance().
|
private |
bool indicating whether to draw bars with the unit
Definition at line 134 of file animation_component.hpp.
Referenced by unit_drawer::redraw_unit(), and start_animation().
|
private |
time for the frame to begin
Definition at line 131 of file animation_component.hpp.
Referenced by start_animation().
|
private |
time for next idle animation
Definition at line 129 of file animation_component.hpp.
Referenced by refresh(), and start_animation().
|
private |
avoid infinite recursion.
flag used for drawing / animation
Definition at line 136 of file animation_component.hpp.
Referenced by unit_drawer::redraw_unit(), and reset_after_advance().
|
private |
animation state
Definition at line 126 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 118 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 139 of file animation_component.hpp.
Referenced by clear_haloes().