Fix for #164 Remember mode when switching views

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6436 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 68b7af86f7b59eded87a51b49f951fdf18820268
Former-commit-id: ea73ed5e3e3b3f5054f95e8f28852877aa0b3c76
This commit is contained in:
beaglejoe 2016-06-04 22:42:23 +00:00
parent aac3c4846c
commit 0b7d03c0a2
2 changed files with 8 additions and 3 deletions

View file

@ -53,6 +53,7 @@ cGrScreen::cGrScreen(int myid)
selectPrevFlag = false;
mirrorFlag = 1;
memset(cams, 0, sizeof(cams));
memset(subcamIndex, 0, sizeof(subcamIndex));
viewRatio = 1.33;
cars = 0;
viewOffset = 0;
@ -205,9 +206,9 @@ void cGrScreen::selectCamera(long cam)
curCam = (cGrPerspCamera*)GF_TAILQ_FIRST(&cams[cam]);
}
} else {
/* Change of camera list, take the first one */
curCamHead = cam;
curCam = (cGrPerspCamera*)GF_TAILQ_FIRST(&cams[cam]);
/* Change of camera list, take the last one used*/
selectNthCamera(cam,subcamIndex[cam]);
}
if (curCam == NULL) {
@ -273,6 +274,8 @@ void cGrScreen::saveCamera(void)
drawCurrent = curCam->getDrawCurrent();
curCam->limitFov ();
GfParmWriteFile(NULL, grHandle, "Graph");
subcamIndex[curCamHead] = curCam->getId();
}
static class cGrPerspCamera *TheDispCam; /* the display camera */
@ -595,6 +598,7 @@ void cGrScreen::initCams(tSituation *s)
}
loadParams(s);
saveCamera();
}
void cGrScreen::initBoard(void)

View file

@ -34,6 +34,7 @@ class cGrScreen {
int curCamHead; // The current camera list.
tGrCamHead cams[10]; // From F2 to F11.
int subcamIndex[10]; // current subcam index (for each list)
class cGrPerspCamera *curCam; // The current camera.
class cGrCarCamMirror *mirrorCam; // The mirror camera.