This commit is contained in:
parent
1a606c048d
commit
d18e92c6ae
10 changed files with 194 additions and 33 deletions
|
@ -70,6 +70,10 @@
|
|||
#include "map\map.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAMESLOT_H__
|
||||
#include "game\gameslot.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -169,6 +173,11 @@ void CFrontEndScene::init()
|
|||
m_font=new ("frontendfont") FontBank();
|
||||
m_font->initialise(&standardFont);
|
||||
m_font->setJustification(FontBank::JUST_CENTRE);
|
||||
|
||||
#ifndef __E3__
|
||||
CGameSlotManager::eraseGameSlot(0);
|
||||
CGameSlotManager::setActiveSlot(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -296,6 +296,21 @@ CPlayer * CGameScene::getPlayer()
|
|||
return( m_player );
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
int CGameScene::getChapterNumber()
|
||||
{
|
||||
return Level.getCurrentChapter();
|
||||
}
|
||||
int CGameScene::getLevelNumber()
|
||||
{
|
||||
return Level.getCurrentChapterLevel();
|
||||
}
|
||||
|
||||
int CGameScene::getTotalSpatCountForThisLevel()
|
||||
{
|
||||
return Level.getTotalSpatCount();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CGameScene::respawnLevel()
|
||||
{
|
||||
|
|
|
@ -39,6 +39,10 @@ virtual int canPause();
|
|||
int readyToShutdown();
|
||||
char *getSceneName() {return "Game";}
|
||||
|
||||
int getChapterNumber();
|
||||
int getLevelNumber();
|
||||
int getTotalSpatCountForThisLevel();
|
||||
|
||||
CPlayer *getPlayer();
|
||||
void respawnLevel();
|
||||
void sendEvent( GAME_EVENT evt, class CThing *sourceThing );
|
||||
|
@ -47,6 +51,7 @@ static void setReadyToExit() {s_readyToExit=true;}
|
|||
static void levelFinished() {s_levelFinished=true;}
|
||||
static void restartlevel() {s_restartLevel=true;}
|
||||
|
||||
|
||||
// static MATRIX &GetCamMtx() {return(CamMtx);}
|
||||
static ACTOR_TYPE getActorType( int actorNum ) {return actorType[actorNum];}
|
||||
|
||||
|
|
|
@ -34,6 +34,14 @@
|
|||
#include "player\player.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAMESLOT_H__
|
||||
#include "game\gameslot.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -149,7 +157,7 @@ void CPauseMenu::init()
|
|||
&newmode,PLAYER_MODE_DEAD);
|
||||
xpos+=TEXT_SPACING;
|
||||
#else
|
||||
xpos+=TEXT_SPACING*2;
|
||||
xpos+=TEXT_SPACING*4;
|
||||
CGUIFactory::createValueButtonFrame(m_guiFrame,
|
||||
(FRAME_WIDTH-TEXT_BOX_WIDTH)/2,xpos,TEXT_BOX_WIDTH,TEXT_BOX_HEIGHT,
|
||||
STR__PAUSE_MENU__CONTINUE,
|
||||
|
@ -169,6 +177,10 @@ void CPauseMenu::init()
|
|||
xpos+=TEXT_SPACING*2;
|
||||
#endif
|
||||
|
||||
m_guiSpatReadout=new ("SpatReadout") CGUISpatCountReadout();
|
||||
m_guiSpatReadout->init(m_guiFrame);
|
||||
m_guiSpatReadout->setObjectXYWH(10,10,120,40);
|
||||
|
||||
m_active=false;
|
||||
}
|
||||
|
||||
|
@ -193,10 +205,16 @@ void CPauseMenu::shutdown()
|
|||
---------------------------------------------------------------------- */
|
||||
void CPauseMenu::select()
|
||||
{
|
||||
int chapter,level;
|
||||
m_active=true;
|
||||
m_exitPauseMenuFlag=false;
|
||||
m_quitGameFlag=false;
|
||||
m_guiFrame->select();
|
||||
|
||||
chapter=GameScene.getChapterNumber();
|
||||
level=GameScene.getLevelNumber();
|
||||
m_guiSpatReadout->setSpatCounts(CGameSlotManager::getSlotData()->getSpatulaCollectedCount(chapter,level),
|
||||
GameScene.getTotalSpatCountForThisLevel());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ private:
|
|||
int m_quitGameFlag;
|
||||
|
||||
class CGUIControlFrame *m_guiFrame;
|
||||
class CGUISpatCountReadout *m_guiSpatReadout;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -45,6 +45,10 @@
|
|||
#include <biglump.h>
|
||||
#endif
|
||||
|
||||
#ifndef __SPR_SPRITES_H__
|
||||
#include <sprites.h>
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Tyepdefs && Defines
|
||||
|
@ -113,8 +117,6 @@ void CGUITextReadout::setReadoutData(TextReadoutData *_data)
|
|||
---------------------------------------------------------------------- */
|
||||
void CGUITextReadout::render()
|
||||
{
|
||||
FontBank *fb;
|
||||
|
||||
if(!isHidden())
|
||||
{
|
||||
getFontBank()->print((getW()-(BORDERWIDTH*2))/2,m_textY,m_textId);
|
||||
|
@ -190,6 +192,84 @@ void CGUITextReadout::recalc()
|
|||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUISpatCountReadout::init(CGUIObject *_parent,GUIId _id)
|
||||
{
|
||||
CGUIObjectWithFont::init(_parent,_id);
|
||||
m_spatsCollected=m_spatsTotal=0;
|
||||
m_spriteBank=new ("SpatCountReadoutSprites") SpriteBank();
|
||||
m_spriteBank->load(SPRITES_SPRITES_SPR);
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUISpatCountReadout::shutdown()
|
||||
{
|
||||
m_spriteBank->dump(); delete m_spriteBank;
|
||||
CGUIObjectWithFont::shutdown();
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUISpatCountReadout::setSpatCounts(int _collected,int _total)
|
||||
{
|
||||
m_spatsCollected=_collected;
|
||||
m_spatsTotal=_total;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CGUISpatCountReadout::render()
|
||||
{
|
||||
if(!isHidden())
|
||||
{
|
||||
FontBank *fb;
|
||||
sFrameHdr *fh;
|
||||
char buf[100];
|
||||
int x,y;
|
||||
|
||||
fb=getFontBank();
|
||||
fh=m_spriteBank->getFrameHeader(FRM__SPATULA);
|
||||
|
||||
sprintf(buf,"%d/%d",m_spatsCollected,m_spatsTotal);
|
||||
x=getW()-fb->getStringWidth(buf);
|
||||
y=(getH()/2)-fb->getCharHeight();
|
||||
fb->print(x,y,buf);
|
||||
|
||||
x=getX()+getParentX();
|
||||
y=getY()+getParentY()+((getH()-fh->H)/2);
|
||||
m_spriteBank->printFT4(fh,x,y,0,0,0);
|
||||
}
|
||||
CGUIObjectWithFont::render();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
|
|
|
@ -67,6 +67,24 @@ private:
|
|||
};
|
||||
|
||||
|
||||
class CGUISpatCountReadout : public CGUIObjectWithFont
|
||||
{
|
||||
public:
|
||||
virtual void init(CGUIObject *_parent,GUIId _id=noId);
|
||||
virtual void shutdown();
|
||||
|
||||
virtual void setSpatCounts(int _collected,int _total);
|
||||
|
||||
virtual void render();
|
||||
|
||||
|
||||
private:
|
||||
int m_spatsCollected,m_spatsTotal;
|
||||
class SpriteBank *m_spriteBank;
|
||||
|
||||
};
|
||||
|
||||
|
||||
class CGUISpriteReadout : public CGUIObjectWithSpriteBank
|
||||
{
|
||||
public:
|
||||
|
|
|
@ -93,39 +93,39 @@ extern int s_globalLevelSelectThing;
|
|||
sLvlTab LvlTable[]=
|
||||
{
|
||||
// C1
|
||||
{1,1,LEVELS_CHAPTER01_LEVEL01_LVL,LEVELS_CHAPTER01_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL1},
|
||||
{1,2,LEVELS_CHAPTER01_LEVEL02_LVL,LEVELS_CHAPTER01_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL2},
|
||||
{1,3,LEVELS_CHAPTER01_LEVEL03_LVL,LEVELS_CHAPTER01_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL3},
|
||||
{1,4,LEVELS_CHAPTER01_LEVEL04_LVL,LEVELS_CHAPTER01_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL4},
|
||||
{1,1, 20, LEVELS_CHAPTER01_LEVEL01_LVL,LEVELS_CHAPTER01_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL1},
|
||||
{1,2, 20, LEVELS_CHAPTER01_LEVEL02_LVL,LEVELS_CHAPTER01_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL2},
|
||||
{1,3, 20, LEVELS_CHAPTER01_LEVEL03_LVL,LEVELS_CHAPTER01_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL3},
|
||||
{1,4, 20, LEVELS_CHAPTER01_LEVEL04_LVL,LEVELS_CHAPTER01_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER1_LEVEL4},
|
||||
|
||||
// C2
|
||||
{2,1,LEVELS_CHAPTER02_LEVEL01_LVL,LEVELS_CHAPTER02_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL1},
|
||||
{2,2,LEVELS_CHAPTER02_LEVEL02_LVL,LEVELS_CHAPTER02_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL2},
|
||||
{2,3,LEVELS_CHAPTER02_LEVEL03_LVL,LEVELS_CHAPTER02_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL3},
|
||||
{2,4,LEVELS_CHAPTER02_LEVEL04_LVL,LEVELS_CHAPTER02_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL4},
|
||||
{2,1, 20, LEVELS_CHAPTER02_LEVEL01_LVL,LEVELS_CHAPTER02_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL1},
|
||||
{2,2, 20, LEVELS_CHAPTER02_LEVEL02_LVL,LEVELS_CHAPTER02_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL2},
|
||||
{2,3, 20, LEVELS_CHAPTER02_LEVEL03_LVL,LEVELS_CHAPTER02_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL3},
|
||||
{2,4, 20, LEVELS_CHAPTER02_LEVEL04_LVL,LEVELS_CHAPTER02_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER2_LEVEL4},
|
||||
// C3
|
||||
{3,1,LEVELS_CHAPTER03_LEVEL01_LVL,LEVELS_CHAPTER03_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL1},
|
||||
{3,2,LEVELS_CHAPTER03_LEVEL02_LVL,LEVELS_CHAPTER03_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL2},
|
||||
{3,3,LEVELS_CHAPTER03_LEVEL03_LVL,LEVELS_CHAPTER03_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL3},
|
||||
{3,4,LEVELS_CHAPTER03_LEVEL04_LVL,LEVELS_CHAPTER03_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL4},
|
||||
{3,1, 20, LEVELS_CHAPTER03_LEVEL01_LVL,LEVELS_CHAPTER03_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL1},
|
||||
{3,2, 20, LEVELS_CHAPTER03_LEVEL02_LVL,LEVELS_CHAPTER03_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL2},
|
||||
{3,3, 20, LEVELS_CHAPTER03_LEVEL03_LVL,LEVELS_CHAPTER03_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL3},
|
||||
{3,4, 20, LEVELS_CHAPTER03_LEVEL04_LVL,LEVELS_CHAPTER03_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER3_LEVEL4},
|
||||
// C4
|
||||
{4,1,LEVELS_CHAPTER04_LEVEL01_LVL,LEVELS_CHAPTER04_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL1},
|
||||
{4,2,LEVELS_CHAPTER04_LEVEL02_LVL,LEVELS_CHAPTER04_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL2},
|
||||
{4,3,LEVELS_CHAPTER04_LEVEL03_LVL,LEVELS_CHAPTER04_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL3},
|
||||
{4,4,LEVELS_CHAPTER04_LEVEL04_LVL,LEVELS_CHAPTER04_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL4},
|
||||
{4,1, 20, LEVELS_CHAPTER04_LEVEL01_LVL,LEVELS_CHAPTER04_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL1},
|
||||
{4,2, 20, LEVELS_CHAPTER04_LEVEL02_LVL,LEVELS_CHAPTER04_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL2},
|
||||
{4,3, 20, LEVELS_CHAPTER04_LEVEL03_LVL,LEVELS_CHAPTER04_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL3},
|
||||
{4,4, 20, LEVELS_CHAPTER04_LEVEL04_LVL,LEVELS_CHAPTER04_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER4_LEVEL4},
|
||||
// C5
|
||||
{5,1,LEVELS_CHAPTER05_LEVEL01_LVL,LEVELS_CHAPTER05_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL1},
|
||||
{5,2,LEVELS_CHAPTER05_LEVEL02_LVL,LEVELS_CHAPTER05_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL2},
|
||||
{5,3,LEVELS_CHAPTER05_LEVEL03_LVL,LEVELS_CHAPTER05_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL3},
|
||||
{5,4,LEVELS_CHAPTER05_LEVEL04_LVL,LEVELS_CHAPTER05_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL4},
|
||||
{5,1, 20, LEVELS_CHAPTER05_LEVEL01_LVL,LEVELS_CHAPTER05_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL1},
|
||||
{5,2, 20, LEVELS_CHAPTER05_LEVEL02_LVL,LEVELS_CHAPTER05_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL2},
|
||||
{5,3, 20, LEVELS_CHAPTER05_LEVEL03_LVL,LEVELS_CHAPTER05_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL3},
|
||||
{5,4, 20, LEVELS_CHAPTER05_LEVEL04_LVL,LEVELS_CHAPTER05_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER5_LEVEL4},
|
||||
// C6
|
||||
{6,1,LEVELS_CHAPTER06_LEVEL01_LVL,LEVELS_CHAPTER06_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER6_ROLLERCOASTER},
|
||||
{6,2,LEVELS_CHAPTER06_LEVEL02_LVL,LEVELS_CHAPTER06_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER6_SNAILRACE},
|
||||
{6,3,LEVELS_CHAPTER06_LEVEL03_LVL,LEVELS_CHAPTER06_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER6_BIGWHEEL},
|
||||
{6,4,LEVELS_CHAPTER06_LEVEL04_LVL,LEVELS_CHAPTER06_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE},
|
||||
{6,5,LEVELS_CHAPTER06_LEVEL05_LVL,LEVELS_CHAPTER06_LEVEL05_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE},
|
||||
{6,1, 20, LEVELS_CHAPTER06_LEVEL01_LVL,LEVELS_CHAPTER06_LEVEL01_TEX, CSoundMediator::SONG_CHAPTER6_ROLLERCOASTER},
|
||||
{6,2, 20, LEVELS_CHAPTER06_LEVEL02_LVL,LEVELS_CHAPTER06_LEVEL02_TEX, CSoundMediator::SONG_CHAPTER6_SNAILRACE},
|
||||
{6,3, 20, LEVELS_CHAPTER06_LEVEL03_LVL,LEVELS_CHAPTER06_LEVEL03_TEX, CSoundMediator::SONG_CHAPTER6_BIGWHEEL},
|
||||
{6,4, 20, LEVELS_CHAPTER06_LEVEL04_LVL,LEVELS_CHAPTER06_LEVEL04_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE},
|
||||
{6,5, 20, LEVELS_CHAPTER06_LEVEL05_LVL,LEVELS_CHAPTER06_LEVEL05_TEX, CSoundMediator::SONG_CHAPTER6_TUNNELOFLOVE},
|
||||
// FMA
|
||||
{6,99,LEVELS_FMA_SHADYSHOALS_LVL,LEVELS_FMA_SHADYSHOALS_TEX, CSoundMediator::SONG_TITLE},
|
||||
{6,99, 0, LEVELS_FMA_SHADYSHOALS_LVL,LEVELS_FMA_SHADYSHOALS_TEX, CSoundMediator::SONG_TITLE},
|
||||
|
||||
};
|
||||
const static int LvlTableSize=sizeof(LvlTable)/sizeof(sLvlTab);
|
||||
|
@ -440,7 +440,7 @@ void CLevel::initThings(int _respawningLevel)
|
|||
{
|
||||
int isSpat=(PICKUP_TYPE)ItemList->Type==PICKUP__SPATULA;
|
||||
CBasePickup *newPickup;
|
||||
if(!isSpat||CGameSlotManager::getSlotData()->isSpatulaUncollected(0,0,spatNumber))
|
||||
if(!isSpat||CGameSlotManager::getSlotData()->isSpatulaUncollected(GameScene.getChapterNumber(),GameScene.getLevelNumber(),spatNumber))
|
||||
{
|
||||
pos.vx=ItemList->Pos.X<<4;
|
||||
pos.vy=ItemList->Pos.Y<<4;
|
||||
|
@ -649,4 +649,13 @@ int CLevel::getCurrentChapterLevel()
|
|||
return( LvlTable[s_globalLevelSelectThing].Level );
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
/*****************************************************************************/
|
||||
int CLevel::getTotalSpatCount()
|
||||
{
|
||||
return( LvlTable[s_globalLevelSelectThing].totalSpatCount);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
struct sLvlTab
|
||||
{
|
||||
u16 Chapter,Level;
|
||||
u8 totalSpatCount;
|
||||
FileEquate LevelFilename,TexFilename;
|
||||
int songId;
|
||||
};
|
||||
|
@ -37,6 +38,7 @@ static DVECTOR const &getPlayerSpawnPos() {return s_playerSpawnPos;}
|
|||
|
||||
static int getCurrentChapter();
|
||||
static int getCurrentChapterLevel();
|
||||
static int getTotalSpatCount();
|
||||
|
||||
int getActorCount() {return ActorCount;}
|
||||
sThingActor **getActorList() {return ActorList;}
|
||||
|
|
|
@ -33,6 +33,10 @@
|
|||
#include "game\gameslot.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
|
@ -105,7 +109,7 @@ DVECTOR CSpatulaPickup::getSizeForPlacement()
|
|||
void CSpatulaPickup::collect(class CPlayer *_player)
|
||||
{
|
||||
CBasePickup::collect(_player);
|
||||
CGameSlotManager::getSlotData()->collectSpatula(0,0,m_spatulaNumber);
|
||||
CGameSlotManager::getSlotData()->collectSpatula(GameScene.getChapterNumber(),GameScene.getLevelNumber(),m_spatulaNumber);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue