Eliot's Forum
Tokens hard-coded? - Printable Version

+- Eliot's Forum (https://eliotvu.com/forum)
+-- Forum: UE Explorer (https://eliotvu.com/forum/forumdisplay.php?fid=1)
+--- Forum: Suggestions (https://eliotvu.com/forum/forumdisplay.php?fid=8)
+--- Thread: Tokens hard-coded? (/showthread.php?tid=18)

Tokens hard-coded? - Alchemista - 04-26-2012

I am not sure if the values of tokens can be provided through a "native table" since there is no documentation supplied on the format.

My question is, is there any way to supply a table of token values for games with different token tables?

RE: Tokens hard-coded? - eliot - 04-26-2012

You can use the Native Generator under Tools -> Native Generator, then select all the script packages from said game, give it a name and hit save.

RE: Tokens hard-coded? - Alchemista - 04-26-2012

Yes, but this only applies to native functions (not expression tokens). The game that I tested the tool on has different values (non-default) for the expression tokens. In in the future it might be nice if you can provide a way to load a custom table.

I did a bit of digging and it does seem that this is hard coded.
if (nativeIndex >= 0x70)
    item = this.FindNT(nativeIndex);
else if (nativeIndex >= 0x60)
    byte num3 = this.uobjectStream_0.ReadByte();
    item = this.FindNT(((nativeIndex - 0x60) << 8) | num3);
    switch (nativeIndex)
        case 0:
            item = new LocalVariableToken();
            goto Label_083A;

        case 1:
            item = new InstanceVariableToken();
            goto Label_083A;

        case 2:
            item = new DefaultVariableToken();
            goto Label_083A;

        case 4:
            item = new ReturnToken();
            goto Label_083A;

        case 5:
            item = new SwitchToken();
            goto Label_083A;

        case 6:
            item = new JumpToken();
            goto Label_083A;

        case 7:
            item = new JumpIfNotToken();
            goto Label_083A;

        case 8:
            item = new StopToken();
            goto Label_083A;

        case 9:
            item = new AssertToken();
            goto Label_083A;

        case 10:
            item = new CaseToken();
            goto Label_083A;

        case 11:
            item = new NothingToken();
            goto Label_083A;

        case 12:
            item = new LabelTableToken();
            goto Label_083A;

        case 13:
            item = new GoToLabelToken();
            goto Label_083A;

        case 14:
            item = new EatStringToken();
            goto Label_083A;

        case 15:
            item = new LetToken();
            goto Label_083A;

        case 0x10:
            item = new DynamicArrayElementToken();
            goto Label_083A;

        case 0x11:
            item = new NewToken();
            goto Label_083A;

        case 0x12:
            item = new ClassContextToken();
            goto Label_083A;

        case 0x13:
            item = new MetaCastToken();
            goto Label_083A;

RE: Tokens hard-coded? - eliot - 04-27-2012

Ah, wasn't sure if you meant the expression tokens. They are defined as enum's which are then compiled to hard-values. They cannot be changed at run-time this way.

What game are you talking about? And what are the tokens?