- Moved the "Data-JA2Demo" MOD folder to its own SVN trunk:

git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@1521 4f8fa57e-7814-0410-bad4-adc449f26b7c
This commit is contained in:
Wanne
2012-08-24 09:13:25 +00:00
parent 08eead9a2a
commit 82da158d85
22 changed files with 2 additions and 60537 deletions
File diff suppressed because it is too large Load Diff
-419
View File
@@ -1,419 +0,0 @@
--[[
http://www.legion.zone.zg.pl/doku.php/modowanie/ja/art_ja_m_22_lua
**********************
** Global variables **
**********************
- newDIFFICULTY_LEVEL (Start new game setting)
1 = easy
2 = experienced
3 = expert
4 = insane
- newGAME_STYLE (Start new game setting)
0 = realistic
1 = sci fi
- is_networked (Multiplayer)
0 = no
1 = yes
- iniENABLE_CREPITUS (ja2_options.ini setting)
0 = no
1 = yes
- iniSTARTING_CASH_NOVICE, iniSTARTING_CASH_EXPERIENCED, iniSTARTING_CASH_EXPERT, iniSTARTING_CASH_INSANE (ja2_options.ini setting)
Starting cash
- iniMERC_WEBSITE_IMMEDIATELY_AVAILABLE (ja2_options.ini setting)
true = yes
false = no
- giHospitalTempBalance
set hospital balance
- gbHospitalPriceModifier
set hospital modifier
- giHospitalRefund
***************
** Functions **
***************
- AddAlternateSector, AddAltSector, AddAltSectorNew
add alternative sector
- AddNPC or AddNPCtoSector
add NPC\EPC\RPC to sector
- AddAltUnderGroundSector, AddAltUGSector or AddAltUGSectorNew
add alternative underground sector
- SetNPCData1 ( ProfilID, value )
set NPCData1
- GetStartingCashNovice()
get starting cash novice level
- GetStartingCashExperienced()
get starting cash experienced level
- GetStartingCashExpert()
get starting cash expert level
- GetStartingCashInsane()
get starting cash insane level
- GetWorldTotalMin()
get world time
- AddTransactionToPlayersBook(ubCode, ubSecondCode, uiDate, iAmount)
add transaction to player
- AddPreReadEmail (iMessageOffset, iMessageLength, ubSender)
iMessageOffset - record from email.edt
iMessageLength - record from email.edt
ubSender - uiIndex from SenderNameList.xml
- AddEmail (iMessageOffset, iMessageLength, ubSender, iCurrentIMPPosition, iCurrentShipmentDestinationID)
iMessageOffset - record from email.edt
iMessageLength - record from email.edt
ubSender - uiIndex from SenderNameList.xml
iCurrentIMPPosition - Default = -1, or the profile ID of the IMP
iCurrentShipmentDestinationID - Default = -1, or the Bobby Ray shipment destination ID
HireMerc( Profile , Contract, TimeArrive )
Profile - The profile ID of the merc
Contract - The contract time for the merc
TimeArrive - The arrival time of the merc
**************
** Examples **
**************
-- Add Fatima to sector
Fatima = { }
Fatima.MercProfiles = 101
Fatima.sector = "A10-0"
AddNPC(Fatima)
-- Add Fatima to sector
AddNPC( { MercProfiles = 101 , sector = "A10-0" } )
-- Add Fatima to sector, only in a realistic game
if newGAME_STYLE == 0 then
Fatima = { }
Fatima.MercProfiles = 101
Fatima.sector = "A10-0"
AddNPC(Fatima)
end
-- Add alternative sector, only when starting cash = 4000 and game style SciFi
if (iniSTARTING_CASH_NOVICE == 4000 and newGAME_STYLE == 1) then
Fatima = { }
Fatima.MercProfiles = 101
Fatima.sector = "A10-0"
AddNPC(Fatima)
end
-- Add alternative sector, only realistic game
if newGAME_STYLE == 0 then
SectorA9 = { }
SectorA9.altSector = "A9"
AddAlternateSector(SectorA9)
end
-- Add alternative sector
SectorA9 = { }
SectorA9.altSector = "A9"
AddAlternateSector(SectorA9)
-- Add alternative underground sector
A10_b1 = { }
A10_b1.altSector = "A10-1"
AddAltUGSector(A10_b1)
-- Add alternative underground sector
AddAltUGSector( { altSector = "A10-1" } )
-- Add Skyrider to sector
AddNPCtoSector(97,9,1,0)
-- Add alternative sector C1
AddAltSectorNew (3,1)
-- Add alternative sector C1-3
AddAltUGSectorNew(3,1,3)
-- Hire Ivan
HireMerc(7)
]]
-- max number of lines can be shown in a message
local MAX_EMAIL_LINES = 10
-- max number of messages per page
local MAX_MESSAGES_PAGE = 18
local IMP_EMAIL_INTRO = 0
local IMP_EMAIL_INTRO_LENGTH = 10
local ENRICO_CONGRATS = (IMP_EMAIL_INTRO + IMP_EMAIL_INTRO_LENGTH)
local ENRICO_CONGRATS_LENGTH = 3
local IMP_EMAIL_AGAIN = (ENRICO_CONGRATS + ENRICO_CONGRATS_LENGTH)
local IMP_EMAIL_AGAIN_LENGTH = 6
local MERC_INTRO = (IMP_EMAIL_AGAIN + IMP_EMAIL_AGAIN_LENGTH)
local MERC_INTRO_LENGTH = 5
local MERC_NEW_SITE_ADDRESS = ( MERC_INTRO + MERC_INTRO_LENGTH )
local MERC_NEW_SITE_ADDRESS_LENGTH = 2
local AIM_MEDICAL_DEPOSIT_REFUND = ( MERC_NEW_SITE_ADDRESS + MERC_NEW_SITE_ADDRESS_LENGTH )
local AIM_MEDICAL_DEPOSIT_REFUND_LENGTH = 3
local IMP_EMAIL_PROFILE_RESULTS = ( AIM_MEDICAL_DEPOSIT_REFUND + AIM_MEDICAL_DEPOSIT_REFUND_LENGTH )
local IMP_EMAIL_PROFILE_RESULTS_LENGTH = 1
local MERC_WARNING = ( IMP_EMAIL_PROFILE_RESULTS_LENGTH + IMP_EMAIL_PROFILE_RESULTS )
local MERC_WARNING_LENGTH = 2
local MERC_INVALID = ( MERC_WARNING + MERC_WARNING_LENGTH )
local MERC_INVALID_LENGTH = 2
local NEW_MERCS_AT_MERC = ( MERC_INVALID + MERC_INVALID_LENGTH )
local NEW_MERCS_AT_MERC_LENGTH = 2
local MERC_FIRST_WARNING = ( NEW_MERCS_AT_MERC + NEW_MERCS_AT_MERC_LENGTH )
local MERC_FIRST_WARNING_LENGTH = 2
-- merc up a level emails
local MERC_UP_LEVEL_BIFF = ( MERC_FIRST_WARNING + MERC_FIRST_WARNING_LENGTH )
local MERC_UP_LEVEL_LENGTH_BIFF = 2
local MERC_UP_LEVEL_HAYWIRE = ( MERC_UP_LEVEL_LENGTH_BIFF + MERC_UP_LEVEL_BIFF )
local MERC_UP_LEVEL_LENGTH_HAYWIRE = 2
local MERC_UP_LEVEL_GASKET = ( MERC_UP_LEVEL_LENGTH_HAYWIRE + MERC_UP_LEVEL_HAYWIRE )
local MERC_UP_LEVEL_LENGTH_GASKET = 2
local MERC_UP_LEVEL_RAZOR = ( MERC_UP_LEVEL_LENGTH_GASKET + MERC_UP_LEVEL_GASKET )
local MERC_UP_LEVEL_LENGTH_RAZOR = 2
local MERC_UP_LEVEL_FLO = ( MERC_UP_LEVEL_LENGTH_RAZOR + MERC_UP_LEVEL_RAZOR )
local MERC_UP_LEVEL_LENGTH_FLO = 2
local MERC_UP_LEVEL_GUMPY = ( MERC_UP_LEVEL_LENGTH_FLO + MERC_UP_LEVEL_FLO )
local MERC_UP_LEVEL_LENGTH_GUMPY = 2
local MERC_UP_LEVEL_LARRY = ( MERC_UP_LEVEL_LENGTH_GUMPY + MERC_UP_LEVEL_GUMPY )
local MERC_UP_LEVEL_LENGTH_LARRY = 2
local MERC_UP_LEVEL_COUGAR = ( MERC_UP_LEVEL_LENGTH_LARRY + MERC_UP_LEVEL_LARRY )
local MERC_UP_LEVEL_LENGTH_COUGAR = 2
local MERC_UP_LEVEL_NUMB = ( MERC_UP_LEVEL_LENGTH_COUGAR + MERC_UP_LEVEL_COUGAR )
local MERC_UP_LEVEL_LENGTH_NUMB = 2
local MERC_UP_LEVEL_BUBBA = ( MERC_UP_LEVEL_LENGTH_NUMB + MERC_UP_LEVEL_NUMB )
local MERC_UP_LEVEL_LENGTH_BUBBA = 2
-- merc left-me-a-message-and-now-I'm-back emails
local AIM_REPLY_BARRY = ( MERC_UP_LEVEL_LENGTH_BUBBA + MERC_UP_LEVEL_BUBBA )
local AIM_REPLY_LENGTH_BARRY = 2
local AIM_REPLY_MELTDOWN = (AIM_REPLY_BARRY + ( 39 * AIM_REPLY_LENGTH_BARRY ))
local AIM_REPLY_LENGTH_MELTDOWN = AIM_REPLY_LENGTH_BARRY
-- old EXISTING emails when player starts game. They must look "read"
local OLD_ENRICO_1 = ( AIM_REPLY_LENGTH_MELTDOWN + AIM_REPLY_MELTDOWN )
local OLD_ENRICO_1_LENGTH = 3
local OLD_ENRICO_2 = ( OLD_ENRICO_1 + OLD_ENRICO_1_LENGTH )
local OLD_ENRICO_2_LENGTH = 3
local RIS_REPORT = ( OLD_ENRICO_2 + OLD_ENRICO_2_LENGTH )
local RIS_REPORT_LENGTH = 2
local OLD_ENRICO_3 = ( RIS_REPORT + RIS_REPORT_LENGTH )
local OLD_ENRICO_3_LENGTH = 3
-- emails that occur from Enrico once player accomplishes things
local ENRICO_MIGUEL = ( OLD_ENRICO_3 + OLD_ENRICO_3_LENGTH )
local ENRICO_MIGUEL_LENGTH = 3
local ENRICO_PROG_20 = ( ENRICO_MIGUEL + ENRICO_MIGUEL_LENGTH )
local ENRICO_PROG_20_LENGTH = 3
local ENRICO_PROG_55 = ( ENRICO_PROG_20 + ENRICO_PROG_20_LENGTH )
local ENRICO_PROG_55_LENGTH = 3
local ENRICO_PROG_80 = ( ENRICO_PROG_55 + ENRICO_PROG_55_LENGTH )
local ENRICO_PROG_80_LENGTH = 3
local ENRICO_SETBACK = ( ENRICO_PROG_80 + ENRICO_PROG_80_LENGTH )
local ENRICO_SETBACK_LENGTH = 3
local ENRICO_SETBACK_2 = ( ENRICO_SETBACK + ENRICO_SETBACK_LENGTH )
local ENRICO_SETBACK_2_LENGTH = 3
local ENRICO_CREATURES = ( ENRICO_SETBACK_2 + ENRICO_SETBACK_2_LENGTH )
local ENRICO_CREATURES_LENGTH = 3
-- insurance company emails
local INSUR_PAYMENT = ( ENRICO_CREATURES + ENRICO_CREATURES_LENGTH )
local INSUR_PAYMENT_LENGTH = 3
local INSUR_SUSPIC = ( INSUR_PAYMENT + INSUR_PAYMENT_LENGTH )
local INSUR_SUSPIC_LENGTH = 3
local INSUR_INVEST_OVER = ( INSUR_SUSPIC + INSUR_SUSPIC_LENGTH )
local INSUR_INVEST_OVER_LENGTH = 3
local INSUR_SUSPIC_2 = ( INSUR_INVEST_OVER + INSUR_INVEST_OVER_LENGTH )
local INSUR_SUSPIC_2_LENGTH = 3
local BOBBYR_NOW_OPEN = ( INSUR_SUSPIC_2 + INSUR_SUSPIC_2_LENGTH )
local BOBBYR_NOW_OPEN_LENGTH = 3
local KING_PIN_LETTER = ( BOBBYR_NOW_OPEN + BOBBYR_NOW_OPEN_LENGTH )
local KING_PIN_LETTER_LENGTH = 4
local LACK_PLAYER_PROGRESS_1 = ( KING_PIN_LETTER + KING_PIN_LETTER_LENGTH )
local LACK_PLAYER_PROGRESS_1_LENGTH = 3
local LACK_PLAYER_PROGRESS_2 = ( LACK_PLAYER_PROGRESS_1 + LACK_PLAYER_PROGRESS_1_LENGTH )
local LACK_PLAYER_PROGRESS_2_LENGTH = 3
local LACK_PLAYER_PROGRESS_3 = ( LACK_PLAYER_PROGRESS_2 + LACK_PLAYER_PROGRESS_2_LENGTH )
local LACK_PLAYER_PROGRESS_3_LENGTH = 3
-- A package from Bobby Ray has arrived in Drassen
local BOBBYR_SHIPMENT_ARRIVED = ( LACK_PLAYER_PROGRESS_3 + LACK_PLAYER_PROGRESS_3_LENGTH )
local BOBBYR_SHIPMENT_ARRIVED_LENGTH = 4
-- John Kulba has left the gifts for the players in Drassen
local JOHN_KULBA_GIFT_IN_DRASSEN = ( BOBBYR_SHIPMENT_ARRIVED + BOBBYR_SHIPMENT_ARRIVED_LENGTH )
local JOHN_KULBA_GIFT_IN_DRASSEN_LENGTH = 4
-- When a merc dies on ANOTHER assignment ( ie not with the player )
local MERC_DIED_ON_OTHER_ASSIGNMENT = ( JOHN_KULBA_GIFT_IN_DRASSEN + JOHN_KULBA_GIFT_IN_DRASSEN_LENGTH )
local MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH = 5
local INSUR_1HOUR_FRAUD = ( MERC_DIED_ON_OTHER_ASSIGNMENT + MERC_DIED_ON_OTHER_ASSIGNMENT_LENGTH )
local INSUR_1HOUR_FRAUD_LENGTH = 3
-- When a merc is fired, and is injured
local AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND = ( INSUR_1HOUR_FRAUD + INSUR_1HOUR_FRAUD_LENGTH )
local AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND_LENGTH = 3
-- When a merc is fired, and is dead
local AIM_MEDICAL_DEPOSIT_NO_REFUND = ( AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND + AIM_MEDICAL_DEPOSIT_PARTIAL_REFUND_LENGTH )
local AIM_MEDICAL_DEPOSIT_NO_REFUND_LENGTH = 3
local BOBBY_R_MEDUNA_SHIPMENT = ( AIM_MEDICAL_DEPOSIT_NO_REFUND + AIM_MEDICAL_DEPOSIT_NO_REFUND_LENGTH )
local BOBBY_R_MEDUNA_SHIPMENT_LENGTH = 4
local iStartingCash = 0
Fincances =
{
ACCRUED_INTEREST = 0,
ANONYMOUS_DEPOSIT = 1,
TRANSACTION_FEE = 2,
HIRED_MERC = 3,
BOBBYR_PURCHASE,
PAY_SPECK_FOR_MERC = 4,
MEDICAL_DEPOSIT = 5,
IMP_PROFILE = 6,
PURCHASED_INSURANCE = 7,
REDUCED_INSURANCE = 8,
EXTENDED_INSURANCE = 9,
CANCELLED_INSURANCE = 10,
INSURANCE_PAYOUT = 11,
EXTENDED_CONTRACT_BY_1_DAY = 12,
EXTENDED_CONTRACT_BY_1_WEEK = 13,
EXTENDED_CONTRACT_BY_2_WEEKS = 14,
DEPOSIT_FROM_GOLD_MINE = 15,
DEPOSIT_FROM_SILVER_MINE = 16,
PURCHASED_FLOWERS = 17,
FULL_MEDICAL_REFUND = 18,
PARTIAL_MEDICAL_REFUND = 19,
NO_MEDICAL_REFUND = 20,
PAYMENT_TO_NPC = 21,
TRANSFER_FUNDS_TO_MERC = 22,
TRANSFER_FUNDS_FROM_MERC = 23,
TRAIN_TOWN_MILITIA = 24,
PURCHASED_ITEM_FROM_DEALER = 25,
MERC_DEPOSITED_MONEY_TO_PLAYER_ACCOUNT = 26,
SOLD_ITEMS = 27,
FACILITY_OPERATIONS = 28,
MILITIA_UPKEEP = 29,
}
Sender =
{
MAIL_ENRICO = 0,
CHAR_PROFILE_SITE = 1,
GAME_HELP = 2,
IMP_PROFILE_RESULTS = 3,
SPECK_FROM_MERC = 4,
RIS_EMAIL = 5,
BARRY_MAIL = 6,
INSURANCE_COMPANY = 46,
BOBBY_R = 47,
KING_PIN = 48,
JOHN_KULBA = 49,
AIM_SITE = 50,
}
Modifier =
{
HOSPITAL_UNSET = 0,
HOSPITAL_NORMAL = 1,
HOSPITAL_BREAK = 2,
HOSPITAL_COST = 3,
HOSPITAL_FREEBIE = 4,
HOSPITAL_RANDOM_FREEBIE = 5,
}
SectorY =
{
MAP_ROW_A = 1,
MAP_ROW_B = 2,
MAP_ROW_C = 3,
MAP_ROW_D = 4,
MAP_ROW_E = 5,
MAP_ROW_F = 6,
MAP_ROW_G = 7,
MAP_ROW_H = 8,
MAP_ROW_I = 9,
MAP_ROW_J = 10,
MAP_ROW_K = 11,
MAP_ROW_L = 12,
MAP_ROW_M = 13,
MAP_ROW_N = 14,
MAP_ROW_O = 15,
MAP_ROW_P = 16,
}
Profil =
{
Skyrider = 97,
Micky = 96,
Gabby = 104,
Bob = 84,
Devin = 61,
}
local DIF_LEVEL_EASY = 1
local DIF_LEVEL_MEDIUM = 2
local DIF_LEVEL_HARD = 3
local DIF_LEVEL_INSANE = 4
function InitNPCs()
AddNPCtoSector(113 ,1 ,SectorY.MAP_ROW_P ,0)
AddNPCtoSector(104 ,1 ,SectorY.MAP_ROW_P ,0)
AddNPCtoSector(66 ,1 ,SectorY.MAP_ROW_P ,1)
-- Init hospital variables
HospitalTempBalance( 0 )
HospitalRefund( 0 )
HospitalPriceModifier( Modifier.HOSPITAL_UNSET )
end
function InitNewGame()
if ( newDIFFICULTY_LEVEL == DIF_LEVEL_EASY ) then
iStartingCash = GetStartingCashNovice()
elseif ( newDIFFICULTY_LEVEL == DIF_LEVEL_MEDIUM ) then
iStartingCash = GetStartingCashExperienced()
elseif ( newDIFFICULTY_LEVEL == DIF_LEVEL_HARD ) then
iStartingCash = GetStartingCashExpert()
elseif ( newDIFFICULTY_LEVEL == DIF_LEVEL_INSANE ) then
iStartingCash = GetStartingCashInsane()
end
AddTransactionToPlayersBook( Fincances.ANONYMOUS_DEPOSIT, 0, GetWorldTotalMin(), iStartingCash )
HireMerc( 4 ,61, 0 ) -- Vicki
HireMerc( 7 ,61, 0 ) -- Ivan
HireMerc( 10 ,61, 0 ) -- Shadow
HireMerc( 33 ,61, 0 ) -- Dr.Q
HireMerc( 42 ,61, 0 ) -- Gastek
--HireMerc( 67, 61, 0 )
end
@@ -1,395 +0,0 @@
--[[
December 27, 2010
TOC
===
Preamble
§0. Constants
§1. Underground sector list compilation
§2. Defining enemy garrisons and creature population
§3. Internal workings
§3.1. Underground sector names
Preamble
========
This script sets up and initializes underground sectors. It defines where
underground sectors are located on the map, what enemy garrisons and
creature population they feature, and what loading screen to present to
the player.
Sector definitions are read whenever a new game starts. They are then
stored within the savegame meaning various changes to this script don't
have an effect on a game in progress.
Modders likely want to focus on §1. and §2.
There is also another script closely related to this one, which defines
sector names ("undergroundsectornames.lua" and localized versions). See
§3.1. for more details.
The game will call this script for any of three reasons:
1. When a new game starts it will call 'BuildUndergroundSectorList' in
order to create and initialize the array of underground sectors.
2. The game will call 'GetLoadscreen' whenever an underground sector
needs to be loaded.
3. When the game requests an underground sector name it will call
'GetSectorName'.
Remarks
- Several vanilla JA2 sectors may be unsafe to remove due to hardcoded
behaviour such as creature spreading, Deidranna escaping or other quest
related links.
- Contrary to random number generators used in JA2, Lua's math.random
function includes the range boundaries. Also, indexing in Lua starts at
1 as opposed to C (starting at 0). For further information about Lua
consult the Lua documentation at http://www.lua.org/docs.html
]]
-- For debugging purposes you might want to have some basic logging output
-- from the game. Uncommenting the following line will create
-- "initunderground.log" in your profile directory.
--logging = true
-- Initialize the pseudo random number generator
math.randomseed( os.time() ); math.random(); math.random(); math.random()
-- http://lua-users.org/wiki/MathLibraryTutorial
-------------------
-- §0. Constants --
-------------------
Habitat = { -- creature type distribution in percentages
-- young young adult adult
-- larvae infants male female male female
QueenLair = 0, -- 20 40 0 0 30 10 (default)
Lair = 1, -- 15 35 10 5 25 10
LairEntrance = 2, -- 0 15 30 10 35 10
InnerMine = 3, -- 0 0 20 40 10 30
OuterMine = 4, -- 0 0 10 65 5 20
FeedingGrounds = 5, -- - - - - - - (unused)
MineExit = 6, -- 0 0 10 65 5 20
}
CreatureMusic = {
Compat = 0, -- default, use creepy music in the presence of creatures
-- or blue lights (default, also vanilla default);
Auto = 1, -- use creepy music if and only if there any creatures
-- present (ignoring lights);
Never = 2, -- do not use creepy music, regardless of any creatures;
Always = 3, -- do use creepy music, regardless of any creatures
}
---------------------------------------------
-- §1. Underground sector list compilation --
---------------------------------------------
--[[
In this list add underground sectors by specifying their location.
If no loadscreen attribute is given the script will use "LS_Mine" for
level 1 sectors and "LS_Cave" for level 2 and level 3 sectors (see §3.).
Also specify any other static attributes in this list (cf. §2.)
]]
local sectorList = {
-- Demoville
{ location = "P1-1", loadscreen = "LS_Basement", },
{
location = "P1-2", loadscreen = "LS_Cave",
creatureHabitat = Habitat.InnerMine, music = CreatureMusic.Compat,
},
}
--[[
PopulateSectors
Remarks
This function is supposed to initialize sector settings that depend on
what difficulty level and game style the player chooses.
Parameters
difficultyLevel (integer)
Indicates the level of difficulty.
1: easy, 2: experienced, 3: expert, 4: insane
gameStyle (integer)
Indicates whether or not the player selected the scifi option.
0: realistic, 1: scifi
]]
local function PopulateSectors(difficultyLevel, gameStyle)
local s = sectorList
----------------------------------------------------------
-- §2. Defining enemy garrisons and creature population --
----------------------------------------------------------
-- Demoville
s["P1-1"].numTroops = ({ 12, 16, 16, 0 })[difficultyLevel]
s["P1-1"].numElites = ({ 0, 0, 4, 24 })[difficultyLevel]
s["P1-2"].numCreatures = ({ 3, 5, 8, 13 })[difficultyLevel]
end
---------------------------
-- §3. Internal workings --
---------------------------
--[[
BuildUndergroundSectorList
Remarks
This function gets called by the game when a new game starts. It is
supposed to return the initialized list of underground sectors.
Parameters
gameSettings
Table holding these keys:
- difficultyLevel (integer)
1: easy, 2: experienced, 3: expert, 4: insane
- gameStyle (integer)
0: realistic, 1: scifi
Return value
This function shall return a table of tables that may feature the
following keys:
- location (required)
string of the form "[R][C]-[L]", where [R] is a row
identifier (A-P), [C] is a column identifier (1-16), [L] is a
sublevel identifier (1-3), e.g. "A9-1"
- numAdmins
- numTroops
- numElites
integers, specifying numbers of enemy garrisons, default: 0
- numBloodcats
integer, specifying quantity of bloodcat population, default: 0
This requires bloodcat placements to be set in the map itself.
- numCreatures
integer, specifying number of creatures in total, default: 0
Distribution of creature types depends on creature habitat (see §0.)
- creatureHabitat
integer, specifying creature distribution type
Use one of the constants from the Habitat enumeration (see §0.)
- music
integer, specifying under which circumstances to use creepy music
Use one of the costants from CreatureMusic enumeration (see §0.)
]]
function BuildUndergroundSectorList(gameSettings)
local difficultyLevel = gameSettings["difficultyLevel"]
local gameStyle = gameSettings["gameStyle"]
PopulateSectors(difficultyLevel, gameStyle)
return sectorList
end
--[[
GetLoadscreen
Remarks
Provides the game with the name and file format of the loadscreen for a
given sector. The function forwards the loadscreen attribute as declared
in the sectorList (cf. §1.) or uses default screens.
The game will use the name and format as well as screen resolution to
build the complete file name itself.
Parameters
location (string)
The usual sector location string of the sector the loadscreen is
requested for, e.g. "A10-1".
timeOfDay (integer)
The time in minutes that has passed since midnight.
Return values
This function shall return a 2-tuple of strings, of which the first shall
be the loadscreen name and the second the file extension.
]]
function GetLoadscreen(location, timeOfDay)
local function Return(name)
return "Loadscreens\\" .. name, "sti"
end
local s = sectorList[location]
if s ~= nil then
-- multiple screens to choose from?
if s.loadscreens ~= nil and #s.loadscreens > 0 then
local screen = s.loadscreens[math.random(#s.loadscreens)]
return Return(screen)
end
-- single screen?
if s.loadscreen ~= nil then
return Return(s.loadscreen)
end
end
-- resorting to defaults
do
-- get last character, aka z level
local level = location:sub(#location, #location)
if level == "1" then
return Return("LS_Mine")
else
return Return("LS_Cave")
end
end
end
------------------------------------
-- §3.1. Underground sector names --
------------------------------------
--[[
Before the game loads this very script it processes another one,
'undergroundsectornames.lua', specifically. For this purpose, it basically
concatenates the two scripts.
'undergroundsectornames.lua' shall define a table of strings, which will
then be referenced in this script to provide the game with sector names.
That specific table shall be called 'sectornames', so make sure to not
overwrite that variable by accident.
]]
--[[
GetSectorName
Remarks
Provides the game with underground sector names.
This function can be called often (i.e. every frame) since currently the
result will not be cached.
Parameters:
sectorCoods
usual coordiantes string, e.g. "A10-1"
sectorDetails
table featuring the following items
- visited (boolean)
Indicates if the player has entered the sector at least once.
- creaturesPresent (boolean)
Indicates whether or not there are any monsters alive.
- detailed (boolean)
Indicates whether the game requests a detailed name.
Return value
This function shall return the requested sector name as a UTF-8 encoded
string.
]]
function GetSectorName(sectorCoords, sectorDetails)
if sectorDetails.visited then
local dash = sectorCoords:find("-")
local coords = sectorCoords:sub(1, dash-1)
if sectornames[sectorCoords] ~= nil then
return coords .. ": " .. sectornames[sectorCoords]
elseif sectornames[sectorCoords:lower()] ~= nil then
-- try lowercase version
return coords .. ": " .. sectornames[sectorCoords:lower()]
else
if sectorDetails.creaturesPresent then
return coords .. ": " .. sectornames.creatureLair
else
return sectorCoords
end
end
else
-- not visited
return ""
end
end
-- For convenient access allow indexing the sectorList by location string.
mt = {}
setmetatable(sectorList, mt)
mt.__index = function(table, key)
for i = 1, #table do
local t = rawget(table, i)
if (t.location == key) then
return t
end
end
return nil
end
@@ -1,67 +0,0 @@
--[[
This file (or its localized versions respectively) are included in
"initunderground.lua" to provide the underground sector names.
Make sure to save this file as UTF-8, preferably with BOM signature in
order to help editors to not mess up the encoding. Also make sure to not
save BOM in any other script unless it explicitly allows that.
]]
sectornames = {
["A10-1"] = "Rebel Hideout",
["J9-1"] = "Tixa Dungeon",
["J9-2"] = "Tixa Dungeon",
["K4-1"] = "Orta Basement",
["O3-1"] = "Tunnel",
["P3-1"] = "Shelter",
["B2-1"] = "Chitzena Mine",
["D4-1"] = "San Mona Mine",
["D5-1"] = "San Mona Mine",
["D13-1"] = "Drassen Mine",
["E13-1"] = "Drassen Mine",
["E13-2"] = "Drassen Mine",
["F13-2"] = "Drassen Mine",
["G13-2"] = "Drassen Mine",
["G13-3"] = "Drassen Mine",
["F13-3"] = "Drassen Mine",
["H8-1"] = "Cambria Mine",
["H9-1"] = "Cambria Mine",
["H9-2"] = "Cambria Mine",
["H8-2"] = "Cambria Mine",
["H8-3"] = "Cambria Mine",
["I8-3"] = "Cambria Mine",
["J8-3"] = "Cambria Mine",
["I14-1"] = "Alma Mine",
["J14-1"] = "Alma Mine",
["J14-2"] = "Alma Mine",
["J13-2"] = "Alma Mine",
["J13-3"] = "Alma Mine",
["K13-3"] = "Alma Mine",
["H3-1"] = "Grumm Mine",
["I3-1"] = "Grumm Mine",
["I3-2"] = "Grumm Mine",
["H3-2"] = "Grumm Mine",
["H4-2"] = "Grumm Mine",
["H4-3"] = "Grumm Mine",
["G4-3"] = "Grumm Mine",
["P1-1"] = "Demoville",
["P1-2"] = "Demoville",
["P1-3"] = "Demoville",
creatureLair = "Creature Lair",
}
File diff suppressed because it is too large Load Diff
@@ -1,320 +0,0 @@
<!--
This file defines army compositions in game.
Fields index:
Index - it is simply composition index. Provide valid integer number.
See reference on indexes in original game below.
Priority - it is importance of the composition to the Queen. Most important
compositions are getting reinforcements first, than less important.
Nobody will get reinforcements, if Queen have no free troops.
ElitePercentage - it is a chance to be elite for every soldier in squad, i.e. when
game create a squad every soldier is rolled a chance to be elite.
Provide integer from interval [0..100].
TroopPercentage - it is like ElitePercentage, but for regular troops.
AdminPercentage - and this is something different. This value is used to calculate
number of admins in squad:
NumAdmins = AdminPercentage * StartPopulation / 100
DesiredPopulation - it is the number of soldiers the Queen want to have in this
composition. Provide integer value.
StartPopulation - it is the number of soldiers at the start of the new campagin.
Provide integer value.
Indexes reference in original JA2:
Index Short name Desription
0 QUEEN_DEFENCE The most important sector, the queen's palace.
1 MEDUNA_DEFENCE The town surrounding the queen's palace.
2 MEDUNA_SAMSITE A sam site within Meduna (higher priority)
3 LEVEL1_DEFENCE The sectors immediately adjacent to Meduna (defence and spawning area)
4 LEVEL2_DEFENCE Two sectors away from Meduna (defence and spawning area)
5 LEVEL3_DEFENCE Three sectors away from Meduna (defence and spawning area)
6 ORTA_DEFENCE The top secret military base containing lots of elites
7 EAST_GRUMM_DEFENCE The most-industrial town in Arulco (more mine income)
8 WEST_GRUMM_DEFENCE The most-industrial town in Arulco (more mine income)
9 GRUMM_MINE
10 OMERTA_WELCOME_WAGON Small force that greets the player upon arrival in game.
11 BALIME_DEFENCE Rich town, paved roads, close to Meduna (in queen's favor)
12 TIXA_PRISON Prison, well defended, but no point in retaking
13 TIXA_SAMSITE The central-most sam site (important for queen to keep)
14 ALMA_DEFENCE The military town of Meduna. Also very important for queen.
15 ALMA_MINE Mine income AND administrators
16 CAMBRIA_DEFENCE Medical town, large, central.
17 CAMBRIA_MINE
18 CHITZENA_DEFENCE Small town, small mine, far away.
19 CHITZENA_MINE
20 CHITZENA_SAMSITE Sam site near Chitzena.
21 DRASSEN_AIRPORT Very far away, a supply depot of little importance.
22 DRASSEN_DEFENCE Medium town, normal.
23 DRASSEN_MINE
24 DRASSEN_SAMSITE Sam site near Drassen (least importance to queen of all samsites)
25 ROADBLOCK General outside city roadblocks - enhance chance of ambush?
26 SANMONA_SMALL
Army composition soldier count calculation:
1) game calculate number of admins (NumAdmins = AdminPercentage * StartPopulation / 100)
2) for the rest soldiers game makes a loop:
2a) soldier check to be elite
2b) soldier check to be regular troop
2c) if both checks failed, none soldier is added
3) step 2 is executed until there are unchecked soldiers left
NOTE: Maximum 60 army compositions can be used in game.
Changes require starting of a new game.
-->
<COMPOSITION_INFO>
<COMPOSITION>
<Index>0</Index>
<Priority>100</Priority>
<ElitePercentage>100</ElitePercentage>
<TroopPercentage>0</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>32</DesiredPopulation>
<StartPopulation>32</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>1</Index>
<Priority>95</Priority>
<ElitePercentage>55</ElitePercentage>
<TroopPercentage>45</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>16</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>2</Index>
<Priority>96</Priority>
<ElitePercentage>65</ElitePercentage>
<TroopPercentage>35</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>20</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>3</Index>
<Priority>40</Priority>
<ElitePercentage>20</ElitePercentage>
<TroopPercentage>80</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>12</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>4</Index>
<Priority>30</Priority>
<ElitePercentage>10</ElitePercentage>
<TroopPercentage>90</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>10</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>5</Index>
<Priority>20</Priority>
<ElitePercentage>5</ElitePercentage>
<TroopPercentage>95</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>8</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>6</Index>
<Priority>90</Priority>
<ElitePercentage>50</ElitePercentage>
<TroopPercentage>50</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>18</DesiredPopulation>
<StartPopulation>19</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>7</Index>
<Priority>80</Priority>
<ElitePercentage>20</ElitePercentage>
<TroopPercentage>80</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>15</DesiredPopulation>
<StartPopulation>15</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>8</Index>
<Priority>70</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>40</AdminPercentage>
<DesiredPopulation>15</DesiredPopulation>
<StartPopulation>15</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>9</Index>
<Priority>85</Priority>
<ElitePercentage>25</ElitePercentage>
<TroopPercentage>75</TroopPercentage>
<AdminPercentage>45</AdminPercentage>
<DesiredPopulation>15</DesiredPopulation>
<StartPopulation>15</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>10</Index>
<Priority>0</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>0</DesiredPopulation>
<StartPopulation>3</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>11</Index>
<Priority>60</Priority>
<ElitePercentage>45</ElitePercentage>
<TroopPercentage>55</TroopPercentage>
<AdminPercentage>20</AdminPercentage>
<DesiredPopulation>10</DesiredPopulation>
<StartPopulation>4</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>12</Index>
<Priority>80</Priority>
<ElitePercentage>10</ElitePercentage>
<TroopPercentage>90</TroopPercentage>
<AdminPercentage>15</AdminPercentage>
<DesiredPopulation>15</DesiredPopulation>
<StartPopulation>15</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>13</Index>
<Priority>85</Priority>
<ElitePercentage>10</ElitePercentage>
<TroopPercentage>90</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>12</DesiredPopulation>
<StartPopulation>12</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>14</Index>
<Priority>74</Priority>
<ElitePercentage>15</ElitePercentage>
<TroopPercentage>85</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>11</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>15</Index>
<Priority>80</Priority>
<ElitePercentage>20</ElitePercentage>
<TroopPercentage>80</TroopPercentage>
<AdminPercentage>45</AdminPercentage>
<DesiredPopulation>15</DesiredPopulation>
<StartPopulation>20</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>16</Index>
<Priority>50</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>30</AdminPercentage>
<DesiredPopulation>10</DesiredPopulation>
<StartPopulation>6</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>17</Index>
<Priority>60</Priority>
<ElitePercentage>15</ElitePercentage>
<TroopPercentage>90</TroopPercentage>
<AdminPercentage>40</AdminPercentage>
<DesiredPopulation>11</DesiredPopulation>
<StartPopulation>6</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>18</Index>
<Priority>30</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>75</AdminPercentage>
<DesiredPopulation>12</DesiredPopulation>
<StartPopulation>10</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>19</Index>
<Priority>40</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>75</AdminPercentage>
<DesiredPopulation>10</DesiredPopulation>
<StartPopulation>10</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>20</Index>
<Priority>75</Priority>
<ElitePercentage>10</ElitePercentage>
<TroopPercentage>90</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>9</DesiredPopulation>
<StartPopulation>9</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>21</Index>
<Priority>30</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>85</AdminPercentage>
<DesiredPopulation>12</DesiredPopulation>
<StartPopulation>10</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>22</Index>
<Priority>20</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>80</AdminPercentage>
<DesiredPopulation>10</DesiredPopulation>
<StartPopulation>8</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>23</Index>
<Priority>35</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>75</AdminPercentage>
<DesiredPopulation>11</DesiredPopulation>
<StartPopulation>9</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>24</Index>
<Priority>50</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>100</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>10</DesiredPopulation>
<StartPopulation>10</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>25</Index>
<Priority>20</Priority>
<ElitePercentage>2</ElitePercentage>
<TroopPercentage>98</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>8</DesiredPopulation>
<StartPopulation>0</StartPopulation>
</COMPOSITION>
<COMPOSITION>
<Index>26</Index>
<Priority>0</Priority>
<ElitePercentage>0</ElitePercentage>
<TroopPercentage>0</TroopPercentage>
<AdminPercentage>0</AdminPercentage>
<DesiredPopulation>0</DesiredPopulation>
<StartPopulation>0</StartPopulation>
</COMPOSITION>
</COMPOSITION_INFO>
@@ -1,22 +0,0 @@
<!--
This file defines garrisons in game.
Fields index:
Sector - it is where garrison will be sitting. Provide valid sector name.
Composition - it is composition index of garrison. Composition define quantity
and quality of enemy forces. Look into ArmyCompositions.xml for
more information.
NOTE: Maximum 100 garrisons can be used in game.
Changes require starting of a new game.
-->
<GARRISON_INFO>
<GARRISON>
<Sector>P1</Sector>
<Composition>2</Composition>
</GARRISON>
</GARRISON_INFO>
@@ -1,44 +0,0 @@
<!--
This file defines patrols in game.
Fields index:
Size - base number of soldiers in patrol. Actual number of soldiers is
calculated as base number plus/minus 1 and then max/min limits
are applied. Max limit is MAX_STRATEGIC_TEAM_SIZE in INI, and
min limit is *_MIN_ENEMY_GROUP_SIZE. Provide integer number.
Priority - Hmmm... Priority is priority. It defines importance of patrol
group to Queen. More important - more chances to get reinforcements,
more chances to upgrade admins to regular troops. Provide
value from interval [0..100].
Waypoints - this categiory define route of patrolling group. You are given
up to 4 (2 is a minimum) sector check-points. At a check-point
patrol can change direction of movement. Only horizontal and
vertical movement is allowed, diagonal is restricted. In case
short routes (e.g. 2 or 3 points) fill unused sectors with 0.
And also you cannot use sector A1 in routes. Patrol moves through
route like a ball in ping-pong, e.g. ...-1-2-3-4-3-2-1-2-3...
Starting point is random.
Sector1..4 - it is where patrol will be coursing. Provide valid sector name
or 0, if this field is unused.
NOTE: Maximum 50 patrols can be used in game.
Changes require starting of a new game.
-->
<PATROL_INFO>
<PATROL>
<Size>8</Size>
<Priority>40</Priority>
<Waypoints>
<Sector1>A1</Sector1>
<Sector2>A2</Sector2>
<Sector3>0</Sector3>
<Sector4>0</Sector4>
</Waypoints>
</PATROL>
</PATROL_INFO>
@@ -1,73 +0,0 @@
<!--
STANDARD UNIFORMS
Please note that you need all six uniform types defined here,
otherwise the game will not load:
ENEMY_ADMIN
ENEMY_TROOP
ENEMY_ELITE
MILITIA_ROOKIE
MILITIA_REGULAR
MILITIA_ELITE
Also, there's a limited choice of uniform types, and you need
to select from this set of choices.
(Please note that this is CASE SENSITIVE)
Possible vests:
YELLOWVEST
BLACKSHIRT
REDVEST
GREENVEST
JEANVEST
BLUEVEST
greyVEST :: note capitalization here
GYELLOWSHIRT
WHITEVEST
PURPLESHIRT
BLUEVEST
BROWNVEST
Possible pants:
GREENPANTS
BLACKPANTS
BEIGEPANTS
TANPANTS
JEANPANTS
BLUEPANTS
-->
<UNIFORMS>
<ENEMY_ADMIN>
<Vest>YELLOWVEST</Vest>
<Pants>GREENPANTS</Pants>
</ENEMY_ADMIN>
<ENEMY_TROOP>
<Vest>REDVEST</Vest>
<Pants>GREENPANTS</Pants>
</ENEMY_TROOP>
<ENEMY_ELITE>
<Vest>BLACKSHIRT</Vest>
<Pants>BLACKPANTS</Pants>
</ENEMY_ELITE>
<MILITIA_ROOKIE>
<Vest>GREENVEST</Vest>
<Pants>BEIGEPANTS</Pants>
</MILITIA_ROOKIE>
<MILITIA_REGULAR>
<Vest>JEANVEST</Vest>
<Pants>BEIGEPANTS</Pants>
</MILITIA_REGULAR>
<MILITIA_ELITE>
<Vest>BLUEVEST</Vest>
<Pants>BEIGEPANTS</Pants>
</MILITIA_ELITE>
</UNIFORMS>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,254 +0,0 @@
<SMALLFACE>
<FACE>
<uiIndex>0</uiIndex>
<Name>Miguel</Name>
<FaceIndex>57</FaceIndex>
<EyesX>9</EyesX>
<EyesY>8</EyesY>
<MouthX>8</MouthX>
<MouthY>24</MouthY>
</FACE>
<FACE>
<uiIndex>1</uiIndex>
<Name>Carlos</Name>
<FaceIndex>58</FaceIndex>
<EyesX>8</EyesX>
<EyesY>8</EyesY>
<MouthX>7</MouthX>
<MouthY>24</MouthY>
</FACE>
<FACE>
<uiIndex>2</uiIndex>
<Name>Ira</Name>
<FaceIndex>59</FaceIndex>
<EyesX>10</EyesX>
<EyesY>8</EyesY>
<MouthX>8</MouthX>
<MouthY>26</MouthY>
</FACE>
<FACE>
<uiIndex>3</uiIndex>
<Name>Dimitri</Name>
<FaceIndex>60</FaceIndex>
<EyesX>7</EyesX>
<EyesY>8</EyesY>
<MouthX>7</MouthX>
<MouthY>26</MouthY>
</FACE>
<FACE>
<uiIndex>4</uiIndex>
<Name>Devin</Name>
<FaceIndex>61</FaceIndex>
<EyesX>6</EyesX>
<EyesY>7</EyesY>
<MouthX>7</MouthX>
<MouthY>23</MouthY>
</FACE>
<FACE>
<uiIndex>5</uiIndex>
<Name>Robot</Name>
<FaceIndex>62</FaceIndex>
<EyesX>0</EyesX>
<EyesY>0</EyesY>
<MouthX>0</MouthX>
<MouthY>0</MouthY>
</FACE>
<FACE>
<uiIndex>6</uiIndex>
<Name>Hamous</Name>
<FaceIndex>63</FaceIndex>
<EyesX>8</EyesX>
<EyesY>7</EyesY>
<MouthX>8</MouthX>
<MouthY>23</MouthY>
</FACE>
<FACE>
<uiIndex>7</uiIndex>
<Name>Terry</Name>
<FaceIndex>64</FaceIndex>
<EyesX>8</EyesX>
<EyesY>8</EyesY>
<MouthX>8</MouthX>
<MouthY>22</MouthY>
</FACE>
<FACE>
<uiIndex>8</uiIndex>
<Name>RPC65</Name>
<FaceIndex>65</FaceIndex>
<EyesX>0</EyesX>
<EyesY>0</EyesY>
<MouthX>0</MouthX>
<MouthY>0</MouthY>
</FACE>
<FACE>
<uiIndex>9</uiIndex>
<Name>Dynamo</Name>
<FaceIndex>66</FaceIndex>
<EyesX>9</EyesX>
<EyesY>4</EyesY>
<MouthX>7</MouthX>
<MouthY>22</MouthY>
</FACE>
<FACE>
<uiIndex>10</uiIndex>
<Name>Shank</Name>
<FaceIndex>67</FaceIndex>
<EyesX>10</EyesX>
<EyesY>13</EyesY>
<MouthX>11</MouthX>
<MouthY>25</MouthY>
</FACE>
<FACE>
<uiIndex>11</uiIndex>
<Name>Iggy</Name>
<FaceIndex>68</FaceIndex>
<EyesX>4</EyesX>
<EyesY>6</EyesY>
<MouthX>5</MouthX>
<MouthY>22</MouthY>
</FACE>
<FACE>
<uiIndex>12</uiIndex>
<Name>Vince</Name>
<FaceIndex>69</FaceIndex>
<EyesX>8</EyesX>
<EyesY>9</EyesY>
<MouthX>7</MouthX>
<MouthY>25</MouthY>
</FACE>
<FACE>
<uiIndex>13</uiIndex>
<Name>Conrad</Name>
<FaceIndex>70</FaceIndex>
<EyesX>4</EyesX>
<EyesY>7</EyesY>
<MouthX>5</MouthX>
<MouthY>25</MouthY>
</FACE>
<FACE>
<uiIndex>14</uiIndex>
<Name>RPC71</Name>
<FaceIndex>71</FaceIndex>
<EyesX>9</EyesX>
<EyesY>7</EyesY>
<MouthX>8</MouthX>
<MouthY>22</MouthY>
</FACE>
<FACE>
<uiIndex>15</uiIndex>
<Name>Maddog</Name>
<FaceIndex>72</FaceIndex>
<EyesX>9</EyesX>
<EyesY>7</EyesY>
<MouthX>9</MouthX>
<MouthY>25</MouthY>
</FACE>
<FACE>
<uiIndex>16</uiIndex>
<Name>Darrel</Name>
<FaceIndex>73</FaceIndex>
<EyesX>0</EyesX>
<EyesY>0</EyesY>
<MouthX>0</MouthX>
<MouthY>0</MouthY>
</FACE>
<FACE>
<uiIndex>17</uiIndex>
<Name>Perko</Name>
<FaceIndex>74</FaceIndex>
<EyesX>0</EyesX>
<EyesY>0</EyesY>
<MouthX>0</MouthX>
<MouthY>0</MouthY>
</FACE>
<FACE>
<uiIndex>18</uiIndex>
<Name>Maria</Name>
<FaceIndex>88</FaceIndex>
<EyesX>9</EyesX>
<EyesY>3</EyesY>
<MouthX>8</MouthX>
<MouthY>23</MouthY>
</FACE>
<FACE>
<uiIndex>19</uiIndex>
<Name>Joey</Name>
<FaceIndex>90</FaceIndex>
<EyesX>9</EyesX>
<EyesY>3</EyesY>
<MouthX>8</MouthX>
<MouthY>25</MouthY>
</FACE>
<FACE>
<uiIndex>20</uiIndex>
<Name>Skyrider</Name>
<FaceIndex>97</FaceIndex>
<EyesX>11</EyesX>
<EyesY>7</EyesY>
<MouthX>9</MouthX>
<MouthY>24</MouthY>
</FACE>
<FACE>
<uiIndex>21</uiIndex>
<Name>Fred</Name>
<FaceIndex>106</FaceIndex>
<EyesX>9</EyesX>
<EyesY>5</EyesY>
<MouthX>7</MouthX>
<MouthY>23</MouthY>
</FACE>
<FACE>
<uiIndex>22</uiIndex>
<Name>John</Name>
<FaceIndex>118</FaceIndex>
<EyesX>6</EyesX>
<EyesY>4</EyesY>
<MouthX>6</MouthX>
<MouthY>24</MouthY>
</FACE>
<FACE>
<uiIndex>23</uiIndex>
<Name>Mary</Name>
<FaceIndex>119</FaceIndex>
<EyesX>12</EyesX>
<EyesY>4</EyesY>
<MouthX>10</MouthX>
<MouthY>24</MouthY>
</FACE>
<FACE>
<uiIndex>24</uiIndex>
<Name>Matt</Name>
<FaceIndex>148</FaceIndex>
<EyesX>8</EyesX>
<EyesY>6</EyesY>
<MouthX>8</MouthX>
<MouthY>23</MouthY>
</FACE>
<FACE>
<uiIndex>25</uiIndex>
<Name>Oswald</Name>
<FaceIndex>156</FaceIndex>
<EyesX>6</EyesX>
<EyesY>5</EyesY>
<MouthX>6</MouthX>
<MouthY>23</MouthY>
</FACE>
<FACE>
<uiIndex>26</uiIndex>
<Name>Calvin </Name>
<FaceIndex>157</FaceIndex>
<EyesX>13</EyesX>
<EyesY>7</EyesY>
<MouthX>11</MouthX>
<MouthY>24</MouthY>
</FACE>
<FACE>
<uiIndex>27</uiIndex>
<Name>Carl</Name>
<FaceIndex>158</FaceIndex>
<EyesX>9</EyesX>
<EyesY>7</EyesY>
<MouthX>8</MouthX>
<MouthY>22</MouthY>
</FACE>
</SMALLFACE>
File diff suppressed because it is too large Load Diff
@@ -1,7 +1,7 @@
Do you want to play the Unfinished Business User Campaigns (eg: SOG Vietnam 69, Shady Jobs, ...)
with the latest 1.13 features?
Just download all the campaign from SVN and put them in your JA2 1.13 Installation directory.
Just download the campaign you like to play from SVN and put them in your JA2 1.13 Installation directory.
https://ja2svn.dyndns.org/source/ja2/branches/Wanne/UB_113_Addons
Then start the "Set JA2UB v1.13 Campaign.exe", select the UB MOD from and click "Start". Enjoy!
Then start the game from the "INI Editor" by selecting the proper VFS-Config-File and the UB-Executable. Then click the "START" button.
-3
View File
@@ -30,9 +30,6 @@ VFS_CONFIG_INI = vfs_config.JA2113.ini
; JA2 1.13 - Vanilla (JA2 Classic)
; VFS_CONFIG_INI = vfs_config.JA2Vanilla.ini
; JA2 1.13 - JA2 Demo
; VFS_CONFIG_INI = vfs_config.JA2113Demo.ini
; JA2 1.13 - Unfinished Business
; VFS_CONFIG_INI = vfs_config.UB.ini
@@ -1,108 +0,0 @@
;******************************************************************************************************************************
;******************************************************************************************************************************
; Jagged Alliance 2 --Settings File--
;
; Please note that this file is automatically generated by the game.
;
; While it is safe to change things from within this file, not all values are acceptable. Some may break the game,
; some may be ignored, but most likely they will be acceptable or reset to a default value.
;
; Please note, This file and its contents are in a beta phase. Expect changes, however they should be minimal and automated.
;
;******************************************************************************************************************************
;******************************************************************************************************************************
; The Current Game Setting Struct is defined as :
;
; typedef struct
; {
; INT8 bLastSavedGameSlot; // The last saved game number goes in here
; UINT8 ubMusicVolumeSetting; // Volume Setting
; UINT8 ubSoundEffectsVolume; // Volume Setting
; UINT8 ubSpeechVolume; // Volume Setting
; UINT8 fOptions[ NUM_ALL_GAME_OPTIONS ]; // Toggle Options (Speech, Subtitles, Show Tree Tops, etc.. )
; UINT32 uiMeanwhileScenesSeenFlags; // Bit Vector describing seen 'mean whiles..'
; BOOLEAN fHideHelpInAllScreens; // Controls Help "do not show help again" checkbox
; } GAME_SETTINGS
;
;******************************************************************************************************************************
[JA2 Game Settings]
bLastSavedGameSlot = -1
ubMusicVolumeSetting = 65
ubSoundEffectsVolume = 65
ubSpeechVolume = 65
uiMeanwhileScenesSeenFlags = 0
fHideHelpInAllScreens = FALSE
TOPTION_SPEECH = TRUE
TOPTION_MUTE_CONFIRMATIONS = FALSE
TOPTION_SUBTITLES = TRUE
TOPTION_KEY_ADVANCE_SPEECH = FALSE
TOPTION_ANIMATE_SMOKE = TRUE
TOPTION_BLOOD_N_GORE = TRUE
TOPTION_DONT_MOVE_MOUSE = FALSE
TOPTION_OLD_SELECTION_METHOD = FALSE
TOPTION_ALWAYS_SHOW_MOVEMENT_PATH = FALSE
TOPTION_SHOW_MISSES = FALSE
TOPTION_RTCONFIRM = FALSE
TOPTION_SLEEPWAKE_NOTIFICATION = TRUE
TOPTION_USE_METRIC_SYSTEM = TRUE
TOPTION_MERC_ALWAYS_LIGHT_UP = FALSE
TOPTION_SMART_CURSOR = FALSE
TOPTION_SNAP_CURSOR_TO_DOOR = TRUE
TOPTION_GLOW_ITEMS = TRUE
TOPTION_TOGGLE_TREE_TOPS = TRUE
TOPTION_TOGGLE_WIREFRAME = TRUE
TOPTION_3D_CURSOR = FALSE
TOPTION_CTH_CURSOR = FALSE
TOPTION_GL_BURST_CURSOR = TRUE
TOPTION_ALLOW_TAUNTS = FALSE
TOPTION_GL_HIGH_ANGLE = FALSE
TOPTION_ALLOW_REAL_TIME_SNEAK = FALSE
TOPTION_SPACE_SELECTS_NEXT_SQUAD = TRUE
TOPTION_SHOW_ITEM_SHADOW = TRUE
TOPTION_SHOW_WEAPON_RANGE_IN_TILES = TRUE
TOPTION_TRACERS_FOR_SINGLE_FIRE = FALSE
TOPTION_RAIN_SOUND = TRUE
TOPTION_ALLOW_CROWS = TRUE
TOPTION_ALLOW_SOLDIER_TOOLTIPS = FALSE
TOPTION_USE_AUTO_SAVE = FALSE
TOPTION_SILENT_SKYRIDER = FALSE
TOPTION_ENHANCED_DESC_BOX = FALSE
TOPTION_TOGGLE_TURN_MODE = FALSE
TOPTION_STAT_PROGRESS_BARS = FALSE
TOPTION_ALT_MAP_COLOR = FALSE
TOPTION_ALTERNATE_BULLET_GRAPHICS = FALSE
TOPTION_SHOW_MERC_RANKS = FALSE
TOPTION_SHOW_TACTICAL_FACE_GEAR = FALSE
TOPTION_SHOW_TACTICAL_FACE_ICONS = FALSE
TOPTION_DISABLE_CURSOR_SWAP = FALSE
TOPTION_QUIET_TRAINING = FALSE
TOPTION_QUIET_REPAIRING = FALSE
TOPTION_QUIET_DOCTORING = FALSE
TOPTION_AUTO_FAST_FORWARD_MODE = FALSE
TOPTION_ZOMBIES = FALSE
TOPTION_ENABLE_INVENTORY_POPUPS = FALSE
TOPTION_CHEAT_MODE_OPTIONS_HEADER = FALSE
TOPTION_FORCE_BOBBY_RAY_SHIPMENTS = FALSE
TOPTION_CHEAT_MODE_OPTIONS_END = FALSE
TOPTION_DEBUG_MODE_OPTIONS_HEADER = FALSE
TOPTION_REPORT_MISS_MARGIN = FALSE
TOPTION_SHOW_RESET_ALL_OPTIONS = FALSE
TOPTION_RESET_ALL_OPTIONS = FALSE
TOPTION_RETAIN_DEBUG_OPTIONS_IN_RELEASE = FALSE
TOPTION_DEBUG_MODE_RENDER_OPTIONS_GROUP = FALSE
TOPTION_RENDER_MOUSE_REGIONS = FALSE
TOPTION_DEBUG_MODE_OPTIONS_END = FALSE
;******************************************************************************************************************************
; Options beyond this point are Code derived options, DO NOT CHANGE THESE UNLESS YOU KNOW WHAT YOUR ARE DOING.
; They are only included here for complete transparency for all GameSettings content.
;******************************************************************************************************************************
TOPTION_LAST_OPTION = FALSE
NUM_GAME_OPTIONS = FALSE
TOPTION_MERC_CASTS_LIGHT = TRUE
TOPTION_HIDE_BULLETS = FALSE
TOPTION_TRACKING_MODE = TRUE
NUM_ALL_GAME_OPTIONS = FALSE
@@ -1,214 +0,0 @@
[JA2 Multiplayer Initial Settings]
;******************************************************************************************************************************
; The following settings cannot be changed in the HOST screen, so you have to set the values here in this file.
;******************************************************************************************************************************
;------------------------------------------------------------------------------------------------------------------------------
; Server Name
;
; Enter any name here
;------------------------------------------------------------------------------------------------------------------------------
SERVER_NAME = My JA2 Server
;------------------------------------------------------------------------------------------------------------------------------
; Game Data Synchronization Directory
;
; No need to change this path. This is the default 1.13 multiplayer Game Data folder for hosting synchronization files.
;------------------------------------------------------------------------------------------------------------------------------
GAME_DATA_SYNC_DIRECTORY = MULTIPLAYER/Servers/My Server
;------------------------------------------------------------------------------------------------------------------------------
; Additional Merc starting gears
;
; Put the item numbers between the brackets [], and each merc you hire will have the items as an additional starting gear.
; The maxium number of items is limited to 20.
;
; 201 = First Aid Kit
; 214 = Canteen
; 243 = Wire Cutters
;------------------------------------------------------------------------------------------------------------------------------
KIT_BAG = [201,214,243]
;******************************************************************************************************************************
; The following settings can be modified in the HOST screen. Do not change anything here until you know what you do.
;******************************************************************************************************************************
;------------------------------------------------------------------------------------------------------------------------------
; Server IP
;
; HOST: Enter "127.0.0.1" for beeing the host (= CLIENT #1)
; Send your external IP (via IRC, ICQ, ...) to all of the clients who should connect to your server
; See: www.whatismyip.com
; CLIENT: You have to enter the external IP of the server
;------------------------------------------------------------------------------------------------------------------------------
SERVER_IP = 127.0.0.1
;------------------------------------------------------------------------------------------------------------------------------
; Server Port
;
; Enter a port here. The port should be > 60000 and should be forwarded if you want to be the HOST.
; Send the port number (via IRC, ICQ, ...) to all of the clients who should connect to your server.
; See: http://portforward.com
;------------------------------------------------------------------------------------------------------------------------------
SERVER_PORT = 60005
;------------------------------------------------------------------------------------------------------------------------------
; Player Name
;
; Max: 11 characters
;------------------------------------------------------------------------------------------------------------------------------
PLAYER_NAME = Player Name
;------------------------------------------------------------------------------------------------------------------------------
; Synchronize Clients Game Directory if the files from the server, which are stored in GAME_DATA_SYNC_DIRECTORY
;
; 0 = No
; 1 = Yes
;------------------------------------------------------------------------------------------------------------------------------
SYNC_GAME_DIRECTORY = 1
;------------------------------------------------------------------------------------------------------------------------------
; Maximum number of players in a multiplayer game
;
; Range: 2 - 4
;------------------------------------------------------------------------------------------------------------------------------
MAX_PLAYERS = 4
;------------------------------------------------------------------------------------------------------------------------------
; Game Type
;
; 0 = Deathmatch
; 1 = Team-Deathmatch
; 2 = Cooperative (CO-OP)
;------------------------------------------------------------------------------------------------------------------------------
GAME_TYPE = 0
;------------------------------------------------------------------------------------------------------------------------------
; Maximum number of mercs a player can have
;
; Range: 1 - 6
;------------------------------------------------------------------------------------------------------------------------------
MAX_MERCS = 6
;------------------------------------------------------------------------------------------------------------------------------
; Starting time
;
; 0 = Morning
; 1 = Afternoon
; 2 = Night
;------------------------------------------------------------------------------------------------------------------------------
STARTING_TIME = 0
;------------------------------------------------------------------------------------------------------------------------------
; Starting cash
;
; 0 = Low
; 1 = Medium
; 2 = High
; 3 = Unlimited
;------------------------------------------------------------------------------------------------------------------------------
STARTING_CASH = 1
;------------------------------------------------------------------------------------------------------------------------------
; Timed Turns
;
; 0 = Never
; 1 = Slow
; 2 = Medium
; 3 = Fast
;------------------------------------------------------------------------------------------------------------------------------
TIMED_TURNS = 1
;------------------------------------------------------------------------------------------------------------------------------
; Weapon Damage
;
; 0 = Very Low
; 1 = Low
; 2 = Normal
;------------------------------------------------------------------------------------------------------------------------------
WEAPON_DAMAGE = 1
;------------------------------------------------------------------------------------------------------------------------------
; Starting sector edge
;
; 0 = Selectable
; 1 = Random
;------------------------------------------------------------------------------------------------------------------------------
STARTING_SECTOR_EDGE = 0
;------------------------------------------------------------------------------------------------------------------------------
; Inventory / Attachments
;
; 0 = Old / Old
; 1 = New / Old
; 2 = New / New
;------------------------------------------------------------------------------------------------------------------------------
INVENTORY_ATTACHMENTS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Skill Traits
;
; 0 = Old
; 1 = New
;------------------------------------------------------------------------------------------------------------------------------
SKILL_TRAITS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Difficulty Level
;
; 0 = Novice
; 1 = Experienced
; 2 = Expert
; 3 = INSANE
;------------------------------------------------------------------------------------------------------------------------------
DIFFICULTY_LEVEL = 2
;------------------------------------------------------------------------------------------------------------------------------
; Bobby Rays
;
; 0 = Allow
; 1 = Disable
;------------------------------------------------------------------------------------------------------------------------------
BOBBY_RAYS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Hire mercs method
;
; 0 = Normal
; 1 = Random
;------------------------------------------------------------------------------------------------------------------------------
HIRE_MERCS_METHOD = 0
;------------------------------------------------------------------------------------------------------------------------------
; Enforce maximum number of enemies in a CO-OP game
;
; 0 = No
; 1 = Yes
;------------------------------------------------------------------------------------------------------------------------------
MAX_ENEMIES_IN_COOP = 1
;------------------------------------------------------------------------------------------------------------------------------
; Report hired merc name
;
; 0 = No
; 1 = Yes
;------------------------------------------------------------------------------------------------------------------------------
REPORT_HIRED_MERC_NAME = 1
;------------------------------------------------------------------------------------------------------------------------------
; Enable Civilians in CO-OP
;
; 0 = No
; 1 = Yes
;------------------------------------------------------------------------------------------------------------------------------
ENABLE_CIVILIANS_IN_COOP = 0
;------------------------------------------------------------------------------------------------------------------------------
; Same merc allowed
;
; 0 = Disable
; 1 = Allow
;------------------------------------------------------------------------------------------------------------------------------
SAME_MERC_ALLOWED = 1
@@ -1,139 +0,0 @@
[JA2 Singleplayer Initial Settings]
;******************************************************************************************************************************
; The following settings are the initial settings in the initial game screen when you start a new game.
;******************************************************************************************************************************
;------------------------------------------------------------------------------------------------------------------------------
; Difficulty Level
;
; 0 = Novice
; 1 = Experienced
; 2 = Expert
; 3 = INSANE
;------------------------------------------------------------------------------------------------------------------------------
DIFFICULTY_LEVEL = 1
;------------------------------------------------------------------------------------------------------------------------------
; Bobby Ray Quality
;
; 1 = Normal
; 2 = Great
; 3 = Great
; 4 = Excellent
; 5 = Excellent
; 6 = Excellent
; 7 = Excellent
; 8 = Excellent
; 9 = Excellent
; 10 = Awesome
;------------------------------------------------------------------------------------------------------------------------------
BOBBY_RAY_QUALITY = 2
;------------------------------------------------------------------------------------------------------------------------------
; Bobby Ray Quantity
;
; 1 = Normal (1x)
; 2 = Great (2x)
; 3 = Great (3x)
; 4 = Excellent (4x)
; 5 = Excellent (5x)
; 6 = Excellent (6x)
; 7 = Excellent (7x)
; 8 = Excellent (8x)
; 9 = Excellent (9x)
; 10 = Awesome (10x)
;------------------------------------------------------------------------------------------------------------------------------
BOBBY_RAY_QUANTITY = 2
;------------------------------------------------------------------------------------------------------------------------------
; Max IMP Characters
;
; Range: 1 - 6
;------------------------------------------------------------------------------------------------------------------------------
MAX_IMP_CHARACTERS = 1
;------------------------------------------------------------------------------------------------------------------------------
; Progress Speed of Item Choices
;
; 0 = Very Slow
; 1 = Slow
; 2 = Normal
; 3 = Fast
; 4 = Very Fast
;------------------------------------------------------------------------------------------------------------------------------
PROGRESS_SPEED_OF_ITEM_CHOICES = 2
;------------------------------------------------------------------------------------------------------------------------------
; Skill Traits
;
; 0 = Old
; 1 = New
;------------------------------------------------------------------------------------------------------------------------------
SKILL_TRAITS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Inventory / Attachments
;
; 0 = Old / Old
; 1 = New / Old
; 2 = New / New
;------------------------------------------------------------------------------------------------------------------------------
INVENTORY_ATTACHMENTS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Game Style
;
; 0 = Realistic
; 1 = Sci Fi
;------------------------------------------------------------------------------------------------------------------------------
GAME_STYLE = 1
;------------------------------------------------------------------------------------------------------------------------------
; Enemies Drop All Items
;
; 0 = Off
; 1 = On
;------------------------------------------------------------------------------------------------------------------------------
ENEMIES_DROP_ALL_ITEMS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Extra Difficulty
;
; 0 = Save Anytime
; 1 = Ironman (cannot save in combat)
;------------------------------------------------------------------------------------------------------------------------------
EXTRA_DIFFICULTY = 0
;------------------------------------------------------------------------------------------------------------------------------
; Available Arsenal
;
; 0 = Reduced
; 1 = Tons of Guns
;------------------------------------------------------------------------------------------------------------------------------
AVAILABLE_ARSENAL = 0
;------------------------------------------------------------------------------------------------------------------------------
; Number of Terrorists
;
; 0 = Random
; 1 = All
;------------------------------------------------------------------------------------------------------------------------------
NUMBER_OF_TERRORISTS = 0
;------------------------------------------------------------------------------------------------------------------------------
; Secret Weapon Caches
;
; 0 = Random
; 1 = All
;------------------------------------------------------------------------------------------------------------------------------
SECRET_WEAPON_CACHES = 0
;------------------------------------------------------------------------------------------------------------------------------
; Maximum Squad Size
;
; 6 = Available in 640x480, 800x600 and 1024x768 screen resolution
; 8 = Available in 800x600 and 1024x768 screen resolution
; 10 = Available in 1024x768 screen resolution
;------------------------------------------------------------------------------------------------------------------------------
SQUAD_SIZE = 6
-200
View File
@@ -1,200 +0,0 @@
[vfs_config]
PROFILES = SlfLibs, Vanilla, v113, JA2Demo, UserProf
[PROFILE_SlfLibs]
NAME = SLF Libs
LOCATIONS = Ambient, Anims, BattleSNDS, BigItems, Binarydata, Cursors, Data, Faces, Fonts, German, Interface, Intro, Laptop, Loadscreens, Maps, Mercedt, Music, Npc_speech, Npcdata, Radarmaps, Russian, 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_JA2Demo]
NAME = JA2 Demo
LOCATIONS = dataJA2Demo_dir
PROFILE_ROOT =
[PROFILE_UserProf]
NAME = Player Profile
LOCATIONS = uprof_root
PROFILE_ROOT = Profiles\UserProfile_JA2113Demo
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_dataJA2Demo_dir]
TYPE = DIRECTORY
PATH = Data-JA2Demo
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_German]
TYPE = LIBRARY
PATH = Data/German.slf
VFS_PATH = German.slf
MOUNT_POINT =
OPTIONAL = True
[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_Russian]
TYPE = LIBRARY
PATH = Data/Russian.slf
VFS_PATH = Russian.slf
MOUNT_POINT =
OPTIONAL = True
[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 =