Fixes for datatype size on amd64.
[crack-attack.git] / src / obj_garbage_thin_cap.cxx
blob516eb1e2e99f3e141ed5d27c41f87289f4dd74bf
1 /*
2 * garbage_thin_cap.cxx
3 * Daniel Nelson - 9/1/0
5 * Copyright (C) 2000 Daniel Nelson
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 * Daniel Nelson - aluminumangel.org
22 * 174 W. 18th Ave.
23 * Columbus, OH 43210
25 * Generates a display list for the cap of thin garbage.
28 #include <GL/glut.h>
30 #include "glext.h"
32 #include "Game.h"
33 #include "Displayer.h"
35 GLuint Displayer::garbage_thin_cap_list;
37 void Displayer::generateGarbageThinCapList ( )
39 garbage_thin_cap_list = glGenLists(1);
41 glEnableClientState(GL_VERTEX_ARRAY);
42 glEnableClientState(GL_NORMAL_ARRAY);
43 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
45 glNewList(garbage_thin_cap_list, GL_COMPILE);
47 GLfloat vertices_0[3 * 18] = {
48 -0.8f, -0.8f, -1.0f,
49 1.0f, -0.8f, -1.0f,
50 -0.8f, -1.0f, -0.8f,
51 1.0f, -1.0f, -0.8f,
52 -0.8f, -1.0f, 0.8f,
53 1.0f, -1.0f, 0.8f,
54 -0.8f, -0.8f, 1.0f,
55 1.0f, -0.8f, 1.0f,
56 -0.8f, 0.8f, 1.0f,
57 1.0f, 0.8f, 1.0f,
58 -0.8f, 1.0f, 0.8f,
59 1.0f, 1.0f, 0.8f,
60 -0.8f, 1.0f, -0.8f,
61 1.0f, 1.0f, -0.8f,
62 -0.8f, 0.8f, -1.0f,
63 1.0f, 0.8f, -1.0f,
64 -0.8f, -0.8f, -1.0f,
65 1.0f, -0.8f, -1.0f
68 GLfloat vertices_1[3 * 8] = {
69 -0.8f, -0.8f, -1.0f,
70 -1.0f, -0.8f, -0.8f,
71 -0.8f, 0.8f, -1.0f,
72 -1.0f, 0.8f, -0.8f,
73 -0.8f, 1.0f, -0.8f,
74 -1.0f, 0.8f, 0.8f,
75 -0.8f, 1.0f, 0.8f,
76 -0.8f, 0.8f, 1.0f
79 GLfloat vertices_2[3 * 8] = {
80 -0.8f, 0.8f, 1.0f,
81 -1.0f, 0.8f, 0.8f,
82 -0.8f, -0.8f, 1.0f,
83 -1.0f, -0.8f, 0.8f,
84 -0.8f, -1.0f, 0.8f,
85 -1.0f, -0.8f, -0.8f,
86 -0.8f, -1.0f, -0.8f,
87 -0.8f, -0.8f, -1.0f
90 GLfloat vertices_3[3 * 4] = {
91 -1.0f, 0.8f, 0.8f,
92 -1.0f, 0.8f, -0.8f,
93 -1.0f, -0.8f, 0.8f,
94 -1.0f, -0.8f, -0.8f
97 GLfloat normals_0[3 * 18] = {
98 0.0f, 0.0f, -1.0f,
99 0.0f, 0.0f, -1.0f,
100 0.0f, -1.0f, 0.0f,
101 0.0f, -1.0f, 0.0f,
102 0.0f, -1.0f, 0.0f,
103 0.0f, -1.0f, 0.0f,
104 0.0f, 0.0f, 1.0f,
105 0.0f, 0.0f, 1.0f,
106 0.0f, 0.0f, 1.0f,
107 0.0f, 0.0f, 1.0f,
108 0.0f, 1.0f, 0.0f,
109 0.0f, 1.0f, 0.0f,
110 0.0f, 1.0f, 0.0f,
111 0.0f, 1.0f, 0.0f,
112 0.0f, 0.0f, -1.0f,
113 0.0f, 0.0f, -1.0f,
114 0.0f, 0.0f, -1.0f,
115 0.0f, 0.0f, -1.0f
118 GLfloat normals_1[3 * 8] = {
119 0.0f, 0.0f, -1.0f,
120 -1.0f, 0.0f, 0.0f,
121 0.0f, 0.0f, -1.0f,
122 -1.0f, 0.0f, 0.0f,
123 0.0f, 1.0f, 0.0f,
124 -1.0f, 0.0f, 0.0f,
125 0.0f, 1.0f, 0.0f,
126 0.0f, 0.0f, 1.0f
129 GLfloat normals_2[3 * 8] = {
130 0.0f, 0.0f, 1.0f,
131 -1.0f, 0.0f, 0.0f,
132 0.0f, 0.0f, 1.0f,
133 -1.0f, 0.0f, 0.0f,
134 0.0f, -1.0f, 0.0f,
135 -1.0f, 0.0f, 0.0f,
136 0.0f, -1.0f, 0.0f,
137 0.0f, 0.0f, -1.0f
140 GLfloat normals_3[3 * 4] = {
141 -1.0f, 0.0f, 0.0f,
142 -1.0f, 0.0f, 0.0f,
143 -1.0f, 0.0f, 0.0f,
144 -1.0f, 0.0f, 0.0f
147 GLfloat tex_coords_0[3 * 18];
148 for (int n = 3 * 18; n--; )
149 tex_coords_0[n] = vertices_0[n] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER;
151 GLfloat tex_coords_1[3 * 8];
152 for (int n = 3 * 8; n--; )
153 tex_coords_1[n] = vertices_1[n] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER;
155 GLfloat tex_coords_2[3 * 8];
156 for (int n = 3 * 8; n--; )
157 tex_coords_2[n] = vertices_2[n] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER;
159 GLfloat tex_coords_3[3 * 4];
160 for (int n = 3 * 4; n--; )
161 tex_coords_3[n] = vertices_3[n] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER;
163 glVertexPointer(3, GL_FLOAT, 0, vertices_0);
164 glNormalPointer(GL_FLOAT, 0, normals_0);
165 glTexCoordPointer(3, GL_FLOAT, 0, tex_coords_0);
166 glDrawArrays(GL_TRIANGLE_STRIP, 0, 18);
168 glVertexPointer(3, GL_FLOAT, 0, vertices_1);
169 glNormalPointer(GL_FLOAT, 0, normals_1);
170 glTexCoordPointer(3, GL_FLOAT, 0, tex_coords_1);
171 glDrawArrays(GL_TRIANGLE_STRIP, 0, 8);
173 glVertexPointer(3, GL_FLOAT, 0, vertices_2);
174 glNormalPointer(GL_FLOAT, 0, normals_2);
175 glTexCoordPointer(3, GL_FLOAT, 0, tex_coords_2);
176 glDrawArrays(GL_TRIANGLE_STRIP, 0, 8);
178 glVertexPointer(3, GL_FLOAT, 0, vertices_3);
179 glNormalPointer(GL_FLOAT, 0, normals_3);
180 glTexCoordPointer(3, GL_FLOAT, 0, tex_coords_3);
181 glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
183 glEndList();
185 glDisableClientState(GL_VERTEX_ARRAY);
186 glDisableClientState(GL_NORMAL_ARRAY);
187 glDisableClientState(GL_TEXTURE_COORD_ARRAY);