v3.3.6: added a sync check to actor processing while iterating all

This commit is contained in:
Evan Debenham
2026-02-10 13:35:34 -05:00
parent 7927af9910
commit d1d2d7d268

View File

@@ -252,15 +252,17 @@ public abstract class Actor implements Bundlable {
if (!interrupted && !Game.switchingScene()) { if (!interrupted && !Game.switchingScene()) {
float earliest = Float.MAX_VALUE; float earliest = Float.MAX_VALUE;
for (Actor actor : all) { synchronized (Actor.class) {
for (Actor actor : all) {
//some actors will always go before others if time is equal.
if (actor.time < earliest || //some actors will always go before others if time is equal.
actor.time == earliest && (current == null || actor.actPriority > current.actPriority)) { if (actor.time < earliest ||
earliest = actor.time; actor.time == earliest && (current == null || actor.actPriority > current.actPriority)) {
current = actor; earliest = actor.time;
current = actor;
}
} }
} }
} }