Originally posted by taylor
It's meant for the FS1 specific build (MAKE_FS1 to true in Makefile) from icculus.org CVS. It's not meant to work in an unmodified FS2 engine, but instead the modified FS2->FS1 engine.
Hrm. I'll keep that in mind; it'd be nice to be able to play FS1 with the original files, I've never been able to get the port fully working properly.
Should work fine under 64-bit Linux, if you are referring to the icculus.org version anyway, which has been properly ported. If you are referring to something of your own creation then you can use the icculus.org version of scramble as a basis for the changes needed. If you've got source I don't mind taking a look and pointing out whatever you might be missing.
Actually, I grabbed the library from descent-net, removed the Win32 API stuff, changed some sizeof()s to reflect a 32-bit file format, and added a main().
Don't know why not. What's the linking problem?
gcc cfileextractor.cpp -I .. -I /usr/include/SDL/ -D SCP_UNIX /usr/lib/libstdc++.so.60 -o "cfileextract"
/tmp/ccH8DRyl.o(.gnu.linkonce.t._ZNSt14__simple_allocI11vp_fileinfoSt24__default_alloc_templateILb1ELi0EEE10deallocateEPS0_m+0x2a): In function `std::__simple_alloc >::deallocate(vp_fileinfo*, unsigned long)':
: undefined reference to `std::__default_alloc_template<(bool)1, (int)0>::deallocate(void*, unsigned long)'
/tmp/ccH8DRyl.o(.gnu.linkonce.t._ZNSt14__simple_allocI11vp_fileinfoSt24__default_alloc_templateILb1ELi0EEE8allocateEm+0x2a): In function `std::__simple_alloc >::allocate(unsigned long)':
: undefined reference to `std::__default_alloc_template<(bool)1, (int)0>::allocate(unsigned long)'
collect2: ld returned 1 exit status
make: *** [cfileextract] Error 1
I'm actually having a similar problem with my VP lib - linked with 5, it inexplicably thinks file_entry.size != 0, even though output before and after shows it as such, meaning that all the directories are seen as files.
True, I only changed the code to allow it to properly decrypt the orginal files. I didn't want to modify anything to actually read all of the old tbls without conferring with Goober first. I figured FSPort would rather use the newer tbl formats whenever possible so it would be wasted work.
Well, it'd be nice to be able to use fs2_open to run FS1, the demo, or retail FS2. Making fields optional is also good for modular tables. I haven't actually done this yet, but if you init the values as soon as you allocate memory for new entries in a tbl, you could use a modular table to selectively replace values that you want - so a Ulysses beef-up mod would work alongside a Ulysses big fireball mod. I imagine FS2 added some 'required' fields to various tables, making those optional would be handy.
At any rate, I'd certainly love to be able to use the same executable to run FS1 and FS2, it saves on HD space and means half the compile-time to sync to CVS.