[Hooks] Fix inability to find original functions
This commit is contained in:
parent
16d72fc593
commit
d7f2d31897
1 changed files with 5 additions and 5 deletions
|
@ -157,7 +157,7 @@ local function create_specialized_hook(mod, orig, hook_type)
|
||||||
-- This would break the chain, solution is to not remove the hooks, simply make them inactive
|
-- This would break the chain, solution is to not remove the hooks, simply make them inactive
|
||||||
-- Make sure inactive hooks that rely on the chain still call the next function seamlessly.
|
-- Make sure inactive hooks that rely on the chain still call the next function seamlessly.
|
||||||
local previous_hook = get_hook_chain(orig)
|
local previous_hook = get_hook_chain(orig)
|
||||||
|
|
||||||
if hook_type == HOOK_TYPE_NORMAL then
|
if hook_type == HOOK_TYPE_NORMAL then
|
||||||
func = function(...)
|
func = function(...)
|
||||||
if hook_data.active then
|
if hook_data.active then
|
||||||
|
@ -193,7 +193,7 @@ local function create_internal_hook(orig, obj, method)
|
||||||
local hook_chain = get_hook_chain(orig)
|
local hook_chain = get_hook_chain(orig)
|
||||||
-- We need to keep return values in case another function depends on them
|
-- We need to keep return values in case another function depends on them
|
||||||
local num_values, values = get_return_values( hook_chain(...) )
|
local num_values, values = get_return_values( hook_chain(...) )
|
||||||
|
|
||||||
local safe_hooks = _hooks[HOOK_TYPE_SAFE][orig]
|
local safe_hooks = _hooks[HOOK_TYPE_SAFE][orig]
|
||||||
if safe_hooks and #safe_hooks > 0 then
|
if safe_hooks and #safe_hooks > 0 then
|
||||||
for i = 1, #safe_hooks do safe_hooks[i](...) end
|
for i = 1, #safe_hooks do safe_hooks[i](...) end
|
||||||
|
@ -316,7 +316,7 @@ local function generic_hook(mod, obj, method, handler, func_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- obj can't be a string for these now.
|
-- obj can't be a string for these now.
|
||||||
local orig = get_orig_function(mod, obj, method)
|
local orig = get_orig_function(obj, method)
|
||||||
if type(orig) ~= "function" then
|
if type(orig) ~= "function" then
|
||||||
mod:error("(%s): trying to hook %s (a %s), not a function.", func_name, method, type(orig))
|
mod:error("(%s): trying to hook %s (a %s), not a function.", func_name, method, type(orig))
|
||||||
return
|
return
|
||||||
|
@ -357,7 +357,7 @@ local function generic_hook_toggle(mod, obj, method, enabled_state)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local orig = get_orig_function(mod, obj, method)
|
local orig = get_orig_function(obj, method)
|
||||||
|
|
||||||
if _registry[mod][orig] then
|
if _registry[mod][orig] then
|
||||||
_registry[mod][orig].active = enabled_state
|
_registry[mod][orig].active = enabled_state
|
||||||
|
@ -404,7 +404,7 @@ end
|
||||||
function VMFMod:hook_origin(obj, method, handler)
|
function VMFMod:hook_origin(obj, method, handler)
|
||||||
return generic_hook(self, obj, method, handler, "hook_origin")
|
return generic_hook(self, obj, method, handler, "hook_origin")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Enable/disable functions for all hook types:
|
-- Enable/disable functions for all hook types:
|
||||||
function VMFMod:hook_enable(obj, method)
|
function VMFMod:hook_enable(obj, method)
|
||||||
generic_hook_toggle(self, obj, method, true)
|
generic_hook_toggle(self, obj, method, true)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue