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"
|
#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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -38,6 +38,8 @@ virtual void createPlayer();
|
||||||
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:
|
||||||
|
|
||||||
CLevel Level;
|
CLevel Level;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Add table
Reference in a new issue