diff --git a/vmf/scripts/mods/vmf/modules/core/hooks.lua b/vmf/scripts/mods/vmf/modules/core/hooks.lua index 4d5f002..2b959a2 100644 --- a/vmf/scripts/mods/vmf/modules/core/hooks.lua +++ b/vmf/scripts/mods/vmf/modules/core/hooks.lua @@ -269,7 +269,7 @@ local function generic_hook(self, obj, method, handler, func_name) if obj and not success then if _delaying_enabled and type(obj) == "string" then -- Call this func at a later time, using upvalues. - vmf:info("(%s): [%s.%s] needs to be delayed.", func_name, obj, method) + self:info("(%s): [%s.%s] needs to be delayed.", func_name, obj, method) table.insert(_delayed, function() generic_hook(self, obj, method, handler, func_name) end) @@ -394,8 +394,10 @@ vmf.hooks_unload = function() end end -vmf.apply_delayed_hooks = function() - _delaying_enabled = false +vmf.apply_delayed_hooks = function(status, state) + if status == "enter" and state == "StateIngame" then + _delaying_enabled = false + end if #_delayed > 0 then vmf:info("Attempt to hook %s delayed hooks", #_delayed) -- Go through the table in reverse so we don't get any issues removing entries inside the loop diff --git a/vmf/scripts/mods/vmf/vmf_loader.lua b/vmf/scripts/mods/vmf/vmf_loader.lua index 49fd2b5..8cfc444 100644 --- a/vmf/scripts/mods/vmf/vmf_loader.lua +++ b/vmf/scripts/mods/vmf/vmf_loader.lua @@ -98,7 +98,7 @@ function vmf_mod_object:on_game_state_changed(status, state) print("VMF:ON_GAME_STATE_CHANGED(), status: " .. tostring(status) .. ", state: " .. tostring(state)) vmf.mods_game_state_changed_event(status, state) vmf.save_unsaved_settings_to_file() - vmf.apply_delayed_hooks() + vmf.apply_delayed_hooks(status, state) if status == "enter" and state == "StateIngame" then vmf.initialize_keybinds()