commit 4e1dc313fe0aeb781a8383efd606792e8669eb98
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Oct 1 00:09:02 2021 +0200

    move the resourceIDs from ObjectList to individual object classes.

diff --git a/src/main/java/org/distorted/objectlib/main/ObjectList.java b/src/main/java/org/distorted/objectlib/main/ObjectList.java
index fbc7d015..c492d386 100644
--- a/src/main/java/org/distorted/objectlib/main/ObjectList.java
+++ b/src/main/java/org/distorted/objectlib/main/ObjectList.java
@@ -92,158 +92,158 @@ public enum ObjectList
 
   CUBE (
          new int[][] {
-                       {2 , 12, 12, R.raw.cube2, R.drawable.ui_small_cube2, R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2, R.drawable.ui_huge_cube2} ,
-                       {3 , 16, 17, R.raw.cube3, R.drawable.ui_small_cube3, R.drawable.ui_medium_cube3, R.drawable.ui_big_cube3, R.drawable.ui_huge_cube3} ,
-                       {4 , 20, 24, R.raw.cube4, R.drawable.ui_small_cube4, R.drawable.ui_medium_cube4, R.drawable.ui_big_cube4, R.drawable.ui_huge_cube4} ,
-                       {5 , 24, 28, R.raw.cube5, R.drawable.ui_small_cube5, R.drawable.ui_medium_cube5, R.drawable.ui_big_cube5, R.drawable.ui_huge_cube5}
+                       {2 , 12, 12, R.drawable.ui_small_cube2, R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2, R.drawable.ui_huge_cube2} ,
+                       {3 , 16, 17, R.drawable.ui_small_cube3, R.drawable.ui_medium_cube3, R.drawable.ui_big_cube3, R.drawable.ui_huge_cube3} ,
+                       {4 , 20, 24, R.drawable.ui_small_cube4, R.drawable.ui_medium_cube4, R.drawable.ui_big_cube4, R.drawable.ui_huge_cube4} ,
+                       {5 , 24, 28, R.drawable.ui_small_cube5, R.drawable.ui_medium_cube5, R.drawable.ui_big_cube5, R.drawable.ui_huge_cube5}
                      },
          0
        ),
 
   JING (
          new int[][] {
-                       {2 , 11, 11, R.raw.jing, R.drawable.ui_small_jing2, R.drawable.ui_medium_jing2, R.drawable.ui_big_jing2, R.drawable.ui_huge_jing2} ,
+                       {2 , 11, 11, R.drawable.ui_small_jing2, R.drawable.ui_medium_jing2, R.drawable.ui_big_jing2, R.drawable.ui_huge_jing2} ,
                      },
          1
        ),
 
   PYRA (
          new int[][] {
-                       {3 , 10, 10, R.raw.pyra3, R.drawable.ui_small_pyra3, R.drawable.ui_medium_pyra3, R.drawable.ui_big_pyra3, R.drawable.ui_huge_pyra3} ,
-                       {4 , 15, 17, R.raw.pyra4, R.drawable.ui_small_pyra4, R.drawable.ui_medium_pyra4, R.drawable.ui_big_pyra4, R.drawable.ui_huge_pyra4} ,
-                       {5 , 20, 23, R.raw.pyra5, R.drawable.ui_small_pyra5, R.drawable.ui_medium_pyra5, R.drawable.ui_big_pyra5, R.drawable.ui_huge_pyra5}
+                       {3 , 10, 10, R.drawable.ui_small_pyra3, R.drawable.ui_medium_pyra3, R.drawable.ui_big_pyra3, R.drawable.ui_huge_pyra3} ,
+                       {4 , 15, 17, R.drawable.ui_small_pyra4, R.drawable.ui_medium_pyra4, R.drawable.ui_big_pyra4, R.drawable.ui_huge_pyra4} ,
+                       {5 , 20, 23, R.drawable.ui_small_pyra5, R.drawable.ui_medium_pyra5, R.drawable.ui_big_pyra5, R.drawable.ui_huge_pyra5}
                      },
          1
        ),
 
   KILO (
          new int[][] {
-                       {3 , 18, 18, R.raw.kilo3, R.drawable.ui_small_kilo3, R.drawable.ui_medium_kilo3, R.drawable.ui_big_kilo3, R.drawable.ui_huge_kilo3} ,
-                       {5 , 33, 33, R.raw.kilo5, R.drawable.ui_small_kilo5, R.drawable.ui_medium_kilo5, R.drawable.ui_big_kilo5, R.drawable.ui_huge_kilo5} ,
+                       {3 , 18, 18, R.drawable.ui_small_kilo3, R.drawable.ui_medium_kilo3, R.drawable.ui_big_kilo3, R.drawable.ui_huge_kilo3} ,
+                       {5 , 33, 33, R.drawable.ui_small_kilo5, R.drawable.ui_medium_kilo5, R.drawable.ui_big_kilo5, R.drawable.ui_huge_kilo5} ,
                      },
          2
        ),
 
   MEGA (
          new int[][] {
-                       {3 , 21, 21, R.raw.mega3, R.drawable.ui_small_mega3, R.drawable.ui_medium_mega3, R.drawable.ui_big_mega3, R.drawable.ui_huge_mega3} ,
-                       {5 , 35, 37, R.raw.mega5, R.drawable.ui_small_mega5, R.drawable.ui_medium_mega5, R.drawable.ui_big_mega5, R.drawable.ui_huge_mega5} ,
+                       {3 , 21, 21, R.drawable.ui_small_mega3, R.drawable.ui_medium_mega3, R.drawable.ui_big_mega3, R.drawable.ui_huge_mega3} ,
+                       {5 , 35, 37, R.drawable.ui_small_mega5, R.drawable.ui_medium_mega5, R.drawable.ui_big_mega5, R.drawable.ui_huge_mega5} ,
                      },
          2
        ),
 
   ULTI (
          new int[][] {
-                       {2 , 18, 18, R.raw.ulti, R.drawable.ui_small_ulti, R.drawable.ui_medium_ulti, R.drawable.ui_big_ulti, R.drawable.ui_huge_ulti} ,
+                       {2 , 18, 18, R.drawable.ui_small_ulti, R.drawable.ui_medium_ulti, R.drawable.ui_big_ulti, R.drawable.ui_huge_ulti} ,
                      },
          3
        ),
 
   DIAM (
          new int[][] {
-                       {2 , 10, 12, R.raw.diam2, R.drawable.ui_small_diam2, R.drawable.ui_medium_diam2, R.drawable.ui_big_diam2, R.drawable.ui_huge_diam2} ,
-                       {3 , 18, 24, R.raw.diam3, R.drawable.ui_small_diam3, R.drawable.ui_medium_diam3, R.drawable.ui_big_diam3, R.drawable.ui_huge_diam3} ,
-                       {4 , 32, 32, R.raw.diam4, R.drawable.ui_small_diam4, R.drawable.ui_medium_diam4, R.drawable.ui_big_diam4, R.drawable.ui_huge_diam4} ,
+                       {2 , 10, 12, R.drawable.ui_small_diam2, R.drawable.ui_medium_diam2, R.drawable.ui_big_diam2, R.drawable.ui_huge_diam2} ,
+                       {3 , 18, 24, R.drawable.ui_small_diam3, R.drawable.ui_medium_diam3, R.drawable.ui_big_diam3, R.drawable.ui_huge_diam3} ,
+                       {4 , 32, 32, R.drawable.ui_small_diam4, R.drawable.ui_medium_diam4, R.drawable.ui_big_diam4, R.drawable.ui_huge_diam4} ,
                      },
          3
        ),
 
   DINO (
          new int[][] {
-                       {3 , 10, 10, R.raw.dino, R.drawable.ui_small_dino, R.drawable.ui_medium_dino, R.drawable.ui_big_dino, R.drawable.ui_huge_dino} ,
+                       {3 , 10, 10, R.drawable.ui_small_dino, R.drawable.ui_medium_dino, R.drawable.ui_big_dino, R.drawable.ui_huge_dino} ,
                      },
          4
        ),
 
   DIN4 (
          new int[][] {
-                       {3 , 7, 7, R.raw.dino, R.drawable.ui_small_din4, R.drawable.ui_medium_din4, R.drawable.ui_big_din4, R.drawable.ui_huge_din4} ,
+                       {3 , 7, 7, R.drawable.ui_small_din4, R.drawable.ui_medium_din4, R.drawable.ui_big_din4, R.drawable.ui_huge_din4} ,
                      },
          4
        ),
 
   REDI (
          new int[][] {
-                       {3 , 14, 16, R.raw.redi, R.drawable.ui_small_redi, R.drawable.ui_medium_redi, R.drawable.ui_big_redi, R.drawable.ui_huge_redi} ,
+                       {3 , 14, 16, R.drawable.ui_small_redi, R.drawable.ui_medium_redi, R.drawable.ui_big_redi, R.drawable.ui_huge_redi} ,
                      },
          4
        ),
 
   HELI (
          new int[][] {
-                       {3 , 18, 20, R.raw.heli, R.drawable.ui_small_heli, R.drawable.ui_medium_heli, R.drawable.ui_big_heli, R.drawable.ui_huge_heli} ,
+                       {3 , 18, 20, R.drawable.ui_small_heli, R.drawable.ui_medium_heli, R.drawable.ui_big_heli, R.drawable.ui_huge_heli} ,
                      },
          4
        ),
 
   SKEW (
          new int[][] {
-                       {2 , 11, 11, R.raw.skew2, R.drawable.ui_small_skew2, R.drawable.ui_medium_skew2, R.drawable.ui_big_skew2, R.drawable.ui_huge_skew2} ,
-                       {3 , 17, 21, R.raw.skew3, R.drawable.ui_small_skew3, R.drawable.ui_medium_skew3, R.drawable.ui_big_skew3, R.drawable.ui_huge_skew3} ,
+                       {2 , 11, 11, R.drawable.ui_small_skew2, R.drawable.ui_medium_skew2, R.drawable.ui_big_skew2, R.drawable.ui_huge_skew2} ,
+                       {3 , 17, 21, R.drawable.ui_small_skew3, R.drawable.ui_medium_skew3, R.drawable.ui_big_skew3, R.drawable.ui_huge_skew3} ,
                      },
          5
        ),
 
   IVY  (
          new int[][] {
-                       {2 , 8, 8, R.raw.ivy, R.drawable.ui_small_ivy, R.drawable.ui_medium_ivy, R.drawable.ui_big_ivy, R.drawable.ui_huge_ivy} ,
+                       {2 , 8, 8, R.drawable.ui_small_ivy, R.drawable.ui_medium_ivy, R.drawable.ui_big_ivy, R.drawable.ui_huge_ivy} ,
                      },
          5
        ),
 
   REX  (
          new int[][] {
-                       {3 , 16, 19, R.raw.rex, R.drawable.ui_small_rex, R.drawable.ui_medium_rex, R.drawable.ui_big_rex, R.drawable.ui_huge_rex} ,
+                       {3 , 16, 19, R.drawable.ui_small_rex, R.drawable.ui_medium_rex, R.drawable.ui_big_rex, R.drawable.ui_huge_rex} ,
                      },
          5
        ),
 
   BAN1 (
          new int[][] {
-                       {3 , 16, 16, R.raw.ban1, R.drawable.ui_small_ban1, R.drawable.ui_medium_ban1, R.drawable.ui_big_ban1, R.drawable.ui_huge_ban1} ,
+                       {3 , 16, 16, R.drawable.ui_small_ban1, R.drawable.ui_medium_ban1, R.drawable.ui_big_ban1, R.drawable.ui_huge_ban1} ,
                      },
          6
        ),
 
   BAN2 (
          new int[][] {
-                       {3 , 16, 16, R.raw.ban2, R.drawable.ui_small_ban2, R.drawable.ui_medium_ban2, R.drawable.ui_big_ban2, R.drawable.ui_huge_ban2} ,
+                       {3 , 16, 16, R.drawable.ui_small_ban2, R.drawable.ui_medium_ban2, R.drawable.ui_big_ban2, R.drawable.ui_huge_ban2} ,
                      },
          6
        ),
 
   BAN3 (
          new int[][] {
-                       {3 , 16, 16, R.raw.ban3, R.drawable.ui_small_ban3, R.drawable.ui_medium_ban3, R.drawable.ui_big_ban3, R.drawable.ui_huge_ban3} ,
+                       {3 , 16, 16, R.drawable.ui_small_ban3, R.drawable.ui_medium_ban3, R.drawable.ui_big_ban3, R.drawable.ui_huge_ban3} ,
                      },
          6
        ),
 
   BAN4 (
          new int[][] {
-                       {3 , 16, 16, R.raw.ban4, R.drawable.ui_small_ban4, R.drawable.ui_medium_ban4, R.drawable.ui_big_ban4, R.drawable.ui_huge_ban4} ,
+                       {3 , 16, 16, R.drawable.ui_small_ban4, R.drawable.ui_medium_ban4, R.drawable.ui_big_ban4, R.drawable.ui_huge_ban4} ,
                      },
          6
        ),
 
   SQU1 (
          new int[][] {
-                       {3 , 24, 24, R.raw.squa1, R.drawable.ui_small_squa1, R.drawable.ui_medium_squa1, R.drawable.ui_big_squa1, R.drawable.ui_huge_squa1} ,
+                       {3 , 24, 24, R.drawable.ui_small_squa1, R.drawable.ui_medium_squa1, R.drawable.ui_big_squa1, R.drawable.ui_huge_squa1} ,
                      },
          7
        ),
 
   SQU2 (
          new int[][] {
-                       {3 , 24, 24, R.raw.squa2, R.drawable.ui_small_squa2, R.drawable.ui_medium_squa2, R.drawable.ui_big_squa2, R.drawable.ui_huge_squa2} ,
+                       {3 , 24, 24, R.drawable.ui_small_squa2, R.drawable.ui_medium_squa2, R.drawable.ui_big_squa2, R.drawable.ui_huge_squa2} ,
                      },
          7
        ),
 
   MIRR (
          new int[][] {
-                       {2 , 12, 12, R.raw.mirr2, R.drawable.ui_small_mirr2, R.drawable.ui_medium_mirr2, R.drawable.ui_big_mirr2, R.drawable.ui_huge_mirr2} ,
-                       {3 , 16, 17, R.raw.mirr3, R.drawable.ui_small_mirr3, R.drawable.ui_medium_mirr3, R.drawable.ui_big_mirr3, R.drawable.ui_huge_mirr3} ,
+                       {2 , 12, 12, R.drawable.ui_small_mirr2, R.drawable.ui_medium_mirr2, R.drawable.ui_big_mirr2, R.drawable.ui_huge_mirr2} ,
+                       {3 , 16, 17, R.drawable.ui_small_mirr3, R.drawable.ui_medium_mirr3, R.drawable.ui_big_mirr3, R.drawable.ui_huge_mirr3} ,
                      },
          7
        ),
@@ -255,7 +255,7 @@ public enum ObjectList
   public static final int MAX_SCRAMBLE;
   public static final int MAX_OBJECT_SIZE;
 
-  private final int[] mObjectSizes, mDBLevels, mNumScrambles, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs, mResourceIDs;
+  private final int[] mObjectSizes, mDBLevels, mNumScrambles, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs;
   private final int mRow, mNumSizes;
 
   private static final ObjectList[] objects;
@@ -534,7 +534,6 @@ public enum ObjectList
     mObjectSizes  = new int[mNumSizes];
     mDBLevels     = new int[mNumSizes];
     mNumScrambles = new int[mNumSizes];
-    mResourceIDs  = new int[mNumSizes];
     mSmallIconIDs = new int[mNumSizes];
     mMediumIconIDs= new int[mNumSizes];
     mBigIconIDs   = new int[mNumSizes];
@@ -545,11 +544,10 @@ public enum ObjectList
       mObjectSizes[i]  = info[i][0];
       mDBLevels[i]     = info[i][1];
       mNumScrambles[i] = info[i][2];
-      mResourceIDs[i]  = info[i][3];
-      mSmallIconIDs[i] = info[i][4];
-      mMediumIconIDs[i]= info[i][5];
-      mBigIconIDs[i]   = info[i][6];
-      mHugeIconIDs[i]  = info[i][7];
+      mSmallIconIDs[i] = info[i][3];
+      mMediumIconIDs[i]= info[i][4];
+      mBigIconIDs[i]   = info[i][5];
+      mHugeIconIDs[i]  = info[i][6];
       }
 
     mRow  = row;
@@ -577,13 +575,6 @@ public enum ObjectList
     return mSmallIconIDs;
     }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public int[] getResourceIDs()
-    {
-    return mResourceIDs;
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public TwistyObject create(int size, Static4D quat, int[][] moves, Resources res, int scrWidth)
diff --git a/src/main/java/org/distorted/objectlib/main/TwistyObject.java b/src/main/java/org/distorted/objectlib/main/TwistyObject.java
index 5df44b57..c9d2f7a0 100644
--- a/src/main/java/org/distorted/objectlib/main/TwistyObject.java
+++ b/src/main/java/org/distorted/objectlib/main/TwistyObject.java
@@ -270,8 +270,7 @@ public abstract class TwistyObject extends DistortedNode
 
   private void createMeshAndCubits(ObjectList list, Resources res)
     {
-    int sizeIndex = ObjectList.getSizeIndex(list.ordinal(),mNumLayers);
-    int resourceID= list.getResourceIDs()[sizeIndex];
+    int resourceID= getResource(mNumLayers);
 
     if( resourceID!=0 )
       {
@@ -1304,6 +1303,7 @@ public abstract class TwistyObject extends DistortedNode
   protected abstract int getNumStickerTypes(int numLayers);
   protected abstract ObjectSticker retSticker(int face);
   protected abstract int getFaceColor(int cubit, int cubitface, int numLayers);
+  protected abstract int getResource(int mNumLayers);
 
   public abstract Movement getMovement();
   public abstract Static3D[] getRotationAxis();
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyBandaged2Bar.java b/src/main/java/org/distorted/objectlib/objects/TwistyBandaged2Bar.java
index 59e3fd3b..8265b147 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyBandaged2Bar.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyBandaged2Bar.java
@@ -57,6 +57,13 @@ public class TwistyBandaged2Bar extends TwistyBandagedAbstract
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.ban2;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float[][] getPositions()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyBandaged3Plate.java b/src/main/java/org/distorted/objectlib/objects/TwistyBandaged3Plate.java
index 3724db56..e8a0a2bc 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyBandaged3Plate.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyBandaged3Plate.java
@@ -70,6 +70,13 @@ public class TwistyBandaged3Plate extends TwistyBandagedAbstract
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.ban3;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float[][] getPositions()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedEvil.java b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedEvil.java
index 1086a64d..c22e989d 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedEvil.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedEvil.java
@@ -198,6 +198,13 @@ public class TwistyBandagedEvil extends TwistyBandagedAbstract
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.ban4;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float[][] getPositions()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedFused.java b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedFused.java
index 21c3fe53..ef5c16bf 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyBandagedFused.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyBandagedFused.java
@@ -57,6 +57,13 @@ public class TwistyBandagedFused extends TwistyBandagedAbstract
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.ban1;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   float[][] getPositions()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyCube.java b/src/main/java/org/distorted/objectlib/objects/TwistyCube.java
index 78554886..95bde7fb 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyCube.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyCube.java
@@ -104,6 +104,21 @@ public class TwistyCube extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 2: return R.raw.cube2;
+      case 3: return R.raw.cube3;
+      case 4: return R.raw.cube4;
+      case 5: return R.raw.cube5;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private int[] createEdges(int size, int vertex)
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java b/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
index bf4a35bd..0e630478 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDiamond.java
@@ -99,6 +99,20 @@ public class TwistyDiamond extends Twisty8
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 2: return R.raw.diam2;
+      case 3: return R.raw.diam3;
+      case 4: return R.raw.diam4;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyDino.java b/src/main/java/org/distorted/objectlib/objects/TwistyDino.java
index 603f1b88..d6897e93 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyDino.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyDino.java
@@ -29,6 +29,7 @@ import org.distorted.library.mesh.MeshSquare;
 import org.distorted.library.type.Static3D;
 import org.distorted.library.type.Static4D;
 
+import org.distorted.objectlib.R;
 import org.distorted.objectlib.main.Movement;
 import org.distorted.objectlib.main.Movement6;
 import org.distorted.objectlib.main.ObjectList;
@@ -98,6 +99,13 @@ abstract class TwistyDino extends Twisty6
          };
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.dino;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   protected Static4D[] getQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java b/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
index 039ae590..b6567505 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyHelicopter.java
@@ -109,6 +109,13 @@ public class TwistyHelicopter extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.heli;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java b/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
index 11060bd5..bfd4e748 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyIvy.java
@@ -98,6 +98,13 @@ public class TwistyIvy extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.ivy;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyJing.java b/src/main/java/org/distorted/objectlib/objects/TwistyJing.java
index f00e19e2..c60670ab 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyJing.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyJing.java
@@ -95,6 +95,13 @@ public class TwistyJing extends Twisty4
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.jing;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java b/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
index ba517c6f..cc718752 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyKilominx.java
@@ -84,6 +84,19 @@ public class TwistyKilominx extends TwistyMinx
     return numLayers<5 ? 0 : 2*(numLayers-4);
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 3: return R.raw.kilo3;
+      case 5: return R.raw.kilo5;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   protected int getNumStickerTypes(int numLayers)
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java b/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
index 810d51fa..17336459 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMegaminx.java
@@ -71,6 +71,19 @@ public class TwistyMegaminx extends TwistyMinx
     return numLayers-2;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 3: return R.raw.mega3;
+      case 5: return R.raw.mega5;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   protected int getNumStickerTypes(int numLayers)
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java b/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
index c71ce90e..f379d25e 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyMirror.java
@@ -126,6 +126,19 @@ public class TwistyMirror extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 2: return R.raw.mirr2;
+      case 3: return R.raw.mirr3;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private int[] createEdges(int size, int vertex)
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
index 71389bf7..28f59e26 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyPyraminx.java
@@ -84,6 +84,20 @@ public class TwistyPyraminx extends Twisty4
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 3: return R.raw.pyra3;
+      case 4: return R.raw.pyra4;
+      case 5: return R.raw.pyra5;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java b/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
index d8d89e46..f6af9bac 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyRedi.java
@@ -101,6 +101,13 @@ public class TwistyRedi extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.redi;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyRex.java b/src/main/java/org/distorted/objectlib/objects/TwistyRex.java
index bf56be7b..48ca09f7 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyRex.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyRex.java
@@ -96,6 +96,13 @@ public class TwistyRex extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.rex;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java b/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
index 25b4bc3d..223eac94 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySkewb.java
@@ -95,6 +95,19 @@ public class TwistySkewb extends Twisty6
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    switch(numLayers)
+      {
+      case 2: return R.raw.skew2;
+      case 3: return R.raw.skew3;
+      }
+
+    return 0;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java b/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
index 2a1daf2e..e5d3b893 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySquare1.java
@@ -60,6 +60,13 @@ public class TwistySquare1 extends TwistySquare
     return null;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.squa1;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   protected int getScrambleType()
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java b/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
index 13166a1e..26f84f73 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistySquare2.java
@@ -78,6 +78,13 @@ public class TwistySquare2 extends TwistySquare
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.squa2;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   protected int[] getSolvedQuats(int cubit, int numLayers)
diff --git a/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java b/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
index 5741b703..5d197dd3 100644
--- a/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
+++ b/src/main/java/org/distorted/objectlib/objects/TwistyUltimate.java
@@ -99,6 +99,13 @@ public class TwistyUltimate extends Twisty12
     return mStates;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  protected int getResource(int numLayers)
+    {
+    return R.raw.ulti;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void initializeQuats()
