allow to change/reload HUD by setting path in /sim/path/path[1]
This commit is contained in:
parent
f07e8a7e94
commit
d3b2b9f1e3
2 changed files with 14 additions and 1 deletions
|
@ -46,6 +46,7 @@ static float clamp(float f)
|
||||||
|
|
||||||
|
|
||||||
HUD::HUD() :
|
HUD::HUD() :
|
||||||
|
_path(fgGetNode("/sim/hud/path[1]", "Huds/default.xml")),
|
||||||
_current(fgGetNode("/sim/hud/current-color", true)),
|
_current(fgGetNode("/sim/hud/current-color", true)),
|
||||||
_visibility(fgGetNode("/sim/hud/visibility[1]", true)),
|
_visibility(fgGetNode("/sim/hud/visibility[1]", true)),
|
||||||
_3DenabledN(fgGetNode("/sim/hud/enable3d[1]", true)),
|
_3DenabledN(fgGetNode("/sim/hud/enable3d[1]", true)),
|
||||||
|
@ -72,10 +73,12 @@ HUD::HUD() :
|
||||||
_font(0),
|
_font(0),
|
||||||
_font_size(0.0),
|
_font_size(0.0),
|
||||||
_style(0),
|
_style(0),
|
||||||
|
_listener_active(false),
|
||||||
_clip_box(0)
|
_clip_box(0)
|
||||||
{
|
{
|
||||||
SG_LOG(SG_COCKPIT, SG_INFO, "Initializing HUD Instrument");
|
SG_LOG(SG_COCKPIT, SG_INFO, "Initializing HUD Instrument");
|
||||||
|
|
||||||
|
_path->addChangeListener(this);
|
||||||
_visibility->addChangeListener(this);
|
_visibility->addChangeListener(this);
|
||||||
_3DenabledN->addChangeListener(this);
|
_3DenabledN->addChangeListener(this);
|
||||||
_antialiasing->addChangeListener(this);
|
_antialiasing->addChangeListener(this);
|
||||||
|
@ -95,6 +98,7 @@ HUD::HUD() :
|
||||||
|
|
||||||
HUD::~HUD()
|
HUD::~HUD()
|
||||||
{
|
{
|
||||||
|
_path->removeChangeListener(this);
|
||||||
_visibility->removeChangeListener(this);
|
_visibility->removeChangeListener(this);
|
||||||
_3DenabledN->removeChangeListener(this);
|
_3DenabledN->removeChangeListener(this);
|
||||||
_antialiasing->removeChangeListener(this);
|
_antialiasing->removeChangeListener(this);
|
||||||
|
@ -134,7 +138,7 @@ void HUD::init()
|
||||||
_font_renderer->setPointSize(_font_size);
|
_font_renderer->setPointSize(_font_size);
|
||||||
_text_list.setFont(_font_renderer);
|
_text_list.setFont(_font_renderer);
|
||||||
|
|
||||||
load(fgGetString("/sim/hud/path[1]", "Huds/default.xml"));
|
_path->fireValueChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -411,6 +415,12 @@ int HUD::load(const char *file, float x, float y, int level, const string& inden
|
||||||
|
|
||||||
void HUD::valueChanged(SGPropertyNode *node)
|
void HUD::valueChanged(SGPropertyNode *node)
|
||||||
{
|
{
|
||||||
|
if (_listener_active)
|
||||||
|
return;
|
||||||
|
_listener_active = true;
|
||||||
|
if (!strcmp(node->getName(), "path"))
|
||||||
|
load(fgGetString("/sim/hud/path[1]", "Huds/default.xml"));
|
||||||
|
|
||||||
if (!strcmp(node->getName(), "current-color")) {
|
if (!strcmp(node->getName(), "current-color")) {
|
||||||
int i = node->getIntValue();
|
int i = node->getIntValue();
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
|
@ -450,6 +460,7 @@ void HUD::valueChanged(SGPropertyNode *node)
|
||||||
_cl = clamp(_alpha_clamp->getFloatValue());
|
_cl = clamp(_alpha_clamp->getFloatValue());
|
||||||
|
|
||||||
_units = strcmp(_unitsN->getStringValue(), "feet") ? METER : FEET;
|
_units = strcmp(_unitsN->getStringValue(), "feet") ? METER : FEET;
|
||||||
|
_listener_active = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -215,6 +215,7 @@ private:
|
||||||
deque<Item *> _items;
|
deque<Item *> _items;
|
||||||
deque<Item *> _ladders;
|
deque<Item *> _ladders;
|
||||||
|
|
||||||
|
SGPropertyNode_ptr _path;
|
||||||
SGPropertyNode_ptr _current;
|
SGPropertyNode_ptr _current;
|
||||||
SGPropertyNode_ptr _visibility;
|
SGPropertyNode_ptr _visibility;
|
||||||
SGPropertyNode_ptr _3DenabledN;
|
SGPropertyNode_ptr _3DenabledN;
|
||||||
|
@ -240,6 +241,7 @@ private:
|
||||||
fntTexFont *_font;
|
fntTexFont *_font;
|
||||||
float _font_size;
|
float _font_size;
|
||||||
int _style;
|
int _style;
|
||||||
|
bool _listener_active;
|
||||||
|
|
||||||
ClipBox *_clip_box;
|
ClipBox *_clip_box;
|
||||||
TextList _text_list;
|
TextList _text_list;
|
||||||
|
|
Loading…
Add table
Reference in a new issue