e.think = defer_think;\r
e.nextthink = time + fdelay;\r
}\r
+\r
+// returns 1 if player is at minimum size and 0 if player is at normal size\r
+float playersize_micro(entity e)\r
+{\r
+ return bound(0, (e.health / cvar("g_healthsize_center") - 1) / (cvar("g_healthsize_min") / cvar("g_healthsize_center") - 1), 1);\r
+}\r
+// returns 0 if player is at normal size and 1 if player is at maximum size\r
+float playersize_macro(entity e)\r
+{\r
+ return bound(0, (e.health / cvar("g_healthsize_max") - 1) / (cvar("g_healthsize_center") / cvar("g_healthsize_max") - 1), 1);\r
+}\r
*/\r
if not(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOSTEPS)\r
{\r
- float micro_to_normal, normal_to_macro;\r
- micro_to_normal = 1 - bound(0, (self.health / cvar("g_healthsize_center") - 1) / (cvar("g_healthsize_min") / cvar("g_healthsize_center") - 1), 1);\r
- normal_to_macro = 1 - bound(0, (self.health / cvar("g_healthsize_max") - 1) / (cvar("g_healthsize_center") / cvar("g_healthsize_max") - 1), 1);\r
-\r
if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_METALSTEPS)\r
- GlobalSound(globalsound_metalstep, CHAN_PLAYER, VOICETYPE_PLAYERSOUND, bound(0, VOL_BASE * micro_to_normal, 1));\r
+ GlobalSound(globalsound_metalstep, CHAN_PLAYER, VOICETYPE_PLAYERSOUND, bound(0, VOL_BASE * (1 - playersize_micro(self)), 1));\r
else\r
- GlobalSound(globalsound_step, CHAN_PLAYER, VOICETYPE_PLAYERSOUND, bound(0, VOL_BASE * micro_to_normal, 1));\r
+ GlobalSound(globalsound_step, CHAN_PLAYER, VOICETYPE_PLAYERSOUND, bound(0, VOL_BASE * (1 - playersize_micro(self)), 1));\r
\r
//sound(self, CHAN_AUTO, "misc/macro_footstep.wav", VOL_BASE, ATTN_NORM);\r
}\r