v1.4.2: fixed rare race condition crashes with animation callbacks
This commit is contained in:
+7
-10
@@ -245,33 +245,30 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void attack( int cell ) {
|
public void attack( int cell ) {
|
||||||
turnTo( ch.pos, cell );
|
attack( cell, null );
|
||||||
play( attack );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void attack( int cell, Callback callback ) {
|
public synchronized void attack( int cell, Callback callback ) {
|
||||||
animCallback = callback;
|
animCallback = callback;
|
||||||
turnTo( ch.pos, cell );
|
turnTo( ch.pos, cell );
|
||||||
play( attack );
|
play( attack );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void operate( int cell ) {
|
public void operate( int cell ) {
|
||||||
turnTo( ch.pos, cell );
|
operate( cell, null );
|
||||||
play( operate );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void operate( int cell, Callback callback ) {
|
public synchronized void operate( int cell, Callback callback ) {
|
||||||
animCallback = callback;
|
animCallback = callback;
|
||||||
turnTo( ch.pos, cell );
|
turnTo( ch.pos, cell );
|
||||||
play( operate );
|
play( operate );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void zap( int cell ) {
|
public void zap( int cell ) {
|
||||||
turnTo( ch.pos, cell );
|
zap( cell, null );
|
||||||
play( zap );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void zap( int cell, Callback callback ) {
|
public synchronized void zap( int cell, Callback callback ) {
|
||||||
animCallback = callback;
|
animCallback = callback;
|
||||||
zap( cell );
|
zap( cell );
|
||||||
}
|
}
|
||||||
@@ -732,7 +729,7 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onComplete( Animation anim ) {
|
public synchronized void onComplete( Animation anim ) {
|
||||||
|
|
||||||
if (animCallback != null) {
|
if (animCallback != null) {
|
||||||
Callback executing = animCallback;
|
Callback executing = animCallback;
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ public class HeroSprite extends CharSprite {
|
|||||||
play( fly );
|
play( fly );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void read() {
|
public synchronized void read() {
|
||||||
animCallback = new Callback() {
|
animCallback = new Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void call() {
|
public void call() {
|
||||||
|
|||||||
Reference in New Issue
Block a user