new mapping, fully working
[SugarCubes.git] / _Overlay.pde
index 0950b91c03b93e61beb8fafc545143bddf738b0f..f1bc1d4a8a9df06038cb7a924772c98d38fa7373 100644 (file)
@@ -75,6 +75,14 @@ abstract class OverlayUI {
     text("Tap 'u' to restore UI", width-4, height-6);
   }
 
+  public void drawDanText() {
+    textFont(itemFont);
+    textAlign(LEFT);
+    fill(#FFFFFF);
+    text(DanTextLine1, 4, height-50);
+    text(DanTextLine2, 4, height-30);
+  }
+
   public void drawFPS() {
     textFont(titleFont);
     textAlign(LEFT);
@@ -630,6 +638,7 @@ class MappingUI extends OverlayUI {
   
   public void draw() {
     drawLogoAndBackground();
+    
     int yPos = 0;
     firstMappingY = yPos + lineHeight + 6;    
     yPos = drawObjectList(yPos, "MAPPING MODE", mappingModes, mappingModes, mappingModeStateMethod);
@@ -757,11 +766,11 @@ class MappingUI extends OverlayUI {
 class DebugUI {
   
   final ChannelMapping[] channelList;
-  final int debugX = 10;
-  final int debugY = 42;
+  final int debugX = 5;
+  final int debugY = 5;
   final int debugXSpacing = 28;
-  final int debugYSpacing = 22;
-  final int[][] debugState = new int[17][6];
+  final int debugYSpacing = 21;
+  final int[][] debugState;
   
   final int DEBUG_STATE_ANIM = 0;
   final int DEBUG_STATE_WHITE = 1;
@@ -769,6 +778,8 @@ class DebugUI {
   
   DebugUI(PandaMapping[] pandaMappings) {
     int totalChannels = pandaMappings.length * PandaMapping.CHANNELS_PER_BOARD;
+    debugState = new int[totalChannels+1][ChannelMapping.CUBES_PER_CHANNEL+1];
+    
     channelList = new ChannelMapping[totalChannels];
     int channelIndex = 0;
     for (PandaMapping pm : pandaMappings) {
@@ -788,8 +799,8 @@ class DebugUI {
     int xBase = debugX;
     int yPos = debugY;
     
-    fill(color(0, 0, 0, 80));
-    rect(4, 32, 172, 388);
+    fill(#000000);
+    rect(0, 0, debugX + 5*debugXSpacing, height);
     
     int channelNum = 0;
     for (ChannelMapping channel : channelList) {
@@ -822,7 +833,7 @@ class DebugUI {
         case ChannelMapping.MODE_SPEAKER:
           drawNumBox(xPos, yPos, "S" + channel.objectIndices[0], debugState[channelNum][1]);
           break;
-        case ChannelMapping.MODE_FLOOR:
+        case ChannelMapping.MODE_STRUTS_AND_FLOOR:
           drawNumBox(xPos, yPos, "F", debugState[channelNum][1]);
           break;
         case ChannelMapping.MODE_NULL:
@@ -901,19 +912,26 @@ class DebugUI {
            state = debugState[channelIndex][1];
            if (state != DEBUG_STATE_ANIM) {
               color debugColor = (state == DEBUG_STATE_WHITE) ? white : off;
-              for (Point p : glucose.model.bassBox.points) {
-                colors[p.index] = debugColor;
+              for (Strip s : glucose.model.bassBox.boxStrips) {
+                for (Point p : s.points) {
+                  colors[p.index] = debugColor;
+                }
               }
            }
            break;
 
-         case ChannelMapping.MODE_FLOOR:
+         case ChannelMapping.MODE_STRUTS_AND_FLOOR:
            state = debugState[channelIndex][1];
            if (state != DEBUG_STATE_ANIM) {
               color debugColor = (state == DEBUG_STATE_WHITE) ? white : off;
               for (Point p : glucose.model.boothFloor.points) {
                 colors[p.index] = debugColor;
               }
+              for (Strip s : glucose.model.bassBox.struts) {
+                for (Point p : s.points) {
+                  colors[p.index] = debugColor;
+                }
+              }
            }
            break;
            
@@ -943,7 +961,7 @@ class DebugUI {
     if ((dy >= 0) && (dy < debugState.length)) {
       if ((dx >= 0) && (dx < debugState[dy].length)) {
         int newState = debugState[dy][dx] = (debugState[dy][dx] + 1) % 3;
-        if (dy == 16) {
+        if (dy == debugState.length-1) {
           for (int[] states : debugState) {
             for (int i = 0; i < states.length; ++i) {
               states[i] = newState;