Quote:
Originally Posted by Shanaeri Rynale
It may also be why things such as hairdressers/apperance changers are so difficult to implement.
|
This so far as I can tell, is not easily feasible with the current system.
Note: This is from a client perspective.
The current profession and hair style are stored in a single byte. This will be looked at in hexadecimal(base 16, 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f) The minimum value of a byte is 0x00 and the maximum is 0xFF. For a female Ranger with the first hair style, the byte would be 0x21. Changing it to 0x31 would change the character to a Monk and using the female Monk's first hair style. So the first half controls the profession and the second half controls what hair style. This effectively limits the max number of professions to 15 (profession 0 does not exist), and the max number of hairstyles for a profession to 16. Ever wonder why those selection boxes are 4X4?
The way the game accommodates far more than sixteen hair styles is by making the hair style number relative to the character's campaign, profession, and sex.
Campaign(Prophecies, Factions, Nightfall, etc.) -> Profession(Warrior,Ranger,Monk,etc.) -> Sex(male, female) -> max 16 faces/hair styles.
Now an appearance/hair stylist would have to stay within the bounds of the faces available to that particular campaign->profession->sex. This should be easily possible as evidenced by the April Fools joke. That was likely executed by modifying the byte that controls the height and sex. 0xA1 would make the character 10(A) units tall and be female. I've found that an odd value is female and male is even. For the joke all they had to do was change an odd value to even and vice-versa.
I think the greater problem with hairdressers/appearance changers would be the demand the community would have for cross campaign/profession hair styles and faces. Which is not possible without adding more bytes. With character data being stored as a BLOB it would require changing the code that interprets this data which is probably quite a lot.