diff --git a/server/queries/BattleQueries.cpp b/server/queries/BattleQueries.cpp index a49e55be3..a377e6c1b 100644 --- a/server/queries/BattleQueries.cpp +++ b/server/queries/BattleQueries.cpp @@ -18,6 +18,7 @@ #include "../../lib/battle/IBattleState.h" #include "../../lib/mapObjects/CGObjectInstance.h" #include "../../lib/networkPacks/PacksForServer.h" +#include "../../lib/serializer/Cast.h" void CBattleQuery::notifyObjectAboutRemoval(const CObjectVisitQuery & objectVisit) const { @@ -46,8 +47,13 @@ CBattleQuery::CBattleQuery(CGameHandler * owner): bool CBattleQuery::blocksPack(const CPack * pack) const { - const char * name = typeid(*pack).name(); - return strcmp(name, typeid(MakeAction).name()) != 0; + if(dynamic_ptr_cast(pack) != nullptr) + return false; + + if(dynamic_ptr_cast(pack) != nullptr) + return false; + + return true; } void CBattleQuery::onRemoval(PlayerColor color)