2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
6 // $Header: r:/t2repos/thief2/src/motion/mvrutils.h,v 1.15 2000/01/31 09:49:56 adurant Exp $
14 #include <math.h> // XXX for fabs
20 EXTERN cDynArray
<ObjID
> standableObjectList
;
24 typedef struct sMotionPhys
27 mxs_real distance
; // magnitude of xlat vector
33 typedef enum eMotionStatus
38 kMotionStatusInvalid
=0xFFFF,
41 #define kMvrUCF_MaintainSpeed 0x1
44 EXTERN BOOL
MvrGetRawMovement(const IMotor
*pMotor
, const int motionNum
, sMotionPhys
&phys
);
46 EXTERN
void MvrCalcSlidingCollisionResponse(const mxs_vector
*pForces
, const int nForces
,
47 const mxs_vector
*ovel
, mxs_vector
*nvel
, ulong flags
=NULL
);
50 EXTERN
void InitGroundHeightObjects();
51 EXTERN
void TermGroundHeightObjects();
53 EXTERN BOOL
MvrFindGroundHeight(ObjID obj
, Location
*loc
, mxs_real
*pHeight
, ObjID
*pGroundObj
);
54 EXTERN
void MvrSetStandingObj(ObjID standingObj
, ObjID supportObj
);
55 EXTERN
void MvrSetStandingOffset(ObjID standingObj
, ObjID supportObj
, mxs_vector
*pExpectedEndPos
);
56 EXTERN
void MvrSetTerrStandingOffset(ObjID standingObj
, mxs_vector
*pOffset
);
58 EXTERN
int MvrRandomIntInRange(int low
, int high
);
60 EXTERN BOOL
MvrGetEndButtHeight(const IMotor
*pMotor
, int motionNum
, float *pHeight
);
62 EXTERN
void MvrUtilsRegisterDefaultObjFlags(ObjID obj
);
63 EXTERN
void MvrUtilsUnRegisterDefaultObjFlags(ObjID obj
);
65 EXTERN
void MvrProcessStandardFlags(IMotor
*pMotor
, cMotionCoordinator
*pCoord
, const int flags
);
66 EXTERN
void MvrSendMotionMessage(ObjID obj
, int motionNum
, eMotionStatus whatHappened
, ulong flags
);