145 lines
7.2 KiB
Go
145 lines
7.2 KiB
Go
package appearances
|
|
|
|
// Hash search constants
|
|
const (
|
|
// Maximum number of iterations to find an entry in hash table
|
|
HashSearchMax = 20
|
|
)
|
|
|
|
// Client version constants for appearance compatibility
|
|
const (
|
|
MinimumClientVersion = 0
|
|
DefaultClientVersion = 283
|
|
)
|
|
|
|
// Appearance type constants from the original EQ2EMu implementation
|
|
// These correspond to different appearance features like hair, skin, clothing, etc.
|
|
const (
|
|
AppearanceSOGAHairFaceHighlightColor = 0 // APPEARANCE_SOGA_HFHC
|
|
AppearanceSOGAHairTypeHighlightColor = 1 // APPEARANCE_SOGA_HTHC
|
|
AppearanceSOGAHairFaceColor = 2 // APPEARANCE_SOGA_HFC
|
|
AppearanceSOGAHairTypeColor = 3 // APPEARANCE_SOGA_HTC
|
|
AppearanceSOGAHairHighlight = 4 // APPEARANCE_SOGA_HH
|
|
AppearanceSOGAHairColor1 = 5 // APPEARANCE_SOGA_HC1
|
|
AppearanceSOGAHairColor2 = 6 // APPEARANCE_SOGA_HC2
|
|
AppearanceSOGASkinColor = 7 // APPEARANCE_SOGA_SC
|
|
AppearanceSOGAEyeColor = 8 // APPEARANCE_SOGA_EC
|
|
AppearanceHairTypeHighlightColor = 9 // APPEARANCE_HTHC
|
|
AppearanceHairFaceHighlightColor = 10 // APPEARANCE_HFHC
|
|
AppearanceHairTypeColor = 11 // APPEARANCE_HTC
|
|
AppearanceHairFaceColor = 12 // APPEARANCE_HFC
|
|
AppearanceHairHighlight = 13 // APPEARANCE_HH
|
|
AppearanceHairColor1 = 14 // APPEARANCE_HC1
|
|
AppearanceHairColor2 = 15 // APPEARANCE_HC2
|
|
AppearanceWingColor1 = 16 // APPEARANCE_WC1
|
|
AppearanceWingColor2 = 17 // APPEARANCE_WC2
|
|
AppearanceSkinColor = 18 // APPEARANCE_SC
|
|
AppearanceEyeColor = 19 // APPEARANCE_EC
|
|
AppearanceShirt = 20 // APPEARANCE_SHIRT
|
|
AppearanceUnknownClothingColor = 21 // APPEARANCE_UCC
|
|
AppearancePants = 22 // APPEARANCE_PANTS
|
|
AppearanceUnknownLegColor = 23 // APPEARANCE_ULC
|
|
AppearanceUnknown9 = 24 // APPEARANCE_U9
|
|
AppearanceBodySize = 25 // APPEARANCE_BODY_SIZE
|
|
AppearanceSOGAWingColor1 = 26 // APPEARANCE_SOGA_WC1
|
|
AppearanceSOGAWingColor2 = 27 // APPEARANCE_SOGA_WC2
|
|
AppearanceSOGAShirt = 28 // APPEARANCE_SOGA_SHIRT
|
|
AppearanceSOGAUnknownClothingColor = 29 // APPEARANCE_SOGA_UCC
|
|
AppearanceSOGAPants = 30 // APPEARANCE_SOGA_PANTS
|
|
AppearanceSOGAUnknownLegColor = 31 // APPEARANCE_SOGA_ULC
|
|
AppearanceSOGAUnknown13 = 32 // APPEARANCE_SOGA_U13
|
|
AppearanceSOGAEyebrowType = 33 // APPEARANCE_SOGA_EBT
|
|
AppearanceSOGACheekType = 34 // APPEARANCE_SOGA_CHEEKT
|
|
AppearanceSOGANoseType = 35 // APPEARANCE_SOGA_NT
|
|
AppearanceSOGAChinType = 36 // APPEARANCE_SOGA_CHINT
|
|
AppearanceSOGALipType = 37 // APPEARANCE_SOGA_LT
|
|
AppearanceSOGAEarType = 38 // APPEARANCE_SOGA_EART
|
|
AppearanceSOGAEyeType = 39 // APPEARANCE_SOGA_EYET
|
|
AppearanceEyebrowType = 40 // APPEARANCE_EBT
|
|
AppearanceCheekType = 41 // APPEARANCE_CHEEKT
|
|
AppearanceNoseType = 42 // APPEARANCE_NT
|
|
AppearanceChinType = 43 // APPEARANCE_CHINT
|
|
AppearanceEarType = 44 // APPEARANCE_EART
|
|
AppearanceEyeType = 45 // APPEARANCE_EYET
|
|
AppearanceLipType = 46 // APPEARANCE_LT
|
|
AppearanceBodyAge = 47 // APPEARANCE_BODY_AGE
|
|
AppearanceModelColor = 48 // APPEARANCE_MC
|
|
AppearanceSOGAModelColor = 49 // APPEARANCE_SMC
|
|
AppearanceSOGABodySize = 50 // APPEARANCE_SBS
|
|
AppearanceSOGABodyAge = 51 // APPEARANCE_SBA
|
|
)
|
|
|
|
// AppearanceTypeNames maps appearance type constants to human-readable names
|
|
var AppearanceTypeNames = map[int8]string{
|
|
AppearanceSOGAHairFaceHighlightColor: "soga_hair_face_highlight_color",
|
|
AppearanceSOGAHairTypeHighlightColor: "soga_hair_type_highlight_color",
|
|
AppearanceSOGAHairFaceColor: "soga_hair_face_color",
|
|
AppearanceSOGAHairTypeColor: "soga_hair_type_color",
|
|
AppearanceSOGAHairHighlight: "soga_hair_highlight",
|
|
AppearanceSOGAHairColor1: "soga_hair_color1",
|
|
AppearanceSOGAHairColor2: "soga_hair_color2",
|
|
AppearanceSOGASkinColor: "soga_skin_color",
|
|
AppearanceSOGAEyeColor: "soga_eye_color",
|
|
AppearanceHairTypeHighlightColor: "hair_type_highlight_color",
|
|
AppearanceHairFaceHighlightColor: "hair_face_highlight_color",
|
|
AppearanceHairTypeColor: "hair_type_color",
|
|
AppearanceHairFaceColor: "hair_face_color",
|
|
AppearanceHairHighlight: "hair_highlight",
|
|
AppearanceHairColor1: "hair_color1",
|
|
AppearanceHairColor2: "hair_color2",
|
|
AppearanceWingColor1: "wing_color1",
|
|
AppearanceWingColor2: "wing_color2",
|
|
AppearanceSkinColor: "skin_color",
|
|
AppearanceEyeColor: "eye_color",
|
|
AppearanceShirt: "shirt_color",
|
|
AppearanceUnknownClothingColor: "unknown_chest_color",
|
|
AppearancePants: "pants_color",
|
|
AppearanceUnknownLegColor: "unknown_leg_color",
|
|
AppearanceUnknown9: "unknown9",
|
|
AppearanceBodySize: "body_size",
|
|
AppearanceSOGAWingColor1: "soga_wing_color1",
|
|
AppearanceSOGAWingColor2: "soga_wing_color2",
|
|
AppearanceSOGAShirt: "soga_shirt_color",
|
|
AppearanceSOGAUnknownClothingColor: "soga_unknown_chest_color",
|
|
AppearanceSOGAPants: "soga_pants_color",
|
|
AppearanceSOGAUnknownLegColor: "soga_unknown_leg_color",
|
|
AppearanceSOGAUnknown13: "soga_unknown13",
|
|
AppearanceSOGAEyebrowType: "soga_eye_brow_type",
|
|
AppearanceSOGACheekType: "soga_cheek_type",
|
|
AppearanceSOGANoseType: "soga_nose_type",
|
|
AppearanceSOGAChinType: "soga_chin_type",
|
|
AppearanceSOGALipType: "soga_lip_type",
|
|
AppearanceSOGAEarType: "soga_ear_type",
|
|
AppearanceSOGAEyeType: "soga_eye_type",
|
|
AppearanceEyebrowType: "eye_brow_type",
|
|
AppearanceCheekType: "cheek_type",
|
|
AppearanceNoseType: "nose_type",
|
|
AppearanceChinType: "chin_type",
|
|
AppearanceEarType: "ear_type",
|
|
AppearanceEyeType: "eye_type",
|
|
AppearanceLipType: "lip_type",
|
|
AppearanceBodyAge: "body_age",
|
|
AppearanceModelColor: "model_color",
|
|
AppearanceSOGAModelColor: "soga_model_color",
|
|
AppearanceSOGABodySize: "soga_body_size",
|
|
AppearanceSOGABodyAge: "soga_body_age",
|
|
}
|
|
|
|
// GetAppearanceType returns the appearance type constant for a given type name
|
|
func GetAppearanceType(typeName string) int8 {
|
|
for typeConst, name := range AppearanceTypeNames {
|
|
if name == typeName {
|
|
return typeConst
|
|
}
|
|
}
|
|
return -1 // Unknown type
|
|
}
|
|
|
|
// GetAppearanceTypeName returns the type name for a given appearance type constant
|
|
func GetAppearanceTypeName(typeConst int8) string {
|
|
if name, exists := AppearanceTypeNames[typeConst]; exists {
|
|
return name
|
|
}
|
|
return "unknown"
|
|
}
|