+float Stomach_TeamMates_check(entity pred)\r
+{\r
+ // checks if a player's stomach contains any team mates\r
+\r
+ entity head;\r
+ if(teams_matter)\r
+ {\r
+ FOR_EACH_PLAYER(head)\r
+ {\r
+ if(head.predator == pred && head.team == pred.team)\r
+ return TRUE;\r
+ }\r
+ }\r
+ return FALSE;\r
+}\r
+\r
+float Vore_CanLeave()\r
+{\r
+ if(self.predator.classname == "player")\r
+ {\r
+ if(!cvar("g_vore_kick")) // you are defenseless in the stomach if you can't kick, so allow leaving\r
+ return TRUE;\r
+ if(teams_matter && self.team == self.predator.team)\r
+ return TRUE;\r
+ if(g_rpg && cvar("g_rpg_canleave"))\r
+ return TRUE;\r
+ }\r
+ return FALSE;\r
+}\r
+\r
+// make the camera smoothly lower itself when we get swallowed\r
+// our aim is going from the normal view offset to half of the view offset (because half is the best positioning for the stomach model)\r
+.float cameraeffect_current, cameraeffect_target;\r
+void Vore_CameraEffect_Set(entity e)\r
+{\r
+ e.cameraeffect_current = 1;\r
+ e.cameraeffect_target = 2;\r
+}\r
+void Vore_CameraEffect_Apply()\r
+{\r
+ if(self.predator.classname != "player")\r
+ return;\r
+\r
+ if(self.cvar_cl_vore_cameraspeed)\r
+ {\r
+ local float step;\r
+ step = self.cvar_cl_vore_cameraspeed * frametime;\r
+\r
+ // not sure if these maths are good, as the effect should be smoother\r
+ if(self.cameraeffect_current >= self.cameraeffect_target + step)\r
+ self.cameraeffect_current -= step;\r
+ else if(self.cameraeffect_current <= self.cameraeffect_target - step)\r
+ self.cameraeffect_current += step;\r
+ }\r
+ else\r
+ self.cameraeffect_current = self.cameraeffect_target;\r
+\r
+ self.view_ofs_z = PL_VIEW_OFS_z / self.cameraeffect_current;\r
+}\r
+\r
+.float gurgle_oldstomachload;\r
+void Vore_GurgleSound()\r
+{\r
+ if(time > self.gurglesound_finished || self.gurgle_oldstomachload != self.stomach_load)\r
+ {\r
+ GlobalSound(self.playersound_gurgle, CHAN_TRIGGER, VOICETYPE_GURGLE);\r
+\r
+ self.gurglesound_finished = time + 11; // yes, hard coded sound length. I know it's bad but what can I do?\r
+ self.gurgle_oldstomachload = self.stomach_load;\r
+ }\r
+}\r
+\r
+void Vore_WeightApply(entity e)\r