diff options
-rw-r--r-- | src/common/mmo.h | 3 | ||||
-rw-r--r-- | src/map/atcommand.c | 4 | ||||
-rw-r--r-- | src/map/homunculus.c | 34 | ||||
-rw-r--r-- | src/map/homunculus.h | 30 |
4 files changed, 53 insertions, 18 deletions
diff --git a/src/common/mmo.h b/src/common/mmo.h index 8444a8d67..53ef322c2 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -182,9 +182,6 @@ // Base Homun skill. #define HM_SKILLBASE 8001 #define MAX_HOMUNSKILL 43 -#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) // Mail System #define MAIL_MAX_INBOX 30 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) |