VirtualFileSystem: Difference between revisions
| Line 6: | Line 6: | ||
==Archive Hierarchy== | ==Archive Hierarchy== | ||
When loading a new archive (sdz, sd7, sdd) it overrides existing file references in the VFS, so the order archives are loaded is very important. So here it is: | When loading a new archive (sdz, sd7, sdd) it overrides existing file references in the VFS, so the order archives are loaded is very important. So here it is: | ||
* raw fs (only for unsynced data) | |||
* map | |||
** map archive itself | |||
** map dependencies | |||
** maphelper.sdz | |||
* game | * game | ||
** game archive itself | |||
** game dependencies | |||
** springcontent.sdz | ** springcontent.sdz | ||
** | *** bitmaps.sdz | ||
* | (top most are checked first when accessing a file) | ||
==Extra Informations== | ==Extra Informations== | ||
Revision as of 13:09, 26 August 2011
Development < VirtualFileSystem
VFS
The Virtual File System is an unified layer to access the different archives used at runtime. So you can access map, game & config files via the same interface.
Archive Hierarchy
When loading a new archive (sdz, sd7, sdd) it overrides existing file references in the VFS, so the order archives are loaded is very important. So here it is:
- raw fs (only for unsynced data)
- map
- map archive itself
- map dependencies
- maphelper.sdz
- game
- game archive itself
- game dependencies
- springcontent.sdz
- bitmaps.sdz
(top most are checked first when accessing a file)
Extra Informations
Spring's VFS is lowercase only. Also it is extremely recommended to use linux style path separators, e.g. "foo/bar.txt" and not "foo\bar.txt".
Engine Read Files
The engine access a few files directly, most of them are lua files which access other files themselves. Here the list of files that must exist in the VFS (some of them don't have to be in the game/map archive cause there are fallback solutions in springcontent.sdz & maphelper.sdz):
- ./
- anims/
- gamedata/
- luagaia/
- main.lua
- draw.lua
- luarules/
- main.lua
- draw.lua
- luaui/
- main.lua
- shaders/
- ?
- luaai.lua
- mapinfo.lua
- mapoptions.lua
- modinfo.lua
- modoptions.lua
- validmaps.lua