This commit is contained in:
parent
4eef48176b
commit
93c3ae5e34
5 changed files with 60 additions and 31 deletions
|
@ -453,8 +453,6 @@ void CNpcEnemy::think(int _frames)
|
|||
playerXDistSqr = playerXDist * playerXDist;
|
||||
playerYDistSqr = playerYDist * playerYDist;
|
||||
|
||||
detectCollisionWithPlayer();
|
||||
|
||||
if ( m_animPlaying )
|
||||
{
|
||||
int frameCount = m_skel.getFrameCount();
|
||||
|
@ -519,15 +517,25 @@ void CNpcEnemy::think(int _frames)
|
|||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void CNpcEnemy::detectCollisionWithPlayer()
|
||||
void CNpcEnemy::collidedWith( CThing *_thisThing )
|
||||
{
|
||||
if ( m_data[m_type].detectCollision && playerXDistSqr + playerYDistSqr < 400 )
|
||||
switch(_thisThing->getThingType())
|
||||
{
|
||||
case TYPE_PLAYER:
|
||||
{
|
||||
if ( m_data[m_type].detectCollision )
|
||||
{
|
||||
// close enough for collision
|
||||
|
||||
m_oldControlFunc = m_controlFunc;
|
||||
m_controlFunc = NPC_CONTROL_COLLISION;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
ASSERT(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -350,7 +350,6 @@ protected:
|
|||
void processClose( int _frames );
|
||||
void processCollision();
|
||||
void processTimer( int _frames );
|
||||
void detectCollisionWithPlayer();
|
||||
bool isCollisionWithGround();
|
||||
|
||||
void processGenericGotoTarget( int _frames, s32 xDist, s32 yDist, s32 speed );
|
||||
|
@ -485,6 +484,8 @@ protected:
|
|||
int m_animNo;
|
||||
CSkel m_skel;
|
||||
TPAGE_DESC m_actorTPage;
|
||||
|
||||
virtual void collidedWith(CThing *_thisThing);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
8,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SQUASH_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_FISH_HOOK
|
||||
|
@ -90,7 +90,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_DUST_DEVIL
|
||||
|
@ -106,7 +106,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_PENDULUM
|
||||
|
@ -138,7 +138,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
40,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__BURN_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SAW_BLADE
|
||||
|
@ -170,7 +170,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_CIRCULAR_PLATFORM
|
||||
|
@ -186,7 +186,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_SMALL_JELLYFISH_1
|
||||
|
@ -202,7 +202,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SHOCK_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SMALL_JELLYFISH_2
|
||||
|
@ -218,7 +218,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SHOCK_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_ANEMONE_1
|
||||
|
@ -234,7 +234,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
0,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_ANEMONE_2
|
||||
|
@ -250,7 +250,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
0,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_ANEMONE_3
|
||||
|
@ -266,7 +266,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
0,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_SKELETAL_FISH
|
||||
|
@ -282,7 +282,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__BITE_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_CLAM_JUMP
|
||||
|
@ -346,7 +346,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
2,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_PRICKLY_BUG
|
||||
|
@ -362,7 +362,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
1,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__POISON_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SEA_SNAKE_1
|
||||
|
@ -378,7 +378,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
256,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SHOCK_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SEA_SNAKE_2
|
||||
|
@ -394,7 +394,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
256,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SHOCK_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_PUFFA_FISH
|
||||
|
@ -426,7 +426,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
1,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__NONE,
|
||||
},
|
||||
|
||||
{ // NPC_HERMIT_CRAB
|
||||
|
@ -474,7 +474,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
0,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__BITE_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SPIDER_CRAB
|
||||
|
@ -490,7 +490,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__PINCH_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_EYEBALL
|
||||
|
@ -602,7 +602,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
128,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__BURN_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SHARK_MAN
|
||||
|
@ -618,7 +618,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__BITE_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_OIL_BLOB
|
||||
|
@ -650,7 +650,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
5,
|
||||
2048,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SQUASH_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_MOTHER_JELLYFISH
|
||||
|
@ -666,7 +666,7 @@ CNpcEnemy::NPC_DATA CNpcEnemy::m_data[NPC_UNIT_TYPE_MAX] =
|
|||
3,
|
||||
256,
|
||||
false,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SHOCK_ENEMY,
|
||||
},
|
||||
|
||||
{ // NPC_SUB_SHARK
|
||||
|
|
|
@ -1173,9 +1173,20 @@ void CPlayer::takeDamage(DAMAGE_TYPE _damage)
|
|||
// Check if we are currently immune to this damage type
|
||||
switch(_damage)
|
||||
{
|
||||
case DAMAGE__NONE:
|
||||
break;
|
||||
|
||||
case DAMAGE__FALL:
|
||||
case DAMAGE__LAVA:
|
||||
case DAMAGE__HIT_ENEMY:
|
||||
case DAMAGE__SHOCK_ENEMY:
|
||||
case DAMAGE__GAS_ENEMY:
|
||||
case DAMAGE__POISON_ENEMY:
|
||||
case DAMAGE__SWALLOW_ENEMY:
|
||||
case DAMAGE__PINCH_ENEMY:
|
||||
case DAMAGE__SQUASH_ENEMY:
|
||||
case DAMAGE__BURN_ENEMY:
|
||||
case DAMAGE__BITE_ENEMY:
|
||||
break;
|
||||
|
||||
case DAMAGE__ELECTROCUTION:
|
||||
|
|
|
@ -106,10 +106,19 @@ typedef enum
|
|||
|
||||
typedef enum
|
||||
{
|
||||
DAMAGE__NONE, // put in so that an item can push the user but not damage them
|
||||
DAMAGE__FALL,
|
||||
DAMAGE__ELECTROCUTION,
|
||||
DAMAGE__LAVA,
|
||||
DAMAGE__HIT_ENEMY,
|
||||
DAMAGE__SHOCK_ENEMY,
|
||||
DAMAGE__GAS_ENEMY,
|
||||
DAMAGE__POISON_ENEMY,
|
||||
DAMAGE__SWALLOW_ENEMY,
|
||||
DAMAGE__PINCH_ENEMY,
|
||||
DAMAGE__SQUASH_ENEMY,
|
||||
DAMAGE__BURN_ENEMY,
|
||||
DAMAGE__BITE_ENEMY,
|
||||
}DAMAGE_TYPE;
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue