Hey everyone! I'm working on a project right now that involves reading a value from a text file and then displaying it on a gauge. I started working off of the SDK.Fuel.cpp in the SDK sample code to try to get it to work. The gauge loads fine and no errors are sent from FSX, but the gauge never updates. Here is my code:
Any help is appreciated!
Code:
#include <fstream>
// Set up gauge header
char fuel_gauge_name[] = GAUGE_NAME;
extern PELEMENT_HEADER fuel_list;
extern MOUSERECT fuel_mouse_rect[];
GAUGE_HEADER_FS700( GAUGE_W, fuel_gauge_name, &fuel_list, \
fuel_mouse_rect, 0, 0, 0, 0 );
/////////////////////////////////////////////////////////////////////////////
#define GAUGE_MIN_FUEL 0
#define GAUGE_MAX_FUEL 75
NONLINEARITY fuel_nonlinearity[] =
{
{{30, 182}, 0, 0},
{{119, 47}, 25, 0},
{{246, 93}, 50, 0},
{{241, 221}, 75, 0}
};
//TODO: Add file reading for gauge readout
FLOAT64 FSAPI fuel_needle_cb( PELEMENT_NEEDLE pelement )
{
static int time = 18;
static FLOAT64 realVal = 0;
FLOAT64 val = pelement->source_var.var_value.n;
if (time >= 18) {
int ival;
std::ifstream file("data.txt");
file >> ival;
val = ival;
realVal = val;
file.close();
time = 0;
}
else {
time++;
val = realVal;
}
return val;
}
MAKE_NEEDLE
(
fuel_needle,
BMP_FUEL_SMALL_NEEDLE,
NULL,
NULL,
IMAGE_USE_TRANSPARENCY|IMAGE_USE_ERASE|IMAGE_BILINEAR_COLOR,
0,
150, 150,
6, 12,
TOTAL_FUEL_QUANTITY_GALLONS,fuel_needle_cb,
fuel_nonlinearity,
0
)
PELEMENT_HEADER fuel_needle_list[] =
{
(PELEMENT_HEADER)&fuel_needle,
NULL
};
/////////////////////////////////////////////////////////////////////////////
MAKE_STATIC
(
fuel_background,
BMP_FUEL_SMALL_BACKGROUND,
&fuel_needle_list,
NULL,
IMAGE_USE_TRANSPARENCY,
0,
9, 0
)
PELEMENT_HEADER fuel_list = &fuel_background.header;
/////////////////////////////////////////////////////////////////////////////
MOUSE_BEGIN( fuel_mouse_rect, HELPID_GAUGE_FUEL, 0, 0 )
MOUSE_END
/////////////////////////////////////////////////////////////////////////////
#undef GAUGE_NAME
#undef GAUGEHDR_VAR_NAME
#undef GAUGE_W

