| 402 | } |
| 403 | |
| 404 | void GameObject::deleteObject() |
| 405 | { |
| 406 | Debug::Log->debug( |
| 407 | "GameObject::deleteObject called for '{0}' ({1})", m_id, m_type); |
| 408 | if (m_hasScriptEngine) |
| 409 | t_local->trigger("Delete"); |
| 410 | this->deletable = true; |
| 411 | m_active = false; |
| 412 | if (m_hasScriptEngine) |
| 413 | { |
| 414 | for (auto& triggerRef : m_registeredTriggers) |
| 415 | { |
| 416 | if (auto trigger = triggerRef.first.lock()) |
| 417 | { |
| 418 | trigger->unregisterEnvironment(m_environment); |
| 419 | } |
| 420 | } |
| 421 | for (const auto& trigger : t_local->getTriggers()) |
| 422 | { |
| 423 | m_environment["__TRIGGERS"][trigger->getTriggerLuaTableName()] |
| 424 | = sol::lua_nil; |
| 425 | } |
| 426 | for (auto [k, _] : m_environment) |
| 427 | { |
| 428 | m_environment[k] = sol::lua_nil; |
| 429 | } |
| 430 | } |
| 431 | } |
| 432 | |
| 433 | void GameObject::setPermanent(bool permanent) |
| 434 | { |
no test coverage detected