I feel like I've been posting too much... I've just been really frustrated with my code lately.
And I had been doing so well up to this point. To be fair, it was an ambitious scene for my skill level.
The main focus is an object I defined as "gelnath", which performs some animations.
He had been animating okay until this block:
if (f52) {
erase(o4);
set.loop(gelnath,1);
set.cel(gelnath,0);
start.cycling(gelnath); //The problem happens whether this line is there or not.
end.of.loop(gelnath,f53);
}
Wherein I do see cel 0 of loop 1, but he doesn't finish the animation. He just freezes there. You can see where I added an extra start.cycling command in an attempt to bypass anything that could be stopping his movement, but I'm not sure if it did any good at all, as the problem is still occurring. Obviously, flag 53 is never triggered. Ego can move around the room after gelnath's cel/loop changes, but the sequence never finishes. (Note: o4 is a sound effect bubble I put over the action for visual effect. I made sure it was set to ignore objects, in case collision was messing the sequence up, but to no avail.)
I had a similar issue with ego in a different room, but that was before I was aware of flag 31, and once I learned how to use it, the problem was gone. Could there be a similar situation happening with my gelnath, or is the fault in my code?
UPDATE: I "solved" this problem functionality-wise by letting the animation play out during a sound effect, then triggering flag 53 after that. It works fine, but it's not the most graceful fix I've ever done. I'm still clueless as to why the issue is there in the first place, though.