1
0
forked from 0ad/0ad

Added 'const' to appropriate bits of Xeromyces

This was SVN commit r1226.
This commit is contained in:
Ykkrosh 2004-10-07 20:49:35 +00:00
parent 2c9ac03375
commit 442c6f315f
4 changed files with 29 additions and 31 deletions

View File

@ -1,4 +1,4 @@
// $Id: XeroXMB.cpp,v 1.6 2004/07/24 14:03:44 philip Exp $
// $Id: XeroXMB.cpp,v 1.7 2004/10/07 20:49:25 philip Exp $
#include "precompiled.h"
@ -57,7 +57,7 @@ std::string XMBFile::ReadZStrA()
return String;
}
XMBElement XMBFile::getRoot()
XMBElement XMBFile::getRoot() const
{
return XMBElement(m_Pointer);
}
@ -65,19 +65,19 @@ XMBElement XMBFile::getRoot()
#ifdef XERO_USEMAP
int XMBFile::getElementID(const char* Name)
int XMBFile::getElementID(const char* Name) const
{
return m_ElementNames[Name];
}
int XMBFile::getAttributeID(const char* Name)
int XMBFile::getAttributeID(const char* Name) const
{
return m_AttributeNames[Name];
}
#else // #ifdef XERO_USEMAP
int XMBFile::getElementID(const char* Name)
int XMBFile::getElementID(const char* Name) const
{
char* Pos = m_ElementPointer;
@ -97,7 +97,7 @@ int XMBFile::getElementID(const char* Name)
return -1;
}
int XMBFile::getAttributeID(const char* Name)
int XMBFile::getAttributeID(const char* Name) const
{
char* Pos = m_AttributePointer;
@ -121,7 +121,7 @@ int XMBFile::getAttributeID(const char* Name)
// Relatively inefficient, so only use when
// laziness overcomes the need for speed
std::string XMBFile::getElementString(const int ID)
std::string XMBFile::getElementString(const int ID) const
{
char* Pos = m_ElementPointer;
for (int i = 0; i < ID; ++i)
@ -129,7 +129,7 @@ std::string XMBFile::getElementString(const int ID)
return std::string(Pos+4);
}
std::string XMBFile::getAttributeString(const int ID)
std::string XMBFile::getAttributeString(const int ID) const
{
char* Pos = m_AttributePointer;
for (int i = 0; i < ID; ++i)
@ -139,12 +139,12 @@ std::string XMBFile::getAttributeString(const int ID)
int XMBElement::getNodeName()
int XMBElement::getNodeName() const
{
return *(int*)(m_Pointer + 4); // == ElementName
}
XMBElementList XMBElement::getChildNodes()
XMBElementList XMBElement::getChildNodes() const
{
return XMBElementList(
m_Pointer + 20 + *(int*)(m_Pointer + 16), // == Children[]
@ -152,7 +152,7 @@ XMBElementList XMBElement::getChildNodes()
);
}
XMBAttributeList XMBElement::getAttributes()
XMBAttributeList XMBElement::getAttributes() const
{
return XMBAttributeList(
m_Pointer + 24 + *(int*)(m_Pointer + 20), // == Attributes[]
@ -160,7 +160,7 @@ XMBAttributeList XMBElement::getAttributes()
);
}
utf16string XMBElement::getText()
utf16string XMBElement::getText() const
{
// Return empty string if there's no text
if (*(int*)(m_Pointer + 20) == 0)
@ -169,9 +169,9 @@ utf16string XMBElement::getText()
return utf16string((utf16_t*)(m_Pointer + 28));
}
int XMBElement::getLineNumber()
int XMBElement::getLineNumber() const
{
// Make sure there actually *was* some text to record the line of
// Make sure there actually was some text to record the line of
if (*(int*)(m_Pointer + 20) == 0)
return -1;
else
@ -204,7 +204,7 @@ XMBElement XMBElementList::item(const int id)
return XMBElement(Pos);
}
utf16string XMBAttributeList::getNamedItem(const int AttributeName)
utf16string XMBAttributeList::getNamedItem(const int AttributeName) const
{
char* Pos = m_Pointer;

View File

@ -1,4 +1,4 @@
/* $Id: XeroXMB.h,v 1.5 2004/07/12 15:49:31 philip Exp $
/* $Id: XeroXMB.h,v 1.6 2004/10/07 20:49:25 philip Exp $
Xeromyces - XMB reading library
@ -120,18 +120,18 @@ public:
void Initialise(char* FileData);
// Returns the root element
XMBElement getRoot();
XMBElement getRoot() const;
// Returns internal ID for a given ASCII element/attribute string.
int getElementID(const char* Name);
int getAttributeID(const char* Name);
int getElementID(const char* Name) const;
int getAttributeID(const char* Name) const;
// For lazy people (e.g. me) when speed isn't vital:
// Returns element/attribute string for a given internal ID
std::string getElementString(const int ID);
std::string getAttributeString(const int ID);
std::string getElementString(const int ID) const;
std::string getAttributeString(const int ID) const;
private:
char* m_Pointer;
@ -155,11 +155,11 @@ public:
XMBElement(char* offset)
: m_Pointer(offset) {}
int getNodeName();
XMBElementList getChildNodes();
XMBAttributeList getAttributes();
utf16string getText();
int getLineNumber();
int getNodeName() const;
XMBElementList getChildNodes() const;
XMBAttributeList getAttributes() const;
utf16string getText() const;
int getLineNumber() const;
private:
// Pointer to the start of the node
@ -203,7 +203,7 @@ public:
: Count(count), m_Pointer(offset) {};
// Get the attribute value directly (unlike Xerces)
utf16string getNamedItem(const int AttributeName);
utf16string getNamedItem(const int AttributeName) const;
// Returns an attribute by position in the list
XMBAttribute item(const int id);

View File

@ -180,7 +180,7 @@ bool CBaseEntity::loadXML( CStr filename )
return true;
}
void CBaseEntity::XMLLoadProperty( CXeromyces& XeroFile, XMBElement& Source, CStrW BasePropertyName )
void CBaseEntity::XMLLoadProperty( const CXeromyces& XeroFile, const XMBElement& Source, CStrW BasePropertyName )
{
// Add a property, put the node text into it.
CStrW PropertyName = BasePropertyName + CStr8( XeroFile.getElementString( Source.getNodeName() ) );

View File

@ -35,9 +35,7 @@ public:
// Load from XML
bool loadXML( CStr filename );
// Load a tree of properties from an XML (XMB) node.
// MT: XeroFile/Source seem to me like they should be const, but the functions they require aren't const members
// and I'm reluctant to go messing round with xerophilic fungi I don't understand.
void XMLLoadProperty( CXeromyces& XeroFile, XMBElement& Source, CStrW BasePropertyName );
void XMLLoadProperty( const CXeromyces& XeroFile, const XMBElement& Source, CStrW BasePropertyName );
// Base stats