diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index 0cc5fd810d..0b9ea42895 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs @@ -31,13 +31,15 @@ using System.Collections.Generic; using System.Runtime.Serialization; using System.Security.Permissions; using OpenMetaverse; +using log4net; +using System.Reflection; namespace OpenSim.Framework { public class AvatarAppearance { -// private static readonly ILog m_log -// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog m_log + = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // these are guessed at by the list here - // http://wiki.secondlife.com/wiki/Avatar_Appearance. We'll @@ -69,6 +71,8 @@ namespace OpenSim.Framework public readonly static int VISUALPARAM_COUNT = 218; + + protected UUID m_owner; public virtual UUID Owner @@ -282,6 +286,65 @@ namespace OpenSim.Framework get { return m_hipOffset; } } + //Builds the VisualParam Enum using LIBOMV's Visual Param NameValues + /* + public void BuildVisualParamEnum() + { + Dictionary IndexedParams = new Dictionary(); + int vpIndex = 0; + IndexedParams = new Dictionary(); + + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + + sb.Append("public enum VPElement: int\n"); + sb.Append("{\n"); + foreach (KeyValuePair kvp in OpenMetaverse.VisualParams.Params) + { + VisualParam vp = kvp.Value; + + // Only Group-0 parameters are sent in AgentSetAppearance packets + if (kvp.Value.Group == 0) + { + + if (!IndexedParams.ContainsKey(vp.Name)) + { + + if (vp.Label.Length > 0 || vp.LabelMin.Length > 0 || vp.LabelMax.Length > 0) + { + + sb.Append("/// \n"); + if (vp.LabelMin.Length > 0 && vp.LabelMax.Length > 0) + sb.Append(string.Format("/// {0} - {1} 0--+255 {2}\n", vp.Label, vp.LabelMin, + vp.LabelMax)); + + else + sb.Append(string.Format("/// {0}\n", vp.Label)); + + sb.Append("/// \n"); + } + sb.Append(string.Format(" {0}_{1} = {2}", vp.Wearable.ToUpper(), vp.Name.ToUpper().Replace(" ", "_"),vpIndex)); + + IndexedParams.Add(vp.Name, vpIndex++); + } + else + { + sb.Append(string.Format(" {0}_{1}_{2} = {2}", vp.Wearable.ToUpper(), vp.Name.ToUpper().Replace(" ", "_"), vpIndex)); + vpIndex++; + //int i = 0; + } + } + if (vpIndex < 217) + sb.Append(",\n"); + else + sb.Append("\n"); + + } + sb.Append("}\n"); + + } + */ + + public AvatarAppearance() : this(UUID.Zero) { @@ -297,13 +360,16 @@ namespace OpenSim.Framework } m_serial = 0; m_owner = owner; + //BuildVisualParamEnum() m_visualparams = new byte[VISUALPARAM_COUNT]; // This sets Visual Params with *less* weirder values then default. Instead of a ugly alien, it looks like a fat scientist SetDefaultParams(m_visualparams); SetDefaultWearables(); m_texture = GetDefaultTexture(); + } + public AvatarAppearance(UUID avatarID, AvatarWearable[] wearables, byte[] visualParams) { m_owner = avatarID; @@ -324,17 +390,20 @@ namespace OpenSim.Framework m_texture = textureEnt; m_visualparams = visualParam.ToArray(); m_avatarHeight = 1.23077f // Shortest possible avatar height - + 0.516945f * (float)m_visualparams[25] / 255.0f // Body height - + 0.072514f * (float)m_visualparams[120] / 255.0f // Head size - + 0.3836f * (float)m_visualparams[125] / 255.0f // Leg length - + 0.08f * (float)m_visualparams[77] / 255.0f // Shoe heel height - + 0.07f * (float)m_visualparams[78] / 255.0f // Shoe platform height - + 0.076f * (float)m_visualparams[148] / 255.0f; // Neck length + + 0.516945f * (float)m_visualparams[(int)VPElement.SHAPE_HEIGHT] / 255.0f // Body height + + 0.072514f * (float)m_visualparams[(int)VPElement.SHAPE_HEAD_SIZE] / 255.0f // Head size + + 0.3836f * (float)m_visualparams[(int)VPElement.SHAPE_LEG_LENGTH] / 255.0f // Leg length + + 0.08f * (float)m_visualparams[(int)VPElement.SHOES_PLATFORM_HEIGHT] / 255.0f // Shoe platform height + + 0.07f * (float)m_visualparams[(int)VPElement.SHOES_HEEL_HEIGHT] / 255.0f // Shoe heel height + + 0.076f * (float)m_visualparams[(int)VPElement.SHAPE_NECK_LENGTH] / 255.0f; // Neck length m_hipOffset = (0.615385f // Half of avatar - + 0.08f * (float)m_visualparams[77] / 255.0f // Shoe heel height - + 0.07f * (float)m_visualparams[78] / 255.0f // Shoe platform height - + 0.3836f * (float)m_visualparams[125] / 255.0f // Leg length + + 0.08f * (float)m_visualparams[(int)VPElement.SHOES_PLATFORM_HEIGHT] / 255.0f // Shoe platform height + + 0.07f * (float)m_visualparams[(int)VPElement.SHOES_HEEL_HEIGHT] / 255.0f // Shoe heel height + + 0.3836f * (float)m_visualparams[(int)VPElement.SHAPE_LEG_LENGTH] / 255.0f // Leg length - m_avatarHeight / 2) * 0.3f - 0.04f; + + + //System.Console.WriteLine(">>>>>>> [APPEARANCE]: Height {0} Hip offset {1}" + m_avatarHeight + " " + m_hipOffset); //m_log.Debug("------------- Set Appearance Texture ---------------"); //Primitive.TextureEntryFace[] faces = Texture.FaceTextures; @@ -633,5 +702,767 @@ namespace OpenSim.Framework } } } + /// + /// Viewer Params Array Element for AgentSetAppearance + /// Generated from LibOMV's Visual Params list + /// + public enum VPElement : int + { + /// + /// Brow Size - Small 0--+255 Large + /// + SHAPE_BIG_BROW = 0, + /// + /// Nose Size - Small 0--+255 Large + /// + SHAPE_NOSE_BIG_OUT = 1, + /// + /// Nostril Width - Narrow 0--+255 Broad + /// + SHAPE_BROAD_NOSTRILS = 2, + /// + /// Chin Cleft - Round 0--+255 Cleft + /// + SHAPE_CLEFT_CHIN = 3, + /// + /// Nose Tip Shape - Pointy 0--+255 Bulbous + /// + SHAPE_BULBOUS_NOSE_TIP = 4, + /// + /// Chin Angle - Chin Out 0--+255 Chin In + /// + SHAPE_WEAK_CHIN = 5, + /// + /// Chin-Neck - Tight Chin 0--+255 Double Chin + /// + SHAPE_DOUBLE_CHIN = 6, + /// + /// Lower Cheeks - Well-Fed 0--+255 Sunken + /// + SHAPE_SUNKEN_CHEEKS = 7, + /// + /// Upper Bridge - Low 0--+255 High + /// + SHAPE_NOBLE_NOSE_BRIDGE = 8, + /// + /// - Less 0--+255 More + /// + SHAPE_JOWLS = 9, + /// + /// Upper Chin Cleft - Round 0--+255 Cleft + /// + SHAPE_CLEFT_CHIN_UPPER = 10, + /// + /// Cheek Bones - Low 0--+255 High + /// + SHAPE_HIGH_CHEEK_BONES = 11, + /// + /// Ear Angle - In 0--+255 Out + /// + SHAPE_EARS_OUT = 12, + /// + /// Eyebrow Points - Smooth 0--+255 Pointy + /// + HAIR_POINTY_EYEBROWS = 13, + /// + /// Jaw Shape - Pointy 0--+255 Square + /// + SHAPE_SQUARE_JAW = 14, + /// + /// Upper Cheeks - Thin 0--+255 Puffy + /// + SHAPE_PUFFY_UPPER_CHEEKS = 15, + /// + /// Nose Tip Angle - Downturned 0--+255 Upturned + /// + SHAPE_UPTURNED_NOSE_TIP = 16, + /// + /// Nose Thickness - Thin Nose 0--+255 Bulbous Nose + /// + SHAPE_BULBOUS_NOSE = 17, + /// + /// Upper Eyelid Fold - Uncreased 0--+255 Creased + /// + SHAPE_UPPER_EYELID_FOLD = 18, + /// + /// Attached Earlobes - Unattached 0--+255 Attached + /// + SHAPE_ATTACHED_EARLOBES = 19, + /// + /// Eye Bags - Smooth 0--+255 Baggy + /// + SHAPE_BAGGY_EYES = 20, + /// + /// Eye Opening - Narrow 0--+255 Wide + /// + SHAPE_WIDE_EYES = 21, + /// + /// Lip Cleft - Narrow 0--+255 Wide + /// + SHAPE_WIDE_LIP_CLEFT = 22, + /// + /// Bridge Width - Narrow 0--+255 Wide + /// + SHAPE_WIDE_NOSE_BRIDGE = 23, + /// + /// Eyebrow Arc - Flat 0--+255 Arced + /// + HAIR_ARCED_EYEBROWS = 24, + /// + /// Height - Short 0--+255 Tall + /// + SHAPE_HEIGHT = 25, + /// + /// Body Thickness - Body Thin 0--+255 Body Thick + /// + SHAPE_THICKNESS = 26, + /// + /// Ear Size - Small 0--+255 Large + /// + SHAPE_BIG_EARS = 27, + /// + /// Shoulders - Narrow 0--+255 Broad + /// + SHAPE_SHOULDERS = 28, + /// + /// Hip Width - Narrow 0--+255 Wide + /// + SHAPE_HIP_WIDTH = 29, + /// + /// - Short Torso 0--+255 Long Torso + /// + SHAPE_TORSO_LENGTH = 30, + SHAPE_MALE = 31, + /// + /// - Short 0--+255 Long + /// + GLOVES_GLOVE_LENGTH = 32, + /// + /// - Darker 0--+255 Lighter + /// + EYES_EYE_LIGHTNESS = 33, + /// + /// - Natural 0--+255 Unnatural + /// + EYES_EYE_COLOR = 34, + /// + /// - Small 0--+255 Large + /// + SHAPE_BREAST_SIZE = 35, + /// + /// - None 0--+255 Wild + /// + SKIN_RAINBOW_COLOR = 36, + /// + /// Ruddiness - Pale 0--+255 Ruddy + /// + SKIN_RED_SKIN = 37, + /// + /// - Light 0--+255 Dark + /// + SKIN_PIGMENT = 38, + HAIR_RAINBOW_COLOR_39 = 39, + /// + /// - No Red 0--+255 Very Red + /// + HAIR_RED_HAIR = 40, + /// + /// - Black 0--+255 Blonde + /// + HAIR_BLONDE_HAIR = 41, + /// + /// - No White 0--+255 All White + /// + HAIR_WHITE_HAIR = 42, + /// + /// - Less Rosy 0--+255 More Rosy + /// + SKIN_ROSY_COMPLEXION = 43, + /// + /// - Darker 0--+255 Pinker + /// + SKIN_LIP_PINKNESS = 44, + /// + /// - Thin Eyebrows 0--+255 Bushy Eyebrows + /// + HAIR_EYEBROW_SIZE = 45, + /// + /// - Short 0--+255 Long + /// + HAIR_FRONT_FRINGE = 46, + /// + /// - Short 0--+255 Long + /// + HAIR_SIDE_FRINGE = 47, + /// + /// - Short 0--+255 Long + /// + HAIR_BACK_FRINGE = 48, + /// + /// - Short 0--+255 Long + /// + HAIR_HAIR_FRONT = 49, + /// + /// - Short 0--+255 Long + /// + HAIR_HAIR_SIDES = 50, + /// + /// - Short 0--+255 Long + /// + HAIR_HAIR_BACK = 51, + /// + /// - Sweep Forward 0--+255 Sweep Back + /// + HAIR_HAIR_SWEEP = 52, + /// + /// - Left 0--+255 Right + /// + HAIR_HAIR_TILT = 53, + /// + /// Middle Part - No Part 0--+255 Part + /// + HAIR_HAIR_PART_MIDDLE = 54, + /// + /// Right Part - No Part 0--+255 Part + /// + HAIR_HAIR_PART_RIGHT = 55, + /// + /// Left Part - No Part 0--+255 Part + /// + HAIR_HAIR_PART_LEFT = 56, + /// + /// Full Hair Sides - Mowhawk 0--+255 Full Sides + /// + HAIR_HAIR_SIDES_FULL = 57, + /// + /// - Less 0--+255 More + /// + SKIN_BODY_DEFINITION = 58, + /// + /// Lip Width - Narrow Lips 0--+255 Wide Lips + /// + SHAPE_LIP_WIDTH = 59, + /// + /// - Small 0--+255 Big + /// + SHAPE_BELLY_SIZE = 60, + /// + /// - Less 0--+255 More + /// + SKIN_FACIAL_DEFINITION = 61, + /// + /// - Less 0--+255 More + /// + SKIN_WRINKLES = 62, + /// + /// - Less 0--+255 More + /// + SKIN_FRECKLES = 63, + /// + /// - Short Sideburns 0--+255 Mutton Chops + /// + HAIR_SIDEBURNS = 64, + /// + /// - Chaplin 0--+255 Handlebars + /// + HAIR_MOUSTACHE = 65, + /// + /// - Less soul 0--+255 More soul + /// + HAIR_SOULPATCH = 66, + /// + /// - Less Curtains 0--+255 More Curtains + /// + HAIR_CHIN_CURTAINS = 67, + /// + /// Rumpled Hair - Smooth Hair 0--+255 Rumpled Hair + /// + HAIR_HAIR_RUMPLED = 68, + /// + /// Big Hair Front - Less 0--+255 More + /// + HAIR_HAIR_BIG_FRONT = 69, + /// + /// Big Hair Top - Less 0--+255 More + /// + HAIR_HAIR_BIG_TOP = 70, + /// + /// Big Hair Back - Less 0--+255 More + /// + HAIR_HAIR_BIG_BACK = 71, + /// + /// Spiked Hair - No Spikes 0--+255 Big Spikes + /// + HAIR_HAIR_SPIKED = 72, + /// + /// Chin Depth - Shallow 0--+255 Deep + /// + SHAPE_DEEP_CHIN = 73, + /// + /// Part Bangs - No Part 0--+255 Part Bangs + /// + HAIR_BANGS_PART_MIDDLE = 74, + /// + /// Head Shape - More Square 0--+255 More Round + /// + SHAPE_HEAD_SHAPE = 75, + /// + /// Eye Spacing - Close Set Eyes 0--+255 Far Set Eyes + /// + SHAPE_EYE_SPACING = 76, + /// + /// - Low Heels 0--+255 High Heels + /// + SHOES_HEEL_HEIGHT = 77, + /// + /// - Low Platforms 0--+255 High Platforms + /// + SHOES_PLATFORM_HEIGHT = 78, + /// + /// - Thin Lips 0--+255 Fat Lips + /// + SHAPE_LIP_THICKNESS = 79, + /// + /// Mouth Position - High 0--+255 Low + /// + SHAPE_MOUTH_HEIGHT = 80, + /// + /// Breast Buoyancy - Less Gravity 0--+255 More Gravity + /// + SHAPE_BREAST_GRAVITY = 81, + /// + /// Platform Width - Narrow 0--+255 Wide + /// + SHOES_SHOE_PLATFORM_WIDTH = 82, + /// + /// - Pointy Heels 0--+255 Thick Heels + /// + SHOES_HEEL_SHAPE = 83, + /// + /// - Pointy 0--+255 Square + /// + SHOES_TOE_SHAPE = 84, + /// + /// Foot Size - Small 0--+255 Big + /// + SHAPE_FOOT_SIZE = 85, + /// + /// Nose Width - Narrow 0--+255 Wide + /// + SHAPE_WIDE_NOSE = 86, + /// + /// Eyelash Length - Short 0--+255 Long + /// + SHAPE_EYELASHES_LONG = 87, + /// + /// - Short 0--+255 Long + /// + UNDERSHIRT_SLEEVE_LENGTH = 88, + /// + /// - Short 0--+255 Long + /// + UNDERSHIRT_BOTTOM = 89, + /// + /// - Low 0--+255 High + /// + UNDERSHIRT_COLLAR_FRONT = 90, + JACKET_SLEEVE_LENGTH_91 = 91, + JACKET_COLLAR_FRONT_92 = 92, + /// + /// Jacket Length - Short 0--+255 Long + /// + JACKET_BOTTOM_LENGTH_LOWER = 93, + /// + /// Open Front - Open 0--+255 Closed + /// + JACKET_OPEN_JACKET = 94, + /// + /// - Short 0--+255 Tall + /// + SHOES_SHOE_HEIGHT = 95, + /// + /// - Short 0--+255 Long + /// + SOCKS_SOCKS_LENGTH = 96, + /// + /// - Short 0--+255 Long + /// + UNDERPANTS_PANTS_LENGTH = 97, + /// + /// - Low 0--+255 High + /// + UNDERPANTS_PANTS_WAIST = 98, + /// + /// Cuff Flare - Tight Cuffs 0--+255 Flared Cuffs + /// + PANTS_LEG_PANTFLAIR = 99, + /// + /// - More Vertical 0--+255 More Sloped + /// + SHAPE_FOREHEAD_ANGLE = 100, + /// + /// - Less Body Fat 0--+255 More Body Fat + /// + SHAPE_BODY_FAT = 101, + /// + /// Pants Crotch - High and Tight 0--+255 Low and Loose + /// + PANTS_LOW_CROTCH = 102, + /// + /// Egg Head - Chin Heavy 0--+255 Forehead Heavy + /// + SHAPE_EGG_HEAD = 103, + /// + /// Head Stretch - Squash Head 0--+255 Stretch Head + /// + SHAPE_SQUASH_STRETCH_HEAD = 104, + /// + /// Torso Muscles - Less Muscular 0--+255 More Muscular + /// + SHAPE_TORSO_MUSCLES = 105, + /// + /// Outer Eye Corner - Corner Down 0--+255 Corner Up + /// + SHAPE_EYELID_CORNER_UP = 106, + /// + /// - Less Muscular 0--+255 More Muscular + /// + SHAPE_LEG_MUSCLES = 107, + /// + /// Lip Fullness - Less Full 0--+255 More Full + /// + SHAPE_TALL_LIPS = 108, + /// + /// Toe Thickness - Flat Toe 0--+255 Thick Toe + /// + SHOES_SHOE_TOE_THICK = 109, + /// + /// Crooked Nose - Nose Left 0--+255 Nose Right + /// + SHAPE_CROOKED_NOSE = 110, + /// + /// - Corner Down 0--+255 Corner Up + /// + SHAPE_MOUTH_CORNER = 111, + /// + /// - Shear Right Up 0--+255 Shear Left Up + /// + SHAPE_FACE_SHEAR = 112, + /// + /// Shift Mouth - Shift Left 0--+255 Shift Right + /// + SHAPE_SHIFT_MOUTH = 113, + /// + /// Eye Pop - Pop Right Eye 0--+255 Pop Left Eye + /// + SHAPE_POP_EYE = 114, + /// + /// Jaw Jut - Overbite 0--+255 Underbite + /// + SHAPE_JAW_JUT = 115, + /// + /// Shear Back - Full Back 0--+255 Sheared Back + /// + HAIR_HAIR_SHEAR_BACK = 116, + /// + /// - Small Hands 0--+255 Large Hands + /// + SHAPE_HAND_SIZE = 117, + /// + /// Love Handles - Less Love 0--+255 More Love + /// + SHAPE_LOVE_HANDLES = 118, + SHAPE_TORSO_MUSCLES_119 = 119, + /// + /// Head Size - Small Head 0--+255 Big Head + /// + SHAPE_HEAD_SIZE = 120, + /// + /// - Skinny Neck 0--+255 Thick Neck + /// + SHAPE_NECK_THICKNESS = 121, + /// + /// Breast Cleavage - Separate 0--+255 Join + /// + SHAPE_BREAST_FEMALE_CLEAVAGE = 122, + /// + /// Pectorals - Big Pectorals 0--+255 Sunken Chest + /// + SHAPE_CHEST_MALE_NO_PECS = 123, + /// + /// Eye Size - Beady Eyes 0--+255 Anime Eyes + /// + SHAPE_EYE_SIZE = 124, + /// + /// - Short Legs 0--+255 Long Legs + /// + SHAPE_LEG_LENGTH = 125, + /// + /// - Short Arms 0--+255 Long arms + /// + SHAPE_ARM_LENGTH = 126, + /// + /// - Pink 0--+255 Black + /// + SKIN_LIPSTICK_COLOR = 127, + /// + /// - No Lipstick 0--+255 More Lipstick + /// + SKIN_LIPSTICK = 128, + /// + /// - No Lipgloss 0--+255 Glossy + /// + SKIN_LIPGLOSS = 129, + /// + /// - No Eyeliner 0--+255 Full Eyeliner + /// + SKIN_EYELINER = 130, + /// + /// - No Blush 0--+255 More Blush + /// + SKIN_BLUSH = 131, + /// + /// - Pink 0--+255 Orange + /// + SKIN_BLUSH_COLOR = 132, + /// + /// - Clear 0--+255 Opaque + /// + SKIN_OUT_SHDW_OPACITY = 133, + /// + /// - No Eyeshadow 0--+255 More Eyeshadow + /// + SKIN_OUTER_SHADOW = 134, + /// + /// - Light 0--+255 Dark + /// + SKIN_OUT_SHDW_COLOR = 135, + /// + /// - No Eyeshadow 0--+255 More Eyeshadow + /// + SKIN_INNER_SHADOW = 136, + /// + /// - No Polish 0--+255 Painted Nails + /// + SKIN_NAIL_POLISH = 137, + /// + /// - Clear 0--+255 Opaque + /// + SKIN_BLUSH_OPACITY = 138, + /// + /// - Light 0--+255 Dark + /// + SKIN_IN_SHDW_COLOR = 139, + /// + /// - Clear 0--+255 Opaque + /// + SKIN_IN_SHDW_OPACITY = 140, + /// + /// - Dark Green 0--+255 Black + /// + SKIN_EYELINER_COLOR = 141, + /// + /// - Pink 0--+255 Black + /// + SKIN_NAIL_POLISH_COLOR = 142, + /// + /// - Sparse 0--+255 Dense + /// + HAIR_EYEBROW_DENSITY = 143, + /// + /// - 5 O'Clock Shadow 0--+255 Bushy Hair + /// + HAIR_HAIR_THICKNESS = 144, + /// + /// Saddle Bags - Less Saddle 0--+255 More Saddle + /// + SHAPE_SADDLEBAGS = 145, + /// + /// Taper Back - Wide Back 0--+255 Narrow Back + /// + HAIR_HAIR_TAPER_BACK = 146, + /// + /// Taper Front - Wide Front 0--+255 Narrow Front + /// + HAIR_HAIR_TAPER_FRONT = 147, + /// + /// - Short Neck 0--+255 Long Neck + /// + SHAPE_NECK_LENGTH = 148, + /// + /// Eyebrow Height - Higher 0--+255 Lower + /// + HAIR_LOWER_EYEBROWS = 149, + /// + /// Lower Bridge - Low 0--+255 High + /// + SHAPE_LOWER_BRIDGE_NOSE = 150, + /// + /// Nostril Division - High 0--+255 Low + /// + SHAPE_LOW_SEPTUM_NOSE = 151, + /// + /// Jaw Angle - Low Jaw 0--+255 High Jaw + /// + SHAPE_JAW_ANGLE = 152, + /// + /// Shear Front - Full Front 0--+255 Sheared Front + /// + HAIR_HAIR_SHEAR_FRONT = 153, + /// + /// - Less Volume 0--+255 More Volume + /// + HAIR_HAIR_VOLUME = 154, + /// + /// Lip Cleft Depth - Shallow 0--+255 Deep + /// + SHAPE_LIP_CLEFT_DEEP = 155, + /// + /// Puffy Eyelids - Flat 0--+255 Puffy + /// + SHAPE_PUFFY_LOWER_LIDS = 156, + /// + /// - Sunken Eyes 0--+255 Bugged Eyes + /// + SHAPE_EYE_DEPTH = 157, + /// + /// - Flat Head 0--+255 Long Head + /// + SHAPE_HEAD_LENGTH = 158, + /// + /// - Less Freckles 0--+255 More Freckles + /// + SKIN_BODY_FRECKLES = 159, + /// + /// - Low 0--+255 High + /// + UNDERSHIRT_COLLAR_BACK = 160, + JACKET_COLLAR_BACK_161 = 161, + SHIRT_COLLAR_BACK_162 = 162, + /// + /// - Short Pigtails 0--+255 Long Pigtails + /// + HAIR_PIGTAILS = 163, + /// + /// - Short Ponytail 0--+255 Long Ponytail + /// + HAIR_PONYTAIL = 164, + /// + /// Butt Size - Flat Butt 0--+255 Big Butt + /// + SHAPE_BUTT_SIZE = 165, + /// + /// Ear Tips - Flat 0--+255 Pointy + /// + SHAPE_POINTY_EARS = 166, + /// + /// Lip Ratio - More Upper Lip 0--+255 More Lower Lip + /// + SHAPE_LIP_RATIO = 167, + SHIRT_SLEEVE_LENGTH_168 = 168, + /// + /// - Short 0--+255 Long + /// + SHIRT_SHIRT_BOTTOM = 169, + SHIRT_COLLAR_FRONT_170 = 170, + SHIRT_SHIRT_RED = 171, + SHIRT_SHIRT_GREEN = 172, + SHIRT_SHIRT_BLUE = 173, + PANTS_PANTS_RED = 174, + PANTS_PANTS_GREEN = 175, + PANTS_PANTS_BLUE = 176, + SHOES_SHOES_RED = 177, + SHOES_SHOES_GREEN = 178, + /// + /// - Low 0--+255 High + /// + PANTS_WAIST_HEIGHT = 179, + PANTS_PANTS_LENGTH_180 = 180, + /// + /// Pants Fit - Tight Pants 0--+255 Loose Pants + /// + PANTS_LOOSE_LOWER_CLOTHING = 181, + SHOES_SHOES_BLUE = 182, + SOCKS_SOCKS_RED = 183, + SOCKS_SOCKS_GREEN = 184, + SOCKS_SOCKS_BLUE = 185, + UNDERSHIRT_UNDERSHIRT_RED = 186, + UNDERSHIRT_UNDERSHIRT_GREEN = 187, + UNDERSHIRT_UNDERSHIRT_BLUE = 188, + UNDERPANTS_UNDERPANTS_RED = 189, + UNDERPANTS_UNDERPANTS_GREEN = 190, + UNDERPANTS_UNDERPANTS_BLUE = 191, + GLOVES_GLOVES_RED = 192, + /// + /// Shirt Fit - Tight Shirt 0--+255 Loose Shirt + /// + SHIRT_LOOSE_UPPER_CLOTHING = 193, + GLOVES_GLOVES_GREEN = 194, + GLOVES_GLOVES_BLUE = 195, + JACKET_JACKET_RED = 196, + JACKET_JACKET_GREEN = 197, + JACKET_JACKET_BLUE = 198, + /// + /// Sleeve Looseness - Tight Sleeves 0--+255 Loose Sleeves + /// + SHIRT_SHIRTSLEEVE_FLAIR = 199, + /// + /// Knee Angle - Knock Kneed 0--+255 Bow Legged + /// + SHAPE_BOWED_LEGS = 200, + /// + /// - Short hips 0--+255 Long Hips + /// + SHAPE_HIP_LENGTH = 201, + /// + /// - Fingerless 0--+255 Fingers + /// + GLOVES_GLOVE_FINGERS = 202, + /// + /// bustle skirt - no bustle 0--+255 more bustle + /// + SKIRT_SKIRT_BUSTLE = 203, + /// + /// - Short 0--+255 Long + /// + SKIRT_SKIRT_LENGTH = 204, + /// + /// - Open Front 0--+255 Closed Front + /// + SKIRT_SLIT_FRONT = 205, + /// + /// - Open Back 0--+255 Closed Back + /// + SKIRT_SLIT_BACK = 206, + /// + /// - Open Left 0--+255 Closed Left + /// + SKIRT_SLIT_LEFT = 207, + /// + /// - Open Right 0--+255 Closed Right + /// + SKIRT_SLIT_RIGHT = 208, + /// + /// Skirt Fit - Tight Skirt 0--+255 Poofy Skirt + /// + SKIRT_SKIRT_LOOSENESS = 209, + SHIRT_SHIRT_WRINKLES = 210, + PANTS_PANTS_WRINKLES = 211, + /// + /// Jacket Wrinkles - No Wrinkles 0--+255 Wrinkles + /// + JACKET_JACKET_WRINKLES = 212, + /// + /// Package - Coin Purse 0--+255 Duffle Bag + /// + SHAPE_MALE_PACKAGE = 213, + /// + /// Inner Eye Corner - Corner Down 0--+255 Corner Up + /// + SHAPE_EYELID_INNER_CORNER_UP = 214, + SKIRT_SKIRT_RED = 215, + SKIRT_SKIRT_GREEN = 216, + SKIRT_SKIRT_BLUE = 217 + } } }