DP_EF_RESTARTANIM_BIT
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 20 Dec 2009 08:32:55 +0000 (08:32 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 20 Dec 2009 08:32:55 +0000 (08:32 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9597 d7cf8633-e32d-0410-b094-e92efae38249

cl_parse.c
protocol.h
svvm_cmds.c

index 4499104..e924b18 100644 (file)
@@ -1899,6 +1899,14 @@ void CL_MoveLerpEntityStates(entity_t *ent)
 
                // note that this case must do everything the following case does too
        }
+       else if ((ent->state_previous.effects & EF_RESTARTANIM_BIT) != (ent->state_current.effects & EF_RESTARTANIM_BIT))
+       {
+               ent->render.framegroupblend[1] = ent->render.framegroupblend[0];
+               ent->render.framegroupblend[1].lerp = 1;
+               ent->render.framegroupblend[0].frame = ent->state_current.frame;
+               ent->render.framegroupblend[0].start = cl.time;
+               ent->render.framegroupblend[0].lerp = 0;
+       }
        else if (DotProduct(odelta, odelta) > 1000*1000
                || (cl.fixangle[0] && !cl.fixangle[1])
                || (ent->state_previous.tagindex != ent->state_current.tagindex)
index 21c8566..1335a3a 100644 (file)
@@ -61,7 +61,7 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define EF_UNUSED17                            131072
 #define EF_UNUSED18                            262144
 #define EF_UNUSED19                            524288
-#define EF_UNUSED20                            1048576
+#define EF_RESTARTANIM_BIT             1048576     // div0: restart animation bit (like teleport bit, but lerps between end and start of the anim, and doesn't stop player lerping)
 #define EF_TELEPORT_BIT                        2097152         // div0: teleport bit (toggled when teleporting, prevents lerping when the bit has changed)
 #define EF_LOWPRECISION                        4194304         // LordHavoc: entity is low precision (integer coordinates) to save network bandwidth  (serverside only)
 #define EF_NOMODELFLAGS                        8388608         // indicates the model's .effects should be ignored (allows overriding them)
index 879f797..f282df4 100644 (file)
@@ -34,6 +34,7 @@ char *vm_sv_extensions =
 "DP_EF_NOSELFSHADOW "
 "DP_EF_NOSHADOW "
 "DP_EF_RED "
+"DP_EF_RESTARTANIM_BIT "
 "DP_EF_STARDUST "
 "DP_EF_TELEPORT_BIT "
 "DP_ENT_ALPHA "