Project

General

Profile

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

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

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 588ace55 Leszek Koltunski
package org.distorted.objectlib;
21
22 1f9772f3 Leszek Koltunski
import org.distorted.main.R;
23 27a70eae Leszek Koltunski
24
///////////////////////////////////////////////////////////////////////////////////////////////////
25
26 e01c0d02 Leszek Koltunski
/*
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 9c2f0c91 Leszek Koltunski
public enum ObjectList
63 27a70eae Leszek Koltunski
  {
64 0a7aa15b Leszek Koltunski
  ///////////////////// Size // DB Level // NumScrambles // Mesh // small icon // medium icon // big icon // huge icon
65
66 4c0cd600 Leszek Koltunski
  CUBE (
67
         new int[][] {
68 0a7aa15b Leszek Koltunski
                       {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 4c0cd600 Leszek Koltunski
                     },
73 96208efc Leszek Koltunski
         0
74 4c0cd600 Leszek Koltunski
       ),
75
76 df9739f8 Leszek Koltunski
  JING (
77 4c0cd600 Leszek Koltunski
         new int[][] {
78 d5ca9927 Leszek Koltunski
                       {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 4c0cd600 Leszek Koltunski
                     },
80 96208efc Leszek Koltunski
         1
81 4c0cd600 Leszek Koltunski
       ),
82 418aa554 Leszek Koltunski
83 df9739f8 Leszek Koltunski
  PYRA (
84 ece1b58d Leszek Koltunski
         new int[][] {
85 df9739f8 Leszek Koltunski
                       {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 ece1b58d Leszek Koltunski
                     },
89 96208efc Leszek Koltunski
         1
90 ece1b58d Leszek Koltunski
       ),
91
92 a207be5b Leszek Koltunski
  KILO (
93
         new int[][] {
94 0a7aa15b Leszek Koltunski
                       {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 a207be5b Leszek Koltunski
                     },
97 96208efc Leszek Koltunski
         2
98 a207be5b Leszek Koltunski
       ),
99
100
  MEGA (
101
         new int[][] {
102 0a7aa15b Leszek Koltunski
                       {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 a207be5b Leszek Koltunski
                     },
105 96208efc Leszek Koltunski
         2
106 a207be5b Leszek Koltunski
       ),
107
108 8de56b9d Leszek Koltunski
  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 96208efc Leszek Koltunski
         3
113 8de56b9d Leszek Koltunski
       ),
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 4de711ba Leszek Koltunski
                       {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 8de56b9d Leszek Koltunski
                     },
121 96208efc Leszek Koltunski
         3
122 8de56b9d Leszek Koltunski
       ),
123
124 418aa554 Leszek Koltunski
  DINO (
125
         new int[][] {
126 0a7aa15b Leszek Koltunski
                       {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 418aa554 Leszek Koltunski
                     },
128 96208efc Leszek Koltunski
         4
129 eaee1ddc Leszek Koltunski
       ),
130
131
  DIN4 (
132
         new int[][] {
133 0a7aa15b Leszek Koltunski
                       {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 eaee1ddc Leszek Koltunski
                     },
135 96208efc Leszek Koltunski
         4
136 418aa554 Leszek Koltunski
       ),
137 fb52fae9 Leszek Koltunski
138 b96a79ff Leszek Koltunski
  REDI (
139 ee35e63c Leszek Koltunski
         new int[][] {
140 0a7aa15b Leszek Koltunski
                       {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 ee35e63c Leszek Koltunski
                     },
142 96208efc Leszek Koltunski
         4
143 ee35e63c Leszek Koltunski
       ),
144 68f6046c Leszek Koltunski
145 b96a79ff Leszek Koltunski
  HELI (
146 68f6046c Leszek Koltunski
         new int[][] {
147 0a7aa15b Leszek Koltunski
                       {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 68f6046c Leszek Koltunski
                     },
149 96208efc Leszek Koltunski
         4
150 3f3ff476 Leszek Koltunski
       ),
151
152
  SKEW (
153
         new int[][] {
154 e01c0d02 Leszek Koltunski
                       {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 3f3ff476 Leszek Koltunski
                     },
157 96208efc Leszek Koltunski
         5
158 68f6046c Leszek Koltunski
       ),
159 49cd8581 Leszek Koltunski
160 bbc6da6c Leszek Koltunski
  IVY  (
161 49cd8581 Leszek Koltunski
         new int[][] {
162 46e6b3f6 Leszek Koltunski
                       {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 49cd8581 Leszek Koltunski
                     },
164 96208efc Leszek Koltunski
         5
165 49cd8581 Leszek Koltunski
       ),
166 59b87d56 Leszek Koltunski
167 bbc6da6c Leszek Koltunski
  REX  (
168 59b87d56 Leszek Koltunski
         new int[][] {
169 0a7aa15b Leszek Koltunski
                       {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 59b87d56 Leszek Koltunski
                     },
171 96208efc Leszek Koltunski
         5
172 bbc6da6c Leszek Koltunski
       ),
173 4c0a6d97 Leszek Koltunski
174
  BAN1 (
175
         new int[][] {
176 0a7aa15b Leszek Koltunski
                       {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 4c0a6d97 Leszek Koltunski
                     },
178 96208efc Leszek Koltunski
         6
179 4c0a6d97 Leszek Koltunski
       ),
180 538ee7a6 Leszek Koltunski
181
  BAN2 (
182
         new int[][] {
183 0a7aa15b Leszek Koltunski
                       {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 538ee7a6 Leszek Koltunski
                     },
185 96208efc Leszek Koltunski
         6
186 538ee7a6 Leszek Koltunski
       ),
187
188
  BAN3 (
189
         new int[][] {
190 0a7aa15b Leszek Koltunski
                       {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 538ee7a6 Leszek Koltunski
                     },
192 96208efc Leszek Koltunski
         6
193 538ee7a6 Leszek Koltunski
       ),
194
195
  BAN4 (
196
         new int[][] {
197 0a7aa15b Leszek Koltunski
                       {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 538ee7a6 Leszek Koltunski
                     },
199 96208efc Leszek Koltunski
         6
200 bc649d9a Leszek Koltunski
       ),
201 834b2618 Leszek Koltunski
202
  SQU1 (
203
         new int[][] {
204 e01c0d02 Leszek Koltunski
                       {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 834b2618 Leszek Koltunski
                     },
206 96208efc Leszek Koltunski
         7
207 834b2618 Leszek Koltunski
       ),
208 e2b9e87e Leszek Koltunski
209
  SQU2 (
210
         new int[][] {
211 e01c0d02 Leszek Koltunski
                       {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 e2b9e87e Leszek Koltunski
                     },
213 96208efc Leszek Koltunski
         7
214 e2b9e87e Leszek Koltunski
       ),
215 df9739f8 Leszek Koltunski
216 abf36986 Leszek Koltunski
  MIRR (
217
         new int[][] {
218 0e505360 Leszek Koltunski
                       {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 abf36986 Leszek Koltunski
                     },
221 96208efc Leszek Koltunski
         7
222 abf36986 Leszek Koltunski
       ),
223 27a70eae Leszek Koltunski
  ;
224
225 4888e97c Leszek Koltunski
  public static final int NUM_OBJECTS = values().length;
226 8cccfb10 Leszek Koltunski
  public static final int MAX_NUM_OBJECTS;
227 8e3898c8 Leszek Koltunski
  public static final int MAX_LEVEL;
228 0a7aa15b Leszek Koltunski
  public static final int MAX_SCRAMBLE;
229 8cccfb10 Leszek Koltunski
  public static final int MAX_OBJECT_SIZE;
230 4888e97c Leszek Koltunski
231 0a7aa15b Leszek Koltunski
  private final int[] mObjectSizes, mDBLevels, mNumScrambles, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs, mResourceIDs;
232 0501a4b8 Leszek Koltunski
  private final int mRow, mNumSizes;
233 fa679111 Leszek Koltunski
234 9c2f0c91 Leszek Koltunski
  private static final ObjectList[] objects;
235 4888e97c Leszek Koltunski
  private static int mNumAll;
236 e07c48a2 Leszek Koltunski
  private static int[] mIndices;
237 fa679111 Leszek Koltunski
  private static int mColCount, mRowCount;
238 27a70eae Leszek Koltunski
239
  static
240
    {
241 4888e97c Leszek Koltunski
    mNumAll = 0;
242 8cccfb10 Leszek Koltunski
    int num, i = 0;
243 9c2f0c91 Leszek Koltunski
    objects = new ObjectList[NUM_OBJECTS];
244 0a7aa15b Leszek Koltunski
    int maxNum     = Integer.MIN_VALUE;
245
    int maxLevel   = Integer.MIN_VALUE;
246
    int maxScramble= Integer.MIN_VALUE;
247
    int maxSize    = Integer.MIN_VALUE;
248 27a70eae Leszek Koltunski
249 9c2f0c91 Leszek Koltunski
    for(ObjectList object: ObjectList.values())
250 27a70eae Leszek Koltunski
      {
251 4888e97c Leszek Koltunski
      objects[i] = object;
252 27a70eae Leszek Koltunski
      i++;
253 8cccfb10 Leszek Koltunski
      num = object.mObjectSizes.length;
254
      mNumAll += num;
255
      if( num> maxNum ) maxNum = num;
256 8e3898c8 Leszek Koltunski
257 8cccfb10 Leszek Koltunski
      for(int j=0; j<num; j++)
258 8e3898c8 Leszek Koltunski
        {
259 0a7aa15b Leszek Koltunski
        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 8e3898c8 Leszek Koltunski
        }
263 27a70eae Leszek Koltunski
      }
264 4888e97c Leszek Koltunski
265 8cccfb10 Leszek Koltunski
    MAX_NUM_OBJECTS = maxNum;
266
    MAX_LEVEL       = maxLevel;
267 0a7aa15b Leszek Koltunski
    MAX_SCRAMBLE    = maxScramble;
268 8cccfb10 Leszek Koltunski
    MAX_OBJECT_SIZE = maxSize;
269 27a70eae Leszek Koltunski
    }
270
271 e07c48a2 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
272 fa679111 Leszek Koltunski
273
  private static void setUpColAndRow()
274
    {
275
    mIndices = new int[NUM_OBJECTS];
276 0501a4b8 Leszek Koltunski
    mRowCount= 0;
277 fa679111 Leszek Koltunski
278
    for(int obj=0; obj<NUM_OBJECTS; obj++)
279
      {
280 0501a4b8 Leszek Koltunski
      mIndices[obj] = objects[obj].mRow;
281
      if( mIndices[obj]>=mRowCount ) mRowCount = mIndices[obj]+1;
282 fa679111 Leszek Koltunski
      }
283
284 0501a4b8 Leszek Koltunski
    mColCount = 0;
285 fa679111 Leszek Koltunski
286 0501a4b8 Leszek Koltunski
    for(int row=0; row<mRowCount; row++)
287 fa679111 Leszek Koltunski
      {
288 0501a4b8 Leszek Koltunski
      int numObjects = computeNumObjectsInRow(row);
289
      if( numObjects>mColCount ) mColCount = numObjects;
290 fa679111 Leszek Koltunski
      }
291
    }
292
293
///////////////////////////////////////////////////////////////////////////////////////////////////
294
295 0501a4b8 Leszek Koltunski
  private static int computeNumObjectsInRow(int row)
296 fa679111 Leszek Koltunski
    {
297
    int num=0;
298
299
    for(int object=0; object<NUM_OBJECTS; object++)
300
      {
301 0501a4b8 Leszek Koltunski
      if( objects[object].mRow == row )
302 fa679111 Leszek Koltunski
        {
303
        num += objects[object].mNumSizes;
304
        }
305
      }
306
307
    return num;
308
    }
309
310
///////////////////////////////////////////////////////////////////////////////////////////////////
311
312 e07c48a2 Leszek Koltunski
  public static int getColumnCount()
313
    {
314 fa679111 Leszek Koltunski
    if( mIndices==null ) setUpColAndRow();
315
316
    return mColCount;
317 e07c48a2 Leszek Koltunski
    }
318
319
///////////////////////////////////////////////////////////////////////////////////////////////////
320 fa679111 Leszek Koltunski
321 e07c48a2 Leszek Koltunski
  public static int getRowCount()
322
    {
323 fa679111 Leszek Koltunski
    if( mIndices==null ) setUpColAndRow();
324
325
    return mRowCount;
326 e07c48a2 Leszek Koltunski
    }
327
328
///////////////////////////////////////////////////////////////////////////////////////////////////
329 fa679111 Leszek Koltunski
330 e07c48a2 Leszek Koltunski
  public static int[] getIndices()
331
    {
332 fa679111 Leszek Koltunski
    if( mIndices==null ) setUpColAndRow();
333
334 e07c48a2 Leszek Koltunski
    return mIndices;
335
    }
336
337 27a70eae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
338
339 9c2f0c91 Leszek Koltunski
  public static ObjectList getObject(int ordinal)
340 27a70eae Leszek Koltunski
    {
341 7ec268b1 Leszek Koltunski
    return ordinal>=0 && ordinal<NUM_OBJECTS ? objects[ordinal] : CUBE;
342 27a70eae Leszek Koltunski
    }
343
344
///////////////////////////////////////////////////////////////////////////////////////////////////
345
346 b498f3f6 Leszek Koltunski
  public static int pack(int object, int sizeIndex)
347 4888e97c Leszek Koltunski
    {
348
    int ret = 0;
349
    for(int i=0; i<object; i++) ret += objects[i].mObjectSizes.length;
350
351 b498f3f6 Leszek Koltunski
    return ret+sizeIndex;
352 4888e97c Leszek Koltunski
    }
353
354
///////////////////////////////////////////////////////////////////////////////////////////////////
355
356 8e3898c8 Leszek Koltunski
  public static int unpackSizeIndex(int number)
357 4888e97c Leszek Koltunski
    {
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 27a70eae Leszek Koltunski
    {
374 4888e97c Leszek Koltunski
    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 286d73ae Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
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 53f23b64 Leszek Koltunski
          int sizeIndex = getSizeIndex(i,size);
403
          return pack(i,sizeIndex);
404 286d73ae Leszek Koltunski
          }
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 4888e97c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
439
440
  public static int getTotal()
441
    {
442
    return mNumAll;
443
    }
444
445 8e3898c8 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
446
447 0a7aa15b Leszek Koltunski
  public static int getDBLevel(int ordinal, int sizeIndex)
448 8e3898c8 Leszek Koltunski
    {
449
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
450
      {
451
      int num = objects[ordinal].mObjectSizes.length;
452 0a7aa15b Leszek Koltunski
      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 8e3898c8 Leszek Koltunski
      }
467
468
    return 0;
469
    }
470
471 c86f9f1f Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
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 53f23b64 Leszek Koltunski
  public static int getSizeIndex(int ordinal, int size)
486 c86f9f1f Leszek Koltunski
    {
487 7ec268b1 Leszek Koltunski
    if( ordinal>=0 && ordinal<NUM_OBJECTS )
488 c86f9f1f Leszek Koltunski
      {
489 7ec268b1 Leszek Koltunski
      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 c86f9f1f Leszek Koltunski
      }
497
498
    return -1;
499
    }
500
501 4888e97c Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
502
503 4ab3d91b Leszek Koltunski
  ObjectList(int[][] info, int row)
504 4888e97c Leszek Koltunski
    {
505 fa679111 Leszek Koltunski
    mNumSizes = info.length;
506 ea6ee91b Leszek Koltunski
507 fa679111 Leszek Koltunski
    mObjectSizes  = new int[mNumSizes];
508 0a7aa15b Leszek Koltunski
    mDBLevels     = new int[mNumSizes];
509
    mNumScrambles = new int[mNumSizes];
510 fa679111 Leszek Koltunski
    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 ea6ee91b Leszek Koltunski
516 fa679111 Leszek Koltunski
    for(int i=0; i<mNumSizes; i++)
517 ea6ee91b Leszek Koltunski
      {
518 f6a9c538 Leszek Koltunski
      mObjectSizes[i]  = info[i][0];
519 0a7aa15b Leszek Koltunski
      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 ea6ee91b Leszek Koltunski
      }
527
528 4ab3d91b Leszek Koltunski
    mRow  = row;
529 27a70eae Leszek Koltunski
    }
530
531
///////////////////////////////////////////////////////////////////////////////////////////////////
532
533 8e3898c8 Leszek Koltunski
  public int[] getSizes()
534 27a70eae Leszek Koltunski
    {
535 8e3898c8 Leszek Koltunski
    return mObjectSizes;
536 27a70eae Leszek Koltunski
    }
537
538 8e3898c8 Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
539
540 588ace55 Leszek Koltunski
  public int[] getIconIDs(int size)
541 8e3898c8 Leszek Koltunski
    {
542 f6a9c538 Leszek Koltunski
    switch(size)
543
      {
544 588ace55 Leszek Koltunski
      case 0: return mSmallIconIDs;
545
      case 1: return mMediumIconIDs;
546
      case 2: return mBigIconIDs;
547
      case 3: return mHugeIconIDs;
548 f6a9c538 Leszek Koltunski
      }
549 588ace55 Leszek Koltunski
550
    return mSmallIconIDs;
551 4888e97c Leszek Koltunski
    }
552
553
///////////////////////////////////////////////////////////////////////////////////////////////////
554
555 ccf9fec5 Leszek Koltunski
  public int[] getResourceIDs()
556
    {
557
    return mResourceIDs;
558
    }
559 27a70eae Leszek Koltunski
  }