40 #define PUSHFL_ONLYMOVEABLE 1 // only push moveable entities
41 #define PUSHFL_NOGROUNDENTITIES 2 // don't push entities the clip model rests upon
42 #define PUSHFL_CLIP 4 // also clip against all non-moveable entities
43 #define PUSHFL_CRUSH 8 // kill blocking entities
44 #define PUSHFL_APPLYIMPULSE 16 // apply impulse to pushed entities
92 void AddEntityToPushedGroup(
idEntity *ent,
float fraction,
bool groundContact );
95 int GetPushableEntitiesForTranslation(
idEntity *pusher,
idEntity *initialPusher,
const int flags,
96 const idVec3 &translation,
idEntity *entityList[],
int maxEntities );
98 int GetPushableEntitiesForRotation(
idEntity *pusher,
idEntity *initialPusher,
const int flags,
void ClipEntityTranslation(trace_t &trace, const idEntity *ent, const idClipModel *clipModel, idClipModel *skip, const idVec3 &translation)
float ClipPush(trace_t &results, idEntity *pusher, const int flags, const idVec3 &oldOrigin, const idMat3 &oldAxis, idVec3 &newOrigin, idMat3 &newAxis)
assert(prefInfo.fullscreenBtn)
void ClipEntityRotation(trace_t &trace, const idEntity *ent, const idClipModel *clipModel, idClipModel *skip, const idRotation &rotation)
void SaveEntityPosition(idEntity *ent)
void InitSavingPushedEntityPositions(void)
float ClipTranslationalPush(trace_t &results, idEntity *pusher, const int flags, const idVec3 &newOrigin, const idVec3 &move)
void RestorePushedEntityPositions(void)
idEntity * GetPushedEntity(int i) const
int TryTranslatePushEntity(trace_t &results, idEntity *check, idClipModel *clipModel, const int flags, const idVec3 &newOrigin, const idVec3 &move)
bool RotateEntityToAxial(idEntity *ent, idVec3 rotationPoint)
int DiscardEntities(idEntity *entityList[], int numEntities, int flags, idEntity *pusher)
int TryRotatePushEntity(trace_t &results, idEntity *check, idClipModel *clipModel, const int flags, const idMat3 &newAxis, const idRotation &rotation)
int GetNumPushedEntities(void) const
struct idPush::pushedGroup_s pushedGroup[MAX_GENTITIES]
struct idPush::pushed_s pushed[MAX_GENTITIES]
float ClipRotationalPush(trace_t &results, idEntity *pusher, const int flags, const idMat3 &newAxis, const idRotation &rotation)