Project

General

Profile

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

magiccube / src / main / java / org / distorted / objectlib / ObjectList.java @ 588ace55

1
///////////////////////////////////////////////////////////////////////////////////////////////////
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
package org.distorted.objectlib;
21

    
22
import org.distorted.main.R;
23

    
24
///////////////////////////////////////////////////////////////////////////////////////////////////
25

    
26
/*
27
  CUBE_2 ( 0, 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} ),
28
  CUBE_3 ( 0, new int[] {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} ),
29
  CUBE_4 ( 0, new int[] {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} ),
30
  CUBE_5 ( 0, new int[] {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} ),
31
  JING_2 ( 1, 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} ),
32
  PYRA_3 ( 1, 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} ),
33
  PYRA_4 ( 1, new int[] {4 , 14, 17, R.raw.pyra4, R.drawable.ui_small_pyra4, R.drawable.ui_medium_pyra4, R.drawable.ui_big_pyra4, R.drawable.ui_huge_pyra4} ),
34
  PYRA_5 ( 1, new int[] {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} ),
35
  KILO_3 ( 2, 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} ),
36
  KILO_5 ( 2, new int[] {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} ),
37
  MEGA_3 ( 2, 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} ),
38
  MEGA_5 ( 2, new int[] {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} ),
39
  ULTI_2 ( 3, 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 } ),
40
  DIAM_2 ( 3, 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} ),
41
  DIAM_3 ( 3, new int[] {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} ),
42
  DIAM_4 ( 3, new int[] {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} ),
43
  DINO_3 ( 4, 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 } ),
44
  DIN4_3 ( 4, 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 } ),
45
  REDI_3 ( 4, 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 } ),
46
  HELI_3 ( 4, 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 } ),
47
  SKEW_2 ( 5, 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} ),
48
  SKEW_3 ( 5, new int[] {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} ),
49
  IVY_2  ( 5, 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  } ),
50
  REX_3  ( 5, 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  } ),
51
  BAN1_3 ( 6, 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 } ),
52
  BAN2_3 ( 6, 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 } ),
53
  BAN3_3 ( 6, 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 } ),
54
  BAN4_3 ( 6, 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 } ),
55
  SQU1_3 ( 7, 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} ),
56
  SQU2_3 ( 7, 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} ),
57
  MIRR_2 ( 7, 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} ),
58
  MIRR_3 ( 7, new int[] {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} ),
59
  ;
60
*/
61

    
62
public enum ObjectList
63
  {
64
  ///////////////////// Size // DB Level // NumScrambles // Mesh // small icon // medium icon // big icon // huge icon
65

    
66
  CUBE (
67
         new int[][] {
68
                       {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} ,
69
                       {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} ,
70
                       {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} ,
71
                       {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}
72
                     },
73
         0
74
       ),
75

    
76
  JING (
77
         new int[][] {
78
                       {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} ,
79
                     },
80
         1
81
       ),
82

    
83
  PYRA (
84
         new int[][] {
85
                       {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} ,
86
                       {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} ,
87
                       {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}
88
                     },
89
         1
90
       ),
91

    
92
  KILO (
93
         new int[][] {
94
                       {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} ,
95
                       {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} ,
96
                     },
97
         2
98
       ),
99

    
100
  MEGA (
101
         new int[][] {
102
                       {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} ,
103
                       {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} ,
104
                     },
105
         2
106
       ),
107

    
108
  ULTI (
109
         new int[][] {
110
                       {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} ,
111
                     },
112
         3
113
       ),
114

    
115
  DIAM (
116
         new int[][] {
117
                       {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} ,
118
                       {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} ,
119
                       {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} ,
120
                     },
121
         3
122
       ),
123

    
124
  DINO (
125
         new int[][] {
126
                       {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} ,
127
                     },
128
         4
129
       ),
130

    
131
  DIN4 (
132
         new int[][] {
133
                       {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} ,
134
                     },
135
         4
136
       ),
137

    
138
  REDI (
139
         new int[][] {
140
                       {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} ,
141
                     },
142
         4
143
       ),
144

    
145
  HELI (
146
         new int[][] {
147
                       {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} ,
148
                     },
149
         4
150
       ),
151

    
152
  SKEW (
153
         new int[][] {
154
                       {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} ,
155
                       {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} ,
156
                     },
157
         5
158
       ),
159

    
160
  IVY  (
161
         new int[][] {
162
                       {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} ,
163
                     },
164
         5
165
       ),
166

    
167
  REX  (
168
         new int[][] {
169
                       {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} ,
170
                     },
171
         5
172
       ),
173

    
174
  BAN1 (
175
         new int[][] {
176
                       {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} ,
177
                     },
178
         6
179
       ),
180

    
181
  BAN2 (
182
         new int[][] {
183
                       {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} ,
184
                     },
185
         6
186
       ),
187

    
188
  BAN3 (
189
         new int[][] {
190
                       {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} ,
191
                     },
192
         6
193
       ),
194

    
195
  BAN4 (
196
         new int[][] {
197
                       {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} ,
198
                     },
199
         6
200
       ),
201

    
202
  SQU1 (
203
         new int[][] {
204
                       {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} ,
205
                     },
206
         7
207
       ),
208

    
209
  SQU2 (
210
         new int[][] {
211
                       {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} ,
212
                     },
213
         7
214
       ),
215

    
216
  MIRR (
217
         new int[][] {
218
                       {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} ,
219
                       {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} ,
220
                     },
221
         7
222
       ),
223
  ;
224

    
225
  public static final int NUM_OBJECTS = values().length;
226
  public static final int MAX_NUM_OBJECTS;
227
  public static final int MAX_LEVEL;
228
  public static final int MAX_SCRAMBLE;
229
  public static final int MAX_OBJECT_SIZE;
230

    
231
  private final int[] mObjectSizes, mDBLevels, mNumScrambles, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs, mResourceIDs;
232
  private final int mRow, mNumSizes;
233

    
234
  private static final ObjectList[] objects;
235
  private static int mNumAll;
236
  private static int[] mIndices;
237
  private static int mColCount, mRowCount;
238

    
239
  static
240
    {
241
    mNumAll = 0;
242
    int num, i = 0;
243
    objects = new ObjectList[NUM_OBJECTS];
244
    int maxNum     = Integer.MIN_VALUE;
245
    int maxLevel   = Integer.MIN_VALUE;
246
    int maxScramble= Integer.MIN_VALUE;
247
    int maxSize    = Integer.MIN_VALUE;
248

    
249
    for(ObjectList object: ObjectList.values())
250
      {
251
      objects[i] = object;
252
      i++;
253
      num = object.mObjectSizes.length;
254
      mNumAll += num;
255
      if( num> maxNum ) maxNum = num;
256

    
257
      for(int j=0; j<num; j++)
258
        {
259
        if( object.mNumScrambles[j]> maxScramble ) maxScramble= object.mNumScrambles[j];
260
        if( object.mDBLevels[j]    > maxLevel    ) maxLevel   = object.mDBLevels[j];
261
        if( object.mObjectSizes[j] > maxSize     ) maxSize    = object.mObjectSizes[j];
262
        }
263
      }
264

    
265
    MAX_NUM_OBJECTS = maxNum;
266
    MAX_LEVEL       = maxLevel;
267
    MAX_SCRAMBLE    = maxScramble;
268
    MAX_OBJECT_SIZE = maxSize;
269
    }
270

    
271
///////////////////////////////////////////////////////////////////////////////////////////////////
272

    
273
  private static void setUpColAndRow()
274
    {
275
    mIndices = new int[NUM_OBJECTS];
276
    mRowCount= 0;
277

    
278
    for(int obj=0; obj<NUM_OBJECTS; obj++)
279
      {
280
      mIndices[obj] = objects[obj].mRow;
281
      if( mIndices[obj]>=mRowCount ) mRowCount = mIndices[obj]+1;
282
      }
283

    
284
    mColCount = 0;
285

    
286
    for(int row=0; row<mRowCount; row++)
287
      {
288
      int numObjects = computeNumObjectsInRow(row);
289
      if( numObjects>mColCount ) mColCount = numObjects;
290
      }
291
    }
292

    
293
///////////////////////////////////////////////////////////////////////////////////////////////////
294

    
295
  private static int computeNumObjectsInRow(int row)
296
    {
297
    int num=0;
298

    
299
    for(int object=0; object<NUM_OBJECTS; object++)
300
      {
301
      if( objects[object].mRow == row )
302
        {
303
        num += objects[object].mNumSizes;
304
        }
305
      }
306

    
307
    return num;
308
    }
309

    
310
///////////////////////////////////////////////////////////////////////////////////////////////////
311

    
312
  public static int getColumnCount()
313
    {
314
    if( mIndices==null ) setUpColAndRow();
315

    
316
    return mColCount;
317
    }
318

    
319
///////////////////////////////////////////////////////////////////////////////////////////////////
320

    
321
  public static int getRowCount()
322
    {
323
    if( mIndices==null ) setUpColAndRow();
324

    
325
    return mRowCount;
326
    }
327

    
328
///////////////////////////////////////////////////////////////////////////////////////////////////
329

    
330
  public static int[] getIndices()
331
    {
332
    if( mIndices==null ) setUpColAndRow();
333

    
334
    return mIndices;
335
    }
336

    
337
///////////////////////////////////////////////////////////////////////////////////////////////////
338

    
339
  public static ObjectList getObject(int ordinal)
340
    {
341
    return ordinal>=0 && ordinal<NUM_OBJECTS ? objects[ordinal] : CUBE;
342
    }
343

    
344
///////////////////////////////////////////////////////////////////////////////////////////////////
345

    
346
  public static int pack(int object, int sizeIndex)
347
    {
348
    int ret = 0;
349
    for(int i=0; i<object; i++) ret += objects[i].mObjectSizes.length;
350

    
351
    return ret+sizeIndex;
352
    }
353

    
354
///////////////////////////////////////////////////////////////////////////////////////////////////
355

    
356
  public static int unpackSizeIndex(int number)
357
    {
358
    int num;
359

    
360
    for(int i=0; i<NUM_OBJECTS; i++)
361
      {
362
      num = objects[i].mObjectSizes.length;
363
      if( number<num ) return number;
364
      number -= num;
365
      }
366

    
367
    return -1;
368
    }
369

    
370
///////////////////////////////////////////////////////////////////////////////////////////////////
371

    
372
  public static int unpackObject(int number)
373
    {
374
    int num;
375

    
376
    for(int i=0; i<NUM_OBJECTS; i++)
377
      {
378
      num = objects[i].mObjectSizes.length;
379
      if( number<num ) return i;
380
      number -= num;
381
      }
382

    
383
    return -1;
384
    }
385

    
386
///////////////////////////////////////////////////////////////////////////////////////////////////
387

    
388
  public static int unpackObjectFromString(String obj)
389
    {
390
    int u = obj.indexOf('_');
391
    int l = obj.length();
392

    
393
    if( u>0 )
394
      {
395
      String name = obj.substring(0,u);
396
      int size = Integer.parseInt( obj.substring(u+1,l) );
397

    
398
      for(int i=0; i<NUM_OBJECTS; i++)
399
        {
400
        if( objects[i].name().equals(name) )
401
          {
402
          int sizeIndex = getSizeIndex(i,size);
403
          return pack(i,sizeIndex);
404
          }
405
        }
406
      }
407

    
408
    return -1;
409
    }
410

    
411
///////////////////////////////////////////////////////////////////////////////////////////////////
412

    
413
  public static String getObjectList()
414
    {
415
    String name;
416
    StringBuilder list = new StringBuilder();
417
    int len;
418
    int[] sizes;
419

    
420
    for(int i=0; i<NUM_OBJECTS; i++)
421
      {
422
      sizes = objects[i].mObjectSizes;
423
      len   = sizes.length;
424
      name  = objects[i].name();
425

    
426
      for(int j=0; j<len; j++)
427
        {
428
        if( i>0 || j>0 ) list.append(',');
429
        list.append(name);
430
        list.append('_');
431
        list.append(sizes[j]);
432
        }
433
      }
434

    
435
    return list.toString();
436
    }
437

    
438
///////////////////////////////////////////////////////////////////////////////////////////////////
439

    
440
  public static int getTotal()
441
    {
442
    return mNumAll;
443
    }
444

    
445
///////////////////////////////////////////////////////////////////////////////////////////////////
446

    
447
  public static int getDBLevel(int ordinal, int sizeIndex)
448
    {
449
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
450
      {
451
      int num = objects[ordinal].mObjectSizes.length;
452
      return sizeIndex>=0 && sizeIndex<num ? objects[ordinal].mDBLevels[sizeIndex] : 0;
453
      }
454

    
455
    return 0;
456
    }
457

    
458
///////////////////////////////////////////////////////////////////////////////////////////////////
459

    
460
  public static int getNumScramble(int ordinal, int sizeIndex)
461
    {
462
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
463
      {
464
      int num = objects[ordinal].mObjectSizes.length;
465
      return sizeIndex>=0 && sizeIndex<num ? objects[ordinal].mNumScrambles[sizeIndex] : 0;
466
      }
467

    
468
    return 0;
469
    }
470

    
471
///////////////////////////////////////////////////////////////////////////////////////////////////
472

    
473
  public static int getOrdinal(String name)
474
    {
475
    for(int i=0; i<NUM_OBJECTS; i++)
476
      {
477
      if(objects[i].name().equals(name)) return i;
478
      }
479

    
480
    return -1;
481
    }
482

    
483
///////////////////////////////////////////////////////////////////////////////////////////////////
484

    
485
  public static int getSizeIndex(int ordinal, int size)
486
    {
487
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
488
      {
489
      int[] sizes = objects[ordinal].getSizes();
490
      int len = sizes.length;
491

    
492
      for(int i=0; i<len; i++)
493
        {
494
        if( sizes[i]==size ) return i;
495
        }
496
      }
497

    
498
    return -1;
499
    }
500

    
501
///////////////////////////////////////////////////////////////////////////////////////////////////
502

    
503
  ObjectList(int[][] info, int row)
504
    {
505
    mNumSizes = info.length;
506

    
507
    mObjectSizes  = new int[mNumSizes];
508
    mDBLevels     = new int[mNumSizes];
509
    mNumScrambles = new int[mNumSizes];
510
    mResourceIDs  = new int[mNumSizes];
511
    mSmallIconIDs = new int[mNumSizes];
512
    mMediumIconIDs= new int[mNumSizes];
513
    mBigIconIDs   = new int[mNumSizes];
514
    mHugeIconIDs  = new int[mNumSizes];
515

    
516
    for(int i=0; i<mNumSizes; i++)
517
      {
518
      mObjectSizes[i]  = info[i][0];
519
      mDBLevels[i]     = info[i][1];
520
      mNumScrambles[i] = info[i][2];
521
      mResourceIDs[i]  = info[i][3];
522
      mSmallIconIDs[i] = info[i][4];
523
      mMediumIconIDs[i]= info[i][5];
524
      mBigIconIDs[i]   = info[i][6];
525
      mHugeIconIDs[i]  = info[i][7];
526
      }
527

    
528
    mRow  = row;
529
    }
530

    
531
///////////////////////////////////////////////////////////////////////////////////////////////////
532

    
533
  public int[] getSizes()
534
    {
535
    return mObjectSizes;
536
    }
537

    
538
///////////////////////////////////////////////////////////////////////////////////////////////////
539

    
540
  public int[] getIconIDs(int size)
541
    {
542
    switch(size)
543
      {
544
      case 0: return mSmallIconIDs;
545
      case 1: return mMediumIconIDs;
546
      case 2: return mBigIconIDs;
547
      case 3: return mHugeIconIDs;
548
      }
549

    
550
    return mSmallIconIDs;
551
    }
552

    
553
///////////////////////////////////////////////////////////////////////////////////////////////////
554

    
555
  public int[] getResourceIDs()
556
    {
557
    return mResourceIDs;
558
    }
559
  }
(9-9/21)