Descent3/lib/findintersection_external.h
2024-04-15 21:43:29 -06:00

69 lines
2.9 KiB
C

/*
* $Logfile: /DescentIII/main/lib/findintersection_external.h $
* $Revision: 6 $
* $Date: 4/18/99 5:42a $
* $Author: Chris $
*
* Description goes here
*
* $Log: /DescentIII/main/lib/findintersection_external.h $
*
* 6 4/18/99 5:42a Chris
* Added the FQ_IGNORE_RENDER_THROUGH_PORTALS flag
*
* 5 4/05/99 3:58p Chris
* Made the FQ_ flags easier to read
*
* 4 3/27/99 3:25p Chris
* Added comment headers
*
* $NoKeywords: $
*/
#ifndef FINDINTERSECTION_EXTERNAL_H_
#define FINDINTERSECTION_EXTERNAL_H_
//return values for find_vector_intersection()
#define HIT_NONE 0 //we hit nothing
#define HIT_WALL 1 //we hit a wall
#define HIT_OBJECT 2 //we hit an object
#define HIT_TERRAIN 3 //we hit the terrain
#define HIT_BAD_P0 4 //start point not is specified segment
#define HIT_OUT_OF_TERRAIN_BOUNDS 5 // End point is outside of the terrain
#define HIT_BACKFACE 6 // We hit the backface of a wall...
#define HIT_SPHERE_2_POLY_OBJECT 7 // Hit a sphere to a real polygon
#define HIT_CEILING 8 // Object hit the ceiling
#define HIT_CORNER_WALL 9
#define HIT_EDGE_WALL 10
#define HIT_FACE_WALL 11
//flags for fvi query
#define FQ_CHECK_OBJS 1 // check against objects?
#define FQ_OBJ_BACKFACE (1<<1) // Hit the backfaces of polyobjs
#define FQ_TRANSPOINT (1<<2) // go through trans wall if hit point is transparent
#define FQ_IGNORE_POWERUPS (1<<3) // ignore powerups
#define FQ_BACKFACE (1<<4) // Check for collisions with backfaces, usually they are ignored
#define FQ_SOLID_PORTALS (1<<5) // Makes connectivity disappear for FVI
#define FQ_RECORD (1<<6) // Records faces that should be recorded
#define FQ_NEW_RECORD_LIST (1<<7) // Records faces that should be recorded
#define FQ_IGNORE_MOVING_OBJECTS (1<<8) // Ignores all objects that move
#define FQ_IGNORE_NON_LIGHTMAP_OBJECTS (1<<9) // Ignores all objects that are not associated with lightmaps
#define FQ_ONLY_PLAYER_OBJ (1<<10) // Ignores all objects besides the player
#define FQ_IGNORE_WALLS (1<<11) // Ignores all walls (it will still hit OBJ_ROOMS)
#define FQ_CHECK_CEILING (1<<12) // Checks if object hits the imaginary ceiling
#define FQ_ONLY_DOOR_OBJ (1<<13) // Ignores all objects, except doors
#define FQ_NO_RELINK (1<<14) // Does not determine the hitseg
#define FQ_EXTERNAL_ROOMS_AS_SPHERE (1<<15) // Hmmm....
#define FQ_MULTI_POINT (1<<16) // Enable Multi-point collision
#define FQ_LIGHTING (1<<17) // Lighting only optimizations
#define FQ_COMPUTE_MOVEMENT_TIME (1<<18)
#define FQ_IGNORE_EXTERNAL_ROOMS (1<<19)
#define FQ_IGNORE_WEAPONS (1<<20)
#define FQ_IGNORE_TERRAIN (1<<21)
#define FQ_PLAYERS_AS_SPHERE (1<<22)
#define FQ_ROBOTS_AS_SPHERE (1<<23)
#define FQ_IGNORE_CLUTTER_COLLISIONS (1<<24)
#define FQ_IGNORE_RENDER_THROUGH_PORTALS (1<<25)
#endif