\r
void SetPlayerSize()\r
{\r
+ // don't scale dead players who aren't prey\r
+ if(!self.stat_eaten && self.deadflag != DEAD_NO)\r
+ return;\r
+\r
if(cvar("g_healthsize"))\r
{\r
// change player scale based on the amount of health we have\r
\r
self.scale = bound(cvar("g_healthsize_min"), self.health, cvar("g_healthsize_max")) / cvar("g_healthsize");\r
- if(self.scale < 0.1)\r
- self.scale = 0.1; // stuff breaks if scale is smaller than this\r
\r
// The following code sets the bounding box to match the player's size.\r
// It is currently disabled because of issues with engine movement prediction (cl_movement).\r
}\r
}\r
\r
- if(self.stat_eaten && cvar("g_vore_neighborprey_distance"))\r
+ if(cvar("g_balance_vore_digestion_limit") < 0 && self.deadflag != DEAD_NO && self.stat_eaten)\r
+ {\r
+ // dead prey must shrink toward zero as they digest, until they reach digestion limit\r
+ self.scale *= 1 - bound(0, self.health / cvar("g_balance_vore_digestion_limit"), 1);\r
+ }\r
+\r
+ if(cvar("g_vore_neighborprey_distance") && self.stat_eaten)\r
{\r
// resize prey if neighborprey is enabled\r
self.scale *= cvar("g_vore_neighborprey_scale");\r
}\r
+\r
+ if(self.scale < 0.1)\r
+ self.scale = 0.1; // stuff breaks if scale is smaller than this\r
}\r
\r
void ObserverThink()\r
self.fixangle = TRUE;\r
}\r
\r
+ SetPlayerSize();\r
+\r
if(frametime)\r
{\r
-\r
if(self.health <= 0 && cvar("g_deathglow"))\r
{\r
if(self.glowmod_x > 0)\r
}\r
}\r
\r
- SetPlayerSize();\r
-\r
FixPlayermodel();\r
\r
GrabberFrame();\r