This commit is contained in:
parent
4e7b3a42cc
commit
a13f0d8e4f
6 changed files with 52 additions and 34 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,8 @@ public:
|
|||
|
||||
private:
|
||||
int m_active;
|
||||
int m_exitPauseMenuFlag;
|
||||
int m_quitGameFlag;
|
||||
|
||||
class CGUIControlFrame *m_guiFrame;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -14,9 +14,6 @@ class CLayer;
|
|||
class CLevel
|
||||
{
|
||||
public:
|
||||
CLevel();
|
||||
virtual ~CLevel();
|
||||
|
||||
// Scene Handlers
|
||||
void init();
|
||||
void shutdown();
|
||||
|
|
Loading…
Add table
Reference in a new issue