commit 43382be69c6c9504a017b7376b1d6bdd85b27305
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Dec 29 01:31:13 2022 +0100

    Fix marking objects as free.

diff --git a/src/main/java/org/distorted/objects/RubikObjectList.java b/src/main/java/org/distorted/objects/RubikObjectList.java
index a48f12cf..0cba2699 100644
--- a/src/main/java/org/distorted/objects/RubikObjectList.java
+++ b/src/main/java/org/distorted/objects/RubikObjectList.java
@@ -476,10 +476,7 @@ public class RubikObjectList
 
       if( object!=null && !object.isFree() && scores.isSolved(obj,LEVELS_SHOWN) )
         {
-        if( SHOW_IAP_DEBUG ) android.util.Log.e("D", "object "+object.getUpperName()+" marked as free");
-        object.markFree();
-        int price = object.getPrice();
-        scores.changeNumStars(-price);
+        markAsFree(object,scores);
         ret++;
         }
       }
@@ -499,15 +496,22 @@ public class RubikObjectList
 
       if( object!=null && !object.isFree() )
         {
-        if( SHOW_IAP_DEBUG ) android.util.Log.e("D", "object "+object.getUpperName()+" marked as free");
-        object.markFree();
-        int price = object.getPrice();
-        scores.changeNumStars(-price);
+        markAsFree(object,scores);
         numToBeMarked--;
         }
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private static void markAsFree(RubikObject object, RubikScores scores)
+    {
+    if( SHOW_IAP_DEBUG ) android.util.Log.e("D", "object "+object.getUpperName()+" marked as free");
+    object.markFree();
+    int price = object.getPrice();
+    scores.changeNumStars(-price);
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public static boolean setCurrObject(int ordinal)
