#ifndef __PREY_AI_CREATURE_H__ #define __PREY_AI_CREATURE_H__ class hhCreatureX : public hhMonsterAI { public: CLASS_PROTOTYPE(hhCreatureX); #ifdef ID_DEMO_BUILD //HUMANHEAD jsh PCF 5/26/06: code removed for demo build void Event_GunRecharge( int onOff ) {}; void Event_LaserOn() {}; void Event_LaserOff() {}; void Event_UpdateLasers() {}; void Event_SetGunOffset( const idAngles &ang ) {}; void Event_EndLeftBeams() {}; void Event_EndRightBeams() {}; void Event_AssignRightMuzzleFx( hhEntityFx* fx ) {}; void Event_AssignLeftMuzzleFx( hhEntityFx* fx ) {}; void Event_AssignRightImpactFx( hhEntityFx* fx ) {}; void Event_AssignLeftImpactFx( hhEntityFx* fx ) {}; void Event_AssignLeftRechargeFx( hhEntityFx* fx ) {}; void Event_AssignRightRechargeFx( hhEntityFx* fx ) {}; void Event_AttackMissile( const char *jointname, const idDict *projDef, int boneDir ) {}; void Event_HudEvent( const char *eventName ) {}; void Event_RechargeHealth() {}; void Event_EndRecharge() {}; void Event_ResetRechargeBeam() {}; void Event_SparkLeft() {}; void Event_SparkRight() {}; void Event_LeftGunDeath() {}; void Event_RightGunDeath() {}; void Event_StartRechargeBeams() {}; #else ~hhCreatureX(); void Spawn(); void LinkScriptVariables( void ); void Think(); void Save( idSaveGame *savefile ) const; void Restore( idRestoreGame *savefile ); void Damage( idEntity *inflictor, idEntity *attacker, const idVec3 &dir, const char *damageDefName, const float damageScale, const int location ); idScriptBool AI_GUN_TRACKING; idScriptBool AI_RECHARGING; idScriptBool AI_LEFT_FIRE; idScriptBool AI_RIGHT_FIRE; idScriptBool AI_LEFT_DAMAGED; idScriptBool AI_RIGHT_DAMAGED; idScriptBool AI_FIRING_LASER; idScriptBool AI_HEALTH_TICK; idScriptBool AI_GUN_EXPLODE; protected: void Event_GunRecharge( int onOff ); void Event_LaserOn(); void Event_LaserOff(); void Event_UpdateLasers(); void Event_SetGunOffset( const idAngles &ang ); void Event_EndLeftBeams(); void Event_EndRightBeams(); void Event_AssignRightMuzzleFx( hhEntityFx* fx ); void Event_AssignLeftMuzzleFx( hhEntityFx* fx ); void Event_AssignRightImpactFx( hhEntityFx* fx ); void Event_AssignLeftImpactFx( hhEntityFx* fx ); void Event_AssignLeftRechargeFx( hhEntityFx* fx ); void Event_AssignRightRechargeFx( hhEntityFx* fx ); void Event_AttackMissile( const char *jointname, const idDict *projDef, int boneDir ); void Event_HudEvent( const char *eventName ); void Event_RechargeHealth(); void Event_EndRecharge(); void Event_ResetRechargeBeam(); void Event_SparkLeft(); void Event_SparkRight(); void Event_LeftGunDeath(); void Event_RightGunDeath(); void Event_StartRechargeBeams(); void MuzzleLeftOn(); void MuzzleRightOn(); void MuzzleLeftOff(); void MuzzleRightOff(); bool UpdateAnimationControllers( void ); virtual void Killed(idEntity *inflictor, idEntity *attacker, int damage, const idVec3 &dir, int location ); void Show(); void Activate( idEntity *activator ); idEntityPtr laserRight; idEntityPtr laserLeft; idEntityPtr preLaserRight; idEntityPtr preLaserLeft; idList< idEntityPtr > leftBeamList; idList< idEntityPtr > rightBeamList; idEntityPtr leftRechargeBeam; idEntityPtr rightRechargeBeam; idEntityPtr leftDamageBeam; idEntityPtr rightDamageBeam; idEntityPtr leftRetractBeam; idEntityPtr rightRetractBeam; idEntityPtr muzzleLeftFx; idEntityPtr muzzleRightFx; idEntityPtr impactLeftFx; idEntityPtr impactRightFx; idEntityPtr rechargeLeftFx; idEntityPtr rechargeRightFx; idEntityPtr retractLeftFx; idEntityPtr retractRightFx; int numBurstBeams; bool bLaserLeftActive; bool bLaserRightActive; idVec3 targetStart_L; idVec3 targetEnd_L; idVec3 targetCurrent_L; idVec3 targetStart_R; idVec3 targetEnd_R; idVec3 targetCurrent_R; float targetAlpha_L; float targetAlpha_R; int leftGunHealth; int rightGunHealth; int leftGunLives; int rightGunLives; idAngles gunShake; int nextBeamTime; int nextLeftZapTime; int nextRightZapTime; idVec3 laserEndLeft; idVec3 laserEndRight; int nextLaserLeft; int nextLaserRight; int nextHealthTick; int leftRechargerHealth; int rightRechargerHealth; idEntityPtr leftRecharger; idEntityPtr rightRecharger; bool bScripted; #endif //HUMANHEAD jsh PCF 5/26/06: code removed for demo build }; #endif /* __PREY_AI_CREATURE_H__ */