self.dmg_save = spectatee.dmg_save;\r
self.dmg_inflictor = spectatee.dmg_inflictor;\r
self.angles = spectatee.v_angle;\r
+ self.scale = spectatee.scale;\r
self.fixangle = TRUE;\r
self.stomach_load = spectatee.stomach_load;\r
self.stat_eaten = spectatee.stat_eaten;\r
return vercmp_recursive(v1, v2);\r
}\r
\r
-.float current_scale;\r
void ApplyHealthSize()\r
{\r
+ // change player scale based on the amount of health we have\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
- else\r
- self.scale = self.current_scale;\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
- setsize (self, PL_CROUCH_MIN * self.scale, PL_CROUCH_MAX * self.scale);\r
+ {\r
+ //setsize (self, PL_CROUCH_MIN * self.scale, PL_CROUCH_MAX * self.scale);\r
+ if not(self.predator.classname == "player" || self.fakeprey)\r
+ self.view_ofs = PL_CROUCH_VIEW_OFS * self.scale;\r
+ }\r
else\r
- setsize (self, PL_MIN * self.scale, PL_MAX * self.scale);\r
+ {\r
+ //setsize (self, PL_MIN * self.scale, PL_MAX * self.scale);\r
+ if not(self.predator.classname == "player" || self.fakeprey)\r
+ self.view_ofs = PL_VIEW_OFS * self.scale;\r
+ }\r
}\r
\r
void ObserverThink()\r
}\r
}\r
\r
- // health based player size\r
ApplyHealthSize();\r
\r
FixPlayermodel();\r