54 lines
1.0 KiB
Modula-2
54 lines
1.0 KiB
Modula-2
|
|
#script=IsHooked
|
|
// @def: script name
|
|
return ?{ScriptHasLine,{${@def}} #tag:hook:${@caller}}
|
|
|
|
#script=HookStart
|
|
// @def: script name
|
|
appenddef,{${@def}} #tag:hook:${@caller}
|
|
set,{#HookHelper::CurScript} ${@def}
|
|
|
|
#script=HookEnd
|
|
set,sc ${@0}
|
|
default,sc ${#HookHelper::CurScript}
|
|
appenddef,{${sc}} #tag:hook-end:${@caller}
|
|
unset ${sc}
|
|
unset sc
|
|
|
|
#script=HookAdd
|
|
// @def: script line
|
|
// @0: script name
|
|
set,sc ${@0}
|
|
default,sc ${#HookHelper::CurScript}
|
|
appenddef,{${sc}} ${@def}
|
|
unset sc
|
|
|
|
#script=HookAddList
|
|
// @def: list name
|
|
// @0: script name
|
|
set,sc ${@0}
|
|
set,l ?{globname,{${@caller}} ${@def}}
|
|
default,sc ${#HookHelper::CurScript}
|
|
set,i 0
|
|
loop
|
|
if ?{bigger_eq,${i} ?{llen ${l}}}
|
|
exitloop
|
|
endif
|
|
HookAdd,{${sc}} ?{lindex,{${l}} ${i}}
|
|
add,i 1
|
|
endloop
|
|
unset sc
|
|
|
|
#script=HookStartOpcode
|
|
// @def: opcode name
|
|
HookStart OPCODE::${@def}
|
|
|
|
|
|
//////////////////////////////////////////////////////////
|
|
#comments-start
|
|
TODO:
|
|
- add UnHook[,which_script] hook_name
|
|
- add UnHookAll which_script
|
|
- Add HookStartAfter
|
|
|
|
#comments-end |