What's new ?

PS : THIS LIST IS UNCOMPLETE BUT HIGHLIGHT SOME MAJOR CHANGES. See Program-updates.txt file for later updates.

Dynamic Obfuscator improvements by DigiDon

**MUCH IMPROVED DOCUMENTATION !

**OBFUSCATION PROCESS WAS MADE MUCH SIMPLIER !
Dynamic obfuscation can be implemented little by little.
No need for complex statements for straight obfuscation.
Can Stop/Resume or Change Obfuscator mode in 1 statement
And many small usage improvements

**NOT NEED TO DRAMATICALLY CHOOSE between low security straight obfuscation and great dynamic obfuscation
You can now do both and increase the dynamic part over time :
Dynamic obfuscation works only with assume-global functions. But before every non-global function with some calls to other functions or obfuscated variables would lead to fatal errors because dynamic names would be used.
Now the Obfuscator recognizes non-global functions and will then only use straight obfuscation automatically

**NO NEED TO DECLARE VARS MULTIPLE TIME TO THE OBFUSCATOR
It is enough to declare all your used vars to the Obfuscator once at the beginning, whether there are locals, globals, static or even objects, it does not matter and can be done only once! You can still define the local vars to the Obfuscator for each function the old way to have maybe specific names and parameters but this is not necessary at all.

**BETTER DETECTION OF ALL TYPESTransmap shows clearly all that have been recognized and in which file
-Functions
 with Parameters and Nested labels
-Labels & Hotkeys
 with Nested Labels and Hotkeys
-Classes
  with Nested Classes, Methods and Parameters
-Context conditions #if ....
  with Nested Labels and Hotkeys

**OBFUSCATOR INCLUDE FILE IS MORE FLEXIBLE NOW
with disabled commented lines, folder paths and relative paths

**OBFUSCATOR NOW PROPOSES NAMES AUTOMATICALLY FOR FASTER TESTING
TransMap etc.

**OBFUSCATOR HAS NOW SOME BASIC MISTAKE ERROR CHECKING
Like if the mandatory autoexecute statement is missing, if the include file is incorrect

**BETTER INTERFACE TO SHOW PROGRESS
in % and the file being processed and added statistics (code lines and how long)!

**IMPROVED OBF OF DYNAMIC VVARS AND GLABLES
You just need to have these followed or preceded by " : ex Gui, add, ... , % "vMyVar " "gMyLabel ..... .... ...."

**NEW VERY USEFUL COMMANDS FOR OBFUSCATORS
;$OBFUSCATOR: $STOP_OBF: && ;$OBFUSCATOR: $RESUME_OBF:  
Can be used to stop / resume obfuscation for some blocks.
If stop it will still replace hideString() calls and previous obfuscated functions / labels calls but not variables and parameters
;$OBFUSCATOR: $STRAIGHT_MODE: && ;$OBFUSCATOR: $DYNAMIC_MODE:
Can be used to change the obfuscation mode of large blocks if Dynamic is causing a problem but I don't think it should happen now.
;$OBFUSCATOR: $START_BLOCK: && ;$OBFUSCATOR: $END_BLOCK:
 ! Can be used to define quickly some code blocks that will stay together when the SCRAMBLING option is used !
;$OBFUSCATOR: $START_COMMENT: && ;$OBFUSCATOR: $END_COMMENT:
Can be used to preserve some comment blocks even if the option to remove all comments is used !

**MUCH BETTER COMMENTS BLANK LINES AND SPACES DELETION FUNCTIONALITY
Handles comment sections correctly
Delete all inline comments
Take in account comment and eschape chars changes !
Can preserve some comment sections

**BETTER SCRAMBLING ABILITY
Scramble all your code while preserving some blocks together, and without loosing code !

**COMPLEX DYNAMIC VARS WITH PARTS CAN NOW BE OBFUSCATED !
Vars like Space%A_Index%Var%B_Index%_Path can have each part (Space,Var,_Path) be obfuscated
You should list them with the new
;$OBFUSCATOR: $DEFGLOBPARTIALVARS:
and call along with others DUMPs
;$OBFUSCATOR: $DEFGLOBPARTIALVARS_DUMPALL:
They Some constraints : if you have set these parts you can for example not call %What%%A_Index%Var%B_Index%_Path if you have set What:="Space" before as the name Space has been obfuscated. If you use this then just don't define Space as VarPart and call it always %What%%A_Index%Var%B_Index%_Path with What:="Space" and What  declared as Globalvar to the Obfuscator if you want it to be obfuscated fully every time.

**OBJECTS CAN NOW BE OBFUSCATED !
-They just have to be declared as global var in the Obfuscator declaration

**PROPERTIES AND METHOD CALLS CAN NOW BE OBFUSCATED !
You should list them with the new
;$OBFUSCATOR: $DEFSYSPROPERTIES:
;$OBFUSCATOR: $DEFSYSMETHODS:
and call along with others DUMPs
;$OBFUSCATOR: $SYSPROPERTIESFRAGS_DUMPALL:
;$OBFUSCATOR: $SYSMETHODSFRAGS_DUMPALL:
It is only their uses which will be obfuscated. Just like System functions, their original names will not be changed.
But property definitions like 
Obj={ Prop:"test"} can look like Obj={(k#fkk#f@ kff@f@fkf@kff@ kfkffff@ fkf@f@ff k#fffkfkf@f@f@ f@k#fffk):"test"}
Property Uses like
Obj.Prop can look like Obj[k#fkk#f@ kff@f@fkf@kff@ kfkffff@ fkf@f@ff k#fffkfkf@f@f@ f@k#fffk]
THANKS TO THIS, METHODS CAN ALSO BE OBFUSCATED THIS WAY
Obj.Method(param) can look like Obj[k#fkk#f@ k#fffkfkf@f@f@ f@k#fffk](Param)
Of course, the Obj itself, the method parameters and string values can be obfuscated as well so that the whole thing will look like garbage :)

**CONTEXT CONDITIONS #IF... ARE NOW RECOGNIZED AND OBFUSCATED

**CONTINUATION SECTIONS ARE NOW PROPERLY HANDLED AND OBFUSCATED

**COMMENT SECTIONS ARE NOW PROPERLY HANDLED

**NESTED LABELS ARE NOW PROPERLY RECOGNIZED AND OBFUSCATED

**REINTRODUCED TRANSMESS FILE
To help debugging by showing all the created replacement names

**BUG CORRECTIONS
No dynamic replacement bugs when your var is being declared in a function with global, static or local keyword
Recognition even when in-line comments
Preserve correctly all comments sections
Preserve and obfuscate all #if conditions
Does not obfuscate vars not surrounded by %% in continuation section
Understands := in parameters
Recognize Context conditions #if ...
Recognize Classes
External commands such as #CommentFlag will be preserve even at the end of a file, even when scrambling
#CommentFlag has been introduced in Obfuscator comments to avoid errors
...

**AND MUCH MORE!! (I did this log after so this is from memory):