Если при декомпиляции разных "сложных" классов вылазяет вот такое:
Код:
bIsMaster = flag;
i = 0;
_L3:
if(i >= 4) goto _L2; else goto _L1
_L1:
try
{
astateEffectChunks[i + 0] = actor.findHook("_Tank" + (i + 1) + "Burn").chunkName();
astateEffectChunks[i + 0] = astateEffectChunks[i + 0].substring(0, astateEffectChunks[i + 0].length() - 1);
Aircraft.debugprintln(aircraft, "AS: Tank " + i + " FX attached to '" + astateEffectChunks[i + 0] + "' substring..");
}
catch(Exception exception) { }
continue; /* Loop/switch isn't completed */
Exception exception5;
exception5;
throw exception5;
i++;
goto _L3
_L2:
i = 0;
_L6:
if(i >= aircraft.FM.EI.getNum()) goto _L5; else goto _L4
_L4:
try
{
astateEffectChunks[i + 4] = actor.findHook("_Engine" + (i + 1) + "Smoke").chunkName();
astateEffectChunks[i + 4] = astateEffectChunks[i + 4].substring(0, astateEffectChunks[i + 4].length() - 1);
Aircraft.debugprintln(aircraft, "AS: Engine " + i + " FX attached to '" + astateEffectChunks[i + 4] + "' substring..");
}
catch(Exception exception1) { }
continue; /* Loop/switch isn't completed */
Exception exception6;
exception6;
throw exception6;
i++;
goto _L6
_L5:
i = 0;
_L9:
if(i >= astateNavLightsEffects.length) goto _L8; else goto _L7
_L7:
То эти Л-ки нужно удалять "нахер". Это декомпилятор пишет ахинею - пытаеться показать методы которые забыл понимать.
Там нужно писать типа так:
Код:
bIsMaster = flag;
for(int i = 0; i < 4; i++)
try
{
astateEffectChunks[i + 0] = actor.findHook("_Tank" + (i + 1) + "Burn").chunkName();
astateEffectChunks[i + 0] = astateEffectChunks[i + 0].substring(0, astateEffectChunks[i + 0].length() - 1);
Aircraft.debugprintln(aircraft, "AS: Tank " + i + " FX attached to '" + astateEffectChunks[i + 0] + "' substring..");
}
catch(Exception exception) { }
finally { }
Код:
for(int j = 0; j < ((FlightModelMain) (((SndAircraft) (aircraft)).FM)).EI.getNum(); j++)
try
Это нужно сидеть и править каждую строку, добавляя указатели для чего/к чему обращается код.
И ещё:
бывает при декомпиляции появляются лишние строки, которые рассказывают нам о том, что есть блок команд, который не совсем похож на метод в других классах среды., то есть - не так записана пунктуация.
Вот и вылазяет:
Код:
byte byte0;
if(!bIsAboutToBailout)
break MISSING_BLOCK_LABEL_1119;
if(astateBailoutStep >= 0 && astateBailoutStep < 2)
{
if(aircraft.FM.CT.cockpitDoorControl > 0.5F && aircraft.FM.CT.getCockpitDoor() > 0.5F)
{
astateBailoutStep = 11;
doRemoveBlisters();
} else
{
astateBailoutStep = 2;
}
break MISSING_BLOCK_LABEL_1119;
}
Нужно открывать скобку
Код:
if(astateBailoutStep >= 0 && astateBailoutStep < 2)
{
а "абабугаламагу"
break MISSING_BLOCK_LABEL_1119; выкидывать в мусорную кучу.
Вместо миссинг-блок ниже в командах(подразделах) пишется так:
Код:
{
astateBailoutStep = 2;
}
} else
В самом низу раздела команд private void .... нужно ещё раз закрыть скобку.
Как то вот так. Шо понял - то и написал. Может кому пригодится для делания модов.