3 * Daniel Nelson - 11/12/0
5 * Copyright (C) 2000 Daniel Nelson
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
25 * Generates a display list for the cute li'l purple garbage blocks.
38 #include "Displayer.h"
40 GLuint
Displayer::garbage_small_list
;
42 void Displayer::generateGarbageSmallList ( )
44 garbage_small_list
= glGenLists(1);
46 glEnableClientState(GL_VERTEX_ARRAY
);
47 glEnableClientState(GL_NORMAL_ARRAY
);
48 glEnableClientState(GL_TEXTURE_COORD_ARRAY
);
50 glNewList(garbage_small_list
, GL_COMPILE
);
52 GLfloat vertices_0
[3 * 18] = {
73 GLfloat vertices_1
[3 * 8] = {
84 GLfloat vertices_2
[3 * 8] = {
95 GLfloat vertices_3
[3 * 4] = {
102 GLfloat vertices_4
[3 * 4] = {
109 GLfloat vertices_5
[3 * 8] = {
120 GLfloat vertices_6
[3 * 8] = {
131 GLfloat normals_0
[3 * 18] = {
152 GLfloat normals_1
[3 * 8] = {
163 GLfloat normals_2
[3 * 8] = {
174 GLfloat normals_3
[3 * 4] = {
181 GLfloat normals_4
[3 * 4] = {
188 GLfloat normals_5
[3 * 8] = {
199 GLfloat normals_6
[3 * 8] = {
210 GLfloat tex_coords_0
[3 * 18];
211 for (int n
= 3 * 18; n
--; )
212 tex_coords_0
[n
] = vertices_0
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
214 GLfloat tex_coords_1
[3 * 8];
215 for (int n
= 3 * 8; n
--; )
216 tex_coords_1
[n
] = vertices_1
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
218 GLfloat tex_coords_2
[3 * 8];
219 for (int n
= 3 * 8; n
--; )
220 tex_coords_2
[n
] = vertices_2
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
222 GLfloat tex_coords_3
[3 * 4];
223 for (int n
= 3 * 4; n
--; )
224 tex_coords_3
[n
] = vertices_3
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
226 GLfloat tex_coords_4
[3 * 4];
227 for (int n
= 3 * 4; n
--; )
228 tex_coords_4
[n
] = vertices_4
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
230 GLfloat tex_coords_5
[3 * 8];
231 for (int n
= 3 * 8; n
--; )
232 tex_coords_5
[n
] = vertices_5
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
234 GLfloat tex_coords_6
[3 * 8];
235 for (int n
= 3 * 8; n
--; )
236 tex_coords_6
[n
] = vertices_6
[n
] * DC_GARBAGE_LIGHTMAP_COORD_CONVERTER
;
238 glVertexPointer(3, GL_FLOAT
, 0, vertices_0
);
239 glNormalPointer(GL_FLOAT
, 0, normals_0
);
240 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_0
);
241 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 18);
243 glVertexPointer(3, GL_FLOAT
, 0, vertices_1
);
244 glNormalPointer(GL_FLOAT
, 0, normals_1
);
245 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_1
);
246 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 8);
248 glVertexPointer(3, GL_FLOAT
, 0, vertices_2
);
249 glNormalPointer(GL_FLOAT
, 0, normals_2
);
250 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_2
);
251 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 8);
253 glVertexPointer(3, GL_FLOAT
, 0, vertices_3
);
254 glNormalPointer(GL_FLOAT
, 0, normals_3
);
255 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_3
);
256 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 4);
258 glVertexPointer(3, GL_FLOAT
, 0, vertices_4
);
259 glNormalPointer(GL_FLOAT
, 0, normals_4
);
260 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_4
);
261 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 4);
263 glVertexPointer(3, GL_FLOAT
, 0, vertices_5
);
264 glNormalPointer(GL_FLOAT
, 0, normals_5
);
265 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_5
);
266 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 8);
268 glVertexPointer(3, GL_FLOAT
, 0, vertices_6
);
269 glNormalPointer(GL_FLOAT
, 0, normals_6
);
270 glTexCoordPointer(3, GL_FLOAT
, 0, tex_coords_6
);
271 glDrawArrays(GL_TRIANGLE_STRIP
, 0, 8);
275 glDisableClientState(GL_VERTEX_ARRAY
);
276 glDisableClientState(GL_NORMAL_ARRAY
);
277 glDisableClientState(GL_TEXTURE_COORD_ARRAY
);