diff options
Diffstat (limited to 'src/char/char.h')
-rw-r--r-- | src/char/char.h | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/src/char/char.h b/src/char/char.h index ff46e4353..499b633f7 100644 --- a/src/char/char.h +++ b/src/char/char.h @@ -2,7 +2,7 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2015 Hercules Dev Team + * Copyright (C) 2012-2016 Hercules Dev Team * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify @@ -26,6 +26,10 @@ #include "common/db.h" #include "common/mmo.h" +/* Forward Declarations */ +struct config_setting_t; // common/conf.h +struct config_t; // common/conf.h + enum E_CHARSERVER_ST { CHARSERVER_ST_RUNNING = CORE_ST_LAST, CHARSERVER_ST_SHUTDOWN, @@ -68,11 +72,15 @@ struct mmo_map_server { VECTOR_DECL(uint16) maps; }; -#define MAX_MAP_SERVERS 2 +/** + * deprecated feature, multi map been a dangerous in-complete feature for so long and going to be removed. + * USE IT AT YOUR OWN RISK! + */ +#define MAX_MAP_SERVERS 1 #define DEFAULT_AUTOSAVE_INTERVAL (300*1000) -enum { +enum inventory_table_type { TABLE_INVENTORY, TABLE_CART, TABLE_STORAGE, @@ -98,38 +106,40 @@ struct char_interface { struct mmo_map_server server[MAX_MAP_SERVERS]; int login_fd; int char_fd; - DBMap* online_char_db; // int account_id -> struct online_char_data* - DBMap* char_db_; + struct DBMap *online_char_db; // int account_id -> struct online_char_data* + struct DBMap *char_db_; char userid[NAME_LENGTH]; char passwd[NAME_LENGTH]; char server_name[20]; uint32 ip; uint16 port; int server_type; - int new_display; + int16 new_display; ///< Display 'New' in the server list. char *CHAR_CONF_NAME; char *NET_CONF_NAME; ///< Network config filename char *SQL_CONF_NAME; char *INTER_CONF_NAME; + bool show_save_log; ///< Show loading/saving messages. + bool enable_logs; ///< Whether to log char server operations. + int (*waiting_disconnect) (int tid, int64 tick, int id, intptr_t data); int (*delete_char_sql) (int char_id); - DBData (*create_online_char_data) (DBKey key, va_list args); + struct DBData (*create_online_char_data) (union DBKey key, va_list args); void (*set_account_online) (int account_id); void (*set_account_offline) (int account_id); void (*set_char_charselect) (int account_id); void (*set_char_online) (int map_id, int char_id, int account_id); void (*set_char_offline) (int char_id, int account_id); - int (*db_setoffline) (DBKey key, DBData *data, va_list ap); - int (*db_kickoffline) (DBKey key, DBData *data, va_list ap); + int (*db_setoffline) (union DBKey key, struct DBData *data, va_list ap); + int (*db_kickoffline) (union DBKey key, struct DBData *data, va_list ap); void (*set_login_all_offline) (void); void (*set_all_offline) (int id); void (*set_all_offline_sql) (void); - DBData (*create_charstatus) (DBKey key, va_list args); + struct DBData (*create_charstatus) (union DBKey key, va_list args); int (*mmo_char_tosql) (int char_id, struct mmo_charstatus* p); int (*memitemdata_to_sql) (const struct item items[], int max, int id, int tableswitch); - int (*inventory_to_sql) (const struct item items[], int max, int id); int (*mmo_gender) (const struct char_session_data *sd, const struct mmo_charstatus *p, char sex); int (*mmo_chars_fromsql) (struct char_session_data* sd, uint8* buf); int (*mmo_char_fromsql) (int char_id, struct mmo_charstatus* p, bool load_everything); @@ -137,7 +147,7 @@ struct char_interface { bool (*char_slotchange) (struct char_session_data *sd, int fd, unsigned short from, unsigned short to); int (*rename_char_sql) (struct char_session_data *sd, int char_id); int (*check_char_name) (char * name, char * esc_name); - int (*make_new_char_sql) (struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style); + int (*make_new_char_sql) (struct char_session_data *sd, const char *name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style, short starting_job, uint8 sex); int (*divorce_char_sql) (int partner_id1, int partner_id2); int (*count_users) (void); int (*mmo_char_tobuf) (uint8* buffer, struct mmo_charstatus* p); @@ -189,7 +199,7 @@ struct char_interface { void (*parse_frommap_save_character) (int fd, int id); void (*select_ack) (int fd, int account_id, uint8 flag); void (*parse_frommap_char_select_req) (int fd); - void (*change_map_server_ack) (int fd, uint8 *data, bool ok); + void (*change_map_server_ack) (int fd, const uint8 *data, bool ok); void (*parse_frommap_change_map_server) (int fd); void (*parse_frommap_remove_friend) (int fd); void (*char_name_ack) (int fd, int char_id); @@ -264,14 +274,29 @@ struct char_interface { int (*parse_char_unknown_packet) (int fd, uint32 ipl); int (*parse_char) (int fd); int (*broadcast_user_count) (int tid, int64 tick, int id, intptr_t data); - int (*send_accounts_tologin_sub) (DBKey key, DBData *data, va_list ap); + int (*send_accounts_tologin_sub) (union DBKey key, struct DBData *data, va_list ap); int (*send_accounts_tologin) (int tid, int64 tick, int id, intptr_t data); int (*check_connect_login_server) (int tid, int64 tick, int id, intptr_t data); - int (*online_data_cleanup_sub) (DBKey key, DBData *data, va_list ap); + int (*online_data_cleanup_sub) (union DBKey key, struct DBData *data, va_list ap); int (*online_data_cleanup) (int tid, int64 tick, int id, intptr_t data); - void (*sql_config_read) (const char* cfgName); - void (*config_dispatch) (char *w1, char *w2); - int (*config_read) (const char* cfgName); + + bool (*sql_config_read) (const char *filename, bool imported); + bool (*sql_config_read_registry) (const char *filename, const struct config_t *config, bool imported); + bool (*sql_config_read_pc) (const char *filename, const struct config_t *config, bool imported); + bool (*sql_config_read_guild) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read) (const char *filename, bool imported); + bool (*config_read_database) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_console) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_player_fame) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_player_deletion) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_player_name) (const char *filename, const struct config_t *config, bool imported); + void (*config_set_start_item) (const struct config_setting_t *setting); + bool (*config_read_player_new) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_player) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_permission) (const char *filename, const struct config_t *config, bool imported); + bool (*config_set_ip) (const char *type, const char *value, uint32 *out_ip, char *out_ip_str); + bool (*config_read_inter) (const char *filename, const struct config_t *config, bool imported); + bool (*config_read_top) (const char *filename, const struct config_t *config, bool imported); }; #ifdef HERCULES_CORE @@ -279,7 +304,6 @@ extern int char_name_option; extern char char_name_letters[]; extern bool char_gm_read; extern int autosave_interval; -extern int save_log; extern char db_path[]; extern char char_db[256]; extern char scdata_db[256]; @@ -315,7 +339,6 @@ extern char char_reg_str_db[32]; extern char char_reg_num_db[32]; extern int guild_exp_rate; -extern int log_inter; void char_load_defaults(void); void char_defaults(void); |