diff --git a/src/battle_animation.cpp b/src/battle_animation.cpp index 00cf44beb..4bbf56995 100644 --- a/src/battle_animation.cpp +++ b/src/battle_animation.cpp @@ -36,7 +36,7 @@ #include "spriteset_map.h" BattleAnimation::BattleAnimation(const lcf::rpg::Animation& anim, bool only_sound, int cutoff, bool synced, bool multiplayer) : - Sprite(multiplayer ? Drawable::Flags::Shared : Drawable::Flags::Default), animation(anim), only_sound(only_sound), synced(synced), multiplayer(multiplayer) + animation(anim), only_sound(only_sound), synced(synced), multiplayer(multiplayer) { num_frames = GetRealFrames() * 2; if (cutoff >= 0 && cutoff < num_frames) { diff --git a/src/multiplayer/game_multiplayer.cpp b/src/multiplayer/game_multiplayer.cpp index 2e163caad..a9cc636e5 100644 --- a/src/multiplayer/game_multiplayer.cpp +++ b/src/multiplayer/game_multiplayer.cpp @@ -416,7 +416,12 @@ void Game_Multiplayer::InitConnection() { if (players.find(p.id) == players.end()) return; const lcf::rpg::Animation* anim = lcf::ReaderUtil::GetElement(lcf::Data::animations, p.anim_id); if (anim) { + auto scene_map = Scene::Find(Scene::SceneType::Map); + if (!scene_map) return; + auto old_list = &DrawableMgr::GetLocalList(); + DrawableMgr::SetLocalList(&scene_map->GetDrawableList()); players[p.id].battle_animation.reset(new BattleAnimationMap(*anim, *players[p.id].ch, false, true, true)); + DrawableMgr::SetLocalList(old_list); } else { players[p.id].battle_animation.reset(); }