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