convert line ends
[canaan.git] / prj / cam / src / shock / shkcret.h
blob96200c368a51d4b66250bc66701b6b6efc325cc6
1 /*
2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
4 */
6 #pragma once
8 // $Header: r:/t2repos/thief2/src/shock/shkcret.h,v 1.12 2000/01/31 09:55:21 adurant Exp $
10 #ifndef __SHKCRET_H
11 #define __SHKCRET_H
13 //////
14 // What are creature types and actor types, you ask?
16 // Every creature has a creature type and an actor type
17 // All creatures of a given creature type have the same actor type.
19 // Creature type specifies the skeletal configuration and phys model size
20 // for a creature.
22 // Actor type specifies the set of motion schemas that make sense to play
23 // a creature of that type (every schema has exactly one actor).
25 // Both are defined on a per-game basis. Similarly, the creature type
26 // definition modules (crhumand.c etc) are considered game-specific, and
27 // include this header to specify their actor type.
29 // Creature type and actor type are two different things because it's possible
30 // for two creatures to have different skeletal configurations but use the
31 // same motion captures (a legless droid and a human, for example).
33 // While we could have disjoint sets of motions to be played on two creatures
34 // of the same skeletal configuration (a human and a burrick, for example),
35 // I'm still making it so that the creature type determines the actor type.
36 // This is for simplicity, because tags can be used take care of this case,
37 // and because things like humans and burricks probably need to be different
38 // actor types anyway because of phys model size and placement.
40 // -- KJ 4/98
42 // Shock-specific creature types
43 enum eShockCreatureType
45 kShCRTYPE_Humanoid = 0,
46 kShCRTYPE_PlayerLimb = 1,
47 kShCRTYPE_Avatar = 2,
48 kShCRTYPE_Rumbler = 3,
49 kShCRTYPE_Droid = 4,
50 kShCRTYPE_Overlord = 5,
51 kShCRTYPE_Arachnid = 6,
52 kShCRTYPE_Monkey = 7,
53 kShCRTYPE_BabyArachnid = 8,
54 kShCRTYPE_Shodan = 9,
55 kNumShockCreatureTypes,
56 kShCRTYPE_Invalid = 0xffffffffL // to ensure enum has size of int in all compilers
59 // Shock-specific actor types
60 enum eShockActorType
62 kShATYPE_Humanoid,
63 kShATYPE_PlayerLimb,
64 kShATYPE_Droid,
65 kShATYPE_Overlord,
66 kShATYPE_Arachnid,
67 kNumShockActorTypes,
68 kShATYPE_Invalid = 0xffffffffL // to ensure enum has size of int in all compilers
71 // arrays in drkcret.cpp should be kept in same order as this
72 enum eShockMotorControllers
74 kShMC_GroundLoco,
75 kShMC_Combat,
76 kShMC_GroundAction,
77 kShMC_PlayerArm,
78 kShMC_PlayerBow,
79 kShMC_Single,
82 // Shock player arm modes
83 enum
85 kShPlayerModeUnarmed,
86 kShPlayerModeMelee,
87 kShPlayerNumModes,
90 // Shock-specific creature weapons
91 // As far as I can tell this is bogus and not used anywhere....
92 enum eShockCreatureWeapon
94 kShCrWeapon_Default,
95 kShCrWeap_NumWeapons,
98 // Game-specific creature initialization. Registers creature types used by
99 // game, and builds sdesc for creature property
100 EXTERN void ShockCreaturesInit();
101 EXTERN void ShockCreaturesTerm();
103 #endif