Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Mirrors Edge
#1
Im not sure entirely whats going on here but there is alot of decompiler output in the scripts in tdgame.u and there is alot of script missing.

sample:

Code:
event Activated()
{
    local UIScene LocalScene;
    local WorldInfo WI;
    local TdPlayerController PC;
    local int CurrentDifficulty;
    local TdProfileSettings Profile;

    WI = GetWorldInfo();
    // End:0x58 Loop:False
    if(class<TdSPLevelRace>(WI.switch(return @NULL) != none != ) != @NULL.@NULL) != @NULL || return)
    {
        {
            {
                {
                    {
                        {
                        }
                    }
                }
                // Failed to decompile this line:
                    /* JumpIfNotToken
                    NativeFunctionToken NativeFunctionToken MetaCastToken ContextToken
                    ContextToken LocalVariableToken NativeFunctionToken NativeFunctionToken
                    SwitchToken ReturnToken LocalVariableToken NativeFunctionToken
                    NoObjectToken EndFunctionParmsToken SkipToken NativeFunctionToken
                    MetaCastToken ContextToken ContextToken LocalVariableToken
                    NativeFunctionToken NativeFunctionToken SwitchToken ReturnToken
                    LocalVariableToken NativeFunctionToken NoObjectToken EndFunctionParmsToken
                    EndFunctionParmsToken ReturnToken NothingToken IteratorToken
                    ContextToken LocalVariableToken NativeFunctionToken NativeFunctionToken
                    ObjectConstToken LocalVariableToken EndFunctionParmsToken NativeFunctionToken
                    LocalVariableToken LocalVariableToken UnknownExprToken LocalVariableToken
                    LocalVariableToken LocalVariableToken EndFunctionParmsToken ContextToken
                    LocalVariableToken LocalVariableToken LocalVariableToken NativeFunctionToken
                    UnknownExprToken LocalVariableToken LocalVariableToken UnknownExprToken
                    LocalVariableToken SkipToken ContextToken LocalVariableToken
                    LocalVariableToken LocalVariableToken LocalVariableToken LocalVariableToken
                    LocalVariableToken NativeFunctionToken NativeFunctionToken NativeFunctionToken
                    JumpToken LocalVariableToken NativeFunctionToken EndFunctionParmsToken
                    LetToken InstanceVariableToken VirtualFunctionToken EndFunctionParmsToken
                    JumpIfNotToken NativeFunctionToken InstanceVariableToken NoObjectToken
                    EndFunctionParmsToken LetToken LocalVariableToken ContextToken
                    InstanceVariableToken NativeFunctionToken NativeFunctionToken NameConstToken
                    InstanceVariableToken EndFunctionParmsToken JumpIfNotToken NativeFunctionToken
                    LocalVariableToken NoObjectToken EndFunctionParmsToken FinalFunctionToken
                    EndFunctionParmsToken JumpToken LetDelegateToken ContextToken
                    LocalVariableToken NativeFunctionToken NativeFunctionToken DelegatePropertyToken
                    LocalVariableToken LocalVariableToken LocalVariableToken LocalVariableToken
                    NoParmToken NoParmToken EndFunctionParmsToken ReturnToken
                    NothingToken  */
                // Index was out of range. Must be non-negative and less than the size of the collection.
                Parameter name: index
}
Reply
#2
That looks funky Big Grin Could you send me this file? I don't have Mirrors Edge installed anymore :/
Reply
#3
Well its not just the one its the entire package that comes up with all these decompiler dumps in the scripts. Would you like me to send the scripts or the package?
Reply
#4
I'd like the Core.u and Engine.u to ensure that it works.
Reply
#5
[REMOVED]

Here you go, this should be everything you need.
Reply
#6
Thanks!

This is fixed in 1.2.
Reply
#7
Hello
I´ve been messing with "Gears of War PC" lately, and I keep bumping into very similar line:

"....
// Failed to decompile this line:
/* ReturnToken NothingToken */
// Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
...."

i.e.:
Code:
/*******************************************************************************
* WarCombatAction_Wretch_Melee generated by Eliot.UELib using UE Explorer.
* Eliot.UELib © 2009-2014 Eliot van Uytfanghe. All rights reserved.
* http://eliotvu.com
*
* All rights belong to their respective owners.
*******************************************************************************/
class WarCombatAction_Wretch_Melee extends WarCombatAction_Melee
    config(AI)
    hidecategories(Navigation,Movement,Collision);

static function NotifyReceivedDamage(WarAI_Drone AI, int Damage, Pawn DamageInstigator, Vector LastInstigatorLoc)
{
    local class<WarCombatAction> Action;
    local bool bLightDamage, bHeavyDamage;
    local float Pct, EvadeChance;

    bLightDamage = AI.DamageReceivedInAction > (default.LightDamagePercentage * float(AI.MyWP.DefaultHealth));
    bHeavyDamage = AI.DamageReceivedInAction > (default.HeavyDamagePercentage * float(AI.MyWP.DefaultHealth));
    // End:0x194
    if(AI.MyWP.SpecialMove == 0)
    {
        // End:0x105
        if(bHeavyDamage && GetActionAndCover(AI, 'EvaluateCover_Fallback', class'WarCombatAction_Retreat', Action, string(default.Class) @ string(GetFuncName())))
        {
            AI.TransitionTo(Action, "Received heavy damage");
            goto J0x194;
            // End:0x194
            if((bLightDamage && DamageInstigator != none) && AI.CanEvade())
            {
            }
            EvadeChance = 0.250;
            Pct = FRand();
            // End:0x194
            if(Pct < EvadeChance)
            {
                AI.DoEvade(AI.GetBestEvadeDir(AI.MyWP.Location, DamageInstigator), true);
                //return;
                // Failed to decompile this line:
                    /* ReturnToken NothingToken  */
                // Index was out of range. Must be non-negative and less than the size of the collection.
                Parameter name: index
            }
        }
    }
}

defaultproperties
{
    Components(0)=SpriteComponent'Default__WarCombatAction_Wretch_Melee.Sprite'​
}

or

Code:
/*******************************************************************************
* Pawn_GeistWretch generated by Eliot.UELib using UE Explorer.
* Eliot.UELib © 2009-2014 Eliot van Uytfanghe. All rights reserved.
* http://eliotvu.com
*
* All rights belong to their respective owners.
*******************************************************************************/
class Pawn_GeistWretch extends WarPawn
    abstract
    native
    config(Pawn)
    hidecategories(Navigation);

var bool bWaitForKnockOff;
var bool bSuicidal;
var bool bFleshTimer;
var WarPawn Victim;
var float LeapSpeed;
var repnotify Vector ReplicatedFloor;

replication
{
    // Pos:0x000
    if(Physics == 8)
        ReplicatedFloor
}

simulated function Destroyed()
{
    super.Destroyed();
    // End:0x2C
    if(Victim != none)
    {
        Victim.StopAllBodyStances(0.250);
        Victim = none;
    }
    //return;    
}

simulated function KnockDownFromExplosion()
{
    //return;    
}

simulated function CringeFromExplosion()
{
    //return;    
}

function bool WarDied(Controller Killer, class<WarDamageType> WarDamageType, Vector HitLocation, WarPawn.EWarDeathType DeathType)
{
    // End:0x6A
    if((Victim != none) && WarPC(Victim.Controller) != none)
    {
        WarPC(Victim.Controller).IgnoreMoveInput(false);
        WarPC(Victim.Controller).IgnoreLookInput(false);
        DeathCry();
        return super.WarDied(Killer, WarDamageType, HitLocation, DeathType);
    }
    //return ReturnValue;    
}

simulated function DeathCry()
{
    //return;    
}

simulated function UpdateMeshBoneControllers(float DeltaTime)
{
    //return;    
}

function bool DoWallLeap(Actor Target)
{
    local Vector JumpVel;

    // End:0xD8
    if((!bIsCrouched && !bWantsToCrouch) && (Physics == 1) || Physics == 8)
    {
        // End:0xA4
        if(Role == ROLE_Authority)
        {
            // End:0xA4
            if((WorldInfo.Game != none) && WorldInfo.Game.GameDifficulty > float(2))
            {
                MakeNoise(0.10 * WorldInfo.Game.GameDifficulty);
            }
        }
        SuggestJumpVelocity(JumpVel, Target.Location, Location);
        Velocity = JumpVel;
        SetPhysics(2);
        return true;
        return false;
        //return ReturnValue;
    }    
}

function bool SpecialMoveTo(NavigationPoint Start, NavigationPoint End, Actor Next)
{
    local ReachSpec CurrentPath;

    // End:0x11
    if(Start == End)
    {
        return false;
    }
    CurrentPath = Start.GetReachSpecTo(End);
    // End:0x93
    if(CurrentPath != none)
    {
        // End:0x66
        if(CurrentPath.IsA('WallTransReachSpec'))
        {
            return SpecialMoveTo_WallTrans(Start, End, true);
            goto J0x93;
            // End:0x93
            if(CurrentPath.IsA('FloorToCeilingReachSpec'))
            {
            }
            return SpecialMoveTo_CeilingTrans(Start, End, true);
            return super.SpecialMoveTo(Start, End, Next);
        }
    }
    J0x93:
    //return ReturnValue;    
}

function bool SpecialMoveTo_WallTrans(NavigationPoint Start, NavigationPoint End, bool bDirect)
{
    DoWallLeap(End);
    Controller.bPreparingMove = true;
    return true;
    //return ReturnValue;    
}

function bool SpecialMoveTo_CeilingTrans(NavigationPoint Start, NavigationPoint End, bool bDirect)
{
    local WarAI_Wretch AI;

    AI = WarAI_Wretch(Controller);
    // End:0x34
    if(AI != none)
    {
        AI.PushState('SubAction_CeilingTransition');
        return true;
        //return ReturnValue;
    }    
}

simulated function HitWall(Vector HitNormal, Actor Wall, PrimitiveComponent WallComp)
{
    super(Pawn).HitWall(HitNormal, Wall, WallComp);
    // End:0x5C
    if(IsDoingSpecialMove(58) && HitNormal.Z <= -WalkableFloorZ)
    {
        SetPhysics(8);
        SetBase(Wall, HitNormal);
        PlayLandedOnWallSound();
        //return;        
    }
}

simulated event ReplicatedEvent(name VarName)
{
    // End:0x21
    if(VarName == 'ReplicatedFloor')
    {
        Floor = ReplicatedFloor;
        goto J0x2C;
        super.ReplicatedEvent(VarName);
    }
    //return;
    // Failed to decompile this line:
        /* ReturnToken
        NothingToken  */
    // Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index
}

function bool ShouldDealDamageToEnemy()
{
    local Vector VectToEnemy;

    VectToEnemy = Controller.Enemy.Location - Location;
    // End:0x69
    if(VSize(VectToEnemy) > ((CylinderComponent.CollisionRadius + Controller.Enemy.CylinderComponent.CollisionRadius) * 2.50))
    {
        return false;
    }
    // End:0x85
    if((Normal(VectToEnemy) Dot vector(Rotation)) < 0.0)
    {
        return false;
    }
    return true;
    //return ReturnValue;    
}

function DoPounceAttackDamage()
{
    local Weap_WretchMelee Wpn;

    // End:0x72
    if(IsDoingSpecialMove(55) && ShouldDealDamageToEnemy())
    {
        Wpn = Weap_WretchMelee(Weapon);
        // End:0x72
        if(Wpn != none)
        {
            Wpn.DoMeleeDamage(Controller.Enemy, Controller.Enemy.Location, 0.50);
            //return;            
        }
    }
}

function DoSwipeAttackDamage()
{
    local Weap_WretchMelee Wpn;

    // End:0x72
    if(IsDoingSpecialMove(56) && ShouldDealDamageToEnemy())
    {
        Wpn = Weap_WretchMelee(Weapon);
        // End:0x72
        if(Wpn != none)
        {
            Wpn.DoMeleeDamage(Controller.Enemy, Controller.Enemy.Location, 1.0);
            //return;            
        }
    }
}

function DoScreamEffect()
{
    local WarPC PC;

    // End:0x46
    if(IsDoingSpecialMove(57))
    {
        // End:0x28
        foreach WorldInfo.AllControllers(class'WarPC', PC)
        {            
        }        
        SetTimer(0.50, true, 'LoopScreamEffect');
        LoopScreamEffect();
        //return;        
    }
}

function LoopScreamEffect()
{
    local WarPawn P;

    // End:0xDD
    if(IsDoingSpecialMove(57))
    {
        // End:0xD9
        foreach WorldInfo.AllPawns(class'WarPawn', P)
        {
            // End:0xD8
            if(((GetTeam()) != P.GetTeam()) && VSize2D(P.Location - Location) <= 256.0)
            {
                // End:0xD8
                if(P.CanCoverHead() == true)
                {
                    // End:0xB6
                    if(P.IsHumanControlled())
                    {
                        P.DoSpecialMove(26);
                        goto J0xD8;
                        P.Controller.PushState('SubAction_CoverHead');
                    }                                        
                    goto J0xED;
                    ClearTimer('LoopScreamEffect');
                    //return;
                    // Failed to decompile this line:
                        /* ReturnToken NothingToken
                         */
                    // Index was out of range. Must be non-negative and less than the size of the collection.
                    Parameter name: index
                }
            }
        }
    }
}

function SoundCue GetSpecificFootStepSound(WarPhysicalMaterialFootSteps FootStepSounds, int FootDown)
{
    local SoundCue retval;

    // End:0x22
    if(FootDown <= 1)
    {
        retval = FootStepSounds.WretchFootSteps;
    }
    // End:0x36
    else
    {
        retval = FootStepSounds.WretchHandSteps;
    }
    return retval;
    //return ReturnValue;    
}

function PlayFleshSound()
{
    bFleshTimer = false;
    //return;    
}

function SoundCue GetSpecificLandingSound(WarPhysicalMaterialFootSteps FootStepSounds, int FootDown)
{
    return GetSpecificFootStepSound(FootStepSounds, FootDown);
    //return ReturnValue;    
}

function SoundCue GetSpecificSlidingSound(WarPhysicalMaterialFootSteps FootStepSounds)
{
    return FootStepSounds.LocustSliding;
    //return ReturnValue;    
}

simulated function bool CanEngageMelee()
{
    return true;
    //return ReturnValue;    
}

function PlayLandedOnWallSound()
{
    //return;    
}

function PlayLeapSound()
{
    //return;    
}

function PlaySwipeAttackSound()
{
    //return;    
}

function PlaySwipeAttackHitSound()
{
    //return;    
}

function PlaySwipeAttackMissSound()
{
    //return;    
}

function PlayLandedOnEnemySound()
{
    //return;    
}

singular simulated function BaseChange()
{
    local WarInterActorAttachableBase Cart;

    // End:0x151
    if(Role == ROLE_Authority)
    {
        // End:0x51
        if((Base == none) && Physics == 0)
        {
            // End:0x4E
            if(!IsDoingSpecialMove(58) && !IsDoingSpecialMove(59))
            {
                SetPhysics(2);
            }
        }
        // End:0x11D
        else
        {
            // End:0x11D
            if((Pawn(Base) != none) && (DrivenVehicle == none) || !DrivenVehicle.IsBasedOn(Base))
            {
                // End:0x11D
                if(!Pawn(Base).CanBeBaseForPawn(self))
                {
                    Base.TakeDamage(int(((float(1) - (Velocity.Z / float(400))) * Mass) / Pawn(Base).Mass), Controller, Location, 0.50 * Velocity, class'DmgType_Crushed');
                    JumpOffPawn();
                    Cart = WarInterActorAttachableBase(Base);
                }
            }
        }
        // End:0x151
        if(Cart != none)
        {
            Controller.PushState('SubAction_ClimbCart');
            // End:0x185
            if(Base != none)
            {
                // End:0x17A
                if(Role == ROLE_Authority)
                {
                }
            }
            ReplicatedFloor = Floor;
            goto J0x185;
            Floor = ReplicatedFloor;
            //return;
            // Failed to decompile this line:
                /* ReturnToken
                NothingToken  */
            // Index was out of range. Must be non-negative and less than the size of the collection.
            Parameter name: index
        }
    }
}

function SetMovementPhysics()
{
    // End:0x12
    if(WarInterActorAttachableBase(Base) != none)
    {
        return;
    }
    super.SetMovementPhysics();
    //return;    
}

simulated function AttachWeaponToHand(WarWeapon Weap)
{
    //return;    
}

simulated function AttachWeaponToSlot(WarWeapon W)
{
    //return;    
}

simulated function AdjustWeaponDueToMirror()
{
    //return;    
}

simulated function PlayScreamSound()
{
    //return;    
}

state Dying
{
    simulated function BeginState(name PreviousStateName)
    {
        DoSpecialMove(0);
        super.BeginState(PreviousStateName);
        //return;        
    }
    stop;    
}

defaultproperties
{
    LeapSpeed=600.0
    SpecialMoveClasses(0)=none
    SpecialMoveClasses(1)=class'WarSpecialMove_Wretch_MidLvlJumpOver'
    SpecialMoveClasses(2)=none
    SpecialMoveClasses(3)=none
    SpecialMoveClasses(4)=none
    SpecialMoveClasses(5)=none
    SpecialMoveClasses(6)=none
    SpecialMoveClasses(7)=none
    SpecialMoveClasses(8)=class'WarSpecialMove_Wretch_EvadeFwd'
    SpecialMoveClasses(9)=class'WarSpecialMove_Wretch_EvadeBwd'
    SpecialMoveClasses(10)=class'WarSpecialMove_Wretch_EvadeLt'
    SpecialMoveClasses(11)=class'WarSpecialMove_Wretch_EvadeRt'
    SpecialMoveClasses(12)=class'WarSpecialMove_Wretch_Run2Cover'
    SpecialMoveClasses(13)=class'WarSpecialMove_Wretch_Run2Cover'
    SpecialMoveClasses(14)=none
    SpecialMoveClasses(15)=none
    SpecialMoveClasses(16)=none
    SpecialMoveClasses(17)=none
    SpecialMoveClasses(18)=none
    SpecialMoveClasses(19)=none
    SpecialMoveClasses(20)=none
    SpecialMoveClasses(21)=none
    SpecialMoveClasses(22)=none
    SpecialMoveClasses(23)=none
    SpecialMoveClasses(24)=none
    SpecialMoveClasses(25)=none
    SpecialMoveClasses(26)=none
    SpecialMoveClasses(27)=none
    SpecialMoveClasses(28)=none
    SpecialMoveClasses(29)=class'WarSpecialMove_Emerge'
    SpecialMoveClasses(30)=class'WarSpecialMove_Emerge'
    SpecialMoveClasses(31)=none
    SpecialMoveClasses(32)=class'WarSpecialMove_DeathAnim'
    SpecialMoveClasses(33)=none
    SpecialMoveClasses(34)=none
    SpecialMoveClasses(35)=class'WarSpecialMove_Wretch_ChainsawVictim'
    SpecialMoveClasses(36)=none
    SpecialMoveClasses(37)=none
    SpecialMoveClasses(38)=none
    SpecialMoveClasses(39)=none
    SpecialMoveClasses(40)=none
    SpecialMoveClasses(41)=none
    SpecialMoveClasses(42)=none
    SpecialMoveClasses(43)=none
    SpecialMoveClasses(44)=none
    SpecialMoveClasses(45)=none
    SpecialMoveClasses(46)=none
    SpecialMoveClasses(47)=none
    SpecialMoveClasses(48)=none
    SpecialMoveClasses(49)=none
    SpecialMoveClasses(50)=none
    SpecialMoveClasses(51)=none
    SpecialMoveClasses(52)=none
    SpecialMoveClasses(53)=none
    SpecialMoveClasses(54)=none
    SpecialMoveClasses(55)=class'WarSpecialMove_Wretch_PounceAttack'
    SpecialMoveClasses(56)=class'WarSpecialMove_Wretch_SwipeAttack'
    SpecialMoveClasses(57)=class'WarSpecialMove_Wretch_Scream'
    SpecialMoveClasses(58)=class'WarSpecialMove_Wretch_LeapToCeiling'
    SpecialMoveClasses(59)=class'WarSpecialMove_Wretch_DropFromCeiling'
    SpecialMoveClasses(60)=class'WarSpecialMove_Wretch_CartClimb'
    SpecialMoveClasses(61)=class'WarSpecialMove_Wretch_CartAttack'
    SpecialMoveClasses(62)=class'WarSpecialMove_Wretch_ElevatorClimb'
    bCanRoadieRun=false
    bBlockCamera=false
    DefaultInventory(0)=class'Weap_WretchMelee'
    DefaultHealth=150
    HealthRechargeDelay=0.0
    HealthRechargePercentPerSecond=0.0
    LocDmgArray(0)=(BoneNameArray=(b_W_Head),BodyPartName=head,fDamageMultiplie​r=2.0)
    LocDmgArray(1)=(BoneNameArray=(b_W_Thigh_L,b_W_Calf_L,b_W_Foot_L),BodyPartN​ame=LeftLeg,fDamageMultiplier=1.0)
    LocDmgArray(2)=(BoneNameArray=(b_W_Thigh_R,b_W_Calf_R,b_W_Foot_R),BodyPartN​ame=RightLeg,fDamageMultiplier=1.0)
    NeckBoneName=b_W_Neck
    PelvisBoneName=b_W_Pelvis
    MeleeDamageBoneName=b_W_Spine_02
    MinTimeBetweenEvades=2.50
    AimAttractors(0)=(OuterRadius=128.0,InnerRadius=32.0,BoneName=b_W_Clavicle_​L_)
    AimAttractors(1)=(OuterRadius=96.0,InnerRadius=32.0,BoneName=b_W_Head)
    FacialAudioComp=AudioComponent'Default__Pawn_GeistWretch.FaceAudioComponent​'
    HeadIcon=(Texture=Texture2D'Warfare_HUD.HUD_Heads',U=441.0,UL=48.0,VL=63.0)​
    LightEnvironment=DynamicLightEnvironmentComponent'Default__Pawn_GeistWretch​.MyLightEnvironment'
    CameraNoRenderCylinder_High=(Radius=50.0,Height=60.0)
    CameraNoRenderCylinder_Low=(Radius=50.0,Height=60.0)
    bDirectHitWall=true
    bCanMantle=true
    bCanClimbCeilings=true
    bCanSwatTurn=false
    bModifyReachSpecCost=true
    JumpZ=2100.0
    MaxFallSpeed=20000.0
    ControllerClass=class'WarAI_Wretch'
    begin object name=WarPawnMesh class=SkeletalMeshComponent
        LightEnvironment=DynamicLightEnvironmentComponent'Default__Pawn_GeistWretch​.MyLightEnvironment'
    object end
    // Reference: SkeletalMeshComponent'Default__Pawn_GeistWretch.WarPawnMesh'
    Mesh=WarPawnMesh
    begin object name=CollisionCylinder class=CylinderComponent
        CollisionHeight=52.0
    object end
    // Reference: CylinderComponent'Default__Pawn_GeistWretch.CollisionCylinder'
    CylinderComponent=CollisionCylinder
    begin object name=CollisionCylinder class=CylinderComponent
        CollisionHeight=52.0
    object end
    // Reference: CylinderComponent'Default__Pawn_GeistWretch.CollisionCylinder'
    Components(0)=CollisionCylinder
    Components(1)=ArrowComponent'Default__Pawn_GeistWretch.Arrow'
    Components(2)=DynamicLightEnvironmentComponent'Default__Pawn_GeistWretch.My​LightEnvironment'
    begin object name=WarPawnMesh class=SkeletalMeshComponent
        LightEnvironment=DynamicLightEnvironmentComponent'Default__Pawn_GeistWretch​.MyLightEnvironment'
    object end
    // Reference: SkeletalMeshComponent'Default__Pawn_GeistWretch.WarPawnMesh'
    Components(3)=WarPawnMesh
    Components(4)=AudioComponent'Default__Pawn_GeistWretch.FaceAudioComponent'
    begin object name=CollisionCylinder class=CylinderComponent
        CollisionHeight=52.0
    object end
    // Reference: CylinderComponent'Default__Pawn_GeistWretch.CollisionCylinder'
    CollisionComponent=CollisionCylinder
    RotationRate=(Pitch=100000,Yaw=100000,Roll=100000)
}

These are just examples: its found in many different scripts across the entire codebase. Its the same in version 1.2.2.1 and also in 1.2.6.0. Other games I´ve tried (GoW3, GoWJ, BatmanAA, UDK) do not have such errors (or any AFAIK?).

If its not an issue or a bug within the UE Eplorer, please excuse my ignorance. I´m not a programmer, just very curious and still very new to the entire concept...

Thank you for any information on this.
Reply
#8
(08-27-2014, 12:27 AM)qualia Wrote:  Hello
I´ve been messing with "Gears of War PC" lately, and I keep bumping into very similar line:

"....
// Failed to decompile this line:
/* ReturnToken NothingToken */
// Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
...."

i.e.:
Code:
...

or

Code:
...

These are just examples: its found in many different scripts across the entire codebase. Its the same in version 1.2.2.1 and also in 1.2.6.0. Other games I´ve tried (GoW3, GoWJ, BatmanAA, UDK) do not have such errors (or any AFAIK?).

If its not an issue or a bug within the UE Eplorer, please excuse my ignorance. I´m not a programmer, just very curious and still very new to the entire concept...

Thank you for any information on this.

Definitely a bug with the deserializing of GoW PC packages.

The following error:
Code:
//return;
                // Failed to decompile this line:
                    /* ReturnToken NothingToken  */
                // Index was out of range. Must be non-negative and less than the size of the collection.
                Parameter name: index

Equals to
Code:
return;
not a big deal if you ask me. I've also noticed other decompilation issues in your examples, where some some code statements are outside of their if, foreach nests, which is also a bug caused by the difference of storage and memory code offset sizes in some games such as GoW PC, overall still quite readable code!, thanks for reporting this issue as I was not aware this one still existed for GoW PC (a lot of games tend to have these issues for the exact same reason which I have to fix specifically as their developers may have made inside changes to the engine that UE Explorer isn't aware of yet).
Reply
#9
Thank you for this awesome tool and all the work you put into it. It´s really awesome and amazing! I´m very excited about the next version. Best of luck Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)