This commit is contained in:
parent
180ba21ecb
commit
7853274fe5
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.3 KiB |
@ -254,6 +254,7 @@ pickups_src := pickup \
|
||||
pballoon \
|
||||
pblower \
|
||||
pbubmix \
|
||||
pglove \
|
||||
phelmet \
|
||||
pjlammo \
|
||||
pkelp \
|
||||
|
@ -185,7 +185,7 @@ PICKUP_GFX_DIR := $(GRAF_DIR)/pickups
|
||||
PICKUP_GFX := +spatula +token +pants +glint1 +glint2 +glint3 +glint4 \
|
||||
+questitemstar1 +questitemstar2 +questitemstar3 \
|
||||
+jellyammo +bubblemixture +bubblewand +shoe +balloon +balloonburst +helmet \
|
||||
+blower +launcher +net \
|
||||
+blower +launcher +net +glove \
|
||||
+c1_l1_quest_item +c1_l2_quest_item +c1_l3_quest_item +c1_l4_quest_item \
|
||||
+c2_l1_quest_item +c2_l2_quest_item +c2_l3_quest_item +c2_l4_quest_item \
|
||||
+c3_l1_quest_item +c3_l2_quest_item +c3_l3_quest_item +c3_l4_quest_item \
|
||||
|
@ -77,6 +77,10 @@
|
||||
#include "pickups\pkelp.h"
|
||||
#endif
|
||||
|
||||
#ifndef __PICKUPS_PGLOVE_H__
|
||||
#include "pickups\pglove.h"
|
||||
#endif
|
||||
|
||||
#include "game/game.h"
|
||||
|
||||
/* Std Lib
|
||||
@ -364,7 +368,7 @@ void CBaseWeaponSimplePickup::init()
|
||||
|
||||
CBaseWeaponPickup::init();
|
||||
|
||||
fh=CGameScene::getSpriteBank()->getFrameHeader(FRM__NET);
|
||||
fh=CGameScene::getSpriteBank()->getFrameHeader(getWeaponSpriteFrame());
|
||||
setCollisionSize(fh->W,fh->H);
|
||||
}
|
||||
|
||||
@ -407,51 +411,6 @@ void CBaseWeaponSimplePickup::renderPickup(DVECTOR *_pos)
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBaseBouncingPickup::init()
|
||||
{
|
||||
CBasePickup::init();
|
||||
m_timeTillVanish=TIME_TILL_VANISH;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBaseBouncingPickup::render()
|
||||
{
|
||||
if(m_timeTillVanish>FRAMES_TO_FLASH||m_timeTillVanish&3)
|
||||
{
|
||||
DVECTOR ofs,pos;
|
||||
int visibilityRadius;
|
||||
|
||||
CPickupThing::render();
|
||||
if (canRender())
|
||||
{
|
||||
DVECTOR &renderPos=getRenderPos();
|
||||
renderPickup(&renderPos);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBaseBouncingPickup::collidedWith(CThing *_thisThing)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -537,9 +496,9 @@ return NULL;
|
||||
pickup=new ("KelpTokenPickup") CKelpTokenPickup();
|
||||
break;
|
||||
|
||||
case PICKUP__BOUNCING_SPATULA:
|
||||
pickup=new ("BouncingSpatulaPickup") CBouncingSpatulaPickup();
|
||||
break;
|
||||
case PICKUP__GLOVE:
|
||||
pickup=new ("GlovePickup") CGlovePickup();
|
||||
break;
|
||||
|
||||
default:
|
||||
ASSERT(!"UNKNOWN PICKUP TYPE");
|
||||
|
@ -54,8 +54,7 @@ typedef enum
|
||||
PICKUP__BALLOON_AND_SPATULA,
|
||||
PICKUP__JELLY_LAUNCHER,
|
||||
PICKUP__KELP_TOKEN,
|
||||
|
||||
PICKUP__BOUNCING_SPATULA,
|
||||
PICKUP__GLOVE,
|
||||
|
||||
PICKUP__MAX
|
||||
}
|
||||
@ -152,28 +151,6 @@ protected:
|
||||
};
|
||||
|
||||
|
||||
class CBaseBouncingPickup : public CBasePickup
|
||||
{
|
||||
public:
|
||||
virtual void init();
|
||||
virtual void render();
|
||||
|
||||
protected:
|
||||
enum
|
||||
{
|
||||
TIME_TILL_VANISH=5*55,
|
||||
FRAMES_TO_FLASH=2*55,
|
||||
};
|
||||
|
||||
virtual void renderPickup(DVECTOR *_pos)=0;
|
||||
|
||||
virtual void collidedWith(CThing *_thisThing);
|
||||
|
||||
int m_timeTillVanish;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Globals
|
||||
------- */
|
||||
|
@ -163,57 +163,5 @@ void CSpatulaPickup::renderPickup(DVECTOR *_pos)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
DVECTOR CBouncingSpatulaPickup::getSizeForPlacement()
|
||||
{
|
||||
DVECTOR size;
|
||||
sFrameHdr *fh;
|
||||
|
||||
fh=CGameScene::getSpriteBank()->getFrameHeader(FRM__SPATULA);
|
||||
size.vx=fh->W;
|
||||
size.vy=fh->H;
|
||||
return size;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CBouncingSpatulaPickup::renderPickup(DVECTOR *_pos)
|
||||
{
|
||||
SpriteBank *sprites;
|
||||
sFrameHdr *fh;
|
||||
int x,y;
|
||||
|
||||
sprites=CGameScene::getSpriteBank();
|
||||
fh=sprites->getFrameHeader(FRM__SPATULA);
|
||||
x=_pos->vx-(fh->W/2);
|
||||
y=_pos->vy-(fh->H/2);
|
||||
sprites->printFT4(fh,x,y,0,0,OTPOS__PICKUP_POS);
|
||||
|
||||
/*
|
||||
if(m_glint<=spat_maxglint)
|
||||
{
|
||||
fh=sprites->getFrameHeader(spat_glintFrames[(m_glint>>spat_glintgrowspeed)&0x07]);
|
||||
x=x+spat_gxy.vx;
|
||||
y=y+spat_gxy.vy;
|
||||
sprites->printRotatedScaledSprite(fh,x,y,4095,4095,m_glintRot,OTPOS__PICKUP_POS-1);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*===========================================================================
|
||||
end */
|
||||
|
@ -61,18 +61,6 @@ private:
|
||||
};
|
||||
|
||||
|
||||
class CBouncingSpatulaPickup : public CBaseBouncingPickup
|
||||
{
|
||||
public:
|
||||
virtual DVECTOR getSizeForPlacement();
|
||||
|
||||
protected:
|
||||
virtual void renderPickup(DVECTOR *_pos);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Globals
|
||||
------- */
|
||||
|
@ -626,7 +626,7 @@ m_animNo=0;
|
||||
m_animFrame=0;
|
||||
setFacing(FACING_RIGHT);
|
||||
m_currentPlayerModeClass=NULL;
|
||||
m_lastModeBeforeDeath=PLAYER_MODE_FULLUNARMED; // Player will then respawn into this mode
|
||||
m_lastModeBeforeDeath=PLAYER_MODE_BASICUNARMED; // Player will then respawn into this mode
|
||||
m_lives++;respawn();
|
||||
m_canExitLevel=false;
|
||||
|
||||
@ -772,8 +772,7 @@ if(PadGetDown(0)&PAD_TRIANGLE)
|
||||
updatePadInput();
|
||||
|
||||
// Weapon collect/drop/swap stuff..
|
||||
if(m_currentMode==PLAYER_MODE_BASICUNARMED||
|
||||
m_currentMode==PLAYER_MODE_FULLUNARMED)
|
||||
if(m_currentMode==PLAYER_MODE_BASICUNARMED)
|
||||
{
|
||||
// Always trying to pickup weapon if unarmed... means that when SB walks
|
||||
// over an item whilst unarmed, he automatically picks it up
|
||||
@ -786,7 +785,6 @@ if(PadGetDown(0)&PAD_TRIANGLE)
|
||||
|
||||
// If already armed then drop current weapon
|
||||
if(m_currentMode!=PLAYER_MODE_BASICUNARMED&&
|
||||
m_currentMode!=PLAYER_MODE_FULLUNARMED&&
|
||||
m_currentMode!=PLAYER_MODE_DEAD)
|
||||
{
|
||||
static const int s_pickupsToDrop[NUM_PLAYERMODES]=
|
||||
@ -814,7 +812,7 @@ if(PadGetDown(0)&PAD_TRIANGLE)
|
||||
pickup=createPickup((PICKUP_TYPE)pickupToDrop,&pickupPos);
|
||||
pickup->setPos(&pickupPos);
|
||||
}
|
||||
setMode(PLAYER_MODE_FULLUNARMED);
|
||||
setMode(PLAYER_MODE_BASICUNARMED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2055,7 +2053,7 @@ void CPlayer::takeDamage(DAMAGE_TYPE _damage,REACT_DIRECTION _reactDirection,CTh
|
||||
if(m_currentMode==PLAYER_MODE_NET)
|
||||
{
|
||||
// Launch net pickup
|
||||
setMode(PLAYER_MODE_FULLUNARMED);
|
||||
setMode(PLAYER_MODE_BASICUNARMED);
|
||||
DVECTOR pickupPos;
|
||||
CBasePickup *pickup;
|
||||
pickupPos.vx=Pos.vx;
|
||||
|
@ -104,7 +104,7 @@ void CPlayerModeBalloon::think()
|
||||
{
|
||||
CSoundMediator::playSfx(CSoundMediator::SFX_BALLOON_POP);
|
||||
}
|
||||
m_player->setMode(PLAYER_MODE_FULLUNARMED);
|
||||
m_player->setMode(PLAYER_MODE_BASICUNARMED);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,14 @@
|
||||
|
||||
#include "player\pmchop.h"
|
||||
|
||||
#ifndef __GFX_SPRBANK_H__
|
||||
#include "gfx\sprbank.h"
|
||||
#endif
|
||||
|
||||
#ifndef __GAME_GAME_H__
|
||||
#include "game\game.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
@ -28,6 +36,10 @@
|
||||
#include <ACTOR_SPONGEBOB_ANIM.h>
|
||||
#endif
|
||||
|
||||
#ifndef __SPR_SPRITES_H__
|
||||
#include <sprites.h>
|
||||
#endif
|
||||
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Tyepdefs && Defines
|
||||
@ -55,6 +67,7 @@ void CPlayerModeChop::enter()
|
||||
{
|
||||
CPlayerModeBase::enter();
|
||||
m_chopping=false;
|
||||
m_timer=0;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
@ -116,6 +129,31 @@ void CPlayerModeChop::think()
|
||||
setPlayerCollisionSize(m_savedCSX,m_savedCSY,m_savedCSW,m_savedCSH);
|
||||
}
|
||||
}
|
||||
|
||||
if(++m_timer>CHOP_TIMEOUT)
|
||||
{
|
||||
m_player->setMode(PLAYER_MODE_BASICUNARMED);
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Function:
|
||||
Purpose:
|
||||
Params:
|
||||
Returns:
|
||||
---------------------------------------------------------------------- */
|
||||
void CPlayerModeChop::renderModeUi()
|
||||
{
|
||||
if(m_timer<CHOP_TIMEOUT-CHOP_FLASH_TIME||m_timer&2)
|
||||
{
|
||||
SpriteBank *sb;
|
||||
sFrameHdr *fh;
|
||||
|
||||
sb=CGameScene::getSpriteBank();
|
||||
fh=sb->getFrameHeader(FRM__GLOVE);
|
||||
|
||||
sb->printFT4(fh,CPlayer::POWERUPUI_ICONX,CPlayer::POWERUPUI_ICONY,0,0,CPlayer::POWERUPUI_OT);
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
|
@ -39,6 +39,7 @@ class CPlayerModeChop : public CPlayerModeBase
|
||||
public:
|
||||
virtual void enter();
|
||||
virtual void think();
|
||||
virtual void renderModeUi();
|
||||
|
||||
virtual void setAnimNo(int _animNo);
|
||||
virtual void setAnimFrame(int _animFrame);
|
||||
@ -52,6 +53,8 @@ private:
|
||||
{
|
||||
CHOP_ATTACK_START_FRAME=15,
|
||||
CHOP_ATTACK_END_FRAME=21,
|
||||
CHOP_TIMEOUT=10*60,
|
||||
CHOP_FLASH_TIME=2*60,
|
||||
};
|
||||
|
||||
|
||||
@ -60,6 +63,7 @@ private:
|
||||
int m_savedAnimNo,m_savedAnimFrame;
|
||||
int m_chopFrame;
|
||||
int m_chopping;
|
||||
int m_timer;
|
||||
|
||||
int m_savedCSX,m_savedCSY,m_savedCSW,m_savedCSH;
|
||||
|
||||
|
@ -74,6 +74,7 @@ Quest_Item=14
|
||||
# Balloon_Golden_Spatula=15
|
||||
Jelly_Launcher=16
|
||||
Kelp_Token=17
|
||||
Glove=18
|
||||
|
||||
|
||||
################################################
|
||||
|
@ -59,3 +59,6 @@ Gfx=..\..\graphics\pickups\+launcher.bmp
|
||||
|
||||
[Kelp_Token]
|
||||
Gfx=..\..\graphics\pickups\+token.bmp
|
||||
|
||||
[Glove]
|
||||
Gfx=..\..\graphics\pickups\+glove.bmp
|
||||
|
@ -1349,6 +1349,14 @@ SOURCE=..\..\..\source\pickups\pglasses.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\pickups\pglove.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\pickups\pglove.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\source\pickups\phealth.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
Loading…
Reference in New Issue
Block a user