v1.4.2: fixed rare race condition crashes with animation callbacks

This commit is contained in:
Evan Debenham
2022-10-24 17:52:23 -04:00
parent b98a40eb05
commit 39ac31f145
2 changed files with 8 additions and 11 deletions

View File

@@ -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;

View File

@@ -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() {