diff options
author | Haruna <haru@dotalux.com> | 2014-10-31 01:18:40 +0100 |
---|---|---|
committer | Haruna <haru@dotalux.com> | 2014-10-31 01:18:40 +0100 |
commit | 1d0452110f4b02f6d771c61d5c3a944f82b155f3 (patch) | |
tree | b36963aeb2f4924e49b5f4e80c270bf4275fb4c4 /src/char | |
parent | 72e18cdf9b612c476dd9ab2d45394c5e882e7dd1 (diff) | |
parent | 60becfc70e65ba7920079f990bfaa11851369f0c (diff) | |
download | hercules-1d0452110f4b02f6d771c61d5c3a944f82b155f3.tar.gz hercules-1d0452110f4b02f6d771c61d5c3a944f82b155f3.tar.bz2 hercules-1d0452110f4b02f6d771c61d5c3a944f82b155f3.tar.xz hercules-1d0452110f4b02f6d771c61d5c3a944f82b155f3.zip |
Merge pull request #378 from HerculesWS/hpmupdates
Char and login server preliminary support for the HPM system
Diffstat (limited to 'src/char')
-rw-r--r-- | src/char/HPMchar.c | 53 | ||||
-rw-r--r-- | src/char/HPMchar.h | 21 | ||||
-rw-r--r-- | src/char/Makefile.in | 12 | ||||
-rw-r--r-- | src/char/char.c | 33 |
4 files changed, 111 insertions, 8 deletions
diff --git a/src/char/HPMchar.c b/src/char/HPMchar.c new file mode 100644 index 000000000..4b153b244 --- /dev/null +++ b/src/char/HPMchar.c @@ -0,0 +1,53 @@ +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file + +#define HERCULES_CORE + +#include "HPMchar.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> + +#include "../common/HPM.h" +#include "../common/cbasetypes.h" +#include "../common/conf.h" +#include "../common/db.h" +#include "../common/des.h" +#include "../common/ers.h" +#include "../common/malloc.h" +#include "../common/mapindex.h" +#include "../common/mmo.h" +#include "../common/showmsg.h" +#include "../common/socket.h" +#include "../common/strlib.h" +#include "../common/sysinfo.h" + +#include "../common/HPMDataCheck.h" + +bool HPM_char_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr) { + /* record address */ + switch( type ) { + default: + return false; + } + return true; +} + +void HPM_char_plugin_load_sub(struct hplugin *plugin) { +} + +void HPM_char_do_init(void) { +#if 0 // TODO (HPMDataCheck is disabled for the time being) + HPM->datacheck_init(HPMDataCheck, HPMDataCheckLen, HPMDataCheckVer); +#else + HPM->DataCheck = NULL; +#endif +} + +void HPM_char_do_final(void) { +#if 0 // TODO (HPMDataCheck is disabled for the time being) + HPM->datacheck_final(); +#endif +} diff --git a/src/char/HPMchar.h b/src/char/HPMchar.h new file mode 100644 index 000000000..9d367725c --- /dev/null +++ b/src/char/HPMchar.h @@ -0,0 +1,21 @@ +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file + +#ifndef CHAR_HPMCHAR_H +#define CHAR_HPMCHAR_H + +#include "../common/cbasetypes.h" +#include "../common/HPM.h" + +struct hplugin; + +bool HPM_char_grabHPData(struct HPDataOperationStorage *ret, enum HPluginDataTypes type, void *ptr); + +void HPM_char_plugin_load_sub(struct hplugin *plugin); + +void HPM_char_do_final(void); + +void HPM_char_do_init(void); + +#endif /* CHAR_HPMCHAR_H */ + diff --git a/src/char/Makefile.in b/src/char/Makefile.in index ecb2f8741..d591a5370 100644 --- a/src/char/Makefile.in +++ b/src/char/Makefile.in @@ -22,13 +22,13 @@ MT19937AR_OBJ = $(MT19937AR_D)/mt19937ar.o MT19937AR_H = $(MT19937AR_D)/mt19937ar.h MT19937AR_INCLUDE = -I$(MT19937AR_D) -CHAR_C = char.c inter.c int_auction.c int_elemental.c int_guild.c int_homun.c \ - int_mail.c int_mercenary.c int_party.c int_pet.c int_quest.c \ - int_storage.c pincode.c +CHAR_C = char.c HPMchar.c inter.c int_auction.c int_elemental.c int_guild.c \ + int_homun.c int_mail.c int_mercenary.c int_party.c int_pet.c \ + int_quest.c int_storage.c pincode.c CHAR_OBJ = $(addprefix obj_sql/, $(patsubst %.c,%.o,$(CHAR_C))) -CHAR_H = char.h inter.h int_auction.h int_elemental.h int_guild.h int_homun.h \ - int_mail.h int_mercenary.h int_party.h int_pet.h int_quest.h \ - int_storage.h pincode.h +CHAR_H = char.h HPMchar.h inter.h int_auction.h int_elemental.h int_guild.h \ + int_homun.h int_mail.h int_mercenary.h int_party.h int_pet.h \ + int_quest.h int_storage.h pincode.h HAVE_MYSQL=@HAVE_MYSQL@ ifeq ($(HAVE_MYSQL),yes) diff --git a/src/char/char.c b/src/char/char.c index 824c782bc..3dcc48f2e 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -15,6 +15,7 @@ #include <sys/types.h> #include <time.h> +#include "HPMchar.h" #include "int_elemental.h" #include "int_guild.h" #include "int_homun.h" @@ -5375,6 +5376,8 @@ int do_final(void) { char_fd = -1; } + HPM_char_do_final(); + SQL->Free(sql_handle); mapindex->final(); @@ -5382,6 +5385,8 @@ int do_final(void) { if( server[i].map ) aFree(server[i].map); + HPM->event(HPET_POST_FINAL); + ShowStatus("Finished.\n"); return EXIT_SUCCESS; } @@ -5416,6 +5421,9 @@ void do_shutdown(void) } } +void char_hp_symbols(void) { + HPM->share(sql_handle,"sql_handle"); +} int do_init(int argc, char **argv) { int i; @@ -5426,6 +5434,29 @@ int do_init(int argc, char **argv) { mapindex_defaults(); pincode_defaults(); + + HPM_char_do_init(); + HPM->symbol_defaults_sub = char_hp_symbols; +#if 0 + /* TODO: Move to common code */ + for( i = 1; i < argc; i++ ) { + const char* arg = argv[i]; + if( strcmp(arg, "--load-plugin") == 0 ) { + if( map->arg_next_value(arg, i, argc, true) ) { + RECREATE(load_extras, char *, ++load_extras_count); + load_extras[load_extras_count-1] = argv[++i]; + } + } + } + HPM->config_read((const char * const *)load_extras, load_extras_count); + if (load_extras) { + aFree(load_extras); + load_extras = NULL; + load_extras_count = 0; + } +#endif + HPM->config_read(NULL, 0); + HPM->event(HPET_PRE_INIT); //Read map indexes mapindex->init(); @@ -5446,8 +5477,6 @@ int do_init(int argc, char **argv) { auth_db = idb_alloc(DB_OPT_RELEASE_DATA); online_char_db = idb_alloc(DB_OPT_RELEASE_DATA); - HPM->share(sql_handle,"sql_handle"); - HPM->config_read(NULL, 0); HPM->event(HPET_INIT); mmo_char_sql_init(); |