This commit is contained in:
Paul 2001-04-26 21:19:53 +00:00
parent 355702e497
commit 8744b10af4
5 changed files with 89 additions and 5 deletions

View File

@ -352,6 +352,10 @@ CBasePickup *createPickup(const PICKUP_TYPE _type,const DVECTOR *_pos)
pickup=new ("BalloonAndSpatulaPickup") CBalloonAndSpatulaPickup();
break;
case PICKUP__JELLY_LAUNCHER:
pickup=new ("JellylauncherPickup") CJellyLauncherPickup();
break;
default:
ASSERT(!"UNKNOWN PICKUP TYPE");
return NULL;

View File

@ -48,6 +48,7 @@ typedef enum
PICKUP__CORAL_BLOWER,
PICKUP__QUEST_ITEM__TEST, // Needs to be one of these for each quest item ( I think )
PICKUP__BALLOON_AND_SPATULA,
PICKUP__JELLY_LAUNCHER,
}
PICKUP_TYPE;

View File

@ -74,7 +74,7 @@ void CJellyLauncherAmmoPickup::init()
CBasePickup::init();
m_rattle=0;
fh=getSpriteBank()->getFrameHeader(FRM__JELLYAMMO);
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
setCollisionSize(fh->W,fh->H);
}
@ -89,7 +89,7 @@ DVECTOR CJellyLauncherAmmoPickup::getSizeForPlacement()
DVECTOR size;
sFrameHdr *fh;
fh=getSpriteBank()->getFrameHeader(FRM__JELLYAMMO);
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
size.vx=fh->W;
size.vy=fh->H;
return size;
@ -136,7 +136,7 @@ void CJellyLauncherAmmoPickup::renderPickup(DVECTOR *_pos)
int angle;
sprites=getSpriteBank();
fh=sprites->getFrameHeader(FRM__JELLYAMMO);
fh=sprites->getFrameHeader(FRM__LAUNCHER);
if(m_rattle<=jlammo_rattlecount*4095)
{
angle=((msin(m_rattle&4095)*jlammo_rattlescale)>>12)&4095;
@ -148,5 +148,73 @@ void CJellyLauncherAmmoPickup::renderPickup(DVECTOR *_pos)
sprites->printRotatedScaledSprite(fh,_pos->vx,_pos->vy,4096,4096,angle,OTPOS__PICKUP_POS);
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CJellyLauncherPickup::init()
{
sFrameHdr *fh;
CBasePickup::init();
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
setCollisionSize(fh->W,fh->H);
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
DVECTOR CJellyLauncherPickup::getSizeForPlacement()
{
DVECTOR size;
sFrameHdr *fh;
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
size.vx=fh->W;
size.vy=fh->H;
return size;
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CJellyLauncherPickup::collect(class CPlayer *_player)
{
_player->setMode(PLAYER_MODE_JELLY_LAUNCHER);
CBasePickup::collect(_player);
}
/*----------------------------------------------------------------------
Function:
Purpose:
Params:
Returns:
---------------------------------------------------------------------- */
void CJellyLauncherPickup::renderPickup(DVECTOR *_pos)
{
SpriteBank *sprites;
sFrameHdr *fh;
int x,y;
sprites=getSpriteBank();
fh=sprites->getFrameHeader(FRM__LAUNCHER);
x=_pos->vx-(fh->W/2);
y=_pos->vy-(fh->H/2);
sprites->printFT4(fh,x,y,0,0,OTPOS__PICKUP_POS);
}
/*===========================================================================
end */

View File

@ -38,7 +38,6 @@ class CJellyLauncherAmmoPickup : public CBasePickup
{
public:
virtual void init();
virtual DVECTOR getSizeForPlacement();
virtual void collect(class CPlayer *_player);
@ -51,6 +50,18 @@ private:
};
class CJellyLauncherPickup : public CBasePickup
{
public:
virtual void init();
virtual DVECTOR getSizeForPlacement();
virtual void collect(class CPlayer *_player);
protected:
virtual void renderPickup(DVECTOR *_pos);
};
/*----------------------------------------------------------------------
Globals
------- */

View File

@ -152,7 +152,7 @@ void CPlayerModeJellyLauncher::renderModeUi()
char buf[4];
sb=m_player->getSpriteBank();
fh=sb->getFrameHeader(FRM__BLOWER);
fh=sb->getFrameHeader(FRM__LAUNCHER);
switch(m_firingState)
{
case FIRING_STATE__NONE: