@DCurrent Also, if not explicitly disabled each collision box defined on a previous frame should be considered still active on the next frames right ?
So if I want to draw body box for frame 7, even if there is a body collision defined on this frame, I still need to check all the previous frames to check if there is some other body collision box still active ?
Yes. It's the same as a single. All collisions are active and retain properties until redefined or disabled in subsequent frames. I'm 99% sure that's true for the index as well, just don't want to tell you that and be wrong.
If it helps, under the hood, it's reading the text file line by line, and creating a temporary single linked list. There's an index variable in the reading function that is set by the collision.index command. Of course it defaults as 0. Then each node has an index member. When populating the linked list, it compares existing nodes' index members to see if they match reading function's index variable, and then creates/updates nodes accordingly.
Then there's a deep copy to a "production" single linked list on the animation (remember OpenBOR doesn't have a frame structure for optimization purposes). This copy is used in game play. So it looks like this:
animation->attack[frame] = Head Node Pointer
attack->index = {index from creator }
attack->next = {next pointer if available}
Same for body boxes.
DC