Project

General

Profile

« Previous | Next » 

Revision 882a8142

Added by Leszek Koltunski almost 2 years ago

Make ObjectSignature ready for any size bandaged cube.

View differences:

src/main/java/org/distorted/objectlib/json/JsonReader.java
139 139
      long signature1 = object.getLong("signature1");
140 140
      long signature2 = object.getLong("signature2");
141 141
      long signature3 = object.getLong("signature3");
142
      long[] signature= new long[] {signature1,signature2,signature3};
142 143

  
143 144
      switch( TwistyBandagedCuboid.getType(mShortName,mLongName) )
144 145
        {
145
        case 0: mSignature = new ObjectSignature(signature1,signature2,signature3); break;
146
        case 1: mSignature = new ObjectSignature(mShortName,signature1,signature2,signature3); break;
147
        case 2: mSignature = new ObjectSignature("333",signature1,signature2,signature3); break;
146
        case 0: mSignature = new ObjectSignature(signature); break;
147
        case 1: mSignature = new ObjectSignature(mShortName,signature); break;
148
        case 2: mSignature = new ObjectSignature("333",signature); break;
149
        }
150
      }
151
    catch(JSONException ex)
152
      {
153
      long signature = object.getLong("signature");
154
      mSignature = new ObjectSignature(signature);
155
      }
156
    }
157

  
158
///////////////////////////////////////////////////////////////////////////////////////////////////
159

  
160
  private void parseMetadata5(JSONObject object) throws JSONException
161
    {
162
    mLongName        = object.getString("longname");
163
    mShortName       = object.getString("shortname");
164
    mInventor        = object.getString("inventor");
165
    mYearOfInvention = object.getInt("year");
166
    mComplexity      = object.getInt("complexity");
167
    mSize            = (float)object.getDouble("size");
168
    mNumScrambles    = object.getInt("scrambles");
169
    mResetMaps       = object.getBoolean("resetmaps");
170
    mNumFaces        = object.getInt("num_faces");
171

  
172
    try
173
      {
174
      JSONArray sigArray = object.getJSONArray("signature");
175
      int size = sigArray.length();
176
      long[] signature = new long[size];
177
      for(int i=0; i<size; i++) signature[i] = sigArray.getLong(i);
178

  
179
      switch( TwistyBandagedCuboid.getType(mShortName,mLongName) )
180
        {
181
        case 0: mSignature = new ObjectSignature(signature); break;
182
        case 1: mSignature = new ObjectSignature(mShortName,signature); break;
183
        case 2: mSignature = new ObjectSignature("333",signature); break;
148 184
        }
149 185
      }
150 186
    catch(JSONException ex)
......
446 482

  
447 483
///////////////////////////////////////////////////////////////////////////////////////////////////
448 484

  
449
  private void parseAxis2or3or4(JSONArray object) throws JSONException
485
  private void parseAxis2or3or4or5(JSONArray object) throws JSONException
450 486
    {
451 487
    int numAxis = object.length();
452 488

  
......
652 688
    JSONObject mesh        = object.getJSONObject("mesh");
653 689
    parseMesh(mesh);
654 690
    JSONArray axis         = object.getJSONArray("axis");
655
    parseAxis2or3or4(axis);
691
    parseAxis2or3or4or5(axis);
692
    JSONArray quats        = object.getJSONArray("quats");
693
    parseQuats(quats);
694
    JSONObject scrambling  = object.getJSONObject("scrambling");
695
    parseScrambling(scrambling);
696
    JSONObject touchcontrol= object.getJSONObject("touchcontrol");
697
    parseTouchcontrol(touchcontrol);
698
    JSONArray colors       = object.getJSONArray("colors");
699
    parseColors(colors);
700
    JSONObject solved      = object.getJSONObject("solved");
701
    parseSolved(solved);
702
    }
703

  
704
///////////////////////////////////////////////////////////////////////////////////////////////////
705

  
706
  private void parseVersion5(JSONObject object) throws JSONException
707
    {
708
    JSONObject metadata    = object.getJSONObject("metadata");
709
    parseMetadata5(metadata);
710
    JSONObject mesh        = object.getJSONObject("mesh");
711
    parseMesh(mesh);
712
    JSONArray axis         = object.getJSONArray("axis");
713
    parseAxis2or3or4or5(axis);
656 714
    JSONArray quats        = object.getJSONArray("quats");
657 715
    parseQuats(quats);
658 716
    JSONObject scrambling  = object.getJSONObject("scrambling");
......
701 759
    parseMetadata2or3or4(metadata);
702 760
    }
703 761

  
762
///////////////////////////////////////////////////////////////////////////////////////////////////
763

  
764
  private void parseVersion5Metadata(JSONObject object) throws JSONException
765
    {
766
    JSONObject metadata = object.getJSONObject("metadata");
767
    parseMetadata5(metadata);
768
    }
769

  
704 770
///////////////////////////////////////////////////////////////////////////////////////////////////
705 771

  
706 772
  public void parseJsonFile(InputStream jsonStream) throws JSONException, IOException
......
724 790
      {
725 791
      parseVersion2or3or4(object);
726 792
      }
793
    else if( major==5 )
794
      {
795
      parseVersion5(object);
796
      }
727 797
    else
728 798
      {
729 799
      android.util.Log.e("readJsonFile", "Unknown version "+major);
......
753 823
      {
754 824
      parseVersion2or3or4Metadata(object);
755 825
      }
826
    else if( major==5 )
827
      {
828
      parseVersion5Metadata(object);
829
      }
756 830
    else
757 831
      {
758 832
      android.util.Log.e("readJsonFileQuick", "Unknown version "+major);

Also available in: Unified diff