return vercmp_recursive(v1, v2);\r
}\r
\r
-.float current_scale;\r
void ApplyHealthSize()\r
{\r
if not(cvar("g_healthsize"))\r
return;\r
\r
- self.current_scale = self.health / 100; // range between 0 and 100\r
- self.current_scale = bound(0, self.current_scale, 100);\r
-\r
- if(self.scale < self.current_scale - self.scale)\r
- self.scale += cvar("g_healthsize_speed") * sys_frametime;\r
- else if(self.scale > self.current_scale + self.scale)\r
- self.scale -= cvar("g_healthsize_speed") * sys_frametime;\r
+ if(self.predator.classname == "player" || self.fakeprey)\r
+ {\r
+ self.view_ofs = PL_CROUCH_VIEW_OFS * self.predator.scale;\r
+ self.scale = 0;\r
+ }\r
else\r
- self.scale = self.current_scale;\r
+ {\r
+ self.scale = bound(cvar("g_healthsize_min"), self.health, cvar("g_healthsize_max")) / cvar("g_healthsize");\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
+ // The engine expects the bounding box to be default size, and changing it will cause glitches.\r
+ // This code may be enabled once the engine has the ability to use different bbox sizes for movement prediction.\r
+ if(self.crouch)\r
+ {\r
+ //setsize (self, PL_CROUCH_MIN * self.scale, PL_CROUCH_MAX * self.scale);\r
+ self.view_ofs = PL_CROUCH_VIEW_OFS * self.scale;\r
+ }\r
+ else\r
+ {\r
+ //setsize (self, PL_MIN * self.scale, PL_MAX * self.scale);\r
+ self.view_ofs = PL_VIEW_OFS * self.scale;\r
+ }\r
+ }\r
}\r
\r
void ObserverThink()\r
// core code for the vore system\r
Vore();\r
\r
- // health based player size\r
- ApplyHealthSize();\r
-\r
// version nagging\r
if(self.version_nagtime)\r
if(self.cvar_g_voretournamentversion)\r
}\r
}\r
\r
+ // health based player size\r
+ ApplyHealthSize();\r
+\r
FixPlayermodel();\r
\r
GrabberFrame();\r