diff options
author | shennetsind <ind@henn.et> | 2013-05-02 17:14:01 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-05-02 17:14:01 -0300 |
commit | a2c45a8db6d724b98ab41fe9e75e1f7ea7523d5d (patch) | |
tree | 710a44f94cceff2f0198211d21ddfbe99b66f02c /src/common/HPMi.h | |
parent | 219a4f5267b33349649f952266532a132a48c2a3 (diff) | |
download | hercules-a2c45a8db6d724b98ab41fe9e75e1f7ea7523d5d.tar.gz hercules-a2c45a8db6d724b98ab41fe9e75e1f7ea7523d5d.tar.bz2 hercules-a2c45a8db6d724b98ab41fe9e75e1f7ea7523d5d.tar.xz hercules-a2c45a8db6d724b98ab41fe9e75e1f7ea7523d5d.zip |
Introducing Hercules Plugin Mananger
http://hercules.ws/board/topic/549-introducing-hercules-plugin-manager/
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/common/HPMi.h')
-rw-r--r-- | src/common/HPMi.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/common/HPMi.h b/src/common/HPMi.h new file mode 100644 index 000000000..517d9125d --- /dev/null +++ b/src/common/HPMi.h @@ -0,0 +1,67 @@ +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file + +#ifndef _HPMi_H_ +#define _HPMi_H_ + +#include "../common/cbasetypes.h" +#include "../common/core.h" +#include "../common/console.h" + +struct script_state; +struct AtCommandInfo; + +#ifdef WIN32 + #define HPExport __declspec(dllexport) +#else + #define HPExport +#endif + +#ifndef _SHOWMSG_H_ + HPExport void (*ShowMessage) (const char *, ...); + HPExport void (*ShowStatus) (const char *, ...); + HPExport void (*ShowSQL) (const char *, ...); + HPExport void (*ShowInfo) (const char *, ...); + HPExport void (*ShowNotice) (const char *, ...); + HPExport void (*ShowWarning) (const char *, ...); + HPExport void (*ShowDebug) (const char *, ...); + HPExport void (*ShowError) (const char *, ...); + HPExport void (*ShowFatalError) (const char *, ...); +#endif + +/* after */ +#include "../common/showmsg.h" + +#define HPM_VERSION "0.1" + +struct hplugin_info { + char* name; + enum server_types type; + char* version; + char* req_version; +}; + +HPExport void *(*import_symbol) (char *name); +#define GET_SYMBOL(n) import_symbol(n) + +#define SERVER_TYPE_ALL SERVER_TYPE_LOGIN|SERVER_TYPE_CHAR|SERVER_TYPE_MAP + +enum hp_event_types { + HPET_INIT,/* server starts */ + HPET_FINAL,/* server is shutting down */ + HPET_READY,/* server is ready (online) */ + HPET_MAX, +}; + +/* Hercules Plugin Mananger Include Interface */ +struct HPMi_interface { + void (*event[HPET_MAX]) (void); + bool (*addCommand) (char *name, bool (*func)(const int fd, struct map_session_data* sd, const char* command, const char* message,struct AtCommandInfo *info)); + bool (*addScript) (char *name, char *args, bool (*func)(struct script_state *st)); + void (*addCPCommand) (char *name, CParseFunc func); +} HPMi_s; +#ifndef _HPM_H_ + struct HPMi_interface *HPMi; +#endif + +#endif /* _HPMi_H_ */
\ No newline at end of file |