Перед Д-Ген 2.1 была такая конструкция:
Код:
public static SectFile sectFile(String s)
{
SectFile sectfile = null;
String s1 = s.toLowerCase();
String s2 = "gui/game/buttons";
int i = s1.indexOf(":");
if(i > -1)
{
s2 = s1.substring(i + 1, s1.length());
s1 = s1.substring(0, i);
if(s.endsWith(".emd"))
{
s2 = s2.substring(0, s2.length() - 4);
s1 = s1 + ".emd";
}
System.out.println("FM called '" + s + "' is being loaded from File: '" + s2 + "'");
}
if(prButtons != null && prButtons.length() > 0)
{
String s3 = prButtons + s2;
int j = s2.lastIndexOf('/');
if(j > -1)
s3 = s2.substring(0, j + 1) + prButtons + s2.substring(j + 1, s2.length());
if(exisstFile(s3))
{
s2 = s3;
System.out.println("FM called '" + s + "' is being loaded from Alternative File: '" + s2 + "'");
}
}
try
{
Object obj = Property.value(s, "stream", null);
InputStream inputstream;
if(obj != null)
{
inputstream = (InputStream)obj;
} else
{
if(fmDir == null)
{
fmDir = new InOutStreams();
fmDir.open(Finger.LongFN(0L, s2));
fmDirs.add(fmDir);
fmDirNames.add(s2);
} else
if(!s2.equalsIgnoreCase(lastFMFile))
{
fmDir = null;
int k = 0;
do
{
if(k >= fmDirNames.size())
break;
String s4 = (String)fmDirNames.get(k);
if(s2.equalsIgnoreCase(s4))
{
fmDir = (InOutStreams)fmDirs.get(k);
break;
}
k++;
} while(true);
if(null == fmDir)
{
fmDir = new InOutStreams();
fmDir.open(Finger.LongFN(0L, s2));
fmDirs.add(fmDir);
fmDirNames.add(s2);
}
}
lastFMFile = s2;
inputstream = fmDir.openStream("" + Finger.Int(s1 + "d2wO"));
if(inputstream == null)
inputstream = fmDir.openStream("" + Finger.Int(s1 + "d2w0"));
if(inputstream == null)
inputstream = fmDir.openStream("" + Finger.Int(s1 + "d2w5"));
if(inputstream == null)
{
System.out.println("Error loading FM called '" + s + "'!");
System.out.println("This FM is not present in '" + s2 + "' File");
if(s.endsWith(".emd"))
System.out.println("*** This should have been the reason of the 'Explosion in the Air' when mission started ***");
else
System.out.println("*** This was the Reason of your 60% or 70% CTD ***");
}
}
inputstream.mark(0);
sectfile = new SectFile(new InputStreamReader(new KryptoInputFilter(inputstream, getSwTbl(Finger.Int(s1 + "ogh9"), inputstream.available())), "Cp1252"));
inputstream.reset();
if(obj == null)
Property.set(s, "stream", inputstream);
}
catch(Exception exception) { }
return sectfile;
}
Это от десятки, насколько помню из енжин-мода десяточного старого.
Может в Д-Ген-2.1 чего то изменили или для патча 4.13.4 эта конструкция даёт не совсем верный результат.