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();
|
pickup=new ("BalloonAndSpatulaPickup") CBalloonAndSpatulaPickup();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PICKUP__JELLY_LAUNCHER:
|
||||||
|
pickup=new ("JellylauncherPickup") CJellyLauncherPickup();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ASSERT(!"UNKNOWN PICKUP TYPE");
|
ASSERT(!"UNKNOWN PICKUP TYPE");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -48,6 +48,7 @@ typedef enum
|
||||||
PICKUP__CORAL_BLOWER,
|
PICKUP__CORAL_BLOWER,
|
||||||
PICKUP__QUEST_ITEM__TEST, // Needs to be one of these for each quest item ( I think )
|
PICKUP__QUEST_ITEM__TEST, // Needs to be one of these for each quest item ( I think )
|
||||||
PICKUP__BALLOON_AND_SPATULA,
|
PICKUP__BALLOON_AND_SPATULA,
|
||||||
|
PICKUP__JELLY_LAUNCHER,
|
||||||
}
|
}
|
||||||
PICKUP_TYPE;
|
PICKUP_TYPE;
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@ void CJellyLauncherAmmoPickup::init()
|
||||||
CBasePickup::init();
|
CBasePickup::init();
|
||||||
m_rattle=0;
|
m_rattle=0;
|
||||||
|
|
||||||
fh=getSpriteBank()->getFrameHeader(FRM__JELLYAMMO);
|
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
|
||||||
setCollisionSize(fh->W,fh->H);
|
setCollisionSize(fh->W,fh->H);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ DVECTOR CJellyLauncherAmmoPickup::getSizeForPlacement()
|
||||||
DVECTOR size;
|
DVECTOR size;
|
||||||
sFrameHdr *fh;
|
sFrameHdr *fh;
|
||||||
|
|
||||||
fh=getSpriteBank()->getFrameHeader(FRM__JELLYAMMO);
|
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
|
||||||
size.vx=fh->W;
|
size.vx=fh->W;
|
||||||
size.vy=fh->H;
|
size.vy=fh->H;
|
||||||
return size;
|
return size;
|
||||||
|
@ -136,7 +136,7 @@ void CJellyLauncherAmmoPickup::renderPickup(DVECTOR *_pos)
|
||||||
int angle;
|
int angle;
|
||||||
|
|
||||||
sprites=getSpriteBank();
|
sprites=getSpriteBank();
|
||||||
fh=sprites->getFrameHeader(FRM__JELLYAMMO);
|
fh=sprites->getFrameHeader(FRM__LAUNCHER);
|
||||||
if(m_rattle<=jlammo_rattlecount*4095)
|
if(m_rattle<=jlammo_rattlecount*4095)
|
||||||
{
|
{
|
||||||
angle=((msin(m_rattle&4095)*jlammo_rattlescale)>>12)&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);
|
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 */
|
end */
|
||||||
|
|
|
@ -38,7 +38,6 @@ class CJellyLauncherAmmoPickup : public CBasePickup
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void init();
|
virtual void init();
|
||||||
|
|
||||||
virtual DVECTOR getSizeForPlacement();
|
virtual DVECTOR getSizeForPlacement();
|
||||||
virtual void collect(class CPlayer *_player);
|
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
|
Globals
|
||||||
------- */
|
------- */
|
||||||
|
|
|
@ -152,7 +152,7 @@ void CPlayerModeJellyLauncher::renderModeUi()
|
||||||
char buf[4];
|
char buf[4];
|
||||||
|
|
||||||
sb=m_player->getSpriteBank();
|
sb=m_player->getSpriteBank();
|
||||||
fh=sb->getFrameHeader(FRM__BLOWER);
|
fh=sb->getFrameHeader(FRM__LAUNCHER);
|
||||||
switch(m_firingState)
|
switch(m_firingState)
|
||||||
{
|
{
|
||||||
case FIRING_STATE__NONE:
|
case FIRING_STATE__NONE:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue