Merge PR #5163 (halo animation freezing fix)

This commit is contained in:
Tommy 2022-06-28 14:28:35 +12:00
commit 2d7e0a074d
2 changed files with 3 additions and 6 deletions

View File

@ -2477,14 +2477,10 @@ void display::draw(bool update, bool force)
draw_init(); draw_init();
pre_draw(); pre_draw();
// invalidate all that needs to be invalidated // invalidate animated terrain, units and haloes
invalidate_animations(); invalidate_animations();
if(!get_map().empty()) { if(!get_map().empty()) {
/*
* draw_invalidated() also invalidates the halos, so also needs to be
* ran if invalidated_.empty() == true.
*/
if(!invalidated_.empty()) { if(!invalidated_.empty()) {
draw_invalidated(); draw_invalidated();
invalidated_.clear(); invalidated_.clear();
@ -3118,6 +3114,8 @@ void display::invalidate_animations()
new_inval |= u->anim_comp().invalidate(*this); new_inval |= u->anim_comp().invalidate(*this);
} }
} while(new_inval); } while(new_inval);
halo_man_->unrender(invalidated_);
} }
void display::reset_standing_animations() void display::reset_standing_animations()

View File

@ -229,7 +229,6 @@ void game_display::post_draw() {
void game_display::draw_invalidated() void game_display::draw_invalidated()
{ {
halo_man_->unrender(invalidated_);
display::draw_invalidated(); display::draw_invalidated();
if (fake_unit_man_->empty()) { if (fake_unit_man_->empty()) {
return; return;