From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Wasabi/api/application/wkc.h | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Src/Wasabi/api/application/wkc.h (limited to 'Src/Wasabi/api/application/wkc.h') diff --git a/Src/Wasabi/api/application/wkc.h b/Src/Wasabi/api/application/wkc.h new file mode 100644 index 00000000..4f7eee86 --- /dev/null +++ b/Src/Wasabi/api/application/wkc.h @@ -0,0 +1,61 @@ +#ifndef _WKC_H +#define _WKC_H + +#include + +/** + A callback class for the loader so it can determine which resources wasabi.dll should load. +*/ +class NOVTABLE WasabiKernelController : public Dispatchable { +public: +/** + Check if a component should load. +*/ + int testComponent(const char *filename); + int testScript(const char *filename, void *data, int datalen); + int testSkin(const char *skinname); + int testSkinFile(const char *filename); + +protected: + enum { + TESTCOMPONENT=1000, + TESTSCRIPT=2000, + TESTSKIN=3000, + TESTSKINFILE=4000, + }; +}; + +inline +int WasabiKernelController::testComponent(const char *filename) { + return _call(TESTCOMPONENT, TRUE, filename); +} + +inline +int WasabiKernelController::testScript(const char *filename, void *data, int datalen) { + return _call(TESTSCRIPT, TRUE, filename, data, datalen); +} + +inline +int WasabiKernelController::testSkin(const char *skinname) { + return _call(TESTSKIN, TRUE, skinname); +} + +inline +int WasabiKernelController::testSkinFile(const char *filename) { + return _call(TESTSKINFILE, TRUE, filename); +} + +// implementors derive from this one +class WasabiKernelControllerI : public WasabiKernelController { +public: + // default to OK + virtual int testComponent(const char *filename) { return 1; } + virtual int testScript(const char *filename, void *data, int datalen) { return 1; } + virtual int testSkin(const char *skinname) { return 1; } + virtual int testSkinFile(const char *filename) { return 1; } + +protected: + RECVS_DISPATCH; +}; + +#endif -- cgit