};
SceneObject sceneObjs[MAXOBJECTS]; // An array with details of the objects in a scene
-int nObjects=0; // How many objects there are in the scene currently.
+int nObjects = 0; // How many objects there are in the scene currently.
+int curObject = -1; // The scene object that is currently selected, (-1 is no object)
+int buttonSelected = -1; // Either GLUT_LEFT_BUTTON, GLUT_MIDDLE_BUTTON or -1 (no button)
+int manipulateState = STATE_CAMERA_ROTATE_MOVE; // See manipulateStates enum
// Directories containing models
char *dirDefault1 = "models-textures";
char dataDir[200]; // Stores the directory name for the meshes and textures.
-int moving, startx, starty;
+int startx, starty;
-/* Recursion level for floor drawing */
-int drawFloorRecurse = 8;
-
-/* Size of floor, from -n to n */
+/* Size of floor, from -n to n, floorSize must be divisible by squareSize */
int floorSize = 200;
+float squareSize = 2;
/* Current camera x, y, z coords */
GLfloat camx = 0.0, camy = 0.0, camz = 0.0, keyrot = 0.0;
GLfloat emission[] = {0.0, 0.3, 0.3, 1.0};
/* Zoom and rotate tracking */
-GLfloat zoom = 0.0, rotate = 0.0;
-GLfloat zoomFactor = 0.2, rotateFactor = 0.5;
+GLfloat zoom = 0.0, rotate = 0.0, camAngle = 40.0;
+GLfloat zoomFactor = 0.2, rotateFactor = 0.5, camAngleFactor = 0.5;
+GLfloat leftrightFactor = 0.5, nearfarFactor = 0.5, bigsmallFactor = 0.5, updownFactor = 0.5;
/* Beginning width, height */
-int width = 500, height = 500;
\ No newline at end of file
+int width = 500, height = 500;
+
+/* Texture state tracking */
+int currentGroundTexture = 0, currentMeshTexture = 0;
\ No newline at end of file