forked from speed-dreams/speed-dreams-code
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:
parent
709bf2cf9a
commit
d591562622
1 changed files with 29 additions and 26 deletions
|
@ -831,6 +831,7 @@ grDrawCar(tCarElt *car, tCarElt *curCar, int dispCarFlag, int dispDrvFlag, doubl
|
|||
|
||||
if ((car == curCar) && (dispCarFlag != 1)) {
|
||||
grCarInfo[index].LODSelector->select(0);
|
||||
grCarInfo[index].DRMSelector->select(0);
|
||||
} else {
|
||||
lod = curCam->getLODFactor(car->_pos_X, car->_pos_Y, car->_pos_Z);
|
||||
i = 0;
|
||||
|
@ -846,34 +847,36 @@ grDrawCar(tCarElt *car, tCarElt *curCar, int dispCarFlag, int dispDrvFlag, doubl
|
|||
} else {
|
||||
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);
|
||||
grCarInfo[index].px=car->_pos_X;
|
||||
|
|
Loading…
Reference in a new issue