summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2015-12-14 21:30:12 +0100
committerHaru <haru@dotalux.com>2015-12-28 18:35:59 +0100
commitb519d163bb4d0fef7deb821ee72ae67519d84d54 (patch)
tree231daabb35a95114e9beaca18fe6c0df606da17e /src/map
parentcf142dc21aafd6bf0a483c87f32c219375ae116a (diff)
downloadhercules-b519d163bb4d0fef7deb821ee72ae67519d84d54.tar.gz
hercules-b519d163bb4d0fef7deb821ee72ae67519d84d54.tar.bz2
hercules-b519d163bb4d0fef7deb821ee72ae67519d84d54.tar.xz
hercules-b519d163bb4d0fef7deb821ee72ae67519d84d54.zip
Added homun_id enum, replaced numeric constants with enum members
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/map')
-rw-r--r--src/map/atcommand.c4
-rw-r--r--src/map/homunculus.c34
-rw-r--r--src/map/homunculus.h30
3 files changed, 53 insertions, 15 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 9ba3994d1..c26daee54 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -6863,8 +6863,8 @@ ACMD(hommutate) {
return false;
}
- if (!*message) {
- homun_id = 6048 + (rnd() % 4);
+ if (*message == '\0') {
+ homun_id = HOMID_EIRA + (rnd() % 4);
} else {
homun_id = atoi(message);
}
diff --git a/src/map/homunculus.c b/src/map/homunculus.c
index 2e74800a3..ac1c4052b 100644
--- a/src/map/homunculus.c
+++ b/src/map/homunculus.c
@@ -73,23 +73,31 @@ struct view_data* homunculus_get_viewdata(int class_) {
enum homun_type homunculus_class2type(int class_) {
switch(class_) {
// Normal Homunculus
- case 6001: case 6005:
- case 6002: case 6006:
- case 6003: case 6007:
- case 6004: case 6008:
+ case HOMID_LIF:
+ case HOMID_AMISTR:
+ case HOMID_FILIR:
+ case HOMID_VANILMIRTH:
+ case HOMID_LIF2:
+ case HOMID_AMISTR2:
+ case HOMID_FILIR2:
+ case HOMID_VANILMIRTH2:
return HT_REG;
// Evolved Homunculus
- case 6009: case 6013:
- case 6010: case 6014:
- case 6011: case 6015:
- case 6012: case 6016:
+ case HOMID_LIF_E:
+ case HOMID_AMISTR_E:
+ case HOMID_FILIR_E:
+ case HOMID_VANILMIRTH_E:
+ case HOMID_LIF2_E:
+ case HOMID_AMISTR2_E:
+ case HOMID_FILIR2_E:
+ case HOMID_VANILMIRTH2_E:
return HT_EVO;
// Homunculus S
- case 6048:
- case 6049:
- case 6050:
- case 6051:
- case 6052:
+ case HOMID_EIRA:
+ case HOMID_BAYERI:
+ case HOMID_SERA:
+ case HOMID_DIETR:
+ case HOMID_ELEANOR:
return HT_S;
default:
return HT_INVALID;
diff --git a/src/map/homunculus.h b/src/map/homunculus.h
index 9582c875c..1712c98a9 100644
--- a/src/map/homunculus.h
+++ b/src/map/homunculus.h
@@ -28,6 +28,36 @@
struct map_session_data;
+/// Homunuculus IDs
+enum homun_id {
+ HOMID_LIF = 6001, ///< Lif
+ HOMID_AMISTR = 6002, ///< Amistr
+ HOMID_FILIR = 6003, ///< Filir
+ HOMID_VANILMIRTH = 6004, ///< Vanilmirth
+ HOMID_LIF2 = 6005, ///< Lif (Alternate)
+ HOMID_AMISTR2 = 6006, ///< Amistr (Alternate)
+ HOMID_FILIR2 = 6007, ///< Filir (Alternate)
+ HOMID_VANILMIRTH2 = 6008, ///< Vanilmirth (Alternate)
+ HOMID_LIF_E = 6009, ///< Lif (Evolved)
+ HOMID_AMISTR_E = 6010, ///< Amistr (Evolved)
+ HOMID_FILIR_E = 6011, ///< Filir (Evolved)
+ HOMID_VANILMIRTH_E = 6012, ///< Vanilmirth (Evolved)
+ HOMID_LIF2_E = 6013, ///< Lif (Alternate, Evolved)
+ HOMID_AMISTR2_E = 6014, ///< Amistr (Alternate, Evolved)
+ HOMID_FILIR2_E = 6015, ///< Filir (Alternate, Evolved)
+ HOMID_VANILMIRTH2_E = 6016, ///< Vanilmirth (Alternate, Evolved)
+
+ HOMID_EIRA = 6048, ///< Eira
+ HOMID_BAYERI = 6049, ///< Bayeri
+ HOMID_SERA = 6050, ///< Sera
+ HOMID_DIETR = 6051, ///< Dietr
+ HOMID_ELEANOR = 6052, ///< Eleanor
+};
+
+#define MAX_HOMUNCULUS_CLASS 52 // [orn] Increased to 60 from 16 to allow new Homun-S.
+#define HM_CLASS_BASE 6001
+#define HM_CLASS_MAX (HM_CLASS_BASE+MAX_HOMUNCULUS_CLASS-1)
+
#define MAX_HOM_SKILL_REQUIRE 5
#define homdb_checkid(id) ((id) >= HM_CLASS_BASE && (id) <= HM_CLASS_MAX)
#define homun_alive(x) ((x) && (x)->homunculus.vaporize == HOM_ST_ACTIVE && (x)->battle_status.hp > 0)