/* Copyright (C) 1996-1997 Id Software, Inc. Copyright (C) 1999,2000 contributors of the QuakeForge project Please see the file "AUTHORS" for a list of contributors This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef __PMOVE_SIMPLE_H #define __PMOVE_SIMPLE_H typedef struct { vec3_t normal; float dist; } pmplane_t; typedef struct { qboolean allsolid; // if true, plane is not valid qboolean startsolid; // if true, the initial point was in a solid area qboolean inopen, inwater; float fraction; // time completed, 1.0 = didn't hit anything vec3_t endpos; // final position pmplane_t plane; // surface normal at impact int ent; // entity the surface is on } pmtrace_t; #define MAX_PHYSENTS 32 typedef struct { float gravity; float stopspeed; float maxspeed; float spectatormaxspeed; float accelerate; float airaccelerate; float wateraccelerate; float friction; float waterfriction; float entgravity; } movevars_t; extern movevars_t movevars; extern int onground; extern int waterlevel; extern int watertype; void PlayerMove (void); void Pmove_Init (void); int PM_PointContents (vec3_t point); qboolean PM_TestPlayerPosition (vec3_t point); pmtrace_t PM_PlayerMove (vec3_t start, vec3_t stop); #endif // __PMOVE_SIMPLE_H