some cleanup and fixing

pull/37/head
Marc Zinnschlag 12 years ago
parent a1ac20c6f3
commit ce49ad54a1

@ -1,17 +1,13 @@
#include "loadglob.hpp" #include "loadglob.hpp"
#include "esmreader.hpp"
#include "esmwriter.hpp"
namespace ESM namespace ESM
{ {
void Global::load (ESMReader &esm)
void Global::load(ESMReader &esm)
{ {
mValue.read (esm, ESM::Variant::Format_Global); mValue.read (esm, ESM::Variant::Format_Global);
} }
void Global::save(ESMWriter &esm) void Global::save (ESMWriter &esm)
{ {
mValue.write (esm, ESM::Variant::Format_Global); mValue.write (esm, ESM::Variant::Format_Global);
} }

@ -37,7 +37,7 @@ ESM::VarType ESM::Variant::getType() const
return mType; return mType;
} }
std::string ESM::Variant::toString() const std::string ESM::Variant::getString() const
{ {
if (!mData) if (!mData)
throw std::runtime_error ("can not convert empty variant to string"); throw std::runtime_error ("can not convert empty variant to string");
@ -81,23 +81,30 @@ void ESM::Variant::read (ESMReader& esm, Format format)
} }
else // GMST else // GMST
{ {
esm.getSubName(); if (!esm.hasMoreSubs())
NAME name = esm.retSubName();
if (name=="STRV")
{
type = VT_String;
}
else if (name=="INTV")
{ {
type = VT_Int; type = VT_None;
} }
else if (name=="FLTV") else
{ {
type = VT_Float; esm.getSubName();
NAME name = esm.retSubName();
if (name=="STRV")
{
type = VT_String;
}
else if (name=="INTV")
{
type = VT_Int;
}
else if (name=="FLTV")
{
type = VT_Float;
}
else
esm.fail ("invalid subrecord: " + name.toString());
} }
else
esm.fail ("invalid subrecord: " + name.toString());
} }
setType (type); setType (type);

@ -45,7 +45,7 @@ namespace ESM
VarType getType() const; VarType getType() const;
std::string toString() const; std::string getString() const;
///< Will throw an exception, if value can not be represented as a string. ///< Will throw an exception, if value can not be represented as a string.
int getInteger() const; int getInteger() const;

Loading…
Cancel
Save