mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
Fix movement freeze after battle in teleport
This commit is contained in:
parent
188607b05f
commit
c4dec67acc
@ -2771,7 +2771,8 @@ void CPlayerInterface::doMoveHero(const CGHeroInstance * h, CGPath path)
|
|||||||
destinationTeleport = destTeleportObj->id;
|
destinationTeleport = destTeleportObj->id;
|
||||||
destinationTeleportPos = nextCoord;
|
destinationTeleportPos = nextCoord;
|
||||||
doMovement(h->pos, false);
|
doMovement(h->pos, false);
|
||||||
if (path.nodes[i-1].action == CGPathNode::TELEPORT_BLOCKING_VISIT)
|
if (path.nodes[i-1].action == CGPathNode::TELEPORT_BLOCKING_VISIT
|
||||||
|
|| path.nodes[i-1].action == CGPathNode::TELEPORT_BATTLE)
|
||||||
{
|
{
|
||||||
destinationTeleport = ObjectInstanceID();
|
destinationTeleport = ObjectInstanceID();
|
||||||
destinationTeleportPos = int3(-1);
|
destinationTeleportPos = int3(-1);
|
||||||
|
@ -45,6 +45,21 @@ ui16 CTypeList::getTypeID(const std::type_info *type, bool throws) const
|
|||||||
return descriptor->typeID;
|
return descriptor->typeID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CTypeList::TypeInfoPtr CTypeList::getTypeDescriptor(ui16 typeID) const
|
||||||
|
{
|
||||||
|
auto found = std::find_if(typeInfos.begin(), typeInfos.end(), [typeID](const std::pair<const std::type_info *, TypeInfoPtr> & p) -> bool
|
||||||
|
{
|
||||||
|
return p.second->typeID == typeID;
|
||||||
|
});
|
||||||
|
|
||||||
|
if(found != typeInfos.end())
|
||||||
|
{
|
||||||
|
return found->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TypeInfoPtr();
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<CTypeList::TypeInfoPtr> CTypeList::castSequence(TypeInfoPtr from, TypeInfoPtr to) const
|
std::vector<CTypeList::TypeInfoPtr> CTypeList::castSequence(TypeInfoPtr from, TypeInfoPtr to) const
|
||||||
{
|
{
|
||||||
if(!strcmp(from->name, to->name))
|
if(!strcmp(from->name, to->name))
|
||||||
|
@ -148,6 +148,8 @@ public:
|
|||||||
return getTypeID(getTypeInfo(t), throws);
|
return getTypeID(getTypeInfo(t), throws);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TypeInfoPtr getTypeDescriptor(ui16 typeID) const;
|
||||||
|
|
||||||
template<typename TInput>
|
template<typename TInput>
|
||||||
void * castToMostDerived(const TInput * inputPtr) const
|
void * castToMostDerived(const TInput * inputPtr) const
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user