Skip to content

Commit 710686a

Browse files
Merge pull request #803 from adafruit/philb-branch
M4_Eyes: fix default texture angles
2 parents d4f0560 + a421bd0 commit 710686a

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

M4_Eyes/file.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,6 @@ void loadConfig(char *filename) {
264264
scleratv = doc["scleraTexture"];
265265

266266
// Convert clockwise int (0-1023) or float (0.0-1.0) values to CCW int used internally:
267-
v = doc["irisAngle"];
268-
if(v.is<int>()) irisAngle = 1023 - (v.as<int>() & 1023);
269-
else if(v.is<float>()) irisAngle = 1023 - ((int)(v.as<float>() * 1024.0) & 1023);
270-
v = doc["scleraAngle"];
271-
if(v.is<int>()) scleraAngle = 1023 - (v.as<int>() & 1023);
272-
else if(v.is<float>()) scleraAngle = 1023 - ((int)(v.as<float>() * 1024.0) & 1023);
273267
v = doc["irisSpin"];
274268
if(v.is<float>()) irisSpin = v.as<float>() * -1024.0;
275269
v = doc["scleraSpin"];
@@ -283,7 +277,18 @@ void loadConfig(char *filename) {
283277
eye[e].backColor = backColor;
284278
eye[e].iris.color = irisColor;
285279
eye[e].sclera.color = scleraColor;
280+
// The globally-set irisAngle and scleraAngle are read each
281+
// time through because each eye has a distinct default if
282+
// not set globally. Override only if set globally at first...
283+
v = doc["irisAngle"];
284+
if(v.is<int>()) irisAngle = 1023 - (v.as<int>() & 1023);
285+
else if(v.is<float>()) irisAngle = 1023 - ((int)(v.as<float>() * 1024.0) & 1023);
286+
else irisAngle = eye[e].iris.angle;
286287
eye[e].iris.angle = eye[e].iris.startAngle = irisAngle;
288+
v = doc["scleraAngle"];
289+
if(v.is<int>()) scleraAngle = 1023 - (v.as<int>() & 1023);
290+
else if(v.is<float>()) scleraAngle = 1023 - ((int)(v.as<float>() * 1024.0) & 1023);
291+
else scleraAngle = eye[e].sclera.angle;
287292
eye[e].sclera.angle = eye[e].sclera.startAngle = scleraAngle;
288293
eye[e].iris.mirror = irisMirror;
289294
eye[e].sclera.mirror = scleraMirror;

0 commit comments

Comments
 (0)