2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/dark/crbugbst.c,v 1.6 1998/10/23 01:49:04 CCAROLLO Exp $
8 // @TODO: come up with physics models and weapon model placements.
12 #include <drkcret.h> // to get actor type definition
14 #include <dbmem.h> // must be last included header
16 #define HUMANOID_PHYS_RADIUS 1.0
18 #define CLAW_PHYS_RADIUS 0.4
20 static sCrPhysModOffset g_SwordPhysOffsets
[] = \
22 { 16, 20, 0.5, CLAW_PHYS_RADIUS
},
23 { 16, 20, 1.0, CLAW_PHYS_RADIUS
},
24 { 17, 21, 0.5, CLAW_PHYS_RADIUS
},
25 { 17, 21, 1.0, CLAW_PHYS_RADIUS
},
28 static sCrPhysModOffsetTable g_WeaponPhysTable
= \
30 sizeof(g_SwordPhysOffsets
)/sizeof(g_SwordPhysOffsets
[0]), g_SwordPhysOffsets
34 static sCrPhysModOffset g_aBugPhysModOffsets
[] = \
64 // mapping from joint id to exposed joint enum
65 static int g_aBugJointMap
[] =
91 // array of mappings from jointIDs -> parent jointIDs
92 static int g_aBugJointParents
[] =
118 static torso g_aDefTorsos
[2]= {\
119 {BUTT
,-1,3,{LHIP
,RHIP
,ABDOMEN
}},
120 {ABDOMEN
,0,3,{LSHLDR
,RSHLDR
,NECK
}},
123 // @TODO: increase num limb segs? get rid of extra joint?
124 static limb g_aDefLimbs
[5]= {\
125 {0,1,3,{LHIP
,LKNEE
,LANKLE
,LTOE
}},
126 {0,1,3,{RHIP
,RKNEE
,RANKLE
,RTOE
}},
127 {1,0,4,{LSHLDR
,LELBOW
,LWRIST
,LFINGER
,LCLAW
}},
128 {1,0,4,{RSHLDR
,RELBOW
,RWRIST
,RFINGER
,RCLAW
}},
132 static int g_FootJoints
[2]={ LANKLE
, RANKLE
};
134 const sCreatureDesc sCrBugBeastDesc
= \
136 kDATYPE_Humanoid
, // actor type
140 "bugbeast", // default lengths filename
141 2, // number of phys models
142 HUMANOID_PHYS_RADIUS
, // default phys radius
143 g_aBugPhysModOffsets
, // array of phys model offsets
144 g_aBugJointParents
, // joint parent mapping
147 g_FootJoints
, // foot joints
148 g_aDefTorsos
, // default torso values (if lengths file not found)
149 g_aDefLimbs
, // default limb values (if lengths file not found)
150 kDCrWeap_NumWeapons
, // number of weapons
151 &g_WeaponPhysTable
, // weapon physics model offsets
152 FALSE
, // is player limb
153 TRUE
, // uses head tracking