@@ -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