++ Bounce Fix:
The Bouncefix that was first introduced in Modern Warfare 2 is just 1 check on a variable that gets set before the movementcode
that is responsible for bouncing will execute.
First some general stuff:
Lets say we are on MW2 and try to bounce. The movementcode will do the same checks and set the same variables as it did in CoD4.
The code will "notice" that it shouldn´t "step up" the player and sets "No-Bounce" in the upper part of Pic-1 / Pic-2 to 1. The same thing happens in CoD4.
We now "stop" at the lower part of Pic-1 / Pic-4 where the function decides what it should do.
As you can see, a compare for "No-Bounce"," was added in MW2 ( cmp dword ptr[esp+sameOffset], 0 )
After that we have a "jump not equal" instruction ( jnz short loc_4B1B48 ), that will as the name says, jump to "loc_4B1B48" if "No-Bounce" is 1.
If the function jumps to "loc_4B1B48", it will almost immediately end / return ( Pic-4 ) and will never enter the part that is needed in order to bounce!
++ Re-Enable Bouncing:
All we have to do in order to re-enable bouncing is to remove the jump not equal instruction below cmp dword ptr[esp+sameOffset], 0.
The function will still compare "No-Bounce" with 0 but won´t do anything with it no matter what "No-Bounce" was set to.
This will completely remove the check they´ve added and PM_StepSlideMove will behave exactly like it did in CoD4.
-> simply remove jnz short loc_4B1B48 ( Bytes: 0x75 0x14 ) by NOP'ing it (changing Bytes to 0x90 0x90 )
That's it. Bouncing will be exactly like it was in CoD4 :)
++ Re-Enable Elevators:
This won't be as in-depth as the other ones, because I still don't really know how elevators work in the first place.
While trying to disable elevators in CoD4, I noticed that if I overjump a call to "PM_CorrectAllSolid" elevators will stop working. ("PM_JitterPoint" in newer Call of Duty's)
As I couldn't find anything special in that function, I decided to compare it to the one in MW2 ... and well, Spot On!
As you can see, they've added yet another check that will skip the important part of the function.
Now, all we have to do to re-enable elevators is to change the jump equal instruction ( jz short loc_47136D ) to a jump instruction ( jmp short loc_47136D ) so that the function behaves like it did in CoD4 or MW2 Pre-Patch :)