void Game_Map::ShowBattleAnimation(int animation_id, int target_id, bool global) { const RPG::Animation* anim = ReaderUtil::GetElement(Data::animations, animation_id); if (!anim) { Output::Warning("ShowBattleAnimation: Invalid battle animation ID %d", animation_id); return; } Main_Data::game_data.screen.battleanim_id = animation_id; Main_Data::game_data.screen.battleanim_target = target_id; Main_Data::game_data.screen.battleanim_global = global; Game_Character* chara = Game_Character::GetCharacter(target_id, target_id); if (chara) { chara->SetFlashTimeLeft(0); // Any flash always ends if (global) { animation.reset(new BattleAnimationGlobal(*anim)); } else { animation.reset(new BattleAnimationChara(*anim, *chara)); } } }