Ya, this is a bit hard to explain.
Ok not sure, but if you ever played W.O.W(world of warcraft) notice you can move the mouse over the game and nothing changes in the scene. Now if you click on the environment the tracking starts. If you release you're free from disturbing the navigation. Now with most DARK Basic games(demos) once the game is started the mouse is ceased. Sort of stuck to the game, and no way to break it. Well this can be fixed by only engaging the navigation when the user clicks on the screen.
if (dbMouseClick() > 0)
Although when doing this function
if (dbMouseClick() > 0)
{
dbMouseX();
dbMouseY();
m_fOldCamAngleY = m_fCameraAngleY;
m_fOldCamAngleX = m_fCameraAngleX;
m_fCameraAngleY = dbWrapValue ( m_fCameraAngleY + dbMouseMoveX ( ) * 0.4f );
m_fCameraAngleX = dbWrapValue ( m_fCameraAngleX + dbMouseMoveY ( ) * 0.4f );
m_cameraFP.rotateY ( dbCurveAngle ( m_fCameraAngleY, m_fOldCamAngleY, 24 ) );
m_cameraFP.rotateX ( dbCurveAngle ( m_fCameraAngleX, m_fOldCamAngleX, 24 ) );
..
..
..
the calculation is made from the position of the mouse . So clicking on the center vs the upper left would put the player facing in different locations.
The way to fix this wold be to fix the dbMouseMoveX and dbMouseMoveY to 0 at click.
but there are no set functions that I see..
Hope that helped?