I always do it differently...
If I know there's a float at say 0x7E46B8 (the x position of the camera), this is how I do it:
| float* camX = 0x7E46B8;|
float nPlayer_X = *camX;
Of course if I store an address as a DWORD, I have to convert it to float* first.
Anyway, my general advice beyond that would be: get a good debugger, learn how to use it and study what your code does in actuality. Doing so has helped me *a lot* with bugs. With that one doesn't have to *guess* anymore what goes wrong, one can actually study what is happening.
PS You're writing a swimming mod? For VC or GTA3?