This commit is contained in:
Charles 2001-08-03 15:22:33 +00:00
parent 10a01720c7
commit 8259aac172

View file

@ -1252,60 +1252,63 @@ void CNpcSeaSnakeEnemy::collidedWith( CThing *_thisThing )
{ {
case TYPE_PLAYER: case TYPE_PLAYER:
{ {
CPlayer *player = (CPlayer *) _thisThing; if ( m_invulnerableTimer <= 0 )
ATTACK_STATE playerState = player->getAttackState();
if(playerState==ATTACK_STATE__NONE)
{ {
if ( !player->isRecoveringFromHit() ) CPlayer *player = (CPlayer *) _thisThing;
ATTACK_STATE playerState = player->getAttackState();
if(playerState==ATTACK_STATE__NONE)
{ {
switch( m_data[m_type].detectCollision ) if ( !player->isRecoveringFromHit() )
{ {
case DETECT_NO_COLLISION: switch( m_data[m_type].detectCollision )
{ {
// ignore case DETECT_NO_COLLISION:
break;
}
case DETECT_ALL_COLLISION:
{
if ( m_controlFunc != NPC_CONTROL_COLLISION )
{ {
m_oldControlFunc = m_controlFunc; // ignore
m_controlFunc = NPC_CONTROL_COLLISION;
break;
} }
processUserCollision( _thisThing ); case DETECT_ALL_COLLISION:
{
if ( m_controlFunc != NPC_CONTROL_COLLISION )
{
m_oldControlFunc = m_controlFunc;
m_controlFunc = NPC_CONTROL_COLLISION;
}
break; processUserCollision( _thisThing );
}
case DETECT_ATTACK_COLLISION_GENERIC: break;
{ }
processAttackCollision();
processUserCollision( _thisThing );
break; case DETECT_ATTACK_COLLISION_GENERIC:
{
processAttackCollision();
processUserCollision( _thisThing );
break;
}
} }
} }
} }
} else
else if ( m_invulnerableTimer <= 0 )
{
// player is attacking, respond appropriately
if ( m_controlFunc != NPC_CONTROL_SHOT )
{ {
if(playerState==ATTACK_STATE__BUTT_BOUNCE) // player is attacking, respond appropriately
{
player->justButtBouncedABadGuy();
}
m_controlFunc = NPC_CONTROL_SHOT;
m_state = NPC_GENERIC_HIT_CHECK_HEALTH;
drawAttackEffect(); if ( m_controlFunc != NPC_CONTROL_SHOT )
{
if(playerState==ATTACK_STATE__BUTT_BOUNCE)
{
player->justButtBouncedABadGuy();
}
m_controlFunc = NPC_CONTROL_SHOT;
m_state = NPC_GENERIC_HIT_CHECK_HEALTH;
drawAttackEffect();
}
} }
} }