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 <plib/ssgAux.h>
#include "grscene.h" #include "grscene.h"
#include "grloadac.h"
#include "grmain.h" #include "grmain.h"
#include "grcam.h" //cGrBackgroundCam #include "grcam.h" //cGrBackgroundCam
#include "grutil.h" #include "grutil.h"
@ -844,6 +845,27 @@ grLoadBackground(void)
GfLogWarning("shadow2.png/rgb not found ; no shadow mapping on cars for this track\n"); GfLogWarning("shadow2.png/rgb not found ; no shadow mapping on cars for this track\n");
}//grLoadBackground }//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 void
grPreDrawSky(tSituation* s, float fogStart, float fogEnd) grPreDrawSky(tSituation* s, float fogStart, float fogEnd)
{ {
@ -1005,6 +1027,9 @@ grShutdownBackground(void)
if (SunAnchor) if (SunAnchor)
SunAnchor = 0; SunAnchor = 0;
if (BackSkyAnchor)
BackSkyAnchor = 0;
if (grEnvState) { if (grEnvState) {
ssgDeRefDelete(grEnvState); ssgDeRefDelete(grEnvState);

View file

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

View file

@ -135,7 +135,13 @@ grLoadScene(tTrack *track)
// Build scene. // Build scene.
TheScene = new ssgRoot; TheScene = new ssgRoot;
/* Background Sky */
BackSkyAnchor = new ssgBranch;
BackSkyLoc = new ssgTransform;
BackSkyLoc->addKid(BackSkyAnchor);
TheScene->addKid(BackSkyLoc);
/* Landscape */ /* Landscape */
LandAnchor = new ssgBranch; LandAnchor = new ssgBranch;
TheScene->addKid(LandAnchor); TheScene->addKid(LandAnchor);
@ -168,11 +174,6 @@ grLoadScene(tTrack *track)
TrackLightAnchor = new ssgBranch; TrackLightAnchor = new ssgBranch;
TheScene->addKid(TrackLightAnchor); TheScene->addKid(TrackLightAnchor);
BackSkyAnchor = new ssgBranch;
BackSkyLoc = new ssgTransform;
BackSkyLoc->addKid(BackSkyAnchor);
TheScene->addKid(BackSkyLoc);
/* Load the background (horizon and sky) */ /* Load the background (horizon and sky) */
grLoadBackground(); 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; grBGSky = strcmp(GfParmGetStr(grHandle, GR_SCT_GRAPHIC, GR_ATT_BGSKY, GR_ATT_BGSKY_DISABLED), GR_ATT_BGSKY_ENABLED) == 0;
if (grBGSky) if (grBGSky)
{ grLoadBackgroundSky();
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);
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 *TrackLightAnchor;
extern ssgBranch *ThePits; extern ssgBranch *ThePits;
extern ssgBranch *BackSkyAnchor; extern ssgBranch *BackSkyAnchor;
extern ssgTransform *BackSkyLoc;
extern ssgStateSelector *grEnvSelector; extern ssgStateSelector *grEnvSelector;
extern cgrMultiTexState *grEnvState; extern cgrMultiTexState *grEnvState;