[lokisetup] Setting the Current Path
Ryan C. Gordon
icculus at clutteredmind.org
Fri Jul 5 14:01:31 EDT 2002
> I'm using Loki Setup as the installation program for one of my games,
> and I was wondering what the common way was to get the path the game's
> installed in. My game is installed in, say, /usr/local/games/my_game,
> and I need to get data out of files in /usr/local/games/my_game/data,
> but internally, my game only has the path as "data/whatever.dat". Is
> there a function for Linux/Win32/MacOS to get the directory the binary
> is being run from, so I could set the current directory to that, or is
> there a better way to do this? Should I have Loki Setup write some sort
> of ~/.my_game/path file and grab that everytime the game starts? What is
> normally done for this?
PhysicsFS has code to determine this at runtime; you can either use that
library, or (if your program is GPL/LGPL) cut-and-paste it from PhysicsFS.
http://cvs.icculus.org/horde/chora/co.php/platform/unix.c?rt=physfs&r=1.29
(Look at __PHYSFS_platformCalcBaseDir(). This is the internal means of
determining it under Linux. It will need argv[0] from your main()
function to work).
PhysicsFS has ways to determine this on Win32, MacOS and BeOS, too.
Loki_setup could theoretically write out a file with path information, but
you are in the same boat still; Unix programs can be run from current
working directory that is not the base path of the program, so how would
you know what file to open?
--ryan.
More information about the Lokisetup
mailing list