The CAT headache is solved for now, as I have released a new version. As I already wrote about before, this new version does also support the ASM source files created with FSDS3. Although both GMax and FSDS3 use MakeMDL to export and create the ASM file, there was a little structure difference. I have learned CAT these differences now, so that both formats are supported.
But the other problem Nick and I found while debugging a few days ago was more difficult to solve. Actually I could not really solve it, I could only add an option that gives the user a choice between two ways of doing it. And both have there ups and downs.
The first way is to apply the animation condition on the animation trigger. This is how I had been doing it since CAT v1.01. The advantage of this method is that, when the animation condition fails, the reverse animation will nicely be shown to return to the static state. But when multiple copies of the same object (sharing the same GUID thus) were placed this did not work. After some thought, this behavior was very logical of course. When you call a library objects you are expecting the object to share the same memory space (that is one of the advantages of libraries). So that means they also share their local variables to store the animation state. If the animation condition then fails for one of the objects you placed, that means the animation state is set back to static state for all of them. So this means that you animation will never ever start, unless the animation condition is true for all copies you placed at the same time.
One alternative for this would be to create a new GUID for each object you place, but when you need to place 100 gates at an airport or so, this is no real option. It also destroys most of the advantages of using a library. The second alternative is to apply the animation condition, like I did before CAT v1.01. So in that case the animation condition works on the animation itself and not on the trigger. So the trigger can remain shared between all objects and when the animation condition fails a switch is made to the static condition right away, so if the animation condition fails before the trigger fails, this means you get a sudden jump.
In the new version of CAT you can use both methods, so depending on the condition under which you want to use your object, you can choose the best way to apply the animation condition.