I have an idea. We could use z64555's idea of gauge clusters, but have it take only two parameters: "Name" and "Position". "Name" is self-explanitory, while "Position" has the same format and effect as Origin currently does. There would be nine default clusters: Top Left (0.0, 0.0), Top Center (0.5, 0.0), Top Right (1.0, 0.0), Center Left (0.0, 0.5), Center (0.5, 0.5), Center Right (1.0, 0.5), Bottom Left (0.0, 1.0), Bottom Center (0.5, 1.0), and Bottom Right (1.0, 1.0). More can be created in hud_gauges.tbl.
A non-stretching gauge would take two parameters for positioning: "Cluster" and "Position". "Cluster" refers to a gauge cluster by its name and uses its Position parameter in the same way that Origin is used now. "Position" is takes two integers and specifies in pixels where the top-left of a gauge is positioned in relation to the cluster's position.
Note that, with this system, if a gauge uses Position but not Cluster, then the old positioning system will be used. Therefore, if a gauge should never stretch, then it must use both parameters or none of them. (It's probably a good idea to use a different word for Position in this case, but I haven't thought of one yet.)
Here's what the default HUD might look like with this system:
#Gauge Clusters
$Name: Top Left
$Position: (0.0, 0.0)
$Name: Top Center
$Position: (0.5, 0.0)
$Name: Top Right
$Position: (1.0, 0.0)
$Name: Center Left
$Position: (0.0, 0.5)
$Name: Center
$Position: (0.5, 0.5)
$Name: Center Right
$Position: (1.0, 0.5)
$Name: Bottom Left
$Position: (0.0, 1.0)
$Name: Bottom Center
$Position: (0.5, 1.0)
$Name: Bottom Right
$Position: (1.0, 1.0)
#End
#Gauge Config
$Base: (1024, 768)
$Min: (1024, 600)
$Gauges:
+Messages:
Cluster: Top Left
Position: (8, 5)
+Training Messages:
Cluster: Center
Position: (-133, -259)
+Support:
Cluster: Center
Position: (-53, 150)
+Damage:
Cluster: Top Center
Position: (-72, 61)
+Wingman Status:
Cluster: Top Right
Position: (-92, 144)
+Auto Speed:
Cluster: Bottom Right
Position: (-64, -96)
+Auto Target:
Cluster: Bottom Right
Position: (-64, -120)
+Countermeasures:
Cluster: Bottom Right
Position: (-144, -166)
+Talking Head:
Cluster: Top Left
Position: (5, 56)
+Directives:
Cluster: Center Left
Position: (5, -106)
+Weapons:
Cluster: Bottom Right
Position: (-144, -257)
+Objective Notify:
Cluster: Center
Position: (-76, -200)
+Squad Message:
Cluster: Top Right
Position: (-197, 5)
+Lag:
Cluster: Center
Position: (115, 145)
+Mini Target Shields:
Cluster: Center
Position: (-15, 86)
+Player Shields:
Cluster: Bottom Center
Position: (112, -98)
+Target Shields:
Cluster: Bottom Center
Position: (-220, -98)
+Escort View:
Cluster: Center Right
Position: (-159, -54)
+Mission Time:
Cluster: Bottom Right
Position: (-55, -52)
+Target Monitor:
Cluster: Bottom Left
Position: (5, -178)
+Extra Target Data:
Cluster: Bottom Left
Position: (5, -216)
+Radar:
Cluster: Bottom Center
Position: (-101, -178)
+Afterburner Energy:
Cluster: Center
Position: (-238, 40)
+Weapon Energy:
Cluster: Center
Position: (154, 40)
+Text Warnings:
Cluster: Center
Position: (0, -109)
+Center Reticle:
Cluster: Center
Position: (-19, -14)
+Throttle:
Cluster: Center
Position: (-166, -115)
+Threat Indicator:
Cluster: Center
Position: (62, -115)
+Lead Indicator:
+Lock Indicator:
+Multiplayer Messages:
Cluster: Center Left
Position: (8, -144)
+Voice Status:
Cluster: Center Left
Position: (8, -129)
+Ping:
Cluster: Top Right
Position: (-128, 5)
+Supernova:
Cluster: Center
Position: (-342, -214)
+Offscreen Indicator:
+Target Brackets:
+Orientation Tee:
Cluster: Center
Position: (0, 3)
+Hostile Triangle:
Cluster: Center
Position: (0, 3)
+Target Triangle:
Cluster: Center
Position: (0, 3)
+Missile Triangles:
Cluster: Center
Position: (0, 3)
+Kills:
Cluster: Bottom Right
Position: (-144, -144)
+Fixed Messages:
+ETS Retail:
Cluster: Bottom Right
Position: (-144, -120)
$End Gauges
#End