From eb9281e428027f0cfa6e8e7dde401e2e9c298d8d Mon Sep 17 00:00:00 2001
From: Elohiem <anon@anon.anon>
Date: Tue, 20 Apr 2021 14:35:11 +0200
Subject: [PATCH] Fixes

---
 src/art/artJS.js           |  2 +-
 src/art/webgl/art.js       | 62 +++++++++++++++++++++++---------------
 src/art/webgl/contents.txt | 59 +++++++++++++++---------------------
 3 files changed, 63 insertions(+), 60 deletions(-)

diff --git a/src/art/artJS.js b/src/art/artJS.js
index 16ca254b2f5..eae55fde187 100644
--- a/src/art/artJS.js
+++ b/src/art/artJS.js
@@ -240,7 +240,7 @@ App.Art.webglInitialize = function() {
 	let load = document.createElement("script");
 	load.onload = function() {
 		// but only if version is correct
-		if (App.Art.version === "1.2") {
+		if (App.Art.version === "1.3") {
 			document.head.appendChild(script);
 		} else {
 			App.Art.errorHandler("engineFailed", 3);
diff --git a/src/art/webgl/art.js b/src/art/webgl/art.js
index 4028142b4ab..f2f32b4b980 100644
--- a/src/art/webgl/art.js
+++ b/src/art/webgl/art.js
@@ -47,18 +47,18 @@ App.Art.applyFigures = function(slave, scene) {
 	let figures = [];
 
 	figures.push("Genesis8Female");
-	figures.push("Geometry Shell 3");
-	figures.push("Futalicious Shell");
+	figures.push("Geometry");
+	figures.push("Futalicious");
 	figures.push("Genesis8FemaleEyelashes");
 
 	switch(slave.hStyle) {
 		case "afro": figures.push("prae-yarahair_174011"); break;
-		case "cornrows": figures.push("TIGER BRAIDS_163349"); break;
-		case "bun": figures.push("Adia Hair_26615"); break;
+		case "cornrows": figures.push("TIGER"); break;
+		case "bun": figures.push("Adia"); break;
 		case "neat": figures.push("SamiraHair_103927"); break;
 		case "strip": figures.push("ValRebelH_12512"); break;
 		case "tails": figures.push("LLF-DazStudioFemaleHair_758"); break;
-		case "up": figures.push("Pina Hair Gen8 8_93350"); break;
+		case "up": figures.push("Pina"); break;
 		case "ponytail": figures.push("ElitePonytail"); break;
 		case "braided": figures.push("LLF-MishkaGeBase1_31774"); break;
 		case "dreadlocks": figures.push("Dreads_197696"); break;
@@ -69,6 +69,9 @@ App.Art.applyFigures = function(slave, scene) {
 		case "messy": figures.push("MessyHair_35245"); break;
 		case "eary": figures.push("GeorginaHair_72382"); break;
 		case "undercut": figures.push("EditHairGN2Female_112247"); break;
+		case "bangs": figures.push("Neko Hair Genesis 3 Female_131369"); break;
+		case "hime": figures.push("Nyohair_141863"); break;
+		case "drills": figures.push("LLF-BunnyCurls-G8_111356"); break;
 		case "bald": break;
 		case "shaved": break;
 		case "buzzcut": break;
@@ -492,6 +495,21 @@ App.Art.applyMaterials = function(slave, scene) {
 			materials.push(["edit_scalp", "Kd", hairColor]);
 			materials.push(["edit_hair", "Kd", hairColor]);
 			break;
+		case "bangs":
+			materials.push(["neko_scalp", "Kd", hairColor]);
+			materials.push(["neko_hair", "Kd", hairColor]);
+			break;
+		case "hime":
+			materials.push(["nyo_scalp", "Kd", hairColor]);
+			materials.push(["nyo_hair", "Kd", hairColor]);
+			break;
+		case "drills":
+			materials.push(["bunny_scalp", "Kd", hairColor]);
+			materials.push(["bunny_hair1", "Kd", hairColor]);
+			materials.push(["bunny_hair2", "Kd", hairColor]);
+			materials.push(["bunny_hair3", "Kd", hairColor]);
+			materials.push(["bunny_hair4", "Kd", hairColor]);
+			break;
 		case "buzzcut":
 		case "trimmed":
 			materials.push(["shaved_face", "Kd", hairColor]);
@@ -513,9 +531,10 @@ App.Art.applyMaterials = function(slave, scene) {
 		scleraColor = hexToRgb(extractColor("black"));
 	}
 
-	materials.push(["Irises", "d", 3.8]);
 	materials.push(["Irises", "Kd", [irisColor[0] * 0.8, irisColor[1] * 0.8, irisColor[2] * 0.8]]);
 	materials.push(["Sclera", "Kd", [scleraColor[0] * 1.2, scleraColor[1] * 1.2, scleraColor[2] * 1.2]]);
+	materials.push(["Irises", "Ns", 4]);
+
 
 	switch (slave.skin) {
 		case "pure white":
@@ -772,9 +791,9 @@ App.Art.applyMorphs = function(slave, scene) {
 		case "normal":
 			break;
 		case "masculine":
-			morphs.push(["faceShapeMasculine", 0.6]); break;
+			morphs.push(["faceShapeMasculine", 0.8]); break;
 		case "androgynous":
-			morphs.push(["faceShapeAndrogynous", 0.8]); break;
+			morphs.push(["faceShapeAndrogynous", 1]); break;
 		case "cute":
 			morphs.push(["faceShapeCute", 1]); break;
 		case "sensual":
@@ -797,19 +816,19 @@ App.Art.applyMorphs = function(slave, scene) {
 				morphs.push(["boobShapeTorpedo", (Math.sqrt(slave.boobs-600)/35)]); break;
 			case "downward-facing":
 				// special case to make nipple work
-				if (slave.nipples === "flat") {
-					morphs.push(["boobShapeDownward_nipplesFlat", (Math.sqrt(slave.boobs-600)/80)]); break;
-				} else {
+				if (slave.nipples === "flat" || slave.nipples === "inverted") {
 					morphs.push(["boobShapeDownward", (Math.sqrt(slave.boobs-600)/80)]); break;
+				} else {
+					morphs.push(["boobShapeDownwardNippleFix", (Math.sqrt(slave.boobs-600)/80)]); break;
 				}
 			case "wide-set":
 				morphs.push(["boobShapeWide", (Math.sqrt(slave.boobs-600)/40)]); break;
 			case "spherical":
 				// special case to make nipple work
-				if (slave.nipples === "flat") {
-					morphs.push(["boobShapeSpherical_nipplesFlat", (Math.sqrt(slave.boobs-600)/80)]); break;
-				} else {
+				if (slave.nipples === "flat" || slave.nipples === "inverted") {
 					morphs.push(["boobShapeSpherical", (Math.sqrt(slave.boobs-600)/80)]); break;
+				} else {
+					morphs.push(["boobShapeSphericalNippleFix", (Math.sqrt(slave.boobs-600)/80)]); break;
 				}
 		}
 	}
@@ -822,15 +841,15 @@ App.Art.applyMorphs = function(slave, scene) {
 		case "tiny":
 			morphs.push(["nipplesHuge", Math.sqrt(slave.boobs)/90 + 0.1]); break;
 		case "cute":
-			morphs.push(["nipplesCute", Math.sqrt(slave.boobs)/20 + 0.5]); break;
+			morphs.push(["nipplesHuge", Math.sqrt(slave.boobs)/60 + 0.25]); break;
 		case "puffy":
 			morphs.push(["nipplesPuffy", Math.sqrt(slave.boobs)/35 + 0.5]); break;
 		case "inverted":
-			morphs.push(["nipplesInverted", Math.sqrt(slave.boobs)/20 + 0.5]); break;
+			break;
 		case "partially inverted":
-			morphs.push(["nipplesPartiallyInverted", Math.sqrt(slave.boobs)/20 + 0.5]); break;
+			morphs.push(["nipplesPuffy", Math.sqrt(slave.boobs)/50 + 0.25]); break;
 		case "fuckable":
-			morphs.push(["nipplesFuckable", Math.sqrt(slave.boobs)/20 + 0.5]); break;
+			morphs.push(["nipplesHuge", Math.sqrt(slave.boobs)/25 + 0.6]); break;
 	}
 
 	if (slave.foreskin !== 0) {
@@ -864,12 +883,7 @@ App.Art.applyMorphs = function(slave, scene) {
 		morphs.push(["muscles", slave.muscles/33]);
 	}
 
-	if(slave.belly < 15000 ) {
-		morphs.push(["belly", Math.sqrt(slave.belly)/122.5]);
-	} else {
-		morphs.push(["belly", 1 + (Math.sqrt(slave.belly)-122.5)/150]);
-	}
-
+	morphs.push(["belly", Math.sqrt(slave.belly)/150]);
 	morphs.push(["hips", slave.hips/2]);
 
 	if (slave.butt<=1) {
diff --git a/src/art/webgl/contents.txt b/src/art/webgl/contents.txt
index bdd046e9ea2..2946764a7a4 100644
--- a/src/art/webgl/contents.txt
+++ b/src/art/webgl/contents.txt
@@ -5,14 +5,12 @@ General
 	weight
 	weightThin
 	muscles
-	height                  - not an actual morph, scaled with model transform
 	waist
 	belly
 	hips
 	butt
 	lips
 	shoulders
-	boobsSmall
 	areolae
 	dick
 	balls
@@ -28,7 +26,8 @@ amputee
 	leftLeg
 	rightLeg
 
-boobShape	
+boobShape
+	small	
 	normal
 	perky
 	saggy
@@ -38,14 +37,8 @@ boobShape
 	spherical
 
 nipples
-	flat
 	huge
-	tiny
-	cute
 	puffy
-	inverted
-	partially inverted      (partially)
-	fuckable
 
 faceShape	
 	normal
@@ -85,11 +78,6 @@ forehead
 	round
 	small
 
-areolaeShape	
-	heart
-	star
-	circle
-
 expressions
 	happy
 	fear
@@ -106,7 +94,6 @@ race
 	middle eastern          (eastern)
 	indo-aryan              (aryan)
 	malay
-	mixed race
 
 poses	
 	high
@@ -183,24 +170,26 @@ General
     dick
 
 Hairstyle
-	Neat
-	Afro
-	Braided
-	Cornrows
-	Curled
-	Dreadlocks
-	Eary
-	In a bun
-	In a messy bun
-	In a ponytail
-	In tails
-	Luxurious
-	Messy
-	Permed
-	Shaved sides
-	Up
-	Undercut
-	Shaved
-	Buzzcut
-	Trimmed short
+	Neat					(Samira)
+	Afro					(Yara)
+	Braided					(Mishka)
+	Cornrows				(Tiger)
+	Curled					(Havana)
+	Dreadlocks				(Dreads)
+	Eary					(Georgina)
+	In a bun				(Adia)
+	In a messy bun			(Krayon)
+	In a ponytail			(Ponytail)
+	In tails				(Kinley)
+	Luxurious				(Baroness)
+	Messy					(Messy)
+	Permed					(Ichigo)
+	Shaved sides			(Rebel)
+	Up						(Pina)
+	Half-Shaved				(Edit)
+	Bangs					(Neko)
+	Hime					(Nyo)
+	Drills					(Bunny)
+
+
 
-- 
GitLab