summaryrefslogtreecommitdiff
path: root/src/map/pc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/pc.h')
-rw-r--r--src/map/pc.h28
1 files changed, 26 insertions, 2 deletions
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]