From 4d0ef730585b2791a3916a47887051f07e528b75 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Sun, 18 Mar 2018 02:49:02 +0100 Subject: DTCallback: Change order of fast and target parameter for Object/DefinitionCallback Use DTCallbackCompatibility for backwards compatibility --- DTCallback.c | 4 ++-- DTCallbackCompatibility.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 DTCallbackCompatibility.c diff --git a/DTCallback.c b/DTCallback.c index 5e6fb3f..820dfb7 100644 --- a/DTCallback.c +++ b/DTCallback.c @@ -9,8 +9,8 @@ static const CallbackTarget_Scenario = -3; global func GlobalCallback(string name) { return [CallbackTarget_Global, name]; } global func ScenarioCallback(string name) { return [CallbackTarget_Scenario, name]; } -global func ObjectCallback(string name, object target, bool fast) { return [target || this || FatalError("ObjectCallback without target object"), name, fast]; } -global func DefinitionCallback(string name, id target, bool fast) { return [target || GetID() || FatalError("DefinitionCallback without target definition"), name, fast]; } +global func ObjectCallback(string name, bool fast, object target) { return [target || this || FatalError("ObjectCallback without target object"), name, fast]; } +global func DefinitionCallback(string name, bool fast, id target) { return [target || GetID() || FatalError("DefinitionCallback without target definition"), name, fast]; } global func Callback(string name, target) { return [target || this || GetID() || CallbackTarget_Global, name]; } global func BindCallback(callback, array binding) { return [CallbackTarget_Bind, callback, binding]; } diff --git a/DTCallbackCompatibility.c b/DTCallbackCompatibility.c new file mode 100644 index 0000000..d408954 --- /dev/null +++ b/DTCallbackCompatibility.c @@ -0,0 +1,27 @@ +#strict 2 + +// NOTE: Make sure this is loaded after DTCallback.c and overloads the original functions + +global func ObjectCallback(string name, targetOrFast, bool fast) +{ + if(GetType(targetOrFast) == C4V_C4Object) + { + return _inherited(name, fast, targetOrFast); + } + else + { + return _inherited(name, targetOrFast, fast); + } +} + +global func DefinitionCallback(string name, targetOrFast, bool fast) +{ + if(GetType(targetOrFast) == C4V_C4ID) + { + return _inherited(name, fast, targetOrFast); + } + else + { + return _inherited(name, targetOrFast, fast); + } +} -- cgit v1.2.3-54-g00ecf