NIFs from outside the archive

Everything about development and the OpenMW source code.
User avatar
Site Admin
Posts: 1193
Joined: 05 Aug 2011, 22:21
Location: Wroclaw, Poland

NIFs from outside the archive

Post by lgromanowski » 11 Aug 2011, 20:37

Zini wrote: Is OpenMW currently capable of loading non-archived NIFs, i.e. NIF files outside the bsa file? If not, could this feature be added to the roadmap?
I think OpenMW would benefit from a wider range of testing and with this feature available I could test it against an up-to-date version of Redemption.
nicolay wrote: OpenMW reads all the NIFs through the Ogre VFS / resource system (using the Mangle interfaces.) So it's just a matter of handing the FileSystem path you want as a resource location to Ogre. You can also read the NIFs from zip files and any other supported resource location.
Zini wrote: I see. I added a --master command line option for selecting a different masterfile. The maintest function is getting a bit long though. Maybe I will have a go at refactoring the whole main.cpp file.

I have not found any information about the handling of bsa files. My guess is, that Morrowind looks for a bsa file of the same name as the masterfile. At least that seems to be a reasonable algorithm. This behaviour is currently implemented.

As far as I can see we can handle only one master file per run. That is a problem we will have to address eventually.

Also, I did a preliminary test with Redemption. Didn't work:
marc:~/OpenMW/build$ ./openmw --start "Dungeon Destard, Level 1" --master "TOE-Redemption_0.91.esm"
Hello, fellow traveler!
Your data directory for today is: /home/marc/OpenMW/build/data
Initializing OGRE
Loading ESM /home/marc/OpenMW/build/data/TOE-Redemption_0.91.esm

ERROR: ESM Error: Expected subrecord TEXT but got FNAM
File: /home/marc/OpenMW/build/data/TOE-Redemption_0.91.esm
Record: ALCH
Subrecord: FNAM
Offset: 0x4f697b
Zini wrote: I added the "Meshes" and "Textures " directory as Ogre resources locations. I guess, the Redemption compatibility issue is best discussed in another thread.
best regards,