commit 82d6e038de18ed18555fee36d080ce1c8664a079
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon Jun 8 11:56:19 2020 +0100

    Port changes to ObjectList from the deferred-jobs branch.

diff --git a/src/main/java/org/distorted/objects/RubikObjectList.java b/src/main/java/org/distorted/objects/RubikObjectList.java
index bfaad1bf..15543ff2 100644
--- a/src/main/java/org/distorted/objects/RubikObjectList.java
+++ b/src/main/java/org/distorted/objects/RubikObjectList.java
@@ -54,8 +54,9 @@ public enum RubikObjectList
   ;
 
   public static final int NUM_OBJECTS = values().length;
-  public static final int MAX_SIZE;
+  public static final int MAX_NUM_OBJECTS;
   public static final int MAX_LEVEL;
+  public static final int MAX_OBJECT_SIZE;
 
   private final int[] mObjectSizes, mMaxLevels, mIconIDs;
   private final Class<? extends RubikObject> mObjectClass;
@@ -66,27 +67,30 @@ public enum RubikObjectList
   static
     {
     mNumAll = 0;
-    int size, i = 0;
+    int num, i = 0;
     objects = new RubikObjectList[NUM_OBJECTS];
-    int maxSize  = Integer.MIN_VALUE;
-    int maxLevel = Integer.MIN_VALUE;
+    int maxNum  = Integer.MIN_VALUE;
+    int maxLevel= Integer.MIN_VALUE;
+    int maxSize = Integer.MIN_VALUE;
 
     for(RubikObjectList object: RubikObjectList.values())
       {
       objects[i] = object;
       i++;
-      size = object.mObjectSizes.length;
-      mNumAll += size;
-      if( size> maxSize ) maxSize = size;
+      num = object.mObjectSizes.length;
+      mNumAll += num;
+      if( num> maxNum ) maxNum = num;
 
-      for(int j=0; j<size; j++)
+      for(int j=0; j<num; j++)
         {
         if( object.mMaxLevels[j] > maxLevel ) maxLevel = object.mMaxLevels[j];
+        if( object.mObjectSizes[j] > maxSize) maxSize  = object.mObjectSizes[j];
         }
       }
 
-    MAX_SIZE = maxSize;
-    MAX_LEVEL= maxLevel;
+    MAX_NUM_OBJECTS = maxNum;
+    MAX_LEVEL       = maxLevel;
+    MAX_OBJECT_SIZE = maxSize;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/scores/RubikScores.java b/src/main/java/org/distorted/scores/RubikScores.java
index 54ed4661..fdcbfe6a 100644
--- a/src/main/java/org/distorted/scores/RubikScores.java
+++ b/src/main/java/org/distorted/scores/RubikScores.java
@@ -27,7 +27,7 @@ import org.distorted.objects.RubikObjectList;
 
 import java.util.UUID;
 
-import static org.distorted.objects.RubikObjectList.MAX_SIZE;
+import static org.distorted.objects.RubikObjectList.MAX_NUM_OBJECTS;
 import static org.distorted.objects.RubikObjectList.NUM_OBJECTS;
 import static org.distorted.objects.RubikObjectList.MAX_LEVEL;
 
@@ -52,11 +52,11 @@ public class RubikScores
 
   private RubikScores()
     {
-    mRecords   = new long[NUM_OBJECTS][MAX_SIZE][MAX_LEVEL];
-    mSubmitted = new int [NUM_OBJECTS][MAX_SIZE][MAX_LEVEL];
+    mRecords   = new long[NUM_OBJECTS][MAX_NUM_OBJECTS][MAX_LEVEL];
+    mSubmitted = new int [NUM_OBJECTS][MAX_NUM_OBJECTS][MAX_LEVEL];
 
     for(int i=0; i<NUM_OBJECTS; i++)
-      for(int j=0; j<MAX_SIZE; j++)
+      for(int j=0; j<MAX_NUM_OBJECTS; j++)
         for(int k=0; k<MAX_LEVEL; k++)
           {
           mRecords[i][j][k]   = NO_RECORD;
@@ -235,7 +235,7 @@ public class RubikScores
             time = Long.parseLong(timeStr);
             subm = Integer.parseInt(submStr);
 
-            if( sizeIndex>=0 && sizeIndex<MAX_SIZE && subm>=0 && subm<=1 )
+            if( sizeIndex>=0 && sizeIndex<MAX_NUM_OBJECTS && subm>=0 && subm<=1 )
               {
               mRecords  [object][sizeIndex][level] = time;
               mSubmitted[object][sizeIndex][level] = subm;
@@ -309,7 +309,7 @@ public class RubikScores
     mNameIsVerified = true;
 
     for(int i=0; i<NUM_OBJECTS; i++)
-      for(int j=0; j<MAX_SIZE   ; j++)
+      for(int j=0; j<MAX_NUM_OBJECTS; j++)
         for(int k=0; k<MAX_LEVEL; k++)
           {
           mSubmitted[i][j][k]=1;
