#ifndef P_CHECKPOS_H #define P_CHECKPOS_H //============================================================================ // // Used by P_CheckPosition and P_TryMove in place of the original // set of global variables. // //============================================================================ struct FCheckPosition { // in AActor *thing; DVector3 pos; // out sector_t *sector; double floorz; double ceilingz; double dropoffz; FTextureID floorpic; int floorterrain; sector_t *floorsector; FTextureID ceilingpic; sector_t *ceilingsector; bool touchmidtex; bool abovemidtex; bool floatok; bool FromPMove; line_t *ceilingline; AActor *stepthing; // [RH] These are used by PIT_CheckThing and P_XYMovement to apply // ripping damage once per tic instead of once per move. bool DoRipping; TMap LastRipped; int PushTime; FCheckPosition(bool rip=false) { DoRipping = rip; PushTime = 0; FromPMove = false; } inline fixed_t _f_X() { return FLOAT2FIXED(pos.X); } inline fixed_t _f_Y() { return FLOAT2FIXED(pos.Y); } inline fixed_t _f_Z() { return FLOAT2FIXED(pos.Z); } }; #endif