-void drawSquare(int recurseLevel, float x1, float z1, float x2, float z2) {
-
- if ( drawFloorRecurse != recurseLevel ) {
- // Calculate middle points
- float xm = (x1 + x2) / 2.0;
- float zm = (z1 + z2) / 2.0;
-
- // Increment recursion level
- int rnew = recurseLevel + 1;
-
- // Split into four sub-quads
- drawSquare(rnew, x1, z1, xm, zm);
- drawSquare(rnew, x1, zm, xm, z2);
- drawSquare(rnew, xm, zm, x2, z2);
- drawSquare(rnew, xm, z1, x2, zm);
-
- } else {
- // Draw square.
- // **NOTE: Is the polygon facing in the right direction?
- srand ( time(NULL) + x1 );
- if ( rand() % 10 < 5 ) {
- printf("Random don't draw\n");
- return;
+void drawFloor() {
+ if ( currentGroundTexture != 0 ) {
+ getTexture(currentGroundTexture);
+ glBindTexture(GL_TEXTURE_2D, currentGroundTexture);
+ }
+
+ glBegin(GL_QUADS);
+
+
+ // **NOTE: Code under development to solve the texture-is-larger than square problem
+
+ int textureTileSize = 50;
+ int divisions = 2;
+
+ for ( int tx = -floorSize; tx <= floorSize; tx += textureTileSize ) {
+ for ( int tz = -floorSize; tz <= floorSize; tz += textureTileSize ) {
+ int subTileWidth = textureTileSize / divisions;
+ for ( int x = 0; x <= textureTileSize; x += subTileWidth ) {
+ for ( int z = 0; z <= textureTileSize; z += subTileWidth ) {
+ glColor3f( 1.0, 1.0, 1.0 );
+
+ printf("Creating a subtile.\n");
+ printf("Texture box is: (%d, %d), (%d, %d), (%d, %d)\n",tx+textureTileSize, tz+textureTileSize,tx+textureTileSize, tz,tx, tz, tx, tz+textureTileSize );
+ printf("Polygon box is: (%d, %d), (%d, %d), (%d, %d)\n",(x+1)*subTileWidth, (z+1)*subTileWidth ,(x+1)*subTileWidth, z*subTileWidth, x*subTileWidth, z*subTileWidth, x*subTileWidth, (z+1)*subTileWidth);
+
+ glTexCoord2f( tx+textureTileSize, tz+textureTileSize );
+ glVertex3f ( (x+1)*subTileWidth, 0.0, (z+1)*subTileWidth );
+
+ glTexCoord2f( tx+textureTileSize, tz );
+ glVertex3f ( (x+1)*subTileWidth, 0.0, z*subTileWidth );
+
+ glTexCoord2f( tx, tz );
+ glVertex3f ( x*subTileWidth, 0.0, z*subTileWidth );
+
+ glTexCoord2f( tx, tz+textureTileSize );
+ glVertex3f ( x*subTileWidth, 0.0, (z+1)*subTileWidth );
+ }
+ }