Example #1
0
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));
		}
	}
}