Tweaking/adding cylinders (states?) is all I could really ask for. The rest isn't worth messing with. Don't feel pressured to do anything, it's very possible that there is something wrong with the system which might be making all of this a waste of time.
Unfortunately, there's no assurances.
Code is attached. (although for further reference, ued allows exporting of .ucc files)
BSProj.uc is the main concern. You'll note a series of if statements, plus somewhere around 7-14 function calls for each section. (note it's done seperately for bots)
Any additions should also be made to insanityscope.uc, which was added as an afterthought, but allows you to visualize shape centerpoints for easy spotting of errors.
The functions all look like this:
bHitCylinder( Other, HitLocation, 8, 4.000, 0, 20, 14, rot( -3072, 0, 0 ), "lowertorso" )
The vars are: (after the mandatory target actor and hitlocation)
float cylSize, float cylOffset, int tgtRot,
float height, float Zpos, rotator cylRot, string bodyPart
although the shapes are no longer cylinders (and the system has evolved in other ways as well), they still follow the same definition.
cylSize is the radius. Since the shapes have spheres as thier endpoints, this means a cylinder with a large radius will extend much further past it's height.
tgtRot is a one dimension rotation; it is used with cylOffset to define the shape's center point in the circular 2d plane in a sort of 'polar' coordinate system.
height is the height of the target shape in question. It does not account for the radius and therefore is the length of the cylinder part of the shape. It is not to be confused with the height of UT 'hit' actors, which apparently is only half of the cylinder.
Zpos is the height of the shape relative to the playermodel. This starts at the midpoint of the playermodel's normal collision zone. Used with tgtRot and cylOffset to create the final 3d position of the shape reletive to the player.
Cylrot is the rotation of the shape. Lifted straight out of UED if I remember correctly.
Note that UT rotations go from 0-65535 in integers, so it is nessesary to convert from radians or degrees.
Most of this stuff can be lifted from UED, but part has to be converted from x,y,z postitons to the 'polar' style. We posted several maps that we used for reference earlier in the thread if you remember. I can show people how to get these numbers if required.
Believe it or not, this was far easier than previous systems.