- glBegin( wire ? GL_LINE_LOOP : GL_QUADS );
-
- glNormal3f( 0, -1, 0 );
- glVertex3f( HALFTHICK, -HALFTHICK, HALFTHICK );
- glVertex3f( 1-HALFTHICK, -HALFTHICK, HALFTHICK );
- glVertex3f( 1-HALFTHICK, -HALFTHICK, 1-HALFTHICK);
- glVertex3f( HALFTHICK, -HALFTHICK, 1-HALFTHICK );
-
- if (wire) { glEnd(); glBegin (GL_LINE_LOOP); }
-
- /* back */
- glNormal3f( 0, 1, 0 );
- glVertex3f( HALFTHICK, HALFTHICK, 1-HALFTHICK );
- glVertex3f( 1-HALFTHICK, HALFTHICK, 1-HALFTHICK);
- glVertex3f( 1-HALFTHICK, HALFTHICK, HALFTHICK );
- glVertex3f( HALFTHICK, HALFTHICK, HALFTHICK );
-
- if (wire) { glEnd(); return; }
-
- /* 4 edges!!! weee.... */
- glNormal3f( 0, 0, -1 );
- glVertex3f( HALFTHICK, HALFTHICK, HALFTHICK );
- glVertex3f( 1-HALFTHICK, HALFTHICK, HALFTHICK );
- glVertex3f( 1-HALFTHICK, -HALFTHICK, HALFTHICK );
- glVertex3f( HALFTHICK, -HALFTHICK, HALFTHICK );
- glNormal3f( 0, 0, 1 );
- glVertex3f( HALFTHICK, HALFTHICK, 1-HALFTHICK );
- glVertex3f( HALFTHICK, -HALFTHICK, 1-HALFTHICK );
- glVertex3f( 1-HALFTHICK, -HALFTHICK, 1-HALFTHICK );
- glVertex3f( 1-HALFTHICK, HALFTHICK, 1-HALFTHICK );
- glNormal3f( 1, 0, 0 );
- glVertex3f( 1-HALFTHICK, HALFTHICK, 1-HALFTHICK );
- glVertex3f( 1-HALFTHICK, -HALFTHICK, 1-HALFTHICK );
- glVertex3f( 1-HALFTHICK, -HALFTHICK, HALFTHICK );
- glVertex3f( 1-HALFTHICK, HALFTHICK, HALFTHICK );
- glNormal3f( -1, 0, 0 );
- glVertex3f( HALFTHICK, HALFTHICK, 1-HALFTHICK );
- glVertex3f( HALFTHICK, HALFTHICK, HALFTHICK );
- glVertex3f( HALFTHICK, -HALFTHICK, HALFTHICK );
- glVertex3f( HALFTHICK, -HALFTHICK, 1-HALFTHICK );
- glEnd();
+ glBegin( wire ? GL_LINE_LOOP : GL_QUADS );
+
+ glNormal3f( 0, -1, 0 );
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+
+ if (wire) { glEnd(); glBegin (GL_LINE_LOOP); }
+
+ /* back */
+ glNormal3f( 0, 1, 0 );
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glVertex3f( half_thick, half_thick, half_thick );
+
+ if (wire) { glEnd(); return; }
+
+ /* 4 edges!!! weee.... */
+ glNormal3f( 0, 0, -1 );
+ glVertex3f( half_thick, half_thick, half_thick );
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glNormal3f( 0, 0, 1 );
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+ glNormal3f( 1, 0, 0 );
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glNormal3f( -1, 0, 0 );
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glVertex3f( half_thick, half_thick, half_thick );
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ glEnd();
+}
+
+/* Reserve memory for the randsheet */
+static void
+randsheet_create( randsheet *rs )
+{
+ rs -> occupied = (int*) malloc(board_x_size*board_y_size * sizeof(int));
+ rs -> xpos = (int*) malloc(numsquares * sizeof(int));
+ rs -> ypos = (int*) malloc(numsquares * sizeof(int));
+ rs -> direction = (int*) malloc(numsquares * sizeof(int));
+ rs -> angle = (float*) malloc(numsquares * sizeof(float));
+ rs -> color = (float*) malloc(numsquares*3 * sizeof(float));
+}
+
+/* Free reserved memory for the randsheet */
+static void
+randsheet_free( randsheet *rs )
+{
+ free(rs->occupied);
+ free(rs->xpos);
+ free(rs->ypos);
+ free(rs->direction);
+ free(rs->angle);
+ free(rs->color);