]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_lerpanim.c
Fix engine not starting on Windows if linked against SDL > 2.0.5
[xonotic/darkplaces.git] / r_lerpanim.c
index 7ac1c62e0154bdc64a17f346ab88b4ffcd8359d0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,183 +0,0 @@
-
-#include "quakedef.h"
-
-// LordHavoc: quite tempting to break apart this function to reuse the
-//            duplicated code, but I suspect it is better for performance
-//            this way
-void R_LerpAnimation(model_t *mod, int frame1, int frame2, double frame1start, double frame2start, double framelerp, frameblend_t *blend)
-{
-       int sub1, sub2, numframes, f, i, data;
-       double sublerp, lerp, l;
-       animscene_t *scene, *scenes;
-
-       data = (int) Mod_Extradata(mod);
-       if (!data)
-               Host_Error("R_LerpAnimation: model not loaded\n");
-       scenes = (animscene_t *) (mod->ofs_scenes + data);
-
-       numframes = mod->numframes;
-
-       if ((frame1 >= numframes))
-       {
-               Con_Printf ("R_LerpAnimation: no such frame %d\n", frame1);
-               frame1 = 0;
-       }
-
-       if ((frame2 >= numframes))
-       {
-               Con_Printf ("R_LerpAnimation: no such frame %d\n", frame2);
-               frame2 = 0;
-       }
-
-       if (frame1 < 0)
-               Host_Error ("R_LerpAnimation: frame1 is NULL\n");
-
-       // round off very close blend percentages
-       if (framelerp < (1.0f / 65536.0f))
-               framelerp = 0;
-       if (framelerp >= (65535.0f / 65536.0f))
-               framelerp = 1;
-
-       blend[0].frame = blend[1].frame = blend[2].frame = blend[3].frame = -1;
-       blend[0].lerp = blend[1].lerp = blend[2].lerp = blend[3].lerp = 0;
-       if (framelerp < 1)
-       {
-               scene = scenes + frame1;
-               lerp = 1 - framelerp;
-
-               if (scene->framecount > 1)
-               {
-                       sublerp = scene->framerate * (cl.time - frame1start);
-                       sub1 = (int) (sublerp);
-                       sub2 = sub1 + 1;
-                       sublerp -= sub1;
-                       if (sublerp < (1.0f / 65536.0f))
-                               sublerp = 0;
-                       if (sublerp >= (65535.0f / 65536.0f))
-                               sublerp = 1;
-                       if (scene->loop)
-                       {
-                               sub1 = (sub1 % scene->framecount) + scene->firstframe;
-                               sub2 = (sub2 % scene->framecount) + scene->firstframe;
-                       }
-                       else
-                       {
-                               sub1 = bound(0, sub1, (scene->framecount - 1)) + scene->firstframe;
-                               sub2 = bound(0, sub2, (scene->framecount - 1)) + scene->firstframe;
-                       }
-                       f = sub1;
-                       l = (1 - sublerp) * lerp;
-                       if (l > 0)
-                       {
-                               for (i = 0;i < 4;i++)
-                               {
-                                       if (blend[i].frame == f)
-                                       {
-                                               blend[i].lerp += l;
-                                               break;
-                                       }
-                                       if (blend[i].lerp <= 0)
-                                       {
-                                               blend[i].frame = f;
-                                               blend[i].lerp = l;
-                                               break;
-                                       }
-                               }
-                       }
-                       f = sub2;
-                       l = sublerp * lerp;
-               }
-               else
-               {
-                       f = scene->firstframe;
-                       l = lerp;
-               }
-               if (l > 0)
-               {
-                       for (i = 0;i < 4;i++)
-                       {
-                               if (blend[i].frame == f)
-                               {
-                                       blend[i].lerp += l;
-                                       break;
-                               }
-                               if (blend[i].lerp <= 0)
-                               {
-                                       blend[i].frame = f;
-                                       blend[i].lerp = l;
-                                       break;
-                               }
-                       }
-               }
-       }
-       if (framelerp > 0 && frame2 >= 0)
-       {
-               scene = scenes + frame2;
-               lerp = framelerp;
-
-               if (scene->framecount > 1)
-               {
-                       sublerp = scene->framerate * (cl.time - frame1start);
-                       sub1 = (int) (sublerp);
-                       sub2 = sub1 + 1;
-                       sublerp -= sub1;
-                       if (sublerp < (1.0f / 65536.0f))
-                               sublerp = 0;
-                       if (sublerp >= (65535.0f / 65536.0f))
-                               sublerp = 1;
-                       if (scene->loop)
-                       {
-                               sub1 = (sub1 % scene->framecount) + scene->firstframe;
-                               sub2 = (sub2 % scene->framecount) + scene->firstframe;
-                       }
-                       else
-                       {
-                               sub1 = bound(0, sub1, (scene->framecount - 1)) + scene->firstframe;
-                               sub2 = bound(0, sub2, (scene->framecount - 1)) + scene->firstframe;
-                       }
-                       f = sub1;
-                       l = (1 - sublerp) * lerp;
-                       if (l > 0)
-                       {
-                               for (i = 0;i < 4;i++)
-                               {
-                                       if (blend[i].frame == f)
-                                       {
-                                               blend[i].lerp += l;
-                                               break;
-                                       }
-                                       if (blend[i].lerp <= 0)
-                                       {
-                                               blend[i].frame = f;
-                                               blend[i].lerp = l;
-                                               break;
-                                       }
-                               }
-                       }
-                       f = sub2;
-                       l = sublerp * lerp;
-               }
-               else
-               {
-                       f = scene->firstframe;
-                       l = lerp;
-               }
-               if (l > 0)
-               {
-                       for (i = 0;i < 4;i++)
-                       {
-                               if (blend[i].frame == f)
-                               {
-                                       blend[i].lerp += l;
-                                       break;
-                               }
-                               if (blend[i].lerp <= 0)
-                               {
-                                       blend[i].frame = f;
-                                       blend[i].lerp = l;
-                                       break;
-                               }
-                       }
-               }
-       }
-}