desc.ext: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
Line 97: Line 97:


=Scripts=
=Scripts=
==Campaigns==
scripts are part of mission.sqm and \hardpaths to addons are valid. Therefore, all relative references in a mission.sqm (and their scripts) are relative to the mission.sqm, NOT the folder they are encountered in. (sigh)
<pre>
 
scripts are part of mission.sqm and \hardpaths to addons are valid. Therefore, all references in a mission.sqm folder (and beyond) are relative addressed.
expActiv="nul=[] execVM ""scripts\dialog.sqf""";
 
relative to mission.sqm
 
expActiv="nul=[] execVM ""\scripts\dialog.sqf""";
 
would refer to a (non existent) pboprefix 'scripts'
 
fowley kbAddTopic ["dialog", "scripts\dialog.bikb", ""];
 
again, relative to mission.sqm, even tho, this piece of text is in the 'scripts' folder.


Note that Campaign root scripts folder is implied if it cannot find file in the mission.
Note that Campaign root scripts folder is implied if it cannot find file in the mission.
Line 106: Line 116:
execvm Scripts\thing.sqf // will look in mission.sqm\scripts or campaignRoot\scripts\scripts
execvm Scripts\thing.sqf // will look in mission.sqm\scripts or campaignRoot\scripts\scripts


previously, mission.sqm\scripts and ~\sound wre also a default folders. but it looks like they broke it.
previously, mission.sqm\scripts and ~\sound were also a default folders. but it looks like they broke it.
 
==bikb==
 
    speech[] = {"\sound\02v1.ogg"};


</pre>
another, dreadful piece of inconsistency where the '\hardpath' refers to mission space. feel free to scream.

Revision as of 03:59, 11 September 2011

Until bis break their own code again, file references in desc.ext seem to follow the following conventions

note this is incompatible with arma1 and resistance. the rules have changed

all references in a desc.ext are relative to the location of the desc.ext. A \hardpath or lack of one makes no difference.

missionroot

as above. all references, \hardpathed or otherwise are relative to mission.sqm


campaignroot

A campaignroot\desc.ext is 'special' in that the only useable locations are dtaext\ (and scripts\)

scripts\ are a global entity for mission.sqms. They aren't desc.ext related.

unlike mission.sqms, you cannot have a sounds\ child folder as such (or any other)

All references are implied DtaExt (sigh)

sounds[]=fred and sounds[]=\fred

mean DtaExt\fred


In fact, the DtaExt default is quite pointless. Inconsistent as ever, campaignroot's can't have the same structure as missions. but, there's no reason anymore why they shouldn't.

Bis have crippled the original default folders of DtaExt\sounds for sounds, and DtaExt\Music for music. They must be fully specified as

sounds[]=Sounds\whatever; (which actually means DtaExt\Sounds\....


This isn't a bad thing, but there wasn't a reason to keep the dtaext at all!!!!

There may or may not be other 'special' folders, 'my documents'\arma\username and other trifles. But you can't rely on it or them. they are likely to break or disappear at whim.

Bis themselves dont actually use dtaext (or scripts) in any of their campaigns. Probably because their mission makers either weren't aware of them, or could understand them.

But, from not making used of the global architecture, means common sound files (and common scripts) are bloated in each mission that uses one, for any official campaign.


other

class CfgRadio //straightfoward array of {filename,volume,pitch}
{
  sounds[]={};
  class Seq0{name="Seq0";  sound[]={"sound\09r06.wss", db-40, 1.0};	title=$STRM_09r06;  };
};
class CfgSFX
{
  sounds[]={hospoda2};
  class Hospoda2
  {
    name="Hospoda2";
    sounds[]={sound1};//<<<<<name of sound array
    sound1[]={"hospoda2.ogg", db-0,1, 1, 1, 1, 1};//who knows
    empty[]= {, , , , 1 , 5, 20};
  };
};

cfgSounds

one hell of a mess with titleS note the plural

ofp used semi colons between

titles[]={StartTime,Text}; titles[]=

class CfgSounds
{
  sounds[]={};
  class Seq1 {name="Seq1";  sound[]={"sound\09v07.ogg", db, 1.0};    titles[]={0,       $STRM_09v07};  };//standard

  class 11v01{name="11v01"; sound[]={"sound\11v01.ogg", db-05, 1.0}; titles[]={{0,0.4}, $STRM_11v01};  };
  class 11v04{name="11v04"; sound[]={"sound\11v04.ogg", db-05, 1.0}; titles[]={ 0,      $STRM_11v04,  {5.5,0.5}, $STRM_11v04a};    };

cfgENVsounds=

class CfgEnvSounds
{
  sounds[]={dest};
  class dest
  {
    name="dest";
    sound[]={"sound\dest.ogg", db, 1.0};
    soundNight[]={"sound\dest.ogg", db, 1.0};//<<<<
    titles[]={};
  };
};


Scripts

scripts are part of mission.sqm and \hardpaths to addons are valid. Therefore, all relative references in a mission.sqm (and their scripts) are relative to the mission.sqm, NOT the folder they are encountered in. (sigh)

expActiv="nul=[] execVM ""scripts\dialog.sqf""";

relative to mission.sqm

expActiv="nul=[] execVM ""\scripts\dialog.sqf""";

would refer to a (non existent) pboprefix 'scripts'

fowley kbAddTopic ["dialog", "scripts\dialog.bikb", ""];

again, relative to mission.sqm, even tho, this piece of text is in the 'scripts' folder.

Note that Campaign root scripts folder is implied if it cannot find file in the mission.

execvm thing.sqf // assumes it's in mission.sqm root, OR campaignroot\scripts execvm Scripts\thing.sqf // will look in mission.sqm\scripts or campaignRoot\scripts\scripts

previously, mission.sqm\scripts and ~\sound were also a default folders. but it looks like they broke it.

bikb

   speech[] = {"\sound\02v1.ogg"};

another, dreadful piece of inconsistency where the '\hardpath' refers to mission space. feel free to scream.