This commit is contained in:
parent
f35357baf1
commit
81c8d618c9
13 changed files with 182 additions and 40 deletions
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 4.3 KiB |
|
@ -17,6 +17,7 @@ sfx/ingame.pxm
|
||||||
sfx/ingame.vb
|
sfx/ingame.vb
|
||||||
sfx/ingame.vh
|
sfx/ingame.vh
|
||||||
backdrop/credits.gfx
|
backdrop/credits.gfx
|
||||||
|
backdrop/sky.gfx
|
||||||
{ SYSTEM_CACHE 4
|
{ SYSTEM_CACHE 4
|
||||||
}
|
}
|
||||||
ui/uigfx.spr
|
ui/uigfx.spr
|
||||||
|
|
|
@ -123,7 +123,7 @@ INGAMEFX_GFX_OUT_DIR := $(DATA_OUT)/ingamefx
|
||||||
INGAMEFX_GFX_NONTRANS :=
|
INGAMEFX_GFX_NONTRANS :=
|
||||||
INGAMEFX_GFX_NONTRANS_IN := $(foreach FILE,$(INGAMEFX_GFX_NONTRANS),$(INGAMEFX_NONTRANS_DIR)/$(FILE))
|
INGAMEFX_GFX_NONTRANS_IN := $(foreach FILE,$(INGAMEFX_GFX_NONTRANS),$(INGAMEFX_NONTRANS_DIR)/$(FILE))
|
||||||
|
|
||||||
INGAMEFX_GFX_TRANS := +bubble_small.bmp +bubble_flower.bmp
|
INGAMEFX_GFX_TRANS := +bubble_1.bmp +bubble_2.bmp +bubble_3.bmp
|
||||||
INGAMEFX_GFX_TRANS_IN := $(foreach FILE,$(INGAMEFX_GFX_TRANS),$(INGAMEFX_GFX_DIR)/$(FILE))
|
INGAMEFX_GFX_TRANS_IN := $(foreach FILE,$(INGAMEFX_GFX_TRANS),$(INGAMEFX_GFX_DIR)/$(FILE))
|
||||||
|
|
||||||
INGAMEFX_GFX_TEX_IN := ${INGAMEFX_GFX_NONTRANS_IN} ${INGAMEFX_GFX_TRANS_IN}
|
INGAMEFX_GFX_TEX_IN := ${INGAMEFX_GFX_NONTRANS_IN} ${INGAMEFX_GFX_TRANS_IN}
|
||||||
|
@ -181,7 +181,7 @@ GFX_DATA_OUT += $(FRONTEND_GFX_TEX_OUT)
|
||||||
# Big TGA backdrops
|
# Big TGA backdrops
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
BACKDROPS_IN_DIR := $(GRAF_DIR)/backdrop
|
BACKDROPS_IN_DIR := $(GRAF_DIR)/backdrop
|
||||||
BACKDROPS_IN := credits
|
BACKDROPS_IN := credits sky
|
||||||
|
|
||||||
BACKDROPS_OUT_DIR := $(DATA_OUT)/backdrop
|
BACKDROPS_OUT_DIR := $(DATA_OUT)/backdrop
|
||||||
BACKDROPS_OUT := $(foreach SCREEN,$(BACKDROPS_IN),$(BACKDROPS_OUT_DIR)/$(SCREEN).gfx)
|
BACKDROPS_OUT := $(foreach SCREEN,$(BACKDROPS_IN),$(BACKDROPS_OUT_DIR)/$(SCREEN).gfx)
|
||||||
|
|
|
@ -96,7 +96,7 @@ void CFrontEndCredits::shutdown()
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
u8 *s_image;
|
static u8 *s_image;
|
||||||
void CFrontEndCredits::select()
|
void CFrontEndCredits::select()
|
||||||
{
|
{
|
||||||
m_shuttingDown=false;
|
m_shuttingDown=false;
|
||||||
|
|
|
@ -83,9 +83,6 @@ static int count;
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CFrontEndDemoMode::init()
|
void CFrontEndDemoMode::init()
|
||||||
{
|
{
|
||||||
m_sprites=new ("Demomode Sprites") SpriteBank();
|
|
||||||
m_sprites->load(FRONTEND_FRONTEND_SPR);
|
|
||||||
|
|
||||||
m_smallFont=new ("Demomode SmallFont") FontBank();
|
m_smallFont=new ("Demomode SmallFont") FontBank();
|
||||||
m_smallFont->initialise(&standardFont);
|
m_smallFont->initialise(&standardFont);
|
||||||
m_smallFont->setJustification(FontBank::JUST_CENTRE);
|
m_smallFont->setJustification(FontBank::JUST_CENTRE);
|
||||||
|
@ -101,7 +98,6 @@ void CFrontEndDemoMode::init()
|
||||||
void CFrontEndDemoMode::shutdown()
|
void CFrontEndDemoMode::shutdown()
|
||||||
{
|
{
|
||||||
m_smallFont->dump(); delete m_smallFont;
|
m_smallFont->dump(); delete m_smallFont;
|
||||||
m_sprites->dump(); delete m_sprites;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
|
@ -140,12 +136,7 @@ void CFrontEndDemoMode::render()
|
||||||
sFrameHdr *fh;
|
sFrameHdr *fh;
|
||||||
|
|
||||||
// Game logo/title
|
// Game logo/title
|
||||||
fh=m_sprites->getFrameHeader(FRM__SBLOGO);
|
CFrontEndScene::renderLogo();
|
||||||
m_sprites->printFT4(fh,256-(fh->W/2),LOGO_CENTRE_Y-(fh->H/2),0,0,220);
|
|
||||||
m_smallFont->setColour(GAME_TITLE_TEXT_R,GAME_TITLE_TEXT_G,GAME_TITLE_TEXT_B);
|
|
||||||
m_smallFont->print(256,GAME_TITLE_TEXT_CENTRE_Y,STR__FRONTEND__GAME_TITLE);
|
|
||||||
m_smallFont->setColour(0,0,0);
|
|
||||||
m_smallFont->print(256+1,GAME_TITLE_TEXT_CENTRE_Y+1,STR__FRONTEND__GAME_TITLE);
|
|
||||||
|
|
||||||
if(!CFader::isFading())
|
if(!CFader::isFading())
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,7 +64,6 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
class FontBank *m_smallFont;
|
class FontBank *m_smallFont;
|
||||||
class SpriteBank *m_sprites;
|
|
||||||
|
|
||||||
int m_shuttingDown;
|
int m_shuttingDown;
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,6 +42,18 @@
|
||||||
#include "frontend\credits.h"
|
#include "frontend\credits.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GFX_SPRBANK_H__
|
||||||
|
#include "gfx\sprbank.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GFX_FONT_H__
|
||||||
|
#include "gfx\font.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __LOCALE_TEXTDBASE_H__
|
||||||
|
#include "locale\textdbase.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Std Lib
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -49,6 +61,11 @@
|
||||||
/* Data
|
/* Data
|
||||||
---- */
|
---- */
|
||||||
|
|
||||||
|
#ifndef __SPR_FRONTEND_H__
|
||||||
|
#include <frontend.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Tyepdefs && Defines
|
Tyepdefs && Defines
|
||||||
------------------- */
|
------------------- */
|
||||||
|
@ -87,6 +104,14 @@ CFrontEndMode *CFrontEndScene::s_modeCodes[]=
|
||||||
CFrontEndScene FrontEndScene;
|
CFrontEndScene FrontEndScene;
|
||||||
|
|
||||||
|
|
||||||
|
int rsx=4096;
|
||||||
|
int rsy=4096;
|
||||||
|
int rsr=0;
|
||||||
|
int rspeed=0;
|
||||||
|
SpriteBank *m_sprites;
|
||||||
|
FontBank *m_font;
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
|
@ -103,6 +128,13 @@ void CFrontEndScene::init()
|
||||||
m_exitToGame=false;
|
m_exitToGame=false;
|
||||||
m_mode=MODE__NONE;
|
m_mode=MODE__NONE;
|
||||||
setMode(MODE__MAIN_TITLES);
|
setMode(MODE__MAIN_TITLES);
|
||||||
|
|
||||||
|
m_sprites=new ("MainTitle Sprites") SpriteBank();
|
||||||
|
m_sprites->load(FRONTEND_FRONTEND_SPR);
|
||||||
|
|
||||||
|
m_font=new ("frontendfont") FontBank();
|
||||||
|
m_font->initialise(&standardFont);
|
||||||
|
m_font->setJustification(FontBank::JUST_CENTRE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,6 +146,9 @@ void CFrontEndScene::init()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CFrontEndScene::shutdown()
|
void CFrontEndScene::shutdown()
|
||||||
{
|
{
|
||||||
|
m_font->dump(); delete m_font;
|
||||||
|
m_sprites->dump(); delete m_sprites;
|
||||||
|
|
||||||
for(int i=0;i<MODE__NONE;i++)
|
for(int i=0;i<MODE__NONE;i++)
|
||||||
{
|
{
|
||||||
s_modeCodes[i]->shutdown();
|
s_modeCodes[i]->shutdown();
|
||||||
|
@ -143,6 +178,8 @@ void CFrontEndScene::think(int _frames)
|
||||||
{
|
{
|
||||||
CFrontEndMode *mode;
|
CFrontEndMode *mode;
|
||||||
|
|
||||||
|
thinkLogo(_frames);
|
||||||
|
|
||||||
mode=s_modeCodes[m_mode];
|
mode=s_modeCodes[m_mode];
|
||||||
mode->think(_frames);
|
mode->think(_frames);
|
||||||
if(mode->isReadyToExit())
|
if(mode->isReadyToExit())
|
||||||
|
@ -164,6 +201,37 @@ int CFrontEndScene::readyToShutdown()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
void CFrontEndScene::renderLogo()
|
||||||
|
{
|
||||||
|
sFrameHdr *fh;
|
||||||
|
|
||||||
|
fh=m_sprites->getFrameHeader(FRM__SBLOGO);
|
||||||
|
m_sprites->printRotatedScaledSprite(fh,256,LOGO_CENTRE_Y,rsx,rsy,rsr,220);
|
||||||
|
m_font->setColour(GAME_TITLE_TEXT_R,GAME_TITLE_TEXT_G,GAME_TITLE_TEXT_B);
|
||||||
|
m_font->print(256,GAME_TITLE_TEXT_CENTRE_Y,STR__FRONTEND__GAME_TITLE);
|
||||||
|
m_font->setColour(0,0,0);
|
||||||
|
m_font->print(256+1,GAME_TITLE_TEXT_CENTRE_Y+1,STR__FRONTEND__GAME_TITLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
void CFrontEndScene::thinkLogo(int _frames)
|
||||||
|
{
|
||||||
|
rsr=(rsr+(_frames*rspeed))&4095;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
|
|
|
@ -50,6 +50,15 @@ public:
|
||||||
MODE__EXIT_TO_GAME,
|
MODE__EXIT_TO_GAME,
|
||||||
} FrontEndMode;
|
} FrontEndMode;
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
LOGO_CENTRE_Y=74,
|
||||||
|
GAME_TITLE_TEXT_CENTRE_Y=100,
|
||||||
|
GAME_TITLE_TEXT_R=128,
|
||||||
|
GAME_TITLE_TEXT_G=128,
|
||||||
|
GAME_TITLE_TEXT_B=128,
|
||||||
|
};
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
void shutdown();
|
void shutdown();
|
||||||
void render();
|
void render();
|
||||||
|
@ -57,8 +66,11 @@ public:
|
||||||
int readyToShutdown();
|
int readyToShutdown();
|
||||||
char *getSceneName() {return"FrontEnd";}
|
char *getSceneName() {return"FrontEnd";}
|
||||||
|
|
||||||
|
static void renderLogo();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void thinkLogo(int _frames);
|
||||||
|
|
||||||
void setMode(FrontEndMode _newMode);
|
void setMode(FrontEndMode _newMode);
|
||||||
|
|
||||||
int m_exitToGame;
|
int m_exitToGame;
|
||||||
|
|
|
@ -50,6 +50,14 @@
|
||||||
#include "gui\gframe.h"
|
#include "gui\gframe.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef _FILEIO_HEADER_
|
||||||
|
#include "fileio\fileio.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __VID_HEADER_
|
||||||
|
#include "system\vid.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Std Lib
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -147,6 +155,7 @@ void CFrontEndMainTitles::shutdown()
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
static u8 *s_image;
|
||||||
void CFrontEndMainTitles::select()
|
void CFrontEndMainTitles::select()
|
||||||
{
|
{
|
||||||
m_mode=MODE__PRESS_START;
|
m_mode=MODE__PRESS_START;
|
||||||
|
@ -159,6 +168,10 @@ void CFrontEndMainTitles::select()
|
||||||
|
|
||||||
m_demoTimeout=0;
|
m_demoTimeout=0;
|
||||||
|
|
||||||
|
s_image=CFileIO::loadFile(BACKDROP_SKY_GFX);
|
||||||
|
ASSERT(s_image);
|
||||||
|
SetScreenImage(s_image);
|
||||||
|
|
||||||
CFader::setFadingIn();
|
CFader::setFadingIn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,6 +183,9 @@ void CFrontEndMainTitles::select()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CFrontEndMainTitles::unselect()
|
void CFrontEndMainTitles::unselect()
|
||||||
{
|
{
|
||||||
|
ClearScreenImage();
|
||||||
|
MemFree(s_image); s_image=NULL;
|
||||||
|
|
||||||
m_mainMenu->unselect();
|
m_mainMenu->unselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,31 +208,58 @@ int isy=3;
|
||||||
int isw=100;
|
int isw=100;
|
||||||
int ish=56;
|
int ish=56;
|
||||||
|
|
||||||
int rsx=4096;
|
|
||||||
int rsy=4096;
|
|
||||||
int rsr=0;
|
|
||||||
int rspeed=0;
|
|
||||||
|
|
||||||
void CFrontEndMainTitles::render()
|
void CFrontEndMainTitles::render()
|
||||||
{
|
{
|
||||||
sFrameHdr *fh;
|
sFrameHdr *fh;
|
||||||
POLY_FT4 *ft4;
|
POLY_FT4 *ft4;
|
||||||
|
|
||||||
// Game logo/title
|
// Game logo/title
|
||||||
fh=m_sprites->getFrameHeader(FRM__SBLOGO);
|
CFrontEndScene::renderLogo();
|
||||||
// m_sprites->printFT4(fh,256-(fh->W/2),LOGO_CENTRE_Y-(fh->H/2),0,0,220);
|
|
||||||
m_sprites->printRotatedScaledSprite(fh,256,LOGO_CENTRE_Y,rsx,rsy,rsr,220);
|
|
||||||
m_smallFont->setColour(GAME_TITLE_TEXT_R,GAME_TITLE_TEXT_G,GAME_TITLE_TEXT_B);
|
|
||||||
m_smallFont->print(256,GAME_TITLE_TEXT_CENTRE_Y,STR__FRONTEND__GAME_TITLE);
|
|
||||||
m_smallFont->setColour(0,0,0);
|
|
||||||
m_smallFont->print(256+1,GAME_TITLE_TEXT_CENTRE_Y+1,STR__FRONTEND__GAME_TITLE);
|
|
||||||
|
|
||||||
|
|
||||||
// The island
|
// The island
|
||||||
fh=m_sprites->getFrameHeader(FRM__ISLAND);
|
fh=m_sprites->getFrameHeader(FRM__ISLAND);
|
||||||
m_sprites->printFT4(fh,ISLAND_LEFT_X,ISLAND_BOTTOM_Y-(fh->H),0,0,221);
|
m_sprites->printFT4(fh,ISLAND_LEFT_X,ISLAND_BOTTOM_Y-(fh->H),0,0,221);
|
||||||
|
|
||||||
// Sky
|
// Sky
|
||||||
|
/*
|
||||||
|
// POLY_FT4 *CFrontEndMainTitles::prepareSeaPortionFT4(sFrameHdr *_fh,int _x,int _y,int _w,int _h,int _rgb)
|
||||||
|
if(xstep&&ystep)
|
||||||
|
{
|
||||||
|
int x,y,f;
|
||||||
|
sFrameHdr *fh;
|
||||||
|
POLY_FT4 *ft4;
|
||||||
|
|
||||||
|
fh=m_sprites->getFrameHeader(FRM_SKY);
|
||||||
|
for(x=0;x<512;x+=xstep)
|
||||||
|
{
|
||||||
|
for(y=0;y<128;y+=ystep)
|
||||||
|
{
|
||||||
|
for(f=0;f<posnum;f++)
|
||||||
|
{
|
||||||
|
ft4=prepareSeaPortionFT4(fh,x>>2,y<<1,xstep>>2,ystep<<1,128);
|
||||||
|
setXYWH(ft4,x+pos[f].x,y+pos[f].y,xstep,ystep);
|
||||||
|
if(f)
|
||||||
|
{
|
||||||
|
setSemiTrans(ft4,true);
|
||||||
|
}
|
||||||
|
AddPrimToList(ft4,1000-f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/*
|
||||||
fh=m_sprites->getFrameHeader(FRM_SKY);
|
fh=m_sprites->getFrameHeader(FRM_SKY);
|
||||||
for(int i=0;i<posnum;i++)
|
for(int i=0;i<posnum;i++)
|
||||||
{
|
{
|
||||||
|
@ -225,6 +268,7 @@ void CFrontEndMainTitles::render()
|
||||||
if(i)
|
if(i)
|
||||||
setSemiTrans(ft4,true);
|
setSemiTrans(ft4,true);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
renderSeaSection(m_sprites->getFrameHeader(FRM__ISLAND),isx,HORIZON_LEVEL+isy,isw,ish);
|
renderSeaSection(m_sprites->getFrameHeader(FRM__ISLAND),isx,HORIZON_LEVEL+isy,isw,ish);
|
||||||
renderSeaSection(m_sprites->getFrameHeader(FRM_SKY),0,HORIZON_LEVEL,512,256-HORIZON_LEVEL+SEA_OVERLAP);
|
renderSeaSection(m_sprites->getFrameHeader(FRM_SKY),0,HORIZON_LEVEL,512,256-HORIZON_LEVEL+SEA_OVERLAP);
|
||||||
|
@ -253,7 +297,6 @@ void CFrontEndMainTitles::render()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CFrontEndMainTitles::think(int _frames)
|
void CFrontEndMainTitles::think(int _frames)
|
||||||
{
|
{
|
||||||
rsr=(rsr+(_frames*rspeed))&4095;
|
|
||||||
sval=(sval+(seaspeed*_frames))&4095;
|
sval=(sval+(seaspeed*_frames))&4095;
|
||||||
|
|
||||||
switch(m_mode)
|
switch(m_mode)
|
||||||
|
@ -430,7 +473,7 @@ void CFrontEndMainTitles::renderSeaSection(sFrameHdr *_fh,int _x,int _y,int _w,i
|
||||||
{
|
{
|
||||||
grid[xloop][yloop].x=(x>>8)+0;
|
grid[xloop][yloop].x=(x>>8)+0;
|
||||||
grid[xloop][yloop].y=(y>>8)+(msin(waveval)/scale);
|
grid[xloop][yloop].y=(y>>8)+(msin(waveval)/scale);
|
||||||
grid[xloop][yloop].colour=colourbase+((msin(waveval)/colourscale)*colourpostscale);
|
// grid[xloop][yloop].colour=colourbase+((msin(waveval)/colourscale)*colourpostscale);
|
||||||
x+=xstep;
|
x+=xstep;
|
||||||
}
|
}
|
||||||
y+=ystep;
|
y+=ystep;
|
||||||
|
|
|
@ -55,12 +55,6 @@ public:
|
||||||
private:
|
private:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
LOGO_CENTRE_Y=74,
|
|
||||||
GAME_TITLE_TEXT_CENTRE_Y=100,
|
|
||||||
GAME_TITLE_TEXT_R=128,
|
|
||||||
GAME_TITLE_TEXT_G=128,
|
|
||||||
GAME_TITLE_TEXT_B=128,
|
|
||||||
|
|
||||||
PRESS_START_TEXT_Y=180,
|
PRESS_START_TEXT_Y=180,
|
||||||
PRESS_START_TEXT_R=150,
|
PRESS_START_TEXT_R=150,
|
||||||
PRESS_START_TEXT_G=100,
|
PRESS_START_TEXT_G=100,
|
||||||
|
|
|
@ -69,8 +69,19 @@
|
||||||
int CBubicleFactory::s_initialised=false;
|
int CBubicleFactory::s_initialised=false;
|
||||||
CBubicleEmitter *CBubicleFactory::s_emitters;
|
CBubicleEmitter *CBubicleFactory::s_emitters;
|
||||||
CBubicle *CBubicleFactory::s_bubicles;
|
CBubicle *CBubicleFactory::s_bubicles;
|
||||||
|
|
||||||
SpriteBank *CBubicleFactory::s_sprites;
|
SpriteBank *CBubicleFactory::s_sprites;
|
||||||
|
|
||||||
|
int CBubicleFactory::s_frameTypeCounter=0;
|
||||||
|
const int CBubicleFactory::s_frameTabSize=8;
|
||||||
|
const int CBubicleFactory::s_frameTabSizeMask=0x07;
|
||||||
|
sFrameHdr *CBubicleFactory::s_frameTab[s_frameTabSize];
|
||||||
|
const int CBubicleFactory::s_frameTabSrc[s_frameTabSize]=
|
||||||
|
{
|
||||||
|
FRM__BUBBLE_1,FRM__BUBBLE_2,FRM__BUBBLE_2,FRM__BUBBLE_1,
|
||||||
|
FRM__BUBBLE_2,FRM__BUBBLE_1,FRM__BUBBLE_2,FRM__BUBBLE_3,
|
||||||
|
};
|
||||||
|
|
||||||
int s_numLiveBubicleEmitters=0;
|
int s_numLiveBubicleEmitters=0;
|
||||||
int s_numLiveBubicles=0;
|
int s_numLiveBubicles=0;
|
||||||
|
|
||||||
|
@ -217,8 +228,6 @@ void CBubicle::create()
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
void CBubicle::init(BubicleData *_init,int _x,int _y)
|
void CBubicle::init(BubicleData *_init,int _x,int _y)
|
||||||
{
|
{
|
||||||
static int frameType=0;
|
|
||||||
|
|
||||||
m_data=*_init;
|
m_data=*_init;
|
||||||
|
|
||||||
m_x=(_x-(m_data.m_w>>1))<<ACCURACY_SHIFT;
|
m_x=(_x-(m_data.m_w>>1))<<ACCURACY_SHIFT;
|
||||||
|
@ -233,7 +242,7 @@ void CBubicle::init(BubicleData *_init,int _x,int _y)
|
||||||
m_vSizeChange=0;
|
m_vSizeChange=0;
|
||||||
m_frameCount=0;
|
m_frameCount=0;
|
||||||
|
|
||||||
m_fhBub=CBubicleFactory::getSprites()->getFrameHeader((frameType++)&0x31?FRM__BUBBLE_SMALL:FRM__BUBBLE_FLOWER);
|
m_fhBub=CBubicleFactory::getBubbleFrameHeader();
|
||||||
|
|
||||||
m_active=true;
|
m_active=true;
|
||||||
}
|
}
|
||||||
|
@ -365,6 +374,11 @@ void CBubicleFactory::init()
|
||||||
s_sprites=new ("Bubble Sprites") SpriteBank();
|
s_sprites=new ("Bubble Sprites") SpriteBank();
|
||||||
s_sprites->load(INGAMEFX_INGAMEFX_SPR);
|
s_sprites->load(INGAMEFX_INGAMEFX_SPR);
|
||||||
|
|
||||||
|
for(i=0;i<s_frameTabSize;i++)
|
||||||
|
{
|
||||||
|
s_frameTab[i]=s_sprites->getFrameHeader(s_frameTabSrc[i]);
|
||||||
|
}
|
||||||
|
|
||||||
emt=s_emitters=(CBubicleEmitter*)MemAlloc(sizeof(CBubicleEmitter)*NUM_EMITTERS,"BubicleEmitters");
|
emt=s_emitters=(CBubicleEmitter*)MemAlloc(sizeof(CBubicleEmitter)*NUM_EMITTERS,"BubicleEmitters");
|
||||||
for(i=0;i<NUM_EMITTERS;i++,emt++)
|
for(i=0;i<NUM_EMITTERS;i++,emt++)
|
||||||
emt->create();
|
emt->create();
|
||||||
|
@ -554,5 +568,19 @@ CBubicle *CBubicleFactory::spawnParticle(BubicleEmitterData *_init)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
|
sFrameHdr *CBubicleFactory::getBubbleFrameHeader()
|
||||||
|
{
|
||||||
|
s_frameTypeCounter=(s_frameTypeCounter+1)&s_frameTabSizeMask;
|
||||||
|
|
||||||
|
return s_frameTab[s_frameTypeCounter];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================
|
/*===========================================================================
|
||||||
end */
|
end */
|
|
@ -161,7 +161,7 @@ public:
|
||||||
|
|
||||||
static CBubicleEmitter *spawnEmitter(BubicleEmitterData *_init);
|
static CBubicleEmitter *spawnEmitter(BubicleEmitterData *_init);
|
||||||
static CBubicle *spawnParticle(BubicleEmitterData *_init);
|
static CBubicle *spawnParticle(BubicleEmitterData *_init);
|
||||||
|
static sFrameHdr *getBubbleFrameHeader();
|
||||||
static SpriteBank *getSprites() {return s_sprites;}
|
static SpriteBank *getSprites() {return s_sprites;}
|
||||||
|
|
||||||
|
|
||||||
|
@ -179,6 +179,12 @@ private:
|
||||||
static CBubicle *s_bubicles;
|
static CBubicle *s_bubicles;
|
||||||
static SpriteBank *s_sprites;
|
static SpriteBank *s_sprites;
|
||||||
|
|
||||||
|
static int s_frameTypeCounter;
|
||||||
|
static const int s_frameTabSize;
|
||||||
|
static const int s_frameTabSizeMask;
|
||||||
|
static sFrameHdr *s_frameTab[];
|
||||||
|
static const int s_frameTabSrc[];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ BubicleEmitterData s_fadeBubicleSpawner=
|
||||||
0,0, // m_theta,m_vtheta
|
0,0, // m_theta,m_vtheta
|
||||||
0,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth
|
0,0,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth
|
||||||
0, // m_ot
|
0, // m_ot
|
||||||
{220,220,220} // m_colour
|
{20,20,20} // m_colour
|
||||||
},
|
},
|
||||||
// m_bubicleRange;
|
// m_bubicleRange;
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue