Editing Darkplaces virtual file system

Jump to: navigation, search

Warning: You are not logged in.

Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{TOCRIGHT}}
+
Darkplaces virtual file system is file table that combines real file system and files stored in game archives.
Darkplaces virtual file system is overlay file table that combines real file system and files stored in [[PK3]] and [[PAK]] game archives.
+
  
 
The goals it provides:
 
The goals it provides:
  
* transparent access to separate gamedir storing all writeable files (My Documents/My Games)
+
* opaque access to separate gamedir storing all writeable files (My Documents/My Games)
 
* access files in archives just like they were stored on HDD
 
* access files in archives just like they were stored on HDD
 
* mod support (mods can override files, add new files)
 
* mod support (mods can override files, add new files)
 
* safety (gamecode cannot damage game files)
 
* safety (gamecode cannot damage game files)
  
== How file table is maked ==
+
= How file table is maked =
  
 
# First gamedir is processed
 
# First gamedir is processed
Line 17: Line 16:
 
# Next gamedir is processed
 
# Next gamedir is processed
  
== Quirks ==
+
= Quirks =
  
 
Since virtual file system is, effectively, an abstraction layer, it has its own quirks.
 
Since virtual file system is, effectively, an abstraction layer, it has its own quirks.
  
====1. Homedir may be different than gamedir====
+
=== 1. Homedir may be different than basedir ===
  
 
This means config.cfg, screenshots etc. are stored in different directory, like in "My Documents/My Games/gamedir"
 
This means config.cfg, screenshots etc. are stored in different directory, like in "My Documents/My Games/gamedir"
  
====2. For written files, "data/" are automatically added====
+
=== 2. For written files, "data/" are automatically added ===
  
When QC writes any files, engine automatically adds 'data/' to the path, so gamecode cannot damage game files, maps etc. But file read is not the same. It could read files from base directory, open maps etc.
+
When QC writes any files, system automatically adds 'data/' to the path, so gamecode cannot damage game files, maps etc. But file read is not the same. It could read files from base directory, open maps etc. So if you write, for examplem foo.txt (which will be written to data/foo.txt) and have foo.txt in basedir, you should set path "data/foot.txt" when reading the file, and set path "foo.txt" when writing. If you dont, you will write to file under "data/", but read file that is in basedir.
  
So if you write, for example, foo.txt (which will be written to data/foo.txt) and have foo.txt in gamedir, you should set path "data/foo.txt" when reading the file, and set path "foo.txt" when writing. If you dont, you will write to file under "data/", but read file that is in gamedir.
+
=== 3. "." and ".." is no allowed ===
  
====3. "./" and "../" is not allowed====
+
To protect gamecode from damaging files, any use of "." and ".." directory operators is forbidden.
 
+
To protect gamecode from damaging files, any use of "." and ".." path operators is forbidden.
+
 
+
====4. Not fully integrated with map editor====
+
 
+
Map editor do not support Virtual File System in model selection dialogue (entity inspector), it only can select real files. This is not a problem with developed version of Blood Omnicide (SVN working copy with test installation), but release verson SDK should make sure all game models is unpacked in order to make editor see them in model selection dialog box.
+
 
+
[[Category:Darkplaces engine]]
+
{{finished}}
+

Please note that all contributions to Blood Wiki are considered to be released under the Creative Commons Attribution Share Alike (see BloodWiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)

Templates used on this page:

This page is a member of 1 hidden category:

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox