X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Floader%2FParsedSource.cpp;h=bceed089f0377f4a4678edc84414afa4d7c3084b;hb=09e8cfd4d7b2d187fed0870ebdb2e9e3f77fe4b9;hp=2075828e19b707b28e0afac8e77ca811da588a47;hpb=40e697f7265b98dd99918d9c3f5541d9878d80b0;p=l2e.git diff --git a/src/loader/ParsedSource.cpp b/src/loader/ParsedSource.cpp index 2075828..bceed08 100644 --- a/src/loader/ParsedSource.cpp +++ b/src/loader/ParsedSource.cpp @@ -7,6 +7,8 @@ #include "ParsedSource.h" +#include "utility.h" + #include #include @@ -147,6 +149,8 @@ PropertyList *Definition::GetProperties() { const PropertyList *Definition::GetProperties() const { if (!isLiteral) { return reinterpret_cast(value); + } else if (GetLiteral()->GetType() == Literal::OBJECT) { + return GetLiteral()->GetProperties(); } else { throw runtime_error("tried to access literal value as property list"); } @@ -207,6 +211,16 @@ Literal::Literal(int number) } +Literal::Literal(const string &dir, const string &path) +: props(0) +, str(CatPath(dir, path)) +, i1(0), i2(0) +, i3(0), i4(0) +, b(false) +, type(STRING) { + +} + Literal::Literal(const string &str) : props(0) , str(str) @@ -426,6 +440,9 @@ ostream &operator <<(ostream &out, const loader::Literal &l) { case loader::Literal::NUMBER: out << "number, " << l.GetNumber(); break; + case loader::Literal::PATH: + out << "path, \"" << l.GetString() << '"'; + break; case loader::Literal::STRING: out << "string, \"" << l.GetString() << '"'; break;