This commit is contained in:
parent
355702e497
commit
8744b10af4
5 changed files with 89 additions and 5 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
------- */
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue