@@ -2265,10 +2265,33 @@ void CStudioBoneSetup :: CalcBoneAdj( Vector pos[], Vector4D q[], const byte con
22652265 {
22662266 i = pbonecontroller->index ;
22672267
2268+ #if 1
22682269 if ( i == STUDIO_MOUTH )
22692270 value = bound ( 0 .0f , ( mouthopen / 64 .0f ), 1 .0f );
22702271 else value = bound ( 0 .0f , (float )controllers[i] / 255 .0f , 1 .0f );
2271- value = (1 .0f - value) * pbonecontroller->start + value * pbonecontroller->end ;
2272+ #else
2273+ if (i != STUDIO_MOUTH)
2274+ {
2275+ //value = bound(0.0f, (float)controllers[i] / 255.0f, 1.0f);
2276+ //value = (1.0f - value) * pbonecontroller->start + value * pbonecontroller->end;
2277+ if (pbonecontroller->type & STUDIO_RLOOP)
2278+ {
2279+ value = controllers[j] * (360.0/256.0) + pbonecontroller->start;
2280+ }
2281+ else
2282+ {
2283+ value = controllers[j] / 255.0;
2284+ if (value < 0) value = 0;
2285+ if (value > 1.0) value = 1.0;
2286+ value = (1.0 - value) * pbonecontroller[j].start + value * pbonecontroller[j].end;
2287+ }
2288+ }
2289+ else
2290+ {
2291+ value = bound(0.0f, (mouthopen / 64.0f), 1.0f);
2292+ value = (1.0f - value) * pbonecontroller->start + value * pbonecontroller->end;
2293+ }
2294+ #endif
22722295
22732296 switch ( pbonecontroller->type & STUDIO_TYPES )
22742297 {
@@ -2319,10 +2342,33 @@ void CStudioBoneSetup :: CalcBoneAdj( float adj[], const byte controllers[], byt
23192342 {
23202343 i = pbonecontroller->index ;
23212344
2345+ #if 1
23222346 if ( i == STUDIO_MOUTH )
23232347 value = bound ( 0 .0f , ( mouthopen / 64 .0f ), 1 .0f );
23242348 else value = bound ( 0 .0f , (float )controllers[i] / 255 .0f , 1 .0f );
2325- value = (1 .0f - value) * pbonecontroller->start + value * pbonecontroller->end ;
2349+ #else
2350+ if (i != STUDIO_MOUTH)
2351+ {
2352+ //value = bound(0.0f, (float)controllers[i] / 255.0f, 1.0f);
2353+ //value = (1.0f - value) * pbonecontroller->start + value * pbonecontroller->end;
2354+ if (pbonecontroller->type & STUDIO_RLOOP)
2355+ {
2356+ value = controllers[j] * (360.0/256.0) + pbonecontroller->start;
2357+ }
2358+ else
2359+ {
2360+ value = controllers[j] / 255.0;
2361+ if (value < 0) value = 0;
2362+ if (value > 1.0) value = 1.0;
2363+ value = (1.0 - value) * pbonecontroller[j].start + value * pbonecontroller[j].end;
2364+ }
2365+ }
2366+ else
2367+ {
2368+ value = bound(0.0f, (mouthopen / 64.0f), 1.0f);
2369+ value = (1.0f - value) * pbonecontroller->start + value * pbonecontroller->end;
2370+ }
2371+ #endif
23262372
23272373 switch ( pbonecontroller->type & STUDIO_TYPES )
23282374 {
0 commit comments