summaryrefslogtreecommitdiffstats
path: root/Script.c
diff options
context:
space:
mode:
Diffstat (limited to 'Script.c')
-rw-r--r--Script.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/Script.c b/Script.c
new file mode 100644
index 0000000..3d4acf7
--- /dev/null
+++ b/Script.c
@@ -0,0 +1,35 @@
+#strict 2
+
+static ContextMenuEntry_Helper;
+static const DT_EffectContext_Helper = CM7I;
+
+global func AddContextMenuEntry(callback, condition, object target)
+{
+ ContextMenuEntry_Helper = ContextMenuEntry_Helper || CreateObject(CM7I);
+ return AddEffect("IntCtxMenuEntry" , target || this, 1, 0, ContextMenuEntry_Helper, 0, callback, condition);
+}
+
+global func RemoveContextMenuEntry(int id, object target)
+{
+ return RemoveEffect(0, target || this, id);
+}
+
+func FxIntCtxMenuEntryStart(object target, int effectNumber, int temp, callback, condition)
+{
+ if(!temp)
+ {
+ EffectVar(0, target, effectNumber) = callback;
+ EffectVar(1, target, effectNumber) = condition;
+ }
+}
+
+func FxIntCtxMenuEntryConditionContext(object target, int effectNumber, object menuObject, id image)
+{
+ return !EffectVar(1, target, effectNumber) || Call(EffectVar(1, target, effectNumber), [target, effectNumber, menuObject, image]);
+}
+
+func FxIntCtxMenuEntryContext(object target, int effectNumber, object menuObject, id image)
+{
+ [Dynamischer Eintrag|Condition=FxIntCtxMenuEntryConditionContext|Image=FLNT]
+ return EffectVar(0, target, effectNumber) && target->Call(EffectVar(0, target, effectNumber), [target, effectNumber, menuObject, image]);
+}