Prop Footsteps
From Valve Developer Community
Note: This issue has been resolved in the Half-Life 2: Episode Two codebase; if you are using its code, you should not try to implement this mod.For player footsteps, Valve used MASK_PLAYERSOLID_BRUSHONLY rather than MASK_PLAYERSOLID. This difference made it so only the static world would have dynamic footsteps. The following precedure will show how to fix this issue.
Note: This will not make any difference if PlayStepSound is overridden by the player entity (i.e. HL2MP).| Table of contents |
[edit]
Basic Fix
[edit]
src\cl_dll\c_baseplayer.cpp
[edit]
Shift Trace Start Up
// Straight down end.z -= 64; | → | // Straight down start.z += 1; end.z -= 64; |
[edit]
Smaller Trace Box Height
Ray_t ray; ray.Init( start, end, GetPlayerMins(), GetPlayerMaxs() ); |
| ↓ |
Ray_t ray; Vector mins = GetPlayerMins(); Vector maxs = GetPlayerMaxs(); maxs.z = mins.z + 1; ray.Init( start, end, mins, maxs); |
[edit]
Change Trace Mask
UTIL_TraceRay( ray, MASK_PLAYERSOLID_BRUSHONLY, this, COLLISION_GROUP_PLAYER_MOVEMENT, &trace ); |
| ↓ |
UTIL_TraceRay( ray, MASK_PLAYERSOLID, this, COLLISION_GROUP_PLAYER_MOVEMENT, &trace ); |
[edit]
src\game_shared\gamemovement.cpp
[edit]
Shift Trace Start Up
// Straight down end[2] -= 64; | → | // Straight down start[2] += 1; end[2] -= 64; |
[edit]
Smaller Trace Box Height & Change Trace Mask
TracePlayerBBox( start, end, MASK_PLAYERSOLID_BRUSHONLY, COLLISION_GROUP_PLAYER_MOVEMENT, trace ); |
| ↓ |
Ray_t ray; Vector mins = player->GetPlayerMins(); Vector maxs = player->GetPlayerMaxs(); maxs.z = mins.z + 1; ray.Init( start, end, mins, maxs); UTIL_TraceRay( ray, MASK_PLAYERSOLID, player, COLLISION_GROUP_PLAYER_MOVEMENT, &trace ); |
[edit]
HL2MP Override Removal
[edit]
src\cl_dll\hl2mp\c_hl2mp_player.h
[edit]
Prototype Removal
- PlayStepSound
- PrecacheFootStepSounds
[edit]
src\game_shared\hl2mp\hl2mp_player_shared.cpp
[edit]
Symbol Removal
- PlayStepSound
- PrecacheFootStepSounds
[edit]
src\dlls\hl2mp_dll\hl2mp_player.cpp
[edit]
Precache
| In function CHL2MP_Player::Precache | |
|---|---|
| Remove | PrecacheFootStepSounds(); |
[edit]
src\dlls\hl2mp_dll\hl2mp_player.h
[edit]
Prototype Removal
- PlayStepSound
- PrecacheFootStepSounds
