Serious-Engine/Sources/EntitiesMP/Projectile.h
2016-03-11 15:57:17 +02:00

421 lines
14 KiB
C++

/*
* This file is generated by Entity Class Compiler, (c) CroTeam 1997-98
*/
#ifndef _EntitiesMP_Projectile_INCLUDED
#define _EntitiesMP_Projectile_INCLUDED 1
#include <EntitiesMP/BasicEffects.h>
#include <EntitiesMP/Light.h>
#include <EntitiesMP/Flame.h>
extern DECL_DLL CEntityPropertyEnumType ProjectileType_enum;
enum ProjectileType {
PRT_ROCKET = 0,
PRT_GRENADE = 1,
PRT_FLAME = 2,
PRT_LASER_RAY = 3,
PRT_WALKER_ROCKET = 4,
PRT_CATMAN_FIRE = 10,
PRT_HEADMAN_FIRECRACKER = 11,
PRT_HEADMAN_ROCKETMAN = 12,
PRT_HEADMAN_BOMBERMAN = 13,
PRT_BONEMAN_FIRE = 14,
PRT_WOMAN_FIRE = 15,
PRT_DRAGONMAN_FIRE = 16,
PRT_DRAGONMAN_STRONG_FIRE = 17,
PRT_STONEMAN_FIRE = 18,
PRT_STONEMAN_BIG_FIRE = 19,
PRT_STONEMAN_LARGE_FIRE = 20,
PRT_LAVAMAN_BIG_BOMB = 21,
PRT_LAVAMAN_BOMB = 22,
PRT_LAVAMAN_STONE = 23,
PRT_ICEMAN_FIRE = 27,
PRT_ICEMAN_BIG_FIRE = 28,
PRT_ICEMAN_LARGE_FIRE = 29,
PRT_HUANMAN_FIRE = 41,
PRT_FISHMAN_FIRE = 42,
PRT_MANTAMAN_FIRE = 43,
PRT_CYBORG_LASER = 44,
PRT_CYBORG_BOMB = 45,
PRT_LAVA_COMET = 50,
PRT_BEAST_PROJECTILE = 51,
PRT_BEAST_BIG_PROJECTILE = 52,
PRT_BEAST_DEBRIS = 53,
PRT_BEAST_BIG_DEBRIS = 54,
PRT_DEVIL_LASER = 55,
PRT_DEVIL_ROCKET = 56,
PRT_DEVIL_GUIDED_PROJECTILE = 57,
PRT_GRUNT_PROJECTILE_SOL = 60,
PRT_GRUNT_PROJECTILE_COM = 64,
PRT_GUFFY_PROJECTILE = 61,
PRT_DEMON_FIREBALL = 62,
PRT_DEMON_FIREBALL_DEBRIS = 63,
PRT_SHOOTER_WOODEN_DART = 70,
PRT_SHOOTER_FIREBALL = 71,
PRT_SHOOTER_FLAME = 72,
PRT_LARVA_PLASMA = 73,
PRT_LARVA_TAIL_PROJECTILE = 74,
PRT_AIRELEMENTAL_WIND = 75,
PRT_AFTERBURNER_DEBRIS = 76,
PRT_METEOR = 77,
};
DECL_DLL inline void ClearToDefault(ProjectileType &e) { e = (ProjectileType)0; } ;
extern DECL_DLL CEntityPropertyEnumType ProjectileMovingType_enum;
enum ProjectileMovingType {
PMT_FLYING = 0,
PMT_SLIDING = 1,
PMT_GUIDED = 2,
PMT_GUIDED_FAST = 3,
PMT_FLYING_REBOUNDING = 4,
PMT_GUIDED_SLIDING = 5,
};
DECL_DLL inline void ClearToDefault(ProjectileMovingType &e) { e = (ProjectileMovingType)0; } ;
#define EVENTCODE_ELaunchProjectile 0x01f50000
class DECL_DLL ELaunchProjectile : public CEntityEvent {
public:
ELaunchProjectile();
CEntityEvent *MakeCopy(void);
CEntityPointer penLauncher;
enum ProjectileType prtType;
FLOAT fSpeed;
FLOAT fStretch;
};
DECL_DLL inline void ClearToDefault(ELaunchProjectile &e) { e = ELaunchProjectile(); } ;
extern "C" DECL_DLL CDLLEntityClass CProjectile_DLLClass;
class DECL_DLL CProjectile : public CMovableModelEntity {
public:
virtual CEntity *GetPredictionPair(void) { return m_penPrediction; };
virtual void SetPredictionPair(CEntity *penPair) { m_penPrediction = penPair; };
virtual void SetDefaultProperties(void);
CEntityPointer m_penLauncher;
enum ProjectileType m_prtType;
enum ProjectileMovingType m_pmtMove;
CEntityPointer m_penParticles;
CEntityPointer m_penTarget;
CEntityPointer m_penLastDamaged;
FLOAT m_fSpeed;
FLOAT m_fIgnoreTime;
FLOAT m_fFlyTime;
FLOAT m_fStartTime;
FLOAT m_fDamageAmount;
FLOAT m_fRangeDamageAmount;
FLOAT m_fDamageHotSpotRange;
FLOAT m_fDamageFallOffRange;
FLOAT m_fSoundRange;
BOOL m_bExplode;
BOOL m_bLightSource;
BOOL m_bCanHitHimself;
BOOL m_bCanBeDestroyed;
FLOAT m_fWaitAfterDeath;
FLOAT m_aRotateSpeed;
FLOAT m_tmExpandBox;
FLOAT m_tmInvisibility;
INDEX m_iRebounds;
FLOAT m_fStretch;
CSoundObject m_soEffect;
CSoundObject m_soExplosion;
FLOAT m_fGuidedMaxSpeedFactor;
BOOL bLockedOn;
BOOL m_bLeftFlame;
CEntityPointer m_penPrediction;
CLightSource m_lsLightSource;
#line 587 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PreMoving(void);
#line 598 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PostMoving(void);
#line 613 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void Read_t(CTStream * istr);
void DumpSync_t(CTStream & strm,INDEX iExtensiveSyncCheck);
#line 641 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
CLightSource * GetLightSource(void);
void Copy(CEntity & enOther,ULONG ulFlags);
#line 661 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
BOOL AdjustShadingParameters(FLOAT3D & vLightDirection,COLOR & colLight,COLOR & colAmbient);
#line 679 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void SetupLightSource(BOOL bLive);
#line 811 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void RenderParticles(void);
#line 951 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerRocket(void);
#line 989 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void WalkerRocket(void);
#line 1024 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void WalkerRocketExplosion(void);
#line 1028 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerRocketExplosion(void);
#line 1072 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerGrenade(void);
#line 1105 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerGrenadeExplosion(void);
#line 1145 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerFlame(void);
#line 1181 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerLaserRay(void);
#line 1211 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void PlayerLaserWave(void);
#line 1234 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void CatmanProjectile(void);
#line 1261 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void HeadmanFirecracker(void);
#line 1285 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void HeadmanRocketman(void);
#line 1315 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void HeadmanBomberman(void);
#line 1341 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void HeadmanBombermanExplosion(void);
#line 1366 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void CyborgBombExplosion(void);
#line 1395 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BonemanProjectile(void);
#line 1422 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void WomanProjectile(void);
#line 1449 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DragonmanProjectile(INDEX iType);
#line 1485 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ElementalRock(INDEX iSize,INDEX iType);
#line 1543 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LavaManBomb(void);
#line 1605 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LavamanBombExplosion(void);
#line 1679 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LavamanBombDebrisExplosion(void);
#line 1721 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void HuanmanProjectile(void);
#line 1750 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastProjectile(void);
#line 1785 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastBigProjectile(void);
#line 1820 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastDebris(void);
#line 1849 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastBigDebris(void);
#line 1878 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastDebrisExplosion(void);
#line 1901 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastBigDebrisExplosion(void);
#line 1924 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastProjectileExplosion(void);
#line 1982 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BeastBigProjectileExplosion(void);
#line 2041 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void FishmanProjectile(void);
#line 2068 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void MantamanProjectile(void);
#line 2094 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DevilLaser(void);
#line 2117 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DevilRocket(void);
#line 2149 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DevilRocketExplosion(void);
#line 2187 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DevilGuidedProjectile(void);
#line 2221 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DevilGuidedProjectileExplosion(void);
#line 2280 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void CyborgLaser(void);
#line 2302 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void CyborgBomb(void);
#line 2334 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LavaBall(void);
#line 2360 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LavaBallExplosion(void);
#line 2380 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void GruntSoldierLaser(void);
#line 2410 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void GruntCommanderLaser(void);
#line 2445 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void GuffyProjectile(void);
#line 2483 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void GuffyProjectileExplosion(void);
#line 2492 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DemonFireball(void);
#line 2527 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void DemonFireballExplosion(void);
#line 2554 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LarvaPlasma(void);
#line 2599 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LarvaPlasmaExplosion(void);
#line 2621 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LarvaTail(void);
#line 2656 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void LarvaTailExplosion(void);
#line 2665 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void WindBlast(void);
#line 2693 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void Meteor();
#line 2732 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void MeteorExplosion();
#line 2797 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ShooterWoodenDart(void);
#line 2828 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ShooterWoodenDartExplosion();
#line 2843 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ShooterFireball(void);
#line 2876 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ShooterFireballExplosion();
#line 2891 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ShooterFlame(void);
#line 2912 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void AfterburnerDebris(void);
#line 2944 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ProjectileTouch(CEntityPointer penHit);
#line 3015 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ProjectileHit(void);
#line 3035 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void SpawnEffect(const CPlacement3D & plEffect,const ESpawnEffect & eSpawnEffect);
#line 3045 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void BounceSound(void);
#line 3059 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ANGLE GetRotationSpeed(ANGLE aWantedAngle,ANGLE aRotateSpeed,FLOAT fWaitFrequency);
#line 3084 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
void ReceiveDamage(CEntity * penInflictor,enum DamageType dmtType,
#line 3085 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
FLOAT fDamageAmmount,const FLOAT3D & vHitPoint,const FLOAT3D & vDirection);
#define STATE_CProjectile_ProjectileFly 0x01f50001
BOOL
#line 3107 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ProjectileFly(const CEntityEvent &__eeInput);
BOOL H0x01f50002_ProjectileFly_01(const CEntityEvent &__eeInput);
BOOL H0x01f50003_ProjectileFly_02(const CEntityEvent &__eeInput);
#define STATE_CProjectile_ProjectileGuidedFly 0x01f50004
BOOL
#line 3169 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ProjectileGuidedFly(const CEntityEvent &__eeInput);
BOOL H0x01f50005_ProjectileGuidedFly_01(const CEntityEvent &__eeInput);
BOOL H0x01f50006_ProjectileGuidedFly_02(const CEntityEvent &__eeInput);
BOOL H0x01f50007_ProjectileGuidedFly_03(const CEntityEvent &__eeInput);
BOOL H0x01f50008_ProjectileGuidedFly_04(const CEntityEvent &__eeInput);
#define STATE_CProjectile_ProjectileGuidedFastFly 0x01f50009
BOOL
#line 3275 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ProjectileGuidedFastFly(const CEntityEvent &__eeInput);
BOOL H0x01f5000a_ProjectileGuidedFastFly_01(const CEntityEvent &__eeInput);
BOOL H0x01f5000b_ProjectileGuidedFastFly_02(const CEntityEvent &__eeInput);
BOOL H0x01f5000c_ProjectileGuidedFastFly_03(const CEntityEvent &__eeInput);
BOOL H0x01f5000d_ProjectileGuidedFastFly_04(const CEntityEvent &__eeInput);
#define STATE_CProjectile_ProjectileGuidedSlide 0x01f5000e
BOOL
#line 3408 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ProjectileGuidedSlide(const CEntityEvent &__eeInput);
BOOL H0x01f5000f_ProjectileGuidedSlide_01(const CEntityEvent &__eeInput);
BOOL H0x01f50010_ProjectileGuidedSlide_02(const CEntityEvent &__eeInput);
BOOL H0x01f50011_ProjectileGuidedSlide_03(const CEntityEvent &__eeInput);
BOOL H0x01f50012_ProjectileGuidedSlide_04(const CEntityEvent &__eeInput);
#define STATE_CProjectile_ProjectileSlide 0x01f50013
BOOL
#line 3500 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ProjectileSlide(const CEntityEvent &__eeInput);
BOOL H0x01f50014_ProjectileSlide_01(const CEntityEvent &__eeInput);
BOOL H0x01f50015_ProjectileSlide_02(const CEntityEvent &__eeInput);
#define STATE_CProjectile_ProjectileFlyRebounding 0x01f50016
BOOL
#line 3580 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
ProjectileFlyRebounding(const CEntityEvent &__eeInput);
BOOL H0x01f50017_ProjectileFlyRebounding_01(const CEntityEvent &__eeInput);
BOOL H0x01f50018_ProjectileFlyRebounding_02(const CEntityEvent &__eeInput);
#define STATE_CProjectile_Main 1
BOOL
#line 3648 "D:/SE1_GPL/Sources/EntitiesMP/Projectile.es"
Main(const CEntityEvent &__eeInput);
BOOL H0x01f50019_Main_01(const CEntityEvent &__eeInput);
BOOL H0x01f5001a_Main_02(const CEntityEvent &__eeInput);
BOOL H0x01f5001b_Main_03(const CEntityEvent &__eeInput);
BOOL H0x01f5001c_Main_04(const CEntityEvent &__eeInput);
BOOL H0x01f5001d_Main_05(const CEntityEvent &__eeInput);
BOOL H0x01f5001e_Main_06(const CEntityEvent &__eeInput);
BOOL H0x01f5001f_Main_07(const CEntityEvent &__eeInput);
BOOL H0x01f50020_Main_08(const CEntityEvent &__eeInput);
BOOL H0x01f50021_Main_09(const CEntityEvent &__eeInput);
BOOL H0x01f50022_Main_10(const CEntityEvent &__eeInput);
BOOL H0x01f50023_Main_11(const CEntityEvent &__eeInput);
BOOL H0x01f50024_Main_12(const CEntityEvent &__eeInput);
BOOL H0x01f50025_Main_13(const CEntityEvent &__eeInput);
BOOL H0x01f50026_Main_14(const CEntityEvent &__eeInput);
BOOL H0x01f50027_Main_15(const CEntityEvent &__eeInput);
BOOL H0x01f50028_Main_16(const CEntityEvent &__eeInput);
BOOL H0x01f50029_Main_17(const CEntityEvent &__eeInput);
BOOL H0x01f5002a_Main_18(const CEntityEvent &__eeInput);
BOOL H0x01f5002b_Main_19(const CEntityEvent &__eeInput);
BOOL H0x01f5002c_Main_20(const CEntityEvent &__eeInput);
BOOL H0x01f5002d_Main_21(const CEntityEvent &__eeInput);
BOOL H0x01f5002e_Main_22(const CEntityEvent &__eeInput);
BOOL H0x01f5002f_Main_23(const CEntityEvent &__eeInput);
BOOL H0x01f50030_Main_24(const CEntityEvent &__eeInput);
BOOL H0x01f50031_Main_25(const CEntityEvent &__eeInput);
BOOL H0x01f50032_Main_26(const CEntityEvent &__eeInput);
};
#endif // _EntitiesMP_Projectile_INCLUDED