This commit is contained in:
Charles 2001-05-04 21:24:53 +00:00
parent f40d5c277b
commit 2c13701a87
2 changed files with 112 additions and 0 deletions

75
source/hazard/hspikes.cpp Normal file
View file

@ -0,0 +1,75 @@
/*=========================================================================
hspikes.cpp
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2001 Climax Development Ltd
===========================================================================*/
#ifndef __HAZARD_HSPIKES_H__
#include "hazard\hspikes.h"
#endif
#ifndef __LAYER_COLLISION_H__
#include "level\layercollision.h"
#endif
void CNpcSpikesHazard::init()
{
CNpcHazard::init();
m_state = SPIKES_RISING;
}
void CNpcSpikesHazard::processMovement( int _frames )
{
s32 minY, maxY;
m_npcPath.getPathYExtents( &minY, &maxY );
switch ( m_state )
{
case SPIKES_DROPPING:
{
if ( maxY - Pos.vy == 0 )
{
m_state = SPIKES_RISING;
}
else
{
Pos.vy += 3 * _frames;
if ( Pos.vy > maxY )
{
Pos.vy = maxY;
}
}
break;
}
case SPIKES_RISING:
{
if ( minY - Pos.vy == 0 )
{
m_state = SPIKES_DROPPING;
}
else
{
Pos.vy -= 3 * _frames;
if ( Pos.vy < minY )
{
Pos.vy = minY;
}
}
break;
}
}
}

37
source/hazard/hspikes.h Normal file
View file

@ -0,0 +1,37 @@
/*=========================================================================
hspikes.h
Author: CRB
Created:
Project: Spongebob
Purpose:
Copyright (c) 2001 Climax Development Ltd
===========================================================================*/
#ifndef __HAZARD_HSPIKES_H__
#define __HAZARD_HSPIKES_H__
#ifndef __HAZARD_HAZARD_H__
#include "hazard\hazard.h"
#endif
class CNpcSpikesHazard : public CNpcHazard
{
public:
void init();
protected:
void processMovement( int _frames );
enum SPIKES_STATE
{
SPIKES_DROPPING,
SPIKES_RISING,
};
SPIKES_STATE m_state;
};
#endif