From 40abc1e12077f6cd8920f5af2527649dca685067 Mon Sep 17 00:00:00 2001 From: Paul Date: Fri, 24 Nov 2000 17:30:49 +0000 Subject: [PATCH] --- makefile.gaz | 8 +- source/frontend/credits.cpp | 171 ++++++++++++++++++ source/frontend/credits.h | 70 +++++++ source/frontend/demomode.cpp | 1 - source/frontend/demomode.h | 4 - source/frontend/frontend.cpp | 13 +- source/frontend/frontend.h | 1 + source/frontend/maintitl.cpp | 20 +- source/frontend/maintitl.h | 6 +- .../spongebob project/spongebob project.dsp | 16 ++ 10 files changed, 294 insertions(+), 16 deletions(-) create mode 100644 source/frontend/credits.cpp create mode 100644 source/frontend/credits.h diff --git a/makefile.gaz b/makefile.gaz index 0a5da8abe..7801f296c 100644 --- a/makefile.gaz +++ b/makefile.gaz @@ -51,11 +51,13 @@ CD_FILESYS_LIB := CMXBoot fileio_src := fileio \ $($(FILE_SYSTEM)_FILESYS_SRC) -frontend_src := demomode \ +frontend_src := credits \ + demomode \ frontend \ - scrollbg \ maintitl \ - options + options \ + scrollbg \ + start game_src := game diff --git a/source/frontend/credits.cpp b/source/frontend/credits.cpp new file mode 100644 index 000000000..a5e978033 --- /dev/null +++ b/source/frontend/credits.cpp @@ -0,0 +1,171 @@ +/*========================================================================= + + credits.cpp + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2000 Climax Development Ltd + +===========================================================================*/ + + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#include "frontend\credits.h" + +#ifndef __GFX_SPRBANK_H__ +#include "gfx\sprbank.h" +#endif + +#ifndef __LOCALE_TEXTDBASE_H__ +#include "locale\textdbase.h" +#endif + +#ifndef __GFX_FADER_H__ +#include "gfx\fader.h" +#endif + +#ifndef __PRIM_HEADER__ +#include "gfx\prim.h" +#endif + +#ifndef __PAD_PADS_H__ +#include "pad\pads.h" +#endif + + +/* Std Lib + ------- */ + +/* Data + ---- */ + +#ifndef __SPR_FRONTEND_H__ +#include +#endif + + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +/*---------------------------------------------------------------------- + Function Prototypes + ------------------- */ + +/*---------------------------------------------------------------------- + Vars + ---- */ + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CFrontEndCredits::init() +{ +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CFrontEndCredits::shutdown() +{ +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CFrontEndCredits::select() +{ + m_shuttingDown=false; + CFader::setFadingIn(); +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CFrontEndCredits::unselect() +{ +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CFrontEndCredits::render() +{ + POLY_G4 *g4; + + g4=GetPrimG4(); + setXYWH(g4,0,0,512,256); + setRGB0(g4,99,50,50); + setRGB1(g4,50,50,99); + setRGB2(g4,50,99,50); + setRGB3(g4,99,50,99); + AddPrimToList(g4,1001); +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +void CFrontEndCredits::think(int _frames) +{ + if(!m_shuttingDown) + { + if(PadGetDown(0)&(PAD_CROSS|PAD_START)) + { + m_shuttingDown=true; + CFader::setFadingOut(); + } + } +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +int CFrontEndCredits::isReadyToExit() +{ + return !CFader::isFading()&&m_shuttingDown; +} + +/*---------------------------------------------------------------------- + Function: + Purpose: + Params: + Returns: + ---------------------------------------------------------------------- */ +CFrontEndScene::FrontEndMode CFrontEndCredits::getNextMode() +{ + return CFrontEndScene::MODE__MAIN_TITLES; +} + +/*=========================================================================== + end */ \ No newline at end of file diff --git a/source/frontend/credits.h b/source/frontend/credits.h new file mode 100644 index 000000000..487b123cb --- /dev/null +++ b/source/frontend/credits.h @@ -0,0 +1,70 @@ +/*========================================================================= + + credits.h + + Author: PKG + Created: + Project: Spongebob + Purpose: + + Copyright (c) 2000 Climax Development Ltd + +===========================================================================*/ + +#ifndef __FRONTEND_CREDITS_H__ +#define __FRONTEND_CREDITS_H__ + +/*---------------------------------------------------------------------- + Includes + -------- */ + +#ifndef __FRONTEND_FRONTEND_H__ +#include "frontend\frontend.h" +#endif + + +/* Std Lib + ------- */ + +/*---------------------------------------------------------------------- + Tyepdefs && Defines + ------------------- */ + +/*---------------------------------------------------------------------- + Structure defintions + -------------------- */ + +class CFrontEndCredits : public CFrontEndMode +{ +public: + void init(); + void shutdown(); + void select(); + void unselect(); + void render(); + void think(int _frames); + + int isReadyToExit(); + CFrontEndScene::FrontEndMode getNextMode(); + + +private: + int m_shuttingDown; + +}; + + +/*---------------------------------------------------------------------- + Globals + ------- */ + +/*---------------------------------------------------------------------- + Functions + --------- */ + +/*---------------------------------------------------------------------- */ + +#endif /* __FRONTEND_CREDITS_H__ */ + +/*=========================================================================== + end */ diff --git a/source/frontend/demomode.cpp b/source/frontend/demomode.cpp index 0cc8b5392..ac146ce0e 100644 --- a/source/frontend/demomode.cpp +++ b/source/frontend/demomode.cpp @@ -133,7 +133,6 @@ void CFrontEndDemoMode::unselect() void CFrontEndDemoMode::render() { sFrameHdr *fh; - POLY_FT4 *ft4; // Game logo/title fh=m_sprites->getFrameHeader(FRM__SBLOGO); diff --git a/source/frontend/demomode.h b/source/frontend/demomode.h index 416f06de0..18e775ed3 100644 --- a/source/frontend/demomode.h +++ b/source/frontend/demomode.h @@ -18,10 +18,6 @@ Includes -------- */ -#ifndef __PRIM_HEADER__ -#include "gfx\prim.h" -#endif - #ifndef __FRONTEND_FRONTEND_H__ #include "frontend\frontend.h" #endif diff --git a/source/frontend/frontend.cpp b/source/frontend/frontend.cpp index 08778ee1b..913b088e6 100644 --- a/source/frontend/frontend.cpp +++ b/source/frontend/frontend.cpp @@ -30,10 +30,18 @@ #include "frontend\options.h" #endif +#ifndef __FRONTEND_START_H__ +#include "frontend\start.h" +#endif + #ifndef __FRONTEND_DEMOMODE_H__ #include "frontend\demomode.h" #endif +#ifndef __FRONTEND_CREDITS_H__ +#include "frontend\credits.h" +#endif + /* Std Lib ------- */ @@ -59,14 +67,17 @@ static CFrontEndMainTitles s_frontEndModeMainTitles; static CFrontEndOptions s_frontEndModeOptions; +static CFrontEndStart s_frontEndStart; static CFrontEndDemoMode s_frontEndDemoMode; +static CFrontEndCredits s_frontEndCredits; CFrontEndMode *CFrontEndScene::s_modeCodes[]= { &s_frontEndModeMainTitles, // MODE__MAIN_TITLES &s_frontEndModeOptions, // MODE__GAME_OPTIONS - NULL, // MODE__CHOOSE_SLOT + &s_frontEndStart, // MODE__CHOOSE_SLOT &s_frontEndDemoMode, // MODE__DEMO + &s_frontEndCredits, // MODE__CREDITS NULL, // MODE__NONE }; diff --git a/source/frontend/frontend.h b/source/frontend/frontend.h index 31838cb53..522dc7717 100644 --- a/source/frontend/frontend.h +++ b/source/frontend/frontend.h @@ -43,6 +43,7 @@ public: MODE__GAME_OPTIONS, MODE__CHOOSE_SLOT, MODE__DEMO, + MODE__CREDITS, MODE__NONE, } FrontEndMode; diff --git a/source/frontend/maintitl.cpp b/source/frontend/maintitl.cpp index 032958cdf..71646f561 100644 --- a/source/frontend/maintitl.cpp +++ b/source/frontend/maintitl.cpp @@ -125,7 +125,7 @@ void CFrontEndMainTitles::init() CGUIFactory::createValueButtonFrame(m_mainMenu, 50,40,200,20, STR__FRONTEND__CREDITS, - &m_gotoOptionsFlag,true); + &m_gotoCreditsFlag,true); } /*---------------------------------------------------------------------- @@ -155,6 +155,7 @@ void CFrontEndMainTitles::select() m_startGameFlag=false; m_gotoOptionsFlag=false; + m_gotoCreditsFlag=false; m_demoTimeout=0; @@ -269,13 +270,18 @@ rsr=(rsr+(_frames*rspeed))&4095; if(m_startGameFlag) { CFader::setFadingOut(); - m_mode=MODE__START_GAME; + m_mode=MODE__GOTO_CHOOSE_SLOT; } else if(m_gotoOptionsFlag) { CFader::setFadingOut(); m_mode=MODE__GOTO_OPTIONS; } + else if(m_gotoCreditsFlag) + { + CFader::setFadingOut(); + m_mode=MODE__GOTO_CREDITS; + } break; default: @@ -309,7 +315,7 @@ rsr=(rsr+(_frames*rspeed))&4095; ---------------------------------------------------------------------- */ int CFrontEndMainTitles::isReadyToExit() { - return !CFader::isFading()&&(m_mode==MODE__START_GAME||m_mode==MODE__GOTO_OPTIONS||m_mode==MODE__GOTO_DEMO); + return !CFader::isFading()&&(m_mode==MODE__GOTO_CHOOSE_SLOT||m_mode==MODE__GOTO_OPTIONS||m_mode==MODE__GOTO_DEMO||m_mode==MODE__GOTO_CREDITS); } @@ -331,8 +337,8 @@ CFrontEndScene::FrontEndMode CFrontEndMainTitles::getNextMode() ASSERT(0); break; - case MODE__START_GAME: - ret=CFrontEndScene::MODE__MAIN_TITLES;//MODE__CHOOSE_SLOT; + case MODE__GOTO_CHOOSE_SLOT: + ret=CFrontEndScene::MODE__CHOOSE_SLOT; break; case MODE__GOTO_OPTIONS: @@ -342,6 +348,10 @@ CFrontEndScene::FrontEndMode CFrontEndMainTitles::getNextMode() case MODE__GOTO_DEMO: ret=CFrontEndScene::MODE__DEMO; break; + + case MODE__GOTO_CREDITS: + ret=CFrontEndScene::MODE__CREDITS; + break; } return ret; diff --git a/source/frontend/maintitl.h b/source/frontend/maintitl.h index 193c21ed7..be88e7b8e 100644 --- a/source/frontend/maintitl.h +++ b/source/frontend/maintitl.h @@ -77,10 +77,11 @@ private: { MODE__PRESS_START, MODE__SELECT_OPTION, - MODE__START_GAME, - + + MODE__GOTO_CHOOSE_SLOT, MODE__GOTO_OPTIONS, MODE__GOTO_DEMO, + MODE__GOTO_CREDITS, }; enum @@ -102,6 +103,7 @@ private: int m_startGameFlag; int m_gotoOptionsFlag; + int m_gotoCreditsFlag; int m_demoTimeout; diff --git a/users/paul/spongebob project/spongebob project.dsp b/users/paul/spongebob project/spongebob project.dsp index fcf836c3c..1e5e75a89 100644 --- a/users/paul/spongebob project/spongebob project.dsp +++ b/users/paul/spongebob project/spongebob project.dsp @@ -125,6 +125,14 @@ SOURCE=..\..\..\source\fileio\pcfile.h # PROP Default_Filter "" # Begin Source File +SOURCE=..\..\..\source\frontend\credits.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\frontend\credits.h +# End Source File +# Begin Source File + SOURCE=..\..\..\source\frontend\demomode.cpp # End Source File # Begin Source File @@ -163,6 +171,14 @@ SOURCE=..\..\..\source\frontend\scrollbg.cpp SOURCE=..\..\..\source\frontend\scrollbg.h # End Source File +# Begin Source File + +SOURCE=..\..\..\source\frontend\start.cpp +# End Source File +# Begin Source File + +SOURCE=..\..\..\source\frontend\start.h +# End Source File # End Group # Begin Group "game"