This commit is contained in:
parent
2c6919e7b2
commit
aab3c0ec22
6 changed files with 68 additions and 15 deletions
|
@ -83,6 +83,10 @@
|
||||||
#include "hazard\hbbarrel.h"
|
#include "hazard\hbbarrel.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __HAZARD_HFIREBAL_H__
|
||||||
|
#include "hazard\hfirebal.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -101,6 +105,7 @@ CNpcHazard::NPC_HAZARD_UNIT_TYPE CNpcHazard::mapEditConvertTable[NPC_HAZARD_TYPE
|
||||||
NPC_BIG_WHEEL_HAZARD,
|
NPC_BIG_WHEEL_HAZARD,
|
||||||
NPC_DUAL_PLATFORM_BARREL_HAZARD,
|
NPC_DUAL_PLATFORM_BARREL_HAZARD,
|
||||||
NPC_BOUNCING_BARREL_HAZARD,
|
NPC_BOUNCING_BARREL_HAZARD,
|
||||||
|
NPC_FIREBALL_HAZARD,
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -191,6 +196,12 @@ CNpcHazard *CNpcHazard::Create(sThingHazard *ThisHazard)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case NPC_FIREBALL_HAZARD:
|
||||||
|
{
|
||||||
|
hazard = new ("fireball hazard") CNpcFireballHazard;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
hazard = NULL;
|
hazard = NULL;
|
||||||
|
|
|
@ -49,6 +49,7 @@ public:
|
||||||
NPC_BIG_WHEEL_HAZARD,
|
NPC_BIG_WHEEL_HAZARD,
|
||||||
NPC_DUAL_PLATFORM_BARREL_HAZARD,
|
NPC_DUAL_PLATFORM_BARREL_HAZARD,
|
||||||
NPC_BOUNCING_BARREL_HAZARD,
|
NPC_BOUNCING_BARREL_HAZARD,
|
||||||
|
NPC_FIREBALL_HAZARD,
|
||||||
|
|
||||||
NPC_HAZARD_TYPE_MAX,
|
NPC_HAZARD_TYPE_MAX,
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,6 +19,10 @@
|
||||||
#include "game\game.h"
|
#include "game\game.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __UTILS_HEADER__
|
||||||
|
#include "utils\utils.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -26,18 +30,6 @@ void CNpcFireballHazard::init()
|
||||||
{
|
{
|
||||||
CNpcHazard::init();
|
CNpcHazard::init();
|
||||||
|
|
||||||
DVECTOR newPos;
|
|
||||||
|
|
||||||
Pos.vx = 100;
|
|
||||||
Pos.vy = 100;
|
|
||||||
m_base = Pos;
|
|
||||||
|
|
||||||
newPos.vx = 300;
|
|
||||||
newPos.vy = 100;
|
|
||||||
|
|
||||||
m_npcPath.addWaypoint( newPos );
|
|
||||||
m_npcPath.setPathType( CNpcPath::SINGLE_USE_PATH );
|
|
||||||
|
|
||||||
m_extension = 0;
|
m_extension = 0;
|
||||||
m_velocity = 40;
|
m_velocity = 40;
|
||||||
|
|
||||||
|
@ -46,15 +38,52 @@ void CNpcFireballHazard::init()
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void CNpcFireballHazard::setWaypoints( sThingHazard *ThisHazard )
|
||||||
|
{
|
||||||
|
int pointNum;
|
||||||
|
|
||||||
|
u16 *PntList=(u16*)MakePtr(ThisHazard,sizeof(sThingHazard));
|
||||||
|
|
||||||
|
u16 newXPos, newYPos;
|
||||||
|
|
||||||
|
newXPos = (u16) *PntList;
|
||||||
|
PntList++;
|
||||||
|
newYPos = (u16) *PntList;
|
||||||
|
PntList++;
|
||||||
|
|
||||||
|
DVECTOR startPos;
|
||||||
|
startPos.vx = newXPos << 4;
|
||||||
|
startPos.vy = newYPos << 4;
|
||||||
|
|
||||||
|
Pos = startPos;
|
||||||
|
m_base = Pos;
|
||||||
|
|
||||||
|
if ( ThisHazard->PointCount > 1 )
|
||||||
|
{
|
||||||
|
for ( pointNum = 1 ; pointNum < ThisHazard->PointCount ; pointNum++ )
|
||||||
|
{
|
||||||
|
newXPos = (u16) *PntList;
|
||||||
|
PntList++;
|
||||||
|
newYPos = (u16) *PntList;
|
||||||
|
PntList++;
|
||||||
|
|
||||||
|
addWaypoint( newXPos, newYPos );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
addWaypoint( newXPos, newYPos );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void CNpcFireballHazard::processMovement( int _frames )
|
void CNpcFireballHazard::processMovement( int _frames )
|
||||||
{
|
{
|
||||||
s32 distX;
|
|
||||||
s32 distY;
|
|
||||||
s32 velocity;
|
s32 velocity;
|
||||||
s32 distSourceX;
|
s32 distSourceX;
|
||||||
s32 distSourceY;
|
s32 distSourceY;
|
||||||
|
|
||||||
m_npcPath.getDistToNextWaypoint( Pos, &distX, &distY );
|
|
||||||
m_npcPath.getDistToNextWaypoint( m_base, &distSourceX, &distSourceY );
|
m_npcPath.getDistToNextWaypoint( m_base, &distSourceX, &distSourceY );
|
||||||
|
|
||||||
if ( m_extension < 4096 )
|
if ( m_extension < 4096 )
|
||||||
|
|
|
@ -22,6 +22,7 @@ class CNpcFireballHazard : public CNpcHazard
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void init();
|
void init();
|
||||||
|
virtual void setWaypoints( sThingHazard *ThisHazard );
|
||||||
protected:
|
protected:
|
||||||
void processMovement( int _frames );
|
void processMovement( int _frames );
|
||||||
void processTimer( int _frames );
|
void processTimer( int _frames );
|
||||||
|
|
|
@ -145,5 +145,6 @@ Wheel=10
|
||||||
BarrelHazard=3
|
BarrelHazard=3
|
||||||
DualPlatformBarrelHazard=11
|
DualPlatformBarrelHazard=11
|
||||||
BouncingBarrel=12
|
BouncingBarrel=12
|
||||||
|
Fireball=13
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -169,3 +169,13 @@ Collision=0
|
||||||
Health=0
|
Health=0
|
||||||
AttackStrength=0
|
AttackStrength=0
|
||||||
Respawn=2
|
Respawn=2
|
||||||
|
|
||||||
|
[Fireball]
|
||||||
|
Gfx=..\..\graphics\hazards\fireball\fireball.gin
|
||||||
|
WayPoints=32
|
||||||
|
Speed=0
|
||||||
|
TurnRate=0
|
||||||
|
Collision=0
|
||||||
|
Health=0
|
||||||
|
AttackStrength=0
|
||||||
|
Respawn=2
|
||||||
|
|
Loading…
Add table
Reference in a new issue