/*=========================================================================== * * Class CSrMuscRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrMuscRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_FNAM) { m_pFnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_PNAM) { m_pPnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_WNAM) { m_pWnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TNAM) { m_pTnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrPhzdRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrPhzdRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_XSCL) { m_pXsclData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAME) { m_pNameData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_XESP) { m_pXespData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DATA) { m_pDataData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_VMAD) { m_pVmadData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrAvifRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrAvifRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_AVSK) { m_pAvData = SrCastClass(CSrAvskSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_FULL) { m_pItemName = SrCastClass(CSrLStringSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_CNAM && m_pCnamData == NULL) { m_pCnamData = SrCastClass(CSrDwordSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DESC) { m_pDescription = SrCastClass(CSrLStringSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_ANAM) { m_pAnamData = SrCastClass(CSrStringSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrCobjRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrCobjRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_BNAM) { m_pStation = SrCastClass(CSrFormidSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_COCT) { m_pComponentCount = SrCastClass(CSrDwordSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_CNAM) { m_pItemResult = SrCastClass(CSrFormidSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM1) { m_pResultQnt = SrCastClass(CSrWordSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrLtexRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrLtexRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_TNAM) { m_pTnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MNAM) { m_pMnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_HNAM) { m_pHnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_SNAM) { m_pSnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_GNAM) { m_pGnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrNavmRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrNavmRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_ONAM) { m_pOnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_XXXX) { m_pXxxxData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NVNM) { m_pNvnmData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NNAM) { m_pNnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_PNAM) { m_pPnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrItem2Record Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrItem2Record::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_EITM) m_pEnchantment = SrCastClass(CSrFormidSubrecord, pSubrecord); else if (pSubrecord->GetRecordType() == SR_NAME_EAMT) m_pEnchantPoints = SrCastClass(CSrWordSubrecord, pSubrecord); else CSrItem1Record::OnAddSubrecord(pSubrecord); }
static int CALLBACK s_ItemFormIDRecListSort(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) { SRRL_SORTFUNC_GETPARAMS(lParam1, lParam2, lParamSort); CSrLvloSubrecord* pItem1 = SrCastClass(CSrLvloSubrecord, pCustomData1->Subrecords[0]); CSrLvloSubrecord* pItem2 = SrCastClass(CSrLvloSubrecord, pCustomData2->Subrecords[0]); if (pItem1 == NULL || pItem2 == NULL) return (0); if (pSortData->Reverse) return -(int)(pItem1->GetFormID() - pItem2->GetFormID()); return (int)(pItem1->GetFormID() - pItem2->GetFormID()); }
srlvllistinfo_t* SrFindLvlListInfo (CSrLvlListInfoArray& InfoArray, CSrSubrecord* pSubrecord) { if (pSubrecord == NULL) return NULL; CSrCntoSubrecord* pCnto = SrCastClass(CSrCntoSubrecord, pSubrecord); CSrLvloSubrecord* pLvlo = SrCastClass(CSrLvloSubrecord, pSubrecord); for (dword i = 0; i < InfoArray.GetSize(); ++i) { if (pCnto != NULL && InfoArray[i]->pCnto == pCnto) return InfoArray[i]; if (pLvlo != NULL && InfoArray[i]->pLvlo == pLvlo) return InfoArray[i]; } return NULL; }
/*=========================================================================== * * Class CSrEspFile Method - dword Find (FindData, pCallback); * *=========================================================================*/ dword CSrEspFile::Find (srfinddata_t& FindData, CSrCallback* pCallback) { CSrBaseRecord* pBaseRecord; CSrRecord* pRecord; CSrTypeGroup* pGroup; dword FindCount = 0; dword Index; dword Count; bool FindText = (FindData.Flags & SR_FIND_COMPARETEXT) != 0; bool IsExcluded; bool Result; int iResult; if (pCallback != NULL) { pCallback->SetTotalRecords(m_Records.GetNumRecords()); pCallback->SetTotalRecords1(0); pCallback->Reset(); } ++FindData.FileCount; for (Index = 0; Index < m_Records.GetNumRecords(); ++Index) { pBaseRecord = m_Records.GetRecord(Index); pRecord = SrCastClass(CSrRecord, pBaseRecord); if (pRecord) { IsExcluded = SrContainsRecordType(pRecord->GetRecordType(), FindData.pExcludeRecords); } else { pGroup = SrCastClass(CSrTypeGroup, pBaseRecord); if (pGroup != NULL) IsExcluded = SrContainsRecordType(pGroup->GetContainsType(), FindData.pExcludeRecords); } if (pRecord == NULL || !IsExcluded) { if (FindText) Result = pBaseRecord->SearchText(Count, FindData); else Result = pBaseRecord->Search(Count, FindData); FindCount += Count; if (!Result) return (FindCount); if (pCallback != NULL) { iResult = pCallback->UpdateCallback(Index); if (iResult < 0) return (FindCount); } } } return (FindCount); }
/*=========================================================================== * * Class CSrMustRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrMustRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_FLTV) { m_pFltvData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_FNAM) { m_pFnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_CNAM) { m_pCnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_CTDA) { m_pCtdaData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_ANAM) { m_pAnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_CITC) { m_pCitcData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_BNAM) { m_pBnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_LNAM) { m_pLnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DNAM) { m_pDnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_SNAM) { m_pSnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrBptdRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrBptdRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_MODL) { m_pModlData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM1) { m_pNam1Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_BPNT) { m_pBpntData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_BPTN) { m_pBptnData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MODT) { m_pModtData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_BPNI) { m_pBpniData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_BPNN) { m_pBpnnData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_BPND) { m_pBpndData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM4) { m_pNam4Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM5) { m_pNam5Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
void SrCreateLvlListInfo (CSrLvlListInfoArray& InfoArray, CSrCobjRecord& Record) { CSrSubrecord* pSubrecord; CSrCntoSubrecord* pCnto; CSrCoedSubrecord* pCoed; srlvllistinfo_t* pNewInfo; int Position; InfoArray.Destroy(); pSubrecord = Record.FindFirstSubrecord(SR_NAME_CNTO, Position); while (pSubrecord != NULL) { pCnto = SrCastClass(CSrCntoSubrecord, pSubrecord); if (pCnto != NULL) { pNewInfo = InfoArray.AddNew(); pNewInfo->pCnto = new CSrCntoSubrecord; pNewInfo->pCnto->CopyFull(pCnto); pSubrecord = Record.GetSubrecord(Position + 1); pCoed = SrCastClassNull(CSrCoedSubrecord, pSubrecord); if (pCoed != NULL) { pNewInfo->pCoed = new CSrCoedSubrecord; pNewInfo->pCoed->CopyFull(pCoed); } } pSubrecord = Record.FindNextSubrecord(SR_NAME_CNTO, Position); } }
/*=========================================================================== * * Class CSrSelectRecordDlg Method - void SetControlData (void); * *=========================================================================*/ void CSrSelectRecordDlg::SetControlData (void) { CString Buffer; CString EditorID; CSrIdRecord* pIdRecord; m_RecordList.SortList(SR_FIELD_EDITORID); if (m_DlgInfo.SortField != SR_FIELD_EDITORID) m_RecordList.SortList(m_DlgInfo.SortField); m_RecordList.SelectRecord(m_pCurrentRecord); if (m_pPrevRecord == NULL) { m_PreviousText.SetWindowText(""); m_PreviousFormIDText.SetWindowText("0x00000000"); } else { pIdRecord = SrCastClass(CSrIdRecord, m_pPrevRecord); if (pIdRecord != NULL) EditorID = pIdRecord->GetEditorID(); Buffer.Format("%s", EditorID); m_PreviousText.SetWindowText(Buffer); Buffer.Format("0x%08X", m_pPrevRecord->GetFormID()); m_PreviousFormIDText.SetWindowText(Buffer); } UpdateCurrentRecord(); }
/*=========================================================================== * * Class CSrGlobRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrGlobRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_FLTV) { m_pValue = SrCastClass(CSrFloatSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_FNAM) { m_pType = SrCastClass(CSrByteSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
dword CSrEspFile::UpdateFormCount (CSrGroup* pGroup) { CSrBaseRecord* pBaseRecord; CSrGroup* pSubGroup; dword Count = 0; /* Special case for type groups */ if (pGroup->GetType() == SR_GROUP_TYPE) { return pGroup->GetNumRecords(); } for (dword i = 0; i < pGroup->GetNumRecords(); ++i) { pBaseRecord = pGroup->GetRecord(i); if (pBaseRecord->IsGroup()) { pSubGroup = SrCastClass(CSrGroup, pBaseRecord); ++Count; if (pSubGroup != NULL) Count += UpdateFormCount(pSubGroup); } else { ++Count; } } return Count; }
/*=========================================================================== * * Class CSrEspFile Method - int FindTopGroupInsertPos (Type); * *=========================================================================*/ CSrBaseRecord* CSrEspFile::FindTopGroupInsertPos (const srrectype_t Type) { CSrBaseRecord* pBase; CSrBaseRecord* pLastInsert = NULL; CSrTypeGroup* pTypeGroup; dword Index; dword TypeIndex = 0; for (Index = 0; Index < m_Records.GetNumRecords(); ++Index) { pBase = m_Records.GetRecord(Index); if (pBase->IsRecord()) { if (Index == 0) pLastInsert = pBase; continue; } pTypeGroup = SrCastClass(CSrTypeGroup, pBase); if (pTypeGroup == NULL) continue; for (; s_TopLevelTypeOrder[TypeIndex] != NULL; ++TypeIndex) { if (Type == *s_TopLevelTypeOrder[TypeIndex]) return (pLastInsert); if (pTypeGroup->GetContainsType() == *s_TopLevelTypeOrder[TypeIndex]) break; } pLastInsert = pTypeGroup; } return (pLastInsert); }
/*=========================================================================== * * Class CSrIdRecord Event - void OnAddSubrecord (pSubRecord); * *=========================================================================*/ void CSrIdRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_EDID) { m_pEditorID = SrCastClass(CSrStringSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_OBND) { m_pBounds = SrCastClass(CSrBoundsSubrecord, pSubrecord); } else { CSrRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrIdKeyRecord Event - void OnAddSubrecord (pSubRecord); * *=========================================================================*/ void CSrIdKeyRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_KSIZ) { m_pKeywordCount = SrCastClass(CSrDwordSubrecord, pSubrecord); //TEST_INTVALUE1(m_pKeywordCount->GetRecordSize(), 4, SR_NAME_KSIZ); } else if (pSubrecord->GetRecordType() == SR_NAME_KWDA) { m_pKeywords = SrCastClass(CSrFormidArraySubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrArtoRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrArtoRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_MODL) { m_pModlData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DNAM) { m_pDnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MODT) { m_pModtData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrContView Method - void GetControlData (void); * *=========================================================================*/ void CSrContView::GetControlData (void) { CSrContRecord* pContainer; CSrRecordDialog::GetControlData(); if (m_EditInfo.pNewRecord == NULL) return; pContainer = SrCastClass(CSrContRecord, GetOutputRecord()); if (pContainer == NULL) return; SrSaveLvlListInfo(m_LvlListInfo, *pContainer); }
void CSrEspFile::UpdateStringMap (CSrGroup* pGroup) { if (pGroup == NULL) return; for (dword i = 0; i < pGroup->GetNumRecords(); ++i) { CSrBaseRecord* pBaseRecord = pGroup->GetRecord(i); if (pBaseRecord->IsGroup()) { CSrGroup* pGroup = SrCastClass(CSrGroup, pBaseRecord); UpdateStringMap(pGroup); } else { CSrRecord* pRecord = SrCastClass(CSrRecord, pBaseRecord); UpdateStringMap(pRecord); } } }
/*=========================================================================== * * Class CSrEcznRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrEcznRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_DATA) { m_pEncounterData = SrCastClass(CSrEcznDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrIpdsRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrIpdsRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_PNAM) { m_pPnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrDualRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrDualRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_DATA) { m_pDataData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrTactRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrTactRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_VNAM) { m_pVnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_FNAM) { m_pFnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MODL) { m_pModlData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_FULL) { m_pFullData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MODT) { m_pModtData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_PNAM) { m_pPnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrEfshRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrEfshRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_ICON) { m_pIconData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_ICO2) { m_pIco2Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM7) { m_pNam7Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM8) { m_pNam8Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_NAM9) { m_pNam9Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DATA) { m_pDataData = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrMiscRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrMiscRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_VMAD) { m_pVmadData = SrCastClass(CSrVmadSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MODT) { m_pModtData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DATA) { m_pMiscData = SrCastClass(CSrMiscDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_MODS) { m_pModsData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_YNAM) { m_pPickupSound = SrCastClass(CSrFormidSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_ZNAM) { m_pDropSound = SrCastClass(CSrFormidSubrecord, pSubrecord); } else { CSrItem1Record::OnAddSubrecord(pSubrecord); } }
/*=========================================================================== * * Class CSrEspFile Method - CSrTypeGroup* GetTypeGroup (Type); * *=========================================================================*/ CSrTypeGroup* CSrEspFile::GetTypeGroup (const srrectype_t Type) { CSrBaseRecord* pRecord; CSrGroup* pGroup; CSrTypeGroup* pTypeGroup; dword Index; /* Search all top level groups for a match */ for (Index = 0; Index < m_Records.GetNumRecords(); ++Index) { pRecord = m_Records.GetRecords().GetAt(Index); if (!pRecord->IsGroup()) continue; pGroup = SrCastClass(CSrGroup, pRecord); if (pGroup == NULL) continue; if (pGroup->GetType() != SR_GROUP_TYPE) continue; pTypeGroup = SrCastClass(CSrTypeGroup, pGroup); if (pTypeGroup == NULL) continue; if (Type == pTypeGroup->GetContainsType()) return (pTypeGroup); } return (NULL); }
/*=========================================================================== * * Class CSrTxstRecord Event - void OnAddSubrecord (pSubrecord); * *=========================================================================*/ void CSrTxstRecord::OnAddSubrecord (CSrSubrecord* pSubrecord) { if (pSubrecord->GetRecordType() == SR_NAME_TX05) { m_pTx05Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DNAM) { m_pDnamData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TX00) { m_pTx00Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TX01) { m_pTx01Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_DODT) { m_pDodtData = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TX03) { m_pTx03Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TX07) { m_pTx07Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TX02) { m_pTx02Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else if (pSubrecord->GetRecordType() == SR_NAME_TX04) { m_pTx04Data = SrCastClass(CSrDataSubrecord, pSubrecord); } else { CSrIdRecord::OnAddSubrecord(pSubrecord); } }