- Added new Files and Folders which are used for VFS and Multiplayer

- Updated XML files in Data\TableData
- Moved Document files to new folder named "Docs"

git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@1134 4f8fa57e-7814-0410-bad4-adc449f26b7c
This commit is contained in:
Wanne
2009-06-04 21:09:26 +00:00
parent 44652a9911
commit 89ffa5f5ec
20 changed files with 971 additions and 514 deletions
Binary file not shown.
-92
View File
@@ -1,95 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<POCKETLIST> <POCKETLIST>
<POCKET>
<pIndex>0</pIndex>
<pName>Nothing</pName>
</POCKET>
<POCKET>
<pIndex>1</pIndex>
<pName>枪背带</pName>
</POCKET>
<POCKET>
<pIndex>2</pIndex>
<pName>刀套</pName>
</POCKET>
<POCKET>
<pIndex>3</pIndex>
<pName>车辆</pName>
</POCKET>
<POCKET>
<pIndex>4</pIndex>
<pName>大号通用包</pName>
</POCKET>
<POCKET>
<pIndex>5</pIndex>
<pName>战斗包</pName>
</POCKET>
<POCKET>
<pIndex>6</pIndex>
<pName>弹链包</pName>
</POCKET>
<POCKET>
<pIndex>7</pIndex>
<pName>冲锋枪套</pName>
</POCKET>
<POCKET>
<pIndex>8</pIndex>
<pName>中号通用包</pName>
</POCKET>
<POCKET>
<pIndex>9</pIndex>
<pName>长弹匣包</pName>
</POCKET>
<POCKET>
<pIndex>10</pIndex>
<pName>突击步枪弹匣包</pName>
</POCKET>
<POCKET>
<pIndex>11</pIndex>
<pName>手枪套</pName>
</POCKET>
<POCKET>
<pIndex>12</pIndex>
<pName>冲锋枪弹匣包</pName>
</POCKET>
<POCKET>
<pIndex>13</pIndex>
<pName>枪榴弹包</pName>
</POCKET>
<POCKET>
<pIndex>14</pIndex>
<pName>手榴弹包</pName>
</POCKET>
<POCKET>
<pIndex>15</pIndex>
<pName>手枪弹匣包</pName>
</POCKET>
<POCKET>
<pIndex>16</pIndex>
<pName>极小号通用包</pName>
</POCKET>
<POCKET>
<pIndex>17</pIndex>
<pName>小号通用包</pName>
</POCKET>
<POCKET>
<pIndex>18</pIndex>
<pName>水壶包</pName>
</POCKET>
<POCKET>
<pIndex>19</pIndex>
<pName>快速上弹器包</pName>
</POCKET>
<POCKET>
<pIndex>20</pIndex>
<pName>医疗用品包</pName>
</POCKET>
<POCKET>
<pIndex>21</pIndex>
<pName>注射器包</pName>
</POCKET>
<POCKET>
<pIndex>22</pIndex>
<pName>双弹链包</pName>
</POCKET>
</POCKETLIST> </POCKETLIST>
-92
View File
@@ -1,95 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<POCKETLIST> <POCKETLIST>
<POCKET>
<pIndex>0</pIndex>
<pName>Nothing</pName>
</POCKET>
<POCKET>
<pIndex>1</pIndex>
<pName>Gun Sling</pName>
</POCKET>
<POCKET>
<pIndex>2</pIndex>
<pName>Knife</pName>
</POCKET>
<POCKET>
<pIndex>3</pIndex>
<pName>Vehicle</pName>
</POCKET>
<POCKET>
<pIndex>4</pIndex>
<pName>General Large</pName>
</POCKET>
<POCKET>
<pIndex>5</pIndex>
<pName>Combat Pack</pName>
</POCKET>
<POCKET>
<pIndex>6</pIndex>
<pName>Ammo Belt</pName>
</POCKET>
<POCKET>
<pIndex>7</pIndex>
<pName>SMG Holster</pName>
</POCKET>
<POCKET>
<pIndex>8</pIndex>
<pName>Medium General</pName>
</POCKET>
<POCKET>
<pIndex>9</pIndex>
<pName>LgMagPocket</pName>
</POCKET>
<POCKET>
<pIndex>10</pIndex>
<pName>AR Mag</pName>
</POCKET>
<POCKET>
<pIndex>11</pIndex>
<pName>Pistol Holster</pName>
</POCKET>
<POCKET>
<pIndex>12</pIndex>
<pName>SMG Mag</pName>
</POCKET>
<POCKET>
<pIndex>13</pIndex>
<pName>Rifle Grenade</pName>
</POCKET>
<POCKET>
<pIndex>14</pIndex>
<pName>Grenade</pName>
</POCKET>
<POCKET>
<pIndex>15</pIndex>
<pName>Pistol Mag</pName>
</POCKET>
<POCKET>
<pIndex>16</pIndex>
<pName>Tiny General</pName>
</POCKET>
<POCKET>
<pIndex>17</pIndex>
<pName>Small General</pName>
</POCKET>
<POCKET>
<pIndex>18</pIndex>
<pName>Belt Clip</pName>
</POCKET>
<POCKET>
<pIndex>19</pIndex>
<pName>Speedloader</pName>
</POCKET>
<POCKET>
<pIndex>20</pIndex>
<pName>Medical Pocket</pName>
</POCKET>
<POCKET>
<pIndex>21</pIndex>
<pName>Syringe Pocket</pName>
</POCKET>
<POCKET>
<pIndex>22</pIndex>
<pName>Double Belt</pName>
</POCKET>
</POCKETLIST> </POCKETLIST>
+88
View File
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<AMMOLIST>
<AMMO>
<uiIndex>0</uiIndex>
<AmmoCaliber>0</AmmoCaliber>
<BRCaliber>0</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>1</uiIndex>
<AmmoCaliber>.38 Spc</AmmoCaliber>
<BRCaliber>.38 Spc</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>2</uiIndex>
<AmmoCaliber>9x19mm</AmmoCaliber>
<BRCaliber>9x19mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>3</uiIndex>
<AmmoCaliber>.45 ACP</AmmoCaliber>
<BRCaliber>.45 ACP</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>4</uiIndex>
<AmmoCaliber>.357 Mag</AmmoCaliber>
<BRCaliber>.357 Mag</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>5</uiIndex>
<AmmoCaliber>12 gauge</AmmoCaliber>
<BRCaliber>12 gauge</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>6</uiIndex>
<AmmoCaliber>CAWS</AmmoCaliber>
<BRCaliber>CAWS</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>7</uiIndex>
<AmmoCaliber>5.45x39mm</AmmoCaliber>
<BRCaliber>5.45x39mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>8</uiIndex>
<AmmoCaliber>5.56x45mm</AmmoCaliber>
<BRCaliber>5.56x45mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>9</uiIndex>
<AmmoCaliber>7.62x51mm</AmmoCaliber>
<BRCaliber>7.62x51mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>10</uiIndex>
<AmmoCaliber>7.62x39mm</AmmoCaliber>
<BRCaliber>7.62x39mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>11</uiIndex>
<AmmoCaliber>4.7x33mm</AmmoCaliber>
<BRCaliber>4.7x33mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>12</uiIndex>
<AmmoCaliber>5.7x28mm</AmmoCaliber>
<BRCaliber>5.7x28mm</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>13</uiIndex>
<AmmoCaliber>Monster</AmmoCaliber>
<BRCaliber>Monster</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>14</uiIndex>
<AmmoCaliber>Rocket</AmmoCaliber>
<BRCaliber>Rocket</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>15</uiIndex>
<AmmoCaliber>Dart</AmmoCaliber>
<BRCaliber>Dart</BRCaliber>
</AMMO>
<AMMO>
<uiIndex>16</uiIndex>
<AmmoCaliber>flame</AmmoCaliber>
<BRCaliber>flame</BRCaliber>
</AMMO>
</AMMOLIST>
+3
View File
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<POCKETLIST>
</POCKETLIST>
-92
View File
@@ -1,95 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<POCKETLIST> <POCKETLIST>
<POCKET>
<pIndex>0</pIndex>
<pName>Nothing</pName>
</POCKET>
<POCKET>
<pIndex>1</pIndex>
<pName>Gun Sling</pName>
</POCKET>
<POCKET>
<pIndex>2</pIndex>
<pName>Knife</pName>
</POCKET>
<POCKET>
<pIndex>3</pIndex>
<pName>Vehicle</pName>
</POCKET>
<POCKET>
<pIndex>4</pIndex>
<pName>General Large</pName>
</POCKET>
<POCKET>
<pIndex>5</pIndex>
<pName>Combat Pack</pName>
</POCKET>
<POCKET>
<pIndex>6</pIndex>
<pName>Ammo Belt</pName>
</POCKET>
<POCKET>
<pIndex>7</pIndex>
<pName>SMG Holster</pName>
</POCKET>
<POCKET>
<pIndex>8</pIndex>
<pName>Medium General</pName>
</POCKET>
<POCKET>
<pIndex>9</pIndex>
<pName>LgMagPocket</pName>
</POCKET>
<POCKET>
<pIndex>10</pIndex>
<pName>AR Mag</pName>
</POCKET>
<POCKET>
<pIndex>11</pIndex>
<pName>Pistol Holster</pName>
</POCKET>
<POCKET>
<pIndex>12</pIndex>
<pName>SMG Mag</pName>
</POCKET>
<POCKET>
<pIndex>13</pIndex>
<pName>Rifle Grenade</pName>
</POCKET>
<POCKET>
<pIndex>14</pIndex>
<pName>Grenade</pName>
</POCKET>
<POCKET>
<pIndex>15</pIndex>
<pName>Pistol Mag</pName>
</POCKET>
<POCKET>
<pIndex>16</pIndex>
<pName>Tiny General</pName>
</POCKET>
<POCKET>
<pIndex>17</pIndex>
<pName>Small General</pName>
</POCKET>
<POCKET>
<pIndex>18</pIndex>
<pName>Belt Clip</pName>
</POCKET>
<POCKET>
<pIndex>19</pIndex>
<pName>Speedloader</pName>
</POCKET>
<POCKET>
<pIndex>20</pIndex>
<pName>Medical Pocket</pName>
</POCKET>
<POCKET>
<pIndex>21</pIndex>
<pName>Syringe Pocket</pName>
</POCKET>
<POCKET>
<pIndex>22</pIndex>
<pName>Double Belt</pName>
</POCKET>
</POCKETLIST> </POCKETLIST>
-92
View File
@@ -1,95 +1,3 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<POCKETLIST> <POCKETLIST>
<POCKET>
<pIndex>0</pIndex>
<pName>Nothing</pName>
</POCKET>
<POCKET>
<pIndex>1</pIndex>
<pName>Gun Sling</pName>
</POCKET>
<POCKET>
<pIndex>2</pIndex>
<pName>Knife</pName>
</POCKET>
<POCKET>
<pIndex>3</pIndex>
<pName>Vehicle</pName>
</POCKET>
<POCKET>
<pIndex>4</pIndex>
<pName>General Large</pName>
</POCKET>
<POCKET>
<pIndex>5</pIndex>
<pName>Combat Pack</pName>
</POCKET>
<POCKET>
<pIndex>6</pIndex>
<pName>Ammo Belt</pName>
</POCKET>
<POCKET>
<pIndex>7</pIndex>
<pName>SMG Holster</pName>
</POCKET>
<POCKET>
<pIndex>8</pIndex>
<pName>Medium General</pName>
</POCKET>
<POCKET>
<pIndex>9</pIndex>
<pName>LgMagPocket</pName>
</POCKET>
<POCKET>
<pIndex>10</pIndex>
<pName>AR Mag</pName>
</POCKET>
<POCKET>
<pIndex>11</pIndex>
<pName>Pistol Holster</pName>
</POCKET>
<POCKET>
<pIndex>12</pIndex>
<pName>SMG Mag</pName>
</POCKET>
<POCKET>
<pIndex>13</pIndex>
<pName>Rifle Grenade</pName>
</POCKET>
<POCKET>
<pIndex>14</pIndex>
<pName>Grenade</pName>
</POCKET>
<POCKET>
<pIndex>15</pIndex>
<pName>Pistol Mag</pName>
</POCKET>
<POCKET>
<pIndex>16</pIndex>
<pName>Tiny General</pName>
</POCKET>
<POCKET>
<pIndex>17</pIndex>
<pName>Small General</pName>
</POCKET>
<POCKET>
<pIndex>18</pIndex>
<pName>Belt Clip</pName>
</POCKET>
<POCKET>
<pIndex>19</pIndex>
<pName>Speedloader</pName>
</POCKET>
<POCKET>
<pIndex>20</pIndex>
<pName>Medical Pocket</pName>
</POCKET>
<POCKET>
<pIndex>21</pIndex>
<pName>Syringe Pocket</pName>
</POCKET>
<POCKET>
<pIndex>22</pIndex>
<pName>Double Belt</pName>
</POCKET>
</POCKETLIST> </POCKETLIST>
+60
View File
@@ -0,0 +1,60 @@
*****************************************************
** JA2 1.13 Multiplayer - Version 1.1 - 01/06/2009 **
*****************************************************
Bugs Fixed
==========
Fixed saving of ja2_mp.ini which leads to wrong initializing of HOST values. Now there is only ONE ja2_mp.ini inside the "Profiles/UserProfile" folder
Name Corruption in the turn bar
Turn bar was not updated on the clients, if Enemy got back its turn after interrupt
The file "transfer_rules.txt" did not allow "Umlaute"
CTD in Tactical when "Enforce Maximum AI" was selected in CO-OP after first enemy was killed
Possible CTD when client disconnects from game
When server is running in 640x480 and select NIV in host screen, it did not check if NIV is allowed and it was initialized with NIV even NIV is not allowed in 640x480
If you quit a MP game and start another one at night time it was still daytime in tactical placement GUI
Valid starting times (eg: 12:00, 00:30) was outputted as invalid times in the HOST screen
Added KIT_BAG to ja2_mp.ini when saving
Fixed teams not initialised properly when starting a new MP game
Changes / Improvements
======================
Some VFS improvements
Player Name can now only have 11 characters
Changed client colors in radarmap. Now they can be seen more easily and are more different
Disabled special features (merc capturing, ...) that could occur in a CO-OP game in tactical for multiplayer
Removed adding messages to the file log
Changed some MP message colors
Renamed "Client #n - 'PLAYER NAME'" from the turn bar to "#n - 'PLAYER NAME'"
New Features
============
*****************************************************
** JA2 1.13 Multiplayer - Version 1.0 - 19/05/2009 **
*****************************************************
Bugs Fixed
==========
Crash bug when shooting out windows or certain types of a missed shot
Fixed some tactical resources and buttons not being deallocated properly when disconnected from in-game to the main menu
Sometimes losing port settings from the JA2_mp.ini
Chat : Send to allies did sometimes not work for the second team in Team Deathmatch
Chat : Crash when entering a long uninteruptted string into chat
Changes / Improvements
======================
Chat : Changed chatlog text colour
Chat : Added PGUP - PGDN - END - HOME to chat log
Chat : Added Copy / Paste between Windows and the Game's text boxes (useful for copy/pase of Server IP and/or Port)
Chat : Added scrolling left and right of text to textboxes
Extra translation and Other language MP Buttons Graphics
TEMPORARY : Max mercs has been limited to 5 until the bugs with 6 are resolved
New Features
============
New Option for CO-Op : Maximum Enemy AIs ( always spawn 32 enemies on a map )
Version Checking : Clients and Server must be the same version to play
File Transfer : This great new feature means that servers are able to host mods ( modified gamedata for balance or maps ). For more on this feature see File_Transfer.txt
New Connecting screen : Incorporates file downloading progress and version checking as well as timeouts
Virtual File System : This powerful system makes it much easier to install mods, and a great way for us to store seperate settings per server
+68
View File
@@ -0,0 +1,68 @@
File Transfer
=============
This document explains how to set up and use the new File Transfer feature in JA2MP.
First off let it be clear that downloading files from a server will NOT overwrite any of your game files
or data. Files downloaded from any server are stored in a VFS profile (a folder) that is unique for that server.
This means that you can play on many different servers that have different settings and never have to worry
about your game data getting messed up.
1. Security
-----------
File transfer has two levels of built in security:
1) As a client connects to a server that wants to send files, they will be asked if they want
to proceed or disconnect without downloading anything.
2) Both the client and the server use the new VFS system by Birdflu. Clients can configure this
to filter out files / folders / filetypes they do not wish to recieve (transfer_rules.txt). If the server sends any of
these files they are ignored.
2. Setting up Files to send as a Server
---------------------------------------
To send files to a client, you need to set up a mod folder in your GAME DIRECTORY (in short: GAMEDIR) ( this is where your ja2.exe's
are stored ). You can call this mod folder whatever you like, "My Server" for example.
Per default, this folder is in your "GAMEDIR\MULTIPLAYER\Servers\My Server", but can also be in another location inside your GAMEDIR folder.
Once you have created a folder (the folder "GAMEDIR\MULTIPLAYER\Servers\My Server" should already be created), you can add the modified game files to it in the
relative places they would be stored under GAMEDIR\Data\ or GAMEDIR\Data-1.13\. For example put modified TABLEDATA xml files
into "GAMEDIR\MULTIPLAYER\Servers\My Server\TABLEDATA\" and the "ja2_Options.ini" inside the "GAMEDIR\MULTIPLAYER\Servers\My Server\" folder.
Once this is done you can host a game. Run the game and do the following on the HOST options screen:
1) Check the Sync MP Clients Directory option.
2) Enter 'MULTIPLAYER/Servers/My Server' or the name of your mod folder (do not start with the GAMEDIR folder), without the quotes (''). If your path is nested,
seperate the folder names with a forwardslash /. Eg 'MULTIPLAYER/Servers/My Server'
3) Host the game!
4) NOTE: Even if you do not want to send files to the client ("Sync. MP Clients Directory" option is unchecked)
the folder entered in "MP Sync directory" has to exist on the server, because this folder will be used in the first place for initializing files.
If the specificed files are not found in this folder it will look in the "Data-1.13" folder and then in the "Data" folder.
You will host the game as normal, now when clients connect you will see a blue progress bar behind their
name in the player list (in the Strategy Screen) so you can see how long they have left on thier downloads.
NOTE: you cannot START GAME until all players have finished downloading
3. Using File Transfer as a client
----------------------------------
Before you connect to the server you can set up the file "transfer_rules.txt" inside your GAMEDIR. There you can set any files to the "ignore list" which you would not receive from the server. Normally you do not need to change this file for the client. (The server is responsible for sending only valid files to the clients).
When you connect to a server that wishes to send you files, you will be asked if you wish to continue:
1) If you click YES, you will start downloading files from the server.
2) If you click NO, you will leave the game and go back to the Join screen.
When you are downloading files from the server you will see a progress bar so you can estimate remaining
time, you will also see the names of the files you are downloading. During this time you can also chat
with other players using the "Y" key.
Once all files are downloaded you will progress to the Strategy Screen where you can see if other players are
still downloading and how long they have left.
NOTE: The downloaded files are automatically stored on the client in the "GAMEDIR\MULTIPLAYER\Servers\Unique_Server_Id" folder.
Unique_Server_id will be a unique string (e.g: 4MWZX-5WUKF-BXJSQ-MWFCW-FDM5E) which identifies each different server.
The folder "GAMEDIR\MULTIPLAYER\Servers\Unique_Server_Id" will always be created (if not exists) even if the server does not send any files.
This folder "GAMEDIR\MULTIPLAYER\Servers\Unique_Server_Id" will be used in the first place for initializing GameDir files.
If the specificed files are not found in this folder it will look in the "Data-1.13" folder and then in the "Data" folder.
+342
View File
@@ -0,0 +1,342 @@
------------- Howto setup the Virtual File System (VFS) -------------
v 1.0 by BirdFlu
***********************************
I. Introduction
***********************************
The Virtual File System (VFS) manages file handling and offers a unified
view on the file system at game runtime. All files are accessible through
a path inside the VFS. During the setup, files and directories can be mapped
to a specified location in the VFS independent of its real location on the
hard disc. Additionally to the mapping of real files and directories, also
file archives can be mapped. Only SLF and uncompressed 7z archives are
supported right now.
The current layout of the VFS is based on the original Ja2 game data directory,
i.e. the data directory is the root directory of the VFS. Further, there are
directories that are defined by the original SLF archives (Anims, BigItems,
Sounds etc.). These archives build the basic layer and on top of that come the
files from the Data directory. So, whenever a file is accessed (with path/filename
e.g. Tilesets/0/smguns.sti), the game looks in the Data directory first, and when
the file cannot be found there, it looks in the according archive (tilesets.slf
in this case).
The 1.13 Mod adds another layer on top, which is the Data-1.13 directory that
behaves in the same way as the Data directory. That is, when a file is accessed,
the game looks in the Data-1.13 directory first and only then continues with the
previously described steps.
The VFS extends this system even further. It externalizes the definition and
configuration of these layers or profiles (as they are called in the VFS jargon)
and allows for an unlimited number of them. Additionally the 7z file (uncompressed)
archive format is supported. Now the order of inclusion of the profiles and the
actual files and directories lie in the hands of the user. Thus a proper
configuration of the VFS is required.
***********************************
II. Configuration
***********************************
The configuration of the VFS is done in an ini file (vfs_config.ini). You can
specify the filename in ja2.ini in key VFS_CONFIG_INI (section : Ja2 Settings).
If you don't do it, it defaults to vfs_config.ini.
But lets define some basic terms(bottom to top), first.
II.1 Glossary
===================================
Location : A location can either be a real directory or a file archive. All files
inside these loactions are mapped into the VFS (recursively, i.e. contents of
subdirectories are also mapped). The user can specify the path inside the VFS
into which the external files are mapped.
Profile : A profile is a named collection of locations. It is encouraged to define
a new profile for every mod and it is also encouraged to keep the data of this
mod "together". That is, the profile can define a profile root directory to
which the location directories are appended during initialization. (Keeping the
profile root empty gives you the possibility to stick together directories from
very different places on your hard disc. A better solution is to define a new
profile for non-related directories).
Profile List (Stack) : Finally, the VFS is build from a list of profiles, where
the list is proccessed from left to right, i.e. the leftmost will be included
first and the rightmost profile will be included last (on the top of the stack).
During file access, the profiles are processed in reverse inclusion order. A
file search will start in the rightmost profile and will continue to the left.
Profile mode : a profile can be defined as read-only (default) or as read-write.
You cannot write to a read-only profile. As there are some files that have to
be written (temporary file, savegames, logs, etc.) you have to define at least
one profile as read-write. Usually this should be the top (rightmost) profile.
Otherwise you could end up blocking a writable file with a read-only file.
II.2 Basic configuration
===================================
Lets start with a basic configuration.
II.2.1 main section
-----------------------------------
The ini file start with
[vfs_config]
PROFILES = profile1, profile2, profile3, ...
The value of the key PROFILES is a list of profile names. For every element
(profile) in this list another section must exist that has the format
[PROFILE_$name], where $name is a value from the profile list
(e.g. [PROFILE_profile1].
II.2.2 profiles
-----------------------------------
[PROFILE_profile1]
NAME = Some Arbitrary Name (probably a mod's Name)
LOCATIONS = location1, location2, loaction 3
PROFILE_ROOT = Profiles\mod1
WRITE = TRUE
Each profile definition must have a NAME key and also a LOCATIONS key. The value
of NAME can be used inside the game to access the data of the specified profile.
The value of LOCATIONS is again a list of location names. Additionally a
PROFILE_ROOT path can be specified that will be prepended to all paths defined
in the location sections. A profile can have the WRITE property (default is FALSE).
At least one such profile must exist, as this is the place where temporary files
will be saved. Usually the top profile will have the WRITE property.
Obviously a file must be saved in a real directory, so one of the locations is
supposed to have the TYPE = DIRECTORY. This directory should be mapped as root
(MOUNT_POINT = ). The most simple case is to define only one location with the
described properties. Thus the written temporary files will be saved in one place,
instead of being scattered over multiple unrelated directories.
II.2.2 locations
-----------------------------------
[LOC_location1]
TYPE = DIRECTORY
PATH =
MOUNT_POINT =
[LOC_location2]
TYPE = LIBRARY
PATH = profiles/libs/archive.slf
VFS_PATH = archive.slf
MOUNT_POINT =
A location section name is build from an element from the LOCATIONS list of the
profile that is prepended with LOC_, e.g. [LOC_location1]. For every location the
TYPE has to be specified and can either be DIRECTORY or LIBRARY.
For a DIRECTORY you can specify the PATH (directory) and the MOUNT_POINT. The
PATH value is appended to the PROFILE_ROOT path and decided where your files will
be located in the real file system. With the MOUNT_POINT value you can influence
the location of your files in the virtual file system. So, real path
PROFILE_ROOT/PATH/local_dir/file.name
will be mapped to
/MOUNT_POINT/local_dir/file.name
(accessible by just MOUNT_POINT/local_dir/file.name)
A library is similar to a directory from the initialization point of view. But,
additionally, it has another key, VFS_PATH, which is similar to the PATH (file)
value. If the PATH value is not defined (= empty) or the specified file cannot
be opened, then the VFS_PATH value is evaluated. In order for this to work, you
have to have processed a location that contains the specified files. While this
is a more complex configuration process, it gives you the possibility to integrate
archives that are located in another archive themselves.
II.3 Use Cases
===================================
II.3.1 main game files
-----------------------------------
The main use case is the setup of the main files for the game.
##############
[vfs_config]
PROFILES = Libs, Data
##############
[PROFILE_Libs]
NAME = Ja2 game libraries
LOCATIONS = Anims, ..., Faces, ..., Tilesets, ...
PROFILE_ROOT = Data
[PROFILE_Data]
NAME = Ja2 game files
LOCATIONS = Files
PROFILE_ROOT = Data
##############
[LOC_Files]
TYPE = DIRECTORY
PATH =
MOUNT_POINT =
##############
[LOC_Anims]
TYPE = LIBRARY
PATH = anims.slf
MOUNT_POINT =
[...]
[LOC_Tilesets]
TYPE = LIBRARY
PATH = tilesets.slf
MOUNT_POINT =
##############
So, basically, you have the profile that specifies the game libraries as described
in (I.). Following is the profile with the Data directory. Since you need to have
a writable profile, we define a user profile that will contain only user data (the
other profiles contain only game data).
[vfs_config]
PROFILES = Libs, Data, UserProfile
[Libs and Data as before]
[PROFILE_UserProfile]
NAME = User files
LOCATIONS =
PROFILE_ROOT = Profiles\UserProfile
WRITE = true
If LOCATIONS is empty and WRITE is set to TRUE, then a writable directory in
PROFILE_ROOT will be initialized automatically.
II.3.2 "1.13 Mod"
-----------------------------------
Adding a mod is simple. We take the 1.13 Mod as an example.
[vfs_config]
PROFILES = Libs, Data, v113, UserProfile
[Libs, Data and UserProfile as before]
[PROFILE_v113]
NAME = v1.13
LOCATIONS = datav113_dir
PROFILE_ROOT =
[LOC_datav113_dir]
TYPE = DIRECTORY
PATH = Data-1.13
MOUNT_POINT =
The new profile for the Mod 1.13 is inserted into the profile list after the
Data profile, but before UserProfile. So, whenever a file is accessed, it
will be taken from the "Data-1.13" directory (when it exists there of course).
If not, the game will search in the following profiles ("Data", then "Libs").
II.3.3 User Mods
-----------------------------------
Instead of adding game data, the user can also add or replace the writable
profile (user profile). Thus, he can try out a new mod (that uses the VFS system)
without risking to overwite his savegames (and other temporary files).
#################
[vfs_config]
PROFILE = Libs, Data, v113, ExperimentalMod, UserProfile_exp
#################
[Libs, Data, v113 as before]
#################
[ExperimentalMod as in II.3.2]
[PROFILE_ExperimentalMod]
NAME = Files for experimental Mod
LOCATIONS = ExpMod_Libs, ExpMod_Files
PROFILE_ROOT = Profiles/ExpMod
[LOC_ExpMod_Libs]
TYPE = LIBRARY
PATH = exp_mod.7z
MOUNT_POINT = Tabledata
[LOC_ExpMod_Files]
TYPE = DIRECTORY
PATH = ModFiles
MOUNT_POINT = Interface
#################
[PROFILE_UserProfile_exp]
NAME = User file for ExpMod
LOCATIONS =
PROFILE_ROOT = Profiles\User_ExpMod
WRITE = true
(NOTE: the user directories have to exist, even if they are empty)
Since you can define the filenames for you VFS configuration file in ja2.ini,
you can create a couple of vfs config file and switch between then fairly
easy
############# ja2.ini
[Ja2 Settings]
;VFS_CONFIG_INI = vfs_config.main.ini
;VFS_CONFIG_INI = vfs_config.my_mod.ini
VFS_CONFIG_INI = vfs_config.ExpMod.ini
-----------------------------------------------
//**********************************
Combine INIs:
//**********************************
It is possible now to use += in an ini file, which appends a value to a previously set entry, making it a essentially list. Additionally,
in ja2.ini you can specify a list of ini files instead of only one file. Of course only one value works too, so everything is optional.
This gives us the possibility to define an ini file for every mod (or to combine inis as we like, as long as the ordering is the same.) I'll give you an example.
--------- vfs_config.vanilla.ini ---------
[vfs_config]
PROFILES = SlfLibs, Vanilla, UserProf
[PROFILE_SlfLibs]
....
[PROFILE_Vanilla]
....
[LOC_...]
....
....
--------- ---------
--------- vfs_config.v113.ini ---------
[vfs_config]
PROFILES += v113
[PROFILE_v113]
NAME = v1.13
LOCATIONS = datav113_dir
PROFILE_ROOT =
[LOC_datav113_dir]
TYPE = DIRECTORY
PATH = Data-1.13
MOUNT_POINT =
--------- ---------
--------- vfs_config.user.ini ---------
[vfs_config]
PROFILES += UserProf
[PROFILE_UserProf]
NAME = Player Profile
LOCATIONS =
PROFILE_ROOT = Profiles\UserProfile
WRITE = true
--------- ---------
So, in ja2.ini we would have the following entry for Vanille
VFS_CONFIG_INI = vfs_config.vanilla.ini, vfs_config.user.ini
and for v1.13
VFS_CONFIG_INI = vfs_config.vanilla.ini, vfs_config.v113.ini, vfs_config.user.ini
and for any other mod
VFS_CONFIG_INI = vfs_config.vanilla.ini, vfs_config.v113.ini, mod1.ini, mod2.ini, vfs_config.user.ini
Of course, the user.ini can be adjusted to every mod, so that savegames are not mixed. So, if you (=inexperienced user) want to add a small mod, you don't have to struggle with a big incomprehensible ini, but instead just take the provided mod ini (which will work if all files are in default directories) and add it to the ini list in ja2.ini.
+7 -3
View File
@@ -14,11 +14,15 @@
CD = C CD = C
;****************************************************************************************************************************** ;******************************************************************************************************************************
; The folder of the current mode you like to play, located in your JA2 directory. ; Define here the correct vfs_config.XYZ.ini for the MOD you would like to play
; If you like to play the classic Jagged Alliance 2, replace "Data-1.13" with "Data". ; If you would like to play a different MOD, you only need to change this line with the correct vfs_config.xyz.ini
;****************************************************************************************************************************** ;******************************************************************************************************************************
CUSTOM_DATA_LOCATION = Data-1.13 ; JA2 1.13
VFS_CONFIG_INI = vfs_config.JA2113.ini
; JA2 Vanilla
; VFS_CONFIG_INI = vfs_config.JA2Vanilla.ini
;****************************************************************************************************************************** ;******************************************************************************************************************************
; This only has effect if you use the INI Editor to start Jagged Alliance 2 v1.13. ; This only has effect if you use the INI Editor to start Jagged Alliance 2 v1.13.
-143
View File
@@ -1,143 +0,0 @@
[Ja2_mp Settings]
;-----------------------------------------------------------------------------------------
; ** all of these need setting/adjusting for all the "features" ;)
; basic multiplayer settings...; they can be changed for effect without restarting the engine,
; but a restart of the server/client or level/game may be necessary relevant....
; see the readme.html for detailed explanation
;
;-----------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------
; THE FOLLOWING SECTION NEEDS TO BE SET BY ALL CLIENTS
;-----------------------------------------------------------------------------------------
; The server ip. Set this ip to "127.0.0.1" for the client who wants to be the server.
; On the other clients, set this ip to the external ip from the server.
; The external ip can be looked at www.whatismyip.com
SERVER_IP = "127.0.0.1"
; Leave this default value. Be sure that this port is forwarded on your router if you are the server.
SERVER_PORT = 60005
; File transfer folder (relative path from the JA2 installation folder)
; The folder start from the JA2 root directory.
; If you are the server, the entire content (including subfolders) of this folder will be sent to the clients
; If you are the client, you will receive the files from the server in this folder. The SERVER_NAME will automatically be added as a subfolder.
; INFO: Use '/' instead of '\' for directory delimitters
FILE_TRANSFER_DIRECTORY = Multiplayer/Servers
TEAM = 1
; Pick a team number, if its the same as another clients, you will be allied while Teams are allowed by server.
; This can be upto 30 characters. Make sure to keep the "quotation" marks around it!
CLIENT_NAME = "Your_Name"
; The starting sector edge of your team.
; 0 = north, 1 = south, 2 = east, 3 = west
SECTOR_EDGE = 0
; Would you like to use old or new inventory?
; 0 = Use old inventory
; 1 = Use new inventory
; If ALLOW_CUSTOM_NIV = 0 (see server settings), only the server can decide which inventory mode all clients have to use
INVENTORY_MODE = 0
;-----------------------------------------------------------------------------------------
; THE FOLLOWING SECTION ONLY NEEDS TO BE SET BY THE SERVER. SETTINGS FROM CLIENTS ARE IGNORED!
;-----------------------------------------------------------------------------------------
; The name of your server in the server browser (not implemented yet)
SERVER_NAME=Bloodbath
; Should the server sync the multiplayer directory on the clients, by sending files to the clients?
SYNC_CLIENTS_MP_DIR=1
; The number of clients who want to play.
; Game maximum is 4, can be less needs to be total clients going to join.
MAX_CLIENTS = 2
; The maximum number of mercs hireable by each client, max for game/mod is 7, there are 6 per squad...
MAX_MERCS = 4
; For a quicker game setup, give each player a random team of "balanced" MERCS
RANDOM_MERCS=1
; Automatically randomise the starting edge of each client ( these are unique so no two players on the same edge )
RANDOM_EDGES=0
; This is a weapon damage multiplayer.
; This can be any decimal (FLOAT) value.
; .5 = half damage, 1 = full/normal damage, 2 = double damage
DAMAGE_MULTIPLIER = .7
; Bonus points towards an interrupt if weapon is allready readied. (int)
WEAPON_READIED_BONUS = 2
; The starting money for each client.
; (leave out the $ sign).
STARTING_BALANCE = 25000
; Game starting time. (FLOAT)
; The values are in hours (0.5 = 1/2 hour)
; Default value is 7 (7am), ie 13.5 = 1:30pm
TIME = 13.5
; A divisor of how much time each client has for its turn. Default = 100, less = more time.
; 10 = 43 seconds, 15 = 28s, 20 = 22s, 25 = 19s, 50 = 17s, 100 = 15s, (with just cliff fresh on 22 ap's), it seems exponential, total number of MERCS/AP's comes into to ...
TIMED_TURN_SECS_PER_TICK = 25
; Allow hiring of same merc by different clients.
; 1 = true, 0 = false
SAME_MERC = 1
; Should other clients see the name of your hired mercs?
; 1 = true, 0 = false
REPORT_NAME = 1
; Which game style (mode) would you like to play?
; 0 = All vs All Only (Deathmatch),
; 1 = Team's Allowed, (as per client TEAM variable lsited above, Team-Deathmatch)
; 2 = Only Co-Op
GAME_MODE = 0
; Disable Bobby Rays website?
; 1 = true, 0 = false
DISABLE_BOBBY_RAYS = 0
; Disable AIM and MERC equip?
; 1 = true, 0 = false
DISABLE_AIM_AND_MERC_EQUIP = 0
; Here you can control if you would like to play with enemies, mitlitia and civs
; 1 = true, 0 = false
ENEMY_ENABLED = 0
MILITIA_ENABLED = 0
CIV_ENABLED = 0
; If set to 1, this enables cheat function bound to key '9'. This contains a helpfull testing function which shows all mercs from all clients.
TESTING = 0
; Would you like to disable the morale of the mercs?
; 1 = true, 0 = false
DISABLE_MORALE = 1
; If it is set to 1 = true, each client can decide the inventory (new or old) for the mercs.
; If it is set to 0 = false, the server decides which inventory all clients have to use.
ALLOW_CUSTOM_NIV = 1
; Should specator mode be disabled for clients?
; 1 = true, 0 = false
DISABLE_SPEC_MODE = 0
; An array of items to be given to each merc hired at the start of the game, repeat a item number for more than 1.
; Each item can not have number of digits greater than 4, is <=9999, total length for this string is 100, including brackets and commas,
; and no more than 20 items int total. these can be adjusted apon request.
; Examples: 201=first aid, 214=canteen, 199=comp binoc's, 222=energy boost (aka stim pack), 235=regen boost, 300=light knife,
; 49=knuckle dusters, 337,279,279= a FN five seven side arm with 2 extra mags :) .
; Look in items.xml for full list, of coarse this is also limited to mercs inc capactiy.
; Also note that right now they are not added to replicants, so they wont be dropped by killed mercs other than your own
; Another kit bag setting: KIT_BAG = [201,214,300,337,279,279,222,235], also note the limitations of NIV in regard to which pack is in use.
KIT_BAG = [201,214]
+25
View File
@@ -0,0 +1,25 @@
[Ja2_mp Settings]
ALLOW_CUSTOM_NIV = 0
CIV_ENABLED = 0
CLIENT_NAME = Player Name
DAMAGE_MULTIPLIER = 0.7
DIFFICULT_LEVEL = 3
DISABLE_BOBBY_RAYS = 0
FILE_TRANSFER_DIRECTORY = MULTIPLAYER/Servers/My Server
GAME_MODE = 0
KIT_BAG = [201,214,243]
MAX_CLIENTS = 4
MAX_MERCS = 5
OVERRIDE_MAX_AI = 0
RANDOM_EDGES = 0
RANDOM_MERCS = 0
REPORT_NAME = 1
SAME_MERC = 1
SERVER_IP = 127.0.0.1
SERVER_NAME = Server Name
SERVER_PORT = 60005
STARTING_BALANCE = 25000
SYNC_CLIENTS_MP_DIR = 1
TIME = 13.50
TIMED_TURN_SECS_PER_TICK = 25
@@ -0,0 +1,25 @@
[Ja2_mp Settings]
ALLOW_CUSTOM_NIV = 0
CIV_ENABLED = 0
CLIENT_NAME = Player Name
DAMAGE_MULTIPLIER = 0.7
DIFFICULT_LEVEL = 3
DISABLE_BOBBY_RAYS = 0
FILE_TRANSFER_DIRECTORY = MULTIPLAYER/Servers/My Server
GAME_MODE = 0
KIT_BAG = [201,214,243]
MAX_CLIENTS = 4
MAX_MERCS = 5
OVERRIDE_MAX_AI = 0
RANDOM_EDGES = 0
RANDOM_MERCS = 0
REPORT_NAME = 1
SAME_MERC = 1
SERVER_IP = 127.0.0.1
SERVER_NAME = Server Name
SERVER_PORT = 60005
STARTING_BALANCE = 25000
SYNC_CLIENTS_MP_DIR = 1
TIME = 13.50
TIMED_TURN_SECS_PER_TICK = 25
+11
View File
@@ -0,0 +1,11 @@
; default action is 'ACCEPT', so everything that is not explicitely denied will be transferred
deny shadetables/*
deny temp/*
deny ja2_settings.ini
deny ja2.set
deny ja2_mp.ini
deny *.log
deny *.txt
deny SavedGames/*
deny Spielstände/*
+176
View File
@@ -0,0 +1,176 @@
[vfs_config]
PROFILES = SlfLibs, Vanilla, v113, UserProf
[PROFILE_SlfLibs]
NAME = SLF Libs
LOCATIONS = Ambient, Anims, BattleSNDS, BigItems, Binarydata, Cursors, Data, Faces, Fonts, Interface, Intro, Laptop, Loadscreens, Maps, Mercedt, Music, Npc_speech, Npcdata, Radarmaps, Sounds, Speech, Tilesets
PROFILE_ROOT =
[PROFILE_Vanilla]
NAME = Vanilla Dirs
LOCATIONS = data_dir
PROFILE_ROOT =
[PROFILE_v113]
NAME = v1.13
LOCATIONS = datav113_dir
PROFILE_ROOT =
[PROFILE_UserProf]
NAME = Player Profile
LOCATIONS = uprof_root
PROFILE_ROOT = Profiles\UserProfile_JA2113
WRITE = true
#############################################################
## DATA PATHs ##
#############################################################
[LOC_data_dir]
TYPE = DIRECTORY
PATH = Data
MOUNT_POINT =
[LOC_datav113_dir]
TYPE = DIRECTORY
PATH = Data-1.13
MOUNT_POINT =
[LOC_uprof_root]
TYPE = DIRECTORY
PATH =
MOUNT_POINT =
#############################################################
## LIBRARIEs ##
#############################################################
[LOC_Ambient]
TYPE = LIBRARY
PATH = Data/Ambient.slf
VFS_PATH = Ambient.slf
MOUNT_POINT =
[LOC_Anims]
TYPE = LIBRARY
PATH = Data/Anims.slf
VFS_PATH = Anims.slf
MOUNT_POINT =
[LOC_BattleSNDS]
TYPE = LIBRARY
PATH = Data/BattleSNDS.slf
VFS_PATH = BattleSNDS.slf
MOUNT_POINT =
[LOC_BigItems]
TYPE = LIBRARY
PATH = Data/BigItems.slf
VFS_PATH = BigItems.slf
MOUNT_POINT =
[LOC_Binarydata]
TYPE = LIBRARY
PATH = Data/Binarydata.slf
VFS_PATH = Binarydata.slf
MOUNT_POINT =
[LOC_Cursors]
TYPE = LIBRARY
PATH = Data/Cursors.slf
VFS_PATH = Cursors.slf
MOUNT_POINT =
[LOC_Data]
TYPE = LIBRARY
PATH = Data/Data.slf
VFS_PATH = Data.slf
MOUNT_POINT =
[LOC_Faces]
TYPE = LIBRARY
PATH = Data/Faces.slf
VFS_PATH = Faces.slf
MOUNT_POINT =
[LOC_Fonts]
TYPE = LIBRARY
PATH = Data/Fonts.slf
VFS_PATH = Fonts.slf
MOUNT_POINT =
[LOC_Interface]
TYPE = LIBRARY
PATH = Data/Interface.slf
VFS_PATH = Interface.slf
MOUNT_POINT =
[LOC_Intro]
TYPE = LIBRARY
PATH = Data/Intro.slf
VFS_PATH = Intro.slf
MOUNT_POINT =
OPTIONAL = True
[LOC_Laptop]
TYPE = LIBRARY
PATH = Data/Laptop.slf
VFS_PATH = Laptop.slf
MOUNT_POINT =
[LOC_Loadscreens]
TYPE = LIBRARY
PATH = Data/Loadscreens.slf
VFS_PATH = Loadscreens.slf
MOUNT_POINT =
[LOC_Maps]
TYPE = LIBRARY
PATH = Data/Maps.slf
VFS_PATH = Maps.slf
MOUNT_POINT =
[LOC_Mercedt]
TYPE = LIBRARY
PATH = Data/Mercedt.slf
VFS_PATH = Mercedt.slf
MOUNT_POINT =
[LOC_Music]
TYPE = LIBRARY
PATH = Data/Music.slf
VFS_PATH = Music.slf
MOUNT_POINT =
[LOC_Npc_speech]
TYPE = LIBRARY
PATH = Data/Npc_speech.slf
VFS_PATH = Npc_speech.slf
MOUNT_POINT =
[LOC_Npcdata]
TYPE = LIBRARY
PATH = Data/Npcdata.slf
VFS_PATH = Npcdata.slf
MOUNT_POINT =
[LOC_Radarmaps]
TYPE = LIBRARY
PATH = Data/Radarmaps.slf
VFS_PATH = Radarmaps.slf
MOUNT_POINT =
[LOC_Sounds]
TYPE = LIBRARY
PATH = Data/Sounds.slf
VFS_PATH = Sounds.slf
MOUNT_POINT =
[LOC_Speech]
TYPE = LIBRARY
PATH = Data/Speech.slf
VFS_PATH = Speech.slf
MOUNT_POINT =
[LOC_Tilesets]
TYPE = LIBRARY
PATH = Data/Tilesets.slf
VFS_PATH = Tilesets.slf
MOUNT_POINT =
+166
View File
@@ -0,0 +1,166 @@
[vfs_config]
PROFILES = SlfLibs, Vanilla, UserProf
[PROFILE_SlfLibs]
NAME = SLF Libs
LOCATIONS = Ambient, Anims, BattleSNDS, BigItems, Binarydata, Cursors, Data, Faces, Fonts, Interface, Intro, Laptop, Loadscreens, Maps, Mercedt, Music, Npc_speech, Npcdata, Radarmaps, Sounds, Speech, Tilesets
PROFILE_ROOT =
[PROFILE_Vanilla]
NAME = Vanilla Dirs
LOCATIONS = data_dir
PROFILE_ROOT =
[PROFILE_UserProf]
NAME = Player Profile
LOCATIONS = uprof_root
PROFILE_ROOT = Profiles\UserProfile_Ja2Vanilla
WRITE = true
#############################################################
## DATA PATHs ##
#############################################################
[LOC_data_dir]
TYPE = DIRECTORY
PATH = Data
MOUNT_POINT =
[LOC_uprof_root]
TYPE = DIRECTORY
PATH =
MOUNT_POINT =
#############################################################
## LIBRARIEs ##
#############################################################
[LOC_Ambient]
TYPE = LIBRARY
PATH = Data/Ambient.slf
VFS_PATH = Ambient.slf
MOUNT_POINT =
[LOC_Anims]
TYPE = LIBRARY
PATH = Data/Anims.slf
VFS_PATH = Anims.slf
MOUNT_POINT =
[LOC_BattleSNDS]
TYPE = LIBRARY
PATH = Data/BattleSNDS.slf
VFS_PATH = BattleSNDS.slf
MOUNT_POINT =
[LOC_BigItems]
TYPE = LIBRARY
PATH = Data/BigItems.slf
VFS_PATH = BigItems.slf
MOUNT_POINT =
[LOC_Binarydata]
TYPE = LIBRARY
PATH = Data/Binarydata.slf
VFS_PATH = Binarydata.slf
MOUNT_POINT =
[LOC_Cursors]
TYPE = LIBRARY
PATH = Data/Cursors.slf
VFS_PATH = Cursors.slf
MOUNT_POINT =
[LOC_Data]
TYPE = LIBRARY
PATH = Data/Data.slf
VFS_PATH = Data.slf
MOUNT_POINT =
[LOC_Faces]
TYPE = LIBRARY
PATH = Data/Faces.slf
VFS_PATH = Faces.slf
MOUNT_POINT =
[LOC_Fonts]
TYPE = LIBRARY
PATH = Data/Fonts.slf
VFS_PATH = Fonts.slf
MOUNT_POINT =
[LOC_Interface]
TYPE = LIBRARY
PATH = Data/Interface.slf
VFS_PATH = Interface.slf
MOUNT_POINT =
[LOC_Intro]
TYPE = LIBRARY
PATH = Data/Intro.slf
VFS_PATH = Intro.slf
MOUNT_POINT =
OPTIONAL = True
[LOC_Laptop]
TYPE = LIBRARY
PATH = Data/Laptop.slf
VFS_PATH = Laptop.slf
MOUNT_POINT =
[LOC_Loadscreens]
TYPE = LIBRARY
PATH = Data/Loadscreens.slf
VFS_PATH = Loadscreens.slf
MOUNT_POINT =
[LOC_Maps]
TYPE = LIBRARY
PATH = Data/Maps.slf
VFS_PATH = Maps.slf
MOUNT_POINT =
[LOC_Mercedt]
TYPE = LIBRARY
PATH = Data/Mercedt.slf
VFS_PATH = Mercedt.slf
MOUNT_POINT =
[LOC_Music]
TYPE = LIBRARY
PATH = Data/Music.slf
VFS_PATH = Music.slf
MOUNT_POINT =
[LOC_Npc_speech]
TYPE = LIBRARY
PATH = Data/Npc_speech.slf
VFS_PATH = Npc_speech.slf
MOUNT_POINT =
[LOC_Npcdata]
TYPE = LIBRARY
PATH = Data/Npcdata.slf
VFS_PATH = Npcdata.slf
MOUNT_POINT =
[LOC_Radarmaps]
TYPE = LIBRARY
PATH = Data/Radarmaps.slf
VFS_PATH = Radarmaps.slf
MOUNT_POINT =
[LOC_Sounds]
TYPE = LIBRARY
PATH = Data/Sounds.slf
VFS_PATH = Sounds.slf
MOUNT_POINT =
[LOC_Speech]
TYPE = LIBRARY
PATH = Data/Speech.slf
VFS_PATH = Speech.slf
MOUNT_POINT =
[LOC_Tilesets]
TYPE = LIBRARY
PATH = Data/Tilesets.slf
VFS_PATH = Tilesets.slf
MOUNT_POINT =