This commit is contained in:
Daveo 2001-04-04 00:16:26 +00:00
parent 1075b09fb0
commit c6fc65ca73
3 changed files with 21 additions and 6 deletions

View File

@ -91,6 +91,7 @@ int s_globalLevelSelectThing=120;
int CGameScene::s_readyToExit;
int CGameScene::s_levelFinished;
SpriteBank *CGameScene::s_BackSprites;
/*****************************************************************************/
@ -117,7 +118,12 @@ void CGameScene::init()
CFader::setFadingIn();
s_BackSprites=new ("BackGfx Sprites") SpriteBank();
s_BackSprites->load(LEVELS_LEVELBACKGFX_SPR);
initLevel();
CFileIO::EnableASync(true);
}
/*****************************************************************************/
@ -140,11 +146,13 @@ int CGameScene::canPause()
void CGameScene::shutdown()
{
CFileIO::EnableASync(false);
shutdownLevel(true);
CSoundMediator::dumpSong();
m_pauseMenu->shutdown(); delete m_pauseMenu;
s_genericFont->dump(); delete s_genericFont;
s_BackSprites->dump(); delete s_BackSprites;
}
/*****************************************************************************/
@ -168,6 +176,7 @@ void CGameScene::think(int _frames)
// }
//#endif
CFileIO::LoadASyncFiles();
if(s_readyToExit)
{
@ -274,12 +283,15 @@ void CGameScene::initLevel()
// Init actors (needs moving and tidying
int actorNum;
sThingActor **actorList = Level.getActorList();
sThingActor **actorList = Level.getActorList();
if (actorList)
{
for ( actorNum = 0 ; actorNum < Level.getActorCount() ; actorNum++ )
{
CNpcEnemy *enemy;
enemy = new ("npc enemy") CNpcEnemy;
ASSERT(enemy);
enemy->setTypeFromMapEdit( actorList[actorNum]->Type );
enemy->init();
enemy->setLayerCollision( Level.getCollisionLayer() );
@ -312,7 +324,7 @@ void CGameScene::initLevel()
enemy->postInit();
}
}
// Song is loaded/dumped by the level, and played from here. This just gives some
// better timing over when it starts (pkg)
CSoundMediator::playSong();

View File

@ -14,7 +14,7 @@
/*****************************************************************************/
class FontBank;
class SpriteBank;
class CGameScene : public CScene
{
public:
@ -38,6 +38,8 @@ virtual int canPause();
static void setReadyToExit() {s_readyToExit=true;}
static void levelFinished() {s_levelFinished=true;}
static SpriteBank *GetBackSprites() {return(s_BackSprites);}
protected:
void initLevel();
@ -52,6 +54,8 @@ protected:
static int s_readyToExit;
static int s_levelFinished;
static SpriteBank *s_BackSprites;
};

View File

@ -13,6 +13,7 @@
#include "LayerBack.h"
#include <levelbackgfx.h>
#include "Game\game.h"
sBackRGBTable CLayerBack::BackRGBTable[]=
{
@ -54,14 +55,12 @@ CLayerBack::CLayerBack(sLayerHdr *Hdr,sTile *TileBank) : CLayerTile(Hdr,TileBank
ASSERT(Data->Count<=LAYER_SHADE_RGB_MAX);
BandCount=Data->Count-1;
Sprites=new ("BackGfx Sprites") SpriteBank();
Sprites->load(LEVELS_LEVELBACKGFX_SPR);
Sprites=CGameScene::GetBackSprites();
}
/*****************************************************************************/
CLayerBack::~CLayerBack()
{
Sprites->dump(); delete Sprites;
}
/*****************************************************************************/