This commit is contained in:
Paul 2000-11-20 17:28:21 +00:00
parent 4af556fcba
commit d27fbedb88
7 changed files with 48 additions and 36 deletions

View file

@ -54,8 +54,8 @@ static CFrontEndMainTitles s_frontEndModeMainTitles;
CFrontEndMode *CFrontEndScene::s_modeCodes[]= CFrontEndMode *CFrontEndScene::s_modeCodes[]=
{ {
&s_frontEndModeMainTitles, // MODE__MAIN_TITLES &s_frontEndModeMainTitles, // MODE__MAIN_TITLES
&s_frontEndModeMainTitles,//NULL, // MODE__GAME_OPTIONS NULL, // MODE__GAME_OPTIONS
&s_frontEndModeMainTitles,//NULL, // MODE__CHOOSE_SLOT NULL, // MODE__CHOOSE_SLOT
NULL, // MODE__DEMO NULL, // MODE__DEMO
NULL, // MODE__NONE NULL, // MODE__NONE
@ -145,14 +145,16 @@ void CFrontEndScene::setMode(FrontEndMode _newMode)
// Close old mode // Close old mode
if(s_modeCodes[m_mode]) if(s_modeCodes[m_mode])
{ {
PAUL_DBGMSG("CFrontEndScene::shutdown mode %d",m_mode);
s_modeCodes[m_mode]->shutdown(); s_modeCodes[m_mode]->shutdown();
} }
// Open new mode // Open new mode
m_mode=_newMode; m_mode=_newMode;
PAUL_DBGMSG("CFrontEndScene::init mode %d",m_mode);
s_modeCodes[m_mode]->init();
s_modeCodes[m_mode]->shutdown();
s_modeCodes[m_mode]->init(); s_modeCodes[m_mode]->init();
// s_modeCodes[m_mode]->shutdown();
// ASSERT(0);
} }

View file

@ -60,7 +60,7 @@ public:
void render(); void render();
void think(int _frames); void think(int _frames);
int readyToShutdown(); int readyToShutdown();
char *getSceneName() {return"FrontEndScene";} char *getSceneName() {return"FrontEnd";}
private: private:

View file

@ -126,7 +126,6 @@ PAUL_DBGMSG("initial mem free=%d",mem);
m_smallFont=new ("MainTitle SmallFont") FontBank(); m_smallFont=new ("MainTitle SmallFont") FontBank();
m_smallFont->initialise(&standardFont); m_smallFont->initialise(&standardFont);
m_smallFont->setJustification(FontBank::JUST_CENTRE); m_smallFont->setJustification(FontBank::JUST_CENTRE);
m_smallFont->setColour(PRESS_START_TEXT_R,PRESS_START_TEXT_G,PRESS_START_TEXT_B);
m_mode=MODE__PRESS_START; m_mode=MODE__PRESS_START;
@ -135,9 +134,7 @@ PAUL_DBGMSG("initial mem free=%d",mem);
m_mainMenu->init(NULL); m_mainMenu->init(NULL);
m_mainMenu->setObjectXYWH(106,140,300,40); m_mainMenu->setObjectXYWH(106,140,300,40);
m_mainMenu->clearFlags(CGUIObject::FLAG_DRAWBORDER); m_mainMenu->clearFlags(CGUIObject::FLAG_DRAWBORDER);
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
/*
fr=new ("frame") CGUIGroupFrame(); fr=new ("frame") CGUIGroupFrame();
fr->init(m_mainMenu); fr->init(m_mainMenu);
fr->setObjectXYWH(50,0,200,20); fr->setObjectXYWH(50,0,200,20);
@ -161,7 +158,6 @@ PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
tg->setButtonTarget(&m_gotoOptionsFlag); tg->setButtonTarget(&m_gotoOptionsFlag);
m_mainMenu->select(); m_mainMenu->select();
*/
m_startGameFlag=false; m_startGameFlag=false;
m_gotoOptionsFlag=false; m_gotoOptionsFlag=false;
@ -178,7 +174,7 @@ PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CFrontEndMainTitles::shutdown() void CFrontEndMainTitles::shutdown()
{ {
m_mainMenu->shutdown(); delete m_mainMenu; m_mainMenu->shutdown(); // GUI items delete themselves when shutdown..
m_smallFont->dump(); delete m_smallFont; m_smallFont->dump(); delete m_smallFont;
m_sprites->dump(); delete m_sprites; m_sprites->dump(); delete m_sprites;
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed)); PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
@ -271,7 +267,7 @@ void CFrontEndMainTitles::think(int _frames)
m_mainMenu->think(_frames); m_mainMenu->think(_frames);
if(m_startGameFlag) if(m_startGameFlag)
{ {
// CFader::setFadingOut(); CFader::setFadingOut();
m_mode=MODE__START_GAME; m_mode=MODE__START_GAME;
} }
else if(m_gotoOptionsFlag) else if(m_gotoOptionsFlag)
@ -318,11 +314,11 @@ CFrontEndScene::FrontEndMode CFrontEndMainTitles::getNextMode()
break; break;
case MODE__START_GAME: case MODE__START_GAME:
ret=CFrontEndScene::MODE__CHOOSE_SLOT; ret=CFrontEndScene::MODE__MAIN_TITLES;//MODE__CHOOSE_SLOT;
break; break;
case MODE__GOTO_OPTIONS: case MODE__GOTO_OPTIONS:
ret=CFrontEndScene::MODE__GAME_OPTIONS; ret=CFrontEndScene::MODE__MAIN_TITLES;//MODE__GAME_OPTIONS;
break; break;
} }
@ -454,6 +450,7 @@ void CFrontEndMainTitles::renderPressStart()
{ {
if(!CFader::isFading()) if(!CFader::isFading())
{ {
m_smallFont->setColour(PRESS_START_TEXT_R,PRESS_START_TEXT_G,PRESS_START_TEXT_B);
m_smallFont->print(256,PRESS_START_TEXT_Y,STR__FRONTEND__PRESS_START); m_smallFont->print(256,PRESS_START_TEXT_Y,STR__FRONTEND__PRESS_START);
} }
} }

View file

@ -26,6 +26,20 @@ MAX_TPAGES = 32,
const int TPRawW=64; const int TPRawW=64;
const int TPRawH=256; const int TPRawH=256;
struct sTPageInfo
{
s16 RefCount;
FileEquate TPageName;
s16 XOfs,YOfs;
u16 AnimTexCount;
sFrameHdr AnimTexFrame[TPAGE_MAX_ANIM_TEX];
};
struct sTPageCache
{
sTPageInfo Info[2];
};
static sTPageCache s_TPCache[MAX_TPAGES]; static sTPageCache s_TPCache[MAX_TPAGES];
// Theory!! // Theory!!
@ -233,6 +247,17 @@ int ReadLeft;
// DBG_MSG2("TPLoadTexWithHeaders Cached (%i,%i)",TPage,Half); // DBG_MSG2("TPLoadTexWithHeaders Cached (%i,%i)",TPage,Half);
s_TPCache[TPage].Info[Half].RefCount++; s_TPCache[TPage].Info[Half].RefCount++;
Cache=&s_TPCache[TPage].Info[Half]; Cache=&s_TPCache[TPage].Info[Half];
// Reload headers (PKG)
CFileIO::OpenFile(Filename);
CFileIO::ReadFile((void*)&TPHdr,sizeof(sTPageHdr));
*hdrs=(sFrameHdr*)MemAlloc(sizeof(sFrameHdr)*TPHdr.NoOfFrames,"TpFh(from cache)");
ReadLeft=CFileIO::GetReadLeft();
FramePtr=(sFrameHdr*)MemAlloc(ReadLeft,"TPLoadTemp");
CFileIO::ReadFile(FramePtr,ReadLeft);
CFileIO::CloseFile();
MCmemcpy(*hdrs,FramePtr,TPHdr.NoOfFrames*sizeof(sFrameHdr));
MemFree(FramePtr);
} }
else else
{ {

View file

@ -41,20 +41,6 @@ struct TPAGE_DESC
u8 yoffset; u8 yoffset;
}; };
struct sTPageInfo
{
s16 RefCount;
FileEquate TPageName;
s16 XOfs,YOfs;
u16 AnimTexCount;
sFrameHdr AnimTexFrame[TPAGE_MAX_ANIM_TEX];
};
struct sTPageCache
{
sTPageInfo Info[2];
};
/********************************************************************************************************/ /********************************************************************************************************/
void TPInit(); void TPInit();

View file

@ -5,7 +5,7 @@
Author: PKG Author: PKG
Created: Created:
Project: Spongebob Project: Spongebob
Purpose: Purpose: NB: GUI ITEMS delete() THEMSELVES WHEN THEY ARE SHUTDOWN!
Copyright (c) 2000 Climax Development Ltd Copyright (c) 2000 Climax Development Ltd

View file

@ -65,6 +65,8 @@ enum MEM_ID
MEM_GAMEOPTIONS, MEM_GAMEOPTIONS,
MEM_SYSTEM, MEM_SYSTEM,
MEM_UNKNOWN,
MEM_ID_MAX MEM_ID_MAX
}; };
@ -96,7 +98,7 @@ static const int s_dumpTextY = 120;
static const int s_dumpShift = 20; static const int s_dumpShift = 20;
static const int s_shadeX = 16; static const int s_shadeX = 16;
static const int s_shadeY = 110; static const int s_shadeY = 115;
static const int s_shadeW = 400; static const int s_shadeW = 400;
static const int s_shadeH = 80; static const int s_shadeH = 80;
static const CVECTOR s_shadeCol = { 0, 0, 0 }; static const CVECTOR s_shadeCol = { 0, 0, 0 };
@ -111,6 +113,7 @@ static const CVECTOR s_colors[ MEM_ID_MAX ] =
{ 0, 0, 255 }, // MEM_GAME { 0, 0, 255 }, // MEM_GAME
{ 255, 0, 255 }, // MEM_GAMEOPTIONS { 255, 0, 255 }, // MEM_GAMEOPTIONS
{ 255, 255, 255 }, // MEM_SYSTEM { 255, 255, 255 }, // MEM_SYSTEM
{ 0, 0, 0 }, // MEM_UNKNOWN
}; };
static const char * s_sceneNames[] = static const char * s_sceneNames[] =
@ -120,6 +123,7 @@ static const char * s_sceneNames[] =
"Game", "Game",
"GameOptions", "GameOptions",
"System", "System",
"UNKNOWN",
}; };
static const int s_nbSceneNames = sizeof(s_sceneNames) / sizeof(char *); static const int s_nbSceneNames = sizeof(s_sceneNames) / sizeof(char *);
@ -143,10 +147,10 @@ void dumpDebugMem()
MEM_PART * mem; MEM_PART * mem;
CVECTOR black = {0, 0, 0}; CVECTOR black = {0, 0, 0};
padd = PadGetDown( 1 ); padd = PadGetRepeat( 0 );
padh = PadGetHeld( 1 ); padh = PadGetHeld( 0 );
// if (padh & PAD_SQUARE) if (padh & PAD_SQUARE)
{ {
int dir; int dir;
@ -164,7 +168,6 @@ void dumpDebugMem()
if (s_currentMemPart < 0) s_currentMemPart = MAX_MEM_DUMP - 2; if (s_currentMemPart < 0) s_currentMemPart = MAX_MEM_DUMP - 2;
if (s_currentMemPart >= MAX_MEM_DUMP-1) s_currentMemPart = 0; if (s_currentMemPart >= MAX_MEM_DUMP-1) s_currentMemPart = 0;
while( !memDump[s_currentMemPart].addr ) while( !memDump[s_currentMemPart].addr )
{ {
s_currentMemPart += dir; s_currentMemPart += dir;
@ -304,7 +307,7 @@ void addDebugMem( void * addr, const char * name, const char * file, int line )
{ {
sname = scene->getSceneName(); sname = scene->getSceneName();
id = -1; id = MEM_UNKNOWN;
for (int i=0;i<s_nbSceneNames;i++) for (int i=0;i<s_nbSceneNames;i++)
{ {
if (!strcmp( sname, s_sceneNames[i] )) if (!strcmp( sname, s_sceneNames[i] ))
@ -312,7 +315,6 @@ void addDebugMem( void * addr, const char * name, const char * file, int line )
id = i; id = i;
} }
} }
if (id == -1) id = MEM_SYSTEM;
} }
else else
{ {