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)) {
|
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;
|
||||||
|
|
Loading…
Reference in a new issue