diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.h | 27 | ||||
-rw-r--r-- | src/map/npc.h | 2 | ||||
-rw-r--r-- | src/map/pc.h | 4 | ||||
-rw-r--r-- | src/map/script.c | 10 | ||||
-rw-r--r-- | src/map/skill.c | 6 | ||||
-rw-r--r-- | src/map/skill.h | 76 | ||||
-rw-r--r-- | src/map/status.c | 11 | ||||
-rw-r--r-- | src/map/status.h | 74 |
8 files changed, 117 insertions, 93 deletions
diff --git a/src/map/battle.h b/src/map/battle.h index 58f622321..f67f2b8c6 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -72,20 +72,19 @@ struct block_list* battle_getenemy(struct block_list *target, int type, int rang int battle_gettarget(struct block_list *bl); int battle_getcurrentskill(struct block_list *bl); -//New definitions [Skotlex] -#define BCT_ENEMY 0x020000 -//This should be (~BCT_ENEMY&BCT_ALL) -#define BCT_NOENEMY 0x1d0000 -#define BCT_PARTY 0x040000 -//This should be (~BCT_PARTY&BCT_ALL) -#define BCT_NOPARTY 0x1b0000 -#define BCT_GUILD 0x080000 -//This should be (~BCT_GUILD&BCT_ALL) -#define BCT_NOGUILD 0x170000 -#define BCT_ALL 0x1f0000 -#define BCT_NOONE 0x000000 -#define BCT_SELF 0x010000 -#define BCT_NEUTRAL 0x100000 +enum e_battle_check_target +{//New definitions [Skotlex] + BCT_ENEMY = 0x020000, + BCT_NOENEMY = 0x1d0000, //This should be (~BCT_ENEMY&BCT_ALL) + BCT_PARTY = 0x040000, + BCT_NOPARTY = 0x1b0000, //This should be (~BCT_PARTY&BCT_ALL) + BCT_GUILD = 0x080000, + BCT_NOGUILD = 0x170000, //This should be (~BCT_GUILD&BCT_ALL) + BCT_ALL = 0x1f0000, + BCT_NOONE = 0x000000, + BCT_SELF = 0x010000, + BCT_NEUTRAL = 0x100000, +}; #define is_boss(bl) (status_get_mode(bl)&MD_BOSS) // Can refine later [Aru] diff --git a/src/map/npc.h b/src/map/npc.h index 6e7c7cbeb..9c0696753 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -77,7 +77,7 @@ struct npc_data { #define MAX_NPC_CLASS 1000 //Checks if a given id is a valid npc id. [Skotlex] //Since new npcs are added all the time, the max valid value is the one before the first mob (Scorpion = 1001) -#define npcdb_checkid(id) ((id >= 46 && id <= 125) || id == 139 || (id >= 400 && id <= MAX_NPC_CLASS) || id == INVISIBLE_CLASS) +#define npcdb_checkid(id) ( ( (id) >= 46 && (id) <= 125) || (id) == 139 || ( (id) >= 400 && (id) <= MAX_NPC_CLASS ) || (id) == INVISIBLE_CLASS ) #ifdef PCRE_SUPPORT void npc_chat_finalize(struct npc_data* nd); diff --git a/src/map/pc.h b/src/map/pc.h index ca4f671a4..f2767dd57 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -580,8 +580,8 @@ int pc_calc_skilltree(struct map_session_data *sd); int pc_calc_skilltree_normalize_job(struct map_session_data *sd); int pc_clean_skilltree(struct map_session_data *sd); -#define pc_checkoverhp(sd) (sd->battle_status.hp == sd->battle_status.max_hp) -#define pc_checkoversp(sd) (sd->battle_status.sp == sd->battle_status.max_sp) +#define pc_checkoverhp(sd) ((sd)->battle_status.hp == (sd)->battle_status.max_hp) +#define pc_checkoversp(sd) ((sd)->battle_status.sp == (sd)->battle_status.max_sp) int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y, clr_type clrtype); int pc_setsavepoint(struct map_session_data*,short,int,int); diff --git a/src/map/script.c b/src/map/script.c index c635f6112..a33b58341 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -246,9 +246,13 @@ enum curly_type { TYPE_ARGLIST // function argument list }; -#define ARGLIST_UNDEFINED 0 -#define ARGLIST_NO_PAREN 1 -#define ARGLIST_PAREN 2 +enum e_arglist +{ + ARGLIST_UNDEFINED = 0, + ARGLIST_NO_PAREN = 1, + ARGLIST_PAREN = 2, +}; + static struct { struct { enum curly_type type; diff --git a/src/map/skill.c b/src/map/skill.c index d95d04134..1eb229774 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -43,11 +43,11 @@ // ranges reserved for mapping skill ids to skilldb offsets #define GD_SKILLRANGEMIN 900 -#define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL +#define GD_SKILLRANGEMAX (GD_SKILLRANGEMIN+MAX_GUILDSKILL) #define MC_SKILLRANGEMIN 800 -#define MC_SKILLRANGEMAX MC_SKILLRANGEMIN+MAX_MERCSKILL +#define MC_SKILLRANGEMAX (MC_SKILLRANGEMIN+MAX_MERCSKILL) #define HM_SKILLRANGEMIN 700 -#define HM_SKILLRANGEMAX HM_SKILLRANGEMIN+MAX_HOMUNSKILL +#define HM_SKILLRANGEMAX (HM_SKILLRANGEMIN+MAX_HOMUNSKILL) static struct eri *skill_unit_ers = NULL; //For handling skill_unit's [Skotlex] static struct eri *skill_timer_ers = NULL; //For handling skill_timerskills [Skotlex] diff --git a/src/map/skill.h b/src/map/skill.h index 6f55af7ec..a4f52e5cf 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -22,51 +22,61 @@ struct status_change_entry; #define MAX_SKILL_LEVEL 100 //Constants to identify the skill's inf value: -#define INF_ATTACK_SKILL 1 -#define INF_GROUND_SKILL 2 -// Skills casted on self where target is automatically chosen: -#define INF_SELF_SKILL 4 -#define INF_SUPPORT_SKILL 16 -#define INF_TARGET_TRAP 32 +enum e_skill_inf +{ + INF_ATTACK_SKILL = 0x01, + INF_GROUND_SKILL = 0x02, + INF_SELF_SKILL = 0x04, // Skills casted on self where target is automatically chosen + // 0x08 not assigned + INF_SUPPORT_SKILL = 0x10, + INF_TARGET_TRAP = 0x20, +}; //Constants to identify a skill's nk value (damage properties) //The NK value applies only to non INF_GROUND_SKILL skills //when determining skill castend function to invoke. -#define NK_NO_DAMAGE 0x01 -#define NK_SPLASH (0x02|0x04) // 0x4 = splash & split -#define NK_SPLASHSPLIT 0x04 -#define NK_NO_CARDFIX_ATK 0x08 -#define NK_NO_ELEFIX 0x10 -#define NK_IGNORE_DEF 0x20 -#define NK_IGNORE_FLEE 0x40 -#define NK_NO_CARDFIX_DEF 0x80 +enum e_skill_nk +{ + NK_NO_DAMAGE = 0x01, + NK_SPLASH = 0x02|0x04, // 0x4 = splash & split + NK_SPLASHSPLIT = 0x04, + NK_NO_CARDFIX_ATK = 0x08, + NK_NO_ELEFIX = 0x10, + NK_IGNORE_DEF = 0x20, + NK_IGNORE_FLEE = 0x40, + NK_NO_CARDFIX_DEF = 0x80, +}; //A skill with 3 would be no damage + splash: area of effect. //Constants to identify a skill's inf2 value. -#define INF2_QUEST_SKILL 1 -//NPC skills are those that players can't have in their skill tree. -#define INF2_NPC_SKILL 0x2 -#define INF2_WEDDING_SKILL 0x4 -#define INF2_SPIRIT_SKILL 0x8 -#define INF2_GUILD_SKILL 0x10 -#define INF2_SONG_DANCE 0x20 -#define INF2_ENSEMBLE_SKILL 0x40 -#define INF2_TRAP 0x80 -//Refers to ground placed skills that will target the caster as well (like Grandcross) -#define INF2_TARGET_SELF 0x100 -#define INF2_NO_TARGET_SELF 0x200 -#define INF2_PARTY_ONLY 0x400 -#define INF2_GUILD_ONLY 0x800 -#define INF2_NO_ENEMY 0x1000 +enum e_skill_inf2 +{ + INF2_QUEST_SKILL = 0x0001, + INF2_NPC_SKILL = 0x0002, //NPC skills are those that players can't have in their skill tree. + INF2_WEDDING_SKILL = 0x0004, + INF2_SPIRIT_SKILL = 0x0008, + INF2_GUILD_SKILL = 0x0010, + INF2_SONG_DANCE = 0x0020, + INF2_ENSEMBLE_SKILL = 0x0040, + INF2_TRAP = 0x0080, + INF2_TARGET_SELF = 0x0100, //Refers to ground placed skills that will target the caster as well (like Grandcross) + INF2_NO_TARGET_SELF = 0x0200, + INF2_PARTY_ONLY = 0x0400, + INF2_GUILD_ONLY = 0x0800, + INF2_NO_ENEMY = 0x1000, +}; //Walk intervals at which chase-skills are attempted to be triggered. #define WALK_SKILL_INTERVAL 5 // Flags passed to skill_attack/skill_area_sub -#define SD_LEVEL 0x1000 // skill_attack will send -1 instead of skill level (affects display of some skills) -#define SD_ANIMATION 0x2000 // skill_attack will use '5' instead of the skill's 'type' (this makes skills show an animation) -#define SD_SPLASH 0x4000 // skill_area_sub will count targets in skill_area_temp[2] -#define SD_PREAMBLE 0x8000 // skill_area_sub will transmit a 'magic' damage packet (-30000 dmg) for the first target selected +enum e_skill_display +{ + SD_LEVEL = 0x1000, // skill_attack will send -1 instead of skill level (affects display of some skills) + SD_ANIMATION = 0x2000, // skill_attack will use '5' instead of the skill's 'type' (this makes skills show an animation) + SD_SPLASH = 0x4000, // skill_area_sub will count targets in skill_area_temp[2] + SD_PREAMBLE = 0x8000, // skill_area_sub will transmit a 'magic' damage packet (-30000 dmg) for the first target selected +}; #define MAX_SKILL_ITEM_REQUIRE 10 struct skill_condition { diff --git a/src/map/status.c b/src/map/status.c index e68ebd291..d9a14dc23 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -38,10 +38,13 @@ //Regen related flags. -#define RGN_HP 0x01 -#define RGN_SP 0x02 -#define RGN_SHP 0x04 -#define RGN_SSP 0x08 +enum e_regen +{ + RGN_HP = 0x01, + RGN_SP = 0x02, + RGN_SHP = 0x04, + RGN_SSP = 0x08, +}; static int max_weight_base[CLASS_COUNT]; static int hp_coefficient[CLASS_COUNT]; diff --git a/src/map/status.h b/src/map/status.h index 45eaa5c8d..651b91940 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -915,13 +915,16 @@ enum si_type { }; // JOINTBEAT stackable ailments -#define BREAK_ANKLE 0x01 // MoveSpeed reduced by 50% -#define BREAK_WRIST 0x02 // ASPD reduced by 25% -#define BREAK_KNEE 0x04 // MoveSpeed reduced by 30%, ASPD reduced by 10% -#define BREAK_SHOULDER 0x08 // DEF reduced by 50% -#define BREAK_WAIST 0x10 // DEF reduced by 25%, ATK reduced by 25% -#define BREAK_NECK 0x20 // current attack does 2x damage, inflicts 'bleeding' for 30 seconds -#define BREAK_FLAGS ( BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK ) +enum e_joint_break +{ + BREAK_ANKLE = 0x01, // MoveSpeed reduced by 50% + BREAK_WRIST = 0x02, // ASPD reduced by 25% + BREAK_KNEE = 0x04, // MoveSpeed reduced by 30%, ASPD reduced by 10% + BREAK_SHOULDER = 0x08, // DEF reduced by 50% + BREAK_WAIST = 0x10, // DEF reduced by 25%, ATK reduced by 25% + BREAK_NECK = 0x20, // current attack does 2x damage, inflicts 'bleeding' for 30 seconds + BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK, +}; extern int current_equip_item_index; extern int current_equip_card_id; @@ -929,22 +932,25 @@ extern int current_equip_card_id; extern int percentrefinery[5][MAX_REFINE+1]; //The last slot always has a 0% success chance [Skotlex] //Mode definitions to clear up code reading. [Skotlex] -#define MD_CANMOVE 0x0001 -#define MD_LOOTER 0x0002 -#define MD_AGGRESSIVE 0x0004 -#define MD_ASSIST 0x0008 -#define MD_CASTSENSOR_IDLE 0x0010 -#define MD_BOSS 0x0020 -#define MD_PLANT 0x0040 -#define MD_CANATTACK 0x0080 -#define MD_DETECTOR 0x0100 -#define MD_CASTSENSOR_CHASE 0x0200 -#define MD_CHANGECHASE 0x0400 -#define MD_ANGRY 0x0800 -#define MD_CHANGETARGET_MELEE 0x1000 -#define MD_CHANGETARGET_CHASE 0x2000 -#define MD_TARGETWEAK 0x4000 -#define MD_MASK 0xFFFF +enum e_mode +{ + MD_CANMOVE = 0x0001, + MD_LOOTER = 0x0002, + MD_AGGRESSIVE = 0x0004, + MD_ASSIST = 0x0008, + MD_CASTSENSOR_IDLE = 0x0010, + MD_BOSS = 0x0020, + MD_PLANT = 0x0040, + MD_CANATTACK = 0x0080, + MD_DETECTOR = 0x0100, + MD_CASTSENSOR_CHASE = 0x0200, + MD_CHANGECHASE = 0x0400, + MD_ANGRY = 0x0800, + MD_CHANGETARGET_MELEE = 0x1000, + MD_CHANGETARGET_CHASE = 0x2000, + MD_TARGETWEAK = 0x4000, + MD_MASK = 0xFFFF, +}; //Status change option definitions (options are what makes status changes visible to chars //who were not on your field of sight when it happened) @@ -1026,19 +1032,21 @@ enum { OPTION_DRAGON3 = 0x01000000, OPTION_DRAGON4 = 0x02000000, OPTION_DRAGON5 = 0x04000000, + // compound constants + OPTION_CART = OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5, + OPTION_DRAGON = OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5, + OPTION_MASK = ~OPTION_INVISIBLE, }; -#define OPTION_CART (OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5) -#define OPTION_DRAGON (OPTION_DRAGON1|OPTION_DRAGON2|OPTION_DRAGON3|OPTION_DRAGON4|OPTION_DRAGON5) - -#define OPTION_MASK ~0x40 - //Defines for the manner system [Skotlex] -#define MANNER_NOCHAT 0x01 -#define MANNER_NOSKILL 0x02 -#define MANNER_NOCOMMAND 0x04 -#define MANNER_NOITEM 0x08 -#define MANNER_NOROOM 0x10 +enum manner_flags +{ + MANNER_NOCHAT = 0x01, + MANNER_NOSKILL = 0x02, + MANNER_NOCOMMAND = 0x04, + MANNER_NOITEM = 0x08, + MANNER_NOROOM = 0x10, +}; //Define flags for the status_calc_bl function. [Skotlex] enum scb_flag |