[physfs] descent and physfs
btb at icculus.org
Tue Mar 18 02:46:18 EST 2003
Quoting "Ryan C. Gordon" <icculus at clutteredmind.org>:
> > ARJ would also be pretty useful to have, as it would enable d2x to
> > read its data directly from the CD.
> Is there a spec for ARJ format somewhere?
Not that I know of, but there is a GPL'd implementation at
http://arj.sourceforge.net and the non-free (but simpler?) unarj implementation
> > One feature that would be important to have is case-insensitivity.
> > This is easy enough to add to my drivers, and I noticed that the qpak
> > driver is case-insensitive. But I was thinking: shouldn't this be a
> > feature that can be turned on and off, and in order to be consistent,
> > shouldn't all the drivers be capable of being case-insensitive?
> > including the DIR driver?
> Good question...the current (documented) assumption is that any given dir
> or archive may be case sensitive, so good practice is to always assume
> that this is true and code with it mind.
> The qpak driver was changed because the only thing that presumably will
> use it is legacy code (specifically, Quake 2), which does not use good
> practice in this respect.
That's basically the case for descent as well, so if it had to be one or the
other, hog and mvl files should be treated as case-insensitive.
> Still, perhaps a more explicit means to do this might be useful, since
> file case IS a big stumbling block in game portability...
> PHYSFS_caseIsSignificant(int TrueOrFalse) or something like that.
That's pretty much what I was envisioning. If this was to be implemented, what
would be the mechanism behind case-insensitivity in the DIR archiver?
> Besides an API addition, it would take some backend work (to ignore case
> on Unix and NOT ignore it on win32).
how do you not ignore case on win32?
> Alternately, this could be done at a higher level with the
> PHYSFS_enumerateFile() function, but that's a question of efficiency.
By that, you mean that the when the client needs a file, it (the client) would
enumerate and then compare case-insensitively against each item in the list,
until it finds what it's looking for, right?
More information about the physfs