This commit is contained in:
Paul 2001-02-12 17:18:17 +00:00
parent 4e7b3a42cc
commit a13f0d8e4f
6 changed files with 52 additions and 34 deletions

View File

@ -51,6 +51,11 @@
#include "game\pause.h" #include "game\pause.h"
#endif #endif
#ifndef __FRONTEND_FRONTEND_H__
#include "frontend\frontend.h"
#endif
int GX=248; int GX=248;
int GY=129; int GY=129;
@ -65,6 +70,7 @@ MATRIX CGameScene::CamMtx;
/*****************************************************************************/ /*****************************************************************************/
int s_globalLevelSelectThing=0; int s_globalLevelSelectThing=0;
int CGameScene::s_readyToExit;
/*****************************************************************************/ /*****************************************************************************/
@ -104,6 +110,8 @@ void CGameScene::init()
SetGeomOffset( GX, GY ); SetGeomOffset( GX, GY );
SetGeomScreen(GH); SetGeomScreen(GH);
s_readyToExit=false;
} }
/*****************************************************************************/ /*****************************************************************************/
@ -172,12 +180,18 @@ void CGameScene::think(int _frames)
Level.setCameraCentre(camPos); Level.setCameraCentre(camPos);
Level.think(_frames); Level.think(_frames);
} }
if(s_readyToExit)
{
// Temporarily.. exiting game scene always goes back to the front end (pkg)
GameState::setNextScene(&FrontEndScene);
}
} }
/*****************************************************************************/ /*****************************************************************************/
int CGameScene::readyToShutdown() int CGameScene::readyToShutdown()
{ {
return false; return s_readyToExit;
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -37,6 +37,8 @@ virtual void createPlayer();
static MATRIX *GetCamMtx() {return(&CamMtx);} static MATRIX *GetCamMtx() {return(&CamMtx);}
class CPlayer *getPlayer(); class CPlayer *getPlayer();
void sendEvent( GAME_EVENT evt, CThing *sourceThing ); void sendEvent( GAME_EVENT evt, CThing *sourceThing );
static void setReadyToExit() {s_readyToExit=true;}
protected: protected:
@ -45,7 +47,8 @@ protected:
class CPlayer *m_player; class CPlayer *m_player;
static FontBank *s_genericFont; static FontBank *s_genericFont;
static MATRIX CamMtx; static MATRIX CamMtx;
//static class SpriteBank *s_sprites; <-- Was causing compile error, sorry
static int s_readyToExit;
}; };

View File

@ -73,7 +73,6 @@
#define TEXT_BOX_WIDTH 300 #define TEXT_BOX_WIDTH 300
#define TEXT_BOX_HEIGHT 20 #define TEXT_BOX_HEIGHT 20
#define OT_POS 5 #define OT_POS 5
int m_exitFlag;
extern int newmode; extern int newmode;
void CPauseMenu::init() void CPauseMenu::init()
{ {
@ -86,27 +85,33 @@ void CPauseMenu::init()
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,10,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,10,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__PAUSE_MENU__CONTINUE, STR__PAUSE_MENU__CONTINUE,
&m_exitFlag,true); &m_exitPauseMenuFlag,true);
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,40,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,30,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__PAUSE_MENU__QUIT,
&m_quitGameFlag,true);
#ifdef __USER_paul__
CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,60,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__BASICUNARMED_MODE, STR__DEBUG__BASICUNARMED_MODE,
&newmode,0); &newmode,0);
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,60,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,80,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__FULLUNARMED_MODE, STR__DEBUG__FULLUNARMED_MODE,
&newmode,1); &newmode,1);
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,80,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,100,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__SQUEAKYBOOTS_MODE, STR__DEBUG__SQUEAKYBOOTS_MODE,
&newmode,2); &newmode,2);
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,100,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,120,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__NET_MODE, STR__DEBUG__NET_MODE,
&newmode,3); &newmode,3);
CGUIFactory::createValueButtonFrame(m_guiFrame, CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,120,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT, (FRAME_WIDTH-TEXT_BOX_WIDTH)/2,140,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__DEBUG__CORALBLOWER_MODE, STR__DEBUG__CORALBLOWER_MODE,
&newmode,4); &newmode,4);
#endif
m_active=false; m_active=false;
} }
@ -133,7 +138,8 @@ void CPauseMenu::shutdown()
void CPauseMenu::select() void CPauseMenu::select()
{ {
m_active=true; m_active=true;
m_exitFlag=false; m_exitPauseMenuFlag=false;
m_quitGameFlag=false;
m_guiFrame->select(); m_guiFrame->select();
} }
@ -147,7 +153,6 @@ void CPauseMenu::select()
void CPauseMenu::unselect() void CPauseMenu::unselect()
{ {
m_active=false; m_active=false;
m_exitFlag=false;
m_guiFrame->unselect(); m_guiFrame->unselect();
} }
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
@ -163,8 +168,14 @@ void CPauseMenu::think(int _frames)
if(m_active) if(m_active)
{ {
m_guiFrame->think(_frames); m_guiFrame->think(_frames);
if(m_exitFlag||newmode!=-1) if(m_exitPauseMenuFlag||
m_quitGameFlag||
newmode!=-1)
{ {
if(m_quitGameFlag)
{
CGameScene::setReadyToExit();
}
unselect(); unselect();
} }
} }

View File

@ -45,6 +45,8 @@ public:
private: private:
int m_active; int m_active;
int m_exitPauseMenuFlag;
int m_quitGameFlag;
class CGUIControlFrame *m_guiFrame; class CGUIControlFrame *m_guiFrame;

View File

@ -22,33 +22,15 @@
DVECTOR CLevel::MapPos; DVECTOR CLevel::MapPos;
/*****************************************************************************/ /*****************************************************************************/
CLevel::CLevel() void CLevel::init()
{ {
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++) for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
{ {
TileLayers[i]=0; TileLayers[i]=0;
} }
MapPos.vx=0; MapPos.vx=0;
MapPos.vy=0; MapPos.vy=0;
}
/*****************************************************************************/
CLevel::~CLevel()
{
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
{
if (TileLayers[i])
{
TileLayers[i]->shutdown();
delete TileLayers[i];
}
}
}
/*****************************************************************************/
void CLevel::init()
{
TileBankHdr=(sTileBankHdr *)CFileIO::loadFile(LEVELS_CHAPTER02_LEVEL04_TBK,"Tile Bank Data"); TileBankHdr=(sTileBankHdr *)CFileIO::loadFile(LEVELS_CHAPTER02_LEVEL04_TBK,"Tile Bank Data");
LevelHdr=(sLvlHdr *)CFileIO::loadFile(LEVELS_CHAPTER02_LEVEL0401_LVL,"Level Data"); LevelHdr=(sLvlHdr *)CFileIO::loadFile(LEVELS_CHAPTER02_LEVEL0401_LVL,"Level Data");
m_levelTPage=TPLoadTex(LEVELS_CHAPTER02_LEVEL04_TEX); m_levelTPage=TPLoadTex(LEVELS_CHAPTER02_LEVEL04_TEX);
@ -114,6 +96,15 @@ sTile *TileList=(sTile*)MakePtr(TileBankHdr,TileBankHdr->TileList);
/*****************************************************************************/ /*****************************************************************************/
void CLevel::shutdown() void CLevel::shutdown()
{ {
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
{
if (TileLayers[i])
{
TileLayers[i]->shutdown();
delete TileLayers[i];
}
}
TPFree(m_levelTPage); TPFree(m_levelTPage);
CollisionLayer->shutdown(); MemFree(CollisionLayer); CollisionLayer->shutdown(); MemFree(CollisionLayer);
MemFree(TileBankHdr); MemFree(TileBankHdr);

View File

@ -14,9 +14,6 @@ class CLayer;
class CLevel class CLevel
{ {
public: public:
CLevel();
virtual ~CLevel();
// Scene Handlers // Scene Handlers
void init(); void init();
void shutdown(); void shutdown();