Having said that, it's not exactly a trivial task - dealing with separate files is easier than dealing with separate character streams.
White Fire
Having said that, it's not exactly a trivial task - dealing with separate files is easier than dealing with separate character streams.
White Fire
To begin with all you require is abstractions of the file IO functions. When you're devloping, your IO functions connect directly to the actual files. At a later date you can make new functions that read from packages.
The most basic form of package file is just all of the files concatenated preceded by a table of name/offset information. The abstracted fileopen command would read the name from the table and then seek to the appopriat place in the file.
You should be able to write one of these in less than a day. Definately in less time it would take you to find one on the net that does what you want.
If you want to do compression zlib is a good option. Or LZO if you want less compression and faster reads.
http://www.cdrom.com/pub/infozip/zlib/ http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html
I've got a putative page up for it at http://www.fensende.com/zpp .
I haven't released anything yet, but I'm almost to the stage where I need it for my game, and will be getting it ready for release (open source, BSD style license) soon.
One of the nicest features that I've put in, is the ability to have "patch" zip files; where files in one archive have priority over a file with the same name in a different archive.
Joe-bob says: check it out.
-- Pryankster
The first release of the ZPP library (including full source and VC++ project files to get started) is at http://www.fensende.com/zpp .
-- Pryankster