(no commit message)
[atyndall/cits2231.git] / scene.c
diff --git a/scene.c b/scene.c
index ed4575e..bc91f1e 100644 (file)
--- a/scene.c
+++ b/scene.c
@@ -246,11 +246,9 @@ void processLightEvents(int id) {
 \r
 }\r
 \r
-int makeSubmenuFromArray( const char *menuEntries[], void *callback ) {\r
-  for ( int i = 0; i < 54; i++ ) {\r
-    printf("%s\n", menuEntries[i]);\r
-  }\r
- /* int menuEntriesSize = sizeof(menuEntries) / sizeof(menuEntries[0]);\r
+int makeSubmenuFromArray( const char *menuEntries[], unsigned int menuEntriesSize, void *callback ) {\r
+  if ( menuEntriesSize == 0 ) return -1;\r
+\r
   int menuNumber = menuEntriesSize / 10 + 1;\r
   int submenuObjects[menuNumber-1];\r
 \r
@@ -269,14 +267,13 @@ int makeSubmenuFromArray( const char *menuEntries[], void *callback ) {
     int startNum = i*11 - (i-1);\r
     int endNum = startNum + 9;\r
     if ( i == menuNumber - 1 ) { // We're on the last one\r
-      endNum = startNum + 3;\r
+      endNum = startNum + (menuEntriesSize - startNum);\r
     }\r
     sprintf(name, "%d-%d", startNum, endNum);\r
     glutAddSubMenu( name, submenuObjects[i] );\r
   }\r
 \r
-  return mainMenu;*/\r
-  return 1;\r
+  return mainMenu;\r
 }\r
 \r
 void makeMenu() {\r
@@ -299,7 +296,8 @@ void makeMenu() {
   glutAddMenuEntry("R/G/B/All Light 2", LIGHT_RGBALL_LIGHT_2);\r
 \r
   // Construct add object submenus\r
-  int addObjectMenu = makeSubmenuFromArray( objectMenuEntries, processObjectEvents );\r
+  int objectMenuEntriesSize = sizeof(objectMenuEntries) / sizeof(objectMenuEntries[0]);\r
+  int addObjectMenu = makeSubmenuFromArray( objectMenuEntries, objectMenuEntriesSize, processObjectEvents );\r
 \r
   // Construct texture/ground texture submenus\r
 /*  int textureMenuEntries = sizeof(textureMenuEntries) / sizeof(textureMenuEntries[0]);\r

UCC git Repository :: git.ucc.asn.au