diff --git a/CHANGELOG.md b/CHANGELOG.md index b9779019d..58f30688e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file. - AS1/2 - switch with getvariable decompilation - AS1/2 - call action parameters as string - AS1/2 - gotolabelaction is gotoandplay +- AS1/2 - direct editation - use actionadd instead of add2 on swfver < 5 ## [14.6.0] - 2021-11-22 ### Added diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/operations/AddActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/operations/AddActionItem.java index 958d1461d..da0e4252c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/operations/AddActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/operations/AddActionItem.java @@ -18,6 +18,7 @@ package com.jpexs.decompiler.flash.action.model.operations; import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.Action; +import com.jpexs.decompiler.flash.action.swf4.ActionAdd; import com.jpexs.decompiler.flash.action.swf5.ActionAdd2; import com.jpexs.decompiler.flash.ecma.EcmaScript; import com.jpexs.decompiler.flash.ecma.EcmaType; @@ -85,7 +86,7 @@ public class AddActionItem extends BinaryOpItem implements CompoundableBinaryOp @Override public List toSource(SourceGeneratorLocalData localData, SourceGenerator generator) throws CompilationException { - return toSourceMerge(localData, generator, leftSide, rightSide, new ActionAdd2()); + return toSourceMerge(localData, generator, leftSide, rightSide, version2 ? new ActionAdd2() : new ActionAdd()); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java index 5d66faacb..f128df29d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java @@ -1512,7 +1512,7 @@ public class ActionScript2Parser { lhs = new MultiplyActionItem(null, null, lhs, rhs); break; case PLUS: - lhs = new AddActionItem(null, null, lhs, rhs, true); + lhs = new AddActionItem(null, null, lhs, rhs, swfVersion >= 5); break; case XOR: lhs = new BitXorActionItem(null, null, lhs, rhs); @@ -1556,7 +1556,7 @@ public class ActionScript2Parser { assigned = new MultiplyActionItem(null, null, lhs, assigned); break; case ASSIGN_PLUS: - assigned = new AddActionItem(null, null, lhs, assigned, true/*TODO:SWF version?*/); + assigned = new AddActionItem(null, null, lhs, assigned, swfVersion >= 5); break; case ASSIGN_SHIFT_LEFT: assigned = new LShiftActionItem(null, null, lhs, assigned);