diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 251aeac20..4e7b3eef7 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -269,5 +269,19 @@ void OMW::Engine::go() void OMW::Engine::activate() { - std::cout << "activate" << std::endl; + std::string handle = mEnvironment.mWorld->getFacedHandle(); + + if (handle.empty()) + return; + + MWWorld::Ptr ptr = mEnvironment.mWorld->getPtrViaHandle (handle); + + if (ptr.isEmpty()) + return; + + boost::shared_ptr action = + MWWorld::Class::get (ptr).activate (ptr, mEnvironment.mWorld->getPlayerPos().getPlayer(), + mEnvironment); + + action->execute (mEnvironment); }