This commit is contained in:
Paul 2000-11-28 00:06:22 +00:00
parent f35357baf1
commit 81c8d618c9
13 changed files with 182 additions and 40 deletions

View file

@ -69,8 +69,19 @@
int CBubicleFactory::s_initialised=false;
CBubicleEmitter *CBubicleFactory::s_emitters;
CBubicle *CBubicleFactory::s_bubicles;
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_numLiveBubicles=0;
@ -217,8 +228,6 @@ void CBubicle::create()
---------------------------------------------------------------------- */
void CBubicle::init(BubicleData *_init,int _x,int _y)
{
static int frameType=0;
m_data=*_init;
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_frameCount=0;
m_fhBub=CBubicleFactory::getSprites()->getFrameHeader((frameType++)&0x31?FRM__BUBBLE_SMALL:FRM__BUBBLE_FLOWER);
m_fhBub=CBubicleFactory::getBubbleFrameHeader();
m_active=true;
}
@ -365,6 +374,11 @@ void CBubicleFactory::init()
s_sprites=new ("Bubble Sprites") SpriteBank();
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");
for(i=0;i<NUM_EMITTERS;i++,emt++)
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 */