forked from speed-dreams/speed-dreams-code
Fix pit building issues with SD pit parameters
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6382 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 4cb9d7ae3b4fa7f910a99a78a1ecef3fccd82fc8 Former-commit-id: e14670571685cf85e9c006c835ec58171ae05a79
This commit is contained in:
parent
38ee0fce04
commit
aa5730e559
5 changed files with 112 additions and 86 deletions
|
@ -205,6 +205,7 @@
|
|||
#define TRK_ATT_PIT_INDICATOR "pit indicator"
|
||||
#define TRK_ATT_MAX_PITS "max pits"
|
||||
#define TRK_ATT_BUILDINGS_START "start buildings"
|
||||
#define TRK_ATT_BUILDINGS_STOPP "stop buildings"
|
||||
#define TRK_ATT_PIT_STYLE "pit style"
|
||||
#define TRK_ATT_ENTRY "entry"
|
||||
#define TRK_ATT_EXIT "exit"
|
||||
|
@ -441,6 +442,7 @@ typedef struct trackSeg
|
|||
#define TR_PIT 0x00000040 /**< Car pit */
|
||||
#define TR_PITSTART 0x00000080 /**< Car pit Star */
|
||||
#define TR_PITEND 0x00000100 /**< Car pit End */
|
||||
#define TR_PITBUILD 0x00000200 /**< Car pit while buildings */
|
||||
|
||||
tdble DoVfactor; /* the factor to use in calculating DoV for this Seg */
|
||||
|
||||
|
|
|
@ -1297,6 +1297,7 @@ ReadTrack3(tTrack *theTrack, void *TrackHandle, tRoadCam **camList, int ext)
|
|||
tTrackSeg *pitExitSeg = NULL;
|
||||
tTrackSeg *pitStart = NULL;
|
||||
tTrackSeg *pitBuildingsStart = NULL;
|
||||
tTrackSeg *pitBuildingsEnd = NULL;
|
||||
tTrackSeg *pitEnd = NULL;
|
||||
tTrackSeg *curPitSeg = NULL;
|
||||
tTrackPitInfo *pits;
|
||||
|
@ -1399,6 +1400,23 @@ ReadTrack3(tTrack *theTrack, void *TrackHandle, tRoadCam **camList, int ext)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
segName = GfParmGetStr(TrackHandle, TRK_SECT_MAIN, TRK_ATT_BUILDINGS_STOPP, NULL);
|
||||
if (segName != 0) {
|
||||
pitBuildingsEnd = theTrack->seg;
|
||||
found = 0;
|
||||
for(i = 0; i < theTrack->nseg; i++) {
|
||||
if (!strcmp(segName, pitBuildingsEnd->name)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
pitBuildingsEnd = pitBuildingsEnd->prev;
|
||||
}
|
||||
if (!found) {
|
||||
pitBuildingsEnd = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
segName = GfParmGetStr(TrackHandle, TRK_SECT_MAIN, TRK_ATT_PIT_END, NULL);
|
||||
if (segName != 0) {
|
||||
pitEnd = theTrack->seg->next;
|
||||
|
@ -1441,21 +1459,22 @@ ReadTrack3(tTrack *theTrack, void *TrackHandle, tRoadCam **camList, int ext)
|
|||
if (found && (strcmp(pitType, TRK_VAL_PIT_TYPE_SIDE) == 0)) {
|
||||
pits->type = TR_PIT_ON_TRACK_SIDE;
|
||||
pits->nPitSeg = 0;
|
||||
if (pitStart->lgfromstart > pitEnd->lgfromstart) {
|
||||
pits->nPitSeg = (int)((theTrack->length - pitStart->lgfromstart +
|
||||
pitEnd->lgfromstart + pitEnd->length + pits->len / 2.0) / pits->len);
|
||||
|
||||
if (pitBuildingsStart == NULL)
|
||||
pitBuildingsStart = pits->pitStart;
|
||||
if (pitBuildingsEnd == NULL)
|
||||
pitBuildingsEnd = pits->pitEnd;
|
||||
|
||||
if (pitBuildingsStart->lgfromstart > pitBuildingsEnd->lgfromstart) {
|
||||
pits->nPitSeg = (int)((theTrack->length - pitBuildingsStart->lgfromstart +
|
||||
pitBuildingsEnd->lgfromstart + pitBuildingsEnd->length + pits->len / 2.0) / pits->len);
|
||||
} else {
|
||||
pits->nPitSeg = (int)((- pitStart->lgfromstart + pitEnd->lgfromstart +
|
||||
pitEnd->length + pits->len / 2.0) / pits->len);
|
||||
pits->nPitSeg = (int)((- pitBuildingsStart->lgfromstart + pitBuildingsEnd->lgfromstart +
|
||||
pitBuildingsEnd->length + pits->len / 2.0) / pits->len);
|
||||
}
|
||||
pits->nMaxPits = MIN(pits->nPitSeg,(int)GfParmGetNum(TrackHandle, path2, TRK_ATT_MAX_PITS, (char*)NULL, (tdble) pits->nPitSeg));
|
||||
pits->driversPits = (tTrackOwnPit*)calloc(pits->nPitSeg, sizeof(tTrackOwnPit));
|
||||
//GfOut("pits->nPitSeg: %d\n",pits->nPitSeg);
|
||||
//GfOut("pits->nMaxPits: %d\n",pits->nMaxPits);
|
||||
|
||||
//mSeg = pits->pitStart->prev;
|
||||
if (pitBuildingsStart == NULL)
|
||||
pitBuildingsStart = pits->pitStart;
|
||||
mSeg = pitBuildingsStart->prev;
|
||||
changeSeg = 1;
|
||||
toStart = 0;
|
||||
|
@ -1512,22 +1531,7 @@ ReadTrack3(tTrack *theTrack, void *TrackHandle, tRoadCam **camList, int ext)
|
|||
|
||||
for (mSeg = pitStart->prev; mSeg != pitEnd->next->next; mSeg = mSeg->next) {
|
||||
curSeg2 = NULL;
|
||||
switch(pits->side) {
|
||||
case TR_RGT:
|
||||
curSeg = mSeg->rside;
|
||||
curSeg2 = curSeg->rside;
|
||||
if ((mSeg != pitBuildingsStart->prev) && (mSeg != pitEnd->next)) {
|
||||
mSeg->barrier[0]->style = TR_PITBUILDING;
|
||||
}
|
||||
break;
|
||||
case TR_LFT:
|
||||
curSeg = mSeg->lside;
|
||||
curSeg2 = curSeg->lside;
|
||||
if ((mSeg != pitBuildingsStart->prev) && (mSeg != pitEnd->next)) {
|
||||
mSeg->barrier[1]->style = TR_PITBUILDING;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if ((mSeg != pitStart->prev) && (mSeg != pitEnd->next)) {
|
||||
curSeg->raceInfo |= TR_PIT | TR_SPEEDLIMIT;
|
||||
if (curSeg2) {
|
||||
|
@ -1542,24 +1546,26 @@ ReadTrack3(tTrack *theTrack, void *TrackHandle, tRoadCam **camList, int ext)
|
|||
curSeg->raceInfo |= TR_PITEND;
|
||||
if (curSeg2) {
|
||||
curSeg2->raceInfo |= TR_PITEND;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for (mSeg = pitBuildingsStart; mSeg != pitEnd; mSeg = mSeg->next) {
|
||||
for (mSeg = pitBuildingsStart; mSeg != pitBuildingsEnd; mSeg = mSeg->next) {
|
||||
curSeg2 = NULL;
|
||||
switch(pits->side) {
|
||||
case TR_RGT:
|
||||
curSeg = mSeg->rside;
|
||||
curSeg2 = curSeg->rside;
|
||||
mSeg->barrier[0]->style = TR_PITBUILDING;
|
||||
curSeg2->raceInfo |= TR_PITBUILD;
|
||||
break;
|
||||
case TR_LFT:
|
||||
curSeg = mSeg->lside;
|
||||
curSeg2 = curSeg->lside;
|
||||
mSeg->barrier[1]->style = TR_PITBUILDING;
|
||||
curSeg2->raceInfo |= TR_PITBUILD;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,6 +69,7 @@ static tTrackSeg *pitEntrySeg = NULL;
|
|||
static tTrackSeg *pitExitSeg = NULL;
|
||||
static tTrackSeg *pitStart = NULL;
|
||||
static tTrackSeg *pitBuildingsStart = NULL;
|
||||
static tTrackSeg *pitBuildingsEnd = NULL;
|
||||
static tTrackSeg *pitEnd = NULL;
|
||||
|
||||
static tTrackPitInfo *pits = NULL;
|
||||
|
@ -787,6 +788,7 @@ static bool InitPits(tTrack *theTrack, void *TrackHandle) {
|
|||
pitExitSeg = NULL;
|
||||
pitStart = NULL;
|
||||
pitBuildingsStart = NULL;
|
||||
pitBuildingsEnd = NULL;
|
||||
pitEnd = NULL;
|
||||
|
||||
//Search for the pit section in the track XML file
|
||||
|
@ -878,6 +880,25 @@ static bool InitPits(tTrack *theTrack, void *TrackHandle) {
|
|||
}
|
||||
GfOut("PitBuildingStart: %s\n", pitBuildingsStart->name);
|
||||
|
||||
//Search for pit buildings end
|
||||
segName = GfParmGetStrNC(TrackHandle, path2, TRK_ATT_BUILDINGS_STOPP, NULL);
|
||||
if (segName != 0) {
|
||||
/* Search backward the last segment with that name */
|
||||
pitBuildingsEnd = theTrack->seg; /* last track segment */
|
||||
found = false;
|
||||
for(i = 0; i < theTrack->nseg; i++) {
|
||||
if (!strcmp(segName, pitBuildingsEnd->name)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
pitBuildingsEnd = pitBuildingsEnd->prev;
|
||||
}
|
||||
if (!found) {
|
||||
pitBuildingsEnd = NULL;
|
||||
}
|
||||
}
|
||||
GfOut("PitBuildungsEnd: %s\n", pitBuildingsEnd->name);
|
||||
|
||||
//Search for pits end
|
||||
segName = GfParmGetStrNC(TrackHandle, path2, TRK_ATT_END, NULL);
|
||||
if (segName != 0) {
|
||||
|
@ -918,7 +939,7 @@ static bool InitPits(tTrack *theTrack, void *TrackHandle) {
|
|||
pitExitSeg->raceInfo |= TR_PITEXIT;
|
||||
pits->len = GfParmGetNum(TrackHandle, path2, TRK_ATT_LEN, (char*)NULL, 15.0);
|
||||
pits->width = GfParmGetNum(TrackHandle, path2, TRK_ATT_WIDTH, (char*)NULL, 5.0);
|
||||
pits->pitindicator = GfParmGetNum(TrackHandle, path2, TRK_ATT_PIT_INDICATOR, (char*)NULL, 0.0);
|
||||
pits->pitindicator = (int) GfParmGetNum(TrackHandle, path2, TRK_ATT_PIT_INDICATOR, (char*)NULL, 0.0);
|
||||
found = true;
|
||||
} else {
|
||||
found = false;
|
||||
|
@ -950,18 +971,21 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
case TR_PIT_ON_TRACK_SIDE:
|
||||
{//dummy for eliminating warnings of locally declared variables cross-jumping with cases
|
||||
pits->nPitSeg = 0;
|
||||
if (pitStart->lgfromstart > pitEnd->lgfromstart) {
|
||||
pits->nPitSeg = (int)((theTrack->length - pitStart->lgfromstart
|
||||
+ pitEnd->lgfromstart + pitEnd->length + pits->len / 2.0) / pits->len);
|
||||
if (pitBuildingsStart == NULL)
|
||||
pitBuildingsStart = pitStart;
|
||||
if (pitBuildingsEnd == NULL)
|
||||
pitBuildingsEnd = pitEnd;
|
||||
|
||||
if (pitBuildingsStart->lgfromstart > pitBuildingsEnd->lgfromstart) {
|
||||
pits->nPitSeg = (int)((theTrack->length - pitBuildingsStart->lgfromstart
|
||||
+ pitBuildingsEnd->lgfromstart + pitBuildingsEnd->length + pits->len / 2.0) / pits->len);
|
||||
} else {
|
||||
pits->nPitSeg = (int)((pitEnd->lgfromstart + pitEnd->length
|
||||
- pitStart->lgfromstart + pits->len / 2.0) / pits->len);
|
||||
pits->nPitSeg = (int)((pitEnd->lgfromstart + pitBuildingsEnd->length
|
||||
- pitBuildingsStart->lgfromstart + pits->len / 2.0) / pits->len);
|
||||
}
|
||||
pits->nMaxPits = MIN(pits->nPitSeg,(int)GfParmGetNum(TrackHandle, path2, TRK_ATT_MAX_PITS, (char*)NULL, (tdble) pits->nPitSeg));
|
||||
pits->driversPits = (tTrackOwnPit*)calloc(pits->nPitSeg, sizeof(tTrackOwnPit));
|
||||
|
||||
if (pitBuildingsStart == NULL)
|
||||
pitBuildingsStart = pitStart;
|
||||
mSeg = pitBuildingsStart->prev;
|
||||
//mSeg = mSeg->next;
|
||||
|
||||
|
@ -1056,24 +1080,6 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
for (mSeg = pitStart->prev; mSeg != pitEnd->next->next; mSeg = mSeg->next) {
|
||||
curSeg = curSeg2 = NULL;
|
||||
|
||||
switch(pits->side) {
|
||||
case TR_RGT:
|
||||
curSeg = mSeg->rside;
|
||||
curSeg2 = curSeg->rside;
|
||||
if ((mSeg != pitBuildingsStart->prev) && (mSeg != pitEnd->next)) {
|
||||
mSeg->barrier[0]->style = TR_PITBUILDING;
|
||||
}
|
||||
break;
|
||||
|
||||
case TR_LFT:
|
||||
curSeg = mSeg->lside;
|
||||
curSeg2 = curSeg->lside;
|
||||
if ((mSeg != pitBuildingsStart->prev) && (mSeg != pitEnd->next)) {
|
||||
mSeg->barrier[1]->style = TR_PITBUILDING;
|
||||
}
|
||||
break;
|
||||
}//switch pits->side
|
||||
|
||||
if ((mSeg != pitStart->prev) && (mSeg != pitEnd->next)) {
|
||||
if (curSeg) {
|
||||
curSeg->raceInfo |= TR_PIT | TR_SPEEDLIMIT;
|
||||
|
@ -1110,7 +1116,7 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
}//switch pits->type
|
||||
}//if found
|
||||
|
||||
for (mSeg = pitBuildingsStart; mSeg != pitEnd; mSeg = mSeg->next) {
|
||||
for (mSeg = pitBuildingsStart; mSeg != pitBuildingsEnd; mSeg = mSeg->next) {
|
||||
curSeg2 = NULL;
|
||||
|
||||
switch(pits->side) {
|
||||
|
@ -1118,12 +1124,16 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
curSeg = mSeg->rside;
|
||||
curSeg2 = curSeg->rside;
|
||||
mSeg->barrier[0]->style = TR_PITBUILDING;
|
||||
curSeg2->raceInfo |= TR_PITBUILD;
|
||||
GfLogDebug("%s: mSeg->barrier[0]->style = TR_PITBUILDING\n",mSeg->name);
|
||||
break;
|
||||
|
||||
case TR_LFT:
|
||||
curSeg = mSeg->lside;
|
||||
curSeg2 = curSeg->lside;
|
||||
mSeg->barrier[1]->style = TR_PITBUILDING;
|
||||
curSeg2->raceInfo |= TR_PITBUILD;
|
||||
GfLogDebug("%s: mSeg->barrier[1]->style = TR_PITBUILDING\n",mSeg->name);
|
||||
break;
|
||||
}//switch pits->side
|
||||
}//for mSeg
|
||||
|
|
|
@ -81,6 +81,7 @@ static tTrackSeg *pitEntrySeg = NULL;
|
|||
static tTrackSeg *pitExitSeg = NULL;
|
||||
static tTrackSeg *pitStart = NULL;
|
||||
static tTrackSeg *pitBuildingsStart = NULL;
|
||||
static tTrackSeg *pitBuildingsEnd = NULL;
|
||||
static tTrackSeg *pitEnd = NULL;
|
||||
|
||||
static tTrackPitInfo *pits = NULL;
|
||||
|
@ -811,6 +812,7 @@ static bool InitPits(tTrack *theTrack, void *TrackHandle) {
|
|||
pitExitSeg = NULL;
|
||||
pitStart = NULL;
|
||||
pitBuildingsStart = NULL;
|
||||
pitBuildingsEnd = NULL;
|
||||
pitEnd = NULL;
|
||||
|
||||
//Search for the pit section in the track XML file
|
||||
|
@ -902,6 +904,25 @@ static bool InitPits(tTrack *theTrack, void *TrackHandle) {
|
|||
}
|
||||
GfOut("PitBuildingStart: %s\n", pitBuildingsStart->name);
|
||||
|
||||
//Search for pit buildings end
|
||||
segName = GfParmGetStrNC(TrackHandle, path2, TRK_ATT_BUILDINGS_STOPP, NULL);
|
||||
if (segName != 0) {
|
||||
/* Search backward the last segment with that name */
|
||||
pitBuildingsEnd = theTrack->seg; /* last track segment */
|
||||
found = false;
|
||||
for(i = 0; i < theTrack->nseg; i++) {
|
||||
if (!strcmp(segName, pitBuildingsEnd->name)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
pitBuildingsEnd = pitBuildingsEnd->prev;
|
||||
}
|
||||
if (!found) {
|
||||
pitBuildingsEnd = NULL;
|
||||
}
|
||||
}
|
||||
GfOut("PitBuildungsEnd: %s\n", pitBuildingsEnd->name);
|
||||
|
||||
//Search for pits end
|
||||
segName = GfParmGetStrNC(TrackHandle, path2, TRK_ATT_END, NULL);
|
||||
if (segName != 0)
|
||||
|
@ -950,7 +971,7 @@ static bool InitPits(tTrack *theTrack, void *TrackHandle) {
|
|||
pitExitSeg->raceInfo |= TR_PITEXIT;
|
||||
pits->len = GfParmGetNum(TrackHandle, path2, TRK_ATT_LEN, (char*)NULL, 15.0);
|
||||
pits->width = GfParmGetNum(TrackHandle, path2, TRK_ATT_WIDTH, (char*)NULL, 5.0);
|
||||
pits->pitindicator = GfParmGetNum(TrackHandle, path2, TRK_ATT_PIT_INDICATOR, (char*)NULL, 0.0);
|
||||
pits->pitindicator = (int) GfParmGetNum(TrackHandle, path2, TRK_ATT_PIT_INDICATOR, (char*)NULL, 0.0);
|
||||
found = true;
|
||||
} else
|
||||
{
|
||||
|
@ -983,20 +1004,23 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
case TR_PIT_ON_TRACK_SIDE:
|
||||
{//dummy for eliminating warnings of locally declared variables cross-jumping with cases
|
||||
pits->nPitSeg = 0;
|
||||
if (pitStart->lgfromstart > pitEnd->lgfromstart) {
|
||||
pits->nPitSeg = (int)((theTrack->length - pitStart->lgfromstart
|
||||
+ pitEnd->lgfromstart + pitEnd->length + pits->len / 2.0) / pits->len);
|
||||
|
||||
if (pitBuildingsStart == NULL)
|
||||
pitBuildingsStart = pitStart;
|
||||
if (pitBuildingsEnd == NULL)
|
||||
pitBuildingsEnd = pitEnd;
|
||||
|
||||
if (pitBuildingsStart->lgfromstart > pitBuildingsEnd->lgfromstart) {
|
||||
pits->nPitSeg = (int)((theTrack->length - pitBuildingsStart->lgfromstart
|
||||
+ pitBuildingsEnd->lgfromstart + pitBuildingsEnd->length + pits->len / 2.0) / pits->len);
|
||||
} else {
|
||||
pits->nPitSeg = (int)((pitEnd->lgfromstart + pitEnd->length
|
||||
- pitStart->lgfromstart + pits->len / 2.0) / pits->len);
|
||||
pits->nPitSeg = (int)((pitBuildingsEnd->lgfromstart + pitBuildingsEnd->length
|
||||
- pitBuildingsStart->lgfromstart + pits->len / 2.0) / pits->len);
|
||||
}
|
||||
pits->nMaxPits = MIN(pits->nPitSeg,(int)GfParmGetNum(TrackHandle, path2, TRK_ATT_MAX_PITS, (char*)NULL, (tdble) pits->nPitSeg));
|
||||
pits->driversPits = (tTrackOwnPit*)calloc(pits->nPitSeg, sizeof(tTrackOwnPit));
|
||||
|
||||
if (pitBuildingsStart == NULL)
|
||||
pitBuildingsStart = pitStart;
|
||||
mSeg = pitBuildingsStart->prev;
|
||||
//mSeg = mSeg->next;
|
||||
|
||||
bool changeSeg = true;
|
||||
tdble offset = 0;
|
||||
|
@ -1089,25 +1113,7 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
for (mSeg = pitStart->prev; mSeg != pitEnd->next->next; mSeg = mSeg->next) {
|
||||
curSeg = curSeg2 = NULL;
|
||||
|
||||
switch(pits->side) {
|
||||
case TR_RGT:
|
||||
curSeg = mSeg->rside;
|
||||
curSeg2 = curSeg->rside;
|
||||
if ((mSeg != pitBuildingsStart->prev) && (mSeg != pitEnd->next)) {
|
||||
mSeg->barrier[0]->style = TR_PITBUILDING;
|
||||
}
|
||||
break;
|
||||
|
||||
case TR_LFT:
|
||||
curSeg = mSeg->lside;
|
||||
curSeg2 = curSeg->lside;
|
||||
if ((mSeg != pitBuildingsStart->prev) && (mSeg != pitEnd->next)) {
|
||||
mSeg->barrier[1]->style = TR_PITBUILDING;
|
||||
}
|
||||
break;
|
||||
}//switch pits->side
|
||||
|
||||
if ((mSeg != pitStart->prev) && (mSeg != pitEnd->next)) {
|
||||
if ((mSeg != pitStart->prev) && (mSeg != pitEnd->next)) {
|
||||
if (curSeg) {
|
||||
curSeg->raceInfo |= TR_PIT | TR_SPEEDLIMIT;
|
||||
}
|
||||
|
@ -1143,7 +1149,7 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
}//switch pits->type
|
||||
}//if found
|
||||
|
||||
for (mSeg = pitBuildingsStart; mSeg != pitEnd; mSeg = mSeg->next) {
|
||||
for (mSeg = pitBuildingsStart; mSeg != pitBuildingsEnd; mSeg = mSeg->next) {
|
||||
curSeg2 = NULL;
|
||||
|
||||
switch(pits->side) {
|
||||
|
@ -1151,12 +1157,14 @@ static void AddPitDoors(tTrack *theTrack, void *TrackHandle, bool found) {
|
|||
curSeg = mSeg->rside;
|
||||
curSeg2 = curSeg->rside;
|
||||
mSeg->barrier[0]->style = TR_PITBUILDING;
|
||||
curSeg2->raceInfo |= TR_PITBUILD;
|
||||
break;
|
||||
|
||||
case TR_LFT:
|
||||
curSeg = mSeg->lside;
|
||||
curSeg2 = curSeg->lside;
|
||||
mSeg->barrier[1]->style = TR_PITBUILDING;
|
||||
curSeg2->raceInfo |= TR_PITBUILD;
|
||||
break;
|
||||
}//switch pits->side
|
||||
}//for mSeg
|
||||
|
@ -1245,7 +1253,7 @@ CreateSegRing(void *TrackHandle, tTrack *theTrack, tTrackSeg *start, tTrackSeg *
|
|||
yl = width;
|
||||
xr = GfParmGetNum(TrackHandle, TRK_SECT_MAIN, TRK_ATT_START_X, (char*)NULL, 0.0);
|
||||
yr = GfParmGetNum(TrackHandle, TRK_SECT_MAIN, TRK_ATT_START_Y, (char*)NULL, 0.0);
|
||||
alf = GfParmGetNum(TrackHandle, TRK_SECT_MAIN, TRK_ATT_START_BEARING, 0, FLOAT_DEG2RAD(0.0));
|
||||
alf = GfParmGetNum(TrackHandle, TRK_SECT_MAIN, TRK_ATT_START_BEARING, 0, FLOAT_DEG2RAD(0.0f));
|
||||
xr += wi2 * sin(alf);
|
||||
xl = xr - width * sin(alf);
|
||||
yr -= wi2 * cos(alf);
|
||||
|
|
|
@ -1721,7 +1721,7 @@ InitScene(tTrack *Track, void *TrackHandle, int bump)
|
|||
runninglentgh = 0;
|
||||
sprintf(sname, "B%dRt", j);
|
||||
for (i = 0, mseg = Track->seg->next; i < Track->nseg; i++, mseg = mseg->next) {
|
||||
if ((mseg->rside != NULL) && (mseg->rside->raceInfo & TR_PIT)) {
|
||||
if ((mseg->rside != NULL) && (mseg->rside->raceInfo & TR_PITBUILD)) {
|
||||
startNeeded = 1;
|
||||
runninglentgh = 0;
|
||||
NEWDISPLIST(0, sname, i);
|
||||
|
|
Loading…
Reference in a new issue