ssggraph - Animated driver model not rendered when using the car-less driver view.

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

Former-commit-id: 20dd9af0653f13f0c0cb998555f70e54cf61e78f
Former-commit-id: 42a83826f25bbb7e53a88f10bb8ed738eda2155d
This commit is contained in:
andrewsumner 2008-12-01 22:04:42 +00:00
parent 709bf2cf9a
commit d591562622

View file

@ -831,6 +831,7 @@ grDrawCar(tCarElt *car, tCarElt *curCar, int dispCarFlag, int dispDrvFlag, doubl
if ((car == curCar) && (dispCarFlag != 1)) { if ((car == curCar) && (dispCarFlag != 1)) {
grCarInfo[index].LODSelector->select(0); grCarInfo[index].LODSelector->select(0);
grCarInfo[index].DRMSelector->select(0);
} else { } else {
lod = curCam->getLODFactor(car->_pos_X, car->_pos_Y, car->_pos_Z); lod = curCam->getLODFactor(car->_pos_X, car->_pos_Y, car->_pos_Z);
i = 0; i = 0;
@ -846,34 +847,36 @@ grDrawCar(tCarElt *car, tCarElt *curCar, int dispCarFlag, int dispDrvFlag, doubl
} else { } else {
grCarInfo[index].driverSelector->select(0); grCarInfo[index].driverSelector->select(0);
} }
// Animated driver model selection according to steering wheel angle
// TODO: Add a delay between changes to prevent rapid flickering
// back & forth between animations
if (grCarInfo[index].nDRM > 0)
{
// choose a driver model to display
int curDRM = 0;
float curSteer = 0.0f;
for (i=0; i<grCarInfo[index].nDRM; i++)
{
if ((curCar->_steerCmd > 0.0 &&
grCarInfo[index].DRMThreshold[i] >= 0.0 &&
grCarInfo[index].DRMThreshold[i] <= curCar->_steerCmd &&
grCarInfo[index].DRMThreshold[i] >= curSteer) ||
(curCar->_steerCmd < 0.0 &&
grCarInfo[index].DRMThreshold[i] <= 0.0 &&
grCarInfo[index].DRMThreshold[i] >= curCar->_steerCmd &&
grCarInfo[index].DRMThreshold[i] <= curSteer))
{
curDRM = i;
curSteer = grCarInfo[index].DRMThreshold[i];
}
}
grCarInfo[index].DRMSelector->select( grCarInfo[index].DRMSelectMask[curDRM] );
}
} }
// Animated driver model selection according to steering wheel angle
if (grCarInfo[index].nDRM > 0)
{
// choose a driver model to display
int curDRM = 0;
float curSteer = 0.0f;
for (i=0; i<grCarInfo[index].nDRM; i++)
{
if ((curCar->_steerCmd > 0.0 &&
grCarInfo[index].DRMThreshold[i] >= 0.0 &&
grCarInfo[index].DRMThreshold[i] <= curCar->_steerCmd &&
grCarInfo[index].DRMThreshold[i] >= curSteer) ||
(curCar->_steerCmd < 0.0 &&
grCarInfo[index].DRMThreshold[i] <= 0.0 &&
grCarInfo[index].DRMThreshold[i] >= curCar->_steerCmd &&
grCarInfo[index].DRMThreshold[i] <= curSteer))
{
curDRM = i;
curSteer = grCarInfo[index].DRMThreshold[i];
}
}
grCarInfo[index].DRMSelector->select( grCarInfo[index].DRMSelectMask[curDRM] );
}
sgCopyMat4(grCarInfo[index].carPos, car->_posMat); sgCopyMat4(grCarInfo[index].carPos, car->_posMat);
grCarInfo[index].px=car->_pos_X; grCarInfo[index].px=car->_pos_X;