summaryrefslogtreecommitdiff
path: root/src/map/skill.h
diff options
context:
space:
mode:
authorKenpachi Developer <Kenpachi.Developer@gmx.de>2020-05-15 05:24:03 +0200
committerKenpachi Developer <Kenpachi.Developer@gmx.de>2020-06-01 02:01:53 +0200
commitbcfd69d16f6ccbca90b410def8fb72d129c4e216 (patch)
treea270e15134daf99b9ef71ba9af47e9a953382740 /src/map/skill.h
parent0a2097d8e295a329ad3d0e732fb74e77707dc2bb (diff)
downloadhercules-bcfd69d16f6ccbca90b410def8fb72d129c4e216.tar.gz
hercules-bcfd69d16f6ccbca90b410def8fb72d129c4e216.tar.bz2
hercules-bcfd69d16f6ccbca90b410def8fb72d129c4e216.tar.xz
hercules-bcfd69d16f6ccbca90b410def8fb72d129c4e216.zip
Add defaults, bounds and validations when reading skill DB
Diffstat (limited to 'src/map/skill.h')
-rw-r--r--src/map/skill.h47
1 files changed, 40 insertions, 7 deletions
diff --git a/src/map/skill.h b/src/map/skill.h
index 651a355cf..66441f9f4 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -1745,7 +1745,7 @@ struct skill_condition {
// Database skills
struct s_skill_db {
int nameid;
- char name[MAX_SKILL_NAME_LENGTH];
+ char name[MAX_SKILL_NAME_LENGTH + 1];
char desc[40];
int range[MAX_SKILL_LEVEL],hit,inf,element[MAX_SKILL_LEVEL],nk,splash[MAX_SKILL_LEVEL],max;
int num[MAX_SKILL_LEVEL];
@@ -2115,24 +2115,57 @@ struct skill_interface {
int (*unit_timer_sub) (union DBKey key, struct DBData *data, va_list ap);
void (*init_unit_layout) (void);
void (*init_unit_layout_unknown) (int skill_idx, int pos);
+ void (*validate_id) (struct config_setting_t *conf, struct s_skill_db *sk, int conf_index);
+ bool (*name_contains_invalid_character) (const char *name);
+ void (*validate_name) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_max_level) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_description) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_range) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_hittype) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_skilltype) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_skillinfo) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_attacktype) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_element) (struct config_setting_t *conf, struct s_skill_db *sk);
- void (*validate_skillinfo) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_damagetype) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_splash_range) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_number_of_hits) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_interrupt_cast) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_cast_def_rate) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_number_of_instances) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_knock_back_tiles) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_cast_time) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_act_delay) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_walk_delay) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_skill_data1) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_skill_data2) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_cooldown) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_fixed_cast_time) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_castnodex) (struct config_setting_t *conf, struct s_skill_db *sk, bool delay);
+ void (*validate_hp_cost) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_sp_cost) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_hp_rate_cost) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_sp_rate_cost) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_max_hp_trigger) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_zeny_cost) (struct config_setting_t *conf, struct s_skill_db *sk);
+ int (*validate_weapontype_sub) (const char *type, bool on, struct s_skill_db *sk);
void (*validate_weapontype) (struct config_setting_t *conf, struct s_skill_db *sk);
+ int (*validate_ammotype_sub) (const char *type, bool on, struct s_skill_db *sk);
void (*validate_ammotype) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_ammo_amount) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_state) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_spirit_sphere_cost) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_item_requirements) (struct config_setting_t *conf, struct s_skill_db *sk);
- void (*validate_unit_target) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_requirements) (struct config_setting_t *conf, struct s_skill_db *sk);
+ int (*validate_unit_id_sub) (int unit_id);
+ void (*validate_unit_id) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_unit_layout) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_unit_range) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_unit_interval) (struct config_setting_t *conf, struct s_skill_db *sk);
+ int (*validate_unit_flag_sub) (const char *type, bool on, struct s_skill_db *sk);
void (*validate_unit_flag) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_unit_target) (struct config_setting_t *conf, struct s_skill_db *sk);
+ void (*validate_unit) (struct config_setting_t *conf, struct s_skill_db *sk);
void (*validate_additional_fields) (struct config_setting_t *conf, struct s_skill_db *sk);
- bool (*validate_skilldb) (struct s_skill_db *skt, const char *source);
- int (*validate_weapontype_sub) (const char *type, bool on, struct s_skill_db *sk);
- int (*validate_ammotype_sub) (const char *type, bool on, struct s_skill_db *sk);
- int (*validate_unit_flag_sub) (const char *type, bool on, struct s_skill_db *sk);
bool (*read_skilldb) (const char *filename);
void (*config_set_level) (struct config_setting_t *conf, int *arr);
void (*level_set_value) (int *arr, int value);