This commit is contained in:
parent
3a10910187
commit
07c358c793
11 changed files with 156 additions and 13 deletions
|
@ -43,7 +43,7 @@ CFXBaseAnim::sFXAnim FXAcidSplashData=
|
|||
ONE,
|
||||
FRM__SPLASH001,FRM__SPLASH006,
|
||||
1,
|
||||
0,255,0,
|
||||
127,255,127,
|
||||
0,
|
||||
{0,0},
|
||||
0
|
||||
|
@ -63,7 +63,7 @@ CFXBaseAnim::sFXAnim FXOilSplashData=
|
|||
ONE,
|
||||
FRM__SPLASH001,FRM__SPLASH006,
|
||||
1,
|
||||
0,0,0,
|
||||
64,64,64,
|
||||
0,
|
||||
{0,0},
|
||||
CFX::FX_TYPE_EXPLODE,
|
||||
|
@ -107,30 +107,30 @@ CFXBaseAnim::sFXAnim FXAcidDripData=
|
|||
ONE,
|
||||
FRM__DRIP,FRM__DRIP,
|
||||
1,
|
||||
127,127,255,
|
||||
CFXBaseAnim::FXANIM_FLAG_LOOP | CFXBaseAnim::FXANIM_FLAG_COLLIDE_KILL | CFXBaseAnim::FXANIM_FLAG_HAS_GRAVITY,
|
||||
127,255,127,
|
||||
CFXBaseAnim::FXANIM_FLAG_LOOP | CFXBaseAnim::FXANIM_FLAG_COLLIDE_KILL | CFXBaseAnim::FXANIM_FLAG_HAS_GRAVITY | CFXBaseAnim::FXANIM_FLAG_INJURE_PLAYER,
|
||||
{0,1},
|
||||
CFX::FX_TYPE_SPLASH_WATER
|
||||
CFX::FX_TYPE_SPLASH_ACID
|
||||
};
|
||||
CFXBaseAnim::sFXAnim FXLavaDripData=
|
||||
{
|
||||
ONE,
|
||||
FRM__DRIP,FRM__DRIP,
|
||||
1,
|
||||
127,127,255,
|
||||
CFXBaseAnim::FXANIM_FLAG_LOOP | CFXBaseAnim::FXANIM_FLAG_COLLIDE_KILL | CFXBaseAnim::FXANIM_FLAG_HAS_GRAVITY,
|
||||
255,127,127,
|
||||
CFXBaseAnim::FXANIM_FLAG_LOOP | CFXBaseAnim::FXANIM_FLAG_COLLIDE_KILL | CFXBaseAnim::FXANIM_FLAG_HAS_GRAVITY | CFXBaseAnim::FXANIM_FLAG_INJURE_PLAYER,
|
||||
{0,1},
|
||||
CFX::FX_TYPE_SPLASH_WATER
|
||||
CFX::FX_TYPE_SPLASH_LAVA
|
||||
};
|
||||
CFXBaseAnim::sFXAnim FXOilDripData=
|
||||
{
|
||||
ONE,
|
||||
FRM__DRIP,FRM__DRIP,
|
||||
1,
|
||||
127,127,255,
|
||||
CFXBaseAnim::FXANIM_FLAG_LOOP | CFXBaseAnim::FXANIM_FLAG_COLLIDE_KILL | CFXBaseAnim::FXANIM_FLAG_HAS_GRAVITY,
|
||||
64,64,64,
|
||||
CFXBaseAnim::FXANIM_FLAG_LOOP | CFXBaseAnim::FXANIM_FLAG_COLLIDE_KILL | CFXBaseAnim::FXANIM_FLAG_HAS_GRAVITY | CFXBaseAnim::FXANIM_FLAG_INJURE_PLAYER,
|
||||
{0,1},
|
||||
CFX::FX_TYPE_SPLASH_WATER
|
||||
CFX::FX_TYPE_SPLASH_OIL
|
||||
};
|
||||
// Bubble
|
||||
CFXBaseAnim::sFXAnim FXBubbleWaterData=
|
||||
|
@ -407,3 +407,8 @@ void CFX::getFXRenderPos(DVECTOR &Pos)
|
|||
Pos=getPos();
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CFX::collidedWith(CThing *_thisThing)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -81,6 +81,7 @@ virtual void killFX() {setToShutdown();}
|
|||
virtual void toggleVisible() {IsVisible = !IsVisible;}
|
||||
|
||||
protected:
|
||||
virtual void collidedWith(CThing *_thisThing);
|
||||
s32 OtPos;
|
||||
s16 Life;
|
||||
|
||||
|
|
|
@ -13,6 +13,10 @@
|
|||
#include "level\layercollision.h"
|
||||
#include "FX\FXBaseAnim.h"
|
||||
|
||||
#ifndef __PLAYER_PLAYER_H__
|
||||
#include "player\player.h"
|
||||
#endif
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
void CFXBaseAnim::init(DVECTOR const &_Pos)
|
||||
|
@ -108,3 +112,32 @@ POLY_FT4 *Ft4=SprBank->printRotatedScaledSprite(renderFrame,RenderPos.vx,RenderP
|
|||
setShadeTex(Ft4,0);
|
||||
setRGB0(Ft4,DataPtr->R,DataPtr->G,DataPtr->B);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CFXBaseAnim::collidedWith(CThing *_thisThing)
|
||||
{
|
||||
switch(_thisThing->getThingType())
|
||||
{
|
||||
case TYPE_PLAYER:
|
||||
{
|
||||
CPlayer *player = (CPlayer *) _thisThing;
|
||||
|
||||
if ( !player->isRecoveringFromHit() )
|
||||
{
|
||||
if ( DataPtr->Flags & FXANIM_FLAG_KILL_PLAYER )
|
||||
{
|
||||
player->takeDamage( DAMAGE__KILL_OUTRIGHT );
|
||||
}
|
||||
else if ( DataPtr->Flags & FXANIM_FLAG_INJURE_PLAYER )
|
||||
{
|
||||
player->takeDamage( DAMAGE__HIT_ENEMY );
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,8 @@ public:
|
|||
FXANIM_FLAG_LOOP =1<<0,
|
||||
FXANIM_FLAG_COLLIDE_KILL =1<<1,
|
||||
FXANIM_FLAG_HAS_GRAVITY =1<<2,
|
||||
FXANIM_FLAG_INJURE_PLAYER =1<<3,
|
||||
FXANIM_FLAG_KILL_PLAYER =1<<4,
|
||||
};
|
||||
|
||||
virtual void init(DVECTOR const &Pos);
|
||||
|
@ -33,6 +35,7 @@ virtual void shutdown();
|
|||
virtual void think(int _frames);
|
||||
virtual void render();
|
||||
virtual void killFX();
|
||||
virtual int canCollide() {return true;}
|
||||
|
||||
void setData(void *Data) {DataPtr=(sFXAnim*)Data;}
|
||||
|
||||
|
@ -42,6 +45,8 @@ virtual void SetScaleY(int S) {CurrentScaleY=S;}
|
|||
virtual void SetHeading(int H) {CurrentHeading=H;}
|
||||
|
||||
protected:
|
||||
virtual void collidedWith(CThing *_thisThing);
|
||||
|
||||
sFXAnim *DataPtr;
|
||||
s16 VelY;
|
||||
s16 MaxFrame;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue