DUDE.H 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #ifndef __DUDE_H
  2. #define __DUDE_H
  3. #include "actor.h"
  4. #include "seq.h"
  5. #define kGibMax 8
  6. enum {
  7. kSeqDudeIdle = 0,
  8. kSeqDudeDeath1, // normal death
  9. kSeqDudeDeath2, // exploding death
  10. kSeqDudeDeath3, // burning death
  11. kSeqDudeRecoil,
  12. kSeqDudeCustomStart,
  13. kSeqDudeMax = 16,
  14. kSeqCultistAttack1 = kSeqDudeCustomStart,
  15. kSeqCultistAttack2,
  16. kSeqCultistWalk,
  17. kSeqCultistJump1,
  18. kSeqCultistJump2,
  19. kSeqCultistJump3,
  20. kSeqAxeZombieAttack = kSeqDudeCustomStart,
  21. kSeqAxeZombieDeath4,
  22. kSeqAxeZombieWalk,
  23. kSeqEarthZombieUp,
  24. kSeqAxeZombieUp,
  25. kSeqEarthZombieIdle,
  26. kSeqFatZombieAttack = kSeqDudeCustomStart,
  27. kSeqFatZombieDeath4,
  28. kSeqFatZombieWalk,
  29. kSeqGargoyleAttack = kSeqDudeCustomStart,
  30. kSeqGargoyleFly,
  31. kSeqGargoyleSwoop,
  32. kSeqStoneStatueTurn = kSeqDudeCustomStart,
  33. kSeqFleshStatueTurn = kSeqDudeCustomStart,
  34. kSeqPhantasmAttack1 = kSeqDudeCustomStart,
  35. kSeqPhantasmMove1,
  36. kSeqPhantasmRecoil2,
  37. kSeqBatFly = kSeqDudeCustomStart,
  38. kSeqRatWalk = kSeqDudeCustomStart,
  39. kSeqSpiderBite = kSeqDudeCustomStart,
  40. kSeqSpiderWalk,
  41. kSeqSpiderJump,
  42. kSeqGillAttack1 = kSeqDudeCustomStart,
  43. kSeqGillAttack2,
  44. kSeqGillDeath4,
  45. kSeqGillMove1,
  46. kSeqGillMove2,
  47. kSeqGillRecoil2,
  48. kSeqHoundBite = kSeqDudeCustomStart,
  49. kSeqHoundBurn,
  50. kSeqHoundWalk,
  51. kSeqEelMove1 = kSeqDudeCustomStart,
  52. kSeqCerberusAttack1 = kSeqDudeCustomStart,
  53. kSeqCerberusMove1,
  54. kSeqCerberus2Attack1 = kSeqDudeCustomStart,
  55. kSeqCerberus2Move1,
  56. kSeqBeastAttack1 = kSeqDudeCustomStart,
  57. kSeqBeastAttack2, // no sequence yet!
  58. kSeqBeastMove1,
  59. kSeqHandWalk = kSeqDudeCustomStart,
  60. kSeqHandJump,
  61. };
  62. struct GIB
  63. {
  64. ushort chance; // likelihood (out of 256)
  65. ushort tile; // tile number
  66. };
  67. struct DUDEINFO
  68. {
  69. short seqStartID;
  70. short startHealth;
  71. ushort mass; // in KG
  72. char clipdist;
  73. int eyeHeight; // (in pixels?) relative to origin
  74. int hearDist; // how far it can hear (?)
  75. int seeDist; // how far it can see
  76. int periphery; // peripheral vision in angle units
  77. int meleeDist; // how close it needs to be to melee attack
  78. int fleeHealth;
  79. int hinderDamage; // amount of damage necessary to "hinder"
  80. int changeTarget; // probably of changing target per hit point (1/2^16)
  81. int changeTargetKin;// probably of changing target to same species
  82. int alertChance; // chance of noticing player and activating
  83. int frontAccel;
  84. int sideAccel;
  85. int backAccel;
  86. int frontSpeed;
  87. int sideSpeed;
  88. int backSpeed;
  89. int angSpeed;
  90. GIB gib[kGibMax];
  91. int damageShift[kDamageMax]; // use to indicate resistance to damage types
  92. // used internally -- do not initialize
  93. // Seq *pSeq[kSeqDudeMax];
  94. };
  95. extern DUDEINFO dudeInfo[];
  96. extern DUDEINFO gPlayerTemplate[2]; // player human/beast templates
  97. #endif