summaryrefslogtreecommitdiff
path: root/src/common/HPM.h
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-11-13 21:26:21 -0200
committershennetsind <ind@henn.et>2013-11-13 21:26:21 -0200
commit8fda38dcdabbb9d252b0e11fb07b2ad37f9e659f (patch)
tree4b08262c9ef18f9a2dd39d56ae2509320ab26e8c /src/common/HPM.h
parentb4d197c667353f417069c406b85a696e3e2e5b6c (diff)
downloadhercules-8fda38dcdabbb9d252b0e11fb07b2ad37f9e659f.tar.gz
hercules-8fda38dcdabbb9d252b0e11fb07b2ad37f9e659f.tar.bz2
hercules-8fda38dcdabbb9d252b0e11fb07b2ad37f9e659f.tar.xz
hercules-8fda38dcdabbb9d252b0e11fb07b2ad37f9e659f.zip
HPM Custom Data Struct Makeover!
- Modified how the core handles it, making it easier to add new points. - Modified how plugins call it, calls were made shorter, e.g. 'HPMi->getFromSession(session[fd],HPMi->pid,0)' => 'getFromSession(session[fd],0)' -- check src/common/HPMi.h #defines for all the options - Added support for npc_data (getFromNPCD and so on) as requested in http://hercules.ws/board/topic/2923-hpm-custom-struct-npcs/ Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/common/HPM.h')
-rw-r--r--src/common/HPM.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/HPM.h b/src/common/HPM.h
index e685b3068..9a6bda713 100644
--- a/src/common/HPM.h
+++ b/src/common/HPM.h
@@ -82,6 +82,11 @@ struct HPMArgData {
bool has_param;/* because of the weird "--arg<space>param" instead of the "--arg=param" */
};
+struct HPDataOperationStorage {
+ void **HPDataSRCPtr;
+ unsigned int *hdatac;
+};
+
/* Hercules Plugin Manager Interface */
struct HPM_interface {
/* vars */
@@ -125,6 +130,9 @@ struct HPM_interface {
bool (*parse_arg) (const char *arg, int* index, char *argv[], bool param);
void (*arg_help) (void);
int (*arg_db_clear_sub) (DBKey key, DBData *data, va_list args);
+ void (*grabHPData) (struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr);
+ /* for server-specific HPData e.g. map_session_data */
+ void (*grabHPDataSub) (struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr);
} HPM_s;
struct HPM_interface *HPM;