From 652d34f6570b7eb0361ca471f43c68e274962f0a Mon Sep 17 00:00:00 2001 From: Smokexyz Date: Wed, 27 Dec 2017 22:31:00 +0800 Subject: Conversion of exp.txt to libconfig --- src/map/pc.h | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'src/map/pc.h') diff --git a/src/map/pc.h b/src/map/pc.h index 695add32f..f998c799d 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -824,6 +824,24 @@ struct autotrade_vending { struct hplugin_data_store *hdata; ///< HPM Plugin Data Store }; +struct class_exp_group { + char name[SCRIPT_VARNAME_LENGTH]; + int max_level; + VECTOR_DECL(uint64) exp; +}; + +/** +* Exp types +*/ +enum class_exp_type { + CLASS_EXP_TABLE_BASE, + CLASS_EXP_TABLE_JOB +}; + +struct class_exp_tables { + struct class_exp_group *class_exp_table[CLASS_COUNT][2]; +}; + /*===================================== * Interface : pc.h * Generated by HerculesInterfaceMaker @@ -841,8 +859,6 @@ struct pc_interface { /* */ BEGIN_ZEROED_BLOCK; /* Everything within this block will be memset to 0 when status_defaults() is executed */ - uint64 exp_table[CLASS_COUNT][2][MAX_LEVEL]; - int max_level[CLASS_COUNT][2]; unsigned int statp[MAX_LEVEL+1]; unsigned int level_penalty[3][RC_MAX][MAX_LEVEL*2+1]; /* */ @@ -852,6 +868,8 @@ BEGIN_ZEROED_BLOCK; /* Everything within this block will be memset to 0 when sta struct fame_list taekwon_fame_list[MAX_FAME_LIST]; END_ZEROED_BLOCK; /* End */ + struct class_exp_tables *dbs; + VECTOR_DECL(struct class_exp_group) class_exp_groups[2]; unsigned int equip_pos[EQI_MAX]; struct sg_data sg_info[MAX_PC_FEELHATE]; /* */ @@ -1062,6 +1080,9 @@ END_ZEROED_BLOCK; /* End */ int (*set_hate_mob) (struct map_session_data *sd, int pos, struct block_list *bl); int (*readdb) (void); + bool (*read_exp_db) (void); + int (*read_exp_db_sub) (struct config_setting_t *conf, bool base); + bool (*read_exp_db_sub_class) (struct config_setting_t *t, bool base); int (*map_day_timer) (int tid, int64 tick, int id, intptr_t data); // by [yor] int (*map_night_timer) (int tid, int64 tick, int id, intptr_t data); // by [yor] // Rental System @@ -1133,6 +1154,9 @@ END_ZEROED_BLOCK; /* End */ void (*validate_levels) (void); void (*update_job_and_level) (struct map_session_data *sd); + void (*clear_exp_groups) (void); + void (*init_exp_groups) (void); + bool (*job_is_dummy) (int job); /** * Autotrade persistency [Ind/Hercules <3] -- cgit v1.2.3-70-g09d2