Revision 20dea800
Added by Leszek Koltunski over 4 years ago
| src/main/java/org/distorted/effects/scramble/ScrambleEffect.java | ||
|---|---|---|
| 71 | 71 |
private long mDurationSingleTurn; |
| 72 | 72 |
private final Random mRnd; |
| 73 | 73 |
private int mBasicAngle; |
| 74 |
private boolean mRotReady, mPluginReady; |
|
| 74 | 75 |
|
| 75 | 76 |
TwistyObject mObject; |
| 76 | 77 |
Effect[] mNodeEffects; |
| ... | ... | |
| 119 | 120 |
mDurationSingleTurn = duration/(mNumScramblesLeft+mNumDoubleScramblesLeft); |
| 120 | 121 |
mNumScrambles = 0; |
| 121 | 122 |
|
| 123 |
mRotReady = false; |
|
| 124 |
mPluginReady = false; |
|
| 125 |
|
|
| 122 | 126 |
addNewScramble(); |
| 123 | 127 |
} |
| 124 | 128 |
|
| ... | ... | |
| 153 | 157 |
{
|
| 154 | 158 |
if( mEffectReturned == mCubeEffectNumber+mNodeEffectNumber ) |
| 155 | 159 |
{
|
| 156 |
mController.effectFinished(FAKE_EFFECT_ID); |
|
| 160 |
mRotReady = true; |
|
| 161 |
if( mPluginReady ) mController.effectFinished(FAKE_EFFECT_ID); |
|
| 157 | 162 |
} |
| 158 | 163 |
} |
| 159 | 164 |
} |
| ... | ... | |
| 226 | 231 |
addNewScramble(); |
| 227 | 232 |
} |
| 228 | 233 |
|
| 234 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 235 |
|
|
| 236 |
private void effectFinishedAction(final long effectID, final long id) |
|
| 237 |
{
|
|
| 238 |
mEffectReturned++; |
|
| 239 |
effectFinishedPlugin(effectID); |
|
| 240 |
|
|
| 241 |
if( mEffectReturned == mCubeEffectNumber+mNodeEffectNumber ) |
|
| 242 |
{
|
|
| 243 |
disassignEffects(); |
|
| 244 |
|
|
| 245 |
if( mNumScramblesLeft==0 ) |
|
| 246 |
{
|
|
| 247 |
mPluginReady = true; |
|
| 248 |
if( mRotReady ) mController.effectFinished(FAKE_EFFECT_ID); |
|
| 249 |
} |
|
| 250 |
} |
|
| 251 |
} |
|
| 252 |
|
|
| 229 | 253 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 230 | 254 |
|
| 231 | 255 |
public void effectFinished(final long effectID) |
| ... | ... | |
| 236 | 260 |
|
| 237 | 261 |
if( effectID == id ) |
| 238 | 262 |
{
|
| 239 |
mEffectReturned++; |
|
| 240 |
effectFinishedPlugin(effectID); |
|
| 241 |
|
|
| 242 |
if( mEffectReturned == mCubeEffectNumber+mNodeEffectNumber ) |
|
| 243 |
{
|
|
| 244 |
disassignEffects(); |
|
| 245 |
|
|
| 246 |
if( mNumScramblesLeft==0 ) |
|
| 247 |
{
|
|
| 248 |
mController.effectFinished(FAKE_EFFECT_ID); |
|
| 249 |
} |
|
| 250 |
} |
|
| 251 |
|
|
| 263 |
effectFinishedAction(effectID,id); |
|
| 252 | 264 |
return; |
| 253 | 265 |
} |
| 254 | 266 |
} |
| ... | ... | |
| 259 | 271 |
|
| 260 | 272 |
if( effectID == id ) |
| 261 | 273 |
{
|
| 262 |
mEffectReturned++; |
|
| 263 |
effectFinishedPlugin(effectID); |
|
| 264 |
|
|
| 265 |
if( mEffectReturned == mCubeEffectNumber+mNodeEffectNumber ) |
|
| 266 |
{
|
|
| 267 |
disassignEffects(); |
|
| 268 |
|
|
| 269 |
if( mNumScramblesLeft==0 ) |
|
| 270 |
{
|
|
| 271 |
mController.effectFinished(FAKE_EFFECT_ID); |
|
| 272 |
} |
|
| 273 |
} |
|
| 274 |
|
|
| 274 |
effectFinishedAction(effectID,id); |
|
| 275 | 275 |
return; |
| 276 | 276 |
} |
| 277 | 277 |
} |
Also available in: Unified diff
Fix the long-standing issue with the double 'READY' state which, as I now see, was causing some impossible records.