Use the object's class to check if it's an actor

This commit is contained in:
Chris Robinson 2013-03-31 15:12:10 -07:00
parent acae815cd2
commit 10d04c928c

View file

@ -178,10 +178,10 @@ namespace MWMechanics
void MechanicsManager::add(const MWWorld::Ptr& ptr) void MechanicsManager::add(const MWWorld::Ptr& ptr)
{ {
if(ptr.getTypeName() == typeid(ESM::Activator).name()) if(MWWorld::Class::get(ptr).isActor())
mActivators.addActivator(ptr);
else
mActors.addActor(ptr); mActors.addActor(ptr);
else
mActivators.addActivator(ptr);
} }
void MechanicsManager::remove(const MWWorld::Ptr& ptr) void MechanicsManager::remove(const MWWorld::Ptr& ptr)
@ -194,10 +194,10 @@ namespace MWMechanics
void MechanicsManager::updateCell(const MWWorld::Ptr &old, const MWWorld::Ptr &ptr) void MechanicsManager::updateCell(const MWWorld::Ptr &old, const MWWorld::Ptr &ptr)
{ {
if(ptr.getTypeName() == typeid(ESM::Activator).name()) if(MWWorld::Class::get(ptr).isActor())
mActivators.updateActivator(old, ptr);
else
mActors.updateActor(old, ptr); mActors.updateActor(old, ptr);
else
mActivators.updateActivator(old, ptr);
} }
@ -656,17 +656,17 @@ namespace MWMechanics
void MechanicsManager::playAnimationGroup(const MWWorld::Ptr& ptr, const std::string& groupName, int mode, int number) void MechanicsManager::playAnimationGroup(const MWWorld::Ptr& ptr, const std::string& groupName, int mode, int number)
{ {
if(ptr.getTypeName() == typeid(ESM::Activator).name()) if(MWWorld::Class::get(ptr).isActor())
mActivators.playAnimationGroup(ptr, groupName, mode, number);
else
mActors.playAnimationGroup(ptr, groupName, mode, number); mActors.playAnimationGroup(ptr, groupName, mode, number);
else
mActivators.playAnimationGroup(ptr, groupName, mode, number);
} }
void MechanicsManager::skipAnimation(const MWWorld::Ptr& ptr) void MechanicsManager::skipAnimation(const MWWorld::Ptr& ptr)
{ {
if(ptr.getTypeName() == typeid(ESM::Activator).name()) if(MWWorld::Class::get(ptr).isActor())
mActivators.skipAnimation(ptr);
else
mActors.skipAnimation(ptr); mActors.skipAnimation(ptr);
else
mActivators.skipAnimation(ptr);
} }
} }