Originally built by Gottfried: original release post
While working on Phoenix I had to decompile compiled scripts from an older demo so it could be passed on to people doing alpha version research. To do this, I changed the source code of DecDat to work on the old .DAT file format.
When I was at it I fixed the string substitution feature and int to instance substitution.
Use this Java JRE to run the program.
The decompiled code now shows the string literals instead of the const string of the string literal.
Before
description = ˙10722;Now
description = "ENDE";Due to the way how Daedalus treats instances (they are basically symbol table indicies) the integers get decompiled back and the instance information is lost.
As a quick fix I introduced instance substitution, every integer higher than 60 is checked whether it is also an instance and then the substitution occurs. This is not a bullet proof solution, so the original integer is placed as a comment right after the substituted instance identifier.
Before
if(npc_knowsinfo(hero, 12408)) {
return true;
};After
if(npc_knowsinfo(hero, info_xardasdemon_intro /*12408*/)) {
return true;
};