| | 1 | #ifndef bh_corpse_h_included |
| | 2 | #define bh_corpse_h_included |
| | 3 | |
| | 4 | #include "npc_predator.h" |
| | 5 | |
| | 6 | typedef struct corpsedatablock |
| | 7 | { |
| | 8 | int timer; |
| | 9 | int validityTimer; |
| | 10 | int SoundHandle; /* Just in case. */ |
| | 11 | int SoundHandle2; |
| | 12 | int SoundHandle3; |
| | 13 | int SoundHandle4; |
| | 14 | HMODELCONTROLLER HModelController; |
| | 15 | |
| | 16 | AVP_BEHAVIOUR_TYPE Type; |
| | 17 | HITLOCATIONTABLE *hltable; |
| | 18 | DEATH_DATA *This_Death; |
| | 19 | /* If you're a predator... */ |
| | 20 | PRED_CLOAKSTATE CloakStatus; |
| | 21 | int CloakTimer; |
| | 22 | /* If you're a marine... */ |
| | 23 | SECTION_DATA *My_Gunflash_Section; |
| | 24 | SECTION *TemplateRoot; |
| | 25 | const struct marine_weapon_data *My_Weapon; |
| | 26 | int weapon_variable; |
| | 27 | int subtype; |
| | 28 | int Wounds; |
| | 29 | unsigned int DeathFiring:1; |
| | 30 | int SelfDestructTimer; |
| | 31 | int BurstTimer; |
| | 32 | int clipammo; |
| | 33 | int volleySize; |
| | 34 | DISPLAYBLOCK *myGunFlash; |
| | 35 | |
| | 36 | } CORPSEDATABLOCK; |
| | 37 | |
| | 38 | extern void Convert_Alien_To_Corpse(STRATEGYBLOCK *sbPtr, DEATH_DATA *this_death, const DAMAGE_PROFILE* damage); |
| | 39 | extern void Convert_Predator_To_Corpse(STRATEGYBLOCK *sbPtr, DEATH_DATA *this_death); |
| | 40 | extern void Convert_Marine_To_Corpse(STRATEGYBLOCK *sbPtr, DEATH_DATA *this_death); |
| | 41 | extern void Convert_Xenoborg_To_Corpse(STRATEGYBLOCK *sbPtr, DEATH_DATA *this_death); |
| | 42 | extern void CorpseBehaveFun(STRATEGYBLOCK *sbPtr); |
| | 43 | extern void MakeCorpseNear(STRATEGYBLOCK *sbPtr); |
| | 44 | extern void CorpseIsDamaged(STRATEGYBLOCK *sbPtr, const DAMAGE_PROFILE *damage, int wounds, VECTORCH *incoming); |
| | 45 | extern CORPSEDATABLOCK* make_new_corpse(AVP_BEHAVIOUR_TYPE type); |
| | 46 | |
| | 47 | #define CORPSE_EXPIRY_TIME (ONE_FIXED*10) |
| | 48 | #define CORPSE_VALIDITY_TIME (ONE_FIXED>>2) |
| | 49 | #define ALIEN_DYINGTIME (ONE_FIXED*16) |
| | 50 | #define PRED_DIETIME (ONE_FIXED*16) |
| | 51 | #define MARINE_DYINGTIME (ONE_FIXED*16) |
| | 52 | #define XENO_DYINGTIME (ONE_FIXED*8) |
| | 53 | #define AGUN_DYINGTIME (ONE_FIXED*8) |
| | 54 | #define HDEBRIS_LIFETIME (ONE_FIXED*16) |
| | 55 | /* Was (ONE_FIXED*3)... */ |
| | 56 | |
| | 57 | #endif |