Показать сообщение отдельно
Старый 21.11.2019, 23:36   #2101
Vasya
Звичайна людина на Землі
 
Аватар для Vasya
 
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,084
Смущение

Перед Д-Ген 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 эта конструкция даёт не совсем верный результат.
Vasya вне форума   Ответить с цитированием