foxygit / GZDoom Log in
commits tags

/src/playsim/p_checkposition.h · 1.05 KB

raw
#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.
	TMap<AActor*, bool> LastRipped;
	bool			DoRipping;
	bool			portalstep;
	bool			dropoffisportal;
	int				portalgroup;

	int				PushTime;

	FCheckPosition(bool rip=false)
	{
		DoRipping = rip;
		PushTime = 0;
		FromPMove = false;
	}
};


#endif