1 #ifndef bh_corpse_h_included 2 #define bh_corpse_h_included 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #define CORPSE_SIGHTINGS 1 8 9 typedef struct netcorpsedatablock { 10 int timer; 11 int validityTimer; 12 int SoundHandle; /* Just in case. */ 13 int SoundHandle2; 14 int SoundHandle3; 15 int SoundHandle4; 16 HMODELCONTROLLER HModelController; 17 18 AVP_BEHAVIOUR_TYPE Type; 19 HITLOCATIONTABLE *hltable; 20 int GibbFactor; 21 DEATH_DATA *This_Death; 22 /* If you're a predator... */ 23 PRED_CLOAKSTATE CloakStatus; 24 int CloakTimer; 25 int destructTimer; 26 /* If you're a marine... */ 27 void (*WeaponMisfireFunction)(SECTION_DATA *, int *); 28 SECTION_DATA *My_Gunflash_Section; 29 SECTION *TemplateRoot; 30 struct marine_weapon_data *My_Weapon; 31 int weapon_variable; 32 int Android; 33 int ARealMarine; 34 /* If you're an alien... */ 35 int subtype; 36 37 int Wounds; 38 39 int DeathFiring :1; 40 41 42 }NETCORPSEDATABLOCK; 43 44 extern void Convert_Alien_To_Corpse(STRATEGYBLOCK *sbPtr,DEATH_DATA *this_death,DAMAGE_PROFILE* damage); 45 extern void Convert_Predator_To_Corpse(STRATEGYBLOCK *sbPtr,DEATH_DATA *this_death); 46 extern void Convert_Marine_To_Corpse(STRATEGYBLOCK *sbPtr,DEATH_DATA *this_death); 47 extern void Convert_Xenoborg_To_Corpse(STRATEGYBLOCK *sbPtr,DEATH_DATA *this_death); 48 extern void CorpseBehaveFun(STRATEGYBLOCK *sbPtr); 49 extern void MakeCorpseNear(STRATEGYBLOCK *sbPtr); 50 extern void MakeCorpseFar(STRATEGYBLOCK *sbPtr); 51 extern void CorpseIsDamaged(STRATEGYBLOCK *sbPtr, DAMAGE_PROFILE *damage, int multiple, int wounds,SECTION_DATA *Section,VECTORCH *incoming); 52 53 #define CORPSE_EXPIRY_TIME (ONE_FIXED*10) 54 #define CORPSE_VALIDITY_TIME (ONE_FIXED>>2) 55 #define ALIEN_DYINGTIME (ONE_FIXED*8) 56 #define PRED_DIETIME (ONE_FIXED*16) 57 #define MARINE_DYINGTIME (ONE_FIXED*16) 58 #define XENO_DYINGTIME (ONE_FIXED*8) 59 #define AGUN_DYINGTIME (ONE_FIXED*8) 60 #define HDEBRIS_LIFETIME (ONE_FIXED*8) 61 /* Was (ONE_FIXED*3)... */ 62 63 #ifdef __cplusplus 64 } 65 #endif 66 67 #endif 68