This commit is contained in:
parent
124ffdb79b
commit
10e51da890
21 changed files with 182 additions and 178 deletions
|
@ -83,7 +83,7 @@ void CBalloonPickup::init()
|
|||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
CBaseRespawningPickup::init();
|
||||
CBaseWeaponPickup::init();
|
||||
m_sin=0;
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__BALLOON);
|
||||
|
@ -117,7 +117,7 @@ void CBalloonPickup::collect(class CPlayer *_player)
|
|||
{
|
||||
_player->setMode(PLAYER_MODE_BALLOON);
|
||||
CSoundMediator::playSfx(CSoundMediator::SFX_BALLOON_INFLATE);
|
||||
CBaseRespawningPickup::collect(_player);
|
||||
CBaseWeaponPickup::collect(_player);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
Structure defintions
|
||||
-------------------- */
|
||||
|
||||
class CBalloonPickup : public CBaseRespawningPickup
|
||||
class CBalloonPickup : public CBaseWeaponPickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
|
|
|
@ -69,33 +69,11 @@
|
|||
---------------------------------------------------------------------- */
|
||||
void CCoralBlowerPickup::init()
|
||||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
CBasePickup::init();
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__BLOWER);
|
||||
setCollisionSize(fh->W,fh->H);
|
||||
CBaseWeaponSimplePickup::init();
|
||||
|
||||
GameScene.getPlayer()->registerAddon(PLAYER_ADDON_CORALBLOWER);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
DVECTOR CCoralBlowerPickup::getSizeForPlacement()
|
||||
{
|
||||
DVECTOR size;
|
||||
sFrameHdr *fh;
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__BLOWER);
|
||||
size.vx=fh->W;
|
||||
size.vy=fh->H;
|
||||
return size;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
|
@ -105,7 +83,7 @@ DVECTOR CCoralBlowerPickup::getSizeForPlacement()
|
|||
void CCoralBlowerPickup::collect(class CPlayer *_player)
|
||||
{
|
||||
_player->setMode(PLAYER_MODE_CORALBLOWER);
|
||||
CBasePickup::collect(_player);
|
||||
CBaseWeaponSimplePickup::collect(_player);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -114,17 +92,9 @@ void CCoralBlowerPickup::collect(class CPlayer *_player)
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CCoralBlowerPickup::renderPickup(DVECTOR *_pos)
|
||||
int CCoralBlowerPickup::getWeaponSpriteFrame()
|
||||
{
|
||||
SpriteBank *sprites;
|
||||
sFrameHdr *fh;
|
||||
int x,y;
|
||||
|
||||
sprites=getSpriteBank();
|
||||
fh=sprites->getFrameHeader(FRM__BLOWER);
|
||||
x=_pos->vx-(fh->W/2);
|
||||
y=_pos->vy-(fh->H/2);
|
||||
sprites->printFT4(fh,x,y,0,0,OTPOS__PICKUP_POS);
|
||||
return FRM__BLOWER;
|
||||
}
|
||||
|
||||
/*===========================================================================
|
||||
|
|
|
@ -34,15 +34,14 @@
|
|||
Structure defintions
|
||||
-------------------- */
|
||||
|
||||
class CCoralBlowerPickup : public CBasePickup
|
||||
class CCoralBlowerPickup : public CBaseWeaponSimplePickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
virtual DVECTOR getSizeForPlacement();
|
||||
virtual void collect(class CPlayer *_player);
|
||||
|
||||
protected:
|
||||
virtual void renderPickup(DVECTOR *_pos);
|
||||
virtual int getWeaponSpriteFrame();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -165,33 +165,11 @@ void CBubbleMixturePickup::renderPickup(DVECTOR *_pos)
|
|||
---------------------------------------------------------------------- */
|
||||
void CBubbleWandPickup::init()
|
||||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
CBaseRespawningPickup::init();
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__BUBBLEWAND);
|
||||
setCollisionSize(fh->W,fh->H);
|
||||
CBaseWeaponSimplePickup::init();
|
||||
|
||||
GameScene.getPlayer()->registerAddon(PLAYER_ADDON_BUBBLEWAND);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
DVECTOR CBubbleWandPickup::getSizeForPlacement()
|
||||
{
|
||||
DVECTOR size;
|
||||
sFrameHdr *fh;
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__BUBBLEWAND);
|
||||
size.vx=fh->W;
|
||||
size.vy=fh->H;
|
||||
return size;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
|
@ -201,7 +179,7 @@ DVECTOR CBubbleWandPickup::getSizeForPlacement()
|
|||
void CBubbleWandPickup::collect(class CPlayer *_player)
|
||||
{
|
||||
_player->setMode(PLAYER_MODE_BUBBLE_MIXTURE);
|
||||
CBaseRespawningPickup::collect(_player);
|
||||
CBaseWeaponSimplePickup::collect(_player);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -210,28 +188,9 @@ void CBubbleWandPickup::collect(class CPlayer *_player)
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
int CBubbleWandPickup::getRespawnTime()
|
||||
int CBubbleWandPickup::getWeaponSpriteFrame()
|
||||
{
|
||||
return 60*10;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBubbleWandPickup::renderPickup(DVECTOR *_pos)
|
||||
{
|
||||
SpriteBank *sprites;
|
||||
sFrameHdr *fh;
|
||||
int x,y;
|
||||
|
||||
sprites=getSpriteBank();
|
||||
fh=sprites->getFrameHeader(FRM__BUBBLEWAND);
|
||||
x=_pos->vx-(fh->W/2);
|
||||
y=_pos->vy-(fh->H/2);
|
||||
sprites->printFT4(fh,x,y,0,0,OTPOS__PICKUP_POS);
|
||||
return FRM__BUBBLEWAND;
|
||||
}
|
||||
|
||||
/*===========================================================================
|
||||
|
|
|
@ -54,18 +54,14 @@ private:
|
|||
};
|
||||
|
||||
|
||||
class CBubbleWandPickup : public CBaseRespawningPickup
|
||||
class CBubbleWandPickup : public CBaseWeaponSimplePickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
|
||||
virtual DVECTOR getSizeForPlacement();
|
||||
virtual void collect(class CPlayer *_player);
|
||||
|
||||
protected:
|
||||
virtual int getRespawnTime();
|
||||
|
||||
virtual void renderPickup(DVECTOR *_pos);
|
||||
virtual int getWeaponSpriteFrame();
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
#include "level\level.h"
|
||||
#endif
|
||||
|
||||
#ifndef __PLAYER_PLAYER_H__
|
||||
#include "player\player.h"
|
||||
#endif
|
||||
|
||||
// For the factory..
|
||||
|
||||
#ifndef __PICKUPS_PHEALTH_H__
|
||||
|
@ -277,6 +281,88 @@ void CBaseRespawningPickup::collect(class CPlayer *_player)
|
|||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBaseWeaponPickup::collidedWith(CThing *_thisThing)
|
||||
{
|
||||
switch(_thisThing->getThingType())
|
||||
{
|
||||
case TYPE_PLAYER:
|
||||
if(((CPlayer*)_thisThing)->tryingToPickupWeapon())
|
||||
{
|
||||
collect((CPlayer*)_thisThing);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
ASSERT(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBaseWeaponSimplePickup::init()
|
||||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
CBaseWeaponPickup::init();
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__NET);
|
||||
setCollisionSize(fh->W,fh->H);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
DVECTOR CBaseWeaponSimplePickup::getSizeForPlacement()
|
||||
{
|
||||
DVECTOR size;
|
||||
sFrameHdr *fh;
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(getWeaponSpriteFrame());
|
||||
size.vx=fh->W;
|
||||
size.vy=fh->H;
|
||||
return size;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBaseWeaponSimplePickup::renderPickup(DVECTOR *_pos)
|
||||
{
|
||||
SpriteBank *sprites;
|
||||
sFrameHdr *fh;
|
||||
int x,y;
|
||||
|
||||
sprites=getSpriteBank();
|
||||
fh=sprites->getFrameHeader(getWeaponSpriteFrame());
|
||||
x=_pos->vx-(fh->W/2);
|
||||
y=_pos->vy-(fh->H/2);
|
||||
sprites->printFT4(fh,x,y,0,0,OTPOS__PICKUP_POS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose: This is basically a factory method for making pickups :)
|
||||
|
|
|
@ -107,6 +107,31 @@ private:
|
|||
|
||||
};
|
||||
|
||||
|
||||
class CBaseWeaponPickup : public CBaseRespawningPickup
|
||||
{
|
||||
protected:
|
||||
virtual void collidedWith(CThing *_thisThing);
|
||||
|
||||
virtual int getRespawnTime() {return 5*60;}
|
||||
|
||||
};
|
||||
|
||||
|
||||
class CBaseWeaponSimplePickup : public CBaseWeaponPickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
virtual DVECTOR getSizeForPlacement();
|
||||
|
||||
protected:
|
||||
virtual void renderPickup(DVECTOR *_pos);
|
||||
|
||||
virtual int getWeaponSpriteFrame()=0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Globals
|
||||
------- */
|
||||
|
|
|
@ -163,33 +163,11 @@ void CJellyLauncherAmmoPickup::renderPickup(DVECTOR *_pos)
|
|||
---------------------------------------------------------------------- */
|
||||
void CJellyLauncherPickup::init()
|
||||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
CBasePickup::init();
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__LAUNCHER);
|
||||
setCollisionSize(fh->W,fh->H);
|
||||
CBaseWeaponSimplePickup::init();
|
||||
|
||||
GameScene.getPlayer()->registerAddon(PLAYER_ADDON_JELLYLAUNCHER);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
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:
|
||||
|
@ -199,7 +177,7 @@ DVECTOR CJellyLauncherPickup::getSizeForPlacement()
|
|||
void CJellyLauncherPickup::collect(class CPlayer *_player)
|
||||
{
|
||||
_player->setMode(PLAYER_MODE_JELLY_LAUNCHER);
|
||||
CBasePickup::collect(_player);
|
||||
CBaseWeaponSimplePickup::collect(_player);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -208,17 +186,9 @@ void CJellyLauncherPickup::collect(class CPlayer *_player)
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CJellyLauncherPickup::renderPickup(DVECTOR *_pos)
|
||||
int CJellyLauncherPickup::getWeaponSpriteFrame()
|
||||
{
|
||||
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);
|
||||
return FRM__LAUNCHER;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -50,15 +50,14 @@ private:
|
|||
};
|
||||
|
||||
|
||||
class CJellyLauncherPickup : public CBasePickup
|
||||
class CJellyLauncherPickup : public CBaseWeaponSimplePickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
virtual DVECTOR getSizeForPlacement();
|
||||
virtual void collect(class CPlayer *_player);
|
||||
|
||||
protected:
|
||||
virtual void renderPickup(DVECTOR *_pos);
|
||||
virtual int getWeaponSpriteFrame();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -69,34 +69,12 @@
|
|||
---------------------------------------------------------------------- */
|
||||
void CNetPickup::init()
|
||||
{
|
||||
sFrameHdr *fh;
|
||||
|
||||
CBasePickup::init();
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__NET);
|
||||
setCollisionSize(fh->W,fh->H);
|
||||
CBaseWeaponSimplePickup::init();
|
||||
|
||||
GameScene.getPlayer()->registerAddon(PLAYER_ADDON_NET);
|
||||
GameScene.getPlayer()->registerAddon(PLAYER_ADDON_JELLYFISHINNET);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
DVECTOR CNetPickup::getSizeForPlacement()
|
||||
{
|
||||
DVECTOR size;
|
||||
sFrameHdr *fh;
|
||||
|
||||
fh=getSpriteBank()->getFrameHeader(FRM__NET);
|
||||
size.vx=fh->W;
|
||||
size.vy=fh->H;
|
||||
return size;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
|
@ -106,7 +84,7 @@ DVECTOR CNetPickup::getSizeForPlacement()
|
|||
void CNetPickup::collect(class CPlayer *_player)
|
||||
{
|
||||
_player->setMode(PLAYER_MODE_NET);
|
||||
CBasePickup::collect(_player);
|
||||
CBaseWeaponSimplePickup::collect(_player);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -115,18 +93,11 @@ void CNetPickup::collect(class CPlayer *_player)
|
|||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CNetPickup::renderPickup(DVECTOR *_pos)
|
||||
int CNetPickup::getWeaponSpriteFrame()
|
||||
{
|
||||
SpriteBank *sprites;
|
||||
sFrameHdr *fh;
|
||||
int x,y;
|
||||
|
||||
sprites=getSpriteBank();
|
||||
fh=sprites->getFrameHeader(FRM__NET);
|
||||
x=_pos->vx-(fh->W/2);
|
||||
y=_pos->vy-(fh->H/2);
|
||||
sprites->printFT4(fh,x,y,0,0,OTPOS__PICKUP_POS);
|
||||
return FRM__NET;
|
||||
}
|
||||
|
||||
|
||||
/*===========================================================================
|
||||
end */
|
||||
|
|
|
@ -34,16 +34,14 @@
|
|||
Structure defintions
|
||||
-------------------- */
|
||||
|
||||
class CNetPickup : public CBasePickup
|
||||
class CNetPickup : public CBaseWeaponSimplePickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
virtual int dontKillDuringLevelRespawn() {return true;}
|
||||
virtual DVECTOR getSizeForPlacement();
|
||||
virtual void collect(class CPlayer *_player);
|
||||
|
||||
protected:
|
||||
virtual void renderPickup(DVECTOR *_pos);
|
||||
virtual int getWeaponSpriteFrame();
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue