@@ -391,13 +391,20 @@ FRGB anim_base::get_colour_value(objVector &Vector, FIELD Field)
391
391
double seek_to = seek;
392
392
393
393
if (not values.empty ()) {
394
- LONG vi = F2T ((values.size ()-1 ) * seek);
395
- if (vi >= LONG (values.size ())-1 ) vi = values.size () - 2 ;
396
- vec::ReadPainter (NULL , values[vi].c_str (), &from_col, NULL );
397
- vec::ReadPainter (NULL , values[vi+1 ].c_str (), &to_col, NULL );
394
+ if (values.size () >= 2 ) {
395
+ LONG vi = F2T ((values.size ()-1 ) * seek);
396
+ if (vi >= LONG (values.size ())-1 ) vi = values.size () - 2 ;
397
+ vec::ReadPainter (NULL , values[vi].c_str (), &from_col, NULL );
398
+ vec::ReadPainter (NULL , values[vi+1 ].c_str (), &to_col, NULL );
398
399
399
- const double mod = 1.0 / double (values.size () - 1 );
400
- seek_to = (seek >= 1.0 ) ? 1.0 : fmod (seek, mod) / mod;
400
+ const double mod = 1.0 / double (values.size () - 1 );
401
+ seek_to = (seek >= 1.0 ) ? 1.0 : fmod (seek, mod) / mod;
402
+ }
403
+ else if (values.size () IS 1 ) { // Equivalent to a single 'to'
404
+ vec::ReadPainter (NULL , target_attrib_orig.c_str (), &from_col, NULL );
405
+ vec::ReadPainter (NULL , values[0 ].c_str (), &to_col, NULL );
406
+ }
407
+ else return { 0 , 0 , 0 , 0 };
401
408
}
402
409
else if (not from.empty ()) {
403
410
if (not to.empty ()) {
0 commit comments