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

View File

@ -37,6 +37,8 @@ virtual void createPlayer();
static MATRIX *GetCamMtx() {return(&CamMtx);}
class CPlayer *getPlayer();
void sendEvent( GAME_EVENT evt, CThing *sourceThing );
static void setReadyToExit() {s_readyToExit=true;}
protected:
@ -45,7 +47,8 @@ protected:
class CPlayer *m_player;
static FontBank *s_genericFont;
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_HEIGHT 20
#define OT_POS 5
int m_exitFlag;
extern int newmode;
void CPauseMenu::init()
{
@ -86,27 +85,33 @@ void CPauseMenu::init()
CGUIFactory::createValueButtonFrame(m_guiFrame,
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,10,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
STR__PAUSE_MENU__CONTINUE,
&m_exitFlag,true);
&m_exitPauseMenuFlag,true);
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,
&newmode,0);
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,
&newmode,1);
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,
&newmode,2);
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,
&newmode,3);
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,
&newmode,4);
#endif
m_active=false;
}
@ -133,7 +138,8 @@ void CPauseMenu::shutdown()
void CPauseMenu::select()
{
m_active=true;
m_exitFlag=false;
m_exitPauseMenuFlag=false;
m_quitGameFlag=false;
m_guiFrame->select();
}
@ -147,7 +153,6 @@ void CPauseMenu::select()
void CPauseMenu::unselect()
{
m_active=false;
m_exitFlag=false;
m_guiFrame->unselect();
}
/*----------------------------------------------------------------------
@ -163,8 +168,14 @@ void CPauseMenu::think(int _frames)
if(m_active)
{
m_guiFrame->think(_frames);
if(m_exitFlag||newmode!=-1)
if(m_exitPauseMenuFlag||
m_quitGameFlag||
newmode!=-1)
{
if(m_quitGameFlag)
{
CGameScene::setReadyToExit();
}
unselect();
}
}

View File

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

View File

@ -22,33 +22,15 @@
DVECTOR CLevel::MapPos;
/*****************************************************************************/
CLevel::CLevel()
void CLevel::init()
{
for (int i=0; i<CLayerTile::LAYER_TILE_TYPE_MAX; i++)
{
TileLayers[i]=0;
}
MapPos.vx=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");
LevelHdr=(sLvlHdr *)CFileIO::loadFile(LEVELS_CHAPTER02_LEVEL0401_LVL,"Level Data");
m_levelTPage=TPLoadTex(LEVELS_CHAPTER02_LEVEL04_TEX);
@ -114,6 +96,15 @@ sTile *TileList=(sTile*)MakePtr(TileBankHdr,TileBankHdr->TileList);
/*****************************************************************************/
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);
CollisionLayer->shutdown(); MemFree(CollisionLayer);
MemFree(TileBankHdr);

View File

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