#define ENTITYGRIDAREAS 16
#define MAX_ENTITYCLUSTERS 16
-#define JOINTTYPE_POINT 1
-#define JOINTTYPE_HINGE 2
-#define JOINTTYPE_SLIDER 3
+#define GEOMTYPE_NONE -1
+#define GEOMTYPE_SOLID 0
+#define GEOMTYPE_BOX 1
+#define GEOMTYPE_SPHERE 2
+#define GEOMTYPE_CAPSULE 3
+#define GEOMTYPE_TRIMESH 4
+#define GEOMTYPE_CYLINDER 5
+#define GEOMTYPE_CAPSULE_X 6
+#define GEOMTYPE_CAPSULE_Y 7
+#define GEOMTYPE_CAPSULE_Z 8
+#define GEOMTYPE_CYLINDER_X 9
+#define GEOMTYPE_CYLINDER_Y 10
+#define GEOMTYPE_CYLINDER_Z 11
+
+#define JOINTTYPE_NONE 0
+#define JOINTTYPE_POINT 1
+#define JOINTTYPE_HINGE 2
+#define JOINTTYPE_SLIDER 3
#define JOINTTYPE_UNIVERSAL 4
-#define JOINTTYPE_HINGE2 5
-#define JOINTTYPE_FIXED -1
+#define JOINTTYPE_HINGE2 5
+#define JOINTTYPE_FIXED -1
+
+#define FORCETYPE_NONE 0
+#define FORCETYPE_FORCE 1
+#define FORCETYPE_FORCEATPOS 2
+#define FORCETYPE_TORQUE 3
+
+#define ODEFUNC_ENABLE 1
+#define ODEFUNC_DISABLE 2
+#define ODEFUNC_FORCE 3
+#define ODEFUNC_TORQUE 4
+
+typedef struct edict_odefunc_s
+{
+ int type;
+ vec3_t v1;
+ vec3_t v2;
+ struct edict_odefunc_s *next;
+}edict_odefunc_t;
typedef struct edict_engineprivate_s
{
vec3_t moved_from;
vec3_t moved_fromangles;
+ framegroupblend_t framegroupblend[MAX_FRAMEGROUPBLENDS];
+ frameblend_t frameblend[MAX_FRAMEBLENDS];
+ skeleton_t skeleton;
+
// physics parameters
qboolean ode_physics;
void *ode_body;
int *ode_element3i;
int ode_numvertices;
int ode_numtriangles;
+ edict_odefunc_t *ode_func;
vec3_t ode_mins;
vec3_t ode_maxs;
+ vec3_t ode_scale;
vec_t ode_mass;
+ float ode_friction;
vec3_t ode_origin;
vec3_t ode_velocity;
vec3_t ode_angles;