D3DMATRIX vm = identitymatrix; //view matrix
D3DMATRIX tvm; // temporary view matrix
int cang; // camera angle
if (cam[6]) cang++;
if (cam[7]) cang--;
RotY(vm, rad(cang)); //rotate view around y axis
pd3dDevice->GetTransform(D3DTRANSFORMSTATE_VIEW, &tvm);
vm._41 = tvm._41;
vm._42 = tvm._42;
vm._43 = tvm._43;
if (cam[0]) vm._42-=1.f;//=10.f;
if (cam[1]) vm._42+=1.f;
if (cam[2]) vm._41+=1.f;
if (cam[3]) vm._41-=1.f;
if (cam[4] && (vm._43> -100.f)) vm._43-=1.f;
if (cam[5]) vm._43+=1.f;
pd3dDevice->SetTransform(D3DTRANSFORMSTATE_VIEW, &vm);