void WakeIfValid () Script24 statements · 539 bytes of bytecode 0x0000 PushFlow(Label_0218);0x0005 PushFlow(Label_0111);0x000A CallFunc_IsValid_ReturnValue = IsValid(TowHitch);0x0027 if (!(CallFunc_IsValid_ReturnValue)) PopFlow();0x0031 TowHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle_1);0x005E CallFunc_IsValid_ReturnValue_3 = IsValid(CallFunc_GetOwningVehicle_Vehicle_1);0x007B if (!(CallFunc_IsValid_ReturnValue_3)) PopFlow();0x0085 TowHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle_1);0x00B2 CallFunc_GetOwningVehicle_Vehicle_1.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh);0x00DF CallFunc_GetVehicleMesh_Mesh.WakeRigidBody(FName(None));0x0110 PopFlow();0x0111 Label_0111:0x0111 CallFunc_IsValid_ReturnValue_1 = IsValid(TrailerHitch);0x012E if (!(CallFunc_IsValid_ReturnValue_1)) PopFlow();0x0138 TrailerHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle);0x0165 CallFunc_IsValid_ReturnValue_2 = IsValid(CallFunc_GetOwningVehicle_Vehicle);0x0182 if (!(CallFunc_IsValid_ReturnValue_2)) PopFlow();0x018C TrailerHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle);0x01B9 CallFunc_GetOwningVehicle_Vehicle.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh_1);0x01E6 CallFunc_GetVehicleMesh_Mesh_1.WakeRigidBody(FName(None));0x0217 PopFlow();0x0218 Label_0218:0x0218 return;Private 0x1495c50 0x00 void SetTowHitch (UVehicle_Hitch_C * TowHitch ) Script3 statements · 22 bytes of bytecode 0x0000 TowHitch = TowHitch;0x0013 return;Public 0x1495c50 0x08 void GetHitchedTo (const UVehicle_Hitch_C * & HitchedTo ) Script23 statements · 259 bytes of bytecode 0x0000 K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x001F if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_005F;0x002D K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 1);0x004C if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_00B2;0x005A goto Label_0100;0x005F Label_005F:0x005F CallFunc_IsValid_ReturnValue_1 = IsValid(TrailerHitch);0x007C if (!(CallFunc_IsValid_ReturnValue_1)) goto Label_00A2;0x008A HitchedTo = TrailerHitch;0x009D goto Label_0100;0x00A2 Label_00A2:0x00A2 HitchedTo = nullptr;0x00AD goto Label_0100;0x00B2 Label_00B2:0x00B2 CallFunc_IsValid_ReturnValue = IsValid(TowHitch);0x00CF if (!(CallFunc_IsValid_ReturnValue)) goto Label_00F5;0x00DD HitchedTo = TowHitch;0x00F0 goto Label_0100;0x00F5 Label_00F5:0x00F5 HitchedTo = nullptr;0x0100 Label_0100:0x0100 return;Public 0x1495c50 0x08 void ApplyHitchFromNetwork () Script55 statements · 1,146 bytes of bytecode 0x0000 PushFlow(Label_0477);0x0005 CallFunc_IsValid_ReturnValue_3 = IsValid(HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24);0x002B if (!(CallFunc_IsValid_ReturnValue_3)) goto Label_01CA;0x0039 Hitched.Broadcast(this, HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24);0x005F HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24.Hitched.Broadcast(this, HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24);0x00A4 UpdateIsHitched(this, HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24);0x00C5 HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle_2);0x00FB CallFunc_GetOwningVehicle_Vehicle_2.SetTrailerSyncMode(this, HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24);0x0132 CallFunc_Greater_DoubleDouble_A_ImplicitCast = Cast<4>(HitchNetworkData.AnimationLength_5_39BF52A541D405D418EB1EA09A7F8D3E);0x0158 CallFunc_Greater_DoubleDouble_ReturnValue = Greater_DoubleDouble(CallFunc_Greater_DoubleDouble_A_ImplicitCast, 0);0x017E if (!(CallFunc_Greater_DoubleDouble_ReturnValue)) goto Label_03BC;0x018C CallFunc_StartHitchAnimation_AnimationLength_ImplicitCast = Cast<4>(HitchNetworkData.AnimationLength_5_39BF52A541D405D418EB1EA09A7F8D3E);0x01B2 StartHitchAnimation(CallFunc_StartHitchAnimation_AnimationLength_ImplicitCast);0x01C9 PopFlow();0x01CA Label_01CA:0x01CA K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x01E9 if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_0225;0x01F7 K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 1);0x0216 if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_03DE;0x0224 PopFlow();0x0225 Label_0225:0x0225 PushFlow(Label_0356);0x022A CallFunc_IsValid_ReturnValue_1 = IsValid(TowHitch);0x0247 if (!(CallFunc_IsValid_ReturnValue_1)) goto Label_028D;0x0255 TowHitch.SetIsHitched(false);0x027A Unhitched.Broadcast();0x028D Label_028D:0x028D CallFunc_IsValid_ReturnValue = IsValid(TrailerHitch);0x02AA if (!(CallFunc_IsValid_ReturnValue)) PopFlow();0x02B4 TrailerHitch.SetIsHitched(false);0x02D9 TrailerHitch.Unhitched.Broadcast();0x0302 TrailerHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle_1);0x032F CallFunc_GetOwningVehicle_Vehicle_1.SetTrailerSyncMode(nullptr, nullptr);0x0355 PopFlow();0x0356 Label_0356:0x0356 UpdateIsHitched(nullptr, nullptr);0x0366 StopHitchAnimation();0x0374 CallFunc_IsValid_ReturnValue_2 = IsValid(HitchConstraint);0x0391 if (!(CallFunc_IsValid_ReturnValue_2)) PopFlow();0x039B HitchConstraint.BreakConstraint();0x03BB PopFlow();0x03BC Label_03BC:0x03BC ApplyHitchConstraint(this, HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24);0x03DD PopFlow();0x03DE Label_03DE:0x03DE UpdateIsHitched(nullptr, nullptr);0x03EE Unhitched.Broadcast();0x0401 GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle);0x0418 CallFunc_GetOwningVehicle_Vehicle.SetShouldSyncWithServer(true);0x0439 GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle);0x0450 CallFunc_GetOwningVehicle_Vehicle.SetTrailerSyncMode(nullptr, nullptr);0x0476 PopFlow();0x0477 Label_0477:0x0477 return;Private 0x1495c50 0x00 void OnRep_HitchNetwork () Script4 statements · 31 bytes of bytecode 0x0000 ApplyHitchFromNetwork();0x000E WakeIfValid();0x001C return;0x1495c50 0x00 void CheckCompatibility (UVehicle_Hitch_C * To , const bool & isCompatible ) Script33 statements · 606 bytes of bytecode 0x0000 PushFlow(Label_025B);0x0005 CallFunc_IsValid_ReturnValue = IsValid(To);0x0022 if (!(CallFunc_IsValid_ReturnValue)) goto Label_01E9;0x0030 Temp_bool_True_if_break_was_hit_Variable = false;0x003B Temp_int_Loop_Counter_Variable = 0;0x0052 Temp_int_Array_Index_Variable = 0;0x0069 Label_0069:0x0069 CallFunc_Not_PreBool_ReturnValue = Not_PreBool(Temp_bool_True_if_break_was_hit_Variable);0x0086 CallFunc_Array_Length_ReturnValue = /Script/Engine.Default__KismetArrayLibrary.Array_Length(ConnectTypes);0x00C1 CallFunc_Less_IntInt_ReturnValue = Less_IntInt(Temp_int_Loop_Counter_Variable, CallFunc_Array_Length_ReturnValue);0x00E7 CallFunc_BooleanAND_ReturnValue = BooleanAND(CallFunc_Not_PreBool_ReturnValue, CallFunc_Less_IntInt_ReturnValue);0x010D if (!(CallFunc_BooleanAND_ReturnValue)) goto Label_01F9;0x011B Temp_int_Array_Index_Variable = Temp_int_Loop_Counter_Variable;0x0136 PushFlow(Label_0211);0x013B /Script/Engine.Default__KismetArrayLibrary.Array_Get(ConnectTypes, Temp_int_Array_Index_Variable, CallFunc_Array_Get_Item);0x0176 CallFunc_Array_Contains_ReturnValue = /Script/Engine.Default__KismetArrayLibrary.Array_Contains(To.ConnectTypes, CallFunc_Array_Get_Item);0x01C8 if (!(CallFunc_Array_Contains_ReturnValue)) PopFlow();0x01D2 Compatible = true;0x01DD Temp_bool_True_if_break_was_hit_Variable = true;0x01E8 PopFlow();0x01E9 Label_01E9:0x01E9 isCompatible = false;0x01F4 goto Label_025B;0x01F9 Label_01F9:0x01F9 isCompatible = Compatible;0x020C goto Label_025B;0x0211 Label_0211:0x0211 CallFunc_Add_IntInt_ReturnValue = Add_IntInt(Temp_int_Loop_Counter_Variable, 1);0x023B Temp_int_Loop_Counter_Variable = CallFunc_Add_IntInt_ReturnValue;0x0256 goto Label_0069;0x025B Label_025B:0x025B return;Private 0x1495c50 0x09 void GetOwningVehicle (const AAVS_Vehicle_C * & Vehicle ) Script11 statements · 137 bytes of bytecode 0x0000 CallFunc_GetOwner_ReturnValue = GetOwner();0x0014 K2Node_DynamicCast_AsAVS_Vehicle = Cast<AVS_Vehicle_C>(CallFunc_GetOwner_ReturnValue);0x0038 K2Node_DynamicCast_bSuccess = Cast<1>(K2Node_DynamicCast_AsAVS_Vehicle);0x0055 if (!(K2Node_DynamicCast_bSuccess)) goto Label_007B;0x0063 Vehicle = K2Node_DynamicCast_AsAVS_Vehicle;0x0076 goto Label_0086;0x007B Label_007B:0x007B Vehicle = nullptr;0x0086 Label_0086:0x0086 return;Public 0x1495c50 0x08 void GetHitchedTrailer (const AAVS_Vehicle_C * & Trailer ) Script20 statements · 268 bytes of bytecode 0x0000 K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x001F if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_005F;0x002D K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 1);0x004C if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_00DF;0x005A goto Label_0109;0x005F Label_005F:0x005F CallFunc_IsValid_ReturnValue = IsValid(TrailerHitch);0x007C if (!(CallFunc_IsValid_ReturnValue)) goto Label_00CF;0x008A TrailerHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle_1);0x00B7 Trailer = CallFunc_GetOwningVehicle_Vehicle_1;0x00CA goto Label_0109;0x00CF Label_00CF:0x00CF Trailer = nullptr;0x00DA goto Label_0109;0x00DF Label_00DF:0x00DF GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle);0x00F6 Trailer = CallFunc_GetOwningVehicle_Vehicle;0x0109 Label_0109:0x0109 return;Public 0x1495c50 0x08 void GetHitchedVehicle (const AAVS_Vehicle_C * & Vehicle ) Script20 statements · 268 bytes of bytecode 0x0000 K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x001F if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_005F;0x002D K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 1);0x004C if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_008E;0x005A goto Label_0109;0x005F Label_005F:0x005F GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle);0x0076 Vehicle = CallFunc_GetOwningVehicle_Vehicle;0x0089 goto Label_0109;0x008E Label_008E:0x008E CallFunc_IsValid_ReturnValue = IsValid(TowHitch);0x00AB if (!(CallFunc_IsValid_ReturnValue)) goto Label_00FE;0x00B9 TowHitch.GetOwningVehicle(CallFunc_GetOwningVehicle_Vehicle_1);0x00E6 Vehicle = CallFunc_GetOwningVehicle_Vehicle_1;0x00F9 goto Label_0109;0x00FE Label_00FE:0x00FE Vehicle = nullptr;0x0109 Label_0109:0x0109 return;Public 0x1495c50 0x08 void GetVehicleMesh (const UMeshComponent * & Mesh ) Script12 statements · 182 bytes of bytecode 0x0000 CallFunc_GetOwner_ReturnValue = GetOwner();0x0014 K2Node_DynamicCast_AsAVS_Vehicle = Cast<AVS_Vehicle_C>(CallFunc_GetOwner_ReturnValue);0x0038 K2Node_DynamicCast_bSuccess = Cast<1>(K2Node_DynamicCast_AsAVS_Vehicle);0x0055 if (!(K2Node_DynamicCast_bSuccess)) goto Label_00A8;0x0063 K2Node_DynamicCast_AsAVS_Vehicle.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh);0x0090 Mesh = CallFunc_GetVehicleMesh_Mesh;0x00A3 goto Label_00B3;0x00A8 Label_00A8:0x00A8 Mesh = nullptr;0x00B3 Label_00B3:0x00B3 return;Public 0x1495c50 0x08 void Unhitch () Script17 statements · 257 bytes of bytecode 0x0000 K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x001F if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_005F;0x002D K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 1);0x004C if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_00AF;0x005A goto Label_00FE;0x005F Label_005F:0x005F K2Node_MakeStruct_HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24 = nullptr;0x0073 K2Node_MakeStruct_HitchNetworkData.AnimationLength_5_39BF52A541D405D418EB1EA09A7F8D3E = 0f;0x0093 RPC_Server_HitchData(K2Node_MakeStruct_HitchNetworkData);0x00AA goto Label_00FE;0x00AF Label_00AF:0x00AF CallFunc_IsValid_ReturnValue = IsValid(TowHitch);0x00CC if (!(CallFunc_IsValid_ReturnValue)) goto Label_00FE;0x00DA TowHitch.Unhitch();0x00FE Label_00FE:0x00FE return;Public 0x1495c50 0x00 void Hitch (UVehicle_Hitch_C * To , double AnimationLength ) Script22 statements · 445 bytes of bytecode 0x0000 CheckCompatibility(To, CallFunc_CheckCompatibility_isCompatible);0x0020 if (!(CallFunc_CheckCompatibility_isCompatible)) goto Label_01BA;0x002E K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x004D if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_008D;0x005B K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 1);0x007A if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_0149;0x0088 goto Label_01BA;0x008D Label_008D:0x008D CallFunc_EqualEqual_ByteByte_ReturnValue_1 = EqualEqual_ByteByte(To.Type, 1);0x00C2 if (!(CallFunc_EqualEqual_ByteByte_ReturnValue_1)) goto Label_01BA;0x00D0 K2Node_MakeStruct_HitchNetworkData.HitchedTo_2_073E5F324B041656C0C28A9C7F39CF24 = To;0x00EC K2Node_MakeStruct_AnimationLength_5_39BF52A541D405D418EB1EA09A7F8D3E_ImplicitCast = Cast<3>(AnimationLength);0x0109 K2Node_MakeStruct_HitchNetworkData.AnimationLength_5_39BF52A541D405D418EB1EA09A7F8D3E = K2Node_MakeStruct_AnimationLength_5_39BF52A541D405D418EB1EA09A7F8D3E_ImplicitCast;0x012D RPC_Server_HitchData(K2Node_MakeStruct_HitchNetworkData);0x0144 goto Label_01BA;0x0149 Label_0149:0x0149 CallFunc_EqualEqual_ByteByte_ReturnValue = EqualEqual_ByteByte(To.Type, 0);0x017E if (!(CallFunc_EqualEqual_ByteByte_ReturnValue)) goto Label_01BA;0x018C To.Hitch(this, AnimationLength);0x01BA Label_01BA:0x01BA return;Public 0x1495c50 0x10 void UpdateIsHitched (UVehicle_Hitch_C * TowHitch , UVehicle_Hitch_C * TrailerHitch ) Script30 statements · 606 bytes of bytecode 0x0000 CallFunc_IsValid_ReturnValue = IsValid(TowHitch);0x001D if (!(CallFunc_IsValid_ReturnValue)) goto Label_0235;0x002B CallFunc_GetOwner_ReturnValue = TowHitch.GetOwner();0x0055 K2Node_DynamicCast_AsAVS_Vehicle = Cast<AVS_Vehicle_C>(CallFunc_GetOwner_ReturnValue);0x0079 K2Node_DynamicCast_bSuccess = Cast<1>(K2Node_DynamicCast_AsAVS_Vehicle);0x0096 if (!(K2Node_DynamicCast_bSuccess)) goto Label_0235;0x00A4 ParentVehicle = K2Node_DynamicCast_AsAVS_Vehicle;0x00B7 TowHitch = TowHitch;0x00CA TrailerHitch = TrailerHitch;0x00DD Label_00DD:0x00DD CallFunc_IsValid_ReturnValue_1 = IsValid(TrailerHitch);0x00FA CallFunc_IsValid_ReturnValue_2 = IsValid(TowHitch);0x0117 CallFunc_IsValid_ReturnValue_3 = IsValid(ParentVehicle);0x0134 CallFunc_BooleanAND_ReturnValue_1 = BooleanAND(CallFunc_IsValid_ReturnValue_3, CallFunc_IsValid_ReturnValue_2);0x015A CallFunc_BooleanAND_ReturnValue_2 = BooleanAND(CallFunc_BooleanAND_ReturnValue_1, CallFunc_IsValid_ReturnValue_1);0x0180 isHitched = CallFunc_BooleanAND_ReturnValue_2;0x0193 CallFunc_EqualEqual_ByteByte_ReturnValue = EqualEqual_ByteByte(Type, 0);0x01B2 CallFunc_BooleanAND_ReturnValue = BooleanAND(CallFunc_EqualEqual_ByteByte_ReturnValue, isHitched);0x01D8 if (!(CallFunc_BooleanAND_ReturnValue)) goto Label_025B;0x01E6 TrailerHitch.SetIsHitched(true);0x020B TrailerHitch.SetTowHitch(this);0x0230 goto Label_025B;0x0235 Label_0235:0x0235 ParentVehicle = nullptr;0x0240 TowHitch = nullptr;0x024B TrailerHitch = nullptr;0x0256 goto Label_00DD;0x025B Label_025B:0x025B return;Private 0x1495c50 0x10 void ApplyHitchConstraint (UVehicle_Hitch_C * TowHitch , UVehicle_Hitch_C * TrailerHitch ) Script33 statements · 1,140 bytes of bytecode 0x0000 StopHitchAnimation();0x000E UpdateIsHitched(TowHitch, TrailerHitch);0x002E if (!(isHitched)) goto Label_0463;0x003C TrailerHitch.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh);0x0069 ParentVehicle.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh_1);0x0096 HitchConstraint.SetConstrainedComponents(CallFunc_GetVehicleMesh_Mesh_1, FName(None), CallFunc_GetVehicleMesh_Mesh, FName(None));0x00E2 CreateConstraintFrames();0x00F0 HitchConstraint.SetConstraintReferenceFrame(0, HitchFrame1);0x011B HitchConstraint.SetConstraintReferenceFrame(1, HitchFrame2);0x0146 Temp_byte_Variable = 0;0x015A Temp_byte_Variable_1 = 1;0x016E CallFunc_GreaterEqual_DoubleDouble_ReturnValue_2 = GreaterEqual_DoubleDouble(TowHitch.X RotationLimit, 180);0x01AA Temp_bool_Variable = CallFunc_GreaterEqual_DoubleDouble_ReturnValue_2;0x01BD CallFunc_SetAngularTwistLimit_TwistLimitAngle_ImplicitCast = Cast<3>(TowHitch.X RotationLimit);0x01F0 HitchConstraint.SetAngularTwistLimit(Switch(Temp_bool_Variable, false => Temp_byte_Variable_1, true => Temp_byte_Variable, default => K2Node_Select_Default_1), CallFunc_SetAngularTwistLimit_TwistLimitAngle_ImplicitCast);0x024E Temp_byte_Variable_2 = 1;0x0262 Temp_byte_Variable_3 = 0;0x0276 CallFunc_GreaterEqual_DoubleDouble_ReturnValue_1 = GreaterEqual_DoubleDouble(TowHitch.Y RotationLimit, 180);0x02B2 Temp_bool_Variable_1 = CallFunc_GreaterEqual_DoubleDouble_ReturnValue_1;0x02C5 CallFunc_SetAngularSwing2Limit_Swing2LimitAngle_ImplicitCast = Cast<3>(TowHitch.Y RotationLimit);0x02F8 HitchConstraint.SetAngularSwing2Limit(Switch(Temp_bool_Variable_1, false => Temp_byte_Variable_2, true => Temp_byte_Variable_3, default => K2Node_Select_Default), CallFunc_SetAngularSwing2Limit_Swing2LimitAngle_ImplicitCast);0x0356 Temp_byte_Variable_4 = 1;0x036A CallFunc_GreaterEqual_DoubleDouble_ReturnValue = GreaterEqual_DoubleDouble(TowHitch.Z RotationLimit, 180);0x03A6 Temp_byte_Variable_5 = 0;0x03BA Temp_bool_Variable_2 = CallFunc_GreaterEqual_DoubleDouble_ReturnValue;0x03CD CallFunc_SetAngularSwing1Limit_Swing1LimitAngle_ImplicitCast = Cast<3>(TowHitch.Z RotationLimit);0x0400 HitchConstraint.SetAngularSwing1Limit(Switch(Temp_bool_Variable_2, false => Temp_byte_Variable_4, true => Temp_byte_Variable_5, default => K2Node_Select_Default_2), CallFunc_SetAngularSwing1Limit_Swing1LimitAngle_ImplicitCast);0x045E goto Label_0471;0x0463 Label_0463:0x0463 Unhitch();0x0471 Label_0471:0x0471 return;Private 0x1495c50 0x10 void CreateConstraintFrames () Script20 statements · 885 bytes of bytecode 0x0000 GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh);0x0017 CallFunc_K2_GetComponentToWorld_ReturnValue = CallFunc_GetVehicleMesh_Mesh.K2_GetComponentToWorld();0x0049 BreakTransform(CallFunc_K2_GetComponentToWorld_ReturnValue, CallFunc_BreakTransform_Location, CallFunc_BreakTransform_Rotation, CallFunc_BreakTransform_Scale);0x0077 CallFunc_MakeTransform_ReturnValue = MakeTransform(CallFunc_BreakTransform_Location, CallFunc_BreakTransform_Rotation, FVector(1, 1, 1));0x00BE CallFunc_K2_GetComponentToWorld_ReturnValue_3 = TowHitch.K2_GetComponentToWorld();0x00F0 BreakTransform(CallFunc_K2_GetComponentToWorld_ReturnValue_3, CallFunc_BreakTransform_Location_3, CallFunc_BreakTransform_Rotation_3, CallFunc_BreakTransform_Scale_3);0x011E CallFunc_MakeTransform_ReturnValue_3 = MakeTransform(CallFunc_BreakTransform_Location_3, CallFunc_BreakTransform_Rotation_3, FVector(1, 1, 1));0x0165 CallFunc_MakeRelativeTransform_ReturnValue_1 = MakeRelativeTransform(CallFunc_MakeTransform_ReturnValue_3, CallFunc_MakeTransform_ReturnValue);0x0193 HitchFrame1 = CallFunc_MakeRelativeTransform_ReturnValue_1;0x01AE TrailerHitch.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh_1);0x01DB CallFunc_K2_GetComponentToWorld_ReturnValue_1 = CallFunc_GetVehicleMesh_Mesh_1.K2_GetComponentToWorld();0x020D BreakTransform(CallFunc_K2_GetComponentToWorld_ReturnValue_1, CallFunc_BreakTransform_Location_1, CallFunc_BreakTransform_Rotation_1, CallFunc_BreakTransform_Scale_1);0x023B CallFunc_K2_GetComponentToWorld_ReturnValue_2 = TrailerHitch.K2_GetComponentToWorld();0x026D CallFunc_MakeTransform_ReturnValue_1 = MakeTransform(CallFunc_BreakTransform_Location_1, CallFunc_BreakTransform_Rotation_1, FVector(1, 1, 1));0x02B4 BreakTransform(CallFunc_K2_GetComponentToWorld_ReturnValue_2, CallFunc_BreakTransform_Location_2, CallFunc_BreakTransform_Rotation_2, CallFunc_BreakTransform_Scale_2);0x02E2 CallFunc_MakeTransform_ReturnValue_2 = MakeTransform(CallFunc_BreakTransform_Location_2, CallFunc_BreakTransform_Rotation_2, FVector(1, 1, 1));0x0329 CallFunc_MakeRelativeTransform_ReturnValue = MakeRelativeTransform(CallFunc_MakeTransform_ReturnValue_2, CallFunc_MakeTransform_ReturnValue_1);0x0357 HitchFrame2 = CallFunc_MakeRelativeTransform_ReturnValue;0x0372 return;Private 0x1495c50 0x00 void CreateHitchConstraint () Script12 statements · 321 bytes of bytecode 0x0000 CallFunc_EqualEqual_ByteByte_ReturnValue = EqualEqual_ByteByte(Type, 0);0x001F if (!(CallFunc_EqualEqual_ByteByte_ReturnValue)) goto Label_013E;0x002D CallFunc_GetOwner_ReturnValue = GetOwner();0x0041 K2Node_DynamicCast_AsAVS_Vehicle = Cast<AVS_Vehicle_C>(CallFunc_GetOwner_ReturnValue);0x0065 K2Node_DynamicCast_bSuccess = Cast<1>(K2Node_DynamicCast_AsAVS_Vehicle);0x0082 if (!(K2Node_DynamicCast_bSuccess)) goto Label_013E;0x0090 K2Node_DynamicCast_AsAVS_Vehicle.CreateHitchConstraints(false, FTransform(...), CallFunc_CreateHitchConstraints_VehicleConstraint, CallFunc_CreateHitchConstraints_PhysicsHandle);0x0118 HitchConstraint = CallFunc_CreateHitchConstraints_VehicleConstraint;0x012B HitchHandle = CallFunc_CreateHitchConstraints_PhysicsHandle;0x013E Label_013E:0x013E return;Private 0x1495c50 0x00 void InitHitch () Script7 statements · 71 bytes of bytecode 0x0000 CallFunc_Not_PreBool_ReturnValue = Not_PreBool(Initialized);0x001D if (!(CallFunc_Not_PreBool_ReturnValue)) goto Label_0044;0x002B CreateHitchConstraint();0x0039 Initialized = true;0x0044 Label_0044:0x0044 return;Public 0x1495c50 0x00 void HitchToOverlapped (double AnimationLength ) Script74 statements · 1,604 bytes of bytecode 0x0000 PushFlow(Label_0641);0x0005 Temp_bool_True_if_break_was_hit_Variable = false;0x0010 Temp_int_Loop_Counter_Variable = 0;0x0027 Temp_int_Array_Index_Variable = 0;0x003E Label_003E:0x003E CallFunc_Not_PreBool_ReturnValue = Not_PreBool(Temp_bool_True_if_break_was_hit_Variable);0x005B CallFunc_GetChildrenComponents_Children = {};0x0066 GetChildrenComponents(false, CallFunc_GetChildrenComponents_Children);0x007A CallFunc_Array_Length_ReturnValue = /Script/Engine.Default__KismetArrayLibrary.Array_Length(CallFunc_GetChildrenComponents_Children);0x00B5 CallFunc_Less_IntInt_ReturnValue = Less_IntInt(Temp_int_Loop_Counter_Variable, CallFunc_Array_Length_ReturnValue);0x00DB CallFunc_BooleanAND_ReturnValue = BooleanAND(CallFunc_Not_PreBool_ReturnValue, CallFunc_Less_IntInt_ReturnValue);0x0101 if (!(CallFunc_BooleanAND_ReturnValue)) PopFlow();0x010B Temp_int_Array_Index_Variable = Temp_int_Loop_Counter_Variable;0x0126 PushFlow(Label_04BC);0x012B CallFunc_GetChildrenComponents_Children = {};0x0136 GetChildrenComponents(false, CallFunc_GetChildrenComponents_Children);0x014A /Script/Engine.Default__KismetArrayLibrary.Array_Get(CallFunc_GetChildrenComponents_Children, Temp_int_Array_Index_Variable, CallFunc_Array_Get_Item);0x0185 K2Node_DynamicCast_AsShape_Component = Cast<ShapeComponent>(CallFunc_Array_Get_Item);0x01A9 K2Node_DynamicCast_bSuccess = Cast<1>(K2Node_DynamicCast_AsShape_Component);0x01C6 if (!(K2Node_DynamicCast_bSuccess)) PopFlow();0x01D0 Temp_bool_True_if_break_was_hit_Variable_1 = false;0x01DB Temp_int_Loop_Counter_Variable_1 = 0;0x01F2 Temp_int_Array_Index_Variable_1 = 0;0x0209 Label_0209:0x0209 CallFunc_Not_PreBool_ReturnValue_1 = Not_PreBool(Temp_bool_True_if_break_was_hit_Variable_1);0x0226 CallFunc_GetOverlappingComponents_OutOverlappingComponents = {};0x0231 K2Node_DynamicCast_AsShape_Component.GetOverlappingComponents(CallFunc_GetOverlappingComponents_OutOverlappingComponents);0x025A CallFunc_Array_Length_ReturnValue_1 = /Script/Engine.Default__KismetArrayLibrary.Array_Length(CallFunc_GetOverlappingComponents_OutOverlappingComponents);0x0295 CallFunc_Less_IntInt_ReturnValue_1 = Less_IntInt(Temp_int_Loop_Counter_Variable_1, CallFunc_Array_Length_ReturnValue_1);0x02BB CallFunc_BooleanAND_ReturnValue_1 = BooleanAND(CallFunc_Not_PreBool_ReturnValue_1, CallFunc_Less_IntInt_ReturnValue_1);0x02E1 if (!(CallFunc_BooleanAND_ReturnValue_1)) PopFlow();0x02EB Temp_int_Array_Index_Variable_1 = Temp_int_Loop_Counter_Variable_1;0x0306 PushFlow(Label_0506);0x030B CallFunc_GetOverlappingComponents_OutOverlappingComponents = {};0x0316 K2Node_DynamicCast_AsShape_Component.GetOverlappingComponents(CallFunc_GetOverlappingComponents_OutOverlappingComponents);0x033F /Script/Engine.Default__KismetArrayLibrary.Array_Get(CallFunc_GetOverlappingComponents_OutOverlappingComponents, Temp_int_Array_Index_Variable_1, CallFunc_Array_Get_Item_1);0x037A K2Node_DynamicCast_AsShape_Component_1 = Cast<ShapeComponent>(CallFunc_Array_Get_Item_1);0x039E K2Node_DynamicCast_bSuccess_1 = Cast<1>(K2Node_DynamicCast_AsShape_Component_1);0x03BB if (!(K2Node_DynamicCast_bSuccess_1)) PopFlow();0x03C5 CallFunc_GetAttachParent_ReturnValue = K2Node_DynamicCast_AsShape_Component_1.GetAttachParent();0x03EF K2Node_DynamicCast_AsVehicle_Hitch = Cast<Vehicle_Hitch_C>(CallFunc_GetAttachParent_ReturnValue);0x0413 K2Node_DynamicCast_bSuccess_2 = Cast<1>(K2Node_DynamicCast_AsVehicle_Hitch);0x0430 if (!(K2Node_DynamicCast_bSuccess_2)) PopFlow();0x043A K2Node_DynamicCast_AsVehicle_Hitch.GetIsHitched(CallFunc_GetIsHitched_isHitched);0x0467 CallFunc_Not_PreBool_ReturnValue_2 = Not_PreBool(CallFunc_GetIsHitched_isHitched);0x0484 if (!(CallFunc_Not_PreBool_ReturnValue_2)) PopFlow();0x048E K2Node_SwitchEnum_CmpSuccess = NotEqual_ByteByte(Type, 0);0x04AD if (!(K2Node_SwitchEnum_CmpSuccess)) goto Label_0550;0x04BB PopFlow();0x04BC Label_04BC:0x04BC CallFunc_Add_IntInt_ReturnValue = Add_IntInt(Temp_int_Loop_Counter_Variable, 1);0x04E6 Temp_int_Loop_Counter_Variable = CallFunc_Add_IntInt_ReturnValue;0x0501 goto Label_003E;0x0506 Label_0506:0x0506 CallFunc_Add_IntInt_ReturnValue_1 = Add_IntInt(Temp_int_Loop_Counter_Variable_1, 1);0x0530 Temp_int_Loop_Counter_Variable_1 = CallFunc_Add_IntInt_ReturnValue_1;0x054B goto Label_0209;0x0550 Label_0550:0x0550 CallFunc_GetOwner_ReturnValue = K2Node_DynamicCast_AsVehicle_Hitch.GetOwner();0x057A K2Node_DynamicCast_AsAVS_Vehicle = Cast<AVS_Vehicle_C>(CallFunc_GetOwner_ReturnValue);0x059E K2Node_DynamicCast_bSuccess_3 = Cast<1>(K2Node_DynamicCast_AsAVS_Vehicle);0x05BB if (!(K2Node_DynamicCast_bSuccess_3)) PopFlow();0x05C5 CallFunc_EqualEqual_ByteByte_ReturnValue = EqualEqual_ByteByte(K2Node_DynamicCast_AsVehicle_Hitch.Type, 1);0x05FA if (!(CallFunc_EqualEqual_ByteByte_ReturnValue)) PopFlow();0x0604 Hitch(K2Node_DynamicCast_AsVehicle_Hitch, AnimationLength);0x0624 PushFlow(Label_0635);0x0629 Temp_bool_True_if_break_was_hit_Variable_1 = true;0x0634 PopFlow();0x0635 Label_0635:0x0635 Temp_bool_True_if_break_was_hit_Variable = true;0x0640 PopFlow();0x0641 Label_0641:0x0641 return;Public 0x1495c50 0x08 void SetIsHitched (bool isHitched ) Script3 statements · 22 bytes of bytecode 0x0000 isHitched = isHitched;0x0013 return;Public 0x1495c50 0x01 void GetIsHitched (const bool & isHitched ) Script3 statements · 22 bytes of bytecode 0x0000 isHitched = isHitched;0x0013 return;Public 0x1495c50 0x01 void ReceiveTick (float DeltaSeconds ) Script4 statements · 36 bytes of bytecode 0x0000 PersistentFrame.K2Node_Event_DeltaSeconds = DeltaSeconds;0x0012 ExecuteUbergraph_Vehicle_Hitch(578);0x0021 return;Event Public 0x1495c50 0x04 void StartHitchAnimation (double AnimationLength ) Script4 statements · 36 bytes of bytecode 0x0000 PersistentFrame.K2Node_CustomEvent_AnimationLength = AnimationLength;0x0012 ExecuteUbergraph_Vehicle_Hitch(970);0x0021 return;0x1495c50 0x08 void HitchAnimationFinished () Script3 statements · 18 bytes of bytecode 0x0000 ExecuteUbergraph_Vehicle_Hitch(1002);0x000F return;0x1495c50 0x00 void StopHitchAnimation () Script3 statements · 18 bytes of bytecode 0x0000 ExecuteUbergraph_Vehicle_Hitch(1095);0x000F return;0x1495c50 0x00 void ReceiveBeginPlay () Script3 statements · 18 bytes of bytecode 0x0000 ExecuteUbergraph_Vehicle_Hitch(1120);0x000F return;Event Public 0x1495c50 0x00 void HitchConstraintBroken (int32 ConstraintIndex ) Script4 statements · 36 bytes of bytecode 0x0000 PersistentFrame.K2Node_CustomEvent_ConstraintIndex = ConstraintIndex;0x0012 ExecuteUbergraph_Vehicle_Hitch(1140);0x0021 return;0x1495c50 0x04 void RPC_Server_HitchData (const FHitchNetworkData & HitchNetworkData ) Script4 statements · 36 bytes of bytecode 0x0000 PersistentFrame.K2Node_CustomEvent_HitchNetworkData = HitchNetworkData;0x0012 ExecuteUbergraph_Vehicle_Hitch(1159);0x0021 return;0x1495c50 0x10 void ReceiveEndPlay (const EEndPlayReason & EndPlayReason ) Script4 statements · 36 bytes of bytecode 0x0000 PersistentFrame.K2Node_Event_EndPlayReason = EndPlayReason;0x0012 ExecuteUbergraph_Vehicle_Hitch(1191);0x0021 return;Event Public 0x1495c50 0x01 void HitchedToDestroyed_Event () Script3 statements · 18 bytes of bytecode 0x0000 ExecuteUbergraph_Vehicle_Hitch(1326);0x000F return;0x1495c50 0x00 void ExecuteUbergraph_Vehicle_Hitch (int32 EntryPoint ) Script67 statements · 1,343 bytes of bytecode 0x0000 goto [EntryPoint];0x000A Label_000A:0x000A WakeIfValid();0x0018 goto Label_053C;0x001D Label_001D:0x001D OnRep_HitchNetwork();0x002B goto Label_053C;0x0030 Label_0030:0x0030 MarkPropertyDirtyFromRepIndex(this, 17, FName(HitchNetworkData));0x004D goto Label_001D;0x0052 Label_0052:0x0052 K2Node_CreateDelegate_OutputDelegate.Bind(this, HitchedToDestroyed_Event);0x0069 HitchedToDestroyed += K2Node_CreateDelegate_OutputDelegate;0x007C CallFunc_IsValid_ReturnValue = IsValid(HitchConstraint);0x0099 if (!(CallFunc_IsValid_ReturnValue)) goto Label_053C;0x00A7 K2Node_CreateDelegate_OutputDelegate_2.Bind(this, HitchConstraintBroken);0x00BE HitchConstraint.OnConstraintBroken += K2Node_CreateDelegate_OutputDelegate_2;0x00E7 goto Label_053C;0x00EC Label_00EC:0x00EC K2Node_CreateDelegate_OutputDelegate_1.Bind(this, HitchAnimationFinished);0x0103 CallFunc_K2_SetTimerDelegate_Time_ImplicitCast = Cast<3>(AnimationLength);0x0120 CallFunc_K2_SetTimerDelegate_ReturnValue = K2_SetTimerDelegate(K2Node_CreateDelegate_OutputDelegate_1, CallFunc_K2_SetTimerDelegate_Time_ImplicitCast, false, false, 0f, 0f);0x015A HitchAnimationTimer = CallFunc_K2_SetTimerDelegate_ReturnValue;0x0175 SetComponentTickEnabled(true);0x0184 CallFunc_K2_GetComponentLocation_ReturnValue_1 = TrailerHitch.K2_GetComponentLocation();0x01B6 AnimateFrom = CallFunc_K2_GetComponentLocation_ReturnValue_1;0x01D1 TrailerHitch.GetVehicleMesh(CallFunc_GetVehicleMesh_Mesh);0x01FE HitchHandle.GrabComponentAtLocation(CallFunc_GetVehicleMesh_Mesh, FName(None), AnimateFrom);0x023D goto Label_053C;0x0242 CallFunc_K2_IsTimerActiveHandle_ReturnValue = K2_IsTimerActiveHandle(this, HitchAnimationTimer);0x0260 if (!(CallFunc_K2_IsTimerActiveHandle_ReturnValue)) goto Label_053C;0x026E CallFunc_IsValid_ReturnValue_1 = IsValid(TowHitch);0x028B if (!(CallFunc_IsValid_ReturnValue_1)) goto Label_053C;0x0299 CallFunc_K2_GetTimerElapsedTimeHandle_ReturnValue = K2_GetTimerElapsedTimeHandle(this, HitchAnimationTimer);0x02BF CallFunc_Divide_DoubleDouble_A_ImplicitCast = Cast<4>(CallFunc_K2_GetTimerElapsedTimeHandle_ReturnValue);0x02DC CallFunc_Divide_DoubleDouble_ReturnValue = Divide_DoubleDouble(CallFunc_Divide_DoubleDouble_A_ImplicitCast, AnimationLength);0x030A CallFunc_K2_GetComponentLocation_ReturnValue = TowHitch.K2_GetComponentLocation();0x033C CallFunc_VEase_Alpha_ImplicitCast = Cast<3>(CallFunc_Divide_DoubleDouble_ReturnValue);0x0359 CallFunc_VEase_ReturnValue = VEase(AnimateFrom, CallFunc_K2_GetComponentLocation_ReturnValue, CallFunc_VEase_Alpha_ImplicitCast, 7, 2f, 2);0x039C HitchHandle.SetTargetLocation(CallFunc_VEase_ReturnValue);0x03C5 goto Label_000A;0x03CA AnimationLength = K2Node_CustomEvent_AnimationLength;0x03E5 goto Label_00EC;0x03EA ApplyHitchConstraint(TowHitch, TrailerHitch);0x040A goto Label_053C;0x040F Label_040F:0x040F SetComponentTickEnabled(false);0x041E HitchHandle.ReleaseComponent();0x0442 goto Label_053C;0x0447 K2_ClearAndInvalidateTimerHandle(this, HitchAnimationTimer);0x045B goto Label_040F;0x0460 SetComponentTickEnabled(false);0x046F goto Label_0052;0x0474 Unhitch();0x0482 goto Label_053C;0x0487 HitchNetworkData = K2Node_CustomEvent_HitchNetworkData;0x04A2 goto Label_0030;0x04A7 GetHitchedTo(CallFunc_GetHitchedTo_HitchedTo);0x04BE CallFunc_IsValid_ReturnValue_2 = IsValid(CallFunc_GetHitchedTo_HitchedTo);0x04DB if (!(CallFunc_IsValid_ReturnValue_2)) goto Label_053C;0x04E9 GetHitchedTo(CallFunc_GetHitchedTo_HitchedTo);0x0500 CallFunc_GetHitchedTo_HitchedTo.HitchedToDestroyed.Broadcast();0x0529 goto Label_053C;0x052E ApplyHitchFromNetwork();0x053C Label_053C:0x053C return;Final 0x1495c50 0x04 void HitchedToDestroyed__DelegateSignature () Script2 statements · 3 bytes of bytecode Public 0x1495c50 0x00 void Unhitched__DelegateSignature () Script2 statements · 3 bytes of bytecode Public 0x1495c50 0x00 void Hitched__DelegateSignature (UVehicle_Hitch_C * TowHitch , UVehicle_Hitch_C * TrailerHitch ) Script2 statements · 3 bytes of bytecode Public 0x1495c50 0x10