Okay, I've been doing assorted thinking on the new hud stuff...I'm not particularly eager to start on it, but there seems to be quite a bit of demand now.
So as I see it there are a few different things I could do...
Options- Upgrade/expand the current system. This would basically let you move around more retail Freespace HUDs and (maybe) choose where custom HUD entries would appear. I could also toss in Bobb's equation system to let you have auto-updating text.
- Get back to work on the new system. This would be much more flexible than the old system. As far as coexistence goes, this would be mostly custom-gauge-centric; rather than make old gauges movable, the goal of this system would be to let you build all the retail gauges from scratch.
Something else I've also thought about doing is integrating it with the GUI code I made for the lab. This would potentially give drag-and-drop abilities, although I'd have to tweak the skinning interface again to make it possible to create new items from interface.tbl.
- Throw in some python scripting. This would work with either system, and would (IMHO) provide an easy and common way to design extremely flexible gauges for use in Freespace 2. The big problem I see is speed; I looked around and didn't see any way to 'compile' Python script, so the code would have to be parsed and interpreted every frame.
This could potentially be ported to other aspects of fs2, and doing this seems to be extremely easy, according to Python documentation; it only requires around 3 function calls to get base python scripting going, and adding new functions seems fairly straightforward. (So you could use "gr.drawLine()" to draw a line, "pv.getString()" to get a persistent variable, "cpn.getName()" to get the current campaign name, etc etc)
And of course if this was integrated with the interface...well, it's something to definitely look into regardless of whether the HUD is integrated.
- Throw in the ability to use SEXPs with hud gauges. Again, this would work with the integration fairly well, but my chief complaint is that SEXP code isn't mainstream. It's apparently based on a fairly well-known language that I've never heard of or seen before Goober or someone linked to an article in the WP. It might solve a few of the speed issues with Python, and would give a number of functions available right off the bat - and of course it would mean coding in any general hud-change functions once, and they'd be available in both the mission events editor and the hud gauges file.
With this, assume you'd have to learn the SEXP syntax.
IMHONow, what I see as the ideal situation would be to integrate the new HUD stuff with the interface. Make it possible to design all the various gauges in Freespace2 with the new system. Add in Bobb's equation system.
For retail gauges, get rid of the old hud_gauges.tbl system. Then have a table with all the retail gauges in it using the new table format. Retail gauges would automatically turn off if the new system were used.
Then, throw in Python scripting with a base library of functions to draw gauges. This would be used in the event you needed an extremely complex gauge, ie something along the lines of the radar. Ideally you'd be able to do everything without Python (it'd be more efficient).
Cons: It'd be a pain in the ass to get done, and someone would have to code the retail gauges. This would provide a great starting point for any mods using the system, since they could always turn to the retail gauges in new HUD form to see how stuff was done.
PostwordI haven't considered any other languages besides Python; if there's one that can be interpreted and compiled when the program starts, and executed multiple times afterwords, and is multiplatform, it'd be perfect for this. Something that's difficult to learn (ie Perl) is out.
That's a pretty broad overview, despite being so long.

Obviously I'll be waiting 'til after 3.6.7 is out to start work on it...and this time I'll actually sit down and try to design everything, instead of making major revisions 5 times. (Try to narrow it down to 3 or so.

)
The bulk of the process will probably have to be completed within the next 2.5 weeks. I'd hoped to be doing more this summer IRL, but that hasn't worked out, so I've got a lot of time.