Fix a bug that prevents players from diving right after spawning the first time on da_official #36
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patch resets the "last known ground entity" field right after calling
CBasePlayer::Spawn
This fixes the bug that prevents players from diving right after spawning the first time on da_official.
The bug also occurs after you switch from spectator to normal mode.
Explanation:
CBasePlayer::Spawn
invokedClearFlags
, clearing, among others,FL_ONGROUND
.However, it did not invoke
SetGroundEntity(NULL);
in order to remove the world entity from the "last ground entity" field.This, in turn, made subsequent calls to
SetGroundEntity
do nothing, since that function returns early if the "last ground entity" field is the same as its parameter.So despite
FullWalkMove
happily callingSetGroundEntity($worldentity)
all the time,FL_ONGROUND
wasn't set.This patch works, but I'm not sure if this is the correct place to but the
SetGroundEntity(NULL);
call.Same changes as #32 but retargeted to the
develop
branch.