ok, idea: what if you found the average centerpoint of all the primary gunbanks and added to that, oh say, 5x the ship's length, then rendered a crosshairs.pof at that location? You'd get 3d crosshairs (which are always good) and it'd be relatively simple.
Kinda to give you the idea, obviously the function names, object names, and stuff are gonna be way off since I don't know jack about the fs2 code, but ya, it explains what i wrote up there better.
void render_crosshairs(const ship_type &PlayerShip)
{
// find average center
int AverageX,AverageY,AverageZ:
int TotalX,TotalY,TotalZ:
TotalX=TotalY=TotalZ=0:
for(int C=0; C{
TotalX+=PlayerShip.Gun[C].X;
TotalY+=PlayerShip.Gun[C].Y;
TotalZ+=PlayerShip.Gun[C].Z;
}
AverageX=TotalX / PlayerShip.NumGunMounts;
AverageY=TotalY / PlayerShip.NumGunMounts;
AverageZ=TotalZ / PlayerShip.NumGunMounts;
// add 5 to the length axis so that the crosshairs are always rendered in front of the ship
AverageZ+= 5 * PlayerShip.Length;
RenderPof(crosshairs.pof,AverageX,AverageY,AverageZ):
}