@include FL_Dev.ini

[DACOM]
IgnoreDACOMEnv = true
DllPath = .\

[Libraries]
;;;dosfile.dll
ReadFile.dll	;optimized read-only version of dosfile.dll
x86math.dll
EngBase.dll
system.dll
RP8.dll
SoundStreamer.dll
SoundManager.dll
Deformable2.dll
Thorn.dll
Shading.dll
RendComp.dll
alchemy.dll
ximage.dll
.\flmaterials.dll

jflp.dll

HudFacility.dll
HudWeaponGroups.dll
HudTarget.dll
HudStatus.dll

;;EMAURER now include any DLLs used only in development.
@include FL_DevOnlyLibs.ini

[System]
VMeshLibrary
DirectX8 ; implements IID_IRenderPipeline, IID_IVertexBuffer under dx8
SoundManager
SoundStreamer
TextureLibrary
MaterialAnimation
MaterialBatcher
Alchemy
FxRuntime

[Engine]
Animation
Hardpoint
Deformable
RenderManager
FLAppearance
VMeshWire

[RenderManager]
VMesh
TriMesh				; keep trimesh above sphere mesh --  
SphereMesh			; subsystems attempt to create objects in oreder listed

[TriMesh]
tristrips = 0

[RenderPipeline]
MGSDB= FLConfigDatabase.txt

;DEVICE_GAMMA = false			; forces gamma control off 
;TEXTURE_ALLOW_DXT = false		; forces dxtn support off

ALPHAREF = 0 					; d3drenderstate: default alpha ref
ALPHATESTENABLE = true			; d3drenderstate: basic alpha test
ALPHAFUNC = 5 					; d3drenderstate: D3DCMP_GREATER
LOCALVIEWER = false				; d3drenderstate: specular highlights
zfunc = 4                               ; default z compare func is D3DCMP_LESSEQUAL

;FPU_PRESERVE = false 		; should Direct3D save and restore the FPU state every time it needs to modify the FPU state. 
;MULTITHREADED = false 		; request multithread-safe behavior. This causes Direct3D to take the global critical section more frequently. 

; vertex processing flags are mutually exclusive
; regardless of what the user asks for if the device cant support hw-tl the user gets sw-tl
HARDWARE_VERTEXPROCESSING= true
;MIXED_VERTEXPROCESSING= true
;SOFTWARE_VERTEXPROCESSING= true

;LOCAKABLE_BACKBUFFER= false ; should the device allow the backbuffer to be locked
USE_SYSLOCK= false 			; should resources (vb, ib, texture) take a windows wide critical lock when in use
HANDLE_SWAPLOSS= false		; should rp attempt to handle device loss internally?
							; a poor substitue for app-side management but makes tool building easier
;VIEWSPACE_LIGHTS = false

;TEXTURE_CUBEMAPS = false


[;TextureLibrary]
;(TEXTURE_LOD_LOAD_MIN= 128) while this would work for other apps; freelancer's perfoptions.ini will override whatever setting this has.

[SoundManager]
;HEADPHONES 1, STERO 2, QUAD 7, SURROUND 8
;speakerConfiguration = 2 	;set only if you want to override Windows setting
createAll2dInSoftware = true
3D_SW_Algorithm = Light
use2DHW = true 
use3DHW = true
maxSoundChannels = 24 ; was 30. changed for Beta -psw 
;pci - force HW mixing until Library default is changed
FORCE_FREQ_CONTROL_TO_SW = false
max3DPan = 15

[Alchemy]
;EMAURER added this line to fix problem with runtime alchemy running out of vertex buffer
;maxVertices and maxIndices are now determined by alchemy based on the particle pools
;Alchemy.maxVertices ~= 11100
;Alchemy.maxIndices ~= 28200 

Alchemy.useMaterialBatcher = false
											; (note: 1000 is default poolsize)
FxBasicAppearance.poolSize    = 1000		; each particle can generate: 4 verts 6, indices 
FxRectAppearance.poolSize     = 400			; each particle can generate: 4 verts 6, indices 
FxPerpAppearance.poolSize     = 250			; each particle can generate: 4 verts 6, indices 
FxOrientedAppearance.poolSize = 0			; each particle can generate: 4 verts 6, indices 
FLBeamAppearance.poolSize     = 680			; custom app from flalchemy.dll: each particle can generate: 5 verts 24 indices
FLDustAppearance.poolSize     = 250			; custom app from flalchemy.dll: each particle can generate: 4 verts 6 indices
;---------------------- total = 2600 -------; 
;
FxMeshAppearance.poolSize  = 500			; generates meshes not particles; need enough of these for all tradelane rings in a system.
FxParticleAppearance.poolSize = 100			; generates effects not particles

[BatchedMaterials]
Type = .*OcOt

[MaterialMap]					; evaluation of material map happens in reverse order listed so put more specific last
; -------- da standard maps ------------------------
EcEtOcOt= DcDtOcOt				; EMAURER: exporter generates EcEtOcOt but there is no implementation of it right now.
DcDtEcEt= DcDtEt				; STRAVIS: should already be happening but the exporters dont seem to be making the conversion

; -------- freelancer specific maps: from dalibs\shading.dll ------------------------
name = ^alpha_mask.* = DcDt			; these are materials that would otherwise get mapped to translucent textures and batched
name = ^alpha_mask.*2side = DcDtTwo ; we arent using alpha for blending -- just for masking

name = ^detailmap_.* = BtDetailMapMaterial

name = ^tlr_material$ = NebulaTwo
name = ^tlr_energy$ = NebulaTwo

; -------- freelancer materials: from flmaterials.dll  -----------------
;name = ^nomad.*$ = NomadMaterial ---> this must be commented out
name = ^nomad.*$ = NomadMaterialNoBendy
name = ^n-texture.*$ = NomadMaterialNoBendy
name = ^ui_.* = HUDIconMaterial
name = ^exclusion_.* = ExclusionZoneMaterial

Name= ^c_glass$ = HighGlassMaterial
Name= ^cv_glass$ = HighGlassMaterial
Name= ^b_glass$ = HighGlassMaterial
Name= ^k_glass$ = HighGlassMaterial
Name= ^l_glass$ = HighGlassMaterial
Name= ^r_glass$ = HighGlassMaterial
Name = ^planet.*_glass$ = GFGlassMaterial
Name = ^bw_glass$ = HighGlassMaterial
Name = ^o_glass$ = HighGlassMaterial
Name = ^anim_hud.*$ = HUDAnimMaterial
name = ^sea_anim.*$ = PlanetWaterMaterial

Name = ^null$ = NullMaterial
