NOTES: ------ Have code that adds a hallway (a CREF) to the Test Room cell. Adding subsub records is a complicated task CEsmSubFRMR* frmr; CreatePointerL(frmr, CEsmSubFRMR); frmr->SetType(MWESM_SUBREC_FRMR); frmr->SetValue(4); frmr->SetRecordSize(4); It's possible I want to create an AllocateSubRecord for EsmSubBase similar to the one found in Record. Don't know how important keeping RecordSize correct is Adding the hallway, a CREF subrecord, involved three subsub records: FRMR, NAME, and DATA, these are required want to wrap that up nicely, and have options for the optinal subrecords (see format). Had to add the CEsmSubFRMR class as it was missing. The main thing with FRMR is that it contains the index of the object in the cell, other than that other information is consistent. CreateNew is needed to initialize lots of data structures e.g: CEsmSubPos6* pos; CreatePointerL(pos, CEsmSubPos6); pos->SetType(MWESM_SUBREC_DATA); pos->SetRecordSize(24); pos->CreateNew(); pos6data_t* pPosData = pos->GetPosData(); before CreateNew call GetPosData() was returning random memory addresses TODO: ----- * write an Allocate function for sub records * write an add CREF function * write a pretty print utility for an esp file listing at least record heirarchy, types, and names/ids