LfdReader
Library file for editing LucasArts *.LFD files
Install / Use
/learn @MikeG621/LfdReaderREADME
Idmr.LfdReader.dll
Author: Michael Gaisser
Library for editing LucasArts *.LFD resource files.
Latest Release
v2.5, 14 Feb 2026
- (DELT) DecodeImage now checks for negative width/height validation directly to avoid overhead of catching an Exception.
- (DELT) Fixed DecodeImage not processing the final rows if there's skips/blanks.
- (ANIM) FrameCollection now takes the number of frames as an argument.
Additional Information
Dependencies
- Idmr.Common (v1.1 or later)
- Idmr.ImageFormat.Act (v2.0 or later), necessary only for LfdReader.Xact
File structure information per resource is found in the individual class files.
Programmer's reference can be found in the help file.
Version History
v2.4, 02 Feb 2025
- (Resource) Added Dirty() to allow manual setting of internal modified flag.
- (MASK) Fixed the Height calculation
- (MASK) Fixed the 00 processing and corner cases
- (PANL) Fixed processing the FC Opcode to properly modify the ColorIndex
- (MTRX) Initial pass created. Full Frame details aren't broken out yet, though structure is prety much known.
v2.3, 16 Jul 2023
- (FILM) Chunk Opcodes added or renamed:
- SetColorRange = 0x10, new for VIEW
- Unknown11 is now ApplyPalette for VIEW
- Unknown13 is now Toggle for VOIC
- SetVolume = 0x15, new for VOIC
- Unknown16 = 0x16, new for VOIC
- Renames left originals in place as Depcrecated, not a breaking change.
- (PLTT) Added the newly discovered IndexRotator as read only values, discussed in Issue #4.
v2.2, 01 Apr 2023
- (CRFT, CPLX, SHIP) Added the IsTwoSided and IsGouraudShaded properties to Shape per discussion in Issue #3.
- Minor XML updates
v2.1, 30 Oct 2022
- (CRFT) Can now convert wireframe data to SHIP, but not raw data
- (CPLX) Can now convert wireframe data to SHIP, but not raw data
- (CRFT, CPLX, SHIP) Now calculates the Lines in a mesh during Decode.
v2.0, 09 Mar 2021
- (ANIM) Fixed the retrieval of Frames when RelativePosition is turned on.
- (BLAS) Added GetWavBytes() to make audio playback easier, reformats data to .WAV.
- (BLAS) Added Duration property to get audio length in seconds.
- (FILM) Added ToString() to Block and Chunk.
- (FONT) TotalChars renamed to NumberOfGlyphs (breaking change).
- (CRFT) New.
- (CPLX) New.
- (SHIP) New.
- (Resource) Adlb, Btmp, Crft, Cplx, Rlnd, and Ship added to ResourceType.
- various updates.
v1.2.1, 02 Sep 2019
- (BLAS) Fixed a crash that occur during Decode for VOIC types. [Issue #1]
v1.2, 12 Jul 2016
- _isModifed edits.
- (ANIM) removed old code duplicating DELT data.
- (FONT) Fixed EncodeResource with large Strides.
- (FONT) added _baseLine.
- (LfdFile) Always zeroes out name before write.
- (LfdFile) Only encodes children if they report being modified.
- various other tweaks.
v1.1, 14 Dec 2014
- Changed license to MPL.
- (ANIM) SetCount and IsModified implementation in FrameCollection.
v1.0, 05 Dec 2011
- Release.
Copyright Information
Copyright © 2009-2025 Michael Gaisser
This library file and related files are licensed under the Mozilla Public License
v2.0 or later. See License.txt for further details.
"Star Wars" and related items are trademarks of LucasFilm Ltd and LucasArts Entertainment Co.
