Bläddra i källkod

* Changed enumerating defines into enumerations (related topic:264007).
- Minor fixups on few macros.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14831 54d463be-8e91-2dee-dedb-b68131a5f0ec

ai4rei 14 år sedan
förälder
incheckning
bfbac60c74
9 ändrade filer med 120 tillägg och 93 borttagningar
  1. 3 0
      Changelog-Trunk.txt
  2. 13 14
      src/map/battle.h
  3. 1 1
      src/map/npc.h
  4. 2 2
      src/map/pc.h
  5. 7 3
      src/map/script.c
  6. 3 3
      src/map/skill.c
  7. 43 33
      src/map/skill.h
  8. 7 4
      src/map/status.c
  9. 41 33
      src/map/status.h

+ 3 - 0
Changelog-Trunk.txt

@@ -1,5 +1,8 @@
 Date	Added
 
+2011/05/23
+	* Changed enumerating defines into enumerations (related topic:264007). [Ai4rei]
+	- Minor fixups on few macros.
 2011/05/17
 	* Fixed Super Novices could not be adopted (bugreport:4907, since r12389). [Ai4rei]
 	* Improved error reporting during monster database and spawn data reading. [Ai4rei]

+ 13 - 14
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]
 

+ 1 - 1
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);

+ 2 - 2
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);

+ 7 - 3
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;

+ 3 - 3
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]

+ 43 - 33
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 {

+ 7 - 4
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];

+ 41 - 33
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