Added type checking to map loading.
This commit is contained in:
parent
157cad9007
commit
749c6092d3
@ -130,14 +130,14 @@ bool cMapSerializer::LoadMapFromNBT(const cParsedNBT & a_NBT)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int CurrLine = a_NBT.FindChildByName(Data, "scale");
|
int CurrLine = a_NBT.FindChildByName(Data, "scale");
|
||||||
if (CurrLine >= 0)
|
if ((CurrLine >= 0) && (a_NBT.GetType(CurrLine) == TAG_Byte))
|
||||||
{
|
{
|
||||||
unsigned int Scale = a_NBT.GetByte(CurrLine);
|
unsigned int Scale = (unsigned int)a_NBT.GetByte(CurrLine);
|
||||||
m_Map->SetScale(Scale);
|
m_Map->SetScale(Scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrLine = a_NBT.FindChildByName(Data, "dimension");
|
CurrLine = a_NBT.FindChildByName(Data, "dimension");
|
||||||
if (CurrLine >= 0)
|
if ((CurrLine >= 0) && (a_NBT.GetType(CurrLine) == TAG_Byte))
|
||||||
{
|
{
|
||||||
eDimension Dimension = (eDimension) a_NBT.GetByte(CurrLine);
|
eDimension Dimension = (eDimension) a_NBT.GetByte(CurrLine);
|
||||||
|
|
||||||
@ -149,9 +149,9 @@ bool cMapSerializer::LoadMapFromNBT(const cParsedNBT & a_NBT)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CurrLine = a_NBT.FindChildByName(Data, "width");
|
CurrLine = a_NBT.FindChildByName(Data, "width");
|
||||||
if (CurrLine >= 0)
|
if ((CurrLine >= 0) && (a_NBT.GetType(CurrLine) == TAG_Short))
|
||||||
{
|
{
|
||||||
unsigned int Width = a_NBT.GetShort(CurrLine);
|
unsigned int Width = (unsigned int)a_NBT.GetShort(CurrLine);
|
||||||
if (Width != 128)
|
if (Width != 128)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -160,9 +160,9 @@ bool cMapSerializer::LoadMapFromNBT(const cParsedNBT & a_NBT)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CurrLine = a_NBT.FindChildByName(Data, "height");
|
CurrLine = a_NBT.FindChildByName(Data, "height");
|
||||||
if (CurrLine >= 0)
|
if ((CurrLine >= 0) && (a_NBT.GetType(CurrLine) == TAG_Short))
|
||||||
{
|
{
|
||||||
unsigned int Height = a_NBT.GetShort(CurrLine);
|
unsigned int Height = (unsigned int)a_NBT.GetShort(CurrLine);
|
||||||
if (Height >= 256)
|
if (Height >= 256)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
@ -171,14 +171,14 @@ bool cMapSerializer::LoadMapFromNBT(const cParsedNBT & a_NBT)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CurrLine = a_NBT.FindChildByName(Data, "xCenter");
|
CurrLine = a_NBT.FindChildByName(Data, "xCenter");
|
||||||
if (CurrLine >= 0)
|
if ((CurrLine >= 0) && (a_NBT.GetType(CurrLine) == TAG_Int))
|
||||||
{
|
{
|
||||||
int CenterX = a_NBT.GetInt(CurrLine);
|
int CenterX = a_NBT.GetInt(CurrLine);
|
||||||
m_Map->m_CenterX = CenterX;
|
m_Map->m_CenterX = CenterX;
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrLine = a_NBT.FindChildByName(Data, "zCenter");
|
CurrLine = a_NBT.FindChildByName(Data, "zCenter");
|
||||||
if (CurrLine >= 0)
|
if ((CurrLine >= 0) && (a_NBT.GetType(CurrLine) == TAG_Int))
|
||||||
{
|
{
|
||||||
int CenterZ = a_NBT.GetInt(CurrLine);
|
int CenterZ = a_NBT.GetInt(CurrLine);
|
||||||
m_Map->m_CenterZ = CenterZ;
|
m_Map->m_CenterZ = CenterZ;
|
||||||
|
@ -28,10 +28,10 @@ public:
|
|||||||
|
|
||||||
cMapSerializer(const AString& a_WorldName, cMap * a_Map);
|
cMapSerializer(const AString& a_WorldName, cMap * a_Map);
|
||||||
|
|
||||||
/** Try to load the scoreboard */
|
/** Try to load the map */
|
||||||
bool Load(void);
|
bool Load(void);
|
||||||
|
|
||||||
/** Try to save the scoreboard */
|
/** Try to save the map */
|
||||||
bool Save(void);
|
bool Save(void);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user