From: MirceaKitsune Date: Tue, 19 Apr 2011 15:19:02 +0000 (+0300) Subject: Finally fix the animation issue when eating players with very high ping! Seems the... X-Git-Url: http://de.git.xonotic.org/?p=voretournament%2Fvoretournament.git;a=commitdiff_plain;h=8285ca603f72377a7f72cc26d07188efe3158023 Finally fix the animation issue when eating players with very high ping! Seems the server code was resetting animations when switching to the stomach model, making the player animation also brake to ALL players. No idea how that related to high ping, but now it should be fixed. --- diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 49d1ea05..2bbc265b 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -418,11 +418,12 @@ string CheckPlayerModel(string plyermodel) { return plyermodel; } -void setmodel_apply(string modelname) +void setmodel_apply(string modelname, float reset_anims) { precache_model(modelname); setmodel(self, modelname); // players have high precision - player_setupanimsformodel(); + if(reset_anims) + player_setupanimsformodel(); } string setmodel_state() @@ -458,7 +459,7 @@ void Client_setmodel(string applymodel) applymodel = CheckPlayerModel(applymodel); // this is never "", so no endless loop m1 = self.mins; m2 = self.maxs; - setmodel_apply(applymodel); + setmodel_apply(applymodel, FALSE); setsize (self, m1, m2); } @@ -524,7 +525,6 @@ float Client_customizeentityforclient() if(self.model != stomachmodel) // don't execute each frame { Client_setmodel(stomachmodel); - self.frame = 0; // don't use any animations as a stomach self.alpha = other.cvar_cl_vore_stomachmodel; } return TRUE; @@ -729,7 +729,7 @@ void FixPlayermodel() { m1 = self.mins; m2 = self.maxs; - setmodel_apply (defaultmodel); + setmodel_apply (defaultmodel, TRUE); setsize (self, m1, m2); chmdl = TRUE; } @@ -742,7 +742,7 @@ void FixPlayermodel() self.playermodel = CheckPlayerModel(self.playermodel); // this is never "", so no endless loop m1 = self.mins; m2 = self.maxs; - setmodel_apply (self.playermodel); + setmodel_apply (self.playermodel, TRUE); setsize (self, m1, m2); chmdl = TRUE; } diff --git a/data/qcsrc/server/cl_player.qc b/data/qcsrc/server/cl_player.qc index ed94dc4d..98f781fd 100644 --- a/data/qcsrc/server/cl_player.qc +++ b/data/qcsrc/server/cl_player.qc @@ -219,8 +219,8 @@ float player_getspecies() void player_setupanimsformodel() { // if this is the stomach model (or any model that can't be animated), don't attempt to animate - if(substring(self.model, strlen(self.model) - 3, 3) == "md3") // check model extension - return; + //if(substring(self.model, strlen(self.model) - 3, 3) == "md3") // check model extension + // return; local string animfilename; local float animfile; @@ -293,8 +293,8 @@ void player_setupanimsformodel() void player_anim (void) { // if this is the stomach model (or any model that can't be animated), don't attempt to animate - if(substring(self.model, strlen(self.model) - 3, 3) == "md3") // check model extension - return; + //if(substring(self.model, strlen(self.model) - 3, 3) == "md3") // check model extension + // return; updateanim(self); if (self.weaponentity)