hmm, this is my first foray into this section of the code.... so I'm probably going to be wrong here (forgive me... please!)
In my checkout of the code (5004), the gauges seem to be drawn at line 1906 of hud.cpp using GR_AABITMAP(a,b,c) defined in hud.h:
#define GR_AABITMAP(a, b, c) { int jx, jy; if(emp_should_blit_gauge()) { gr_set_bitmap(a); jx = b; jy = c; emp_hud_jitter(&jx, &jy); gr_aabitmap(jx, jy); } }
So it sets the bitmap and then calls gr_aabitmap which is really (at least, in the OpenGL build) gr_opengl_aabitmap.
I'm not sure why gr_opengl_bitmap has been commented out, but it probably breaks something.
I'd try adding code just before the
if(image_ids[i].first_frame != -1)
on line 1904 of hud.cpp checking for a flag to say 'use full colour gauges' calling gr_opengl_bitmap, but I haven't got the time to try this out at the moment.
Could one of the code wizards (yes, you!

) advise if I'm totally insane and off the beaten track?
I'm not sure about side effects of these functions (including gl states) or how to go about adding such a flag.