};
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;
-
-/* Recursion level for floor drawing */
-int drawFloorRecurse = 8;
+int startx, starty;
/* Size of floor, from -n to n, floorSize must be divisible by squareSize */
int floorSize = 200;
int lightMoving1 = 0, lightStartX1, lightStartY1;
/* Material types */
-GLfloat ambient[] = {1.0, 1.0, 1.0, 1.0};
+GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0};
GLfloat diffuse[] = {1.0, 0.8, 0.0, 1.0};
GLfloat specular[] = {1.0, 1.0, 1.0, 1.0};
GLfloat shine = 100.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.6, updownFactor = 0.03;
/* Beginning width, height */
int width = 500, height = 500;