Why don't you guys design a subsystem call function, looking for a subsystem flag in ship.tbl (which can only be found on ships, regardless of size or class) and follow this with creating a on-hit function.
For example:
On-hit initiated,
If projectile contacting shield does not have subsystem flag
{
Initiate a shield effect. <-- your flags effect this.
Continue on weapon effect function.
}
Else If contact on hull is desicovered without associating subsystem flag
{
Cordinate angle of hull contact.
Obtain mesh cordinates which are paralell to angle of hull contact.
Initiate a shield effect on mesh cordinates <-- your flags effect this
Redirect weapon effect function on mesh cordinates.
Continue on weapon effect function
}
Else
{
Ignore all action.
Continue on weapon effect function.
}
Also, this could be a merical in the feature. Here's why I believe this to be so.
You got an object which is allowed to go through the shields. Currently, this object is intersecting the shield mesh. Now, the shields are hit by something that isn't allowed. What happens to the program when it can't do anything about the object intersecting the shield mesh? Well, if there is only one function handling this, then I think you would call that a memory leak, which quickly turns into a logic error, which is followed by a very unhappy user.
Of corse, my knowledge of C++ is by far to small to be seen in the same room as you guys, so let me take my leave and hope for the best. Good luck folks.
