Code:
this.redrawCharacter = function() {
this.character.customSort(function(a, b) {
return sortCharacter(a.z, b.z, self.stance);
});
};
function sortCharacter(z1, z2, stance) {
var back = {
};
var front = {
hairBelowBody: 0,
capeBelowBody: 1,
shieldBelowBody: 2,
weaponBelowBody: 3,
capBelowBody: 4,
body: 5,
handOverBody: 6,
gloveOverBody: 7,
shoes: 8,
armBelowHead: 9,
mail: 10,
pants: 11,
top: 12,
armBelowHeadOverMail: 13,
hair: 14,
shieldOverHair: 15,
earrings: 16,
head: 17,
hairShade: 18,
expression: 19,
faceAcc: 20,
eyeAcc: 21,
shield: 22,
weaponBelowArm: 23,
weapon: 24,
arm: 25,
mailArm: 26,
hand: 27,
glove: 28,
weaponOverGlove: 29,
handBelowWeapon: 30,
armOverHair: 31,
armOverHairBelowWeapon: 32,
weaponOverHand: 33,
weaponOverBody: 34,
handOverHair: 35,
handOverWeapon: 36,
wristOverHair: 37,
gloveOverHair: 38
};
var zDictionary = stance === "back" ? back : front;
z1 = zDictionary[z1];
z2 = zDictionary[z2];
return z1 == z2 ? 0 : (z1 > z2 ? 1 : -1);
}
Progress pic: