diff options
author | Haru <haru@dotalux.com> | 2015-12-14 21:30:12 +0100 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2015-12-28 18:35:59 +0100 |
commit | b519d163bb4d0fef7deb821ee72ae67519d84d54 (patch) | |
tree | 231daabb35a95114e9beaca18fe6c0df606da17e /src/map | |
parent | cf142dc21aafd6bf0a483c87f32c219375ae116a (diff) | |
download | hercules-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.c | 4 | ||||
-rw-r--r-- | src/map/homunculus.c | 34 | ||||
-rw-r--r-- | src/map/homunculus.h | 30 |
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) |