Eliot's Forum

Full Version: Few bugs in 1.1 and 1.2 Dev
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

Working with Killing Floor packages and using native UT2004 tables, I've noticed the following issues when using 1.1 and 1.2 Dev versions:

1. Sometimes brackets "}" are missing.

2. Decompiled loops become "goto" loops, and missing ' in reference names: should be like goto 'J0x3a'; , but decompiled is goto J0x3a;

3. Default properties always broken, when some arrays are there. F.e.:

Skins=// Object reference not set to an instance of an object.

When decompiling with UCC it shows everything correctly:

Skins(0)=Combiner'...
Skins(1)=Combiner'...

4. Parameters in some functions decompiled incorrectly:

Decompiled:

PlaySound(sound'Open', 5, 2.00,, 500.00);

Original code:

PlaySound(sound'Open', SLOT_Talk, 2.00,, 500.00);

5. Sometimes in the beginning of class gives config() without parameters, like:

class ClassName2 extends ClassName1
config()
cacheexempt;

6. Math expressions handled incorrectly because of missing ( ):

Decompiled:

X = Normal(X - HN * X Dot HN);

Original code:

X = Normal(X - HN) * (X Dot HN);


These issues noticed in both mentioned versions of UE Explorer.

That's all for now. Will submit more when will find something wrong.
Will be looking forward to know that bugs are corrected.

Best regards
1. I assume you are talking about switch/if statements that fail to find their end position. Quite a difficult bug to fix as there are several ways for switch/if's to end and one switch ending which I can't detect at all.

2. Not a bug. Both are legit ways of calling gotos.

3. Temporary bug in V1.2, I have fixed this but it is not public yet! Also for most arrays you'll be required to define an array type as UE Explorer cannot figure the type out on its own unless it were to link every package in the System folder which it doesn't do.

4. Not a bug. The Unreal Engine compiler treats Enums as constants so at compile time the enums are replaced with their corresponding number.

5. Thanks, didn't notice the accidental () parentheses. I guess I messed this up long ago when I redid some of this code Tongue

6. Not a bug. Although definitely an issue. I will fix this whenever I know a solution to it. If you really want to know the original parenthesis you can use "View Tokens" and look for things like BoolVariableToken which is like surrounding a bunch of expressions with () but not always!

Edit: 3, 5, and 6 are fixed in 1.2.2.1

Thanks, feel free to report more!
Thanks for your reply.

Regarding second issue. Strange, but Ucc gives error always if goto references are without '. Decompiled normal goto text references with UE Explorer are shown correctly. F.e:

Startjob:
.....
....
goto 'Startjob'

And only decompiled loops gives references without '.

Thanks for good advice,I'll try to use "View Tokens"Smile

Good luck with your projects!Smile
I have added support for precedences in 1.2.2, see http://eliotvu.com/forum/showthread.php?tid=38