}
SGPropertyNode::Type
-SGPropertyNode::getType (bool deref_alias) const
+SGPropertyNode::getType () const
{
- if (_type == ALIAS && deref_alias)
+ if (_type == ALIAS)
return _value.alias->getType();
else
return _type;
/**
* Get the type of leaf value, if any, for this node.
- * When applied to an ALIAS node, deref_alias decides if the type
- * of the referred node is to be returned (default), or ALIAS.
*/
- Type getType (bool deref_alias = true) const;
+ Type getType () const;
/**
case SGPropertyNode::STRING:
return "string";
case SGPropertyNode::ALIAS:
- return "alias";
case SGPropertyNode::NONE:
return "unspecified";
}
// First, copy the actual value,
// if any.
if (in->hasValue()) {
- switch (in->getType(false)) {
+ switch (in->getType()) {
case SGPropertyNode::BOOL:
if (!out->setBoolValue(in->getBoolValue()))
retval = false;
if (!out->setUnspecifiedValue(in->getStringValue()))
retval = false;
break;
- case SGPropertyNode::ALIAS: {
- const char *path = in->getAliasTarget()->getPath();
- SGPropertyNode *node = out->getRootNode()->getNode(path, true);
- out->alias(node);
- break;
- }
default:
+ if (in->isAlias())
+ break;
string message = "Unknown internal SGPropertyNode type";
message += in->getType();
throw sg_error(message, "SimGear Property Reader");