UFO: Alien Invasion
map.h
Go to the documentation of this file.
1
5/*
6All original material Copyright (C) 2002-2022 UFO: Alien Invasion.
7
8Copyright (C) 1997-2001 Id Software, Inc.
9
10This program is free software; you can redistribute it and/or
11modify it under the terms of the GNU General Public License
12as published by the Free Software Foundation; either version 2
13of the License, or (at your option) any later version.
14
15This program is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
19See the GNU General Public License for more details.
20
21You should have received a copy of the GNU General Public License
22along with this program; if not, write to the Free Software
23Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24
25*/
26
27#pragma once
28
29#include "../../shared/mathlib.h"
30#include "../../shared/defines.h"
31#include "common/polylib.h"
32
33typedef struct brush_texture_s {
38 uint32_t surfaceFlags;
39 int value;
41
42typedef struct face_s {
43 struct face_s* next;
48 struct face_s* merged;
49 struct face_s* split[2];
51 struct portal_s* portal;
53 uint16_t planenum;
54 uint32_t contentFlags;
57 int vertexnums[MAXEDGES];
58} face_t;
59
60typedef struct side_s {
61 uint16_t planenum;
64 struct side_s* original;
65 uint32_t contentFlags;
66 uint32_t surfaceFlags;
67 bool visible;
68 bool tested;
69 bool bevel;
72 struct mapbrush_s* brush;
73} side_t;
74
75typedef struct mapbrush_s {
79 uint32_t contentFlags;
80
82
84 struct side_s* original_sides;
85
89 struct mapbrush_s** nearBrushes;
91
96
98typedef struct plane_s {
105 int type;
106 vec3_t planeVector[3];
107 struct plane_s* hash_chain;
108} plane_t;
109
110typedef struct portal_s {
112 struct node_s* onnode;
113 struct node_s* nodes[2];
114 struct portal_s* next[2];
116
118 struct side_s* side;
119 face_t* face[2];
120} portal_t;
Definition: aabb.h:42
#define MAXEDGES
Definition: defines.h:49
#define MAX_TEXPATH
Definition: defines.h:95
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
Definition: r_gl.h:110
vec2_t shift
Definition: map.h:34
vec2_t scale
Definition: map.h:36
int value
Definition: map.h:39
vec_t rotate
Definition: map.h:35
uint32_t surfaceFlags
Definition: map.h:38
Definition: map.h:42
uint16_t planenum
Definition: map.h:53
struct face_s * merged
Definition: map.h:48
winding_t * w
Definition: map.h:55
uint32_t contentFlags
Definition: map.h:54
struct portal_s * portal
Definition: map.h:51
struct face_s * next
Definition: map.h:43
int numpoints
Definition: map.h:56
int texinfo
Definition: map.h:52
Definition: map.h:75
struct mapbrush_s ** nearBrushes
Definition: map.h:89
struct side_s * original_sides
Definition: map.h:84
bool finished
Definition: map.h:94
int brushnum
Definition: map.h:77
bool skipWriteBack
Definition: map.h:92
int numsides
Definition: map.h:83
uint32_t contentFlags
Definition: map.h:79
AABB mbBox
Definition: map.h:81
int entitynum
Definition: map.h:76
int numNear
Definition: map.h:90
Definition: map.h:98
struct plane_s * hash_chain
Definition: map.h:107
int type
Definition: map.h:105
vec_t dist
Definition: map.h:100
vec3_t normal
Definition: map.h:99
Definition: map.h:110
bool sidefound
Definition: map.h:117
struct side_s * side
Definition: map.h:118
winding_t * winding
Definition: map.h:115
struct node_s * onnode
Definition: map.h:112
plane_t plane
Definition: map.h:111
Definition: map.h:60
uint16_t planenum
Definition: map.h:61
winding_t * winding
Definition: map.h:63
uint32_t surfaceFlags
Definition: map.h:66
int texinfo
Definition: map.h:62
bool visible
Definition: map.h:67
bool isCompositeMember
Definition: map.h:70
uint32_t contentFlags
Definition: map.h:65
struct mapbrush_s * brush
Definition: map.h:72
bool tested
Definition: map.h:68
struct side_s * original
Definition: map.h:64
bool bevel
Definition: map.h:69
for storing the vertices of the side of a brush or other polygon
Definition: polylib.h:30
float vec_t
Definition: ufotypes.h:37
vec_t vec3_t[3]
Definition: ufotypes.h:39
vec_t vec2_t[2]
Definition: ufotypes.h:38