… | |
… | |
155 | |
155 | |
156 | sl << uint16 (head->animation_id); |
156 | sl << uint16 (head->animation_id); |
157 | |
157 | |
158 | int anim_speed = !head->flag [FLAG_ANIMATE] ? 0 |
158 | int anim_speed = !head->flag [FLAG_ANIMATE] ? 0 |
159 | : head->anim_speed ? clamp (head->anim_speed, 1, 255) |
159 | : head->anim_speed ? clamp (head->anim_speed, 1, 255) |
160 | : 1. / clamp (fabs (head->speed), 1./255., 1./1.); |
160 | : 1. / clamp (head->speed, 1./255., 1./1.); |
161 | |
161 | |
162 | sl << uint8 (anim_speed) |
162 | sl << uint8 (anim_speed) |
163 | << uint32 (head->nrof); |
163 | << uint32 (head->nrof); |
164 | |
164 | |
165 | if (ns.itemcmd == 2) |
165 | if (ns.itemcmd == 2) |
… | |
… | |
447 | { |
447 | { |
448 | if (op->anim_speed) |
448 | if (op->anim_speed) |
449 | anim_speed = op->anim_speed; |
449 | anim_speed = op->anim_speed; |
450 | else |
450 | else |
451 | { |
451 | { |
452 | if (fabs (op->speed) < 0.001) |
452 | if (op->speed < 0.001) |
453 | anim_speed = 255; |
453 | anim_speed = 255; |
454 | else if (fabs (op->speed) >= 1.0) |
454 | else if (op->speed >= 1.0) |
455 | anim_speed = 1; |
455 | anim_speed = 1; |
456 | else |
456 | else |
457 | anim_speed = (int) (1.0 / fabs (op->speed)); |
457 | anim_speed = 1. / op->speed; |
458 | } |
458 | } |
459 | |
459 | |
460 | if (anim_speed > 255) |
460 | if (anim_speed > 255) |
461 | anim_speed = 255; |
461 | anim_speed = 255; |
462 | } |
462 | } |