- added pit panel in Mile Speedway
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@6121 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 780860603ec76561b357d0fc3ee205f41fa02e68 Former-commit-id: 54253d3e6f640d24336e11995feb4da6fffea960
This commit is contained in:
parent
2dbe8f8d9c
commit
d1a3be0d50
2 changed files with 851 additions and 823 deletions
|
@ -825,7 +825,7 @@ void grLoadBackgroundSky(void)
|
||||||
bgsky = "background-sky.ac";
|
bgsky = "background-sky.ac";
|
||||||
snprintf(buf2, sizeof(buf2), "tracks/%s/%s;data/textures;.", grTrack->category, grTrack->internalname);
|
snprintf(buf2, sizeof(buf2), "tracks/%s/%s;data/textures;.", grTrack->category, grTrack->internalname);
|
||||||
ssgTexturePath(buf2);
|
ssgTexturePath(buf2);
|
||||||
snprintf(buf2, sizeof(buf2), "data/objects");
|
snprintf(buf2, sizeof(buf2), "tracks/%s/%s;data/objects", grTrack->category, grTrack->internalname);
|
||||||
ssgModelPath(buf2);
|
ssgModelPath(buf2);
|
||||||
|
|
||||||
desc2 = grssgLoadAC3D(bgsky, NULL);
|
desc2 = grssgLoadAC3D(bgsky, NULL);
|
||||||
|
@ -1010,22 +1010,26 @@ grShutdownBackground(void)
|
||||||
if (BackSkyAnchor)
|
if (BackSkyAnchor)
|
||||||
BackSkyAnchor = 0;
|
BackSkyAnchor = 0;
|
||||||
|
|
||||||
if (grEnvState) {
|
if (grEnvState)
|
||||||
|
{
|
||||||
ssgDeRefDelete(grEnvState);
|
ssgDeRefDelete(grEnvState);
|
||||||
grEnvState = 0;
|
grEnvState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grEnvShadowState) {
|
if (grEnvShadowState)
|
||||||
|
{
|
||||||
ssgDeRefDelete(grEnvShadowState);
|
ssgDeRefDelete(grEnvShadowState);
|
||||||
grEnvShadowState = 0;
|
grEnvShadowState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (grEnvShadowStateOnCars) {
|
if (grEnvShadowStateOnCars)
|
||||||
|
{
|
||||||
ssgDeRefDelete(grEnvShadowStateOnCars);
|
ssgDeRefDelete(grEnvShadowStateOnCars);
|
||||||
grEnvShadowStateOnCars = 0;
|
grEnvShadowStateOnCars = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(grEnvSelector) {
|
if(grEnvSelector)
|
||||||
|
{
|
||||||
delete grEnvSelector;
|
delete grEnvSelector;
|
||||||
grEnvSelector = 0;
|
grEnvSelector = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,10 +279,12 @@ void grCustomizePits(void)
|
||||||
|
|
||||||
|
|
||||||
// Draw the pit identification on the wall if any.
|
// Draw the pit identification on the wall if any.
|
||||||
switch (pits->type) {
|
switch (pits->type)
|
||||||
|
{
|
||||||
case TR_PIT_ON_TRACK_SIDE:
|
case TR_PIT_ON_TRACK_SIDE:
|
||||||
GfLogTrace("Creating track side pit buildings (%d slots) ...\n", pits->nMaxPits);
|
GfLogTrace("Creating track side pit buildings (%d slots) ...\n", pits->nMaxPits);
|
||||||
for (int i = 0; i < pits->nMaxPits; i++) {
|
for (int i = 0; i < pits->nMaxPits; i++)
|
||||||
|
{
|
||||||
//GfLogDebug("Pit Nbr: %d\n", i);
|
//GfLogDebug("Pit Nbr: %d\n", i);
|
||||||
ssgVertexArray *pit_vtx = new ssgVertexArray(4);
|
ssgVertexArray *pit_vtx = new ssgVertexArray(4);
|
||||||
ssgTexCoordArray *pit_tex = new ssgTexCoordArray(4);
|
ssgTexCoordArray *pit_tex = new ssgTexCoordArray(4);
|
||||||
|
@ -297,7 +299,8 @@ void grCustomizePits(void)
|
||||||
|
|
||||||
// If we have at least one car in the pit, use the team pit logo of driver 0.
|
// If we have at least one car in the pit, use the team pit logo of driver 0.
|
||||||
ssgState *st = 0;
|
ssgState *st = 0;
|
||||||
if (pits->driversPits[i].car[0]) {
|
if (pits->driversPits[i].car[0])
|
||||||
|
{
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
"%sdrivers/%s/%d;%sdrivers/%s;drivers/%s/%d;drivers/%s",
|
"%sdrivers/%s/%d;%sdrivers/%s;drivers/%s/%d;drivers/%s",
|
||||||
GfLocalDir(),
|
GfLocalDir(),
|
||||||
|
@ -313,7 +316,8 @@ void grCustomizePits(void)
|
||||||
// update the logo file name accordingly.
|
// update the logo file name accordingly.
|
||||||
int skinnedLogo = FALSE;
|
int skinnedLogo = FALSE;
|
||||||
if (strlen(pits->driversPits[i].car[0]->_skinName) != 0
|
if (strlen(pits->driversPits[i].car[0]->_skinName) != 0
|
||||||
&& pits->driversPits[i].car[0]->_skinTargets & RM_CAR_SKIN_TARGET_PIT_DOOR) {
|
&& pits->driversPits[i].car[0]->_skinTargets & RM_CAR_SKIN_TARGET_PIT_DOOR)
|
||||||
|
{
|
||||||
skinnedLogo = TRUE;
|
skinnedLogo = TRUE;
|
||||||
strLogoFileName += '-';
|
strLogoFileName += '-';
|
||||||
strLogoFileName += pits->driversPits[i].car[0]->_skinName;
|
strLogoFileName += pits->driversPits[i].car[0]->_skinName;
|
||||||
|
@ -325,18 +329,21 @@ void grCustomizePits(void)
|
||||||
const std::string strPNGLogoFileName = strLogoFileName + ".png";
|
const std::string strPNGLogoFileName = strLogoFileName + ".png";
|
||||||
st = grSsgLoadTexStateEx(strPNGLogoFileName.c_str(), buf, FALSE, FALSE, FALSE);
|
st = grSsgLoadTexStateEx(strPNGLogoFileName.c_str(), buf, FALSE, FALSE, FALSE);
|
||||||
#endif
|
#endif
|
||||||
if (!st) {
|
if (!st)
|
||||||
|
{
|
||||||
const std::string strRGBLogoFileName = strLogoFileName + ".rgb";
|
const std::string strRGBLogoFileName = strLogoFileName + ".rgb";
|
||||||
st = grSsgLoadTexStateEx(strRGBLogoFileName.c_str(), buf, FALSE, FALSE, skinnedLogo);
|
st = grSsgLoadTexStateEx(strRGBLogoFileName.c_str(), buf, FALSE, FALSE, skinnedLogo);
|
||||||
}
|
}
|
||||||
} // if pits->driverPits[i].car[0]
|
} // if pits->driverPits[i].car[0]
|
||||||
|
|
||||||
// If no car in the pit, or logo file not found, hope for the .rgb in data/textures.
|
// If no car in the pit, or logo file not found, hope for the .rgb in data/textures.
|
||||||
if (!st) {
|
if (!st)
|
||||||
|
{
|
||||||
snprintf(buf, sizeof(buf), "data/textures");
|
snprintf(buf, sizeof(buf), "data/textures");
|
||||||
const std::string strRGBLogoFileName = strLogoFileName + ".rgb";
|
const std::string strRGBLogoFileName = strLogoFileName + ".rgb";
|
||||||
st = grSsgLoadTexStateEx(strRGBLogoFileName.c_str(), buf, FALSE, FALSE, TRUE);
|
st = grSsgLoadTexStateEx(strRGBLogoFileName.c_str(), buf, FALSE, FALSE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
st->setOpaque();
|
st->setOpaque();
|
||||||
reinterpret_cast<ssgSimpleState*>(st)->setShininess(50);
|
reinterpret_cast<ssgSimpleState*>(st)->setShininess(50);
|
||||||
reinterpret_cast<ssgSimpleState*>(st)->disable(GL_BLEND);
|
reinterpret_cast<ssgSimpleState*>(st)->disable(GL_BLEND);
|
||||||
|
@ -436,6 +443,14 @@ void grCustomizePits(void)
|
||||||
// Done.
|
// Done.
|
||||||
ThePits->addKid(pit);
|
ThePits->addKid(pit);
|
||||||
} // for i
|
} // for i
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
char buf3[256];
|
||||||
|
snprintf(buf3, sizeof(buf3), "%strack-pit.ac", GfLocalDir());
|
||||||
|
|
||||||
|
ssgSaveAC ( buf3, PitsAnchor );
|
||||||
|
#endif
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TR_PIT_NO_BUILDING:
|
case TR_PIT_NO_BUILDING:
|
||||||
|
@ -505,7 +520,8 @@ void grCustomizePits(void)
|
||||||
else
|
else
|
||||||
bHasPitIndicator = false;
|
bHasPitIndicator = false;
|
||||||
|
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "data/textures");
|
snprintf(buf, sizeof(buf), "data/textures");
|
||||||
strLogoFileName = "tr-wall-gr";
|
strLogoFileName = "tr-wall-gr";
|
||||||
|
@ -721,6 +737,14 @@ void grCustomizePits(void)
|
||||||
}
|
}
|
||||||
} // for i
|
} // for i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
char buf2[256];
|
||||||
|
snprintf(buf2, sizeof(buf2), "%strack-pit.ac", GfLocalDir());
|
||||||
|
|
||||||
|
ssgSaveAC ( buf2, PitsAnchor );
|
||||||
|
#endif
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TR_PIT_ON_SEPARATE_PATH:
|
case TR_PIT_ON_SEPARATE_PATH:
|
||||||
|
@ -757,5 +781,5 @@ void grLoadPitsIndicator(tdble x, tdble y, tdble z, char *buf, int Pitind)
|
||||||
desc = grssgLoadAC3D("normal_pit_indicator.ac", NULL);
|
desc = grssgLoadAC3D("normal_pit_indicator.ac", NULL);
|
||||||
|
|
||||||
PitIndicatorLoc->addKid(desc);
|
PitIndicatorLoc->addKid(desc);
|
||||||
PitsAnchor->addKid(PitIndicatorLoc);
|
ThePits->addKid(PitIndicatorLoc);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue