diff --git a/src/modules/graphic/ssggraph/grcar.cpp b/src/modules/graphic/ssggraph/grcar.cpp index 03f37f481..ab39300c4 100644 --- a/src/modules/graphic/ssggraph/grcar.cpp +++ b/src/modules/graphic/ssggraph/grcar.cpp @@ -1015,16 +1015,16 @@ grInitCar(tCarElt *car) // Separate rear wing models for animation according to rear wing angle ... snprintf(path, 256, "%s/%s", SECT_GROBJECTS, LST_REARWING); nranges = GfParmGetEltNb(handle, path) + 1; - grCarInfo[index].nDRM = nranges - 1; - grCarInfo[index].DRMSelector = NULL; + grCarInfo[index].nDRM2 = nranges - 1; + grCarInfo[index].DRMSelector2 = NULL; if (nranges > 1) { // We have at least one separate rearwing model to add... ssgEntity *rearwingEntity; - ssgSelector *DRMSel; - grCarInfo[index].DRMSelector = DRMSel = new ssgSelector; - grCarInfo[index].carTransform->addKid(DRMSel); + ssgSelector *DRMSel2; + grCarInfo[index].DRMSelector2 = DRMSel2 = new ssgSelector; + grCarInfo[index].carTransform->addKid(DRMSel2); selIndex = 0; @@ -1037,7 +1037,7 @@ grInitCar(tCarElt *car) snprintf(buf, nMaxTexPathSize, "%s/%s/%d", SECT_GROBJECTS, LST_REARWING, i); param = GfParmGetStr(handle, buf, PRM_REARWINGMODEL, ""); - grCarInfo[index].DRMThreshold[selIndex] = GfParmGetNum(handle, buf, PRM_REARWINGANGLE, NULL, 0.0); + grCarInfo[index].DRMThreshold2[selIndex] = GfParmGetNum(handle, buf, PRM_REARWINGANGLE, NULL, 0.0); tdble xpos = GfParmGetNum(handle, buf, PRM_XPOS, NULL, 0.0); tdble ypos = GfParmGetNum(handle, buf, PRM_YPOS, NULL, 0.0); @@ -1046,27 +1046,27 @@ grInitCar(tCarElt *car) rearwingLoc->setTransform( &rearwingpos); rearwingEntity = grssgCarLoadAC3D(param, NULL, index); - DBG_SET_NAME(rearwingEntity, "DRM", index, i-1); + DBG_SET_NAME(rearwingEntity, "DRM2", index, i-1); rearwingLoc->addKid(rearwingEntity); rearwingBody->addKid(rearwingLoc); - DRMSel->addKid(rearwingBody); - grCarInfo[index].DRMSelectMask[i-1] = 1 << selIndex; + DRMSel2->addKid(rearwingBody); + grCarInfo[index].DRMSelectMask2[i-1] = 1 << selIndex; selIndex++; } // select a default rearwing - angle value of 0.0 is desired... for (i = 1; i < nranges; i++) { - if (grCarInfo[index].DRMThreshold[i-1] == 0.0f) + if (grCarInfo[index].DRMThreshold2[i-1] == 0.0f) { - DRMSel->select( grCarInfo[index].DRMSelectMask[i-1] ); + DRMSel2->select( grCarInfo[index].DRMSelectMask2[i-1] ); break; } } if (i == nranges) - DRMSel->select( grCarInfo[index].DRMSelectMask[0] ); + DRMSel2->select( grCarInfo[index].DRMSelectMask2[0] ); } CarsAnchor->addKid(grCarInfo[index].carTransform); @@ -1208,48 +1208,48 @@ grDrawCar(tSituation *s, tCarElt *car, tCarElt *curCar, int dispCarFlag, int dis grCarInfo[index].rearwingSelector->select(1); // Animated rearwing model selection according to wing angle - if (grCarInfo[index].nDRM > 0) + if (grCarInfo[index].nDRM2 > 0) { // choose a rearwing model to display int curDRM = 0; //float curAngle = 0.0f; //int lastDRM = grCarInfo[index].DRMSelector->getSelect(); - for (i=0; i_wingRCmd * 180 / PI; if ((wingangle > 0.0) && (wingangle < 10.0) - && (grCarInfo[index].DRMThreshold[i] >= 0.0) - && (grCarInfo[index].DRMThreshold[i] <= 10.0)) + && (grCarInfo[index].DRMThreshold2[i] >= 0.0) + && (grCarInfo[index].DRMThreshold2[i] <= 10.0)) { curDRM = i; //curAngle = grCarInfo[index].DRMThreshold[i]; } else if ((wingangle > 10.0) && (wingangle < 35.0) - && (grCarInfo[index].DRMThreshold[i] >= 10.0) - && (grCarInfo[index].DRMThreshold[i] <= 35.0)) + && (grCarInfo[index].DRMThreshold2[i] >= 10.0) + && (grCarInfo[index].DRMThreshold2[i] <= 35.0)) { curDRM = i; //curAngle = grCarInfo[index].DRMThreshold[i]; } else if ((wingangle > 35.0) - && (grCarInfo[index].DRMThreshold[i] > 35.0)) + && (grCarInfo[index].DRMThreshold2[i] > 35.0)) { curDRM = i; //curAngle = grCarInfo[index].DRMThreshold[i]; } } - grCarInfo[index].DRMSelector->select( grCarInfo[index].DRMSelectMask[curDRM] ); + grCarInfo[index].DRMSelector2->select( grCarInfo[index].DRMSelectMask2[curDRM] ); } } else { grCarInfo[index].rearwingSelector->select(0); - if (grCarInfo[index].nDRM > 0) - grCarInfo[index].DRMSelector->select(0); + if (grCarInfo[index].nDRM2 > 0) + grCarInfo[index].DRMSelector2->select(0); } } diff --git a/src/modules/graphic/ssggraph/grcar.h b/src/modules/graphic/ssggraph/grcar.h index 85f173995..c4b9b0ecf 100644 --- a/src/modules/graphic/ssggraph/grcar.h +++ b/src/modules/graphic/ssggraph/grcar.h @@ -51,44 +51,48 @@ public: class tgrCarInfo { public: - float iconColor[4]; - ssgTransform *carTransform; - ssgSelector *LODSelector; - ssgSelector *DRMSelector; - ssgEntity *carEntity; + float iconColor[4]; + ssgTransform *carTransform; + ssgSelector *LODSelector; + ssgSelector *DRMSelector; + ssgSelector *DRMSelector2; + ssgEntity *carEntity; int nSteer; - int LODSelectMask[32]; - float LODThreshold[32]; - int DRMSelectMask[32]; + int LODSelectMask[32]; + float LODThreshold[32]; + int DRMSelectMask[32]; + int DRMSelectMask2[32]; int nDRM; - float DRMThreshold[32]; - float lastDRMswitch; - ssgSelector *driverSelector; - ssgSelector *steerSelector; - ssgSelector *rearwingSelector; - bool driverSelectorinsg; - bool rearwingSelectorinsg; + int nDRM2; + float DRMThreshold[32]; + float DRMThreshold2[32]; + float lastDRMswitch; + ssgSelector *driverSelector; + ssgSelector *steerSelector; + ssgSelector *rearwingSelector; + bool driverSelectorinsg; + bool rearwingSelectorinsg; ssgStateSelector *envSelector; - ssgTransform *wheelPos[4]; - ssgTransform *wheelRot[4]; - ssgTransform *steerRot[2]; + ssgTransform *wheelPos[4]; + ssgTransform *wheelRot[4]; + ssgTransform *steerRot[2]; ssgColourArray *brkColor[4]; - ssgSelector *wheelselector[4]; - ssgState *wheelTexture; + ssgSelector *wheelselector[4]; + ssgState *wheelTexture; ssgVtxTableShadow *shadowBase; ssgVtxTableShadow *shadowCurr; - ssgBranch *shadowAnchor; - cGrSkidmarks *skidmarks; - sgMat4 carPos; + ssgBranch *shadowAnchor; + cGrSkidmarks *skidmarks; + sgMat4 carPos; tgrCarInstrument instrument[2]; - tdble distFromStart; - tdble envAngle; - int fireCount; - tdble steerMovt; - tdble px; - tdble py; - tdble sx; - tdble sy; + tdble distFromStart; + tdble envAngle; + int fireCount; + tdble steerMovt; + tdble px; + tdble py; + tdble sx; + tdble sy; }; extern tgrCarInfo *grCarInfo;