------------------------------------------------------------------------------------------------
| 751 | |
| 752 | // ------------------------------------------------------------------------------------------------ |
| 753 | void LWOImporter::LoadNodeTag(unsigned int size) { |
| 754 | LE_NCONST uint8_t *const end = mFileBuffer + size; |
| 755 | |
| 756 | while (true) { |
| 757 | if (mFileBuffer + 8 >= end) |
| 758 | break; |
| 759 | |
| 760 | IFF::ChunkHeader head = IFF::LoadChunk(mFileBuffer); |
| 761 | int bufOffset = 0; |
| 762 | if (head.type == AI_IFF_FOURCC_FORM) { // not chunk, it's a form |
| 763 | mFileBuffer -= 8; |
| 764 | head = IFF::LoadForm(mFileBuffer); |
| 765 | bufOffset = 4; |
| 766 | } |
| 767 | |
| 768 | if (mFileBuffer + head.length > end) { |
| 769 | throw DeadlyImportError("LWO3: cannot read length; LoadNodeTag"); |
| 770 | } |
| 771 | |
| 772 | uint8_t *const next = mFileBuffer + head.length; |
| 773 | mFileBuffer += bufOffset; |
| 774 | |
| 775 | switch (head.type) { |
| 776 | case AI_LWO_NDTA: |
| 777 | LoadNodeData(head.length); |
| 778 | break; |
| 779 | } |
| 780 | |
| 781 | mFileBuffer = next; |
| 782 | } |
| 783 | } |
| 784 | |
| 785 | // ------------------------------------------------------------------------------------------------ |
| 786 | void LWOImporter::LoadNodeData(unsigned int size) { |
nothing calls this directly
no test coverage detected