This commit is contained in:
parent
7305dd575f
commit
499849fae1
6 changed files with 91 additions and 15 deletions
|
@ -135,7 +135,8 @@ pad_src := pads
|
||||||
paul_src := paul \
|
paul_src := paul \
|
||||||
scenesel
|
scenesel
|
||||||
|
|
||||||
player_src := player \
|
player_src := panimsfx \
|
||||||
|
player \
|
||||||
pmodes \
|
pmodes \
|
||||||
psbutt \
|
psbutt \
|
||||||
pschop \
|
pschop \
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
Author: PKG
|
Author: PKG
|
||||||
Created:
|
Created:
|
||||||
Project: Spongebob
|
Project: Spongebob
|
||||||
Purpose:
|
Purpose: Handles automatically generated sound effects based upon anim frames
|
||||||
|
|
||||||
Copyright (c) 2001 Climax Development Ltd
|
Copyright (c) 2001 Climax Development Ltd
|
||||||
|
|
||||||
|
@ -70,6 +70,7 @@ static const int s_buttBounceEndCount=sizeof(s_buttBounceEndSfx)/sizeof(CPlayer:
|
||||||
// ANIM_PLAYER_ANIM_IDLEHOOLA
|
// ANIM_PLAYER_ANIM_IDLEHOOLA
|
||||||
// ANIM_PLAYER_ANIM_IDLELOOK
|
// ANIM_PLAYER_ANIM_IDLELOOK
|
||||||
// ANIM_PLAYER_ANIM_IDLEWIGGLEARM
|
// ANIM_PLAYER_ANIM_IDLEWIGGLEARM
|
||||||
|
|
||||||
// ANIM_PLAYER_ANIM_JUMPEND
|
// ANIM_PLAYER_ANIM_JUMPEND
|
||||||
static CPlayer::AnimFrameSfx s_jumpEndSfx[]=
|
static CPlayer::AnimFrameSfx s_jumpEndSfx[]=
|
||||||
{
|
{
|
||||||
|
@ -78,7 +79,13 @@ static CPlayer::AnimFrameSfx s_jumpEndSfx[]=
|
||||||
};
|
};
|
||||||
static const int s_jumpEndCount=sizeof(s_jumpEndSfx)/sizeof(CPlayer::AnimFrameSfx);
|
static const int s_jumpEndCount=sizeof(s_jumpEndSfx)/sizeof(CPlayer::AnimFrameSfx);
|
||||||
|
|
||||||
// ANIM_PLAYER_ANIM_KARATE
|
// ANIM_PLAYER_ANIM_KARATE Might have to go into the CPlayerStateChop::enter code (PKG)
|
||||||
|
static CPlayer::AnimFrameSfx s_chopSfx[]=
|
||||||
|
{
|
||||||
|
{ 1, CSoundMediator::SFX_SPONGEBOB_KARATE_1, },
|
||||||
|
};
|
||||||
|
static const int s_chopCount=sizeof(s_chopSfx)/sizeof(CPlayer::AnimFrameSfx);
|
||||||
|
|
||||||
// ANIM_PLAYER_ANIM_KNOCKBACK
|
// ANIM_PLAYER_ANIM_KNOCKBACK
|
||||||
// ANIM_PLAYER_ANIM_KNOCKFORWARD
|
// ANIM_PLAYER_ANIM_KNOCKFORWARD
|
||||||
|
|
||||||
|
@ -111,6 +118,9 @@ static const int s_runStopCount=sizeof(s_runStopSfx)/sizeof(CPlayer::AnimFrameSf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This is the table that ties up anims to sfx
|
||||||
|
// CPlayer::setAnimFrame() uses this table to generate sfx based upon anim frames
|
||||||
CPlayer::AnimSfx CPlayer::s_animSfx[]=
|
CPlayer::AnimSfx CPlayer::s_animSfx[]=
|
||||||
{
|
{
|
||||||
{ s_buttBounceEndCount, s_buttBounceEndSfx }, // ANIM_PLAYER_ANIM_BUTTBOUNCEEND
|
{ s_buttBounceEndCount, s_buttBounceEndSfx }, // ANIM_PLAYER_ANIM_BUTTBOUNCEEND
|
||||||
|
@ -137,7 +147,7 @@ CPlayer::AnimSfx CPlayer::s_animSfx[]=
|
||||||
{ 0, NULL }, // ANIM_PLAYER_ANIM_IDLELOOK
|
{ 0, NULL }, // ANIM_PLAYER_ANIM_IDLELOOK
|
||||||
{ 0, NULL }, // ANIM_PLAYER_ANIM_IDLEWIGGLEARM
|
{ 0, NULL }, // ANIM_PLAYER_ANIM_IDLEWIGGLEARM
|
||||||
{ s_jumpEndCount, s_jumpEndSfx }, // ANIM_PLAYER_ANIM_JUMPEND
|
{ s_jumpEndCount, s_jumpEndSfx }, // ANIM_PLAYER_ANIM_JUMPEND
|
||||||
{ 0, NULL }, // ANIM_PLAYER_ANIM_KARATE
|
{ s_chopCount, s_chopSfx }, // ANIM_PLAYER_ANIM_KARATE
|
||||||
{ 0, NULL }, // ANIM_PLAYER_ANIM_KNOCKBACK
|
{ 0, NULL }, // ANIM_PLAYER_ANIM_KNOCKBACK
|
||||||
{ 0, NULL }, // ANIM_PLAYER_ANIM_KNOCKFORWARD
|
{ 0, NULL }, // ANIM_PLAYER_ANIM_KNOCKFORWARD
|
||||||
{ s_runCount, s_runSfx }, // ANIM_PLAYER_ANIM_RUN
|
{ s_runCount, s_runSfx }, // ANIM_PLAYER_ANIM_RUN
|
||||||
|
|
|
@ -438,13 +438,45 @@ void CPlayer::setFacing(int _facing)
|
||||||
m_skel.setDir(_facing);
|
m_skel.setDir(_facing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
int CPlayer::getAnimFrame()
|
int CPlayer::getAnimFrame()
|
||||||
{
|
{
|
||||||
return m_animFrame;
|
return m_animFrame;
|
||||||
}
|
}
|
||||||
void CPlayer::setAnimFrame(int _animFrame)
|
void CPlayer::setAnimFrame(int _animFrame)
|
||||||
{
|
{
|
||||||
|
AnimSfx *sfx;
|
||||||
|
|
||||||
m_animFrame=_animFrame;
|
m_animFrame=_animFrame;
|
||||||
|
|
||||||
|
// Are there any sfx for this frame?
|
||||||
|
sfx=&s_animSfx[m_animNo];
|
||||||
|
if(sfx->m_numAnimFrameSfx)
|
||||||
|
{
|
||||||
|
AnimFrameSfx *frameSfx;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
frameSfx=sfx->m_animFrameSfx;
|
||||||
|
for(i=0;i<sfx->m_numAnimFrameSfx;i++)
|
||||||
|
{
|
||||||
|
if(m_animFrame==frameSfx->m_frame)
|
||||||
|
{
|
||||||
|
CSoundMediator::playSfx(frameSfx->m_sfxId);
|
||||||
|
}
|
||||||
|
if(m_animFrame<frameSfx->m_frame)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
frameSfx++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
int CPlayer::getAnimFrameCount()
|
int CPlayer::getAnimFrameCount()
|
||||||
{
|
{
|
||||||
|
@ -459,6 +491,14 @@ void CPlayer::setAnimNo(int _animNo)
|
||||||
m_animNo=_animNo;
|
m_animNo=_animNo;
|
||||||
m_animFrame=0;
|
m_animFrame=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
DVECTOR CPlayer::getMoveVelocity()
|
DVECTOR CPlayer::getMoveVelocity()
|
||||||
{
|
{
|
||||||
return m_moveVel;
|
return m_moveVel;
|
||||||
|
@ -471,6 +511,14 @@ DVECTOR CPlayer::getPlayerPos()
|
||||||
{
|
{
|
||||||
return Pos;
|
return Pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
Function:
|
||||||
|
Purpose:
|
||||||
|
Params:
|
||||||
|
Returns:
|
||||||
|
---------------------------------------------------------------------- */
|
||||||
int CPlayer::getPadInputHeld()
|
int CPlayer::getPadInputHeld()
|
||||||
{
|
{
|
||||||
return m_padInput;
|
return m_padInput;
|
||||||
|
@ -480,21 +528,12 @@ int CPlayer::getPadInputDown()
|
||||||
return m_padInputDown;
|
return m_padInputDown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------
|
/*----------------------------------------------------------------------
|
||||||
Function:
|
Function:
|
||||||
Purpose:
|
Purpose:
|
||||||
Params:
|
Params:
|
||||||
Returns:
|
Returns:
|
||||||
---------------------------------------------------------------------- */
|
---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int CPlayer::isOnSolidGround()
|
int CPlayer::isOnSolidGround()
|
||||||
{
|
{
|
||||||
return Pos.vy>23*16;//16*15;
|
return Pos.vy>23*16;//16*15;
|
||||||
|
|
|
@ -34,6 +34,10 @@
|
||||||
#include "player\pstates.h"
|
#include "player\pstates.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __SOUND_SOUND_H__
|
||||||
|
#include "sound\sound.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Std Lib
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -162,14 +166,26 @@ friend class CPlayerState;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
PlayerMetrics m_metrics;
|
PlayerMetrics m_metrics;
|
||||||
class CPlayerState *m_states[NUM_STATES];
|
class CPlayerState *m_states[NUM_STATES];
|
||||||
}PlayerMode;
|
}PlayerMode;
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int m_frame;
|
||||||
|
CSoundMediator::SFXID m_sfxId;
|
||||||
|
} AnimFrameSfx;
|
||||||
|
private:
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int m_numAnimFrameSfx;
|
||||||
|
struct AnimFrameSfx *m_animFrameSfx;
|
||||||
|
} AnimSfx;
|
||||||
|
static AnimSfx s_animSfx[];
|
||||||
int m_animFrame;
|
int m_animFrame;
|
||||||
int m_animNo;
|
int m_animNo;
|
||||||
CSkel m_skel;
|
CSkel m_skel;
|
||||||
|
|
|
@ -27,6 +27,10 @@
|
||||||
#include "pad\pads.h"
|
#include "pad\pads.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __SOUND_SOUND_H__
|
||||||
|
#include "sound\sound.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Std Lib
|
/* Std Lib
|
||||||
------- */
|
------- */
|
||||||
|
@ -72,6 +76,8 @@ void CPlayerStateJump::enter(CPlayer *_player)
|
||||||
DVECTOR move=getMoveVelocity(_player);
|
DVECTOR move=getMoveVelocity(_player);
|
||||||
move.vy=-metrics->m_metric[PM__JUMP_VELOCITY]<<CPlayer::VELOCITY_SHIFT;
|
move.vy=-metrics->m_metric[PM__JUMP_VELOCITY]<<CPlayer::VELOCITY_SHIFT;
|
||||||
setMoveVelocity(_player,&move);
|
setMoveVelocity(_player,&move);
|
||||||
|
|
||||||
|
CSoundMediator::playSfx(CSoundMediator::SFX_SPONGEBOB_JUMP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -629,6 +629,10 @@ SOURCE=..\..\..\source\paul\scenesel.h
|
||||||
# PROP Default_Filter ""
|
# PROP Default_Filter ""
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\..\source\player\panimsfx.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\..\source\player\player.cpp
|
SOURCE=..\..\..\source\player\player.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue