Walt you could make the crew styles have a reference point (not sure if this'll help, just my thought process). For example:
Instead of having it like this:
BodyTypes
[
// Style a
: ~/BaseBodyType
{
WalkSprite
{
AnimationFiles
[
"walk_a1.png"
"walk_a2.png"
"walk_a3.png"
"walk_a4.png"
"walk_a5.png"
"walk_a6.png"
"walk_a7.png"
"walk_a6.png"
"walk_a5.png"
"walk_a4.png"
"walk_a3.png"
"walk_a2.png"
]
Size = [1, 1]
AnimationInterval = 0.025
}
.......
It could be like this
BodyTypes
[
StyleA : ~/BaseBodyType
{
WalkSprite
{
AnimationFiles
[
"walk_a1.png"
"walk_a2.png"
"walk_a3.png"
"walk_a4.png"
"walk_a5.png"
"walk_a6.png"
"walk_a7.png"
"walk_a6.png"
"walk_a5.png"
"walk_a4.png"
"walk_a3.png"
"walk_a2.png"
]
Size = [1, 1]
AnimationInterval = 0.025
}
........
Now on default it'll still be completely random since there are no excluded styles, but then now that those can be referenced, surely that'll make everything else easier to allow crewquarters to be selective of their crewstyles? This is just a thought and I don't know if it's exactly the best solution, but it seems logical to me.