void Engine::DoHook(HookList& hooklist) { if (!_recurseStop) { try { _recurseStop = true; hooklist.flush(); // handle any pending insertions/deletions for (HookList::iterator i = hooklist.begin(); i != hooklist.end(); i++) { script.ExecObject(*i); } } catch (...) { _recurseStop = false; throw; } _recurseStop = false; } }