Integrated Brede Johansen's updates to flt loader.

This commit is contained in:
Robert Osfield
2001-12-04 16:03:10 +00:00
parent 3e940e0b33
commit d7ded2d90f
30 changed files with 1646 additions and 862 deletions

View File

@@ -34,6 +34,7 @@ Record::Record()
{
_pData = NULL;
_pParent = NULL;
_pFltFile = NULL;
}
@@ -43,6 +44,15 @@ Record::~Record()
}
int Record::getFlightVersion()
{
if (_pFltFile)
return _pFltFile->getFlightVersion();
return -1;
}
Record* Record::cloneRecord(SRecHeader* pData)
{
Record* pRec = clone();
@@ -92,7 +102,7 @@ PrimNodeRecord::PrimNodeRecord()
// virtual
PrimNodeRecord::~PrimNodeRecord()
{
removeAllChildren();
// removeAllChildren();
}
@@ -152,7 +162,7 @@ bool PrimNodeRecord::readExtensionLevel(Input& fr)
{
Record* pRec;
while (pRec=fr.readCreateRecord())
while (pRec=fr.readCreateRecord(_pFltFile))
{
if (pRec->isOfType(POP_EXTENSION_OP))
return true;
@@ -192,12 +202,12 @@ bool PrimNodeRecord::readLevel(Input& fr)
// Read next record, including extension record
Record* PrimNodeRecord::readRecord(Input& fr)
{
Record* pRec = fr.readCreateRecord();
Record* pRec = fr.readCreateRecord(_pFltFile);
while (pRec && (pRec->getOpcode() == PUSH_EXTENSION_OP))
{
readExtensionLevel(fr);
pRec=fr.readCreateRecord();
pRec=fr.readCreateRecord(_pFltFile);
}
return pRec;
}