Project

General

Profile

Download (16.4 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / objects / ObjectList.java @ 752f6ce9

1 27a70eae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is free software: you can redistribute it and/or modify                            //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Magic Cube is distributed in the hope that it will be useful,                                 //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19
20 1f9772f3 Leszek Koltunski
package org.distorted.objects;
21 27a70eae Leszek Koltunski
22 ccf9fec5 Leszek Koltunski
import android.content.res.Resources;
23
24 27a70eae Leszek Koltunski
import org.distorted.library.main.DistortedEffects;
25
import org.distorted.library.main.DistortedTexture;
26 efa8aa48 Leszek Koltunski
import org.distorted.library.mesh.MeshSquare;
27 27a70eae Leszek Koltunski
import org.distorted.library.type.Static4D;
28 1f9772f3 Leszek Koltunski
import org.distorted.main.R;
29 f6a9c538 Leszek Koltunski
import org.distorted.main.RubikActivity;
30 27a70eae Leszek Koltunski
31 20931cf6 Leszek Koltunski
import java.lang.reflect.Field;
32
33 27a70eae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
34
35 9c2f0c91 Leszek Koltunski
public enum ObjectList
36 27a70eae Leszek Koltunski
  {
37 4c0cd600 Leszek Koltunski
  CUBE (
38
         new int[][] {
39 31a9f38d Leszek Koltunski
                       {2 , 12, R.raw.cube2, R.drawable.ui_small_cube2, R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2, R.drawable.ui_huge_cube2} ,
40
                       {3 , 16, R.raw.cube3, R.drawable.ui_small_cube3, R.drawable.ui_medium_cube3, R.drawable.ui_big_cube3, R.drawable.ui_huge_cube3} ,
41
                       {4 , 20, R.raw.cube4, R.drawable.ui_small_cube4, R.drawable.ui_medium_cube4, R.drawable.ui_big_cube4, R.drawable.ui_huge_cube4} ,
42
                       {5 , 24, R.raw.cube5, R.drawable.ui_small_cube5, R.drawable.ui_medium_cube5, R.drawable.ui_big_cube5, R.drawable.ui_huge_cube5}
43 4c0cd600 Leszek Koltunski
                     },
44 9c2f0c91 Leszek Koltunski
         TwistyCube.class,
45 ca3300c3 Leszek Koltunski
         new MovementCube(),
46 fa679111 Leszek Koltunski
         0
47 4c0cd600 Leszek Koltunski
       ),
48
49
  PYRA (
50
         new int[][] {
51 31a9f38d Leszek Koltunski
                       {3 , 10, R.raw.pyra3, R.drawable.ui_small_pyra3, R.drawable.ui_medium_pyra3, R.drawable.ui_big_pyra3, R.drawable.ui_huge_pyra3} ,
52
                       {4 , 15, R.raw.pyra4, R.drawable.ui_small_pyra4, R.drawable.ui_medium_pyra4, R.drawable.ui_big_pyra4, R.drawable.ui_huge_pyra4} ,
53
                       {5 , 20, R.raw.pyra5, R.drawable.ui_small_pyra5, R.drawable.ui_medium_pyra5, R.drawable.ui_big_pyra5, R.drawable.ui_huge_pyra5}
54 4c0cd600 Leszek Koltunski
                     },
55 9c2f0c91 Leszek Koltunski
         TwistyPyraminx.class,
56 ca3300c3 Leszek Koltunski
         new MovementPyraminx(),
57 fa679111 Leszek Koltunski
         1
58 4c0cd600 Leszek Koltunski
       ),
59 418aa554 Leszek Koltunski
60 ece1b58d Leszek Koltunski
  DIAM (
61
         new int[][] {
62 30fdccf8 Leszek Koltunski
                       {2 , 10, R.raw.diamond, R.drawable.ui_small_diam, R.drawable.ui_medium_diam, R.drawable.ui_big_diam, R.drawable.ui_huge_diam} ,
63 ece1b58d Leszek Koltunski
                     },
64 9c2f0c91 Leszek Koltunski
         TwistyDiamond.class,
65 ca3300c3 Leszek Koltunski
         new MovementDiamond(),
66 ece1b58d Leszek Koltunski
         1
67
       ),
68
69 418aa554 Leszek Koltunski
  DINO (
70
         new int[][] {
71 f05807f7 Leszek Koltunski
                       {3 , 10, R.raw.dino, R.drawable.ui_small_dino, R.drawable.ui_medium_dino, R.drawable.ui_big_dino, R.drawable.ui_huge_dino} ,
72 418aa554 Leszek Koltunski
                     },
73 9c2f0c91 Leszek Koltunski
         TwistyDino6.class,
74 ca3300c3 Leszek Koltunski
         new MovementDino(),
75 eaee1ddc Leszek Koltunski
         2
76
       ),
77
78
  DIN4 (
79
         new int[][] {
80
                       {3 ,  7, R.raw.dino, R.drawable.ui_small_din4, R.drawable.ui_medium_din4, R.drawable.ui_big_din4, R.drawable.ui_huge_din4} ,
81
                     },
82 9c2f0c91 Leszek Koltunski
         TwistyDino4.class,
83 ca3300c3 Leszek Koltunski
         new MovementDino(),
84 fa679111 Leszek Koltunski
         2
85 418aa554 Leszek Koltunski
       ),
86 fb52fae9 Leszek Koltunski
87 b96a79ff Leszek Koltunski
  REDI (
88 ee35e63c Leszek Koltunski
         new int[][] {
89 b96a79ff Leszek Koltunski
                       {3 , 14, R.raw.redi, R.drawable.ui_small_redi, R.drawable.ui_medium_redi, R.drawable.ui_big_redi, R.drawable.ui_huge_redi} ,
90 ee35e63c Leszek Koltunski
                     },
91 b96a79ff Leszek Koltunski
         TwistyRedi.class,
92
         new MovementRedi(),
93 ee35e63c Leszek Koltunski
         2
94
       ),
95 68f6046c Leszek Koltunski
96 b96a79ff Leszek Koltunski
  HELI (
97 68f6046c Leszek Koltunski
         new int[][] {
98 b96a79ff Leszek Koltunski
                       {3 , 18, R.raw.heli, R.drawable.ui_small_heli, R.drawable.ui_medium_heli, R.drawable.ui_big_heli, R.drawable.ui_huge_heli} ,
99 68f6046c Leszek Koltunski
                     },
100 b96a79ff Leszek Koltunski
         TwistyHelicopter.class,
101
         new MovementHelicopter(),
102 3f3ff476 Leszek Koltunski
         2
103
       ),
104
105
  SKEW (
106
         new int[][] {
107
                       {2 , 11, R.raw.skewb, R.drawable.ui_small_skewb, R.drawable.ui_medium_skewb, R.drawable.ui_big_skewb, R.drawable.ui_huge_skewb} ,
108 e51599f4 Leszek Koltunski
                       {3 , 17, R.raw.skewm, R.drawable.ui_small_skewm, R.drawable.ui_medium_skewm, R.drawable.ui_big_skewm, R.drawable.ui_huge_skewm} ,
109 3f3ff476 Leszek Koltunski
                     },
110
         TwistySkewb.class,
111
         new MovementSkewb(),
112 68f6046c Leszek Koltunski
         3
113
       ),
114 49cd8581 Leszek Koltunski
115
   IVY (
116
         new int[][] {
117 d73de3db Leszek Koltunski
                       {2 , 8, R.raw.ivy, R.drawable.ui_small_ivy, R.drawable.ui_medium_ivy, R.drawable.ui_big_ivy, R.drawable.ui_huge_ivy} ,
118 49cd8581 Leszek Koltunski
                     },
119
         TwistyIvy.class,
120
         new MovementIvy(),
121
         3
122
       ),
123 27a70eae Leszek Koltunski
  ;
124
125 4888e97c Leszek Koltunski
  public static final int NUM_OBJECTS = values().length;
126 8cccfb10 Leszek Koltunski
  public static final int MAX_NUM_OBJECTS;
127 8e3898c8 Leszek Koltunski
  public static final int MAX_LEVEL;
128 8cccfb10 Leszek Koltunski
  public static final int MAX_OBJECT_SIZE;
129 4888e97c Leszek Koltunski
130 31a9f38d Leszek Koltunski
  private final int[] mObjectSizes, mMaxLevels, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs, mResourceIDs;
131 9c2f0c91 Leszek Koltunski
  private final Class<? extends TwistyObject> mObjectClass;
132 ca3300c3 Leszek Koltunski
  private final Movement mObjectMovementClass;
133 fa679111 Leszek Koltunski
  private final int mColumn, mNumSizes;
134
135 9c2f0c91 Leszek Koltunski
  private static final ObjectList[] objects;
136 4888e97c Leszek Koltunski
  private static int mNumAll;
137 e07c48a2 Leszek Koltunski
  private static int[] mIndices;
138 fa679111 Leszek Koltunski
  private static int mColCount, mRowCount;
139 27a70eae Leszek Koltunski
140
  static
141
    {
142 4888e97c Leszek Koltunski
    mNumAll = 0;
143 8cccfb10 Leszek Koltunski
    int num, i = 0;
144 9c2f0c91 Leszek Koltunski
    objects = new ObjectList[NUM_OBJECTS];
145 8cccfb10 Leszek Koltunski
    int maxNum  = Integer.MIN_VALUE;
146
    int maxLevel= Integer.MIN_VALUE;
147
    int maxSize = Integer.MIN_VALUE;
148 27a70eae Leszek Koltunski
149 9c2f0c91 Leszek Koltunski
    for(ObjectList object: ObjectList.values())
150 27a70eae Leszek Koltunski
      {
151 4888e97c Leszek Koltunski
      objects[i] = object;
152 27a70eae Leszek Koltunski
      i++;
153 8cccfb10 Leszek Koltunski
      num = object.mObjectSizes.length;
154
      mNumAll += num;
155
      if( num> maxNum ) maxNum = num;
156 8e3898c8 Leszek Koltunski
157 8cccfb10 Leszek Koltunski
      for(int j=0; j<num; j++)
158 8e3898c8 Leszek Koltunski
        {
159
        if( object.mMaxLevels[j] > maxLevel ) maxLevel = object.mMaxLevels[j];
160 8cccfb10 Leszek Koltunski
        if( object.mObjectSizes[j] > maxSize) maxSize  = object.mObjectSizes[j];
161 8e3898c8 Leszek Koltunski
        }
162 27a70eae Leszek Koltunski
      }
163 4888e97c Leszek Koltunski
164 8cccfb10 Leszek Koltunski
    MAX_NUM_OBJECTS = maxNum;
165
    MAX_LEVEL       = maxLevel;
166
    MAX_OBJECT_SIZE = maxSize;
167 27a70eae Leszek Koltunski
    }
168
169 e07c48a2 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
170 fa679111 Leszek Koltunski
171
  private static void setUpColAndRow()
172
    {
173
    mIndices = new int[NUM_OBJECTS];
174
    mColCount= 0;
175
176
    for(int obj=0; obj<NUM_OBJECTS; obj++)
177
      {
178
      mIndices[obj] = objects[obj].mColumn;
179
      if( mIndices[obj]>=mColCount ) mColCount = mIndices[obj]+1;
180
      }
181
182
    mRowCount = 0;
183
184
    for(int col=0; col<mColCount; col++)
185
      {
186
      int numObjects = computeNumObjectsInColumn(col);
187
      if( numObjects>mRowCount ) mRowCount = numObjects;
188
      }
189
    }
190
191
///////////////////////////////////////////////////////////////////////////////////////////////////
192
193
  private static int computeNumObjectsInColumn(int column)
194
    {
195
    int num=0;
196
197
    for(int object=0; object<NUM_OBJECTS; object++)
198
      {
199
      if( objects[object].mColumn == column )
200
        {
201
        num += objects[object].mNumSizes;
202
        }
203
      }
204
205
    return num;
206
    }
207
208
///////////////////////////////////////////////////////////////////////////////////////////////////
209
210 e07c48a2 Leszek Koltunski
  public static int getColumnCount()
211
    {
212 fa679111 Leszek Koltunski
    if( mIndices==null ) setUpColAndRow();
213
214
    return mColCount;
215 e07c48a2 Leszek Koltunski
    }
216
217
///////////////////////////////////////////////////////////////////////////////////////////////////
218 fa679111 Leszek Koltunski
219 e07c48a2 Leszek Koltunski
  public static int getRowCount()
220
    {
221 fa679111 Leszek Koltunski
    if( mIndices==null ) setUpColAndRow();
222
223
    return mRowCount;
224 e07c48a2 Leszek Koltunski
    }
225
226
///////////////////////////////////////////////////////////////////////////////////////////////////
227 fa679111 Leszek Koltunski
228 e07c48a2 Leszek Koltunski
  public static int[] getIndices()
229
    {
230 fa679111 Leszek Koltunski
    if( mIndices==null ) setUpColAndRow();
231
232 e07c48a2 Leszek Koltunski
    return mIndices;
233
    }
234
235 27a70eae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
236
237 9c2f0c91 Leszek Koltunski
  public static ObjectList getObject(int ordinal)
238 27a70eae Leszek Koltunski
    {
239 7ec268b1 Leszek Koltunski
    return ordinal>=0 && ordinal<NUM_OBJECTS ? objects[ordinal] : CUBE;
240 27a70eae Leszek Koltunski
    }
241
242
///////////////////////////////////////////////////////////////////////////////////////////////////
243
244 b498f3f6 Leszek Koltunski
  public static int pack(int object, int sizeIndex)
245 4888e97c Leszek Koltunski
    {
246
    int ret = 0;
247
    for(int i=0; i<object; i++) ret += objects[i].mObjectSizes.length;
248
249 b498f3f6 Leszek Koltunski
    return ret+sizeIndex;
250 4888e97c Leszek Koltunski
    }
251
252
///////////////////////////////////////////////////////////////////////////////////////////////////
253
254 8e3898c8 Leszek Koltunski
  public static int unpackSizeIndex(int number)
255 4888e97c Leszek Koltunski
    {
256
    int num;
257
258
    for(int i=0; i<NUM_OBJECTS; i++)
259
      {
260
      num = objects[i].mObjectSizes.length;
261
      if( number<num ) return number;
262
      number -= num;
263
      }
264
265
    return -1;
266
    }
267
268
///////////////////////////////////////////////////////////////////////////////////////////////////
269
270
  public static int unpackObject(int number)
271 27a70eae Leszek Koltunski
    {
272 4888e97c Leszek Koltunski
    int num;
273
274
    for(int i=0; i<NUM_OBJECTS; i++)
275
      {
276
      num = objects[i].mObjectSizes.length;
277
      if( number<num ) return i;
278
      number -= num;
279
      }
280
281
    return -1;
282
    }
283
284 286d73ae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
285
286
  public static int unpackObjectFromString(String obj)
287
    {
288
    int u = obj.indexOf('_');
289
    int l = obj.length();
290
291
    if( u>0 )
292
      {
293
      String name = obj.substring(0,u);
294
      int size = Integer.parseInt( obj.substring(u+1,l) );
295
296
      for(int i=0; i<NUM_OBJECTS; i++)
297
        {
298
        if( objects[i].name().equals(name) )
299
          {
300 53f23b64 Leszek Koltunski
          int sizeIndex = getSizeIndex(i,size);
301
          return pack(i,sizeIndex);
302 286d73ae Leszek Koltunski
          }
303
        }
304
      }
305
306
    return -1;
307
    }
308
309
///////////////////////////////////////////////////////////////////////////////////////////////////
310
311
  public static String getObjectList()
312
    {
313
    String name;
314
    StringBuilder list = new StringBuilder();
315
    int len;
316
    int[] sizes;
317
318
    for(int i=0; i<NUM_OBJECTS; i++)
319
      {
320
      sizes = objects[i].mObjectSizes;
321
      len   = sizes.length;
322
      name  = objects[i].name();
323
324
      for(int j=0; j<len; j++)
325
        {
326
        if( i>0 || j>0 ) list.append(',');
327
        list.append(name);
328
        list.append('_');
329
        list.append(sizes[j]);
330
        }
331
      }
332
333
    return list.toString();
334
    }
335
336 4888e97c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
337
338
  public static int getTotal()
339
    {
340
    return mNumAll;
341
    }
342
343 8e3898c8 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
344
345
  public static int getMaxLevel(int ordinal, int sizeIndex)
346
    {
347
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
348
      {
349
      int num = objects[ordinal].mObjectSizes.length;
350
      return sizeIndex>=0 && sizeIndex<num ? objects[ordinal].mMaxLevels[sizeIndex] : 0;
351
      }
352
353
    return 0;
354
    }
355
356 c86f9f1f Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
357
358
  public static int getOrdinal(String name)
359
    {
360
    for(int i=0; i<NUM_OBJECTS; i++)
361
      {
362
      if(objects[i].name().equals(name)) return i;
363
      }
364
365
    return -1;
366
    }
367
368
///////////////////////////////////////////////////////////////////////////////////////////////////
369
370 53f23b64 Leszek Koltunski
  public static int getSizeIndex(int ordinal, int size)
371 c86f9f1f Leszek Koltunski
    {
372 7ec268b1 Leszek Koltunski
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
373 c86f9f1f Leszek Koltunski
      {
374 7ec268b1 Leszek Koltunski
      int[] sizes = objects[ordinal].getSizes();
375
      int len = sizes.length;
376
377
      for(int i=0; i<len; i++)
378
        {
379
        if( sizes[i]==size ) return i;
380
        }
381 c86f9f1f Leszek Koltunski
      }
382
383
    return -1;
384
    }
385
386 4888e97c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
387
388 9c2f0c91 Leszek Koltunski
  public static int[] retFaceColors(ObjectList object)
389 20931cf6 Leszek Koltunski
    {
390
    Field field;
391
    int[] faceColors=null;
392
393
    try
394
      {
395
      field = object.mObjectClass.getDeclaredField("FACE_COLORS");
396
      field.setAccessible(true);
397
      Object obj = field.get(null);
398
      faceColors = (int[]) obj;
399
      }
400
    catch(NoSuchFieldException ex)
401
      {
402
      android.util.Log.e("RubikObjectList", object.mObjectClass.getSimpleName()+": no such field exception getting field: "+ex.getMessage());
403
      }
404
    catch(IllegalAccessException ex)
405
      {
406
      android.util.Log.e("RubikObjectList", object.mObjectClass.getSimpleName()+": illegal access exception getting field: "+ex.getMessage());
407
      }
408
409
    return faceColors;
410
    }
411
412
///////////////////////////////////////////////////////////////////////////////////////////////////
413
414 9c2f0c91 Leszek Koltunski
  ObjectList(int[][] info, Class<? extends TwistyObject> object , Movement movement, int column)
415 4888e97c Leszek Koltunski
    {
416 fa679111 Leszek Koltunski
    mNumSizes = info.length;
417 ea6ee91b Leszek Koltunski
418 fa679111 Leszek Koltunski
    mObjectSizes  = new int[mNumSizes];
419
    mMaxLevels    = new int[mNumSizes];
420
    mResourceIDs  = new int[mNumSizes];
421
    mSmallIconIDs = new int[mNumSizes];
422
    mMediumIconIDs= new int[mNumSizes];
423
    mBigIconIDs   = new int[mNumSizes];
424
    mHugeIconIDs  = new int[mNumSizes];
425 ea6ee91b Leszek Koltunski
426 fa679111 Leszek Koltunski
    for(int i=0; i<mNumSizes; i++)
427 ea6ee91b Leszek Koltunski
      {
428 f6a9c538 Leszek Koltunski
      mObjectSizes[i]  = info[i][0];
429
      mMaxLevels[i]    = info[i][1];
430
      mResourceIDs[i]  = info[i][2];
431
      mSmallIconIDs[i] = info[i][3];
432
      mMediumIconIDs[i]= info[i][4];
433
      mBigIconIDs[i]   = info[i][5];
434 31a9f38d Leszek Koltunski
      mHugeIconIDs[i]  = info[i][6];
435 ea6ee91b Leszek Koltunski
      }
436
437 20931cf6 Leszek Koltunski
    mObjectClass         = object;
438 27a70eae Leszek Koltunski
    mObjectMovementClass = movement;
439 fa679111 Leszek Koltunski
    mColumn              = column;
440 27a70eae Leszek Koltunski
    }
441
442
///////////////////////////////////////////////////////////////////////////////////////////////////
443
444 8e3898c8 Leszek Koltunski
  public int[] getSizes()
445 27a70eae Leszek Koltunski
    {
446 8e3898c8 Leszek Koltunski
    return mObjectSizes;
447 27a70eae Leszek Koltunski
    }
448
449
///////////////////////////////////////////////////////////////////////////////////////////////////
450
451 8e3898c8 Leszek Koltunski
  public int[] getMaxLevels()
452 4888e97c Leszek Koltunski
    {
453 8e3898c8 Leszek Koltunski
    return mMaxLevels;
454
    }
455
456
///////////////////////////////////////////////////////////////////////////////////////////////////
457
458
  public int[] getIconIDs()
459
    {
460 f6a9c538 Leszek Koltunski
    int size = RubikActivity.getDrawableSize();
461
462
    switch(size)
463
      {
464
      case 0 : return mSmallIconIDs;
465
      case 1 : return mMediumIconIDs;
466 31a9f38d Leszek Koltunski
      case 2 : return mBigIconIDs;
467
      default: return mHugeIconIDs;
468 f6a9c538 Leszek Koltunski
      }
469 4888e97c Leszek Koltunski
    }
470
471
///////////////////////////////////////////////////////////////////////////////////////////////////
472
473 ccf9fec5 Leszek Koltunski
  public int[] getResourceIDs()
474
    {
475
    return mResourceIDs;
476
    }
477
478 fbca0033 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
479
480
  public int getNumVariants()
481
    {
482
    return mObjectSizes.length;
483
    }
484
485 ccf9fec5 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
486
487 9c2f0c91 Leszek Koltunski
  public TwistyObject create(int size, Static4D quat, int[][] moves, Resources res, int scrWidth)
488 27a70eae Leszek Koltunski
    {
489 5974d2ae Leszek Koltunski
    DistortedTexture texture = new DistortedTexture();
490 36273130 Leszek Koltunski
    DistortedEffects effects = new DistortedEffects();
491 fb52fae9 Leszek Koltunski
    MeshSquare mesh          = new MeshSquare(20,20);   // mesh of the node, not of the cubits
492 74686c71 Leszek Koltunski
493 4888e97c Leszek Koltunski
    switch(ordinal())
494
      {
495 ab0c28f0 Leszek Koltunski
      case 0: return new TwistyCube      (size, quat, texture, mesh, effects, moves, res, scrWidth);
496
      case 1: return new TwistyPyraminx  (size, quat, texture, mesh, effects, moves, res, scrWidth);
497
      case 2: return new TwistyDiamond   (size, quat, texture, mesh, effects, moves, res, scrWidth);
498
      case 3: return new TwistyDino6     (size, quat, texture, mesh, effects, moves, res, scrWidth);
499
      case 4: return new TwistyDino4     (size, quat, texture, mesh, effects, moves, res, scrWidth);
500 3f3ff476 Leszek Koltunski
      case 5: return new TwistyRedi      (size, quat, texture, mesh, effects, moves, res, scrWidth);
501
      case 6: return new TwistyHelicopter(size, quat, texture, mesh, effects, moves, res, scrWidth);
502
      case 7: return new TwistySkewb     (size, quat, texture, mesh, effects, moves, res, scrWidth);
503 49cd8581 Leszek Koltunski
      case 8: return new TwistyIvy       (size, quat, texture, mesh, effects, moves, res, scrWidth);
504 4888e97c Leszek Koltunski
      }
505
506
    return null;
507 27a70eae Leszek Koltunski
    }
508
509
///////////////////////////////////////////////////////////////////////////////////////////////////
510
511 ca3300c3 Leszek Koltunski
  public Movement getObjectMovementClass()
512 27a70eae Leszek Koltunski
    {
513 4888e97c Leszek Koltunski
    return mObjectMovementClass;
514 27a70eae Leszek Koltunski
    }
515
  }