move backgroundsky in background.cpp

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@4452 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 2724e33a3d993a8ebde79f3e75ee2ec0895fdd96
Former-commit-id: da681ea7d0f89b626e0c44784fd42472c21fd25c
This commit is contained in:
torcs-ng 2012-01-23 10:43:31 +00:00
parent 6280a41f34
commit 9587a4d353
4 changed files with 35 additions and 20 deletions

View file

@ -26,6 +26,7 @@
#include <plib/ssgAux.h>
#include "grscene.h"
#include "grloadac.h"
#include "grmain.h"
#include "grcam.h" //cGrBackgroundCam
#include "grutil.h"
@ -844,6 +845,27 @@ grLoadBackground(void)
GfLogWarning("shadow2.png/rgb not found ; no shadow mapping on cars for this track\n");
}//grLoadBackground
void grLoadBackgroundSky(void)
{
char buf2[256];
const char *bgsky;
ssgEntity *desc2;
bgsky = "background-sky.ac";
snprintf(buf2, sizeof(buf2), "tracks/%s/%s;data/textures;.", grTrack->category, grTrack->internalname);
ssgTexturePath(buf2);
snprintf(buf2, sizeof(buf2), "data/objects");
ssgModelPath(buf2);
desc2 = grssgLoadAC3D(bgsky, NULL);
BackSkyAnchor->addKid(desc2);
sgCoord BackSkypos;
//sgSetCoord ( &backskypos, double(grWrldX/2), 0.0f, double(grWrldZ/2));
sgSetCoord(&BackSkypos, grWrldX/2, grWrldY/2, 0, 0, 0, 0);
BackSkyLoc->setTransform(&BackSkypos);
}
void
grPreDrawSky(tSituation* s, float fogStart, float fogEnd)
{
@ -1005,6 +1027,9 @@ grShutdownBackground(void)
if (SunAnchor)
SunAnchor = 0;
if (BackSkyAnchor)
BackSkyAnchor = 0;
if (grEnvState) {
ssgDeRefDelete(grEnvState);

View file

@ -32,6 +32,7 @@ extern void grPreDrawSky(struct Situation* s, float fogStart, float fogEnd);
extern void grPostDrawSky();
extern void grDrawStaticBackground(class cGrCamera *cam, class cGrBackgroundCam *bgCam);
extern void grShutdownBackground(void);
extern void grLoadBackgroundSky(void);
extern unsigned grSkyDomeDistance; // 0 means no sky dome (static background).
extern const tdble grSkyDomeNeutralFOVDistance;

View file

@ -135,7 +135,13 @@ grLoadScene(tTrack *track)
// Build scene.
TheScene = new ssgRoot;
/* Background Sky */
BackSkyAnchor = new ssgBranch;
BackSkyLoc = new ssgTransform;
BackSkyLoc->addKid(BackSkyAnchor);
TheScene->addKid(BackSkyLoc);
/* Landscape */
LandAnchor = new ssgBranch;
TheScene->addKid(LandAnchor);
@ -168,11 +174,6 @@ grLoadScene(tTrack *track)
TrackLightAnchor = new ssgBranch;
TheScene->addKid(TrackLightAnchor);
BackSkyAnchor = new ssgBranch;
BackSkyLoc = new ssgTransform;
BackSkyLoc->addKid(BackSkyAnchor);
TheScene->addKid(BackSkyLoc);
/* Load the background (horizon and sky) */
grLoadBackground();
@ -204,21 +205,8 @@ grLoadScene(tTrack *track)
{
grBGSky = strcmp(GfParmGetStr(grHandle, GR_SCT_GRAPHIC, GR_ATT_BGSKY, GR_ATT_BGSKY_DISABLED), GR_ATT_BGSKY_ENABLED) == 0;
if (grBGSky)
{
acname = "background-sky.ac";
snprintf(buf, sizeof(buf), "tracks/%s/%s;data/textures;data/img;.", grTrack->category, grTrack->internalname);
ssgTexturePath(buf);
snprintf(buf, sizeof(buf), "data/objects");
ssgModelPath(buf);
grLoadBackgroundSky();
desc = grssgLoadAC3D(acname, NULL);
BackSkyAnchor->addKid(desc);
sgCoord BackSkypos;
//sgSetCoord ( &backskypos, double(grWrldX/2), 0.0f, double(grWrldZ/2));
sgSetCoord(&BackSkypos, grWrldX/2, grWrldY/2, 0, 0, 0, 0);
BackSkyLoc->setTransform(&BackSkypos);
}
}

View file

@ -47,6 +47,7 @@ extern ssgBranch *CarlightAnchor;
extern ssgBranch *TrackLightAnchor;
extern ssgBranch *ThePits;
extern ssgBranch *BackSkyAnchor;
extern ssgTransform *BackSkyLoc;
extern ssgStateSelector *grEnvSelector;
extern cgrMultiTexState *grEnvState;