2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/dark/crspider.c,v 1.11 1998/10/23 01:49:15 CCAROLLO Exp $
10 #include <drkcret.h> // to get actor type definition
12 #include <dbmem.h> // must be last included header
55 // mapping from joint id to exposed joint enum
56 static int g_aSpidJointMap
[] =
82 #define SPIDER_LEG_PHYS_RADIUS 0.3
84 static sCrPhysModOffset g_SwordPhysOffsets
[] = \
86 {l1wrist
, l1finger
, 0.0, SPIDER_LEG_PHYS_RADIUS
},
87 {l1wrist
, l1finger
, 0.8, SPIDER_LEG_PHYS_RADIUS
},
88 {r1wrist
, r1finger
, 0.0, SPIDER_LEG_PHYS_RADIUS
},
89 {r1wrist
, r1finger
, 0.8, SPIDER_LEG_PHYS_RADIUS
},
92 static sCrPhysModOffsetTable g_WeaponPhysTable
= \
94 sizeof(g_SwordPhysOffsets
)/sizeof(g_SwordPhysOffsets
[0]), g_SwordPhysOffsets
97 static sCrPhysModOffset g_aPhysModOffsets
[] = \
99 { base
, base
, 0.0, 0.8},
100 { base
, lmand
, -2.6, 0.7 },
101 { base
, rmand
, -2.6, 0.7 },
105 // array of mappings from jointIDs -> parent jointIDs
106 static int g_aSpidJointParents
[] =
139 // @TODO: finish filling these out for real
141 static torso g_aDefTorsos
[]= {\
142 {base
,-1,3,{lmand
,rmand
,r1shldr
}},
143 {base
,-1,3,{r2shldr
,r3shldr
,r4shldr
}},
144 {base
,-1,3,{l1shldr
,l1shldr
,l3shldr
}},
145 {base
,-1,1,{l4shldr
}},
148 static limb g_aDefLimbs
[]= {\
149 {0,1,2,{rmand
,rmelbow
,rtip
}},
150 {0,1,2,{lmand
,lmelbow
,ltip
}},
151 {0,1,3,{r1shldr
,r1elbow
,r1wrist
,r1finger
}},
152 {0,1,3,{r2shldr
,r2elbow
,r2wrist
,r2finger
}},
153 {0,1,3,{r3shldr
,r3elbow
,r3wrist
,r3finger
}},
154 {0,1,3,{r4shldr
,r4elbow
,r4wrist
,r4finger
}},
155 {0,1,3,{l1shldr
,l1elbow
,l1wrist
,l1finger
}},
156 {0,1,3,{l2shldr
,l2elbow
,l2wrist
,l2finger
}},
157 {0,1,3,{l3shldr
,l3elbow
,l3wrist
,l3finger
}},
158 {0,1,3,{l4shldr
,l4elbow
,l4wrist
,l4finger
}},
161 static int g_FootJoints
[]={ r1finger
, l1finger
};
163 const sCreatureDesc sCrSpiderDesc
= \
165 kDATYPE_Spider
, // actor type
169 "spidey7", // default lengths filename
170 sizeof(g_aPhysModOffsets
)/sizeof(g_aPhysModOffsets
[0]), // number of phys models
171 1.5, // default phys radius
172 g_aPhysModOffsets
, // array of phys model offsets
173 g_aSpidJointParents
, // joint parent mapping
175 sizeof(g_FootJoints
)/sizeof(g_FootJoints
[0]), // num feet
176 g_FootJoints
, // foot joints
177 g_aDefTorsos
, // default torso values (if lengths file not found)
178 g_aDefLimbs
, // default limb values (if lengths file not found)
179 kDCrWeap_NumWeapons
, // number of weapons
180 &g_WeaponPhysTable
, // weapon physics model offsets
181 FALSE
, // always ballistic
182 FALSE
, // uses head tracking