diff --git a/.gitignore b/.gitignore index f429067..f072fbd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,12 @@ !bundle.yaml !filelist.txt !tool.nu +!tool/ +!tool/** !manifest.toml !README.md +!exported/ +!exported/** !Config/ !Config/* !Development/ diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index ab597c0..1b81471 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -1,9 +1,10 @@ [Engine.ScriptPackages] -+NativePackages=TgMod ++NativePackages=TmCore +NativePackages=TempestMp +# +NativePackages=TmMultiplayer [Engine.GameEngine] MaxSmoothedFrameRate=300.000000 [Engine.Engine] -GameViewportClientClassName=TgMod.TgModGameViewportClient +GameViewportClientClassName=TmCore.TmGameViewportClient diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini new file mode 100644 index 0000000..b7fa899 --- /dev/null +++ b/Config/DefaultGame.ini @@ -0,0 +1,5 @@ +[Engine.GameInfo] +PlayerControllerClassName=TgGame.TgPlayerController + +[TgGame.TgClientSettings] +AutoPurchase=false \ No newline at end of file diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini index 0fdff80..e9cb3d4 100644 --- a/Config/DefaultInput.ini +++ b/Config/DefaultInput.ini @@ -1,5 +1,6 @@ [TgGame.TgPlayerInput] +Bindings=(Name="F1", Command="OnRelease Switchlevel Shootingrange_P?game=Shootingrange") ++Bindings=(Name="F12", Command="OnRelease popscene") [Engine.Console] .TypeKey=F2 \ No newline at end of file diff --git a/Development/Src/AkAudio/Classes/ActorFactoryAkAmbientSound.uc b/Development/Src/AkAudio/Classes/ActorFactoryAkAmbientSound.uc old mode 100755 new mode 100644 index a21e118..4d7f380 --- a/Development/Src/AkAudio/Classes/ActorFactoryAkAmbientSound.uc +++ b/Development/Src/AkAudio/Classes/ActorFactoryAkAmbientSound.uc @@ -1,14 +1,14 @@ -class ActorFactoryAkAmbientSound extends ActorFactory - native - config(Editor) - editinlinenew - collapsecategories - hidecategories(Object,Object); - -var() AkEvent AmbientEvent; - -defaultproperties -{ - MenuName="Add AkAmbientSound" - NewActorClass=Class'AkAmbientSound' -} \ No newline at end of file +class ActorFactoryAkAmbientSound extends ActorFactory + native + config(Editor) + editinlinenew + collapsecategories + hidecategories(Object,Object); + +var () AkEvent AmbientEvent; + +defaultproperties +{ + MenuName="Add AkAmbientSound" + NewActorClass=Class'AkAmbientSound' +} diff --git a/Development/Src/AkAudio/Classes/AkAmbientSound.uc b/Development/Src/AkAudio/Classes/AkAmbientSound.uc old mode 100755 new mode 100644 index c953edb..19c3c7f --- a/Development/Src/AkAudio/Classes/AkAmbientSound.uc +++ b/Development/Src/AkAudio/Classes/AkAmbientSound.uc @@ -1,20 +1,15 @@ -class AkAmbientSound extends Keypoint - native - hidecategories(Navigation); - -var bool bAutoPlay; -var() bool StopWhenOwnerIsDestroyed; -var private transient bool bIsPlaying; -var() AkEvent PlayEvent; - -// Export UAkAmbientSound::execStartPlayback(FFrame&, void* const) -native function StartPlayback(); - -// Export UAkAmbientSound::execStopPlayback(FFrame&, void* const) -native function StopPlayback(); - -defaultproperties -{ - bAutoPlay=true - StopWhenOwnerIsDestroyed=true -} \ No newline at end of file +class AkAmbientSound extends Keypoint + native + hidecategories(Navigation) + config(Engine); + +var bool bAutoPlay; +var () bool StopWhenOwnerIsDestroyed; +var private transient bool bIsPlaying; +var () AkEvent PlayEvent; + +defaultproperties +{ + bAutoPlay=true + StopWhenOwnerIsDestroyed=true +} diff --git a/Development/Src/AkAudio/Classes/AkComponent.uc b/Development/Src/AkAudio/Classes/AkComponent.uc old mode 100755 new mode 100644 index f1ee97b..d3c8c40 --- a/Development/Src/AkAudio/Classes/AkComponent.uc +++ b/Development/Src/AkAudio/Classes/AkComponent.uc @@ -1,10 +1,10 @@ -class AkComponent extends ActorComponent - native - editinlinenew - collapsecategories - hidecategories(Object,ActorComponent); - -var() name BoneName; -var AkEvent AutoPlayEvent; -var bool bStopWhenOwnerDestroyed; -var transient bool bRegisteredWithWwise; +class AkComponent extends ActorComponent + native + editinlinenew + collapsecategories + hidecategories(Object,ActorComponent) + config(Engine); + +var () name BoneName; +var AkEvent AutoPlayEvent; +var bool bStopWhenOwnerDestroyed; diff --git a/Development/Src/AkAudio/Classes/InterpTrackAkEvent.uc b/Development/Src/AkAudio/Classes/InterpTrackAkEvent.uc old mode 100755 new mode 100644 index e6bf172..1d65ffd --- a/Development/Src/AkAudio/Classes/InterpTrackAkEvent.uc +++ b/Development/Src/AkAudio/Classes/InterpTrackAkEvent.uc @@ -1,24 +1,19 @@ -class InterpTrackAkEvent extends InterpTrack - native - collapsecategories - hidecategories(Object); - -struct native AkEventTrackKey -{ - var float Time; - var() AkEvent Event; - - structdefaultproperties - { - Time=0.0000000 - Event=none - } -}; - -var array AkEvents; - -defaultproperties -{ - TrackInstClass=Class'AkAudio.InterpTrackInstAkEvent' - TrackTitle="AkEvent" -} \ No newline at end of file +class InterpTrackAkEvent extends InterpTrack + native + collapsecategories + hidecategories(Object) + config(Engine); + +struct AkEventTrackKey { + var float Time; + var () AkEvent Event; + structdefaultproperties {} +}; + +var array AkEvents; + +defaultproperties +{ + TrackInstClass=Class'InterpTrackInstAkEvent' + TrackTitle="AkEvent" +} diff --git a/Development/Src/AkAudio/Classes/InterpTrackAkRTPC.uc b/Development/Src/AkAudio/Classes/InterpTrackAkRTPC.uc old mode 100755 new mode 100644 index caf77d7..ace88cd --- a/Development/Src/AkAudio/Classes/InterpTrackAkRTPC.uc +++ b/Development/Src/AkAudio/Classes/InterpTrackAkRTPC.uc @@ -1,12 +1,13 @@ -class InterpTrackAkRTPC extends InterpTrackFloatBase - native - collapsecategories - hidecategories(Object); - -var() string Param; - -defaultproperties -{ - TrackInstClass=Class'AkAudio.InterpTrackInstAkRTPC' - TrackTitle="AkRTPC" -} \ No newline at end of file +class InterpTrackAkRTPC extends InterpTrackFloatBase + native + collapsecategories + hidecategories(Object) + config(Engine); + +var () string Param; + +defaultproperties +{ + TrackInstClass=Class'InterpTrackInstAkRTPC' + TrackTitle="AkRTPC" +} diff --git a/Development/Src/AkAudio/Classes/InterpTrackInstAkEvent.uc b/Development/Src/AkAudio/Classes/InterpTrackInstAkEvent.uc old mode 100755 new mode 100644 index 979659f..d60b1a9 --- a/Development/Src/AkAudio/Classes/InterpTrackInstAkEvent.uc +++ b/Development/Src/AkAudio/Classes/InterpTrackInstAkEvent.uc @@ -1,4 +1,5 @@ -class InterpTrackInstAkEvent extends InterpTrackInst - native; - -var float LastUpdatePosition; +class InterpTrackInstAkEvent extends InterpTrackInst + native + config(Engine); + +var float LastUpdatePosition; diff --git a/Development/Src/AkAudio/Classes/InterpTrackInstAkRTPC.uc b/Development/Src/AkAudio/Classes/InterpTrackInstAkRTPC.uc old mode 100755 new mode 100644 index df02287..cfbf3c1 --- a/Development/Src/AkAudio/Classes/InterpTrackInstAkRTPC.uc +++ b/Development/Src/AkAudio/Classes/InterpTrackInstAkRTPC.uc @@ -1,2 +1,3 @@ -class InterpTrackInstAkRTPC extends InterpTrackInst - native; +class InterpTrackInstAkRTPC extends InterpTrackInst + native + config(Engine); diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkClearBanks.uc b/Development/Src/AkAudio/Classes/SeqAct_AkClearBanks.uc old mode 100755 new mode 100644 index 44180e2..10f9db7 --- a/Development/Src/AkAudio/Classes/SeqAct_AkClearBanks.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkClearBanks.uc @@ -1,12 +1,12 @@ -class SeqAct_AkClearBanks extends SequenceAction - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - InputLinks(0)=(LinkDesc="ClearBanks",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - //VariableLinks=none - ObjName="AkClearBanks" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkClearBanks extends SequenceAction + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InputLinks[0]=(LinkDesc="ClearBanks",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks=none + ObjName="AkClearBanks" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkLoadBank.uc b/Development/Src/AkAudio/Classes/SeqAct_AkLoadBank.uc old mode 100755 new mode 100644 index 1e81f2b..2b7402f --- a/Development/Src/AkAudio/Classes/SeqAct_AkLoadBank.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkLoadBank.uc @@ -1,20 +1,20 @@ -class SeqAct_AkLoadBank extends SeqAct_Latent - native - forcescriptorder(true) - hidecategories(Object); - -var() bool Async; -var transient bool bWaitingCallback; -var() AkBank Bank; -var transient int Signal; - -defaultproperties -{ - Async=true - InputLinks(0)=(LinkDesc="Load",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Unload",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - OutputLinks(0)=(LinkDesc="Finished",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="AkLoadBank" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkLoadBank extends SeqAct_Latent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool Async; +var transient bool bWaitingCallback; +var () AkBank Bank; +var transient int Signal; + +defaultproperties +{ + Async=true + InputLinks[0]=(LinkDesc="Load",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Unload",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks[0]=(Links=none,LinkDesc="Finished",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="AkLoadBank" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkPostEvent.uc b/Development/Src/AkAudio/Classes/SeqAct_AkPostEvent.uc old mode 100755 new mode 100644 index c8df37d..764f5e9 --- a/Development/Src/AkAudio/Classes/SeqAct_AkPostEvent.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkPostEvent.uc @@ -1,15 +1,15 @@ -class SeqAct_AkPostEvent extends SeqAct_Latent - native - forcescriptorder(true) - hidecategories(Object); - -var transient int Signal; -var() AkEvent Event; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Post",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - OutputLinks(0)=(LinkDesc="Finished",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="AkPostEvent" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkPostEvent extends SeqAct_Latent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var transient int Signal; +var () AkEvent Event; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Post",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks[0]=(Links=none,LinkDesc="Finished",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="AkPostEvent" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkPostTrigger.uc b/Development/Src/AkAudio/Classes/SeqAct_AkPostTrigger.uc old mode 100755 new mode 100644 index 4962e13..9ccb817 --- a/Development/Src/AkAudio/Classes/SeqAct_AkPostTrigger.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkPostTrigger.uc @@ -1,13 +1,13 @@ -class SeqAct_AkPostTrigger extends SequenceAction - native - forcescriptorder(true) - hidecategories(Object); - -var() string Trigger; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Post",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="AkPostTrigger" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkPostTrigger extends SequenceAction + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () string Trigger; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Post",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="AkPostTrigger" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkSetRTPCValue.uc b/Development/Src/AkAudio/Classes/SeqAct_AkSetRTPCValue.uc old mode 100755 new mode 100644 index 7b7c5e1..0c2ecd2 --- a/Development/Src/AkAudio/Classes/SeqAct_AkSetRTPCValue.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkSetRTPCValue.uc @@ -1,19 +1,19 @@ -class SeqAct_AkSetRTPCValue extends SeqAct_Latent - native - forcescriptorder(true) - hidecategories(Object); - -var() string Param; -var() float Value; -var transient bool Running; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - OutputLinks(0)=(LinkDesc="Finished",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Value",LinkVar="None",PropertyName="Value",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="AkSetRTPCValue" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkSetRTPCValue extends SeqAct_Latent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () string Param; +var () float Value; +var transient bool Running; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks[0]=(Links=none,LinkDesc="Finished",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Value",LinkVar="None",PropertyName="Value",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="AkSetRTPCValue" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkSetState.uc b/Development/Src/AkAudio/Classes/SeqAct_AkSetState.uc old mode 100755 new mode 100644 index 6167afd..f046a5e --- a/Development/Src/AkAudio/Classes/SeqAct_AkSetState.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkSetState.uc @@ -1,15 +1,15 @@ -class SeqAct_AkSetState extends SequenceAction - native - forcescriptorder(true) - hidecategories(Object); - -var() string StateGroup; -var() string State; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Set",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - //VariableLinks=none - ObjName="AkSetState" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkSetState extends SequenceAction + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () string StateGroup; +var () string State; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Set",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks=none + ObjName="AkSetState" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkSetSwitch.uc b/Development/Src/AkAudio/Classes/SeqAct_AkSetSwitch.uc old mode 100755 new mode 100644 index 4d11c72..c76b371 --- a/Development/Src/AkAudio/Classes/SeqAct_AkSetSwitch.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkSetSwitch.uc @@ -1,14 +1,14 @@ -class SeqAct_AkSetSwitch extends SequenceAction - native - forcescriptorder(true) - hidecategories(Object); - -var() string SwitchGroup; -var() string Switch; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Set",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="AkSetSwitch" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkSetSwitch extends SequenceAction + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () string SwitchGroup; +var () string Switch; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Set",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="AkSetSwitch" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkStartAmbientSound.uc b/Development/Src/AkAudio/Classes/SeqAct_AkStartAmbientSound.uc old mode 100755 new mode 100644 index 2a86a98..c696c92 --- a/Development/Src/AkAudio/Classes/SeqAct_AkStartAmbientSound.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkStartAmbientSound.uc @@ -1,14 +1,14 @@ -class SeqAct_AkStartAmbientSound extends SequenceAction - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Start All",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop All",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Start Target(s)",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(3)=(LinkDesc="Stop Targets(s)",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="AkStartAmbientSound" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkStartAmbientSound extends SequenceAction + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Start All",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop All",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Start Target(s)",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[3]=(LinkDesc="Stop Targets(s)",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="AkStartAmbientSound" +} diff --git a/Development/Src/AkAudio/Classes/SeqAct_AkStopAll.uc b/Development/Src/AkAudio/Classes/SeqAct_AkStopAll.uc old mode 100755 new mode 100644 index 218ceb5..9f954e3 --- a/Development/Src/AkAudio/Classes/SeqAct_AkStopAll.uc +++ b/Development/Src/AkAudio/Classes/SeqAct_AkStopAll.uc @@ -1,12 +1,12 @@ -class SeqAct_AkStopAll extends SequenceAction - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - InputLinks(0)=(LinkDesc="StopAll",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - //VariableLinks=none - ObjName="AkStopAll" - ObjCategory="Wwise" -} \ No newline at end of file +class SeqAct_AkStopAll extends SequenceAction + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InputLinks[0]=(LinkDesc="StopAll",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks=none + ObjName="AkStopAll" +} diff --git a/Development/Src/BattleClient/Classes/BattleHUD.uc b/Development/Src/BattleClient/Classes/BattleHUD.uc new file mode 100644 index 0000000..9beb44f --- /dev/null +++ b/Development/Src/BattleClient/Classes/BattleHUD.uc @@ -0,0 +1,10 @@ +class BattleHUD extends TgClientHUD + transient + native + config(Game) + hidecategories(Navigation); + +native function BattleHUDFunction(); // Export UBattleHUD::execBattleHUDFunction(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/BattleClient/Classes/BattleLaunch.uc b/Development/Src/BattleClient/Classes/BattleLaunch.uc new file mode 100644 index 0000000..9467a7b --- /dev/null +++ b/Development/Src/BattleClient/Classes/BattleLaunch.uc @@ -0,0 +1,10 @@ +class BattleLaunch extends TgGameLaunch + native + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + HUDType=Class'BattleHUD' + PlayerControllerClass=Class'BattlePlayerController' +} diff --git a/Development/Src/BattleGame/Classes/BattleObject.uc b/Development/Src/BattleGame/Classes/BattleObject.uc new file mode 100644 index 0000000..f178a44 --- /dev/null +++ b/Development/Src/BattleGame/Classes/BattleObject.uc @@ -0,0 +1,3 @@ +class BattleObject extends TgObject + native + config(Engine); diff --git a/Development/Src/BattleGame/Classes/BattlePlayerController.uc b/Development/Src/BattleGame/Classes/BattlePlayerController.uc new file mode 100644 index 0000000..efacc69 --- /dev/null +++ b/Development/Src/BattleGame/Classes/BattlePlayerController.uc @@ -0,0 +1,9 @@ +class BattlePlayerController extends TgPlayerController + native(Pawns) + config(Game) + hidecategories(Navigation); + +native function BattlePlayerControllerFunction(); // Export UBattlePlayerController::execBattlePlayerControllerFunction(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/Core/Classes/Commandlet.uc b/Development/Src/Core/Classes/Commandlet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/Component.uc b/Development/Src/Core/Classes/Component.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/DistributionFloat.uc b/Development/Src/Core/Classes/DistributionFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/DistributionVector.uc b/Development/Src/Core/Classes/DistributionVector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/Factory.uc b/Development/Src/Core/Classes/Factory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/HelpCommandlet.uc b/Development/Src/Core/Classes/HelpCommandlet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/Interface.uc b/Development/Src/Core/Classes/Interface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Classes/Object.uc b/Development/Src/Core/Classes/Object.uc old mode 100755 new mode 100644 index 7449f48..e8ff619 --- a/Development/Src/Core/Classes/Object.uc +++ b/Development/Src/Core/Classes/Object.uc @@ -1,2205 +1,2225 @@ -/** - * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. - */ -//============================================================================= -// Object: The base class all objects. -// This is a built-in Unreal class and it shouldn't be modified by mod authors -//============================================================================= -class Object - abstract - native - noexport; - -//============================================================================= -// Unreal base structures. - -// Temporary UnrealScript->C++ mirrors. - -struct pointer -{ - var native const int Dummy; -}; - -struct {QWORD} qword -{ - var() native int A, B; -}; - -// MOD: Added this from Paladins -struct {DWORD} dword -{ - var() native int A; -}; - -//============================================================================= -// UObject variables. - -// Internal variables. -var native private const editconst noexport pointer VfTableObject; -var native private const editconst pointer HashNext; -var native private const editconst qword ObjectFlags; // This needs to be 8-byte aligned in 32-bit! -var native private const editconst pointer HashOuterNext; -var native private const editconst pointer StateFrame; -var native private const editconst noexport Object Linker; -var native private const editconst noexport pointer LinkerIndex; -var native private const editconst noexport int ObjectInternalInteger; -var native private const editconst noexport int NetIndex; -var native const editconst Object Outer; -var() native const editconst name Name; -var native const editconst class Class; -var() native const editconst Object ObjectArchetype; -//////////////////////////////////////////////////////////////////////////////////////////////// -// IMPORTANT: DO NOT ADD _ANY_ MEMBERS AFTER ObjectArchetype! Add ALL members before it, as the -// C++ code expects it to be the final member of UObject! (see UObject::InitProperties) -//////////////////////////////////////////////////////////////////////////////////////////////// - - -//============================================================================= -// Unreal base structures continued. - -struct {DOUBLE} double -{ - var native const int A; - var native const int B; -}; - -struct ThreadSafeCounter -{ - var native const int Value; -}; - -struct BitArray_Mirror -{ - var native const pointer IndirectData; - var native const int InlineData[4]; - var native const int NumBits; - var native const int MaxBits; -}; - -struct SparseArray_Mirror -{ - var native const array Elements; - var native const BitArray_Mirror AllocationFlags; - var native const int FirstFreeIndex; - var native const int NumFreeIndices; -}; - -struct Set_Mirror -{ - var native const SparseArray_Mirror Elements; - var native const int InlineHash; - var native const pointer Hash; - var native const int HashSize; -}; - -struct Map_Mirror -{ - var native const Set_Mirror Pairs; -}; - -struct MultiMap_Mirror -{ - var native const Set_Mirror Pairs; -}; - -struct UntypedBulkData_Mirror -{ - var native const pointer VfTable; - var native const int BulkDataFlags; - var native const int ElementCount; - var native const int BulkDataOffsetInFile; - var native const int BulkDataSizeOnDisk; - var native const int SavedBulkDataFlags; - var native const int SavedElementCount; - var native const int SavedBulkDataOffsetInFile; - var native const int SavedBulkDataSizeOnDisk; - var native const pointer BulkData; - var native const int LockStatus; - var native const pointer AttachedAr; - var native const int bShouldFreeOnEmpty; -}; - -struct RenderCommandFence_Mirror -{ - var native const transient int NumPendingFences; -}; - -// needs to match FColorVertexBuffer in C++ -struct FColorVertexBuffer_Mirror -{ - var native const pointer VfTable; - var native const pointer VertexData; - var private const int Data; - var private const int Stride; - var private const int NumVertices; -}; - -struct IndirectArray_Mirror -{ - // FScriptArray - var native const pointer Data; - var native const int ArrayNum; - var native const int ArrayMax; -}; - -struct Array_Mirror -{ - // FScriptArray - var native const pointer Data; - var native const int ArrayNum; - var native const int ArrayMax; -}; - -/** - * Structure mirroring an array of pointers using an inline allocator. - */ -struct InlinePointerArray_Mirror -{ - var private const pointer InlineData; - var private const Array_Mirror SecondaryData; -}; - -// A globally unique identifier. -struct immutable Guid -{ - var int A, B, C, D; -}; - -// A point or direction vector in 3d space. -struct immutable Vector -{ - var() float X, Y, Z; -}; - -struct immutable Vector4 -{ - var() float X, Y, Z, W; -}; - -struct immutable Vector2D -{ - var() float X, Y; -}; - -struct immutable TwoVectors -{ - var() Vector v1, v2; -}; - -// A plane definition in 3d space. -struct immutable Plane extends Vector -{ - var() float W; -}; - -// An orthogonal rotation in 3d space. -struct immutable Rotator -{ - var() int Pitch, Yaw, Roll; -}; - -// Quaternion -struct immutable Quat -{ - var() float X, Y, Z, W; -}; - -// A packed normal. -struct immutable PackedNormal -{ - var() byte X, Y, Z, W; -}; - -/** - * Screen coordinates - */ -struct immutable IntPoint -{ - var() int X, Y; -}; - -/** - * A vector of spherical harmonic coefficients. - */ -struct SHVector -{ - // Note: The number of SH coefficients must match NUM_SH_BASIS in SHMath.h! - // The struct must also be padded to be 16-byte aligned. - var() float V[9]; - var float Padding[3]; -}; - -/** - * A vector of spherical harmonic coefficients for each color component. - */ -struct SHVectorRGB -{ - var() SHVector R; - var() SHVector G; - var() SHVector B; -}; - -/** - * Point Of View type. - */ -struct TPOV -{ - /** Location */ - var() Vector Location; - /** Rotation */ - var() Rotator Rotation; - /** FOV angle */ - var() float FOV; - - structdefaultproperties - { - FOV=90.f - } -}; - -/** Various ways to interpolate TAlphaBlend. */ -enum AlphaBlendType -{ - ABT_Linear, - ABT_Cubic, - ABT_Sinusoidal, - ABT_EaseInOutExponent2, - ABT_EaseInOutExponent3, - ABT_EaseInOutExponent4, - ABT_EaseInOutExponent5, -}; - -/** Structure to encompass Alpha Interpolation. */ -struct TAlphaBlend -{ - /** Internal Lerped value for Alpha */ - var const FLOAT AlphaIn; - /** Resulting Alpha value, between 0.f and 1.f */ - var const FLOAT AlphaOut; - /** Target to reach */ - var() FLOAT AlphaTarget; - /** Default blend time */ - var() FLOAT BlendTime; - /** Time left to reach target */ - var const FLOAT BlendTimeToGo; - /** Type of blending used (Linear, Cubic, etc.) */ - var() AlphaBlendType BlendType; - - structdefaultproperties - { - BlendTime=0.67f - BlendType=ABT_Linear - } -}; - -// Generic axis enum. -enum EAxis -{ - AXIS_NONE, // = 0 - AXIS_X, // = 1 - AXIS_Y, // = 2 - AXIS_BLANK, // = 3. Need this because AXIS enum is used as bitfield in C++... - AXIS_Z // 4 -}; - -enum EInputEvent -{ - IE_Pressed, - IE_Released, - IE_Repeat, - IE_DoubleClick, - IE_Axis -}; - -enum EAspectRatioAxisConstraint -{ - AspectRatio_MaintainYFOV, - AspectRatio_MaintainXFOV, - AspectRatio_MajorAxisFOV -}; - -// A color. -struct immutable Color -{ - var() byte B, G, R, A; -}; - -// A linear color. -struct immutable LinearColor -{ - var() float R, G, B, A; - - structdefaultproperties - { - A=1.f - } -}; - -// A bounding box. -struct immutable Box -{ - var() vector Min, Max; - var byte IsValid; -}; - -// A bounding box and bounding sphere with the same origin. -struct BoxSphereBounds -{ - var() vector Origin; - var() vector BoxExtent; - var() float SphereRadius; -}; - -// a 4x4 matrix -struct immutable Matrix -{ - var() Plane XPlane; - var() Plane YPlane; - var() Plane ZPlane; - var() Plane WPlane; -}; - -struct Cylinder -{ - var float Radius, Height; -}; - -// Interpolation data types. -enum EInterpCurveMode -{ - CIM_Linear, - CIM_CurveAuto, - CIM_Constant, - CIM_CurveUser, - CIM_CurveBreak, - CIM_CurveAutoClamped -}; - -// Interpolation data types. -enum EInterpMethodType -{ - IMT_UseFixedTangentEvalAndNewAutoTangents, - IMT_UseFixedTangentEval, - IMT_UseBrokenTangentEval -}; - -struct InterpCurvePointFloat -{ - var() float InVal; - var() float OutVal; - var() float ArriveTangent; - var() float LeaveTangent; - var() EInterpCurveMode InterpMode; -}; -struct InterpCurveFloat -{ - var() array Points; - var EInterpMethodType InterpMethod; -}; - -struct InterpCurvePointVector2D -{ - var() float InVal; - var() vector2d OutVal; - var() vector2d ArriveTangent; - var() vector2d LeaveTangent; - var() EInterpCurveMode InterpMode; -}; -struct InterpCurveVector2D -{ - var() array Points; - var EInterpMethodType InterpMethod; -}; - -struct InterpCurvePointVector -{ - var() float InVal; - var() vector OutVal; - var() vector ArriveTangent; - var() vector LeaveTangent; - var() EInterpCurveMode InterpMode; -}; -struct InterpCurveVector -{ - var() array Points; - var EInterpMethodType InterpMethod; -}; - -struct InterpCurvePointTwoVectors -{ - var() float InVal; - var() twovectors OutVal; - var() twovectors ArriveTangent; - var() twovectors LeaveTangent; - var() EInterpCurveMode InterpMode; -}; -struct InterpCurveTwoVectors -{ - var() array Points; - var EInterpMethodType InterpMethod; -}; - -struct InterpCurvePointQuat -{ - var() float InVal; - var() quat OutVal; - var() quat ArriveTangent; - var() quat LeaveTangent; - var() EInterpCurveMode InterpMode; -}; -struct InterpCurveQuat -{ - var() array Points; - var EInterpMethodType InterpMethod; -}; - -struct InterpCurvePointLinearColor -{ - var() float InVal; - var() linearcolor OutVal; - var() linearcolor ArriveTangent; - var() linearcolor LeaveTangent; - var() EInterpCurveMode InterpMode; -}; -struct InterpCurveLinearColor -{ - var() array Points; - var EInterpMethodType InterpMethod; -}; - -// Base class for raw (baked out) Distribution type -struct RawDistribution -{ - var byte Type; - var byte Op; - var byte LookupTableNumElements; - var byte LookupTableChunkSize; - var array LookupTable; - var float LookupTableTimeScale; - var float LookupTableStartTime; -}; - -/** A fence used to track rendering thread command execution. */ -struct RenderCommandFence -{ - var private native const int NumPendingFences; -}; - -/** Mirror for FElementId used in generic Octree */ -struct OctreeElementId -{ - var private native const pointer Node; - var private native const int ElementIndex; -}; - -/** Bone Atom definition */ -struct BoneAtom -{ - var quat Rotation; - var vector Translation; - var float Scale; -}; - -//============================================================================= -// Constants. - -const MaxInt = 0x7fffffff; -const Pi = 3.1415926535897932; -const RadToDeg = 57.295779513082321600; // 180 / Pi -const DegToRad = 0.017453292519943296; // Pi / 180 -const UnrRotToRad = 0.00009587379924285; // Pi / 32768 -const RadToUnrRot = 10430.3783504704527; // 32768 / Pi -const DegToUnrRot = 182.0444; -const UnrRotToDeg = 0.00549316540360483; -const INDEX_NONE = -1; - -// Aspect ratio constants -const AspectRatio4x3 = 1.33333; -const AspectRatio5x4 = 1.25; -const AspectRatio16x9 = 1.77778; -const InvAspectRatio4x3 = 0.75; -const InvAspectRatio5x4 = 0.8; -const InvAspectRatio16x9 = 0.56249; - -//============================================================================= -// Logging Severity Levels. - -/** - * Determines which ticking group an Actor/Component belongs to - */ -enum ETickingGroup -{ - /** - * Any item that needs to be updated before asynchronous work is done - */ - TG_PreAsyncWork, - /** - * Any item that can be run in parallel of our async work - */ - TG_DuringAsyncWork, - /** - * Any item that needs the async work to be done before being updated - */ - TG_PostAsyncWork, - /** - * Any item that needs the update work to be done before being ticked - */ - TG_PostUpdateWork, - /** Special effects that need to be updated last */ - TG_EffectsUpdateWork -}; - - -/** - * These are the types of PerfMem RunResults you the system understands and can achieve. They are stored in the table as we - * will get "valid" numbers but we ran OOM. We want to list the numbers in the OOM case because there is probably something that - * jumped up to cause the OOM (e.g. vertex lighting). - **/ -enum EAutomatedRunResult -{ - ARR_Unknown, - ARR_OOM, - ARR_Passed, -}; - - -/** - * Different modes for the DebugBreak() method. - */ -enum EDebugBreakType -{ - DEBUGGER_NativeOnly, - - /** not yet implemented */ - DEBUGGER_ScriptOnly, - /** not yet implemented */ - DEBUGGER_Both, -}; - -//============================================================================= -// Basic native operators and functions. - - -// -// Bool operators. -// - -native(129) static final preoperator bool ! ( bool A ); -native(242) static final operator(24) bool == ( bool A, bool B ); -native(243) static final operator(26) bool != ( bool A, bool B ); -native(130) static final operator(30) bool && ( bool A, skip bool B ); -native(131) static final operator(30) bool ^^ ( bool A, bool B ); -native(132) static final operator(32) bool || ( bool A, skip bool B ); - - -// -// Byte operators. -// - -native(133) static final operator(34) byte *= ( out byte A, byte B ); -native(198) static final operator(34) byte *= ( out byte A, float B ); -native(134) static final operator(34) byte /= ( out byte A, byte B ); -native(135) static final operator(34) byte += ( out byte A, byte B ); -native(136) static final operator(34) byte -= ( out byte A, byte B ); -native(137) static final preoperator byte ++ ( out byte A ); -native(138) static final preoperator byte -- ( out byte A ); -native(139) static final postoperator byte ++ ( out byte A ); -native(140) static final postoperator byte -- ( out byte A ); - - -// -// Integer operators. -// - -native(141) static final preoperator int ~ ( int A ); -native(143) static final preoperator int - ( int A ); -native(144) static final operator(16) int * ( int A, int B ); -native(145) static final operator(16) int / ( int A, int B ); -native(253) static final operator(18) int % ( int A, int B ); -native(146) static final operator(20) int + ( int A, int B ); -native(147) static final operator(20) int - ( int A, int B ); -native(148) static final operator(22) int << ( int A, int B ); -native(149) static final operator(22) int >> ( int A, int B ); -native(196) static final operator(22) int >>>( int A, int B ); -native(150) static final operator(24) bool < ( int A, int B ); -native(151) static final operator(24) bool > ( int A, int B ); -native(152) static final operator(24) bool <= ( int A, int B ); -native(153) static final operator(24) bool >= ( int A, int B ); -native(154) static final operator(24) bool == ( int A, int B ); -native(155) static final operator(26) bool != ( int A, int B ); -native(156) static final operator(28) int & ( int A, int B ); -native(157) static final operator(28) int ^ ( int A, int B ); -native(158) static final operator(28) int | ( int A, int B ); -native(159) static final operator(34) int *= ( out int A, float B ); -native(160) static final operator(34) int /= ( out int A, float B ); -native(161) static final operator(34) int += ( out int A, int B ); -native(162) static final operator(34) int -= ( out int A, int B ); -native(163) static final preoperator int ++ ( out int A ); -native(164) static final preoperator int -- ( out int A ); -native(165) static final postoperator int ++ ( out int A ); -native(166) static final postoperator int -- ( out int A ); - - -// -// Integer functions. -// - -/** Rand will give you a value between 0 and Max -1 **/ -native(167) static final Function int Rand ( int Max ); -native(249) static final function int Min ( int A, int B ); -native(250) static final function int Max ( int A, int B ); -native(251) static final function int Clamp ( int V, int A, int B ); -native static final function string ToHex ( int A ); - - -// -// Float operators. -// - -native(169) static final preoperator float - ( float A ); -native(170) static final operator(12) float ** ( float Base, float Exp ); -native(171) static final operator(16) float * ( float A, float B ); -native(172) static final operator(16) float / ( float A, float B ); -native(173) static final operator(18) float % ( float A, float B ); -native(174) static final operator(20) float + ( float A, float B ); -native(175) static final operator(20) float - ( float A, float B ); -native(176) static final operator(24) bool < ( float A, float B ); -native(177) static final operator(24) bool > ( float A, float B ); -native(178) static final operator(24) bool <= ( float A, float B ); -native(179) static final operator(24) bool >= ( float A, float B ); -native(180) static final operator(24) bool == ( float A, float B ); -native(210) static final operator(24) bool ~= ( float A, float B ); -native(181) static final operator(26) bool != ( float A, float B ); -native(182) static final operator(34) float *= ( out float A, float B ); -native(183) static final operator(34) float /= ( out float A, float B ); -native(184) static final operator(34) float += ( out float A, float B ); -native(185) static final operator(34) float -= ( out float A, float B ); - -// -// Float functions. -// - -native(186) static final function float Abs ( float A ); -native(187) static final function float Sin ( float A ); -native static final function float Asin ( float A ); -native(188) static final function float Cos ( float A ); -native static final function float Acos ( float A ); -native(189) static final function float Tan ( float A ); -native(190) static final function float Atan ( float A ); -native static final function float Atan2 ( float A, float B ); -native(191) static final function float Exp ( float A ); -native(192) static final function float Loge ( float A ); -native(193) static final function float Sqrt ( float A ); -native(194) static final function float Square( float A ); -native(195) static final function float FRand (); -native(244) static final function float FMin ( float A, float B ); -native(245) static final function float FMax ( float A, float B ); -native(246) static final function float FClamp( float V, float A, float B ); -native(247) static final function float Lerp ( float A, float B, float Alpha ); -native(199) static final function int Round ( float A ); -native static final function int FFloor ( float A ); -native static final function int FCeil(float A); - -/** - * Cubic Spline interpolation. - * @param P end points - * @param T tangent directions at end points - * @param Alpha distance along spline - * @return evaluated value. - */ -native static final function float FCubicInterp(float P0, float T0, float P1, float T1, float A); - -/** - * Interpolates with ease-in (smoothly approaches B). - * @param A Value to interpolate from. - * @param B Value to interpolate to. - * @param Alpha Interpolant. - * @param Exp Exponent. Higher values result in more rapid deceleration. - * @return Interpolated value. - */ -static final function float FInterpEaseIn(float A, float B, float Alpha, float Exp) -{ - return Lerp(A, B, Alpha**Exp); -} - -/** - * Interpolates with ease-out (smoothly departs A). - * @param A Value to interpolate from. - * @param B Value to interpolate to. - * @param Alpha Interpolant. - * @param Exp Exponent. Higher values result in more rapid acceleration. - * @return Interpolated value. - */ -static final function float FInterpEaseOut(float A, float B, float Alpha, float Exp) -{ - return Lerp(A, B, Alpha**(1/Exp)); -} - -/** - * Interpolates with both ease-in and ease-out (smoothly departs A, smoothly approaches B). - * @param A Value to interpolate from. - * @param B Value to interpolate to. - * @param Alpha Interpolant. - * @param Exp Exponent. Higher values result in more rapid acceleration adn deceleration. - * @return Interpolated value. - */ -native static final function float FInterpEaseInOut(float A, float B, float Alpha, float Exp); - - -/** Return a random number within the given range. */ -static final simulated function float RandRange( float InMin, float InMax ) -{ - return InMin + (InMax - InMin) * FRand(); -} - - -/** - * Returns the relative percentage position Value is in the range [Min,Max]. - * Examples: - * - GetRangeValueByPct( 2, 4, 2 ) == 0 - * - GetRangeValueByPct( 2, 4, 4 ) == 1 - * - GetRangeValueByPct( 2, 4, 3 ) == 0.5 - * - * @param Min Min limit - * @param Max Max limit - * @param Value Value between Range. - * - * @return relative percentage position Value is in the range [Min,Max]. - */ - -static final simulated function float FPctByRange( float Value, float InMin, float InMax ) -{ - return (Value - InMin) / (InMax - InMin); -} - - -/** - * Tries to reach Target based on distance from Current position, - * giving a nice smooth feeling when tracking a position. - * (Doesn't work well when target teleports) - * - * @param Current Actual position - * @param Target Target position - * @param DeltaTime time since last tick - * @param InterpSpeed Interpolation speed - * @return new interpolated position - */ -native static final function float FInterpTo( float Current, float Target, float DeltaTime, float InterpSpeed ); -/** Same as above, but using a constant step */ -native static final function float FInterpConstantTo( float Current, float Target, float DeltaTime, float InterpSpeed ); - - -// -// Vector operators. -// - -native(211) static final preoperator vector - ( vector A ); -native(212) static final operator(16) vector * ( vector A, float B ); -native(213) static final operator(16) vector * ( float A, vector B ); -native(296) static final operator(16) vector * ( vector A, vector B ); -native(214) static final operator(16) vector / ( vector A, float B ); -native(215) static final operator(20) vector + ( vector A, vector B ); -native(216) static final operator(20) vector - ( vector A, vector B ); -native(275) static final operator(22) vector << ( vector A, rotator B ); -native(276) static final operator(22) vector >> ( vector A, rotator B ); -native(217) static final operator(24) bool == ( vector A, vector B ); -native(218) static final operator(26) bool != ( vector A, vector B ); -native(219) static final operator(16) float Dot ( vector A, vector B ); -native(220) static final operator(16) vector Cross ( vector A, vector B ); -native(221) static final operator(34) vector *= ( out vector A, float B ); -native(297) static final operator(34) vector *= ( out vector A, vector B ); -native(222) static final operator(34) vector /= ( out vector A, float B ); -native(223) static final operator(34) vector += ( out vector A, vector B ); -native(224) static final operator(34) vector -= ( out vector A, vector B ); - -// -// Vector functions. -// - -native(225) static final function float VSize ( vector A ); -native static final function float VSize2D ( vector A ); -native(228) static final function float VSizeSq ( vector A ); -native static final function float VSizeSq2D ( vector A ); -native(226) static final function vector Normal ( vector A ); -native(227) static final function vector Normal2D(vector A); -native static final function vector VLerp ( vector A, vector B, float Alpha ); -native(252) static final function vector VRand ( ); -native static final function vector VRandCone ( vector Dir, float ConeHalfAngleRadians ); -native static final function vector VRandCone2 ( vector Dir, float HorizontalConeHalfAngleRadians, float VerticalConeHalfAngleRadians ); -native(300) static final function vector MirrorVectorByNormal( vector InVect, vector InNormal ); -native(1500) static final function Vector ProjectOnTo( Vector x, Vector y ); -native(1501) static final function bool IsZero( Vector A ); - -/** - * Tries to reach Target based on distance from Current position, - * giving a nice smooth feeling when tracking a location. - * (Doesn't work well when target teleports) - * - * @param Current Actual location - * @param Target Target location - * @param DeltaTime time since last tick - * @param InterpSpeed Interpolation speed - * @return new interpolated position - */ - -native static final function vector VInterpTo( vector Current, vector Target, float DeltaTime, float InterpSpeed ); - -/** Clamps a vector to not be longer than MaxLength. */ -native static final function vector ClampLength( vector V, float MaxLength ); - -/** Returns dot product of two vectors while ignoring the Z component. */ -native static final function float NoZDot( vector A, vector B ); - -simulated final function bool InCylinder( Vector Origin, Rotator Dir, float Width, Vector A, optional bool bIgnoreZ ) -{ - local Vector B; - local Vector VDir; - - if( bIgnoreZ ) - { - Origin.Z = 0; - Dir.Pitch = 0; - A.Z = 0; - } - - VDir = Vector(Dir); - B = (((A - Origin) DOT VDir) * VDir) + Origin; - - if( VSizeSq(B-A) <= Width * Width ) - { - return TRUE; - } - - return FALSE; -} - -// -// Rotator operators and functions. -// - -native(142) static final operator(24) bool == ( rotator A, rotator B ); -native(203) static final operator(26) bool != ( rotator A, rotator B ); -native(287) static final operator(16) rotator * ( rotator A, float B ); -native(288) static final operator(16) rotator * ( float A, rotator B ); -native(289) static final operator(16) rotator / ( rotator A, float B ); -native(290) static final operator(34) rotator *= ( out rotator A, float B ); -native(291) static final operator(34) rotator /= ( out rotator A, float B ); -native(316) static final operator(20) rotator + ( rotator A, rotator B ); -native(317) static final operator(20) rotator - ( rotator A, rotator B ); -native(318) static final operator(34) rotator += ( out rotator A, rotator B ); -native(319) static final operator(34) rotator -= ( out rotator A, rotator B ); -native static final operator(24) bool ClockwiseFrom( int A, int B ); - -native(229) static final function GetAxes( rotator A, out vector X, out vector Y, out vector Z ); -native(230) static final function GetUnAxes( rotator A, out vector X, out vector Y, out vector Z ); -native static final function vector GetRotatorAxis( rotator A, int Axis ); -native(320) static final function Rotator RotRand( optional bool bRoll ); -native static final function Rotator OrthoRotation( vector X, vector Y, vector Z ); -native static final function Rotator Normalize( rotator Rot ); -native static final function Rotator RLerp( Rotator A, Rotator B, float Alpha, optional bool bShortestPath ); -/** Given rotation R in the space defined by RBasis, return R in "world" space */ -native static final function Rotator RTransform(rotator R, rotator RBasis); - - -/** - * Tries to reach Target based on distance from Current position, - * giving a nice smooth feeling when tracking a position. - * (Doesn't work well when target teleports) - * - * @param Current Actual position - * @param Target Target position - * @param DeltaTime time since last tick - * @param InterpSpeed Interpolation speed, if !bConstantInterpSpeed will perform a continuous lerp, otherwise will interp at constant speed - * @return new interpolated position - */ - -native static final function Rotator RInterpTo( rotator Current, rotator Target, float DeltaTime, float InterpSpeed, optional bool bConstantInterpSpeed ); - - -/** - * Returns a Rotator axis within the [-32768,+32767] range in float - * - * @param RotAxis, axis of the rotator - * @return Normalized axis value, within the [-32768,+32767] range. - */ -native static final function int NormalizeRotAxis(int Angle); - - -/** Gives the rotation difference between two Rotators, taking the shortest route between them (in degrees). */ -native static final function float RDiff( Rotator A, Rotator B ); - -/** - * returns Rotator Size (vector definition applied to rotators) - * @param Rotator R - * @returns mathematical vector length: Sqrt(Pitch^2 + Yaw^2 + Roll^2) - */ - -native static final function float RSize(rotator R); - - - -/** - * Clamp a rotation Axis. - * The ViewAxis rotation component must be normalized (within the [-32768,+32767] range). - * This function will set out_DeltaViewAxis to the delta needed to bring ViewAxis within the [MinLimit,MaxLimit] range. - * - * @param ViewAxis Rotation Axis to clamp - * @input out_DeltaViewAxis Delta Rotation Axis to be added to ViewAxis rotation (from ProcessViewRotation). - * Set to be the Delta to bring ViewAxis within the [MinLimit,MaxLimit] range. - * @param MaxLimit Maximum for Clamp. ViewAxis will not exceed this. - * @param MinLimit Minimum for Clamp. ViewAxis will not go below this. - */ - -static final simulated function ClampRotAxis -( - int ViewAxis, - out int out_DeltaViewAxis, - int MaxLimit, - int MinLimit -) -{ - local int DesiredViewAxis; - - ViewAxis = NormalizeRotAxis( ViewAxis ); - DesiredViewAxis = ViewAxis + out_DeltaViewAxis; - - if( DesiredViewAxis > MaxLimit ) - { - DesiredViewAxis = MaxLimit; - } - - if( DesiredViewAxis < MinLimit ) - { - DesiredViewAxis = MinLimit; - } - - out_DeltaViewAxis = DesiredViewAxis - ViewAxis; -} - -/** - * Clamp Rotator Axis. - * - * @param Current Input axis angle. - * @param Center Center of allowed angle. - * @param MaxDelta Maximum delta allowed. - * @return axis angle clamped between [Center-MaxDelta, Center+MaxDelta] - */ -static final simulated function int ClampRotAxisFromBase(int Current, int Center, int MaxDelta) -{ - local int DeltaFromCenter; - - DeltaFromCenter = NormalizeRotAxis(Current - Center); - - if( DeltaFromCenter > MaxDelta ) - { - Current = Center + MaxDelta; - } - else if( DeltaFromCenter < -MaxDelta ) - { - Current = Center - MaxDelta; - } - - return Current; -}; - - -/** - * Clamp Rotator Axis. - * - * @param Current Input axis angle. - * @param Min Min allowed angle. - * @param Max Max allowed angle. - * @return axis angle clamped between [Min, Max] - */ -static final simulated function int ClampRotAxisFromRange(int Current, int Min, int Max) -{ - local int Delta, Center; - - Delta = NormalizeRotAxis(Max - Min) / 2; - Center = NormalizeRotAxis(Max + Min) / 2; - - return ClampRotAxisFromBase(Current, Center, Delta); -}; - - -/** - * Smooth clamp a rotator axis. - * This is mainly used to bring smoothly a rotator component within a certain range [MinLimit,MaxLimit]. - * For example to limit smoothly the player's ViewRotation Pitch or Yaw component. - * - * @param fDeltaTime Elapsed time since this function was last called, for interpolation. - * @param ViewAxis Rotator's Axis' current angle. - * @input out_DeltaViewAxis Delta Value of Axis to be added to ViewAxis (through PlayerController::ProcessViewRotation(). - * This value gets modified. - * @param MaxLimit Up angle limit. - * @param MinLimit Negative angle limit (value must be negative) - * @param InterpolationSpeed Interpolation Speed to bring ViewAxis within the [MinLimit,MaxLimit] range. - */ - -static final simulated function bool SClampRotAxis -( - float DeltaTime, - int ViewAxis, - out int out_DeltaViewAxis, - int MaxLimit, - int MinLimit, - float InterpolationSpeed -) -{ - local bool bClamped; - - // make sure rotation components are normalized - out_DeltaViewAxis = NormalizeRotAxis( out_DeltaViewAxis ); - ViewAxis = NormalizeRotAxis( ViewAxis ); - - // forbid player from going beyond limits through fDeltaViewAxis - if( ViewAxis <= MaxLimit && (ViewAxis + out_DeltaViewAxis) >= MaxLimit ) - { - out_DeltaViewAxis = MaxLimit - ViewAxis; - bClamped = TRUE; - } - else if( ViewAxis > MaxLimit ) - { - // if players goes counter interpolation, ignore input - if( out_DeltaViewAxis > 0 ) - { - out_DeltaViewAxis = 0.f; - } - // if above limit, interpolate back to within limits - if( (ViewAxis + out_DeltaViewAxis) > MaxLimit ) - { - out_DeltaViewAxis = FInterpTo(ViewAxis, MaxLimit, DeltaTime, InterpolationSpeed ) - ViewAxis - 1; - } - } - // forbid player from going beyond limits through fDeltaViewAxis - else if( ViewAxis >= MinLimit && (ViewAxis + out_DeltaViewAxis) <= MinLimit ) - { - out_DeltaViewAxis = MinLimit - ViewAxis; - bClamped = TRUE; - } - else if( ViewAxis < MinLimit ) - { - // if players goes counter interpolation, ignore input - if( out_DeltaViewAxis < 0 ) - { - out_DeltaViewAxis = 0.f; - } - // if above limit, interpolate back to within limits - if( (ViewAxis + out_DeltaViewAxis) < MinLimit ) - { - out_DeltaViewAxis += FInterpTo(ViewAxis, MinLimit, DeltaTime, InterpolationSpeed ) - ViewAxis + 1; - } - } - return bClamped; -} - -/** Create a Rotation from independant Pitch, Yaw, Roll */ -static final function Rotator MakeRotator(int Pitch, int Yaw, int Roll) -{ - local rotator R; - - R.Pitch = Pitch; - R.Yaw = Yaw; - R.Roll = Roll; - return R; -} - -// -// String operators. -// - -native(112) static final operator(40) string $ ( coerce string A, coerce string B ); -native(168) static final operator(40) string @ ( coerce string A, coerce string B ); -native(115) static final operator(24) bool < ( string A, string B ); -native(116) static final operator(24) bool > ( string A, string B ); -native(120) static final operator(24) bool <= ( string A, string B ); -native(121) static final operator(24) bool >= ( string A, string B ); -native(122) static final operator(24) bool == ( string A, string B ); -native(123) static final operator(26) bool != ( string A, string B ); -native(124) static final operator(24) bool ~= ( string A, string B ); -native(322) static final operator(44) string $= ( out string A, coerce string B ); -native(323) static final operator(44) string @= ( out string A, coerce string B ); -native(324) static final operator(45) string -= ( out string A, coerce string B ); - - -// -// String functions. -// - -native(125) static final function int Len ( coerce string S ); -native(126) static final function int InStr ( coerce string S, coerce string t, optional bool bSearchFromRight, optional bool bIgnoreCase, optional int StartPos ); -native(127) static final function string Mid ( coerce string S, int i, optional int j ); -native(128) static final function string Left ( coerce string S, int i ); -native(234) static final function string Right ( coerce string S, int i ); -native(235) static final function string Caps ( coerce string S ); -native(238) static final function string Locs ( coerce string S); -native(236) static final function string Chr ( int i ); -native(237) static final function int Asc ( string S ); -native(201) static final function string Repl ( coerce string Src, coerce string Match, coerce string With, optional bool bCaseSensitive ); - -/** - * Splits Text on the first Occurrence of Split and returns the remaining - * part of Text. - */ -static final function string Split(coerce string Text, coerce string SplitStr, optional bool bOmitSplitStr) -{ - local int pos; - pos = InStr(Text,SplitStr); - if (pos != -1) - { - if (bOmitSplitStr) - { - return Mid(Text,pos+Len(SplitStr)); - } - return Mid(Text,pos); - } - else - { - return Text; - } -} - -/** Get right most number from an actor name (ie Text == "CoverLink_45" returns "45") */ -static final function string GetRightMost( coerce string Text ) -{ - local int Idx; - Idx = InStr(Text,"_"); - while (Idx != -1) - { - Text = Mid(Text,Idx+1,Len(Text)); - Idx = InStr(Text,"_"); - } - return Text; -} - -/** - * Create a single string from an array of strings, using the delimiter specified, optionally ignoring blank members - * - * @param StringArray the array of strings to join into the single string - * @param out_Result [out] will contain a single string containing all elements of the array, separated by the delimiter specified - * @param Delim the delimiter to insert where array elements are concatenated - * @param bIgnoreBlanks TRUE to skip elements which contain emtpy strings - */ -static final function JoinArray(array StringArray, out string out_Result, optional string delim = ",", optional bool bIgnoreBlanks = true) -{ - local int i; - - out_Result = ""; - for (i = 0; i < StringArray.Length; i++) - { - if ( (StringArray[i] != "") || (!bIgnoreBlanks) ) - { - if (out_Result != "" || (!bIgnoreBlanks && i > 0) ) - out_Result $= delim; - - out_Result $= StringArray[i]; - } - } -} - -/** - * Breaks up a delimited string into elements of a string array. - * - * @param BaseString - The string to break up - * @param Pieces - The array to fill with the string pieces - * @param Delim - The string to delimit on - * @param bCullEmpty - If true, empty strings are not added to the array - */ -native static final function ParseStringIntoArray(string BaseString, out array Pieces, string Delim, bool bCullEmpty); - -/** - * Wrapper for splitting a string into an array of strings using a single expression. - */ -static final function array SplitString( string Source, optional string Delimiter=",", optional bool bCullEmpty ) -{ - local array Result; - ParseStringIntoArray(Source, Result, Delimiter, bCullEmpty); - return Result; -} - -/** - * Returns the full path name of the specified object (including package and groups), ie CheckObject::GetPathName(). - */ -native static final function string PathName(Object CheckObject); - - -// -// Object operators and functions. -// - -native(114) static final operator(24) bool == ( Object A, Object B ); -native(119) static final operator(26) bool != ( Object A, Object B ); - -native static final operator(24) bool == ( Interface A, Interface B ); -native static final operator(26) bool != ( Interface A, Interface B ); - -/** - * Determine if a class is a child of another class. - * - * @return TRUE if TestClass == ParentClass, or if TestClass is a child of ParentClass; FALSE otherwise, or if either - * the value for either parameter is 'None'. - */ -native(258) static final function bool ClassIsChildOf( class TestClass, class ParentClass ); -native(197) final function bool IsA( name ClassName ); - - -// -// Name operators. -// - -native(254) static final operator(24) bool == ( name A, name B ); -native(255) static final operator(26) bool != ( name A, name B ); - -// -// Matrix operators and functions -// -native static final operator(34) matrix * (Matrix A, Matrix B); - -native static final function vector TransformVector(Matrix TM, vector A); -native static final function vector InverseTransformVector(Matrix TM, vector A); -native static final function vector TransformNormal(Matrix TM, vector A); -native static final function vector InverseTransformNormal(Matrix TM, vector A); -native static final function matrix MakeRotationTranslationMatrix(vector Translation, Rotator Rotation); -native static final function matrix MakeRotationMatrix(Rotator Rotation); -native static final function rotator MatrixGetRotator(Matrix TM); -native static final function vector MatrixGetOrigin(Matrix TM); -native static final function vector MatrixGetAxis(Matrix TM, EAxis Axis); - -// -// Quaternion functions -// - -native static final function Quat QuatProduct( Quat A, Quat B ); -native static final function float QuatDot( Quat A, Quat B ); -native static final function Quat QuatInvert( Quat A ); -native static final function vector QuatRotateVector( Quat A, vector B ); -native static final function Quat QuatFindBetween( Vector A, Vector B ); -native static final function Quat QuatFromAxisAndAngle( Vector Axis, Float Angle ); -native static final function Quat QuatFromRotator( rotator A ); -native static final function rotator QuatToRotator( Quat A ); -native static final function Quat QuatSlerp( Quat A, Quat B, float Alpha, optional bool bShortestPath ); - -native(270) static final operator(16) Quat + (Quat A, Quat B); -native(271) static final operator(16) Quat - (Quat A, Quat B); - -// -// Vector2D functions -// - -native static final operator(16) vector2d + (vector2d A, vector2d B); -native static final operator(16) vector2d - (vector2d A, vector2d B); -native static final operator(16) vector2d * (vector2d A, float B); -native static final operator(16) vector2d / (vector2d A, float B ); -native static final operator(34) vector2d *= (out vector2d A, float B); -native static final operator(34) vector2d /= (out vector2d A, float B); -native static final operator(34) vector2d += (out vector2d A, vector2d B); -native static final operator(34) vector2d -= (out vector2d A, vector2d B); - - -/** - * Returns the value in the Range, relative to Pct. - * Examples: - * - GetRangeValueByPct( Range, 0.f ) == Range.X - * - GetRangeValueByPct( Range, 1.f ) == Range.Y - * - GetRangeValueByPct( Range, 0.5 ) == (Range.X+Range.Y)/2 - * - * @param Range Range of values. [Range.X,Range.Y] - * @param Pct Relative position in range in percentage. [0,1] - * - * @return the value in the Range, relative to Pct. - */ -static final simulated function float GetRangeValueByPct( Vector2D Range, float Pct ) -{ - return ( Range.X + (Range.Y-Range.X) * Pct ); -} - - -/** - * Returns the relative percentage position Value is in the Range. - * Examples: - * - GetRangeValueByPct( Range, Range.X ) == 0 - * - GetRangeValueByPct( Range, Range.Y ) == 1 - * - GetRangeValueByPct( Range, (Range.X+Range.Y)/2 ) == 0.5 - * - * @param Range Range of values. [Range.X,Range.Y] - * @param Value Value between Range. - * - * @return relative percentage position Value is in the Range. - */ -static final simulated function float GetRangePctByValue( Vector2D Range, float Value ) -{ - return (Range.Y == Range.X) ? Range.X : (Value - Range.X) / (Range.Y - Range.X); -} - -/** - * Useful for mapping a value in one value range to a different value range. Output is clamped to the OutputRange. - * e.g. given that velocities [50..100] correspond to a sound volume of [0.2..1.4], find the - * volume for a velocity of 77. - */ -static final simulated native function float GetMappedRangeValue(vector2d InputRange, vector2d OutputRange, float Value); - - -/** Construct a vector2d variable */ -static final function vector2d vect2d( float InX, float InY ) -{ - local vector2d NewVect2d; - - NewVect2d.X = InX; - NewVect2d.Y = InY; - return NewVect2d; -} - -/** Evaluate a float curve for an input of InVal */ -native static final function float EvalInterpCurveFloat(const out InterpCurveFloat FloatCurve, float InVal); -/** Evaluate a vector curve for an input of InVal */ -native static final function vector EvalInterpCurveVector(const out InterpCurveVector VectorCurve, float InVal); -/** Evaluate a vector2D curve for an input of InVal */ -native static final function vector2D EvalInterpCurveVector2D(const out InterpCurveVector2D Vector2DCurve, float InVal); - -// -// Color functions -// - -static final operator(20) color - (color A, color B) -{ - A.R -= B.R; - A.G -= B.G; - A.B -= B.B; - return A; -} - -static final operator(16) color * (float A, color B) -{ - B.R *= A; - B.G *= A; - B.B *= A; - return B; -} - -static final operator(16) color * (color A, float B) -{ - A.R *= B; - A.G *= B; - A.B *= B; - return A; -} - -static final operator(20) color + (color A, color B) -{ - A.R += B.R; - A.G += B.G; - A.B += B.B; - return A; -} - -/** Create a Color from independant RGBA components */ -static final function Color MakeColor(byte R, byte G, byte B, optional byte A) -{ - local Color C; - - C.R = R; - C.G = G; - C.B = B; - C.A = A; - return C; -} - -/** Util to interpolate between two colors */ -static final function Color LerpColor(Color A, Color B, float Alpha) -{ - local vector FloatA, FloatB, FloatResult; - local float AlphaA, AlphaB, FloatResultAlpha; - local color Result; - - FloatA.X = A.R; - FloatA.Y = A.G; - FloatA.Z = A.B; - AlphaA = A.A; - - FloatB.X = B.R; - FloatB.Y = B.G; - FloatB.Z = B.B; - AlphaB = B.A; - - FloatResult = FloatA + ((FloatB - FloatA) * FClamp(Alpha, 0.0, 1.0)); - FloatResultAlpha = AlphaA + ((AlphaB - AlphaA) * FClamp(Alpha, 0.0, 1.0)); - - Result.R = FloatResult.X; - Result.G = FloatResult.Y; - Result.B = FloatResult.Z; - Result.A = FloatResultAlpha; - - return Result; -} - -// -// Linear Color Functions -// - -/** Create a LinearColor from independant RGBA components. */ -static final function LinearColor MakeLinearColor( float R, float G, float B, float A ) -{ - local LinearColor LC; - - LC.R = R; - LC.G = G; - LC.B = B; - LC.A = A; - return LC; -} - -/** converts a color to a LinearColor - * @param OldColor the color to convert - * @return the matching LinearColor - */ -static final function LinearColor ColorToLinearColor(color OldColor) -{ - return MakeLinearColor(float(OldColor.R) / 255.0, float(OldColor.G) / 255.0, float(OldColor.B) / 255.0, float(OldColor.A) / 255.0); -} - -/** multiply the RGB components of a LinearColor by a float */ -static final operator(16) LinearColor * (LinearColor LC, float Mult) -{ - LC.R *= Mult; - LC.G *= Mult; - LC.B *= Mult; - return LC; -} - -/** subtract the RGB components of B from the RGB components of A */ -static final operator(20) LinearColor - (LinearColor A, LinearColor B) -{ - A.R -= B.R; - A.G -= B.G; - A.B -= B.B; - return A; -} - -//============================================================================= -// General functions. - - -// this define allows us to detect code that is directly calling functions that should only be called through a macro, such as -// LogInternal & WarnInternal -`if(`isdefined(FINAL_RELEASE)) - `if(`isdefined(FINAL_RELEASE_DEBUGCONSOLE)) - `define prevent_direct_calls - `else - `define prevent_direct_calls private - `endif -`else - `define prevent_direct_calls -`endif - -// -// Logging. -// -/** - * Writes a message to the log. This function should never be called directly - use the `log macro instead, which has the following signature: - * - * log( coerce string Msg, optional bool bCondition=true, optional name LogTag='ScriptLog' ); - * - * @param Msg the string to print to the log - * @param bCondition if specified, the message is only printed to the log if this condition is satisfied. - * @param LogTag if specified, the message will be prepended with this tag in the log file - * - */ -native(231) final static `{prevent_direct_calls} function LogInternal( coerce string S, optional name Tag ); - -/** - * Same as calling LogInternal(SomeMsg, 'Warning'); This function should never be called directly - use the `warn macro instead, which has the following signature: - * - * warn( coerce string Msg, optional bool bCondition=true ); - */ -native(232) final static `{prevent_direct_calls} function WarnInternal( coerce string S ); - -native static function string Localize( string SectionName, string KeyName, string PackageName ); - -/** given a path to a localized key of the form "Package.Section.Name", - * return the appropriate value from the localization file for the current language - */ -static final function string ParseLocalizedPropertyPath(string PathName) -{ - local array Pieces; - - ParseStringIntoArray(PathName, Pieces, ".", false); - if (Pieces.length >= 3) - { - return Localize(Pieces[1], Pieces[2], Pieces[0]); - } - else - { - return ""; - } -} - -/** - * Dumps the current script function stack to the log file, useful - * for debugging. - */ -native static final function ScriptTrace(); - - -/** - * Gets the current script function stack back so you can log it to a specific log location (e.g. AILog). - */ -native static final function String GetScriptTrace(); - - -/** - * Script-induced breakpoint. Useful for examining state with the debugger at a particular point in script. - * - * @param UserFlags user-defined flags to be used for e.g. indentifying different calls to DebugBreak in the same session - * @param DebuggerType C++ debugger, UScript debugger, or both - */ -native static final function DebugBreak( optional int UserFlags, optional EDebugBreakType DebuggerType=DEBUGGER_NativeOnly ); - -/** - * Returns the current calling function's name, useful for - * debugging. - */ - -native static final function Name GetFuncName(); - -/** - * Enables/disables script function call trace logging. - */ -native static final function SetUTracing( bool bShouldUTrace ); - -/** - * Returns whether script function call trace logging is currently enabled. - */ -native static final function bool IsUTracing(); - - -// -// Goto state and label. -// - -/** - * Transitions to the desired state and label if specified, - * generating the EndState event in the current state if applicable - * and BeginState in the new state, unless transitioning to the same - * state. - * - * @param NewState - new state to transition to - * - * @param Label - optional Label to jump to - * - * @param bForceEvents - optionally force EndState/BeginState to be - * called even if transitioning to the same state. - * - * @param bKeepStack - prevents state stack from being cleared - */ - -native(113) final function GotoState( optional name NewState, optional name Label, optional bool bForceEvents, optional bool bKeepStack ); - - -/** - * Checks the current state and determines whether or not this object - * is actively in the specified state. Note: This does work with - * inherited states. - * - * @param TestState - state to check for - * @param bTestStateStack - check the state stack? (does *NOT* work with inherited states in the stack) - * - * @return True if currently in TestState - */ - -native(281) final function bool IsInState( name TestState, optional bool bTestStateStack ); - - -/** - * Returns true if TestState derives from TestParentState. - */ - -native final function bool IsChildState(Name TestState, Name TestParentState); - - -/** - * Returns the current state name, useful for determining current - * state similar to IsInState. Note: This *doesn't* work with - * inherited states, in that it will only compare at the lowest - * state level. - * - * @return Name of the current state - */ - -native(284) final function name GetStateName(); - - -/** - * Pushes the new state onto the state stack, setting it as the - * current state until a matching PopState() is called. Note that - * multiple states may be pushed on top of each other. - * You may not push the same state multiple times. - * - * This will call PushedState when entering the state that was just - * pushed on the state stack. It will not call BeginState. - * @see event PushedState - * @see event ContinuedState - * - * @param NewState - name of the state to push on the stack - * - * @param NewLabel - optional name of the state label to jump to - */ - -native final function PushState(Name NewState, optional Name NewLabel); - - -/** - * Pops the current pushed state, returning execution to the previous - * state at the same code point. Note: PopState() will have no effect - * if no state has been pushed onto the stack. - * - * This will call PoppedState when entering the state that was just - * pushed on the state stack. It will not call EndState. - * @see event PoppedState - * @see event PausedState - * - * @param bPopAll - optionally pop all states on the stack to the - * originally executing one - */ - -native final function PopState(optional bool bPopAll); - - -/** - * Logs the current state stack for debugging purposes. - */ - -native final function DumpStateStack(); - - - -// -// State notification events -// - -/** - * Called immediately when entering a state, while within the - * GotoState() call that caused the state change (before any - * state code is executed). - */ -event BeginState(Name PreviousStateName); - -/** - * Called immediately before going out of the current state, while - * within the GotoState() call that caused the state change, and - * before BeginState() is called within the new state. - */ -event EndState(Name NextStateName); - -/** - * Called immediately in the new state that was pushed onto the - * state stack, before any state code is executed. - */ -event PushedState(); - -/** - * Called immediately in the current state that is being popped off - * of the state stack, before the new state is activated. - */ -event PoppedState(); - -/** - * Called on the state that is being paused because of a PushState(). - */ -event PausedState(); - -/** - * Called on the state that is no longer paused because of a PopState(). - */ -event ContinuedState(); - - - -// -// Probe messages. -// - -native(117) final function Enable( name ProbeFunc ); -native(118) final function Disable( name ProbeFunc ); - - -// -// Object handling. -// - -native static final function name GetEnum( object E, coerce int i ); -native static final function object DynamicLoadObject( string ObjectName, class ObjectClass, optional bool MayFail ); -native static final function object FindObject( string ObjectName, class ObjectClass ); - - -// -// Configuration. -// - -native(536) final function SaveConfig(); -native static final function StaticSaveConfig(); - -/** - * Import property values from JSON formatted string - * - * @param PropertyName name of the property owned by this object - * @param JSON string that contains JSON format property values - */ -native static final function ImportJSON(string PropertyName, const out string JSON); - -/* -/** - * Saves the current value for all configurable properties in this object to the .ini file. The values for any global config - * properties will be propagated to all child classes. - * - * @param bRefreshInstances if TRUE, all instances of this class will re-load the values for their configurable properties - * from the .ini. THIS WILL CLOBBER ANY EXISTING VALUES! - * @param PropertyName if specified, only this property's value will be saved. - */ -native(536) final function SaveConfig( optional bool bRefreshInstances, optional string PropertyName ); - -/** - * Saves the default values for all configurable properties in this object's class to the .ini file. The values for any global config - * properties will be propagated to all child classes. - * - * @param bRefreshInstances if TRUE, all instances of this class will re-load the values for their configurable properties - * from the .ini. THIS WILL CLOBBER ANY EXISTING VALUES! - * @param PropertyName if specified, only this property's value will be saved. - */ -native static final function StaticSaveConfig( optional bool bRefreshInstances, optional string PropertyName ); - -/** - * Resets the values for configurable properties in this object's class back to the values in the corresponding Default*.ini file. - * - * @param bRefreshInstances if TRUE, all instances of this class will re-load the values for their configurable properties - * from the .ini. THIS WILL CLOBBER ANY EXISTING VALUES! - * @param PropertyName if specified, only this property's value will be reset. - */ -native static final function ResetConfig( optional bool bRefreshInstances, optional string PropertyName ); - -/** - * Removes the values for all configurable properties in this object's class from the .ini file. - * - * @param PropertyName if specified, only this property's value will be removed. - */ -native(537) final function ClearConfig( optional string PropertyName ); - -/** - * Removes the values for all configurable properties in this object's class from the .ini file. - * - * @param PropertyName if specified, only this property's value will be removed. - */ -native static final function StaticClearConfig( optional string PropertyName ); -*/ - -/** - * Retrieve the names of sections which contain data for the specified PerObjectConfig class. - * - * @param SearchClass the PerObjectConfig class to retrieve sections for. - * @param out_SectionNames will receive the list of section names that correspond to PerObjectConfig sections of the specified class - * @param ObjectOuter the Outer to use for determining which file to look in. Specify the same object that is used when creating the PerObjectConfig - * objects that sections are being retrieved for. (PerObjectConfig data is generally stored in a file named after the Outer used when - * creating those objects, unless the PerObjectConfig class specifies a config file in its class declaration); - * specify None to use the transient package as the Outer. - * @param MaxResults the maximum number of section names to retrieve - * - * @return TRUE if the file specified was found and it contained at least 1 section for the specified class - */ -native static final function bool GetPerObjectConfigSections( class SearchClass, out array out_SectionNames, optional Object ObjectOuter, optional int MaxResults=1024 ); - - -// -// Maths -// - -/** - * Calculates the distance of a given Point in world space to a given line, - * defined by the vector couple (Origin, Direction). - * - * @param Point point to check distance to Axis - * @param Line unit vector indicating the direction to check against - * @param Origin point of reference used to calculate distance - * @param OutClosestPoint optional point that represents the closest point projected onto Axis - * - * @return distance of Point from line defined by (Origin, Direction) - */ -native final function float PointDistToLine(vector Point, vector Line, vector Origin, optional out vector OutClosestPoint); - -/** - * Returns closest distance from a point to a segment. - * - * @param Point point to check distance for - * @param StartPoint StartPoint of segment - * @param EndPoint EndPoint of segment - * @param OutClosestPoint Closest point on segment. - * - * @return closest distance from Point to segment defined by (StartPoint, EndPoint). - */ -native final function float PointDistToSegment(Vector Point, Vector StartPoint, Vector EndPoint, optional out Vector OutClosestPoint); - -/** - * Calculates the distance of a given point to the given plane. (defined by a combination of vector and rotator) - * Rotator.AxisX = U, Rotator.AxisY = Normal, Rotator.AxisZ = V - * - * @param Point Point to check distance to Orientation - * @param Orientation Rotator indicating the direction to check against - * @param Origin Point of reference used to calculate distance - * @param out_ClosestPoint Optional point that represents the closest point projected onto Plane defined by the couple (Origin, Orientation) - * - * @return distance of Point to plane - */ - -simulated final function float PointDistToPlane( Vector Point, Rotator Orientation, Vector Origin, optional out vector out_ClosestPoint ) -{ - local vector AxisX, AxisY, AxisZ, PointNoZ, OriginNoZ; - local float fPointZ, fProjDistToAxis; - - // Get orientation axis' - GetAxes(Orientation, AxisX, AxisY, AxisZ); - - // Remove Z component of Point Location - fPointZ = Point dot AxisZ; - PointNoZ = Point - fPointZ * AxisZ; - - // Remove Z component of Origin - OriginNoZ = Origin - (Origin dot AxisZ) * AxisZ; - - // Projected distance of Point onto AxisX. - fProjDistToAxis = (PointNoZ - OriginNoZ) Dot AxisX; - out_ClosestPoint = OriginNoZ + fProjDistToAxis * AxisX + fPointZ * AxisZ; - - // return distance to closest point - return VSize(out_ClosestPoint-Point); -} - - -/** -* Calculates a point's projection onto a plane -* @param Point point to project onto the plane -* @param A point on plane -* @param B point on plane -* @param C point on plane -* @return projection of point onto the plane defined by ABC -*/ -native static final function Vector PointProjectToPlane(Vector Point, Vector A, Vector B, Vector C); - -/** - * Calculates the dotted distance of vector 'Direction' to coordinate system O(AxisX,AxisY,AxisZ). - * - * Orientation: (consider 'O' the first person view of the player, and 'Direction' a vector pointing to an enemy) - * - positive azimuth means enemy is on the right of crosshair. (negative means left). - * - positive elevation means enemy is on top of crosshair, negative means below. - * - * @Note: 'Azimuth' (.X) sign is changed to represent left/right and not front/behind. front/behind is the funtion's return value. - * - * @param OutDotDist .X = 'Direction' dot AxisX relative to plane (AxisX,AxisZ). (== Cos(Azimuth)) - * .Y = 'Direction' dot AxisX relative to plane (AxisX,AxisY). (== Sin(Elevation)) - * @param Direction direction of target. - * @param AxisX X component of reference system. - * @param AxisY Y component of reference system. - * @param AxisZ Z component of reference system. - * - * @return true if 'Direction' is facing AxisX (Direction dot AxisX >= 0.f) - */ - -native static final function bool GetDotDistance -( - out Vector2D OutDotDist, - Vector Direction, - Vector AxisX, - Vector AxisY, - Vector AxisZ -); - -/** - * Calculates the angular distance of vector 'Direction' to coordinate system O(AxisX,AxisY,AxisZ). - * - * Orientation: (consider 'O' the first person view of the player, and 'Direction' a vector pointing to an enemy) - * - positive azimuth means enemy is on the right of crosshair. (negative means left). - * - positive elevation means enemy is on top of crosshair, negative means below. - * - * @param out_AngularDist .X = Azimuth angle (in radians) of 'Direction' vector compared to plane (AxisX,AxisZ). - * .Y = Elevation angle (in radians) of 'Direction' vector compared to plane (AxisX,AxisY). - * @param Direction Direction of target. - * @param AxisX X component of reference system. - * @param AxisY Y component of reference system. - * @param AxisZ Z component of reference system. - * - * @output true if 'Direction' is facing AxisX (Direction dot AxisX >= 0.f) - */ -native static final function bool GetAngularDistance -( - out Vector2D OutAngularDist, - Vector Direction, - Vector AxisX, - Vector AxisY, - Vector AxisZ -); - -/** - * Converts Dot distance to angular distance. - * @see GetAngularDistance() and GetDotDistance(). - * - * @param OutAngDist Angular distance in radians. - * @param DotDist Dot distance. - */ -native static final function GetAngularFromDotDist( out Vector2D OutAngDist, Vector2D DotDist ); - - -/* transforms angular distance in radians to degrees */ -static final simulated function GetAngularDegreesFromRadians( out Vector2D OutFOV ) -{ - OutFOV.X = OutFOV.X*RadToDeg; - OutFOV.Y = OutFOV.Y*RadToDeg; -} - -/** - * Returns world space angle (in radians) of given vector - * - * @param Dir Vector to be converted into heading angle - */ -static final simulated function float GetHeadingAngle( Vector Dir ) -{ - local float Angle; - - Angle = Acos( FClamp( Dir.X, -1.f, 1.f ) ); - if( Dir.Y < 0.f ) - { - Angle *= -1.f; - } - - return Angle; -} - -/** - * Gets the difference in world space angles in [-PI,PI] range - * - * @param A1 First angle - * @param A2 Second angle - */ -static final simulated function float FindDeltaAngle( float A1, float A2 ) -{ - local float Delta; - - // Find the difference - Delta = A2 - A1; - // If change is larger than PI - if( Delta > PI ) - { - // Flip to negative equivalent - Delta = Delta - (PI * 2.f); - } - else if( delta < -PI ) - { - // Otherwise, if change is smaller than -PI - // Flip to positive equivalent - Delta = Delta + (PI * 2.f); - } - - // Return delta in [-PI,PI] range - return Delta; -} - -static final simulated function float UnwindHeading( float a ) -{ - while( a > PI ) - { - a -= (PI * 2.0f); - } - - while( a < -PI ) - { - a += (PI * 2.0f); - } - - return a; -} - - -/** - * Converts a float value to a 0-255 byte, assuming a range of - * 0.f to 1.f. - * - * @param inputFloat - float to convert - * - * @param bSigned - optional, assume a range of -1.f to 1.f - * - * @return byte value 0-255 - */ - -simulated final function byte FloatToByte(float inputFloat, optional bool bSigned) -{ - if (bSigned) - { - // handle a 0.02f threshold so we can guarantee valid 0/255 values - if (inputFloat > 0.98f) - { - return 255; - } - else if (inputFloat < -0.98f) - { - return 0; - } - else - { - return byte((inputFloat+1.f)*128.f); - } - } - else - { - if (inputFloat > 0.9961f) - { - return 255; - } - else if (inputFloat < 0.004f) - { - return 0; - } - else - { - return byte(inputFloat*255.f); - } - } -} - - -/** - * Converts a 0-255 byte to a float value, to a range of 0.f - * to 1.f. - * - * @param inputByte - byte to convert - * - * @param bSigned - optional, spit out -1.f to 1.f instead - * - * @return newly converted value - */ - -simulated final function float ByteToFloat(byte inputByte, optional bool bSigned) -{ - if( bSigned ) - { - return ((float(inputByte)/128.f)-1.f); - } - else - { - return (float(inputByte)/255.f); - } -} - -/** - * Returns whether the object is pending kill and about to have references to it NULLed by - * the garbage collector. - * - * @return TRUE if object is pending kill, FALSE otherwise - */ -native final function bool IsPendingKill(); - -/** @return the name of the package this object resides in */ -final function name GetPackageName() -{ - local Object O; - - O = self; - while (O.Outer != None) - { - O = O.Outer; - } - return O.Name; -} - -/** - * Script hook to FRotationMatrix::TransformFVector(). - */ -native final function vector TransformVectorByRotation(rotator SourceRotation, vector SourceVector, optional bool bInverse); - - -/** - * Returns a string containing a system timestamp - */ -native final function string TimeStamp(); - -/** - * Return the system time components. - */ -native final function GetSystemTime( out int Year, out int Month, out int DayOfWeek, out int Day, out int Hour, out int Min, out int Sec, out int MSec ); - -/** @return the current engine version number for this build */ -native final function int GetEngineVersion(); - -/** @return the changelist number that was used when generating this build */ -native final function int GetBuildChangelistNumber(); - -final function int GetRandomOptionSumFrequency( const out array FreqList ) -{ - local float FreqSum, RandVal; - local int Idx; - - for( Idx = 0; Idx < FreqList.Length; Idx++ ) - { - FreqSum += FreqList[Idx]; - } - - RandVal = FRand() * FreqSum; - FreqSum = 0; - for( Idx = 0; Idx < FreqList.Length; Idx++ ) - { - FreqSum += FreqList[Idx]; - if( RandVal < FreqSum ) - { - return Idx; - } - } - - return -1; -} - -/** @return the three character language identifier currently in use */ -native static final function string GetLanguage(); - - -/** - * Invalidate the specified Guid (sets all values to zero) - * - * @param InGuid Guid to invalidate - */ -native static final function InvalidateGuid( out Guid InGuid ); - -/** - * Determine if the specified Guid is valid or not - * - * @param InGuid Guid to check the validity of - * - * @return True if the specified Guid is valid, false if it is not - */ -native static final function bool IsGuidValid( const out Guid InGuid ); - -/** Create a new Guid */ -native static final function Guid CreateGuid(); - -/** - * Construct a Guid from the specified string, if possible - * - * @param InGuidString String to construct the Guid from (should be in a format matching the output of GetStringFromGuid) - * - * @return A Guid constructed from the specified string, if possible; Otherwise, an invalid Guid (all zeroes) - */ -native static final function Guid GetGuidFromString( const out string InGuidString ); - -/** - * Get the string representation of the specified Guid - * - * @param InGuid Guid to get the string representation of - * - * @return The string representation of the specified Guid - */ -native static final function string GetStringFromGuid( const out guid InGuid ); - - -native static final function int ProfNodeStart(string TimerName); -native static final function ProfNodeStop(optional int AssumedTimerIndex = -1); -native static final function ProfNodeSetTimeThresholdSeconds(float Threshold); -native static final function ProfNodeSetDepthThreshold(int Depth); -native static final function ProfNodeEvent(string EventName); - -defaultproperties -{ -} +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +//============================================================================= +// Object: The base class all objects. +// This is a built-in Unreal class and it shouldn't be modified by mod authors +//============================================================================= +class Object + abstract + native + noexport; + +//============================================================================= +// Unreal base structures. + +// Temporary UnrealScript->C++ mirrors. + +struct pointer +{ + var native const int Dummy; +}; + +struct {QWORD} qword +{ + var() native int A, B; +}; + +//============================================================================= +// UObject variables. + +// Internal variables. +var native private const editconst noexport pointer VfTableObject; +var native private const editconst pointer HashNext; +var native private const editconst qword ObjectFlags; // This needs to be 8-byte aligned in 32-bit! +var native private const editconst pointer HashOuterNext; +var native private const editconst pointer StateFrame; +var native private const editconst noexport Object Linker; +var native private const editconst noexport pointer LinkerIndex; +var native private const editconst noexport int ObjectInternalInteger; +var native private const editconst noexport int NetIndex; +var native const editconst Object Outer; +var() native const editconst name Name; +var native const editconst class Class; +var() native const editconst Object ObjectArchetype; +//////////////////////////////////////////////////////////////////////////////////////////////// +// IMPORTANT: DO NOT ADD _ANY_ MEMBERS AFTER ObjectArchetype! Add ALL members before it, as the +// C++ code expects it to be the final member of UObject! (see UObject::InitProperties) +//////////////////////////////////////////////////////////////////////////////////////////////// + + +//============================================================================= +// Unreal base structures continued. + +struct {DOUBLE} double +{ + var native const int A; + var native const int B; +}; + +struct ThreadSafeCounter +{ + var native const int Value; +}; + +struct BitArray_Mirror +{ + var native const pointer IndirectData; + var native const int InlineData[4]; + var native const int NumBits; + var native const int MaxBits; +}; + +struct SparseArray_Mirror +{ + var native const array Elements; + var native const BitArray_Mirror AllocationFlags; + var native const int FirstFreeIndex; + var native const int NumFreeIndices; +}; + +struct Set_Mirror +{ + var native const SparseArray_Mirror Elements; + var native const int InlineHash; + var native const pointer Hash; + var native const int HashSize; +}; + +struct Map_Mirror +{ + var native const Set_Mirror Pairs; +}; + +struct MultiMap_Mirror +{ + var native const Set_Mirror Pairs; +}; + +struct UntypedBulkData_Mirror +{ + var native const pointer VfTable; + var native const int BulkDataFlags; + var native const int ElementCount; + var native const int BulkDataOffsetInFile; + var native const int BulkDataSizeOnDisk; + var native const int SavedBulkDataFlags; + var native const int SavedElementCount; + var native const int SavedBulkDataOffsetInFile; + var native const int SavedBulkDataSizeOnDisk; + var native const pointer BulkData; + var native const int LockStatus; + var native const pointer AttachedAr; + var native const int bShouldFreeOnEmpty; +}; + +struct RenderCommandFence_Mirror +{ + var native const transient int NumPendingFences; +}; + +// needs to match FColorVertexBuffer in C++ +struct FColorVertexBuffer_Mirror +{ + var native const pointer VfTable; + var native const pointer VertexData; + var private const int Data; + var private const int Stride; + var private const int NumVertices; +}; + +struct IndirectArray_Mirror +{ + // FScriptArray + var native const pointer Data; + var native const int ArrayNum; + var native const int ArrayMax; +}; + +struct Array_Mirror +{ + // FScriptArray + var native const pointer Data; + var native const int ArrayNum; + var native const int ArrayMax; +}; + +/** + * Structure mirroring an array of pointers using an inline allocator. + */ +struct InlinePointerArray_Mirror +{ + var private const pointer InlineData; + var private const Array_Mirror SecondaryData; +}; + +// A globally unique identifier. +struct immutable Guid +{ + var int A, B, C, D; +}; + +// A point or direction vector in 3d space. +struct immutable Vector +{ + var() float X, Y, Z; +}; + +struct immutable Vector4 +{ + var() float X, Y, Z, W; +}; + +struct immutable Vector2D +{ + var() float X, Y; +}; + +struct immutable TwoVectors +{ + var() Vector v1, v2; +}; + +// A plane definition in 3d space. +struct immutable Plane extends Vector +{ + var() float W; +}; + +// An orthogonal rotation in 3d space. +struct immutable Rotator +{ + var() int Pitch, Yaw, Roll; +}; + +// Quaternion +struct immutable Quat +{ + var() float X, Y, Z, W; +}; + +// A packed normal. +struct immutable PackedNormal +{ + var() byte X, Y, Z, W; +}; + +/** + * Screen coordinates + */ +struct immutable IntPoint +{ + var() int X, Y; +}; + +/** + * A vector of spherical harmonic coefficients. + */ +struct SHVector +{ + // Note: The number of SH coefficients must match NUM_SH_BASIS in SHMath.h! + // The struct must also be padded to be 16-byte aligned. + var() float V[9]; + var float Padding[3]; +}; + +/** + * A vector of spherical harmonic coefficients for each color component. + */ +struct SHVectorRGB +{ + var() SHVector R; + var() SHVector G; + var() SHVector B; +}; + +/** + * Point Of View type. + */ +struct TPOV +{ + /** Location */ + var() Vector Location; + /** Rotation */ + var() Rotator Rotation; + /** FOV angle */ + var() float FOV; + + structdefaultproperties + { + FOV=90.f + } +}; + +/** Various ways to interpolate TAlphaBlend. */ +enum AlphaBlendType +{ + ABT_Linear, + ABT_Cubic, + ABT_Sinusoidal, + ABT_EaseInOutExponent2, + ABT_EaseInOutExponent3, + ABT_EaseInOutExponent4, + ABT_EaseInOutExponent5, +}; + +/** Structure to encompass Alpha Interpolation. */ +struct TAlphaBlend +{ + /** Internal Lerped value for Alpha */ + var const FLOAT AlphaIn; + /** Resulting Alpha value, between 0.f and 1.f */ + var const FLOAT AlphaOut; + /** Target to reach */ + var() FLOAT AlphaTarget; + /** Default blend time */ + var() FLOAT BlendTime; + /** Time left to reach target */ + var const FLOAT BlendTimeToGo; + /** Type of blending used (Linear, Cubic, etc.) */ + var() AlphaBlendType BlendType; + + structdefaultproperties + { + BlendTime=0.67f + BlendType=ABT_Linear + } +}; + +// Generic axis enum. +enum EAxis +{ + AXIS_NONE, // = 0 + AXIS_X, // = 1 + AXIS_Y, // = 2 + AXIS_BLANK, // = 3. Need this because AXIS enum is used as bitfield in C++... + AXIS_Z // 4 +}; + +enum EInputEvent +{ + IE_Pressed, + IE_Released, + IE_Repeat, + IE_DoubleClick, + IE_Axis +}; + +enum EAspectRatioAxisConstraint +{ + AspectRatio_MaintainYFOV, + AspectRatio_MaintainXFOV, + AspectRatio_MajorAxisFOV +}; + +// A color. +struct immutable Color +{ + var() byte B, G, R, A; +}; + +// A linear color. +struct immutable LinearColor +{ + var() float R, G, B, A; + + structdefaultproperties + { + A=1.f + } +}; + +// A bounding box. +struct immutable Box +{ + var() vector Min, Max; + var byte IsValid; +}; + +// A bounding box and bounding sphere with the same origin. +struct BoxSphereBounds +{ + var() vector Origin; + var() vector BoxExtent; + var() float SphereRadius; +}; + +// a 4x4 matrix +struct immutable Matrix +{ + var() Plane XPlane; + var() Plane YPlane; + var() Plane ZPlane; + var() Plane WPlane; +}; + +struct Cylinder +{ + var float Radius, Height; +}; + +// Interpolation data types. +enum EInterpCurveMode +{ + CIM_Linear, + CIM_CurveAuto, + CIM_Constant, + CIM_CurveUser, + CIM_CurveBreak, + CIM_CurveAutoClamped +}; + +// Interpolation data types. +enum EInterpMethodType +{ + IMT_UseFixedTangentEvalAndNewAutoTangents, + IMT_UseFixedTangentEval, + IMT_UseBrokenTangentEval +}; + +struct InterpCurvePointFloat +{ + var() float InVal; + var() float OutVal; + var() float ArriveTangent; + var() float LeaveTangent; + var() EInterpCurveMode InterpMode; +}; +struct InterpCurveFloat +{ + var() array Points; + var EInterpMethodType InterpMethod; +}; + +struct InterpCurvePointVector2D +{ + var() float InVal; + var() vector2d OutVal; + var() vector2d ArriveTangent; + var() vector2d LeaveTangent; + var() EInterpCurveMode InterpMode; +}; +struct InterpCurveVector2D +{ + var() array Points; + var EInterpMethodType InterpMethod; +}; + +struct InterpCurvePointVector +{ + var() float InVal; + var() vector OutVal; + var() vector ArriveTangent; + var() vector LeaveTangent; + var() EInterpCurveMode InterpMode; +}; +struct InterpCurveVector +{ + var() array Points; + var EInterpMethodType InterpMethod; +}; + +struct InterpCurvePointTwoVectors +{ + var() float InVal; + var() twovectors OutVal; + var() twovectors ArriveTangent; + var() twovectors LeaveTangent; + var() EInterpCurveMode InterpMode; +}; +struct InterpCurveTwoVectors +{ + var() array Points; + var EInterpMethodType InterpMethod; +}; + +struct InterpCurvePointQuat +{ + var() float InVal; + var() quat OutVal; + var() quat ArriveTangent; + var() quat LeaveTangent; + var() EInterpCurveMode InterpMode; +}; +struct InterpCurveQuat +{ + var() array Points; + var EInterpMethodType InterpMethod; +}; + +struct InterpCurvePointLinearColor +{ + var() float InVal; + var() linearcolor OutVal; + var() linearcolor ArriveTangent; + var() linearcolor LeaveTangent; + var() EInterpCurveMode InterpMode; +}; +struct InterpCurveLinearColor +{ + var() array Points; + var EInterpMethodType InterpMethod; +}; + +// Base class for raw (baked out) Distribution type +struct RawDistribution +{ + var byte Type; + var byte Op; + var byte LookupTableNumElements; + var byte LookupTableChunkSize; + var array LookupTable; + var float LookupTableTimeScale; + var float LookupTableStartTime; +}; + +/** A fence used to track rendering thread command execution. */ +struct RenderCommandFence +{ + var private native const int NumPendingFences; +}; + +/** Mirror for FElementId used in generic Octree */ +struct OctreeElementId +{ + var private native const pointer Node; + var private native const int ElementIndex; +}; + +/** Bone Atom definition */ +struct BoneAtom +{ + var quat Rotation; + var vector Translation; + var float Scale; +}; + +//============================================================================= +// Constants. + +const MaxInt = 0x7fffffff; +const Pi = 3.1415926535897932; +const RadToDeg = 57.295779513082321600; // 180 / Pi +const DegToRad = 0.017453292519943296; // Pi / 180 +const UnrRotToRad = 0.00009587379924285; // Pi / 32768 +const RadToUnrRot = 10430.3783504704527; // 32768 / Pi +const DegToUnrRot = 182.0444; +const UnrRotToDeg = 0.00549316540360483; +const INDEX_NONE = -1; + +// Aspect ratio constants +const AspectRatio4x3 = 1.33333; +const AspectRatio5x4 = 1.25; +const AspectRatio16x9 = 1.77778; +const InvAspectRatio4x3 = 0.75; +const InvAspectRatio5x4 = 0.8; +const InvAspectRatio16x9 = 0.56249; + +//============================================================================= +// Logging Severity Levels. + +/** + * Determines which ticking group an Actor/Component belongs to + */ +enum ETickingGroup +{ + /** + * Any item that needs to be updated before asynchronous work is done + */ + TG_PreAsyncWork, + /** + * Any item that can be run in parallel of our async work + */ + TG_DuringAsyncWork, + /** + * Any item that needs the async work to be done before being updated + */ + TG_PostAsyncWork, + /** + * Any item that needs the update work to be done before being ticked + */ + TG_PostUpdateWork, + /** Special effects that need to be updated last */ + TG_EffectsUpdateWork +}; + + +/** + * These are the types of PerfMem RunResults you the system understands and can achieve. They are stored in the table as we + * will get "valid" numbers but we ran OOM. We want to list the numbers in the OOM case because there is probably something that + * jumped up to cause the OOM (e.g. vertex lighting). + **/ +enum EAutomatedRunResult +{ + ARR_Unknown, + ARR_OOM, + ARR_Passed, +}; + + +/** + * Different modes for the DebugBreak() method. + */ +enum EDebugBreakType +{ + DEBUGGER_NativeOnly, + + /** not yet implemented */ + DEBUGGER_ScriptOnly, + /** not yet implemented */ + DEBUGGER_Both, +}; + + + +struct dword +{ + var() native int A; +}; + +struct IpAddr +{ + var int AddrA; + var int AddrB; + var int AddrC; + var int AddrD; + var int Port; + + structdefaultproperties + { + AddrA=0 + AddrB=0 + AddrC=0 + AddrD=0 + Port=0 + } +}; + + +//============================================================================= +// Basic native operators and functions. + + +// +// Bool operators. +// + +native(129) static final preoperator bool ! ( bool A ); +native(242) static final operator(24) bool == ( bool A, bool B ); +native(243) static final operator(26) bool != ( bool A, bool B ); +native(130) static final operator(30) bool && ( bool A, skip bool B ); +native(131) static final operator(30) bool ^^ ( bool A, bool B ); +native(132) static final operator(32) bool || ( bool A, skip bool B ); + + +// +// Byte operators. +// + +native(133) static final operator(34) byte *= ( out byte A, byte B ); +native(198) static final operator(34) byte *= ( out byte A, float B ); +native(134) static final operator(34) byte /= ( out byte A, byte B ); +native(135) static final operator(34) byte += ( out byte A, byte B ); +native(136) static final operator(34) byte -= ( out byte A, byte B ); +native(137) static final preoperator byte ++ ( out byte A ); +native(138) static final preoperator byte -- ( out byte A ); +native(139) static final postoperator byte ++ ( out byte A ); +native(140) static final postoperator byte -- ( out byte A ); + + +// +// Integer operators. +// + +native(141) static final preoperator int ~ ( int A ); +native(143) static final preoperator int - ( int A ); +native(144) static final operator(16) int * ( int A, int B ); +native(145) static final operator(16) int / ( int A, int B ); +native(253) static final operator(18) int % ( int A, int B ); +native(146) static final operator(20) int + ( int A, int B ); +native(147) static final operator(20) int - ( int A, int B ); +native(148) static final operator(22) int << ( int A, int B ); +native(149) static final operator(22) int >> ( int A, int B ); +native(196) static final operator(22) int >>>( int A, int B ); +native(150) static final operator(24) bool < ( int A, int B ); +native(151) static final operator(24) bool > ( int A, int B ); +native(152) static final operator(24) bool <= ( int A, int B ); +native(153) static final operator(24) bool >= ( int A, int B ); +native(154) static final operator(24) bool == ( int A, int B ); +native(155) static final operator(26) bool != ( int A, int B ); +native(156) static final operator(28) int & ( int A, int B ); +native(157) static final operator(28) int ^ ( int A, int B ); +native(158) static final operator(28) int | ( int A, int B ); +native(159) static final operator(34) int *= ( out int A, float B ); +native(160) static final operator(34) int /= ( out int A, float B ); +native(161) static final operator(34) int += ( out int A, int B ); +native(162) static final operator(34) int -= ( out int A, int B ); +native(163) static final preoperator int ++ ( out int A ); +native(164) static final preoperator int -- ( out int A ); +native(165) static final postoperator int ++ ( out int A ); +native(166) static final postoperator int -- ( out int A ); + + +// +// Integer functions. +// + +/** Rand will give you a value between 0 and Max -1 **/ +native(167) static final Function int Rand ( int Max ); +native(249) static final function int Min ( int A, int B ); +native(250) static final function int Max ( int A, int B ); +native(251) static final function int Clamp ( int V, int A, int B ); +native static final function string ToHex ( int A ); + + +// +// Float operators. +// + +native(169) static final preoperator float - ( float A ); +native(170) static final operator(12) float ** ( float Base, float Exp ); +native(171) static final operator(16) float * ( float A, float B ); +native(172) static final operator(16) float / ( float A, float B ); +native(173) static final operator(18) float % ( float A, float B ); +native(174) static final operator(20) float + ( float A, float B ); +native(175) static final operator(20) float - ( float A, float B ); +native(176) static final operator(24) bool < ( float A, float B ); +native(177) static final operator(24) bool > ( float A, float B ); +native(178) static final operator(24) bool <= ( float A, float B ); +native(179) static final operator(24) bool >= ( float A, float B ); +native(180) static final operator(24) bool == ( float A, float B ); +native(210) static final operator(24) bool ~= ( float A, float B ); +native(181) static final operator(26) bool != ( float A, float B ); +native(182) static final operator(34) float *= ( out float A, float B ); +native(183) static final operator(34) float /= ( out float A, float B ); +native(184) static final operator(34) float += ( out float A, float B ); +native(185) static final operator(34) float -= ( out float A, float B ); + +// +// Float functions. +// + +native(186) static final function float Abs ( float A ); +native(187) static final function float Sin ( float A ); +native static final function float Asin ( float A ); +native(188) static final function float Cos ( float A ); +native static final function float Acos ( float A ); +native(189) static final function float Tan ( float A ); +native(190) static final function float Atan ( float A ); +native static final function float Atan2 ( float A, float B ); +native(191) static final function float Exp ( float A ); +native(192) static final function float Loge ( float A ); +native(193) static final function float Sqrt ( float A ); +native(194) static final function float Square( float A ); +native(195) static final function float FRand (); +native(244) static final function float FMin ( float A, float B ); +native(245) static final function float FMax ( float A, float B ); +native(246) static final function float FClamp( float V, float A, float B ); +native(247) static final function float Lerp ( float A, float B, float Alpha ); +native(199) static final function int Round ( float A ); +native static final function int FFloor ( float A ); +native static final function int FCeil(float A); + +/** + * Cubic Spline interpolation. + * @param P end points + * @param T tangent directions at end points + * @param Alpha distance along spline + * @return evaluated value. + */ +native static final function float FCubicInterp(float P0, float T0, float P1, float T1, float A); + +/** + * Interpolates with ease-in (smoothly approaches B). + * @param A Value to interpolate from. + * @param B Value to interpolate to. + * @param Alpha Interpolant. + * @param Exp Exponent. Higher values result in more rapid deceleration. + * @return Interpolated value. + */ +static final function float FInterpEaseIn(float A, float B, float Alpha, float Exp) +{ + return Lerp(A, B, Alpha**Exp); +} + +/** + * Interpolates with ease-out (smoothly departs A). + * @param A Value to interpolate from. + * @param B Value to interpolate to. + * @param Alpha Interpolant. + * @param Exp Exponent. Higher values result in more rapid acceleration. + * @return Interpolated value. + */ +static final function float FInterpEaseOut(float A, float B, float Alpha, float Exp) +{ + return Lerp(A, B, Alpha**(1/Exp)); +} + +/** + * Interpolates with both ease-in and ease-out (smoothly departs A, smoothly approaches B). + * @param A Value to interpolate from. + * @param B Value to interpolate to. + * @param Alpha Interpolant. + * @param Exp Exponent. Higher values result in more rapid acceleration adn deceleration. + * @return Interpolated value. + */ +native static final function float FInterpEaseInOut(float A, float B, float Alpha, float Exp); + + +/** Return a random number within the given range. */ +static final simulated function float RandRange( float InMin, float InMax ) +{ + return InMin + (InMax - InMin) * FRand(); +} + + +/** + * Returns the relative percentage position Value is in the range [Min,Max]. + * Examples: + * - GetRangeValueByPct( 2, 4, 2 ) == 0 + * - GetRangeValueByPct( 2, 4, 4 ) == 1 + * - GetRangeValueByPct( 2, 4, 3 ) == 0.5 + * + * @param Min Min limit + * @param Max Max limit + * @param Value Value between Range. + * + * @return relative percentage position Value is in the range [Min,Max]. + */ + +static final simulated function float FPctByRange( float Value, float InMin, float InMax ) +{ + return (Value - InMin) / (InMax - InMin); +} + + +/** + * Tries to reach Target based on distance from Current position, + * giving a nice smooth feeling when tracking a position. + * (Doesn't work well when target teleports) + * + * @param Current Actual position + * @param Target Target position + * @param DeltaTime time since last tick + * @param InterpSpeed Interpolation speed + * @return new interpolated position + */ +native static final function float FInterpTo( float Current, float Target, float DeltaTime, float InterpSpeed ); +/** Same as above, but using a constant step */ +native static final function float FInterpConstantTo( float Current, float Target, float DeltaTime, float InterpSpeed ); + + +// +// Vector operators. +// + +native(211) static final preoperator vector - ( vector A ); +native(212) static final operator(16) vector * ( vector A, float B ); +native(213) static final operator(16) vector * ( float A, vector B ); +native(296) static final operator(16) vector * ( vector A, vector B ); +native(214) static final operator(16) vector / ( vector A, float B ); +native(215) static final operator(20) vector + ( vector A, vector B ); +native(216) static final operator(20) vector - ( vector A, vector B ); +native(275) static final operator(22) vector << ( vector A, rotator B ); +native(276) static final operator(22) vector >> ( vector A, rotator B ); +native(217) static final operator(24) bool == ( vector A, vector B ); +native(218) static final operator(26) bool != ( vector A, vector B ); +native(219) static final operator(16) float Dot ( vector A, vector B ); +native(220) static final operator(16) vector Cross ( vector A, vector B ); +native(221) static final operator(34) vector *= ( out vector A, float B ); +native(297) static final operator(34) vector *= ( out vector A, vector B ); +native(222) static final operator(34) vector /= ( out vector A, float B ); +native(223) static final operator(34) vector += ( out vector A, vector B ); +native(224) static final operator(34) vector -= ( out vector A, vector B ); + +// +// Vector functions. +// + +native(225) static final function float VSize ( vector A ); +native static final function float VSize2D ( vector A ); +native(228) static final function float VSizeSq ( vector A ); +native static final function float VSizeSq2D ( vector A ); +native(226) static final function vector Normal ( vector A ); +native(227) static final function vector Normal2D(vector A); +native static final function vector VLerp ( vector A, vector B, float Alpha ); +native(252) static final function vector VRand ( ); +native static final function vector VRandCone ( vector Dir, float ConeHalfAngleRadians ); +native static final function vector VRandCone2 ( vector Dir, float HorizontalConeHalfAngleRadians, float VerticalConeHalfAngleRadians ); +native(300) static final function vector MirrorVectorByNormal( vector InVect, vector InNormal ); +native(1500) static final function Vector ProjectOnTo( Vector x, Vector y ); +native(1501) static final function bool IsZero( Vector A ); + +/** + * Tries to reach Target based on distance from Current position, + * giving a nice smooth feeling when tracking a location. + * (Doesn't work well when target teleports) + * + * @param Current Actual location + * @param Target Target location + * @param DeltaTime time since last tick + * @param InterpSpeed Interpolation speed + * @return new interpolated position + */ + +native static final function vector VInterpTo( vector Current, vector Target, float DeltaTime, float InterpSpeed ); + +/** Clamps a vector to not be longer than MaxLength. */ +native static final function vector ClampLength( vector V, float MaxLength ); + +/** Returns dot product of two vectors while ignoring the Z component. */ +native static final function float NoZDot( vector A, vector B ); + +simulated final function bool InCylinder( Vector Origin, Rotator Dir, float Width, Vector A, optional bool bIgnoreZ ) +{ + local Vector B; + local Vector VDir; + + if( bIgnoreZ ) + { + Origin.Z = 0; + Dir.Pitch = 0; + A.Z = 0; + } + + VDir = Vector(Dir); + B = (((A - Origin) DOT VDir) * VDir) + Origin; + + if( VSizeSq(B-A) <= Width * Width ) + { + return TRUE; + } + + return FALSE; +} + +// +// Rotator operators and functions. +// + +native(142) static final operator(24) bool == ( rotator A, rotator B ); +native(203) static final operator(26) bool != ( rotator A, rotator B ); +native(287) static final operator(16) rotator * ( rotator A, float B ); +native(288) static final operator(16) rotator * ( float A, rotator B ); +native(289) static final operator(16) rotator / ( rotator A, float B ); +native(290) static final operator(34) rotator *= ( out rotator A, float B ); +native(291) static final operator(34) rotator /= ( out rotator A, float B ); +native(316) static final operator(20) rotator + ( rotator A, rotator B ); +native(317) static final operator(20) rotator - ( rotator A, rotator B ); +native(318) static final operator(34) rotator += ( out rotator A, rotator B ); +native(319) static final operator(34) rotator -= ( out rotator A, rotator B ); +native static final operator(24) bool ClockwiseFrom( int A, int B ); + +native(229) static final function GetAxes( rotator A, out vector X, out vector Y, out vector Z ); +native(230) static final function GetUnAxes( rotator A, out vector X, out vector Y, out vector Z ); +native static final function vector GetRotatorAxis( rotator A, int Axis ); +native(320) static final function Rotator RotRand( optional bool bRoll ); +native static final function Rotator OrthoRotation( vector X, vector Y, vector Z ); +native static final function Rotator Normalize( rotator Rot ); +native static final function Rotator RLerp( Rotator A, Rotator B, float Alpha, optional bool bShortestPath ); +/** Given rotation R in the space defined by RBasis, return R in "world" space */ +native static final function Rotator RTransform(rotator R, rotator RBasis); + + +/** + * Tries to reach Target based on distance from Current position, + * giving a nice smooth feeling when tracking a position. + * (Doesn't work well when target teleports) + * + * @param Current Actual position + * @param Target Target position + * @param DeltaTime time since last tick + * @param InterpSpeed Interpolation speed, if !bConstantInterpSpeed will perform a continuous lerp, otherwise will interp at constant speed + * @return new interpolated position + */ + +native static final function Rotator RInterpTo( rotator Current, rotator Target, float DeltaTime, float InterpSpeed, optional bool bConstantInterpSpeed ); + + +/** + * Returns a Rotator axis within the [-32768,+32767] range in float + * + * @param RotAxis, axis of the rotator + * @return Normalized axis value, within the [-32768,+32767] range. + */ +native static final function int NormalizeRotAxis(int Angle); + + +/** Gives the rotation difference between two Rotators, taking the shortest route between them (in degrees). */ +native static final function float RDiff( Rotator A, Rotator B ); + +/** + * returns Rotator Size (vector definition applied to rotators) + * @param Rotator R + * @returns mathematical vector length: Sqrt(Pitch^2 + Yaw^2 + Roll^2) + */ + +native static final function float RSize(rotator R); + + + +/** + * Clamp a rotation Axis. + * The ViewAxis rotation component must be normalized (within the [-32768,+32767] range). + * This function will set out_DeltaViewAxis to the delta needed to bring ViewAxis within the [MinLimit,MaxLimit] range. + * + * @param ViewAxis Rotation Axis to clamp + * @input out_DeltaViewAxis Delta Rotation Axis to be added to ViewAxis rotation (from ProcessViewRotation). + * Set to be the Delta to bring ViewAxis within the [MinLimit,MaxLimit] range. + * @param MaxLimit Maximum for Clamp. ViewAxis will not exceed this. + * @param MinLimit Minimum for Clamp. ViewAxis will not go below this. + */ + +static final simulated function ClampRotAxis +( + int ViewAxis, + out int out_DeltaViewAxis, + int MaxLimit, + int MinLimit +) +{ + local int DesiredViewAxis; + + ViewAxis = NormalizeRotAxis( ViewAxis ); + DesiredViewAxis = ViewAxis + out_DeltaViewAxis; + + if( DesiredViewAxis > MaxLimit ) + { + DesiredViewAxis = MaxLimit; + } + + if( DesiredViewAxis < MinLimit ) + { + DesiredViewAxis = MinLimit; + } + + out_DeltaViewAxis = DesiredViewAxis - ViewAxis; +} + +/** + * Clamp Rotator Axis. + * + * @param Current Input axis angle. + * @param Center Center of allowed angle. + * @param MaxDelta Maximum delta allowed. + * @return axis angle clamped between [Center-MaxDelta, Center+MaxDelta] + */ +static final simulated function int ClampRotAxisFromBase(int Current, int Center, int MaxDelta) +{ + local int DeltaFromCenter; + + DeltaFromCenter = NormalizeRotAxis(Current - Center); + + if( DeltaFromCenter > MaxDelta ) + { + Current = Center + MaxDelta; + } + else if( DeltaFromCenter < -MaxDelta ) + { + Current = Center - MaxDelta; + } + + return Current; +}; + + +/** + * Clamp Rotator Axis. + * + * @param Current Input axis angle. + * @param Min Min allowed angle. + * @param Max Max allowed angle. + * @return axis angle clamped between [Min, Max] + */ +static final simulated function int ClampRotAxisFromRange(int Current, int Min, int Max) +{ + local int Delta, Center; + + Delta = NormalizeRotAxis(Max - Min) / 2; + Center = NormalizeRotAxis(Max + Min) / 2; + + return ClampRotAxisFromBase(Current, Center, Delta); +}; + + +/** + * Smooth clamp a rotator axis. + * This is mainly used to bring smoothly a rotator component within a certain range [MinLimit,MaxLimit]. + * For example to limit smoothly the player's ViewRotation Pitch or Yaw component. + * + * @param fDeltaTime Elapsed time since this function was last called, for interpolation. + * @param ViewAxis Rotator's Axis' current angle. + * @input out_DeltaViewAxis Delta Value of Axis to be added to ViewAxis (through PlayerController::ProcessViewRotation(). + * This value gets modified. + * @param MaxLimit Up angle limit. + * @param MinLimit Negative angle limit (value must be negative) + * @param InterpolationSpeed Interpolation Speed to bring ViewAxis within the [MinLimit,MaxLimit] range. + */ + +static final simulated function bool SClampRotAxis +( + float DeltaTime, + int ViewAxis, + out int out_DeltaViewAxis, + int MaxLimit, + int MinLimit, + float InterpolationSpeed +) +{ + local bool bClamped; + + // make sure rotation components are normalized + out_DeltaViewAxis = NormalizeRotAxis( out_DeltaViewAxis ); + ViewAxis = NormalizeRotAxis( ViewAxis ); + + // forbid player from going beyond limits through fDeltaViewAxis + if( ViewAxis <= MaxLimit && (ViewAxis + out_DeltaViewAxis) >= MaxLimit ) + { + out_DeltaViewAxis = MaxLimit - ViewAxis; + bClamped = TRUE; + } + else if( ViewAxis > MaxLimit ) + { + // if players goes counter interpolation, ignore input + if( out_DeltaViewAxis > 0 ) + { + out_DeltaViewAxis = 0.f; + } + // if above limit, interpolate back to within limits + if( (ViewAxis + out_DeltaViewAxis) > MaxLimit ) + { + out_DeltaViewAxis = FInterpTo(ViewAxis, MaxLimit, DeltaTime, InterpolationSpeed ) - ViewAxis - 1; + } + } + // forbid player from going beyond limits through fDeltaViewAxis + else if( ViewAxis >= MinLimit && (ViewAxis + out_DeltaViewAxis) <= MinLimit ) + { + out_DeltaViewAxis = MinLimit - ViewAxis; + bClamped = TRUE; + } + else if( ViewAxis < MinLimit ) + { + // if players goes counter interpolation, ignore input + if( out_DeltaViewAxis < 0 ) + { + out_DeltaViewAxis = 0.f; + } + // if above limit, interpolate back to within limits + if( (ViewAxis + out_DeltaViewAxis) < MinLimit ) + { + out_DeltaViewAxis += FInterpTo(ViewAxis, MinLimit, DeltaTime, InterpolationSpeed ) - ViewAxis + 1; + } + } + return bClamped; +} + +/** Create a Rotation from independant Pitch, Yaw, Roll */ +static final function Rotator MakeRotator(int Pitch, int Yaw, int Roll) +{ + local rotator R; + + R.Pitch = Pitch; + R.Yaw = Yaw; + R.Roll = Roll; + return R; +} + +// +// String operators. +// + +native(112) static final operator(40) string $ ( coerce string A, coerce string B ); +native(168) static final operator(40) string @ ( coerce string A, coerce string B ); +native(115) static final operator(24) bool < ( string A, string B ); +native(116) static final operator(24) bool > ( string A, string B ); +native(120) static final operator(24) bool <= ( string A, string B ); +native(121) static final operator(24) bool >= ( string A, string B ); +native(122) static final operator(24) bool == ( string A, string B ); +native(123) static final operator(26) bool != ( string A, string B ); +native(124) static final operator(24) bool ~= ( string A, string B ); +native(322) static final operator(44) string $= ( out string A, coerce string B ); +native(323) static final operator(44) string @= ( out string A, coerce string B ); +native(324) static final operator(45) string -= ( out string A, coerce string B ); + + +// +// String functions. +// + +native(125) static final function int Len ( coerce string S ); +native(126) static final function int InStr ( coerce string S, coerce string t, optional bool bSearchFromRight, optional bool bIgnoreCase, optional int StartPos ); +native(127) static final function string Mid ( coerce string S, int i, optional int j ); +native(128) static final function string Left ( coerce string S, int i ); +native(234) static final function string Right ( coerce string S, int i ); +native(235) static final function string Caps ( coerce string S ); +native(238) static final function string Locs ( coerce string S); +native(236) static final function string Chr ( int i ); +native(237) static final function int Asc ( string S ); +native(201) static final function string Repl ( coerce string Src, coerce string Match, coerce string With, optional bool bCaseSensitive ); + +/** + * Splits Text on the first Occurrence of Split and returns the remaining + * part of Text. + */ +static final function string Split(coerce string Text, coerce string SplitStr, optional bool bOmitSplitStr) +{ + local int pos; + pos = InStr(Text,SplitStr); + if (pos != -1) + { + if (bOmitSplitStr) + { + return Mid(Text,pos+Len(SplitStr)); + } + return Mid(Text,pos); + } + else + { + return Text; + } +} + +/** Get right most number from an actor name (ie Text == "CoverLink_45" returns "45") */ +static final function string GetRightMost( coerce string Text ) +{ + local int Idx; + Idx = InStr(Text,"_"); + while (Idx != -1) + { + Text = Mid(Text,Idx+1,Len(Text)); + Idx = InStr(Text,"_"); + } + return Text; +} + +/** + * Create a single string from an array of strings, using the delimiter specified, optionally ignoring blank members + * + * @param StringArray the array of strings to join into the single string + * @param out_Result [out] will contain a single string containing all elements of the array, separated by the delimiter specified + * @param Delim the delimiter to insert where array elements are concatenated + * @param bIgnoreBlanks TRUE to skip elements which contain emtpy strings + */ +static final function JoinArray(array StringArray, out string out_Result, optional string delim = ",", optional bool bIgnoreBlanks = true) +{ + local int i; + + out_Result = ""; + for (i = 0; i < StringArray.Length; i++) + { + if ( (StringArray[i] != "") || (!bIgnoreBlanks) ) + { + if (out_Result != "" || (!bIgnoreBlanks && i > 0) ) + out_Result $= delim; + + out_Result $= StringArray[i]; + } + } +} + +/** + * Breaks up a delimited string into elements of a string array. + * + * @param BaseString - The string to break up + * @param Pieces - The array to fill with the string pieces + * @param Delim - The string to delimit on + * @param bCullEmpty - If true, empty strings are not added to the array + */ +native static final function ParseStringIntoArray(string BaseString, out array Pieces, string Delim, bool bCullEmpty); + +/** + * Wrapper for splitting a string into an array of strings using a single expression. + */ +static final function array SplitString( string Source, optional string Delimiter=",", optional bool bCullEmpty ) +{ + local array Result; + ParseStringIntoArray(Source, Result, Delimiter, bCullEmpty); + return Result; +} + +/** + * Returns the full path name of the specified object (including package and groups), ie CheckObject::GetPathName(). + */ +native static final function string PathName(Object CheckObject); + + +// +// Object operators and functions. +// + +native(114) static final operator(24) bool == ( Object A, Object B ); +native(119) static final operator(26) bool != ( Object A, Object B ); + +native static final operator(24) bool == ( Interface A, Interface B ); +native static final operator(26) bool != ( Interface A, Interface B ); + +/** + * Determine if a class is a child of another class. + * + * @return TRUE if TestClass == ParentClass, or if TestClass is a child of ParentClass; FALSE otherwise, or if either + * the value for either parameter is 'None'. + */ +native(258) static final function bool ClassIsChildOf( class TestClass, class ParentClass ); +native(197) final function bool IsA( name ClassName ); + + +// +// Name operators. +// + +native(254) static final operator(24) bool == ( name A, name B ); +native(255) static final operator(26) bool != ( name A, name B ); + +// +// Matrix operators and functions +// +native static final operator(34) matrix * (Matrix A, Matrix B); + +native static final function vector TransformVector(Matrix TM, vector A); +native static final function vector InverseTransformVector(Matrix TM, vector A); +native static final function vector TransformNormal(Matrix TM, vector A); +native static final function vector InverseTransformNormal(Matrix TM, vector A); +native static final function matrix MakeRotationTranslationMatrix(vector Translation, Rotator Rotation); +native static final function matrix MakeRotationMatrix(Rotator Rotation); +native static final function rotator MatrixGetRotator(Matrix TM); +native static final function vector MatrixGetOrigin(Matrix TM); +native static final function vector MatrixGetAxis(Matrix TM, EAxis Axis); + +// +// Quaternion functions +// + +native static final function Quat QuatProduct( Quat A, Quat B ); +native static final function float QuatDot( Quat A, Quat B ); +native static final function Quat QuatInvert( Quat A ); +native static final function vector QuatRotateVector( Quat A, vector B ); +native static final function Quat QuatFindBetween( Vector A, Vector B ); +native static final function Quat QuatFromAxisAndAngle( Vector Axis, Float Angle ); +native static final function Quat QuatFromRotator( rotator A ); +native static final function rotator QuatToRotator( Quat A ); +native static final function Quat QuatSlerp( Quat A, Quat B, float Alpha, optional bool bShortestPath ); + +native(270) static final operator(16) Quat + (Quat A, Quat B); +native(271) static final operator(16) Quat - (Quat A, Quat B); + +// +// Vector2D functions +// + +native static final operator(16) vector2d + (vector2d A, vector2d B); +native static final operator(16) vector2d - (vector2d A, vector2d B); +native static final operator(16) vector2d * (vector2d A, float B); +native static final operator(16) vector2d / (vector2d A, float B ); +native static final operator(34) vector2d *= (out vector2d A, float B); +native static final operator(34) vector2d /= (out vector2d A, float B); +native static final operator(34) vector2d += (out vector2d A, vector2d B); +native static final operator(34) vector2d -= (out vector2d A, vector2d B); + + +/** + * Returns the value in the Range, relative to Pct. + * Examples: + * - GetRangeValueByPct( Range, 0.f ) == Range.X + * - GetRangeValueByPct( Range, 1.f ) == Range.Y + * - GetRangeValueByPct( Range, 0.5 ) == (Range.X+Range.Y)/2 + * + * @param Range Range of values. [Range.X,Range.Y] + * @param Pct Relative position in range in percentage. [0,1] + * + * @return the value in the Range, relative to Pct. + */ +static final simulated function float GetRangeValueByPct( Vector2D Range, float Pct ) +{ + return ( Range.X + (Range.Y-Range.X) * Pct ); +} + + +/** + * Returns the relative percentage position Value is in the Range. + * Examples: + * - GetRangeValueByPct( Range, Range.X ) == 0 + * - GetRangeValueByPct( Range, Range.Y ) == 1 + * - GetRangeValueByPct( Range, (Range.X+Range.Y)/2 ) == 0.5 + * + * @param Range Range of values. [Range.X,Range.Y] + * @param Value Value between Range. + * + * @return relative percentage position Value is in the Range. + */ +static final simulated function float GetRangePctByValue( Vector2D Range, float Value ) +{ + return (Range.Y == Range.X) ? Range.X : (Value - Range.X) / (Range.Y - Range.X); +} + +/** + * Useful for mapping a value in one value range to a different value range. Output is clamped to the OutputRange. + * e.g. given that velocities [50..100] correspond to a sound volume of [0.2..1.4], find the + * volume for a velocity of 77. + */ +static final simulated native function float GetMappedRangeValue(vector2d InputRange, vector2d OutputRange, float Value); + + +/** Construct a vector2d variable */ +static final function vector2d vect2d( float InX, float InY ) +{ + local vector2d NewVect2d; + + NewVect2d.X = InX; + NewVect2d.Y = InY; + return NewVect2d; +} + +/** Evaluate a float curve for an input of InVal */ +native static final function float EvalInterpCurveFloat(const out InterpCurveFloat FloatCurve, float InVal); +/** Evaluate a vector curve for an input of InVal */ +native static final function vector EvalInterpCurveVector(const out InterpCurveVector VectorCurve, float InVal); +/** Evaluate a vector2D curve for an input of InVal */ +native static final function vector2D EvalInterpCurveVector2D(const out InterpCurveVector2D Vector2DCurve, float InVal); + +// +// Color functions +// + +static final operator(20) color - (color A, color B) +{ + A.R -= B.R; + A.G -= B.G; + A.B -= B.B; + return A; +} + +static final operator(16) color * (float A, color B) +{ + B.R *= A; + B.G *= A; + B.B *= A; + return B; +} + +static final operator(16) color * (color A, float B) +{ + A.R *= B; + A.G *= B; + A.B *= B; + return A; +} + +static final operator(20) color + (color A, color B) +{ + A.R += B.R; + A.G += B.G; + A.B += B.B; + return A; +} + +/** Create a Color from independant RGBA components */ +static final function Color MakeColor(byte R, byte G, byte B, optional byte A) +{ + local Color C; + + C.R = R; + C.G = G; + C.B = B; + C.A = A; + return C; +} + +/** Util to interpolate between two colors */ +static final function Color LerpColor(Color A, Color B, float Alpha) +{ + local vector FloatA, FloatB, FloatResult; + local float AlphaA, AlphaB, FloatResultAlpha; + local color Result; + + FloatA.X = A.R; + FloatA.Y = A.G; + FloatA.Z = A.B; + AlphaA = A.A; + + FloatB.X = B.R; + FloatB.Y = B.G; + FloatB.Z = B.B; + AlphaB = B.A; + + FloatResult = FloatA + ((FloatB - FloatA) * FClamp(Alpha, 0.0, 1.0)); + FloatResultAlpha = AlphaA + ((AlphaB - AlphaA) * FClamp(Alpha, 0.0, 1.0)); + + Result.R = FloatResult.X; + Result.G = FloatResult.Y; + Result.B = FloatResult.Z; + Result.A = FloatResultAlpha; + + return Result; +} + +// +// Linear Color Functions +// + +/** Create a LinearColor from independant RGBA components. */ +static final function LinearColor MakeLinearColor( float R, float G, float B, float A ) +{ + local LinearColor LC; + + LC.R = R; + LC.G = G; + LC.B = B; + LC.A = A; + return LC; +} + +/** converts a color to a LinearColor + * @param OldColor the color to convert + * @return the matching LinearColor + */ +static final function LinearColor ColorToLinearColor(color OldColor) +{ + return MakeLinearColor(float(OldColor.R) / 255.0, float(OldColor.G) / 255.0, float(OldColor.B) / 255.0, float(OldColor.A) / 255.0); +} + +/** multiply the RGB components of a LinearColor by a float */ +static final operator(16) LinearColor * (LinearColor LC, float Mult) +{ + LC.R *= Mult; + LC.G *= Mult; + LC.B *= Mult; + return LC; +} + +/** subtract the RGB components of B from the RGB components of A */ +static final operator(20) LinearColor - (LinearColor A, LinearColor B) +{ + A.R -= B.R; + A.G -= B.G; + A.B -= B.B; + return A; +} + +//============================================================================= +// General functions. + + +// this define allows us to detect code that is directly calling functions that should only be called through a macro, such as +// LogInternal & WarnInternal +`if(`isdefined(FINAL_RELEASE)) + `if(`isdefined(FINAL_RELEASE_DEBUGCONSOLE)) + `define prevent_direct_calls + `else + `define prevent_direct_calls private + `endif +`else + `define prevent_direct_calls +`endif + +// +// Logging. +// +/** + * Writes a message to the log. This function should never be called directly - use the `log macro instead, which has the following signature: + * + * log( coerce string Msg, optional bool bCondition=true, optional name LogTag='ScriptLog' ); + * + * @param Msg the string to print to the log + * @param bCondition if specified, the message is only printed to the log if this condition is satisfied. + * @param LogTag if specified, the message will be prepended with this tag in the log file + * + */ +native(231) final static `{prevent_direct_calls} function LogInternal( coerce string S, optional name Tag ); + +/** + * Same as calling LogInternal(SomeMsg, 'Warning'); This function should never be called directly - use the `warn macro instead, which has the following signature: + * + * warn( coerce string Msg, optional bool bCondition=true ); + */ +native(232) final static `{prevent_direct_calls} function WarnInternal( coerce string S ); + +native static function string Localize( string SectionName, string KeyName, string PackageName ); + +/** given a path to a localized key of the form "Package.Section.Name", + * return the appropriate value from the localization file for the current language + */ +static final function string ParseLocalizedPropertyPath(string PathName) +{ + local array Pieces; + + ParseStringIntoArray(PathName, Pieces, ".", false); + if (Pieces.length >= 3) + { + return Localize(Pieces[1], Pieces[2], Pieces[0]); + } + else + { + return ""; + } +} + +/** + * Dumps the current script function stack to the log file, useful + * for debugging. + */ +native static final function ScriptTrace(); + + +/** + * Gets the current script function stack back so you can log it to a specific log location (e.g. AILog). + */ +native static final function String GetScriptTrace(); + + +/** + * Script-induced breakpoint. Useful for examining state with the debugger at a particular point in script. + * + * @param UserFlags user-defined flags to be used for e.g. indentifying different calls to DebugBreak in the same session + * @param DebuggerType C++ debugger, UScript debugger, or both + */ +native static final function DebugBreak( optional int UserFlags, optional EDebugBreakType DebuggerType=DEBUGGER_NativeOnly ); + +/** + * Returns the current calling function's name, useful for + * debugging. + */ + +native static final function Name GetFuncName(); + +/** + * Enables/disables script function call trace logging. + */ +native static final function SetUTracing( bool bShouldUTrace ); + +/** + * Returns whether script function call trace logging is currently enabled. + */ +native static final function bool IsUTracing(); + + +// +// Goto state and label. +// + +/** + * Transitions to the desired state and label if specified, + * generating the EndState event in the current state if applicable + * and BeginState in the new state, unless transitioning to the same + * state. + * + * @param NewState - new state to transition to + * + * @param Label - optional Label to jump to + * + * @param bForceEvents - optionally force EndState/BeginState to be + * called even if transitioning to the same state. + * + * @param bKeepStack - prevents state stack from being cleared + */ + +native(113) final function GotoState( optional name NewState, optional name Label, optional bool bForceEvents, optional bool bKeepStack ); + + +/** + * Checks the current state and determines whether or not this object + * is actively in the specified state. Note: This does work with + * inherited states. + * + * @param TestState - state to check for + * @param bTestStateStack - check the state stack? (does *NOT* work with inherited states in the stack) + * + * @return True if currently in TestState + */ + +native(281) final function bool IsInState( name TestState, optional bool bTestStateStack ); + + +/** + * Returns true if TestState derives from TestParentState. + */ + +native final function bool IsChildState(Name TestState, Name TestParentState); + + +/** + * Returns the current state name, useful for determining current + * state similar to IsInState. Note: This *doesn't* work with + * inherited states, in that it will only compare at the lowest + * state level. + * + * @return Name of the current state + */ + +native(284) final function name GetStateName(); + + +/** + * Pushes the new state onto the state stack, setting it as the + * current state until a matching PopState() is called. Note that + * multiple states may be pushed on top of each other. + * You may not push the same state multiple times. + * + * This will call PushedState when entering the state that was just + * pushed on the state stack. It will not call BeginState. + * @see event PushedState + * @see event ContinuedState + * + * @param NewState - name of the state to push on the stack + * + * @param NewLabel - optional name of the state label to jump to + */ + +native final function PushState(Name NewState, optional Name NewLabel); + + +/** + * Pops the current pushed state, returning execution to the previous + * state at the same code point. Note: PopState() will have no effect + * if no state has been pushed onto the stack. + * + * This will call PoppedState when entering the state that was just + * pushed on the state stack. It will not call EndState. + * @see event PoppedState + * @see event PausedState + * + * @param bPopAll - optionally pop all states on the stack to the + * originally executing one + */ + +native final function PopState(optional bool bPopAll); + + +/** + * Logs the current state stack for debugging purposes. + */ + +native final function DumpStateStack(); + + + +// +// State notification events +// + +/** + * Called immediately when entering a state, while within the + * GotoState() call that caused the state change (before any + * state code is executed). + */ +event BeginState(Name PreviousStateName); + +/** + * Called immediately before going out of the current state, while + * within the GotoState() call that caused the state change, and + * before BeginState() is called within the new state. + */ +event EndState(Name NextStateName); + +/** + * Called immediately in the new state that was pushed onto the + * state stack, before any state code is executed. + */ +event PushedState(); + +/** + * Called immediately in the current state that is being popped off + * of the state stack, before the new state is activated. + */ +event PoppedState(); + +/** + * Called on the state that is being paused because of a PushState(). + */ +event PausedState(); + +/** + * Called on the state that is no longer paused because of a PopState(). + */ +event ContinuedState(); + + + +// +// Probe messages. +// + +native(117) final function Enable( name ProbeFunc ); +native(118) final function Disable( name ProbeFunc ); + + +// +// Object handling. +// + +native static final function name GetEnum( object E, coerce int i ); +native static final function object DynamicLoadObject( string ObjectName, class ObjectClass, optional bool MayFail ); +native static final function object FindObject( string ObjectName, class ObjectClass ); + + +// +// Configuration. +// + +native(536) final function SaveConfig(); +native static final function StaticSaveConfig(); + +/** + * Import property values from JSON formatted string + * + * @param PropertyName name of the property owned by this object + * @param JSON string that contains JSON format property values + */ +native static final function ImportJSON(string PropertyName, const out string JSON); + +/* +/** + * Saves the current value for all configurable properties in this object to the .ini file. The values for any global config + * properties will be propagated to all child classes. + * + * @param bRefreshInstances if TRUE, all instances of this class will re-load the values for their configurable properties + * from the .ini. THIS WILL CLOBBER ANY EXISTING VALUES! + * @param PropertyName if specified, only this property's value will be saved. + */ +native(536) final function SaveConfig( optional bool bRefreshInstances, optional string PropertyName ); + +/** + * Saves the default values for all configurable properties in this object's class to the .ini file. The values for any global config + * properties will be propagated to all child classes. + * + * @param bRefreshInstances if TRUE, all instances of this class will re-load the values for their configurable properties + * from the .ini. THIS WILL CLOBBER ANY EXISTING VALUES! + * @param PropertyName if specified, only this property's value will be saved. + */ +native static final function StaticSaveConfig( optional bool bRefreshInstances, optional string PropertyName ); + +/** + * Resets the values for configurable properties in this object's class back to the values in the corresponding Default*.ini file. + * + * @param bRefreshInstances if TRUE, all instances of this class will re-load the values for their configurable properties + * from the .ini. THIS WILL CLOBBER ANY EXISTING VALUES! + * @param PropertyName if specified, only this property's value will be reset. + */ +native static final function ResetConfig( optional bool bRefreshInstances, optional string PropertyName ); + +/** + * Removes the values for all configurable properties in this object's class from the .ini file. + * + * @param PropertyName if specified, only this property's value will be removed. + */ +native(537) final function ClearConfig( optional string PropertyName ); + +/** + * Removes the values for all configurable properties in this object's class from the .ini file. + * + * @param PropertyName if specified, only this property's value will be removed. + */ +native static final function StaticClearConfig( optional string PropertyName ); +*/ + +/** + * Retrieve the names of sections which contain data for the specified PerObjectConfig class. + * + * @param SearchClass the PerObjectConfig class to retrieve sections for. + * @param out_SectionNames will receive the list of section names that correspond to PerObjectConfig sections of the specified class + * @param ObjectOuter the Outer to use for determining which file to look in. Specify the same object that is used when creating the PerObjectConfig + * objects that sections are being retrieved for. (PerObjectConfig data is generally stored in a file named after the Outer used when + * creating those objects, unless the PerObjectConfig class specifies a config file in its class declaration); + * specify None to use the transient package as the Outer. + * @param MaxResults the maximum number of section names to retrieve + * + * @return TRUE if the file specified was found and it contained at least 1 section for the specified class + */ +native static final function bool GetPerObjectConfigSections( class SearchClass, out array out_SectionNames, optional Object ObjectOuter, optional int MaxResults=1024 ); + + +// +// Maths +// + +/** + * Calculates the distance of a given Point in world space to a given line, + * defined by the vector couple (Origin, Direction). + * + * @param Point point to check distance to Axis + * @param Line unit vector indicating the direction to check against + * @param Origin point of reference used to calculate distance + * @param OutClosestPoint optional point that represents the closest point projected onto Axis + * + * @return distance of Point from line defined by (Origin, Direction) + */ +native final function float PointDistToLine(vector Point, vector Line, vector Origin, optional out vector OutClosestPoint); + +/** + * Returns closest distance from a point to a segment. + * + * @param Point point to check distance for + * @param StartPoint StartPoint of segment + * @param EndPoint EndPoint of segment + * @param OutClosestPoint Closest point on segment. + * + * @return closest distance from Point to segment defined by (StartPoint, EndPoint). + */ +native final function float PointDistToSegment(Vector Point, Vector StartPoint, Vector EndPoint, optional out Vector OutClosestPoint); + +/** + * Calculates the distance of a given point to the given plane. (defined by a combination of vector and rotator) + * Rotator.AxisX = U, Rotator.AxisY = Normal, Rotator.AxisZ = V + * + * @param Point Point to check distance to Orientation + * @param Orientation Rotator indicating the direction to check against + * @param Origin Point of reference used to calculate distance + * @param out_ClosestPoint Optional point that represents the closest point projected onto Plane defined by the couple (Origin, Orientation) + * + * @return distance of Point to plane + */ + +simulated final function float PointDistToPlane( Vector Point, Rotator Orientation, Vector Origin, optional out vector out_ClosestPoint ) +{ + local vector AxisX, AxisY, AxisZ, PointNoZ, OriginNoZ; + local float fPointZ, fProjDistToAxis; + + // Get orientation axis' + GetAxes(Orientation, AxisX, AxisY, AxisZ); + + // Remove Z component of Point Location + fPointZ = Point dot AxisZ; + PointNoZ = Point - fPointZ * AxisZ; + + // Remove Z component of Origin + OriginNoZ = Origin - (Origin dot AxisZ) * AxisZ; + + // Projected distance of Point onto AxisX. + fProjDistToAxis = (PointNoZ - OriginNoZ) Dot AxisX; + out_ClosestPoint = OriginNoZ + fProjDistToAxis * AxisX + fPointZ * AxisZ; + + // return distance to closest point + return VSize(out_ClosestPoint-Point); +} + + +/** +* Calculates a point's projection onto a plane +* @param Point point to project onto the plane +* @param A point on plane +* @param B point on plane +* @param C point on plane +* @return projection of point onto the plane defined by ABC +*/ +native static final function Vector PointProjectToPlane(Vector Point, Vector A, Vector B, Vector C); + +/** + * Calculates the dotted distance of vector 'Direction' to coordinate system O(AxisX,AxisY,AxisZ). + * + * Orientation: (consider 'O' the first person view of the player, and 'Direction' a vector pointing to an enemy) + * - positive azimuth means enemy is on the right of crosshair. (negative means left). + * - positive elevation means enemy is on top of crosshair, negative means below. + * + * @Note: 'Azimuth' (.X) sign is changed to represent left/right and not front/behind. front/behind is the funtion's return value. + * + * @param OutDotDist .X = 'Direction' dot AxisX relative to plane (AxisX,AxisZ). (== Cos(Azimuth)) + * .Y = 'Direction' dot AxisX relative to plane (AxisX,AxisY). (== Sin(Elevation)) + * @param Direction direction of target. + * @param AxisX X component of reference system. + * @param AxisY Y component of reference system. + * @param AxisZ Z component of reference system. + * + * @return true if 'Direction' is facing AxisX (Direction dot AxisX >= 0.f) + */ + +native static final function bool GetDotDistance +( + out Vector2D OutDotDist, + Vector Direction, + Vector AxisX, + Vector AxisY, + Vector AxisZ +); + +/** + * Calculates the angular distance of vector 'Direction' to coordinate system O(AxisX,AxisY,AxisZ). + * + * Orientation: (consider 'O' the first person view of the player, and 'Direction' a vector pointing to an enemy) + * - positive azimuth means enemy is on the right of crosshair. (negative means left). + * - positive elevation means enemy is on top of crosshair, negative means below. + * + * @param out_AngularDist .X = Azimuth angle (in radians) of 'Direction' vector compared to plane (AxisX,AxisZ). + * .Y = Elevation angle (in radians) of 'Direction' vector compared to plane (AxisX,AxisY). + * @param Direction Direction of target. + * @param AxisX X component of reference system. + * @param AxisY Y component of reference system. + * @param AxisZ Z component of reference system. + * + * @output true if 'Direction' is facing AxisX (Direction dot AxisX >= 0.f) + */ +native static final function bool GetAngularDistance +( + out Vector2D OutAngularDist, + Vector Direction, + Vector AxisX, + Vector AxisY, + Vector AxisZ +); + +/** + * Converts Dot distance to angular distance. + * @see GetAngularDistance() and GetDotDistance(). + * + * @param OutAngDist Angular distance in radians. + * @param DotDist Dot distance. + */ +native static final function GetAngularFromDotDist( out Vector2D OutAngDist, Vector2D DotDist ); + + +/* transforms angular distance in radians to degrees */ +static final simulated function GetAngularDegreesFromRadians( out Vector2D OutFOV ) +{ + OutFOV.X = OutFOV.X*RadToDeg; + OutFOV.Y = OutFOV.Y*RadToDeg; +} + +/** + * Returns world space angle (in radians) of given vector + * + * @param Dir Vector to be converted into heading angle + */ +static final simulated function float GetHeadingAngle( Vector Dir ) +{ + local float Angle; + + Angle = Acos( FClamp( Dir.X, -1.f, 1.f ) ); + if( Dir.Y < 0.f ) + { + Angle *= -1.f; + } + + return Angle; +} + +/** + * Gets the difference in world space angles in [-PI,PI] range + * + * @param A1 First angle + * @param A2 Second angle + */ +static final simulated function float FindDeltaAngle( float A1, float A2 ) +{ + local float Delta; + + // Find the difference + Delta = A2 - A1; + // If change is larger than PI + if( Delta > PI ) + { + // Flip to negative equivalent + Delta = Delta - (PI * 2.f); + } + else if( delta < -PI ) + { + // Otherwise, if change is smaller than -PI + // Flip to positive equivalent + Delta = Delta + (PI * 2.f); + } + + // Return delta in [-PI,PI] range + return Delta; +} + +static final simulated function float UnwindHeading( float a ) +{ + while( a > PI ) + { + a -= (PI * 2.0f); + } + + while( a < -PI ) + { + a += (PI * 2.0f); + } + + return a; +} + + +/** + * Converts a float value to a 0-255 byte, assuming a range of + * 0.f to 1.f. + * + * @param inputFloat - float to convert + * + * @param bSigned - optional, assume a range of -1.f to 1.f + * + * @return byte value 0-255 + */ + +simulated final function byte FloatToByte(float inputFloat, optional bool bSigned) +{ + if (bSigned) + { + // handle a 0.02f threshold so we can guarantee valid 0/255 values + if (inputFloat > 0.98f) + { + return 255; + } + else if (inputFloat < -0.98f) + { + return 0; + } + else + { + return byte((inputFloat+1.f)*128.f); + } + } + else + { + if (inputFloat > 0.9961f) + { + return 255; + } + else if (inputFloat < 0.004f) + { + return 0; + } + else + { + return byte(inputFloat*255.f); + } + } +} + + +/** + * Converts a 0-255 byte to a float value, to a range of 0.f + * to 1.f. + * + * @param inputByte - byte to convert + * + * @param bSigned - optional, spit out -1.f to 1.f instead + * + * @return newly converted value + */ + +simulated final function float ByteToFloat(byte inputByte, optional bool bSigned) +{ + if( bSigned ) + { + return ((float(inputByte)/128.f)-1.f); + } + else + { + return (float(inputByte)/255.f); + } +} + +/** + * Returns whether the object is pending kill and about to have references to it NULLed by + * the garbage collector. + * + * @return TRUE if object is pending kill, FALSE otherwise + */ +native final function bool IsPendingKill(); + +/** @return the name of the package this object resides in */ +final function name GetPackageName() +{ + local Object O; + + O = self; + while (O.Outer != None) + { + O = O.Outer; + } + return O.Name; +} + +/** + * Script hook to FRotationMatrix::TransformFVector(). + */ +native final function vector TransformVectorByRotation(rotator SourceRotation, vector SourceVector, optional bool bInverse); + + +/** + * Returns a string containing a system timestamp + */ +native final function string TimeStamp(); + +/** + * Return the system time components. + */ +native final function GetSystemTime( out int Year, out int Month, out int DayOfWeek, out int Day, out int Hour, out int Min, out int Sec, out int MSec ); + +/** @return the current engine version number for this build */ +native final function int GetEngineVersion(); + +/** @return the changelist number that was used when generating this build */ +native final function int GetBuildChangelistNumber(); + +final function int GetRandomOptionSumFrequency( const out array FreqList ) +{ + local float FreqSum, RandVal; + local int Idx; + + for( Idx = 0; Idx < FreqList.Length; Idx++ ) + { + FreqSum += FreqList[Idx]; + } + + RandVal = FRand() * FreqSum; + FreqSum = 0; + for( Idx = 0; Idx < FreqList.Length; Idx++ ) + { + FreqSum += FreqList[Idx]; + if( RandVal < FreqSum ) + { + return Idx; + } + } + + return -1; +} + +/** @return the three character language identifier currently in use */ +native static final function string GetLanguage(); + + +/** + * Invalidate the specified Guid (sets all values to zero) + * + * @param InGuid Guid to invalidate + */ +native static final function InvalidateGuid( out Guid InGuid ); + +/** + * Determine if the specified Guid is valid or not + * + * @param InGuid Guid to check the validity of + * + * @return True if the specified Guid is valid, false if it is not + */ +native static final function bool IsGuidValid( const out Guid InGuid ); + +/** Create a new Guid */ +native static final function Guid CreateGuid(); + +/** + * Construct a Guid from the specified string, if possible + * + * @param InGuidString String to construct the Guid from (should be in a format matching the output of GetStringFromGuid) + * + * @return A Guid constructed from the specified string, if possible; Otherwise, an invalid Guid (all zeroes) + */ +native static final function Guid GetGuidFromString( const out string InGuidString ); + +/** + * Get the string representation of the specified Guid + * + * @param InGuid Guid to get the string representation of + * + * @return The string representation of the specified Guid + */ +native static final function string GetStringFromGuid( const out guid InGuid ); + + +native static final function int ProfNodeStart(string TimerName); +native static final function ProfNodeStop(optional int AssumedTimerIndex = -1); +native static final function ProfNodeSetTimeThresholdSeconds(float Threshold); +native static final function ProfNodeSetDepthThreshold(int Depth); +native static final function ProfNodeEvent(string EventName); + +defaultproperties +{ +} diff --git a/Development/Src/Core/Classes/Subsystem.uc b/Development/Src/Core/Classes/Subsystem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Core/Globals.uci b/Development/Src/Core/Globals.uci old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AICommandBase.uc b/Development/Src/Engine/Classes/AICommandBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AIController.uc b/Development/Src/Engine/Classes/AIController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AISwitchablePylon.uc b/Development/Src/Engine/Classes/AISwitchablePylon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AccessControl.uc b/Development/Src/Engine/Classes/AccessControl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Actor.uc b/Development/Src/Engine/Classes/Actor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorComponent.uc b/Development/Src/Engine/Classes/ActorComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactory.uc b/Development/Src/Engine/Classes/ActorFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAI.uc b/Development/Src/Engine/Classes/ActorFactoryAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryActor.uc b/Development/Src/Engine/Classes/ActorFactoryActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAmbientSound.uc b/Development/Src/Engine/Classes/ActorFactoryAmbientSound.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAmbientSoundMovable.uc b/Development/Src/Engine/Classes/ActorFactoryAmbientSoundMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAmbientSoundNonLoop.uc b/Development/Src/Engine/Classes/ActorFactoryAmbientSoundNonLoop.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAmbientSoundNonLoopingToggleable.uc b/Development/Src/Engine/Classes/ActorFactoryAmbientSoundNonLoopingToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAmbientSoundSimple.uc b/Development/Src/Engine/Classes/ActorFactoryAmbientSoundSimple.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryAmbientSoundSimpleToggleable.uc b/Development/Src/Engine/Classes/ActorFactoryAmbientSoundSimpleToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryApexClothing.uc b/Development/Src/Engine/Classes/ActorFactoryApexClothing.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryApexDestructible.uc b/Development/Src/Engine/Classes/ActorFactoryApexDestructible.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryArchetype.uc b/Development/Src/Engine/Classes/ActorFactoryArchetype.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryCoverLink.uc b/Development/Src/Engine/Classes/ActorFactoryCoverLink.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryDecal.uc b/Development/Src/Engine/Classes/ActorFactoryDecal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryDecalMovable.uc b/Development/Src/Engine/Classes/ActorFactoryDecalMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryDominantDirectionalLight.uc b/Development/Src/Engine/Classes/ActorFactoryDominantDirectionalLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryDominantDirectionalLightMovable.uc b/Development/Src/Engine/Classes/ActorFactoryDominantDirectionalLightMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryDynamicSM.uc b/Development/Src/Engine/Classes/ActorFactoryDynamicSM.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryEmitter.uc b/Development/Src/Engine/Classes/ActorFactoryEmitter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryFogVolumeConstantDensityInfo.uc b/Development/Src/Engine/Classes/ActorFactoryFogVolumeConstantDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryFogVolumeLinearHalfspaceDensityInfo.uc b/Development/Src/Engine/Classes/ActorFactoryFogVolumeLinearHalfspaceDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryFogVolumeSphericalDensityInfo.uc b/Development/Src/Engine/Classes/ActorFactoryFogVolumeSphericalDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryFracturedStaticMesh.uc b/Development/Src/Engine/Classes/ActorFactoryFracturedStaticMesh.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryInteractiveFoliage.uc b/Development/Src/Engine/Classes/ActorFactoryInteractiveFoliage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryLensFlare.uc b/Development/Src/Engine/Classes/ActorFactoryLensFlare.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryLight.uc b/Development/Src/Engine/Classes/ActorFactoryLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryMover.uc b/Development/Src/Engine/Classes/ActorFactoryMover.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryPathNode.uc b/Development/Src/Engine/Classes/ActorFactoryPathNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryPhysicsAsset.uc b/Development/Src/Engine/Classes/ActorFactoryPhysicsAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryPlayerStart.uc b/Development/Src/Engine/Classes/ActorFactoryPlayerStart.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryPylon.uc b/Development/Src/Engine/Classes/ActorFactoryPylon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryRigidBody.uc b/Development/Src/Engine/Classes/ActorFactoryRigidBody.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactorySkeletalMesh.uc b/Development/Src/Engine/Classes/ActorFactorySkeletalMesh.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactorySkeletalMeshCinematic.uc b/Development/Src/Engine/Classes/ActorFactorySkeletalMeshCinematic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactorySkeletalMeshMAT.uc b/Development/Src/Engine/Classes/ActorFactorySkeletalMeshMAT.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryStaticMesh.uc b/Development/Src/Engine/Classes/ActorFactoryStaticMesh.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryTrigger.uc b/Development/Src/Engine/Classes/ActorFactoryTrigger.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ActorFactoryVehicle.uc b/Development/Src/Engine/Classes/ActorFactoryVehicle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Admin.uc b/Development/Src/Engine/Classes/Admin.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AdvancedReachSpec.uc b/Development/Src/Engine/Classes/AdvancedReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AkBank.uc b/Development/Src/Engine/Classes/AkBank.uc old mode 100755 new mode 100644 index a124372..0891517 --- a/Development/Src/Engine/Classes/AkBank.uc +++ b/Development/Src/Engine/Classes/AkBank.uc @@ -1,12 +1,13 @@ -class AkBank extends Object - native; - -var() bool AutoLoad; -var() bool GenerateDefinition; -var transient bool bIsAsyncLoading; - -defaultproperties -{ - AutoLoad=true - GenerateDefinition=true -} \ No newline at end of file +class AkBank extends Object + native + config(Engine); + +var () bool AutoLoad; +var () bool GenerateDefinition; +var transient bool bIsAsyncLoading; + +defaultproperties +{ + AutoLoad=true + GenerateDefinition=true +} diff --git a/Development/Src/Engine/Classes/AkBaseSoundObject.uc b/Development/Src/Engine/Classes/AkBaseSoundObject.uc old mode 100755 new mode 100644 index 22fe0c3..feaea2d --- a/Development/Src/Engine/Classes/AkBaseSoundObject.uc +++ b/Development/Src/Engine/Classes/AkBaseSoundObject.uc @@ -1,3 +1,4 @@ -class AkBaseSoundObject extends Object - abstract - native; +class AkBaseSoundObject extends Object + abstract + native + config(Engine); diff --git a/Development/Src/Engine/Classes/AkEvent.uc b/Development/Src/Engine/Classes/AkEvent.uc old mode 100755 new mode 100644 index df81e8a..cb0febf --- a/Development/Src/Engine/Classes/AkEvent.uc +++ b/Development/Src/Engine/Classes/AkEvent.uc @@ -1,8 +1,9 @@ -class AkEvent extends AkBaseSoundObject - native; - -var() AkBank RequiredBank; -var() AkEvent m_FirstPersonEvent; -var() AkEvent m_ShutdownEvent; -var() bool m_bIgnoreOcclusion; -var() bool m_bForce1pAnd3p; +class AkEvent extends AkBaseSoundObject + native + config(Engine); + +var () AkBank RequiredBank; +var () AkEvent m_FirstPersonEvent; +var () AkEvent m_ShutdownEvent; +var () bool m_bIgnoreOcclusion; +var () bool m_bForce1pAnd3p; diff --git a/Development/Src/Engine/Classes/AmbientOcclusionEffect.uc b/Development/Src/Engine/Classes/AmbientOcclusionEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSound.uc b/Development/Src/Engine/Classes/AmbientSound.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundMovable.uc b/Development/Src/Engine/Classes/AmbientSoundMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundNonLoop.uc b/Development/Src/Engine/Classes/AmbientSoundNonLoop.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundNonLoopingToggleable.uc b/Development/Src/Engine/Classes/AmbientSoundNonLoopingToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundSimple.uc b/Development/Src/Engine/Classes/AmbientSoundSimple.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundSimpleSpline.uc b/Development/Src/Engine/Classes/AmbientSoundSimpleSpline.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundSimpleSplineNonLoop.uc b/Development/Src/Engine/Classes/AmbientSoundSimpleSplineNonLoop.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundSimpleToggleable.uc b/Development/Src/Engine/Classes/AmbientSoundSimpleToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundSpline.uc b/Development/Src/Engine/Classes/AmbientSoundSpline.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AmbientSoundSplineMultiCue.uc b/Development/Src/Engine/Classes/AmbientSoundSplineMultiCue.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnalyticEventsBase.uc b/Development/Src/Engine/Classes/AnalyticEventsBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimMetaData.uc b/Development/Src/Engine/Classes/AnimMetaData.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimMetaData_SkelControl.uc b/Development/Src/Engine/Classes/AnimMetaData_SkelControl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimMetaData_SkelControlKeyFrame.uc b/Development/Src/Engine/Classes/AnimMetaData_SkelControlKeyFrame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNode.uc b/Development/Src/Engine/Classes/AnimNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeAdditiveBlending.uc b/Development/Src/Engine/Classes/AnimNodeAdditiveBlending.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeAimOffset.uc b/Development/Src/Engine/Classes/AnimNodeAimOffset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlend.uc b/Development/Src/Engine/Classes/AnimNodeBlend.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendBase.uc b/Development/Src/Engine/Classes/AnimNodeBlendBase.uc old mode 100755 new mode 100644 index b3075af..ef176c7 --- a/Development/Src/Engine/Classes/AnimNodeBlendBase.uc +++ b/Development/Src/Engine/Classes/AnimNodeBlendBase.uc @@ -1,124 +1,138 @@ - -/** - * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. - */ - -class AnimNodeBlendBase extends AnimNode - native(Anim) - hidecategories(Object) - abstract; - -/** Link to a child AnimNode. */ -struct native AnimBlendChild -{ - /** Name of link. */ - var() Name Name; - /** Child AnimNode. */ - var editinline export AnimNode Anim; - /** Weight with which this child will be blended in. Sum of all weights in the Children array must be 1.0 */ - var float Weight; - /** Weight used for blending. See AnimBlendType. */ - var const transient float BlendWeight; - /** - * Whether this child's skeleton should be mirrored. - * Do not use this lightly, mirroring is rather expensive. - * So minimize the number of times mirroring is done in the tree. - */ - var bool bMirrorSkeleton; - /** Is Children Additive Animation. */ - var bool bIsAdditive; - /** For editor use. */ - var editoronly int DrawY; -}; - -/** Array of children AnimNodes. These will be blended together and the results returned by GetBoneAtoms. */ -var editfixedsize editinline export array Children; - -/** Whether children connectors (ie elements of the Children array) may be added/removed. */ -var bool bFixNumChildren; -/** Type of animation blending. Affects how the weight interpolates. */ -var() AlphaBlendType BlendType; - -cpptext -{ - /** Call DeferredInitAnim() if the node required it. Recurses through the Tree. Increase UAnimNode::CurrentSeachTag before calling. */ - virtual void CallDeferredInitAnim(); - - // UAnimNode interface - virtual void TickAnim(FLOAT DeltaSeconds); - - virtual void BuildParentNodesArray(); - virtual void BuildTickArray(TArray& OutTickArray); - - FORCEINLINE FLOAT GetBlendWeight(FLOAT ChildWeight); - FORCEINLINE void SetBlendTypeWeights(); - virtual void GetBoneAtoms(FBoneAtomArray& Atoms, const TArray& DesiredBones, FBoneAtom& RootMotionDelta, INT& bHasRootMotion, FCurveKeyArray& CurveKeys); - virtual void GetChildBoneAtoms( INT ChildIdx, FBoneAtomArray& Atoms, const TArray& DesiredBones, FBoneAtom& RootMotionDelta, INT& bHasRootMotion, FCurveKeyArray& CurveKeys ); - - /** - * Get mirrored bone atoms from desired child index. - * Bones are mirrored using the SkelMirrorTable. - */ - void GetMirroredBoneAtoms(FBoneAtomArray& Atoms, INT ChildIndex, const TArray& DesiredBones, FBoneAtom& RootMotionDelta, INT& bHasRootMotion, FCurveKeyArray& CurveKeys); - - /** - * Draws this node in the AnimTreeEditor. - * - * @param Canvas The canvas to use. - * @param SelectedNodes Reference to array of all currently selected nodes, potentially including this node - * @param bShowWeight If TRUE, show the global percentage weight of this node, if applicable. - */ - virtual void DrawAnimNode(FCanvas* Canvas, const TArray& SelectedNodes, UBOOL bShowWeight); - virtual FString GetNodeTitle(); - - virtual FIntPoint GetConnectionLocation(INT ConnType, INT ConnIndex); - virtual INT Extend2DSlider(FCanvas* Canvas, const FIntPoint &SliderPos, INT SliderWidth, UBOOL bAABBLiesWithinViewport, INT LoSliderHandleHeight) { return 0; } - - /** For debugging. Return the sum of the weights of all children nodes. Should always be 1.0. */ - FLOAT GetChildWeightTotal(); - - /** Notification to this blend that a child UAnimNodeSequence has reached the end and stopped playing. Not called if child has bLooping set to true or if user calls StopAnim. */ - virtual void OnChildAnimEnd(UAnimNodeSequence* Child, FLOAT PlayedTime, FLOAT ExcessTime); - - /** A child connector has been added */ - virtual void OnAddChild(INT ChildNum); - /** A child connector has been removed */ - virtual void OnRemoveChild(INT ChildNum); - /** A child Anim has been modified*/ - virtual void OnChildAnimChange(INT ChildNum){}; - - /** Rename all child nodes upon Add/Remove, so they match their position in the array. */ - virtual void RenameChildConnectors(); - - /** internal code for GetNodes(); should only be called from GetNodes() or from the GetNodesInternal() of this node's parent */ - virtual void GetNodesInternal(TArray& Nodes); - - /** Called after (copy/)pasted - reset values or re-link if needed**/ - virtual void OnPaste(); - - /** - * Resolve conflicts for blend curve weights if same morph target exists - * - * @param InChildrenCurveKeys Array of curve keys for children. The index should match up with Children. - * @param OutCurveKeys Result output after blending is resolved - * - * @return Number of new addition to OutCurveKeys - */ - virtual INT BlendCurveWeights(const FArrayCurveKeyArray& InChildrenCurveKeys, FCurveKeyArray& OutCurveKeys); - -protected: - /** - * Update Child Weight : Make sure childIndex isn't OOB - */ - virtual void UpdateChildWeight(INT ChildIndex); -} - -native function PlayAnim(bool bLoop = false, float Rate = 1.0f, float StartTime = 0.0f); -native function StopAnim(); -// calls PlayAnim with the current settings -native function ReplayAnim(); - -defaultproperties -{ - BlendType=ABT_Linear -} + +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ + +class AnimNodeBlendBase extends AnimNode + native(Anim) + hidecategories(Object) + abstract; + +/** Link to a child AnimNode. */ +struct native AnimBlendChild +{ + /** Name of link. */ + var() Name Name; + /** Child AnimNode. */ + var editinline export AnimNode Anim; + /** Weight with which this child will be blended in. Sum of all weights in the Children array must be 1.0 */ + var float Weight; + /** Weight used for blending. See AnimBlendType. */ + var const transient float BlendWeight; + /** + * Whether this child's skeleton should be mirrored. + * Do not use this lightly, mirroring is rather expensive. + * So minimize the number of times mirroring is done in the tree. + */ + var bool bMirrorSkeleton; + /** Is Children Additive Animation. */ + var bool bIsAdditive; + /** For editor use. */ + var editoronly int DrawY; +}; + +struct native AnimationEndInformation +{ + var init array TreeBranchToLeaf; + var float PlayedTime; + var float ExcessTime; + + structdefaultproperties + { + TreeBranchToLeaf=none + PlayedTime=0.0000000 + ExcessTime=0.0000000 + } +}; + +/** Array of children AnimNodes. These will be blended together and the results returned by GetBoneAtoms. */ +var editfixedsize editinline export array Children; + +/** Whether children connectors (ie elements of the Children array) may be added/removed. */ +var bool bFixNumChildren; +/** Type of animation blending. Affects how the weight interpolates. */ +var() AlphaBlendType BlendType; + +cpptext +{ + /** Call DeferredInitAnim() if the node required it. Recurses through the Tree. Increase UAnimNode::CurrentSeachTag before calling. */ + virtual void CallDeferredInitAnim(); + + // UAnimNode interface + virtual void TickAnim(FLOAT DeltaSeconds); + + virtual void BuildParentNodesArray(); + virtual void BuildTickArray(TArray& OutTickArray); + + FORCEINLINE FLOAT GetBlendWeight(FLOAT ChildWeight); + FORCEINLINE void SetBlendTypeWeights(); + virtual void GetBoneAtoms(FBoneAtomArray& Atoms, const TArray& DesiredBones, FBoneAtom& RootMotionDelta, INT& bHasRootMotion, FCurveKeyArray& CurveKeys); + virtual void GetChildBoneAtoms( INT ChildIdx, FBoneAtomArray& Atoms, const TArray& DesiredBones, FBoneAtom& RootMotionDelta, INT& bHasRootMotion, FCurveKeyArray& CurveKeys ); + + /** + * Get mirrored bone atoms from desired child index. + * Bones are mirrored using the SkelMirrorTable. + */ + void GetMirroredBoneAtoms(FBoneAtomArray& Atoms, INT ChildIndex, const TArray& DesiredBones, FBoneAtom& RootMotionDelta, INT& bHasRootMotion, FCurveKeyArray& CurveKeys); + + /** + * Draws this node in the AnimTreeEditor. + * + * @param Canvas The canvas to use. + * @param SelectedNodes Reference to array of all currently selected nodes, potentially including this node + * @param bShowWeight If TRUE, show the global percentage weight of this node, if applicable. + */ + virtual void DrawAnimNode(FCanvas* Canvas, const TArray& SelectedNodes, UBOOL bShowWeight); + virtual FString GetNodeTitle(); + + virtual FIntPoint GetConnectionLocation(INT ConnType, INT ConnIndex); + virtual INT Extend2DSlider(FCanvas* Canvas, const FIntPoint &SliderPos, INT SliderWidth, UBOOL bAABBLiesWithinViewport, INT LoSliderHandleHeight) { return 0; } + + /** For debugging. Return the sum of the weights of all children nodes. Should always be 1.0. */ + FLOAT GetChildWeightTotal(); + + /** Notification to this blend that a child UAnimNodeSequence has reached the end and stopped playing. Not called if child has bLooping set to true or if user calls StopAnim. */ + virtual void OnChildAnimEnd(UAnimNodeSequence* Child, FLOAT PlayedTime, FLOAT ExcessTime); + + /** A child connector has been added */ + virtual void OnAddChild(INT ChildNum); + /** A child connector has been removed */ + virtual void OnRemoveChild(INT ChildNum); + /** A child Anim has been modified*/ + virtual void OnChildAnimChange(INT ChildNum){}; + + /** Rename all child nodes upon Add/Remove, so they match their position in the array. */ + virtual void RenameChildConnectors(); + + /** internal code for GetNodes(); should only be called from GetNodes() or from the GetNodesInternal() of this node's parent */ + virtual void GetNodesInternal(TArray& Nodes); + + /** Called after (copy/)pasted - reset values or re-link if needed**/ + virtual void OnPaste(); + + /** + * Resolve conflicts for blend curve weights if same morph target exists + * + * @param InChildrenCurveKeys Array of curve keys for children. The index should match up with Children. + * @param OutCurveKeys Result output after blending is resolved + * + * @return Number of new addition to OutCurveKeys + */ + virtual INT BlendCurveWeights(const FArrayCurveKeyArray& InChildrenCurveKeys, FCurveKeyArray& OutCurveKeys); + +protected: + /** + * Update Child Weight : Make sure childIndex isn't OOB + */ + virtual void UpdateChildWeight(INT ChildIndex); +} + +native function PlayAnim(bool bLoop = false, float Rate = 1.0f, float StartTime = 0.0f); +native function StopAnim(); +// calls PlayAnim with the current settings +native function ReplayAnim(); + +defaultproperties +{ + BlendType=ABT_Linear +} diff --git a/Development/Src/Engine/Classes/AnimNodeBlendByBase.uc b/Development/Src/Engine/Classes/AnimNodeBlendByBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendByPhysics.uc b/Development/Src/Engine/Classes/AnimNodeBlendByPhysics.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendByPosture.uc b/Development/Src/Engine/Classes/AnimNodeBlendByPosture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendByProperty.uc b/Development/Src/Engine/Classes/AnimNodeBlendByProperty.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendBySpeed.uc b/Development/Src/Engine/Classes/AnimNodeBlendBySpeed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendDirectional.uc b/Development/Src/Engine/Classes/AnimNodeBlendDirectional.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendList.uc b/Development/Src/Engine/Classes/AnimNodeBlendList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendMultiBone.uc b/Development/Src/Engine/Classes/AnimNodeBlendMultiBone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeBlendPerBone.uc b/Development/Src/Engine/Classes/AnimNodeBlendPerBone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeCrossfader.uc b/Development/Src/Engine/Classes/AnimNodeCrossfader.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeFrame.uc b/Development/Src/Engine/Classes/AnimNodeFrame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeMirror.uc b/Development/Src/Engine/Classes/AnimNodeMirror.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodePlayCustomAnim.uc b/Development/Src/Engine/Classes/AnimNodePlayCustomAnim.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeRandom.uc b/Development/Src/Engine/Classes/AnimNodeRandom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeScalePlayRate.uc b/Development/Src/Engine/Classes/AnimNodeScalePlayRate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeScaleRateBySpeed.uc b/Development/Src/Engine/Classes/AnimNodeScaleRateBySpeed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeSequence.uc b/Development/Src/Engine/Classes/AnimNodeSequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeSequenceBlendBase.uc b/Development/Src/Engine/Classes/AnimNodeSequenceBlendBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeSequenceBlendByAim.uc b/Development/Src/Engine/Classes/AnimNodeSequenceBlendByAim.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeSlot.uc b/Development/Src/Engine/Classes/AnimNodeSlot.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNodeSynch.uc b/Development/Src/Engine/Classes/AnimNodeSynch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNode_MultiBlendPerBone.uc b/Development/Src/Engine/Classes/AnimNode_MultiBlendPerBone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify.uc b/Development/Src/Engine/Classes/AnimNotify.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_AkEvent.uc b/Development/Src/Engine/Classes/AnimNotify_AkEvent.uc new file mode 100644 index 0000000..866be4c --- /dev/null +++ b/Development/Src/Engine/Classes/AnimNotify_AkEvent.uc @@ -0,0 +1,20 @@ +class AnimNotify_AkEvent extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () AkEvent AkEvent; +var () bool bFollowActor; +var () bool m_bIgnoreIfMeshHidden; +var () bool m_bIgnoreIfActorHidden; +var () name BoneName; + +native function AkEvent GetAkEventToPlay(SkeletalMeshComponent skel); // Export UAnimNotify_AkEvent::execGetAkEventToPlay(FFrame&, void* const) + +defaultproperties +{ + bFollowActor=true + m_bIgnoreIfActorHidden=true +} diff --git a/Development/Src/Engine/Classes/AnimNotify_CameraEffect.uc b/Development/Src/Engine/Classes/AnimNotify_CameraEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_ClothingMaxDistanceScale.uc b/Development/Src/Engine/Classes/AnimNotify_ClothingMaxDistanceScale.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Footstep.uc b/Development/Src/Engine/Classes/AnimNotify_Footstep.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Forcefield.uc b/Development/Src/Engine/Classes/AnimNotify_Forcefield.uc old mode 100755 new mode 100644 index bd6f2a5..da26164 --- a/Development/Src/Engine/Classes/AnimNotify_Forcefield.uc +++ b/Development/Src/Engine/Classes/AnimNotify_Forcefield.uc @@ -1,29 +1,11 @@ -/** - * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. - */ -class AnimNotify_ForceField extends AnimNotify - native(Anim); - - -/** Type of Forcefield **/ -var() instanced NxForceFieldComponent ForceFieldComponent; - -/** If this ForceField system should be attached to the location.**/ -var() bool bAttach; - -/** The socketname in which to attach the ForceField. Looks for a socket name first then bone name **/ -var() name SocketName; - -/** The bone name in which to attach the ForceField. Looks for a socket name first then bone name **/ -var() name BoneName; - -cpptext -{ - // AnimNotify interface. - virtual void Notify( class UAnimNodeSequence* NodeSeq ); - virtual FString GetEditorComment() { return TEXT("ForceField"); } -} - -defaultproperties -{ -} +class AnimNotify_ForceField extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () export editinline NxForceFieldComponent ForceFieldComponent; +var () bool bAttach; +var () name SocketName; +var () name BoneName; diff --git a/Development/Src/Engine/Classes/AnimNotify_Kismet.uc b/Development/Src/Engine/Classes/AnimNotify_Kismet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_PawnMaterialParam.uc b/Development/Src/Engine/Classes/AnimNotify_PawnMaterialParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_PlayFaceFxAnim.uc b/Development/Src/Engine/Classes/AnimNotify_PlayFaceFxAnim.uc old mode 100755 new mode 100644 index edd4cf1..0c8f641 --- a/Development/Src/Engine/Classes/AnimNotify_PlayFaceFxAnim.uc +++ b/Development/Src/Engine/Classes/AnimNotify_PlayFaceFxAnim.uc @@ -1,63 +1,21 @@ - -/** - * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. - * Play a facial animation on a character. - */ - -class AnimNotify_PlayFaceFXAnim extends AnimNotify_Scripted; - -/** Reference to FaceFX AnimSet package the animation is in */ -var() FaceFXAnimSet FaceFXAnimSetRef; // @todo: we need to none this out so there are no hard references to FaceFX AnimSets -var() String GroupName; -var() String AnimName; - -/** The sound cue to play for the this animation**/ -var() SoundCue SoundCueToPlay; - -/** If a FaceFX animation is already playing, then override if TRUE, skip is FALSE */ -var() bool bOverridePlayingAnim; -/** Chance to play. 0 - 1.f */ -var() float PlayFrequency; - -event Notify(Actor Owner, AnimNodeSequence AnimSeqInstigator) -{ - - // If this animation doesn't play all the time - // See if we should play or ignore it! - if( PlayFrequency < 1.f ) - { - if( FRand() > PlayFrequency ) - { - return; - } - } - else if( PlayFrequency > 1.f ) - { - `log("Play FaceFX animation from notify" @ AnimSeqInstigator.AnimSeqName @ "for" @ Owner @ "GroupName:" @ GroupName @ "AnimName:" @ AnimName); - `log(" PlayFrequency > 1.0 is useless. Chance to play valid range is from 0.0 to 1.0."); - } - - if( Owner != None ) - { - //`log(Self @ "Play FaceFX animation from notify" @ AnimSeqInstigator.AnimSeqName @ "for" @ Owner @ "GroupName:" @ GroupName @ "AnimName:" @ AnimName @ "(bOverridePlayingAnim:"$ bOverridePlayingAnim @ "IsActorPlayingFaceFXAnim:" $ Owner.IsActorPlayingFaceFXAnim() $")"); - - // If actor can (is able to) play - if (Owner.CanActorPlayFaceFXAnim()) - { - // If a Face FX animation is already playing, should we override it? - if( bOverridePlayingAnim || !Owner.IsActorPlayingFaceFXAnim()) - { - if (Owner.PlayActorFaceFXAnim(FaceFXAnimSetRef, GroupName, AnimName, SoundCueToPlay) == FALSE) - { - `log(AnimSeqInstigator.AnimSeq.Outer @ "(" @ AnimSeqInstigator.AnimSeqName @ ")" @ " - PlayFaceFXAnim notifier failed. Verify if this notifier is valid.",,'DevFaceFX'); - } - } - } - } -} - -defaultproperties -{ - bOverridePlayingAnim=TRUE - PlayFrequency=1.f -} +class AnimNotify_PlayFaceFXAnim extends AnimNotify_Scripted + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () FaceFXAnimSet FaceFXAnimSetRef; +var () string GroupName; +var () string AnimName; +var () SoundCue SoundCueToPlay; +var () AkEvent AkEventToPlay; +var () bool bOverridePlayingAnim; +var () float PlayFrequency; + +event Notify(Actor Owner, AnimNodeSequence AnimSeqInstigator) { } + +defaultproperties +{ + bOverridePlayingAnim=true + PlayFrequency=1.0000000 +} diff --git a/Development/Src/Engine/Classes/AnimNotify_PlayParticleEffect.uc b/Development/Src/Engine/Classes/AnimNotify_PlayParticleEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Rumble.uc b/Development/Src/Engine/Classes/AnimNotify_Rumble.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Script.uc b/Development/Src/Engine/Classes/AnimNotify_Script.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Scripted.uc b/Development/Src/Engine/Classes/AnimNotify_Scripted.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Sound.uc b/Development/Src/Engine/Classes/AnimNotify_Sound.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_Trails.uc b/Development/Src/Engine/Classes/AnimNotify_Trails.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimNotify_ViewShake.uc b/Development/Src/Engine/Classes/AnimNotify_ViewShake.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimObject.uc b/Development/Src/Engine/Classes/AnimObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimSequence.uc b/Development/Src/Engine/Classes/AnimSequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimSet.uc b/Development/Src/Engine/Classes/AnimSet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimTree.uc b/Development/Src/Engine/Classes/AnimTree.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_Automatic.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_Automatic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_BitwiseCompressOnly.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_BitwiseCompressOnly.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_LeastDestructive.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_LeastDestructive.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_PerTrackCompression.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_PerTrackCompression.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RemoveEverySecondKey.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RemoveEverySecondKey.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RemoveLinearKeys.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RemoveLinearKeys.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RemoveTrivialKeys.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RemoveTrivialKeys.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RevertToRaw.uc b/Development/Src/Engine/Classes/AnimationCompressionAlgorithm_RevertToRaw.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexAsset.uc b/Development/Src/Engine/Classes/ApexAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexClothingAsset.uc b/Development/Src/Engine/Classes/ApexClothingAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexComponentBase.uc b/Development/Src/Engine/Classes/ApexComponentBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexDestructibleActor.uc b/Development/Src/Engine/Classes/ApexDestructibleActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexDestructibleActorSpawnable.uc b/Development/Src/Engine/Classes/ApexDestructibleActorSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexDestructibleAsset.uc b/Development/Src/Engine/Classes/ApexDestructibleAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexDestructibleDamageParameters.uc b/Development/Src/Engine/Classes/ApexDestructibleDamageParameters.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexDynamicComponent.uc b/Development/Src/Engine/Classes/ApexDynamicComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexGenericAsset.uc b/Development/Src/Engine/Classes/ApexGenericAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexStaticComponent.uc b/Development/Src/Engine/Classes/ApexStaticComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ApexStaticDestructibleComponent.uc b/Development/Src/Engine/Classes/ApexStaticDestructibleComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AppNotificationsBase.uc b/Development/Src/Engine/Classes/AppNotificationsBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ArrowComponent.uc b/Development/Src/Engine/Classes/ArrowComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AudioComponent.uc b/Development/Src/Engine/Classes/AudioComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AudioDevice.uc b/Development/Src/Engine/Classes/AudioDevice.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AutoLadder.uc b/Development/Src/Engine/Classes/AutoLadder.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AutoNavMeshPathObstacleUnregister.uc b/Development/Src/Engine/Classes/AutoNavMeshPathObstacleUnregister.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/AutoTestManager.uc b/Development/Src/Engine/Classes/AutoTestManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BlockingVolume.uc b/Development/Src/Engine/Classes/BlockingVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BlurEffect.uc b/Development/Src/Engine/Classes/BlurEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BookMark.uc b/Development/Src/Engine/Classes/BookMark.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BookMark2D.uc b/Development/Src/Engine/Classes/BookMark2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BroadcastHandler.uc b/Development/Src/Engine/Classes/BroadcastHandler.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Brush.uc b/Development/Src/Engine/Classes/Brush.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BrushComponent.uc b/Development/Src/Engine/Classes/BrushComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/BrushShape.uc b/Development/Src/Engine/Classes/BrushShape.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Camera.uc b/Development/Src/Engine/Classes/Camera.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraActor.uc b/Development/Src/Engine/Classes/CameraActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraAnim.uc b/Development/Src/Engine/Classes/CameraAnim.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraAnimInst.uc b/Development/Src/Engine/Classes/CameraAnimInst.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraConeComponent.uc b/Development/Src/Engine/Classes/CameraConeComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraModifier.uc b/Development/Src/Engine/Classes/CameraModifier.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraModifier_CameraShake.uc b/Development/Src/Engine/Classes/CameraModifier_CameraShake.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CameraShake.uc b/Development/Src/Engine/Classes/CameraShake.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Canvas.uc b/Development/Src/Engine/Classes/Canvas.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CeilingReachSpec.uc b/Development/Src/Engine/Classes/CeilingReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CheatManager.uc b/Development/Src/Engine/Classes/CheatManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ClipPadEntry.uc b/Development/Src/Engine/Classes/ClipPadEntry.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CloudSaveSystem.uc b/Development/Src/Engine/Classes/CloudSaveSystem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CloudSaveSystemDataBlobStoreInterface.uc b/Development/Src/Engine/Classes/CloudSaveSystemDataBlobStoreInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CloudSaveSystemKVSInterface.uc b/Development/Src/Engine/Classes/CloudSaveSystemKVSInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CloudStorageBase.uc b/Development/Src/Engine/Classes/CloudStorageBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CloudStorageBaseCloudSaveSystemKVS.uc b/Development/Src/Engine/Classes/CloudStorageBaseCloudSaveSystemKVS.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CloudStorageUpgradeHelper.uc b/Development/Src/Engine/Classes/CloudStorageUpgradeHelper.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CodecMovie.uc b/Development/Src/Engine/Classes/CodecMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CodecMovieFallback.uc b/Development/Src/Engine/Classes/CodecMovieFallback.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ColorScaleVolume.uc b/Development/Src/Engine/Classes/ColorScaleVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Console.uc b/Development/Src/Engine/Classes/Console.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Controller.uc b/Development/Src/Engine/Classes/Controller.uc old mode 100755 new mode 100644 index 02f88fb..d75faed --- a/Development/Src/Engine/Classes/Controller.uc +++ b/Development/Src/Engine/Classes/Controller.uc @@ -1,1935 +1,1951 @@ -//============================================================================= -// Controller, the base class of players or AI. -// -// Controllers are non-physical actors that can be attached to a pawn to control -// its actions. PlayerControllers are used by human players to control pawns, while -// AIControFllers implement the artificial intelligence for the pawns they control. -// Controllers take control of a pawn using their Possess() method, and relinquish -// control of the pawn by calling UnPossess(). -// -// Controllers receive notifications for many of the events occuring for the Pawn they -// are controlling. This gives the controller the opportunity to implement the behavior -// in response to this event, intercepting the event and superceding the Pawn's default -// behavior. -// -// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. -//============================================================================= -class Controller extends Actor - native(Controller) - nativereplication - implements(Interface_NavigationHandle) - abstract; - -//============================================================================= -// BASE VARIABLES - -/** Pawn currently being controlled by this controller. Use Pawn.Possess() to take control of a pawn */ -var editinline repnotify Pawn Pawn; - -/** PlayerReplicationInfo containing replicated information about the player using this controller (only exists if bIsPlayer is true). */ -var editinline repnotify PlayerReplicationInfo PlayerReplicationInfo; - -var const int PlayerNum; // The player number - per-match player number. -var const private Controller NextController; // chained Controller list - -var bool bIsPlayer; // Pawn is a player or a player-bot. -var bool bGodMode; // cheat - when true, can't be killed or hurt - -var bool bSoaking; // pause and focus on pawn controlled by this controller if it encounters a problem -var bool bSlowerZAcquire; // AI acquires targets above or below more slowly than at same height - - -// Input buttons. -var input byte bFire; - -/** If true, the controlled pawn will attempt to alt fire */ -var input byte bAltFire; - -//============================================================================= -// PHYSICS VARIABLES - -var bool bNotifyPostLanded; // if true, event NotifyPostLanded() after pawn lands after falling. -var bool bNotifyApex; // if true, event NotifyJumpApex() when at apex of jump -var float MinHitWall; // Minimum HitNormal dot Velocity.Normal to get a HitWall event from the physics - - -//============================================================================= -// NAVIGATION VARIABLES - -/** Navigation handle used for pathing when using NavMesh */ -var class NavigationHandleClass; -var editinline NavigationHandle NavigationHandle; -/** Override search start position for navhandle path cache info */ -var bool bOverrideSearchStart; -var Vector OverrideSearchStart; - -var bool bAdvancedTactics; // serpentine movement between pathnodes -var bool bCanDoSpecial; // are we able to traverse R_SPECIAL reach specs? -var bool bAdjusting; // adjusting around obstacle -var bool bPreparingMove; // set true while pawn sets up for a latent move - -/** Used by AI, set true to force AI to use serpentine/strafing movement when possible. */ -var bool bForceStrafe; - -var float MoveTimer; // internal timer for latent moves, useful for setting a max duration -var Actor MoveTarget; // actor being moved toward -var BasedPosition DestinationPosition; // destination controlled pawn is moving toward -var BasedPosition FocalPosition; // position controlled pawn is looking at -var Actor Focus; // actor being looked at -var Actor GoalList[4]; // used by navigation AI - list of intermediate goals -var BasedPosition AdjustPosition; // intermediate destination used while adjusting around obstacle (bAdjusting is true) -var NavigationPoint StartSpot; // where player started the match - -/** Cached list of nodes filled in by the last call to FindPathXXX */ -var array RouteCache; - -var ReachSpec CurrentPath; // Current path being moved along -var ReachSpec NextRoutePath; // Next path in route to destination -var vector CurrentPathDir; // direction vector of current path -var Actor RouteGoal; // final destination for current route -var float RouteDist; // total distance for current route -var float LastRouteFind; // time at which last route finding occured -var InterpActor PendingMover; // InterpActor that controller is currently waiting on (e.g. door or lift) - -/** used for discovering navigation failures */ -var Actor FailedMoveTarget; -var int MoveFailureCount; - -var float GroundPitchTime; - -var Pawn ShotTarget; // Target most recently aimed at -var const Actor LastFailedReach; // cache to avoid trying failed actorreachable more than once per frame -var const float FailedReachTime; -var const vector FailedReachLocation; - -const LATENT_MOVETOWARD = 503; // LatentAction number for Movetoward() latent function - -//============================================================================= -// AI VARIABLES - -var const bool bLOSflag; // used for alternating LineOfSight traces -var bool bSkipExtraLOSChecks; // Skip viewport nudging checks for LOS -var bool bNotifyFallingHitWall; // If true, controller gets NotifyFallingHitWall() when pawn hits wall while falling -var float SightCounter; // Used to keep track of when to check player visibility -var float SightCounterInterval; // how often player visibility is checked -var bool bEarlyOutOfSighTestsForSameType;// when an AI already has an enemy of this type, early out from sight tests to me -/** multiplier to cost of NavigationPoints that another Pawn is currently anchored to */ -var float InUseNodeCostMultiplier; - -/** additive modifier to cost of NavigationPoints that require high jumping */ -var int HighJumpNodeCostModifier; - -/** Max time when moving toward a pawn target before latent movetoward returns (allowing reassessment of movement) */ -var float MaxMoveTowardPawnTargetTime; - -// Enemy information -var Pawn Enemy; - -/** Forces all velocity to be directed towards reaching Destination */ -var bool bPreciseDestination; - -/** Do visibility checks, call SeePlayer events() for pawns on same team as self. Setting to true will result in a lot more AI visibility line checks. */ -var bool bSeeFriendly; - -/** List of destinations whose source portals are visible to this Controller */ -struct native VisiblePortalInfo -{ - /** source actor of portal */ - var Actor Source; - /** destination actor of portal */ - var Actor Destination; - - structcpptext - { - FVisiblePortalInfo() - {} - FVisiblePortalInfo(EEventParm) - { - appMemzero(this, sizeof(FVisiblePortalInfo)); - } - FVisiblePortalInfo(AActor* InSource, AActor* InDest) - : Source(InSource), Destination(InDest) - {} - - UBOOL operator==(const FVisiblePortalInfo& Other) - { - return Other.Source == Source && Other.Destination == Destination; - } - } -}; -var array VisiblePortals; - -/** indicates that the AI is within a lane in its CurrentPath (like a road) - * to avoid ramming other Pawns also using that path - * set by MoveToward() when it detects multiple AI pawns using the same path - * when this is true, serpentine movement and cutting corners are disabled - */ -var bool bUsingPathLanes; - -/** the offset from the center of CurrentPath to the center of the lane in use (the Pawn's CollisionRadius defines the extent) - * positive values are to the Pawn's right, negative to the Pawn's left - */ -var float LaneOffset; - -/** Used for reversing rejected mover base movement */ -var const rotator OldBasedRotation; - -/** allows easy modification of the search extent provided by setuppathfindingparams() */ -var vector NavMeshPath_SearchExtent_Modifier; - -cpptext -{ - INT* GetOptimizedRepList( BYTE* InDefault, FPropertyRetirement* Retire, INT* Ptr, UPackageMap* Map, UActorChannel* Channel ); - UBOOL Tick( FLOAT DeltaTime, enum ELevelTick TickType ); - virtual void Spawned(); - virtual void BeginDestroy(); - - virtual UBOOL IsPlayerOwned() - { - return IsPlayerOwner(); - } - - virtual UBOOL IsPlayerOwner() - { - return bIsPlayer; - } - virtual AController* GetAController() { return this; } - - // Seeing and hearing checks - virtual UBOOL CanHear(const FVector& NoiseLoc, FLOAT Loudness, AActor *Other); - virtual void ShowSelf(); - virtual UBOOL ShouldCheckVisibilityOf(AController* C); - virtual DWORD SeePawn(APawn *Other, UBOOL bMaySkipChecks = TRUE); - virtual DWORD LineOfSightTo(const AActor* Other, INT bUseLOSFlag=0, const FVector* chkLocation = NULL, UBOOL bTryAlternateTargetLoc = FALSE); - void CheckEnemyVisible(); - virtual void HearNoise(AActor* NoiseMaker, FLOAT Loudness, FName NoiseType); - - AActor* HandleSpecial(AActor *bestPath); - virtual INT AcceptNearbyPath(AActor* goal); - virtual UReachSpec* PrepareForMove( ANavigationPoint *NavGoal, UReachSpec* Path ); - UReachSpec* GetNextRoutePath( ANavigationPoint *NavGoal ); - virtual void AdjustFromWall(FVector HitNormal, AActor* HitActor); - void SetRouteCache( ANavigationPoint *EndPath, FLOAT StartDist, FLOAT EndDist ); - AActor* FindPath(const FVector& Point, AActor* Goal, UBOOL bWeightDetours, INT MaxPathLength, UBOOL bReturnPartial); - /** given the passed in goal for pathfinding, set bTransientEndPoint on all NavigationPoints that are acceptable - * destinations on the path network - * @param EndAnchor the Anchor for the goal on the navigation network - * @param Goal the goal actor we're pathfinding toward (may be NULL) - * @param GoalLocation the goal world location we're pathfinding toward - */ - virtual void MarkEndPoints(ANavigationPoint* EndAnchor, AActor* Goal, const FVector& GoalLocation); - /** gives the Controller a chance to pre-empt pathfinding with its own result (if a cached path is still valid, for example) - * called just before navigation network traversal, after Anchor determination and NavigationPoint transient properties are set up - * only called when using the 'FindEndPoint' node evaluator - * @param EndAnchor - Anchor for Goal on the path network - * @param Goal - Destination Actor we're trying to path to (may be NULL) - * @param GoalLocation - the goal world location we're pathfinding toward - * @param bWeightDetours - whether we should consider short detours for pickups and such - * @param BestWeight - weighting value for best node on path - if this function returns true, findPathToward() will return this value - * @return whether the normal pathfinding should be skipped - */ - virtual UBOOL OverridePathTo(ANavigationPoint* EndAnchor, AActor* Goal, const FVector& GoalLocation, UBOOL bWeightDetours, FLOAT& BestWeight) - { - return FALSE; - } - AActor* SetPath(INT bInitialPath=1); - virtual UBOOL WantsLedgeCheck(); - virtual UBOOL StopAtLedge(); - virtual void PrePollMove() - {} - virtual void PostPollMove() - {} - virtual void PollMoveComplete(); - virtual AActor* GetViewTarget(); - virtual void UpdateEnemyInfo(APawn* AcquiredEnemy) {}; - virtual void JumpOverWall(FVector WallNormal); - virtual void UpdatePawnRotation(); - virtual UBOOL ForceReached(ANavigationPoint *Nav, const FVector& TestPosition); - virtual FRotator SetRotationRate(FLOAT deltaTime); - virtual FVector DesiredDirection(); - /** activates path lanes for this Controller's current movement and adjusts its destination accordingly - * @param DesiredLaneOffset the offset from the center of the Controller's CurrentPath that is desired - * the Controller sets its LaneOffset as close as it can get to it without - * allowing any part of the Pawn's cylinder outside of the CurrentPath - */ - void SetPathLane(FLOAT InPathOffset); - virtual void FailMove(); - - // falling physics AI hooks - virtual void PreAirSteering(FLOAT DeltaTime) {}; - virtual void PostAirSteering(FLOAT DeltaTime) {}; - virtual void PostPhysFalling(FLOAT DeltaTime) {}; - virtual void PostPhysWalking(FLOAT DeltaTime) {}; - virtual void PostPhysSpider(FLOAT DeltaTime) {}; - virtual UBOOL AirControlFromWall(float DeltaTime, FVector& RealAcceleration) { return FALSE; }; - virtual void NotifyJumpApex(); - - virtual void PostBeginPlay(); - virtual void PostScriptDestroyed(); - - virtual void ClearCrossLevelPaths(ULevel *Level); - - // Natives. - DECLARE_FUNCTION(execPollWaitForLanding); - virtual DECLARE_FUNCTION(execPollMoveTo); - virtual DECLARE_FUNCTION(execPollMoveToward); - DECLARE_FUNCTION(execPollFinishRotation); - - virtual UBOOL ShouldOffsetCorners() { return TRUE; } - virtual UBOOL ShouldUsePathLanes() { return TRUE; } - virtual UBOOL ShouldIgnoreNavigationBlockingFor(const AActor* Other){ return !Other->bBlocksNavigation; } - - // AnimControl Matinee Track support - - /** Used to provide information on the slots that this Actor provides for animation to Matinee. */ - virtual void GetAnimControlSlotDesc(TArray& OutSlotDescs); - - /** - * Called by Matinee when we open it to start controlling animation on this Actor. - * Is also called again when the GroupAnimSets array changes in Matinee, so must support multiple calls. - */ - virtual void PreviewBeginAnimControl(class UInterpGroup* InInterpGroup); - - /** Called each frame by Matinee to update the desired sequence by name and position within it. */ - virtual void PreviewSetAnimPosition(FName SlotName, INT ChannelIndex, FName InAnimSeqName, FLOAT InPosition, UBOOL bLooping, UBOOL bFireNotifies, UBOOL bEnableRootMotion, FLOAT DeltaTime); - - /** Called each frame by Matinee to update the desired animation channel weights for this Actor. */ - virtual void PreviewSetAnimWeights(TArray& SlotInfos); - - /** Called by Matinee when we close it after we have been controlling animation on this Actor. */ - virtual void PreviewFinishAnimControl(class UInterpGroup* InInterpGroup); - - /** Function used to control FaceFX animation in the editor (Matinee). */ - virtual void PreviewUpdateFaceFX(UBOOL bForceAnim, const FString& GroupName, const FString& SeqName, FLOAT InPosition); - - /** Used by Matinee playback to start a FaceFX animation playing. */ - virtual void PreviewActorPlayFaceFX(const FString& GroupName, const FString& SeqName, USoundCue* InSoundCue); - - /** Used by Matinee to stop current FaceFX animation playing. */ - virtual void PreviewActorStopFaceFX(); - - /** Used in Matinee to get the AudioComponent we should play facial animation audio on. */ - virtual UAudioComponent* PreviewGetFaceFXAudioComponent(); - - /** Get the UFaceFXAsset that is currently being used by this Actor when playing facial animations. */ - virtual class UFaceFXAsset* PreviewGetActorFaceFXAsset(); - - /** Called each frame by Matinee to update the weight of a particular MorphNodeWeight. */ - virtual void PreviewSetMorphWeight(FName MorphNodeName, FLOAT MorphWeight); - - /** Called each frame by Matinee to update the scaling on a SkelControl. */ - virtual void PreviewSetSkelControlScale(FName SkelControlName, FLOAT Scale); - - /** Called each frame by Matinee to update the controlstrength on a SkelControl. */ - virtual void SetSkelControlStrength(FName SkelControlName, FLOAT ControlStrength); - - /** Called each from while the Matinee action is running, to set the animation weights for the actor. */ - virtual void SetAnimWeights( const TArray& SlotInfos ); - - /** base function called to kick off moveto latent action (called from execMoveTo and execMoveToDirectNonPathPos) */ - virtual void MoveTo(const FVector& Dest, AActor* ViewFocus, FLOAT DesiredOffset, UBOOL bShouldWalk); - - /** base function called to kick off movetoward latent action (called from execMoveToward) */ - virtual void MoveToward(AActor* goal, AActor* viewfocus, FLOAT DesiredOffset, UBOOL bStrafe, UBOOL bShouldWalk); - - - /** IMPLEMENT Interface_NavigationHandle */ - virtual UBOOL CanCoverSlip(ACoverLink* Link, INT SlotIdx); - virtual void SetupPathfindingParams( FNavMeshPathParams& out_ParamCache ); - virtual void InitForPathfinding() {} - virtual INT ExtraEdgeCostToAddWhenActive(FNavMeshEdgeBase* Edge) { return 0; } - virtual FVector GetEdgeZAdjust(FNavMeshEdgeBase* Edge); - /** END */ - - virtual FLOAT GetMaxDropHeight(); -} - - -replication -{ - if (bNetDirty && Role==ROLE_Authority) - PlayerReplicationInfo, Pawn; -} - -/** returns whether this Controller is a locally controlled PlayerController - * @note not valid until the Controller is completely spawned (i.e, unusable in Pre/PostBeginPlay()) - */ -native function bool IsLocalPlayerController(); - -/** returns whether this controller is a local controller. - * @RETURN true always for non-playercontroller - */ -native function bool IsLocalController(); - -/** Route Cache Operations - * Allows operations on nodes in the route while modifying route (ie before emptying the cache) - * Should override in subclasses as needed - */ -native function RouteCache_Empty(); -native function RouteCache_AddItem( NavigationPoint Nav ); -native function RouteCache_InsertItem( NavigationPoint Nav, int Idx=0 ); -native function RouteCache_RemoveItem( NavigationPoint Nav ); -native function RouteCache_RemoveIndex( int InIndex, int Count=1 ); - -/** Set FocalPoint as absolute position or offset from base */ -native final function SetFocalPoint( Vector FP, optional bool bOffsetFromBase ); -/** Retrive the final position that controller should be looking at */ -native final function Vector GetFocalPoint(); - -/** Set Destination as absolute position or offset from base */ -native final function SetDestinationPosition( Vector Dest, optional bool bOffsetFromBase ); -/** Retrive the final position that controller should be moving to */ -native final function Vector GetDestinationPosition(); - -native final virtual function SetAdjustLocation( Vector NewLoc, bool bAdjust, optional bool bOffsetFromBase ); -native final function Vector GetAdjustLocation(); - -/** - * this event is called when an edge is deleted that this controller's handle is actively using - */ -event NotifyPathChanged(); - - -/** Called when we start an AnimControl track operating on this Actor. Supplied is the set of AnimSets we are going to want to play from. */ -simulated event BeginAnimControl(InterpGroup InInterpGroup) -{ - Pawn.BeginAnimControl(InInterpGroup); -} - -/** Called each from while the Matinee action is running, with the desired sequence name and position we want to be at. */ -simulated event SetAnimPosition(name SlotName, int ChannelIndex, name InAnimSeqName, float InPosition, bool bFireNotifies, bool bLooping, bool bEnableRootMotion) -{ - Pawn.SetAnimPosition(SlotName, ChannelIndex, InAnimSeqName, InPosition, bFireNotifies, bLooping, bEnableRootMotion); -} - -/** Called when we are done with the AnimControl track. */ -simulated event FinishAnimControl(InterpGroup InInterpGroup) -{ - Pawn.FinishAnimControl(InInterpGroup); -} - -/** - * Play FaceFX animations on this Actor. - * Returns TRUE if succeeded, if failed, a log warning will be issued. - */ -event bool PlayActorFaceFXAnim(FaceFXAnimSet AnimSet, String GroupName, String SeqName, SoundCue SoundCueToPlay ) -{ - return Pawn.PlayActorFaceFXAnim(AnimSet, GroupName, SeqName, SoundCueToPlay); -} - -/** Stop any matinee FaceFX animations on this Actor. */ -event StopActorFaceFXAnim() -{ - Pawn.StopActorFaceFXAnim(); -} - -/** Called each frame by Matinee to update the weight of a particular MorphNodeWeight. */ -event SetMorphWeight(name MorphNodeName, float MorphWeight) -{ - Pawn.SetMorphweight(MorphNodeName, MorphWeight); -} - -/** Called each frame by Matinee to update the scaling on a SkelControl. */ -event SetSkelControlScale(name SkelControlName, float Scale) -{ - Pawn.SetSkelControlScale(SkelControlName, Scale); -} -/* epic =============================================== -* ::PostBeginPlay -* -* Overridden to create the player replication info and -* perform other mundane initialization tasks. -* -* ===================================================== -*/ -event PostBeginPlay() -{ - Super.PostBeginPlay(); - - if ( !bDeleteMe && (WorldInfo.NetMode != NM_Client) ) - { - if( bIsPlayer ) - { - // create a new player replication info - InitPlayerReplicationInfo(); - } - InitNavigationHandle(); - } - // randomly offset the sight counter to avoid hitches - SightCounter = SightCounterInterval * FRand(); -} - -/* epic =============================================== -* ::Reset -* -* Resets various properties to their default state, used -* for round resetting, etc. -* -* ===================================================== -*/ -function Reset() -{ - super.Reset(); - Enemy = None; - StartSpot = None; - bAdjusting = false; - bPreparingMove = false; - MoveTimer = -1; - MoveTarget = None; - CurrentPath = None; - RouteGoal = None; -} - -/* epic =============================================== -* ::ClientSetLocation -* -* Replicated function to set the pawn location and -* rotation, allowing server to force (ex. teleports). -* -* ===================================================== -*/ -reliable client function ClientSetLocation( vector NewLocation, rotator NewRotation ) -{ - SetRotation(NewRotation); - if ( Pawn != None ) - { - if ( (Rotation.Pitch > Pawn.MaxPitchLimit) - && (Rotation.Pitch < 65536 - Pawn.MaxPitchLimit) ) - { - If (Rotation.Pitch < 32768) - NewRotation.Pitch = Pawn.MaxPitchLimit; - else - NewRotation.Pitch = 65536 - Pawn.MaxPitchLimit; - } - NewRotation.Roll = 0; - Pawn.SetRotation( NewRotation ); - Pawn.SetLocation( NewLocation ); - } -} - -/* epic =============================================== -* ::ClientSetRotation -* -* Replicated function to set the pawn rotation, allowing -* the server to force. -* -* ===================================================== -*/ -reliable client function ClientSetRotation( rotator NewRotation, optional bool bResetCamera ) -{ - SetRotation(NewRotation); - if ( Pawn != None ) - { - NewRotation.Pitch = 0; - NewRotation.Roll = 0; - Pawn.SetRotation( NewRotation ); - } -} - -/* epic =============================================== -* ::ReplicatedEvent -* -* Called when a variable with the property flag "RepNotify" is replicated -* -* ===================================================== -*/ -simulated event ReplicatedEvent(name VarName) -{ - if (VarName == 'PlayerReplicationInfo') - { - if (PlayerReplicationInfo != None) - { - PlayerReplicationInfo.ClientInitialize(self); - } - } - else - { - Super.ReplicatedEvent(VarName); - } -} - -/** Kismet Action to possess a Pawn or a vehicle */ -function OnPossess(SeqAct_Possess inAction) -{ - local Pawn OldPawn; - local Vehicle V; - - // if we're driving a vehicle, and we should try to get out first. - V = Vehicle(Pawn); - if( inAction.bTryToLeaveVehicle && - V != None ) - { - V.DriverLeave( TRUE ); - } - - if( inAction.PawnToPossess != None ) - { - V = Vehicle(inAction.PawnToPossess); - if( Pawn!= None && V != None ) - { - V.TryToDrive( Pawn ); - } - else - { - OldPawn = Pawn; - UnPossess(); - Possess( inAction.PawnToPossess, FALSE ); - - if( inAction.bKillOldPawn && OldPawn != None ) - { - OldPawn.Destroy(); - } - } - } -} - - -/* epic =============================================== -* ::Possess -* -* Handles attaching this controller to the specified -* pawn. -* -* ===================================================== -*/ -event Possess(Pawn inPawn, bool bVehicleTransition) -{ - if (inPawn.Controller != None) - { - inPawn.Controller.UnPossess(); - } - - inPawn.PossessedBy(self, bVehicleTransition); - Pawn = inPawn; - - // preserve Pawn's rotation initially for placed Pawns - SetFocalPoint( Pawn.Location + 512*vector(Pawn.Rotation), TRUE ); - Restart(bVehicleTransition); - - if( Pawn.Weapon == None ) - { - ClientSwitchToBestWeapon(); - } -} - -/* epic =============================================== -* ::UnPossess -* -* Called to unpossess our pawn for any reason that is not death -* (death handled by PawnDied()) -* -* ===================================================== -*/ -event UnPossess() -{ - if ( Pawn != None ) - { - Pawn.UnPossessed(); - Pawn = None; - } -} - -/* epic =============================================== -* ::PawnDied -* -* Called to unpossess our pawn because it has died -* (other unpossession handled by UnPossess()) -* -* ===================================================== -*/ -function PawnDied(Pawn inPawn) -{ - local int idx; - - if ( inPawn != Pawn ) - { // if that's not our current pawn, leave - return; - } - - // abort any latent actions - TriggerEventClass(class'SeqEvent_Death',self); - for (idx = 0; idx < LatentActions.Length; idx++) - { - if (LatentActions[idx] != None) - { - LatentActions[idx].AbortFor(self); - } - } - LatentActions.Length = 0; - - if ( Pawn != None ) - { - SetLocation(Pawn.Location); - Pawn.UnPossessed(); - } - Pawn = None; - - // if we are a player, transition to the dead state - if ( bIsPlayer ) - { - // only if the game hasn't ended, - if ( !GamePlayEndedState() ) - { - // so that we can respawn - GotoState('Dead'); - } - } - // otherwise destroy this controller - else - { - Destroy(); - } -} - -function bool GamePlayEndedState() -{ - return false; -} - -/* epic =============================================== -* ::NotifyPostLanded -* -* Called after pawn lands after falling if bNotifyPostLanded is true -* -* ===================================================== -*/ -event NotifyPostLanded(); - -/* epic =============================================== -* ::Destroyed -* -* Called once this controller has been deleted, overridden -* to cleanup any lingering references, etc. -* -* ===================================================== -*/ -event Destroyed() -{ - if (Role == ROLE_Authority) - { - // if we are a player, log out - if ( bIsPlayer && (WorldInfo.Game != None) ) - { - WorldInfo.Game.logout(self); - } - if ( PlayerReplicationInfo != None ) - { - // remove from team if applicable - if ( !PlayerReplicationInfo.bOnlySpectator && - PlayerReplicationInfo.Team != None ) - { - PlayerReplicationInfo.Team.RemoveFromTeam(self); - } - CleanupPRI(); - } - } - Super.Destroyed(); -} - -/* epic =============================================== -* ::CleanupPRI -* -* Called from Destroyed(). Cleans up PlayerReplicationInfo. -* -* ===================================================== -*/ -function CleanupPRI() -{ - PlayerReplicationInfo.Destroy(); - PlayerReplicationInfo = None; -} - -/* epic =============================================== -* ::Restart -* -* Called upon possessing a new pawn, perform any specific -* cleanup/initialization here. -* -* ===================================================== -*/ -function Restart(bool bVehicleTransition) -{ - Pawn.Restart(); - if ( !bVehicleTransition ) - { - Enemy = None; - } - - // if not vehicle transition, clear controller information - if ( bVehicleTransition == FALSE && Pawn.InvManager != None ) - { - Pawn.InvManager.UpdateController(); - } -} - -/* epic =============================================== -* ::BeyondFogDistance -* -* Returns true if OtherPoint is occluded by fog when viewed from ViewPoint. -* -* ===================================================== -*/ -final native function bool BeyondFogDistance(vector ViewPoint, vector OtherPoint); - -/* epic =============================================== -* ::EnemyJustTeleported -* -* Notification that Enemy just went through a teleporter. -* -* ===================================================== -*/ -function EnemyJustTeleported() -{ - LineOfSightTo(Enemy); -} - -/* epic =============================================== -* ::NotifyTakeHit -* -* Notification from pawn that it has received damage -* via TakeDamage(). -* -* ===================================================== -*/ -function NotifyTakeHit(Controller InstigatedBy, vector HitLocation, int Damage, class damageType, vector Momentum); - -/** spawns and initializes the PlayerReplicationInfo for this Controller */ -function InitPlayerReplicationInfo() -{ - PlayerReplicationInfo = Spawn(WorldInfo.Game.PlayerReplicationInfoClass, self,, vect(0,0,0),rot(0,0,0)); - // force a default player name if necessary - if (PlayerReplicationInfo.PlayerName == "") - { - // don't call SetPlayerName() as that will broadcast entry messages but the GameInfo hasn't had a chance - // to potentionally apply a player/bot name yet - PlayerReplicationInfo.PlayerName = class'GameInfo'.default.DefaultPlayerName; - } -} - -/* - * Queries the PRI and returns our current team index. - */ -simulated native function byte GetTeamNum(); - -/* epic =============================================== -* ::ServerRestartPlayer -* -* Attempts to restart this player, generally called from -* the client upon respawn request. -* -* ===================================================== -*/ -reliable server function ServerRestartPlayer() -{ - if (WorldInfo.NetMode != NM_Client && - Pawn != None) - { - ServerGivePawn(); - } -} - -/* epic =============================================== -* ::ServerGivePawn -* -* Requests a pawn from the server for this controller, -* as part of the respawn process. -* -* ===================================================== -*/ -function ServerGivePawn(); - -/* epic =============================================== -* ::SetCharacter -* -* Sets the character for this controller for future -* pawn spawns. -* -* ===================================================== -*/ -function SetCharacter(string inCharacter); - -/* epic =============================================== -* ::GameHasEnded -* -* Called from game info upon end of the game, used to -* transition to proper state. -* -* ===================================================== -*/ -function GameHasEnded(optional Actor EndGameFocus, optional bool bIsWinner) -{ - // and transition to the game ended state - GotoState('RoundEnded'); -} - -/* epic =============================================== -* ::NotifyKilled -* -* Notification from game that a pawn has been killed. -* -* ===================================================== -*/ -function NotifyKilled(Controller Killer, Controller Killed, pawn KilledPawn, class damageTyp) -{ - if( Pawn != None ) - { - Pawn.TriggerEventClass( class'SeqEvent_SeeDeath', KilledPawn ); - } - - if (Enemy == KilledPawn) - { - Enemy = None; - } -} - -function NotifyProjLanded( Projectile Proj ) -{ - if( Proj != None && Pawn != None ) - { - Pawn.TriggerEventClass( class'SeqEvent_ProjectileLanded', Proj ); - } -} - -/** - * Notification from given projectil that it is about to explode - */ -function WarnProjExplode( Projectile Proj ); - -//============================================================================= -// INVENTORY FUNCTIONS - -/* epic =============================================== -* ::RatePickup -* -* Callback from PickupFactory that allows players to -* additionally weight certain pickups. -* -* ===================================================== -*/ -event float RatePickup(Actor PickupHolder, class inPickup); - -/* epic =============================================== -* ::FireWeaponAt -* -* Should cause this player to fire a weapon at the given -* actor. -* -* ===================================================== -*/ -function bool FireWeaponAt(Actor inActor); - -/* epic =============================================== -* ::StopFiring -* -* Stop firing of our current weapon. -* -* ===================================================== -*/ -event StopFiring() -{ - bFire = 0; - if ( Pawn != None ) - Pawn.StopFiring(); -} - -/* epic =============================================== -* ::RoundHasEnded -* -* -* ===================================================== -*/ -function RoundHasEnded(optional Actor EndRoundFocus) -{ - GotoState('RoundEnded'); -} - -/* epic =============================================== -* ::HandlePickup -* -* Called whenever our pawn runs over a new pickup. -* -* ===================================================== -*/ -function HandlePickup(Inventory Inv); - -/** - * Adjusts weapon aiming direction. - * Gives controller a chance to modify the aiming of the pawn. For example aim error, auto aiming, adhesion, AI help... - * Requested by weapon prior to firing. -* - * @param W, weapon about to fire - * @param StartFireLoc, world location of weapon fire start trace, or projectile spawn loc. - */ -function Rotator GetAdjustedAimFor( Weapon W, vector StartFireLoc ) -{ - // by default, return Rotation. This is the standard aim for controllers - // see implementation for PlayerController. - if ( Pawn != None ) - { - return Pawn.GetBaseAimRotation(); - } - return Rotation; -} - -/* epic =============================================== -* ::InstantWarnTarget -* -* Warn a target it is about to be shot at with an instant hit -* weapon. -* -* ===================================================== -*/ -function InstantWarnTarget(Actor InTarget, Weapon FiredWeapon, vector FireDir) -{ - local Pawn P; - - P = Pawn(InTarget); - if (P != None && P.Controller != None) - { - P.Controller.ReceiveWarning(Pawn, -1, FireDir); - } -} - -/* epic =============================================== -* ::ReceiveWarning -* -* Notification that the pawn is about to be shot by a -* trace hit weapon. -* -* ===================================================== -*/ -function ReceiveWarning(Pawn shooter, float projSpeed, vector FireDir); - -/* epic =============================================== -* ::ReceiveProjectileWarning -* -* Notification that the pawn is about to be shot by a -* projectile. -* -* ===================================================== -*/ -function ReceiveProjectileWarning(Projectile Proj); - -/* epic =============================================== -* ::SwitchToBestWeapon -* -* Rates the pawn's weapon loadout and chooses the best -* weapon, bringing it up as the active weapon. -* -* ===================================================== -*/ - -exec function SwitchToBestWeapon(optional bool bForceNewWeapon) -{ - if ( Pawn == None || Pawn.InvManager == None ) - return; - - Pawn.InvManager.SwitchToBestWeapon(bForceNewWeapon); -} - -/* epic =============================================== -* ::ClientSwitchToBestWeapon -* -* Forces the client to switch to a new weapon, allowing -* the server control. -* -* ===================================================== -*/ -reliable client function ClientSwitchToBestWeapon(optional bool bForceNewWeapon) -{ - SwitchToBestWeapon(bForceNewWeapon); -} - -/* epic =============================================== -* ::NotifyChangedWeapon -* -* Notification from pawn that the current weapon has -* changed. -* Network: LocalPlayer -* ===================================================== -*/ -function NotifyChangedWeapon( Weapon PrevWeapon, Weapon NewWeapon ); - -//============================================================================= -// AI FUNCTIONS - -/* epic =============================================== -* ::LineOfSightTo -* -* Returns true if the specified actor has line of sight -* to our pawn. -* -* NOTE: No FOV is accounted for, use CanSee(). -* -* ===================================================== -*/ -native(514) noexport final function bool LineOfSightTo(Actor Other, optional vector chkLocation, optional bool bTryAlternateTargetLoc); - -/* epic =============================================== -* ::CanSee -* -* Returns true if the specified pawn is visible within -* our peripheral vision. If the pawn is not our current -* enemy then LineOfSightTo() will be called instead. -* -* ===================================================== -*/ -native(533) final function bool CanSee(Pawn Other); - -/* epic =============================================== -* ::CanSee -* -* Returns true if the test location is visible within -* our peripheral vision (from view location). -* -* ===================================================== -*/ -native(537) final function bool CanSeeByPoints( Vector ViewLocation, Vector TestLocation, Rotator ViewRotation ); - -/* epic =============================================== -* ::PickTarget -* -* Evaluates pawns in the local area and returns the -* one that is closest to the specified FireDir. -* -* ===================================================== -*/ -native(531) final function Pawn PickTarget(class TargetClass, out float bestAim, out float bestDist, vector FireDir, vector projStart, float MaxRange); - -/* epic =============================================== -* ::HearNoise -* -* Counterpart to the Actor::MakeNoise() function, called -* whenever this player is within range of a given noise. -* Used as AI audio cues, instead of processing actual -* sounds. -* -* ===================================================== -*/ -event HearNoise( float Loudness, Actor NoiseMaker, optional Name NoiseType ); - -/* epic =============================================== -* ::SeePlayer -* -* Called whenever Seen is within of our line of sight -* if Seen.bIsPlayer==true. -* -* ===================================================== -*/ -event SeePlayer( Pawn Seen ); - -/* epic =============================================== -* ::SeeMonster -* -* Called whenever Seen is within of our line of sight -* if Seen.bIsPlayer==false. -* -* ===================================================== -*/ -event SeeMonster( Pawn Seen ); - -/* epic =============================================== -* ::EnemyNotVisible -* -* Called whenever Enemy is no longer within of our line -* of sight. -* -* ===================================================== -*/ -event EnemyNotVisible(); - -//============================================================================= -// NAVIGATION FUNCTIONS - -/* epic =============================================== -* ::MoveTo -* -* Latently moves our pawn to the desired location, which -* is cached in Destination. -* -* ===================================================== -*/ -native(500) noexport final latent function MoveTo(vector NewDestination, optional Actor ViewFocus, optional float DestinationOffset, optional bool bShouldWalk = (Pawn != None) ? Pawn.bIsWalking : false); - -/* epic =============================================== -* ::MoveToDirectNonPathPos -* -* Latently moves our pawn to the desired location, which -* is cached in Destination. -* NOTE: this function should be used only when moving directly to a final goal (e.g. not following a path) -* it will properly set the final destination on the navhandle (and ensure things are cleared out which would normally be set by GetNextMoveLocation) -* @Param NewDestination - destination to move to -* @param ViewFocus - actor to look at while moving -* @param DestinationOffset - distance from goal we would like to get within -* @param bShouldWalk - should the AI walk for this move? -* ===================================================== -*/ -native noexport final latent function MoveToDirectNonPathPos(vector NewDestination, optional Actor ViewFocus, optional float DestinationOffset, optional bool bShouldWalk = (Pawn != None) ? Pawn.bIsWalking : false); - -/* epic =============================================== -* ::MoveToward -* -* Latently moves our pawn to the desired actor, which -* is cached in MoveTarget. Takes advantage of the -* navigation network anchors when moving to other Pawn -* and Inventory actors. -* -* ===================================================== -*/ -native(502) noexport final latent function MoveToward(Actor NewTarget, optional Actor ViewFocus, optional float DestinationOffset, optional bool bUseStrafing, optional bool bShouldWalk = (Pawn != None) ? Pawn.bIsWalking : false); - -/* epic =============================================== -* ::SetupSpecialPathAbilities -* -* Called before path finding to allow setup of transient -* navigation flags. -* -* ===================================================== -*/ -event SetupSpecialPathAbilities(); - -/* epic =============================================== -* ::FinishRotation -* -* Latently waits for our pawn's rotation to match the -* pawn's DesiredRotation. -* -* ===================================================== -*/ -native(508) final latent function FinishRotation(); - -/* epic =============================================== -* ::FindPathTo -* -* Searches the navigation network for a path to the -* node closest to the given point. -* -* ===================================================== -*/ -native(518) final function Actor FindPathTo( Vector aPoint, optional int MaxPathLength, optional bool bReturnPartial ); - -/* epic =============================================== -* ::FindPathToward -* -* Searches the navigation network for a path to the -* node closest to the given actor. -* -* ===================================================== -*/ -native(517) final function Actor FindPathToward( Actor anActor, optional bool bWeightDetours, optional int MaxPathLength, optional bool bReturnPartial ); - -/* epic =============================================== -* ::FindPathTowardNearest -* -* Searches the navigation network for a path to the -* closest node of the specified type. -* -* ===================================================== -*/ -native final function Actor FindPathTowardNearest(class GoalClass, optional bool bWeightDetours, optional int MaxPathLength, optional bool bReturnPartial ); - -/* epic =============================================== -* ::FindRandomDest -* -* Returns a random node on the network. -* -* ===================================================== -*/ -native(525) final function NavigationPoint FindRandomDest(); - -native final function Actor FindPathToIntercept(Pawn P, Actor InRouteGoal, optional bool bWeightDetours, optional int MaxPathLength, optional bool bReturnPartial ); - -/* epic =============================================== -* ::PointReachable -* -* Returns true if the given point is directly reachable -* given our pawn's current movement capabilities. -* -* NOTE: This function is potentially expensive and should -* be used sparingly. If at all possible, use ActorReachable() -* instead, since that has more possible optimizations -* over PointReachable(). -* -* ===================================================== -*/ -native(521) final function bool PointReachable(vector aPoint); - -/* epic =============================================== -* ::ActorReachable -* -* Returns true if the given actor is directly reachable -* given our pawn's current movement capabilities. Takes -* advantage of the navigation network anchors when -* possible. -* -* NOTE: This function is potentially expensive and should -* be used sparingly. -* -* ===================================================== -*/ -native(520) final function bool ActorReachable(actor anActor); - -/** - * Called by APawn::moveToward when the point is unreachable - * due to obstruction or height differences. - */ -event MoveUnreachable(vector AttemptedDest, Actor AttemptedTarget) -{ -} - -/* epic =============================================== -* ::PickWallAdjust -* -* Checks if we could jump over obstruction (if within -* knee height), or attempts to move to either side of -* the obstruction. -* -* ===================================================== -*/ -native(526) final function bool PickWallAdjust(vector HitNormal); - -/* epic =============================================== -* ::WaitForLanding -* -* Latently waits until the pawn has landed. Only valid -* with PHYS_Falling. Optionally specify the max amount -* of time to wait, which defaults to 4 seconds. -* -* NOTE: If the pawn hasn't landed before the duration -* is exceeded, it will abort and call LongFall(). -* -* ===================================================== -*/ -native(527) noexport final latent function WaitForLanding(optional float waitDuration); - -/* epic =============================================== -* ::LongFall -* -* Called once the duration for WaitForLanding has been -* exceeded without hitting ground. -* -* ===================================================== -*/ -event LongFall(); - -/* epic =============================================== -* ::EndClimbLadder -* -* Aborts a latent move action if the MoveTarget is -* currently a ladder. -* -* ===================================================== -*/ -native function EndClimbLadder(); - -/* epic =============================================== -* ::MayFall -* -* Called when a pawn is about to fall off a ledge, and -* allows the controller to prevent a fall by toggling -* bCanJump. -* This event is also passed if a floor is found over the edge, and the normal of the floor if so. -* -* ===================================================== -*/ -event MayFall(bool bFloor, vector FloorNormal); - -/* epic =============================================== -* ::AllowDetourTo -* -* Return true to allow a detour to a given point, or -* false to avoid it. Called during any sort of path -* finding (FindPathXXX() functions). -* -* ===================================================== -*/ -event bool AllowDetourTo(NavigationPoint N) -{ - return true; -} - -/* epic =============================================== -* ::WaitForMover -* -* Used to notify AI controller that it needs to wait -* at its current position for an interpActor to -* become properly positioned. -* -* ===================================================== -*/ -function WaitForMover(InterpActor M) -{ - PendingMover = M; - M.bMonitorMover = true; - bPreparingMove = true; - Pawn.Acceleration = vect(0,0,0); -} - -/* epic =============================================== -* ::MoverFinished -* -* Called by InterpActor when it stops -* if this controller has it set as its PendingMover -* -* ===================================================== -*/ -event bool MoverFinished() -{ - if (Pawn == None || PendingMover.MyMarker == None || PendingMover.MyMarker.ProceedWithMove(Pawn)) - { - PendingMover = None; - bPreparingMove = false; - return true; - } - return false; -} - -/** Called when the this Controller's Pawn gets hit by an InterpActor interpolating downward while this Controller has Lift - * set as its PendingMover - * @param Lift the LiftCenter associated with the InterpActor that hit the Pawn - */ -function UnderLift(LiftCenter Lift); - -/** called when a ReachSpec the AI wants to use is blocked by a dynamic obstruction - * gives the AI an opportunity to do something to get rid of it instead of trying to find another path - * @note MoveTarget is the actor the AI wants to move toward, CurrentPath the ReachSpec it wants to use - * @param BlockedBy the object blocking the path - * @return true if the AI did something about the obstruction and should use the path anyway, false if the path - * is unusable and the bot must find some other way to go - */ -event bool HandlePathObstruction(Actor BlockedBy); - -//============================================================================= -// CAMERA FUNCTIONS - -/** - * Returns Player's Point of View - * For the AI this means the Pawn's 'Eyes' ViewPoint - * For a Human player, this means the Camera's ViewPoint -* - * @output out_Location, view location of player - * @output out_rotation, view rotation of player -*/ -simulated event GetPlayerViewPoint( out vector out_Location, out Rotator out_rotation ) -{ - out_Location = Location; - out_Rotation = Rotation; -} - -/** - * returns the point of view of the actor. - * note that this doesn't mean the camera, but the 'eyes' of the actor. - * For example, for a Pawn, this would define the eye height location, - * and view rotation (which is different from the pawn rotation which has a zeroed pitch component). - * A camera first person view will typically use this view point. Most traces (weapon, AI) will be done from this view point. -* - * @output out_Location, location of view point - * @output out_Rotation, view rotation of actor. -*/ -simulated event GetActorEyesViewPoint( out vector out_Location, out Rotator out_Rotation ) -{ - // If we have a Pawn, this is our view point. - if ( Pawn != None ) - { - Pawn.GetActorEyesViewPoint( out_Location, out_Rotation ); - } - else - { // Otherwise controller location/rotation is our view point. - out_Location = Location; - out_Rotation = Rotation; - } -} - -/** - * This will return whether or not this controller is aiming at the passed in actor. - * We are defining AIMing to mean that you are attempting to target the actor. Not just looking in the - * direction of the actor. - * - **/ -simulated function bool IsAimingAt( Actor ATarget, float Epsilon ) -{ - local Vector Loc; - local Rotator Rot; - - // grab camera location/rotation for checking Dist - GetPlayerViewPoint( Loc, Rot ); - - // a decent epsilon value is 0.98f as that allows a for a little bit of slop - // NOTE: if you want to aim DIRECTLY at something then you would want ~= 1.0f - return ( (Normal(ATarget.Location - Loc) dot vector(Rot)) >= Epsilon ); -} - -/** LandingShake() -returns true if controller wants landing view shake -*/ -simulated function bool LandingShake() -{ - return false; -} - -//============================================================================= -// PHYSICS FUNCTIONS - -/* epic =============================================== -* ::NotifyPhysicsVolumeChange -* -* Called when our pawn enters a new physics volume. -* -* ===================================================== -*/ -event NotifyPhysicsVolumeChange(PhysicsVolume NewVolume); - -/* epic =============================================== -* ::NotifyHeadVolumeChange -* -* Called when our pawn's head enters a new physics -* volume. -* return true to prevent HeadVolumeChange() notification on the pawn. -* -* ===================================================== -*/ -event bool NotifyHeadVolumeChange(PhysicsVolume NewVolume); - -/* epic =============================================== -* ::NotifyLanded -* -* Called when our pawn has landed from a fall, return -* true to prevent Landed() notification on the pawn. -* -* ===================================================== -*/ -event bool NotifyLanded(vector HitNormal, Actor FloorActor); - -/* epic =============================================== -* ::NotifyHitWall -* -* Called when our pawn has collided with a blocking -* piece of world geometry, return true to prevent -* HitWall() notification on the pawn. -* -* ===================================================== -*/ -event bool NotifyHitWall(vector HitNormal, actor Wall); - -/* epic =============================================== -* ::NotifyFallingHitWall -* -* Called when our pawn has collided with a blocking -* piece of world geometry while falling, only called if -* bNotifyFallingHitWall is true -* ===================================================== -*/ -event NotifyFallingHitWall(vector HitNormal, actor Wall); - -/* epic =============================================== -* ::NotifyBump -* -* Called when our pawn has collided with a blocking player, -* return true to prevent Bump() notification on the pawn. -* -* ===================================================== -*/ -event bool NotifyBump(Actor Other, Vector HitNormal); - -/* epic =============================================== -* ::NotifyJumpApex -* -* Called when our pawn has reached the apex of a jump. -* -* ===================================================== -*/ -event NotifyJumpApex(); - -/* epic =============================================== -* ::NotifyMissedJump -* -* Called when our pawn misses a jump while performing -* latent movement (ie MoveToward()). -* -* ===================================================== -*/ -event NotifyMissedJump(); - -/** Called when our pawn reaches Controller.Destination after setting bPreciseDestination = TRUE */ -event ReachedPreciseDestination(); - -//============================================================================= -// MISC FUNCTIONS - -/* epic =============================================== -* ::InLatentExecution -* -* Returns true if currently in the specified latent -* action. -* -* ===================================================== -*/ -native final function bool InLatentExecution(int LatentActionNumber); - -/* epic =============================================== -* ::StopLatentExecution -* -* Stops any active latent action. -* -* ===================================================== -*/ -native final function StopLatentExecution(); - -/** - * list important Controller variables on canvas. HUD will call DisplayDebug() on the current ViewTarget when - * the ShowDebug exec is used - * - * @param HUD - HUD with canvas to draw on - * @input out_YL - Height of the current font - * @input out_YPos - Y position on Canvas. out_YPos += out_YL, gives position to draw text for next debug line. - */ -simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) -{ - local Canvas Canvas; - - Canvas = HUD.Canvas; - - if ( Pawn == None ) - { - if ( PlayerReplicationInfo == None ) - { - Canvas.DrawText("NO PLAYERREPLICATIONINFO", false); - } - else - { - PlayerReplicationInfo.DisplayDebug(HUD,out_YL,out_YPos); - } - out_YPos += out_YL; - Canvas.SetPos(4,out_YPos); - - super.DisplayDebug(HUD,out_YL,out_YPos); - return; - } - - Canvas.SetDrawColor(255,0,0); - Canvas.DrawText("CONTROLLER "$GetItemName(string(Self))$" Pawn "$GetItemName(string(Pawn))); - out_YPos += out_YL; - Canvas.SetPos(4,out_YPos); - - Canvas.DrawText(" bPreciseDestination:" @ bPreciseDestination); - out_YPos += out_YL; - Canvas.SetPos(4,out_YPos); - - if (HUD.ShouldDisplayDebug('AI')) - { - if ( Enemy != None ) - { - Canvas.DrawText(" STATE: "$GetStateName()$" Enemy "$Enemy.GetHumanReadableName(), false); - } - else - { - Canvas.DrawText(" STATE: "$GetStateName()$" NO Enemy ", false); - } - out_YPos += out_YL; - Canvas.SetPos(4,out_YPos); - } -} - -/* epic =============================================== -* ::GetHumanReadableName -* -* Returns the PRI player name if available, or of this -* controller object. -* -* ===================================================== -*/ -simulated function String GetHumanReadableName() -{ - if ( PlayerReplicationInfo != None ) - { - return PlayerReplicationInfo.PlayerName; - } - else - { - return GetItemName(String(self)); - } -} - -//============================================================================= -// CONTROLLER STATES - -function bool IsDead(); - -/* epic =============================================== -* state Dead -* -* Base state entered upon pawn death, if bIsPlayer is -* set to true. -* -* ===================================================== -*/ -State Dead -{ -ignores SeePlayer, HearNoise, KilledBy; - - function bool IsDead() { return TRUE; } - - function PawnDied(Pawn P) - { - if ( WorldInfo.NetMode != NM_Client ) - { - `warn( Self @ "Pawndied while dead" ); - ScriptTrace(); - } - } - - /* epic =============================================== - * ::ServerRestartPlayer - * - * Attempts to restart the player if not a client. - * - * ===================================================== - */ - reliable server function ServerReStartPlayer() - { - if ( WorldInfo.NetMode == NM_Client ) - return; - - // If we're still attached to a Pawn, leave it - if ( Pawn != None ) - { - UnPossess(); - } - - WorldInfo.Game.RestartPlayer( Self ); - } -} - -/* epic =============================================== -* state RoundEnded -* -* Base state entered upon the end of a game round, instigated -* by the -* -* ===================================================== -*/ -state RoundEnded -{ -ignores SeePlayer, HearNoise, KilledBy, NotifyBump, HitWall, NotifyPhysicsVolumeChange, NotifyHeadVolumeChange, Falling, TakeDamage, ReceiveWarning; - - function bool GamePlayEndedState() - { - return true; - } - - event BeginState(Name PreviousStateName) - { - // if we still have a valid pawn, - if ( Pawn != None ) - { - // stop it in midair and detach - Pawn.TurnOff(); - StopFiring(); - if (!bIsPlayer) - { - Pawn.UnPossessed(); - Pawn = None; - } - } - if ( !bIsPlayer ) - { - Destroy(); - } - } -} - -/** - * Overridden to redirect to pawn, since teleporting the controller - * would be useless. - * If Action == None, this was called from the Pawn already - */ -simulated function OnTeleport(SeqAct_Teleport Action) -{ - if( Action != None ) - { - if (Pawn != None) - { - Pawn.OnTeleport(Action); - } - else - { - Super.OnTeleport(Action); - } - } -} - -function OnAttachToActor(SeqAct_AttachToActor Action) -{ - if (Pawn != None) - { - Pawn.OnAttachToActor(Action); - } - else - { - Super.OnAttachToActor(Action); - } -} - -/** - * Sets god mode based on the activated link. - */ -function OnToggleGodMode(SeqAct_ToggleGodMode inAction) -{ - if (inAction.InputLinks[0].bHasImpulse) - { - bGodMode = true; - } - else if (inAction.InputLinks[1].bHasImpulse) - { - bGodMode = false; - } - else - { - bGodMode = !bGodMode; - } -} - -/** Redirects SetPhysics kismet action to the pawn */ -simulated function OnSetPhysics(SeqAct_SetPhysics Action) -{ - if( Pawn != None ) - { - Pawn.OnSetPhysics(Action); - } - else - { - Super.OnSetPhysics(Action); - } -} - -/** Redirects SetVelocity kismet action to the pawn */ -simulated function OnSetVelocity( SeqAct_SetVelocity Action ) -{ - if( Pawn != None ) - { - Pawn.OnSetVelocity(Action); - } - else - { - Super.OnSetVelocity(Action); - } -} - - - -/** - * Called when a slot is disabled with this controller as the current owner. - */ -simulated function NotifyCoverDisabled( CoverLink Link, int SlotIdx, optional bool bAdjacentIdx ); - -/** - * Called when a slot is adjusted with this controller as the current owner. - */ -simulated event NotifyCoverAdjusted() -{ - // do nothing. intended to be overloaded, but needs a body because it's an event. -} - -/** - * Called when cover that AI had claimed is claimed forceably by someone else (usually a player) - */ -simulated function bool NotifyCoverClaimViolation( Controller NewClaim, CoverLink Link, int SlotIdx ); - -/** -* Redirect to pawn. -*/ -simulated function OnModifyHealth(SeqAct_ModifyHealth Action) -{ - if (Pawn != None) - { - Pawn.OnModifyHealth(Action); - } -} - -/** - * Called when an inventory item is given to our Pawn - * (owning client only) - * @param NewItem the Inventory item that was added - */ -function NotifyAddInventory(Inventory NewItem); - -/** - * Overridden to redirect to the pawn if available. - */ -simulated function OnToggleHidden(SeqAct_ToggleHidden Action) -{ - if (Pawn != None) - { - Pawn.OnToggleHidden(Action); - } -} - -/** Returns true if controller is spectating */ -event bool IsSpectating() -{ - return false; -} - -/** Returns if controller is in combat */ -event bool IsInCombat( optional bool bForceCheck ); - -/** - * Called when the level this controller is in is unloaded via streaming. - */ -event CurrentLevelUnloaded(); - -function SendMessage(PlayerReplicationInfo Recipient, name MessageType, float Wait, optional class DamageType); - -function ReadyForLift(); - -/** spawn and init Navigation Handle */ -simulated function InitNavigationHandle() -{ - if( NavigationHandleClass != None ) - { - NavigationHandle = new(self) NavigationHandleClass; - } -} - -simulated event InterpolationStarted(SeqAct_Interp InterpAction, InterpGroupInst GroupInst) -{ - if (Pawn!=none) - { - Pawn.InterpolationStarted(InterpAction, GroupInst); - } - - Super.InterpolationStarted( InterpAction, GroupInst ); -} - -/** called when a SeqAct_Interp action finished interpolating this Actor - * @note this function is called on clients for actors that are interpolated clientside via MatineeActor - * @param InterpAction the SeqAct_Interp that was affecting the Actor - */ -simulated event InterpolationFinished(SeqAct_Interp InterpAction) -{ - if (Pawn!=none) - { - Pawn.InterpolationFinished(InterpAction); - } - - Super.InterpolationFinished( InterpAction ); -} - -event bool GeneratePathToActor( Actor Goal, optional float WithinDistance, optional bool bAllowPartialPath ); -event bool GeneratePathToLocation( Vector Goal, optional float WithinDistance, optional bool bAllowPartialPath ); - -defaultproperties -{ - RotationRate=(Pitch=30000,Yaw=30000,Roll=2048) - bHidden=TRUE - bHiddenEd=TRUE - MinHitWall=-1.f - bSlowerZAcquire=TRUE - RemoteRole=ROLE_None - bOnlyRelevantToOwner=TRUE - - SightCounterInterval=0.2 - MaxMoveTowardPawnTargetTime=1.2 - - NavigationHandleClass=class'NavigationHandle' -} +//============================================================================= +// Controller, the base class of players or AI. +// +// Controllers are non-physical actors that can be attached to a pawn to control +// its actions. PlayerControllers are used by human players to control pawns, while +// AIControFllers implement the artificial intelligence for the pawns they control. +// Controllers take control of a pawn using their Possess() method, and relinquish +// control of the pawn by calling UnPossess(). +// +// Controllers receive notifications for many of the events occuring for the Pawn they +// are controlling. This gives the controller the opportunity to implement the behavior +// in response to this event, intercepting the event and superceding the Pawn's default +// behavior. +// +// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. +//============================================================================= +class Controller extends Actor + native(Controller) + nativereplication + implements(Interface_NavigationHandle) + abstract; + +//============================================================================= +// BASE VARIABLES + +/** Pawn currently being controlled by this controller. Use Pawn.Possess() to take control of a pawn */ +var editinline repnotify Pawn Pawn; + +/** PlayerReplicationInfo containing replicated information about the player using this controller (only exists if bIsPlayer is true). */ +var editinline repnotify PlayerReplicationInfo PlayerReplicationInfo; + +var const int PlayerNum; // The player number - per-match player number. +var const private Controller NextController; // chained Controller list + +var bool bIsPlayer; // Pawn is a player or a player-bot. +var bool bGodMode; // cheat - when true, can't be killed or hurt + +var bool bSoaking; // pause and focus on pawn controlled by this controller if it encounters a problem +var bool bSlowerZAcquire; // AI acquires targets above or below more slowly than at same height + + +// Input buttons. +var input byte bFire; + +/** If true, the controlled pawn will attempt to alt fire */ +var input byte bAltFire; + +//============================================================================= +// PHYSICS VARIABLES + +var bool bNotifyPostLanded; // if true, event NotifyPostLanded() after pawn lands after falling. +var bool bNotifyApex; // if true, event NotifyJumpApex() when at apex of jump +var float MinHitWall; // Minimum HitNormal dot Velocity.Normal to get a HitWall event from the physics + + +//============================================================================= +// NAVIGATION VARIABLES + +/** Navigation handle used for pathing when using NavMesh */ +var class NavigationHandleClass; +var editinline NavigationHandle NavigationHandle; +/** Override search start position for navhandle path cache info */ +var bool bOverrideSearchStart; +var Vector OverrideSearchStart; + +var bool bAdvancedTactics; // serpentine movement between pathnodes +var bool bCanDoSpecial; // are we able to traverse R_SPECIAL reach specs? +var bool bAdjusting; // adjusting around obstacle +var bool bPreparingMove; // set true while pawn sets up for a latent move + +/** Used by AI, set true to force AI to use serpentine/strafing movement when possible. */ +var bool bForceStrafe; + +var float MoveTimer; // internal timer for latent moves, useful for setting a max duration +var Actor MoveTarget; // actor being moved toward +var BasedPosition DestinationPosition; // destination controlled pawn is moving toward +var BasedPosition FocalPosition; // position controlled pawn is looking at +var Actor Focus; // actor being looked at +var Actor GoalList[4]; // used by navigation AI - list of intermediate goals +var BasedPosition AdjustPosition; // intermediate destination used while adjusting around obstacle (bAdjusting is true) +var NavigationPoint StartSpot; // where player started the match + +/** Cached list of nodes filled in by the last call to FindPathXXX */ +var array RouteCache; + +var ReachSpec CurrentPath; // Current path being moved along +var ReachSpec NextRoutePath; // Next path in route to destination +var vector CurrentPathDir; // direction vector of current path +var Actor RouteGoal; // final destination for current route +var float RouteDist; // total distance for current route +var float LastRouteFind; // time at which last route finding occured +var InterpActor PendingMover; // InterpActor that controller is currently waiting on (e.g. door or lift) + +/** used for discovering navigation failures */ +var Actor FailedMoveTarget; +var int MoveFailureCount; + +var float GroundPitchTime; + +var Pawn ShotTarget; // Target most recently aimed at +var const Actor LastFailedReach; // cache to avoid trying failed actorreachable more than once per frame +var const float FailedReachTime; +var const vector FailedReachLocation; + +const LATENT_MOVETOWARD = 503; // LatentAction number for Movetoward() latent function + +//============================================================================= +// AI VARIABLES + +var const bool bLOSflag; // used for alternating LineOfSight traces +var bool bSkipExtraLOSChecks; // Skip viewport nudging checks for LOS +var bool bNotifyFallingHitWall; // If true, controller gets NotifyFallingHitWall() when pawn hits wall while falling +var float SightCounter; // Used to keep track of when to check player visibility +var float SightCounterInterval; // how often player visibility is checked +var bool bEarlyOutOfSighTestsForSameType;// when an AI already has an enemy of this type, early out from sight tests to me +/** multiplier to cost of NavigationPoints that another Pawn is currently anchored to */ +var float InUseNodeCostMultiplier; + +/** additive modifier to cost of NavigationPoints that require high jumping */ +var int HighJumpNodeCostModifier; + +/** Max time when moving toward a pawn target before latent movetoward returns (allowing reassessment of movement) */ +var float MaxMoveTowardPawnTargetTime; + +// Enemy information +var Pawn Enemy; + +/** Forces all velocity to be directed towards reaching Destination */ +var bool bPreciseDestination; + +/** Do visibility checks, call SeePlayer events() for pawns on same team as self. Setting to true will result in a lot more AI visibility line checks. */ +var bool bSeeFriendly; + +/** List of destinations whose source portals are visible to this Controller */ +struct native VisiblePortalInfo +{ + /** source actor of portal */ + var Actor Source; + /** destination actor of portal */ + var Actor Destination; + + structcpptext + { + FVisiblePortalInfo() + {} + FVisiblePortalInfo(EEventParm) + { + appMemzero(this, sizeof(FVisiblePortalInfo)); + } + FVisiblePortalInfo(AActor* InSource, AActor* InDest) + : Source(InSource), Destination(InDest) + {} + + UBOOL operator==(const FVisiblePortalInfo& Other) + { + return Other.Source == Source && Other.Destination == Destination; + } + } +}; + +enum EStunType +{ + STUN_TYPE_NONE, // 0 + STUN_TYPE_PREMATCH, // 1 + STUN_TYPE_NOPOSTURE, // 2 + STUN_TYPE_MOUNT, // 3 + STUN_TYPE_STASIS, // 4 + STUN_TYPE_DISORIENT, // 5 + STUN_TYPE_NORMAL, // 6 + STUN_TYPE_TAUNT, // 7 + STUN_TYPE_MESMERIZED, // 8 + STUN_TYPE_FEARED, // 9 + STUN_TYPE_PANICKED, // 10 + STUN_TYPE_MAX // 11 +}; +var array VisiblePortals; + +/** indicates that the AI is within a lane in its CurrentPath (like a road) + * to avoid ramming other Pawns also using that path + * set by MoveToward() when it detects multiple AI pawns using the same path + * when this is true, serpentine movement and cutting corners are disabled + */ +var bool bUsingPathLanes; + +/** the offset from the center of CurrentPath to the center of the lane in use (the Pawn's CollisionRadius defines the extent) + * positive values are to the Pawn's right, negative to the Pawn's left + */ +var float LaneOffset; + +/** Used for reversing rejected mover base movement */ +var const rotator OldBasedRotation; + +/** allows easy modification of the search extent provided by setuppathfindingparams() */ +var vector NavMeshPath_SearchExtent_Modifier; + +cpptext +{ + INT* GetOptimizedRepList( BYTE* InDefault, FPropertyRetirement* Retire, INT* Ptr, UPackageMap* Map, UActorChannel* Channel ); + UBOOL Tick( FLOAT DeltaTime, enum ELevelTick TickType ); + virtual void Spawned(); + virtual void BeginDestroy(); + + virtual UBOOL IsPlayerOwned() + { + return IsPlayerOwner(); + } + + virtual UBOOL IsPlayerOwner() + { + return bIsPlayer; + } + virtual AController* GetAController() { return this; } + + // Seeing and hearing checks + virtual UBOOL CanHear(const FVector& NoiseLoc, FLOAT Loudness, AActor *Other); + virtual void ShowSelf(); + virtual UBOOL ShouldCheckVisibilityOf(AController* C); + virtual DWORD SeePawn(APawn *Other, UBOOL bMaySkipChecks = TRUE); + virtual DWORD LineOfSightTo(const AActor* Other, INT bUseLOSFlag=0, const FVector* chkLocation = NULL, UBOOL bTryAlternateTargetLoc = FALSE); + void CheckEnemyVisible(); + virtual void HearNoise(AActor* NoiseMaker, FLOAT Loudness, FName NoiseType); + + AActor* HandleSpecial(AActor *bestPath); + virtual INT AcceptNearbyPath(AActor* goal); + virtual UReachSpec* PrepareForMove( ANavigationPoint *NavGoal, UReachSpec* Path ); + UReachSpec* GetNextRoutePath( ANavigationPoint *NavGoal ); + virtual void AdjustFromWall(FVector HitNormal, AActor* HitActor); + void SetRouteCache( ANavigationPoint *EndPath, FLOAT StartDist, FLOAT EndDist ); + AActor* FindPath(const FVector& Point, AActor* Goal, UBOOL bWeightDetours, INT MaxPathLength, UBOOL bReturnPartial); + /** given the passed in goal for pathfinding, set bTransientEndPoint on all NavigationPoints that are acceptable + * destinations on the path network + * @param EndAnchor the Anchor for the goal on the navigation network + * @param Goal the goal actor we're pathfinding toward (may be NULL) + * @param GoalLocation the goal world location we're pathfinding toward + */ + virtual void MarkEndPoints(ANavigationPoint* EndAnchor, AActor* Goal, const FVector& GoalLocation); + /** gives the Controller a chance to pre-empt pathfinding with its own result (if a cached path is still valid, for example) + * called just before navigation network traversal, after Anchor determination and NavigationPoint transient properties are set up + * only called when using the 'FindEndPoint' node evaluator + * @param EndAnchor - Anchor for Goal on the path network + * @param Goal - Destination Actor we're trying to path to (may be NULL) + * @param GoalLocation - the goal world location we're pathfinding toward + * @param bWeightDetours - whether we should consider short detours for pickups and such + * @param BestWeight - weighting value for best node on path - if this function returns true, findPathToward() will return this value + * @return whether the normal pathfinding should be skipped + */ + virtual UBOOL OverridePathTo(ANavigationPoint* EndAnchor, AActor* Goal, const FVector& GoalLocation, UBOOL bWeightDetours, FLOAT& BestWeight) + { + return FALSE; + } + AActor* SetPath(INT bInitialPath=1); + virtual UBOOL WantsLedgeCheck(); + virtual UBOOL StopAtLedge(); + virtual void PrePollMove() + {} + virtual void PostPollMove() + {} + virtual void PollMoveComplete(); + virtual AActor* GetViewTarget(); + virtual void UpdateEnemyInfo(APawn* AcquiredEnemy) {}; + virtual void JumpOverWall(FVector WallNormal); + virtual void UpdatePawnRotation(); + virtual UBOOL ForceReached(ANavigationPoint *Nav, const FVector& TestPosition); + virtual FRotator SetRotationRate(FLOAT deltaTime); + virtual FVector DesiredDirection(); + /** activates path lanes for this Controller's current movement and adjusts its destination accordingly + * @param DesiredLaneOffset the offset from the center of the Controller's CurrentPath that is desired + * the Controller sets its LaneOffset as close as it can get to it without + * allowing any part of the Pawn's cylinder outside of the CurrentPath + */ + void SetPathLane(FLOAT InPathOffset); + virtual void FailMove(); + + // falling physics AI hooks + virtual void PreAirSteering(FLOAT DeltaTime) {}; + virtual void PostAirSteering(FLOAT DeltaTime) {}; + virtual void PostPhysFalling(FLOAT DeltaTime) {}; + virtual void PostPhysWalking(FLOAT DeltaTime) {}; + virtual void PostPhysSpider(FLOAT DeltaTime) {}; + virtual UBOOL AirControlFromWall(float DeltaTime, FVector& RealAcceleration) { return FALSE; }; + virtual void NotifyJumpApex(); + + virtual void PostBeginPlay(); + virtual void PostScriptDestroyed(); + + virtual void ClearCrossLevelPaths(ULevel *Level); + + // Natives. + DECLARE_FUNCTION(execPollWaitForLanding); + virtual DECLARE_FUNCTION(execPollMoveTo); + virtual DECLARE_FUNCTION(execPollMoveToward); + DECLARE_FUNCTION(execPollFinishRotation); + + virtual UBOOL ShouldOffsetCorners() { return TRUE; } + virtual UBOOL ShouldUsePathLanes() { return TRUE; } + virtual UBOOL ShouldIgnoreNavigationBlockingFor(const AActor* Other){ return !Other->bBlocksNavigation; } + + // AnimControl Matinee Track support + + /** Used to provide information on the slots that this Actor provides for animation to Matinee. */ + virtual void GetAnimControlSlotDesc(TArray& OutSlotDescs); + + /** + * Called by Matinee when we open it to start controlling animation on this Actor. + * Is also called again when the GroupAnimSets array changes in Matinee, so must support multiple calls. + */ + virtual void PreviewBeginAnimControl(class UInterpGroup* InInterpGroup); + + /** Called each frame by Matinee to update the desired sequence by name and position within it. */ + virtual void PreviewSetAnimPosition(FName SlotName, INT ChannelIndex, FName InAnimSeqName, FLOAT InPosition, UBOOL bLooping, UBOOL bFireNotifies, UBOOL bEnableRootMotion, FLOAT DeltaTime); + + /** Called each frame by Matinee to update the desired animation channel weights for this Actor. */ + virtual void PreviewSetAnimWeights(TArray& SlotInfos); + + /** Called by Matinee when we close it after we have been controlling animation on this Actor. */ + virtual void PreviewFinishAnimControl(class UInterpGroup* InInterpGroup); + + /** Function used to control FaceFX animation in the editor (Matinee). */ + virtual void PreviewUpdateFaceFX(UBOOL bForceAnim, const FString& GroupName, const FString& SeqName, FLOAT InPosition); + + /** Used by Matinee playback to start a FaceFX animation playing. */ + virtual void PreviewActorPlayFaceFX(const FString& GroupName, const FString& SeqName, USoundCue* InSoundCue); + + /** Used by Matinee to stop current FaceFX animation playing. */ + virtual void PreviewActorStopFaceFX(); + + /** Used in Matinee to get the AudioComponent we should play facial animation audio on. */ + virtual UAudioComponent* PreviewGetFaceFXAudioComponent(); + + /** Get the UFaceFXAsset that is currently being used by this Actor when playing facial animations. */ + virtual class UFaceFXAsset* PreviewGetActorFaceFXAsset(); + + /** Called each frame by Matinee to update the weight of a particular MorphNodeWeight. */ + virtual void PreviewSetMorphWeight(FName MorphNodeName, FLOAT MorphWeight); + + /** Called each frame by Matinee to update the scaling on a SkelControl. */ + virtual void PreviewSetSkelControlScale(FName SkelControlName, FLOAT Scale); + + /** Called each frame by Matinee to update the controlstrength on a SkelControl. */ + virtual void SetSkelControlStrength(FName SkelControlName, FLOAT ControlStrength); + + /** Called each from while the Matinee action is running, to set the animation weights for the actor. */ + virtual void SetAnimWeights( const TArray& SlotInfos ); + + /** base function called to kick off moveto latent action (called from execMoveTo and execMoveToDirectNonPathPos) */ + virtual void MoveTo(const FVector& Dest, AActor* ViewFocus, FLOAT DesiredOffset, UBOOL bShouldWalk); + + /** base function called to kick off movetoward latent action (called from execMoveToward) */ + virtual void MoveToward(AActor* goal, AActor* viewfocus, FLOAT DesiredOffset, UBOOL bStrafe, UBOOL bShouldWalk); + + + /** IMPLEMENT Interface_NavigationHandle */ + virtual UBOOL CanCoverSlip(ACoverLink* Link, INT SlotIdx); + virtual void SetupPathfindingParams( FNavMeshPathParams& out_ParamCache ); + virtual void InitForPathfinding() {} + virtual INT ExtraEdgeCostToAddWhenActive(FNavMeshEdgeBase* Edge) { return 0; } + virtual FVector GetEdgeZAdjust(FNavMeshEdgeBase* Edge); + /** END */ + + virtual FLOAT GetMaxDropHeight(); +} + + +replication +{ + if (bNetDirty && Role==ROLE_Authority) + PlayerReplicationInfo, Pawn; +} + +/** returns whether this Controller is a locally controlled PlayerController + * @note not valid until the Controller is completely spawned (i.e, unusable in Pre/PostBeginPlay()) + */ +native function bool IsLocalPlayerController(); + +/** returns whether this controller is a local controller. + * @RETURN true always for non-playercontroller + */ +native function bool IsLocalController(); + +/** Route Cache Operations + * Allows operations on nodes in the route while modifying route (ie before emptying the cache) + * Should override in subclasses as needed + */ +native function RouteCache_Empty(); +native function RouteCache_AddItem( NavigationPoint Nav ); +native function RouteCache_InsertItem( NavigationPoint Nav, int Idx=0 ); +native function RouteCache_RemoveItem( NavigationPoint Nav ); +native function RouteCache_RemoveIndex( int InIndex, int Count=1 ); + +/** Set FocalPoint as absolute position or offset from base */ +native final function SetFocalPoint( Vector FP, optional bool bOffsetFromBase ); +/** Retrive the final position that controller should be looking at */ +native final function Vector GetFocalPoint(); + +/** Set Destination as absolute position or offset from base */ +native final function SetDestinationPosition( Vector Dest, optional bool bOffsetFromBase ); +/** Retrive the final position that controller should be moving to */ +native final function Vector GetDestinationPosition(); + +native final virtual function SetAdjustLocation( Vector NewLoc, bool bAdjust, optional bool bOffsetFromBase ); +native final function Vector GetAdjustLocation(); + +/** + * this event is called when an edge is deleted that this controller's handle is actively using + */ +event NotifyPathChanged(); + + +/** Called when we start an AnimControl track operating on this Actor. Supplied is the set of AnimSets we are going to want to play from. */ +simulated event BeginAnimControl(InterpGroup InInterpGroup) +{ + Pawn.BeginAnimControl(InInterpGroup); +} + +/** Called each from while the Matinee action is running, with the desired sequence name and position we want to be at. */ +simulated event SetAnimPosition(name SlotName, int ChannelIndex, name InAnimSeqName, float InPosition, bool bFireNotifies, bool bLooping, bool bEnableRootMotion) +{ + Pawn.SetAnimPosition(SlotName, ChannelIndex, InAnimSeqName, InPosition, bFireNotifies, bLooping, bEnableRootMotion); +} + +/** Called when we are done with the AnimControl track. */ +simulated event FinishAnimControl(InterpGroup InInterpGroup) +{ + Pawn.FinishAnimControl(InInterpGroup); +} + +/** + * Play FaceFX animations on this Actor. + * Returns TRUE if succeeded, if failed, a log warning will be issued. + */ +event bool PlayActorFaceFXAnim(FaceFXAnimSet AnimSet, String GroupName, String SeqName, SoundCue SoundCueToPlay ) +{ + return Pawn.PlayActorFaceFXAnim(AnimSet, GroupName, SeqName, SoundCueToPlay); +} + +/** Stop any matinee FaceFX animations on this Actor. */ +event StopActorFaceFXAnim() +{ + Pawn.StopActorFaceFXAnim(); +} + +/** Called each frame by Matinee to update the weight of a particular MorphNodeWeight. */ +event SetMorphWeight(name MorphNodeName, float MorphWeight) +{ + Pawn.SetMorphweight(MorphNodeName, MorphWeight); +} + +/** Called each frame by Matinee to update the scaling on a SkelControl. */ +event SetSkelControlScale(name SkelControlName, float Scale) +{ + Pawn.SetSkelControlScale(SkelControlName, Scale); +} +/* epic =============================================== +* ::PostBeginPlay +* +* Overridden to create the player replication info and +* perform other mundane initialization tasks. +* +* ===================================================== +*/ +event PostBeginPlay() +{ + Super.PostBeginPlay(); + + if ( !bDeleteMe && (WorldInfo.NetMode != NM_Client) ) + { + if( bIsPlayer ) + { + // create a new player replication info + InitPlayerReplicationInfo(); + } + InitNavigationHandle(); + } + // randomly offset the sight counter to avoid hitches + SightCounter = SightCounterInterval * FRand(); +} + +/* epic =============================================== +* ::Reset +* +* Resets various properties to their default state, used +* for round resetting, etc. +* +* ===================================================== +*/ +function Reset() +{ + super.Reset(); + Enemy = None; + StartSpot = None; + bAdjusting = false; + bPreparingMove = false; + MoveTimer = -1; + MoveTarget = None; + CurrentPath = None; + RouteGoal = None; +} + +/* epic =============================================== +* ::ClientSetLocation +* +* Replicated function to set the pawn location and +* rotation, allowing server to force (ex. teleports). +* +* ===================================================== +*/ +reliable client function ClientSetLocation( vector NewLocation, rotator NewRotation ) +{ + SetRotation(NewRotation); + if ( Pawn != None ) + { + if ( (Rotation.Pitch > Pawn.MaxPitchLimit) + && (Rotation.Pitch < 65536 - Pawn.MaxPitchLimit) ) + { + If (Rotation.Pitch < 32768) + NewRotation.Pitch = Pawn.MaxPitchLimit; + else + NewRotation.Pitch = 65536 - Pawn.MaxPitchLimit; + } + NewRotation.Roll = 0; + Pawn.SetRotation( NewRotation ); + Pawn.SetLocation( NewLocation ); + } +} + +/* epic =============================================== +* ::ClientSetRotation +* +* Replicated function to set the pawn rotation, allowing +* the server to force. +* +* ===================================================== +*/ +reliable client function ClientSetRotation( rotator NewRotation, optional bool bResetCamera ) +{ + SetRotation(NewRotation); + if ( Pawn != None ) + { + NewRotation.Pitch = 0; + NewRotation.Roll = 0; + Pawn.SetRotation( NewRotation ); + } +} + +/* epic =============================================== +* ::ReplicatedEvent +* +* Called when a variable with the property flag "RepNotify" is replicated +* +* ===================================================== +*/ +simulated event ReplicatedEvent(name VarName) +{ + if (VarName == 'PlayerReplicationInfo') + { + if (PlayerReplicationInfo != None) + { + PlayerReplicationInfo.ClientInitialize(self); + } + } + else + { + Super.ReplicatedEvent(VarName); + } +} + +/** Kismet Action to possess a Pawn or a vehicle */ +function OnPossess(SeqAct_Possess inAction) +{ + local Pawn OldPawn; + local Vehicle V; + + // if we're driving a vehicle, and we should try to get out first. + V = Vehicle(Pawn); + if( inAction.bTryToLeaveVehicle && + V != None ) + { + V.DriverLeave( TRUE ); + } + + if( inAction.PawnToPossess != None ) + { + V = Vehicle(inAction.PawnToPossess); + if( Pawn!= None && V != None ) + { + V.TryToDrive( Pawn ); + } + else + { + OldPawn = Pawn; + UnPossess(); + Possess( inAction.PawnToPossess, FALSE ); + + if( inAction.bKillOldPawn && OldPawn != None ) + { + OldPawn.Destroy(); + } + } + } +} + + +/* epic =============================================== +* ::Possess +* +* Handles attaching this controller to the specified +* pawn. +* +* ===================================================== +*/ +event Possess(Pawn inPawn, bool bVehicleTransition) +{ + if (inPawn.Controller != None) + { + inPawn.Controller.UnPossess(); + } + + inPawn.PossessedBy(self, bVehicleTransition); + Pawn = inPawn; + + // preserve Pawn's rotation initially for placed Pawns + SetFocalPoint( Pawn.Location + 512*vector(Pawn.Rotation), TRUE ); + Restart(bVehicleTransition); + + if( Pawn.Weapon == None ) + { + ClientSwitchToBestWeapon(); + } +} + +/* epic =============================================== +* ::UnPossess +* +* Called to unpossess our pawn for any reason that is not death +* (death handled by PawnDied()) +* +* ===================================================== +*/ +event UnPossess() +{ + if ( Pawn != None ) + { + Pawn.UnPossessed(); + Pawn = None; + } +} + +/* epic =============================================== +* ::PawnDied +* +* Called to unpossess our pawn because it has died +* (other unpossession handled by UnPossess()) +* +* ===================================================== +*/ +function PawnDied(Pawn inPawn) +{ + local int idx; + + if ( inPawn != Pawn ) + { // if that's not our current pawn, leave + return; + } + + // abort any latent actions + TriggerEventClass(class'SeqEvent_Death',self); + for (idx = 0; idx < LatentActions.Length; idx++) + { + if (LatentActions[idx] != None) + { + LatentActions[idx].AbortFor(self); + } + } + LatentActions.Length = 0; + + if ( Pawn != None ) + { + SetLocation(Pawn.Location); + Pawn.UnPossessed(); + } + Pawn = None; + + // if we are a player, transition to the dead state + if ( bIsPlayer ) + { + // only if the game hasn't ended, + if ( !GamePlayEndedState() ) + { + // so that we can respawn + GotoState('Dead'); + } + } + // otherwise destroy this controller + else + { + Destroy(); + } +} + +function bool GamePlayEndedState() +{ + return false; +} + +/* epic =============================================== +* ::NotifyPostLanded +* +* Called after pawn lands after falling if bNotifyPostLanded is true +* +* ===================================================== +*/ +event NotifyPostLanded(); + +/* epic =============================================== +* ::Destroyed +* +* Called once this controller has been deleted, overridden +* to cleanup any lingering references, etc. +* +* ===================================================== +*/ +event Destroyed() +{ + if (Role == ROLE_Authority) + { + // if we are a player, log out + if ( bIsPlayer && (WorldInfo.Game != None) ) + { + WorldInfo.Game.logout(self); + } + if ( PlayerReplicationInfo != None ) + { + // remove from team if applicable + if ( !PlayerReplicationInfo.bOnlySpectator && + PlayerReplicationInfo.Team != None ) + { + PlayerReplicationInfo.Team.RemoveFromTeam(self); + } + CleanupPRI(); + } + } + Super.Destroyed(); +} + +/* epic =============================================== +* ::CleanupPRI +* +* Called from Destroyed(). Cleans up PlayerReplicationInfo. +* +* ===================================================== +*/ +function CleanupPRI() +{ + PlayerReplicationInfo.Destroy(); + PlayerReplicationInfo = None; +} + +/* epic =============================================== +* ::Restart +* +* Called upon possessing a new pawn, perform any specific +* cleanup/initialization here. +* +* ===================================================== +*/ +function Restart(bool bVehicleTransition) +{ + Pawn.Restart(); + if ( !bVehicleTransition ) + { + Enemy = None; + } + + // if not vehicle transition, clear controller information + if ( bVehicleTransition == FALSE && Pawn.InvManager != None ) + { + Pawn.InvManager.UpdateController(); + } +} + +/* epic =============================================== +* ::BeyondFogDistance +* +* Returns true if OtherPoint is occluded by fog when viewed from ViewPoint. +* +* ===================================================== +*/ +final native function bool BeyondFogDistance(vector ViewPoint, vector OtherPoint); + +/* epic =============================================== +* ::EnemyJustTeleported +* +* Notification that Enemy just went through a teleporter. +* +* ===================================================== +*/ +function EnemyJustTeleported() +{ + LineOfSightTo(Enemy); +} + +/* epic =============================================== +* ::NotifyTakeHit +* +* Notification from pawn that it has received damage +* via TakeDamage(). +* +* ===================================================== +*/ +function NotifyTakeHit(Controller InstigatedBy, vector HitLocation, int Damage, class damageType, vector Momentum); + +/** spawns and initializes the PlayerReplicationInfo for this Controller */ +function InitPlayerReplicationInfo() +{ + PlayerReplicationInfo = Spawn(WorldInfo.Game.PlayerReplicationInfoClass, self,, vect(0,0,0),rot(0,0,0)); + // force a default player name if necessary + if (PlayerReplicationInfo.PlayerName == "") + { + // don't call SetPlayerName() as that will broadcast entry messages but the GameInfo hasn't had a chance + // to potentionally apply a player/bot name yet + PlayerReplicationInfo.PlayerName = class'GameInfo'.default.DefaultPlayerName; + } +} + +/* + * Queries the PRI and returns our current team index. + */ +simulated native function byte GetTeamNum(); + +/* epic =============================================== +* ::ServerRestartPlayer +* +* Attempts to restart this player, generally called from +* the client upon respawn request. +* +* ===================================================== +*/ +reliable server function ServerRestartPlayer() +{ + if (WorldInfo.NetMode != NM_Client && + Pawn != None) + { + ServerGivePawn(); + } +} + +/* epic =============================================== +* ::ServerGivePawn +* +* Requests a pawn from the server for this controller, +* as part of the respawn process. +* +* ===================================================== +*/ +function ServerGivePawn(); + +/* epic =============================================== +* ::SetCharacter +* +* Sets the character for this controller for future +* pawn spawns. +* +* ===================================================== +*/ +function SetCharacter(string inCharacter); + +/* epic =============================================== +* ::GameHasEnded +* +* Called from game info upon end of the game, used to +* transition to proper state. +* +* ===================================================== +*/ +function GameHasEnded(optional Actor EndGameFocus, optional bool bIsWinner) +{ + // and transition to the game ended state + GotoState('RoundEnded'); +} + +/* epic =============================================== +* ::NotifyKilled +* +* Notification from game that a pawn has been killed. +* +* ===================================================== +*/ +function NotifyKilled(Controller Killer, Controller Killed, pawn KilledPawn, class damageTyp) +{ + if( Pawn != None ) + { + Pawn.TriggerEventClass( class'SeqEvent_SeeDeath', KilledPawn ); + } + + if (Enemy == KilledPawn) + { + Enemy = None; + } +} + +function NotifyProjLanded( Projectile Proj ) +{ + if( Proj != None && Pawn != None ) + { + Pawn.TriggerEventClass( class'SeqEvent_ProjectileLanded', Proj ); + } +} + +/** + * Notification from given projectil that it is about to explode + */ +function WarnProjExplode( Projectile Proj ); + +//============================================================================= +// INVENTORY FUNCTIONS + +/* epic =============================================== +* ::RatePickup +* +* Callback from PickupFactory that allows players to +* additionally weight certain pickups. +* +* ===================================================== +*/ +event float RatePickup(Actor PickupHolder, class inPickup); + +/* epic =============================================== +* ::FireWeaponAt +* +* Should cause this player to fire a weapon at the given +* actor. +* +* ===================================================== +*/ +function bool FireWeaponAt(Actor inActor); + +/* epic =============================================== +* ::StopFiring +* +* Stop firing of our current weapon. +* +* ===================================================== +*/ +event StopFiring() +{ + bFire = 0; + if ( Pawn != None ) + Pawn.StopFiring(); +} + +/* epic =============================================== +* ::RoundHasEnded +* +* +* ===================================================== +*/ +function RoundHasEnded(optional Actor EndRoundFocus) +{ + GotoState('RoundEnded'); +} + +/* epic =============================================== +* ::HandlePickup +* +* Called whenever our pawn runs over a new pickup. +* +* ===================================================== +*/ +function HandlePickup(Inventory Inv); + +/** + * Adjusts weapon aiming direction. + * Gives controller a chance to modify the aiming of the pawn. For example aim error, auto aiming, adhesion, AI help... + * Requested by weapon prior to firing. +* + * @param W, weapon about to fire + * @param StartFireLoc, world location of weapon fire start trace, or projectile spawn loc. + */ +function Rotator GetAdjustedAimFor( Weapon W, vector StartFireLoc ) +{ + // by default, return Rotation. This is the standard aim for controllers + // see implementation for PlayerController. + if ( Pawn != None ) + { + return Pawn.GetBaseAimRotation(); + } + return Rotation; +} + +/* epic =============================================== +* ::InstantWarnTarget +* +* Warn a target it is about to be shot at with an instant hit +* weapon. +* +* ===================================================== +*/ +function InstantWarnTarget(Actor InTarget, Weapon FiredWeapon, vector FireDir) +{ + local Pawn P; + + P = Pawn(InTarget); + if (P != None && P.Controller != None) + { + P.Controller.ReceiveWarning(Pawn, -1, FireDir); + } +} + +/* epic =============================================== +* ::ReceiveWarning +* +* Notification that the pawn is about to be shot by a +* trace hit weapon. +* +* ===================================================== +*/ +function ReceiveWarning(Pawn shooter, float projSpeed, vector FireDir); + +/* epic =============================================== +* ::ReceiveProjectileWarning +* +* Notification that the pawn is about to be shot by a +* projectile. +* +* ===================================================== +*/ +function ReceiveProjectileWarning(Projectile Proj); + +/* epic =============================================== +* ::SwitchToBestWeapon +* +* Rates the pawn's weapon loadout and chooses the best +* weapon, bringing it up as the active weapon. +* +* ===================================================== +*/ + +exec function SwitchToBestWeapon(optional bool bForceNewWeapon) +{ + if ( Pawn == None || Pawn.InvManager == None ) + return; + + Pawn.InvManager.SwitchToBestWeapon(bForceNewWeapon); +} + +/* epic =============================================== +* ::ClientSwitchToBestWeapon +* +* Forces the client to switch to a new weapon, allowing +* the server control. +* +* ===================================================== +*/ +reliable client function ClientSwitchToBestWeapon(optional bool bForceNewWeapon) +{ + SwitchToBestWeapon(bForceNewWeapon); +} + +/* epic =============================================== +* ::NotifyChangedWeapon +* +* Notification from pawn that the current weapon has +* changed. +* Network: LocalPlayer +* ===================================================== +*/ +function NotifyChangedWeapon( Weapon PrevWeapon, Weapon NewWeapon ); + +//============================================================================= +// AI FUNCTIONS + +/* epic =============================================== +* ::LineOfSightTo +* +* Returns true if the specified actor has line of sight +* to our pawn. +* +* NOTE: No FOV is accounted for, use CanSee(). +* +* ===================================================== +*/ +native(514) noexport final function bool LineOfSightTo(Actor Other, optional vector chkLocation, optional bool bTryAlternateTargetLoc); + +/* epic =============================================== +* ::CanSee +* +* Returns true if the specified pawn is visible within +* our peripheral vision. If the pawn is not our current +* enemy then LineOfSightTo() will be called instead. +* +* ===================================================== +*/ +native(533) final function bool CanSee(Pawn Other); + +/* epic =============================================== +* ::CanSee +* +* Returns true if the test location is visible within +* our peripheral vision (from view location). +* +* ===================================================== +*/ +native(537) final function bool CanSeeByPoints( Vector ViewLocation, Vector TestLocation, Rotator ViewRotation ); + +/* epic =============================================== +* ::PickTarget +* +* Evaluates pawns in the local area and returns the +* one that is closest to the specified FireDir. +* +* ===================================================== +*/ +native(531) final function Pawn PickTarget(class TargetClass, out float bestAim, out float bestDist, vector FireDir, vector projStart, float MaxRange); + +/* epic =============================================== +* ::HearNoise +* +* Counterpart to the Actor::MakeNoise() function, called +* whenever this player is within range of a given noise. +* Used as AI audio cues, instead of processing actual +* sounds. +* +* ===================================================== +*/ +event HearNoise( float Loudness, Actor NoiseMaker, optional Name NoiseType ); + +/* epic =============================================== +* ::SeePlayer +* +* Called whenever Seen is within of our line of sight +* if Seen.bIsPlayer==true. +* +* ===================================================== +*/ +event SeePlayer( Pawn Seen ); + +/* epic =============================================== +* ::SeeMonster +* +* Called whenever Seen is within of our line of sight +* if Seen.bIsPlayer==false. +* +* ===================================================== +*/ +event SeeMonster( Pawn Seen ); + +/* epic =============================================== +* ::EnemyNotVisible +* +* Called whenever Enemy is no longer within of our line +* of sight. +* +* ===================================================== +*/ +event EnemyNotVisible(); + +//============================================================================= +// NAVIGATION FUNCTIONS + +/* epic =============================================== +* ::MoveTo +* +* Latently moves our pawn to the desired location, which +* is cached in Destination. +* +* ===================================================== +*/ +native(500) noexport final latent function MoveTo(vector NewDestination, optional Actor ViewFocus, optional float DestinationOffset, optional bool bShouldWalk = (Pawn != None) ? Pawn.bIsWalking : false); + +/* epic =============================================== +* ::MoveToDirectNonPathPos +* +* Latently moves our pawn to the desired location, which +* is cached in Destination. +* NOTE: this function should be used only when moving directly to a final goal (e.g. not following a path) +* it will properly set the final destination on the navhandle (and ensure things are cleared out which would normally be set by GetNextMoveLocation) +* @Param NewDestination - destination to move to +* @param ViewFocus - actor to look at while moving +* @param DestinationOffset - distance from goal we would like to get within +* @param bShouldWalk - should the AI walk for this move? +* ===================================================== +*/ +native noexport final latent function MoveToDirectNonPathPos(vector NewDestination, optional Actor ViewFocus, optional float DestinationOffset, optional bool bShouldWalk = (Pawn != None) ? Pawn.bIsWalking : false); + +/* epic =============================================== +* ::MoveToward +* +* Latently moves our pawn to the desired actor, which +* is cached in MoveTarget. Takes advantage of the +* navigation network anchors when moving to other Pawn +* and Inventory actors. +* +* ===================================================== +*/ +native(502) noexport final latent function MoveToward(Actor NewTarget, optional Actor ViewFocus, optional float DestinationOffset, optional bool bUseStrafing, optional bool bShouldWalk = (Pawn != None) ? Pawn.bIsWalking : false); + +/* epic =============================================== +* ::SetupSpecialPathAbilities +* +* Called before path finding to allow setup of transient +* navigation flags. +* +* ===================================================== +*/ +event SetupSpecialPathAbilities(); + +/* epic =============================================== +* ::FinishRotation +* +* Latently waits for our pawn's rotation to match the +* pawn's DesiredRotation. +* +* ===================================================== +*/ +native(508) final latent function FinishRotation(); + +/* epic =============================================== +* ::FindPathTo +* +* Searches the navigation network for a path to the +* node closest to the given point. +* +* ===================================================== +*/ +native(518) final function Actor FindPathTo( Vector aPoint, optional int MaxPathLength, optional bool bReturnPartial ); + +/* epic =============================================== +* ::FindPathToward +* +* Searches the navigation network for a path to the +* node closest to the given actor. +* +* ===================================================== +*/ +native(517) final function Actor FindPathToward( Actor anActor, optional bool bWeightDetours, optional int MaxPathLength, optional bool bReturnPartial ); + +/* epic =============================================== +* ::FindPathTowardNearest +* +* Searches the navigation network for a path to the +* closest node of the specified type. +* +* ===================================================== +*/ +native final function Actor FindPathTowardNearest(class GoalClass, optional bool bWeightDetours, optional int MaxPathLength, optional bool bReturnPartial ); + +/* epic =============================================== +* ::FindRandomDest +* +* Returns a random node on the network. +* +* ===================================================== +*/ +native(525) final function NavigationPoint FindRandomDest(); + +native final function Actor FindPathToIntercept(Pawn P, Actor InRouteGoal, optional bool bWeightDetours, optional int MaxPathLength, optional bool bReturnPartial ); + +/* epic =============================================== +* ::PointReachable +* +* Returns true if the given point is directly reachable +* given our pawn's current movement capabilities. +* +* NOTE: This function is potentially expensive and should +* be used sparingly. If at all possible, use ActorReachable() +* instead, since that has more possible optimizations +* over PointReachable(). +* +* ===================================================== +*/ +native(521) final function bool PointReachable(vector aPoint); + +/* epic =============================================== +* ::ActorReachable +* +* Returns true if the given actor is directly reachable +* given our pawn's current movement capabilities. Takes +* advantage of the navigation network anchors when +* possible. +* +* NOTE: This function is potentially expensive and should +* be used sparingly. +* +* ===================================================== +*/ +native(520) final function bool ActorReachable(actor anActor); + +/** + * Called by APawn::moveToward when the point is unreachable + * due to obstruction or height differences. + */ +event MoveUnreachable(vector AttemptedDest, Actor AttemptedTarget) +{ +} + +/* epic =============================================== +* ::PickWallAdjust +* +* Checks if we could jump over obstruction (if within +* knee height), or attempts to move to either side of +* the obstruction. +* +* ===================================================== +*/ +native(526) final function bool PickWallAdjust(vector HitNormal); + +/* epic =============================================== +* ::WaitForLanding +* +* Latently waits until the pawn has landed. Only valid +* with PHYS_Falling. Optionally specify the max amount +* of time to wait, which defaults to 4 seconds. +* +* NOTE: If the pawn hasn't landed before the duration +* is exceeded, it will abort and call LongFall(). +* +* ===================================================== +*/ +native(527) noexport final latent function WaitForLanding(optional float waitDuration); + +/* epic =============================================== +* ::LongFall +* +* Called once the duration for WaitForLanding has been +* exceeded without hitting ground. +* +* ===================================================== +*/ +event LongFall(); + +/* epic =============================================== +* ::EndClimbLadder +* +* Aborts a latent move action if the MoveTarget is +* currently a ladder. +* +* ===================================================== +*/ +native function EndClimbLadder(); + +/* epic =============================================== +* ::MayFall +* +* Called when a pawn is about to fall off a ledge, and +* allows the controller to prevent a fall by toggling +* bCanJump. +* This event is also passed if a floor is found over the edge, and the normal of the floor if so. +* +* ===================================================== +*/ +event MayFall(bool bFloor, vector FloorNormal); + +/* epic =============================================== +* ::AllowDetourTo +* +* Return true to allow a detour to a given point, or +* false to avoid it. Called during any sort of path +* finding (FindPathXXX() functions). +* +* ===================================================== +*/ +event bool AllowDetourTo(NavigationPoint N) +{ + return true; +} + +/* epic =============================================== +* ::WaitForMover +* +* Used to notify AI controller that it needs to wait +* at its current position for an interpActor to +* become properly positioned. +* +* ===================================================== +*/ +function WaitForMover(InterpActor M) +{ + PendingMover = M; + M.bMonitorMover = true; + bPreparingMove = true; + Pawn.Acceleration = vect(0,0,0); +} + +/* epic =============================================== +* ::MoverFinished +* +* Called by InterpActor when it stops +* if this controller has it set as its PendingMover +* +* ===================================================== +*/ +event bool MoverFinished() +{ + if (Pawn == None || PendingMover.MyMarker == None || PendingMover.MyMarker.ProceedWithMove(Pawn)) + { + PendingMover = None; + bPreparingMove = false; + return true; + } + return false; +} + +/** Called when the this Controller's Pawn gets hit by an InterpActor interpolating downward while this Controller has Lift + * set as its PendingMover + * @param Lift the LiftCenter associated with the InterpActor that hit the Pawn + */ +function UnderLift(LiftCenter Lift); + +/** called when a ReachSpec the AI wants to use is blocked by a dynamic obstruction + * gives the AI an opportunity to do something to get rid of it instead of trying to find another path + * @note MoveTarget is the actor the AI wants to move toward, CurrentPath the ReachSpec it wants to use + * @param BlockedBy the object blocking the path + * @return true if the AI did something about the obstruction and should use the path anyway, false if the path + * is unusable and the bot must find some other way to go + */ +event bool HandlePathObstruction(Actor BlockedBy); + +//============================================================================= +// CAMERA FUNCTIONS + +/** + * Returns Player's Point of View + * For the AI this means the Pawn's 'Eyes' ViewPoint + * For a Human player, this means the Camera's ViewPoint +* + * @output out_Location, view location of player + * @output out_rotation, view rotation of player +*/ +simulated event GetPlayerViewPoint( out vector out_Location, out Rotator out_rotation ) +{ + out_Location = Location; + out_Rotation = Rotation; +} + +/** + * returns the point of view of the actor. + * note that this doesn't mean the camera, but the 'eyes' of the actor. + * For example, for a Pawn, this would define the eye height location, + * and view rotation (which is different from the pawn rotation which has a zeroed pitch component). + * A camera first person view will typically use this view point. Most traces (weapon, AI) will be done from this view point. +* + * @output out_Location, location of view point + * @output out_Rotation, view rotation of actor. +*/ +simulated event GetActorEyesViewPoint( out vector out_Location, out Rotator out_Rotation ) +{ + // If we have a Pawn, this is our view point. + if ( Pawn != None ) + { + Pawn.GetActorEyesViewPoint( out_Location, out_Rotation ); + } + else + { // Otherwise controller location/rotation is our view point. + out_Location = Location; + out_Rotation = Rotation; + } +} + +/** + * This will return whether or not this controller is aiming at the passed in actor. + * We are defining AIMing to mean that you are attempting to target the actor. Not just looking in the + * direction of the actor. + * + **/ +simulated function bool IsAimingAt( Actor ATarget, float Epsilon ) +{ + local Vector Loc; + local Rotator Rot; + + // grab camera location/rotation for checking Dist + GetPlayerViewPoint( Loc, Rot ); + + // a decent epsilon value is 0.98f as that allows a for a little bit of slop + // NOTE: if you want to aim DIRECTLY at something then you would want ~= 1.0f + return ( (Normal(ATarget.Location - Loc) dot vector(Rot)) >= Epsilon ); +} + +/** LandingShake() +returns true if controller wants landing view shake +*/ +simulated function bool LandingShake() +{ + return false; +} + +//============================================================================= +// PHYSICS FUNCTIONS + +/* epic =============================================== +* ::NotifyPhysicsVolumeChange +* +* Called when our pawn enters a new physics volume. +* +* ===================================================== +*/ +event NotifyPhysicsVolumeChange(PhysicsVolume NewVolume); + +/* epic =============================================== +* ::NotifyHeadVolumeChange +* +* Called when our pawn's head enters a new physics +* volume. +* return true to prevent HeadVolumeChange() notification on the pawn. +* +* ===================================================== +*/ +event bool NotifyHeadVolumeChange(PhysicsVolume NewVolume); + +/* epic =============================================== +* ::NotifyLanded +* +* Called when our pawn has landed from a fall, return +* true to prevent Landed() notification on the pawn. +* +* ===================================================== +*/ +event bool NotifyLanded(vector HitNormal, Actor FloorActor); + +/* epic =============================================== +* ::NotifyHitWall +* +* Called when our pawn has collided with a blocking +* piece of world geometry, return true to prevent +* HitWall() notification on the pawn. +* +* ===================================================== +*/ +event bool NotifyHitWall(vector HitNormal, actor Wall); + +/* epic =============================================== +* ::NotifyFallingHitWall +* +* Called when our pawn has collided with a blocking +* piece of world geometry while falling, only called if +* bNotifyFallingHitWall is true +* ===================================================== +*/ +event NotifyFallingHitWall(vector HitNormal, actor Wall); + +/* epic =============================================== +* ::NotifyBump +* +* Called when our pawn has collided with a blocking player, +* return true to prevent Bump() notification on the pawn. +* +* ===================================================== +*/ +event bool NotifyBump(Actor Other, Vector HitNormal); + +/* epic =============================================== +* ::NotifyJumpApex +* +* Called when our pawn has reached the apex of a jump. +* +* ===================================================== +*/ +event NotifyJumpApex(); + +/* epic =============================================== +* ::NotifyMissedJump +* +* Called when our pawn misses a jump while performing +* latent movement (ie MoveToward()). +* +* ===================================================== +*/ +event NotifyMissedJump(); + +/** Called when our pawn reaches Controller.Destination after setting bPreciseDestination = TRUE */ +event ReachedPreciseDestination(); + +//============================================================================= +// MISC FUNCTIONS + +/* epic =============================================== +* ::InLatentExecution +* +* Returns true if currently in the specified latent +* action. +* +* ===================================================== +*/ +native final function bool InLatentExecution(int LatentActionNumber); + +/* epic =============================================== +* ::StopLatentExecution +* +* Stops any active latent action. +* +* ===================================================== +*/ +native final function StopLatentExecution(); + +/** + * list important Controller variables on canvas. HUD will call DisplayDebug() on the current ViewTarget when + * the ShowDebug exec is used + * + * @param HUD - HUD with canvas to draw on + * @input out_YL - Height of the current font + * @input out_YPos - Y position on Canvas. out_YPos += out_YL, gives position to draw text for next debug line. + */ +simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) +{ + local Canvas Canvas; + + Canvas = HUD.Canvas; + + if ( Pawn == None ) + { + if ( PlayerReplicationInfo == None ) + { + Canvas.DrawText("NO PLAYERREPLICATIONINFO", false); + } + else + { + PlayerReplicationInfo.DisplayDebug(HUD,out_YL,out_YPos); + } + out_YPos += out_YL; + Canvas.SetPos(4,out_YPos); + + super.DisplayDebug(HUD,out_YL,out_YPos); + return; + } + + Canvas.SetDrawColor(255,0,0); + Canvas.DrawText("CONTROLLER "$GetItemName(string(Self))$" Pawn "$GetItemName(string(Pawn))); + out_YPos += out_YL; + Canvas.SetPos(4,out_YPos); + + Canvas.DrawText(" bPreciseDestination:" @ bPreciseDestination); + out_YPos += out_YL; + Canvas.SetPos(4,out_YPos); + + if (HUD.ShouldDisplayDebug('AI')) + { + if ( Enemy != None ) + { + Canvas.DrawText(" STATE: "$GetStateName()$" Enemy "$Enemy.GetHumanReadableName(), false); + } + else + { + Canvas.DrawText(" STATE: "$GetStateName()$" NO Enemy ", false); + } + out_YPos += out_YL; + Canvas.SetPos(4,out_YPos); + } +} + +/* epic =============================================== +* ::GetHumanReadableName +* +* Returns the PRI player name if available, or of this +* controller object. +* +* ===================================================== +*/ +simulated function String GetHumanReadableName() +{ + if ( PlayerReplicationInfo != None ) + { + return PlayerReplicationInfo.PlayerName; + } + else + { + return GetItemName(String(self)); + } +} + +//============================================================================= +// CONTROLLER STATES + +function bool IsDead(); + +/* epic =============================================== +* state Dead +* +* Base state entered upon pawn death, if bIsPlayer is +* set to true. +* +* ===================================================== +*/ +State Dead +{ +ignores SeePlayer, HearNoise, KilledBy; + + function bool IsDead() { return TRUE; } + + function PawnDied(Pawn P) + { + if ( WorldInfo.NetMode != NM_Client ) + { + `warn( Self @ "Pawndied while dead" ); + ScriptTrace(); + } + } + + /* epic =============================================== + * ::ServerRestartPlayer + * + * Attempts to restart the player if not a client. + * + * ===================================================== + */ + reliable server function ServerReStartPlayer() + { + if ( WorldInfo.NetMode == NM_Client ) + return; + + // If we're still attached to a Pawn, leave it + if ( Pawn != None ) + { + UnPossess(); + } + + WorldInfo.Game.RestartPlayer( Self ); + } +} + +/* epic =============================================== +* state RoundEnded +* +* Base state entered upon the end of a game round, instigated +* by the +* +* ===================================================== +*/ +state RoundEnded +{ +ignores SeePlayer, HearNoise, KilledBy, NotifyBump, HitWall, NotifyPhysicsVolumeChange, NotifyHeadVolumeChange, Falling, TakeDamage, ReceiveWarning; + + function bool GamePlayEndedState() + { + return true; + } + + event BeginState(Name PreviousStateName) + { + // if we still have a valid pawn, + if ( Pawn != None ) + { + // stop it in midair and detach + Pawn.TurnOff(); + StopFiring(); + if (!bIsPlayer) + { + Pawn.UnPossessed(); + Pawn = None; + } + } + if ( !bIsPlayer ) + { + Destroy(); + } + } +} + +/** + * Overridden to redirect to pawn, since teleporting the controller + * would be useless. + * If Action == None, this was called from the Pawn already + */ +simulated function OnTeleport(SeqAct_Teleport Action) +{ + if( Action != None ) + { + if (Pawn != None) + { + Pawn.OnTeleport(Action); + } + else + { + Super.OnTeleport(Action); + } + } +} + +function OnAttachToActor(SeqAct_AttachToActor Action) +{ + if (Pawn != None) + { + Pawn.OnAttachToActor(Action); + } + else + { + Super.OnAttachToActor(Action); + } +} + +/** + * Sets god mode based on the activated link. + */ +function OnToggleGodMode(SeqAct_ToggleGodMode inAction) +{ + if (inAction.InputLinks[0].bHasImpulse) + { + bGodMode = true; + } + else if (inAction.InputLinks[1].bHasImpulse) + { + bGodMode = false; + } + else + { + bGodMode = !bGodMode; + } +} + +/** Redirects SetPhysics kismet action to the pawn */ +simulated function OnSetPhysics(SeqAct_SetPhysics Action) +{ + if( Pawn != None ) + { + Pawn.OnSetPhysics(Action); + } + else + { + Super.OnSetPhysics(Action); + } +} + +/** Redirects SetVelocity kismet action to the pawn */ +simulated function OnSetVelocity( SeqAct_SetVelocity Action ) +{ + if( Pawn != None ) + { + Pawn.OnSetVelocity(Action); + } + else + { + Super.OnSetVelocity(Action); + } +} + + + +/** + * Called when a slot is disabled with this controller as the current owner. + */ +simulated function NotifyCoverDisabled( CoverLink Link, int SlotIdx, optional bool bAdjacentIdx ); + +/** + * Called when a slot is adjusted with this controller as the current owner. + */ +simulated event NotifyCoverAdjusted() +{ + // do nothing. intended to be overloaded, but needs a body because it's an event. +} + +/** + * Called when cover that AI had claimed is claimed forceably by someone else (usually a player) + */ +simulated function bool NotifyCoverClaimViolation( Controller NewClaim, CoverLink Link, int SlotIdx ); + +/** +* Redirect to pawn. +*/ +simulated function OnModifyHealth(SeqAct_ModifyHealth Action) +{ + if (Pawn != None) + { + Pawn.OnModifyHealth(Action); + } +} + +/** + * Called when an inventory item is given to our Pawn + * (owning client only) + * @param NewItem the Inventory item that was added + */ +function NotifyAddInventory(Inventory NewItem); + +/** + * Overridden to redirect to the pawn if available. + */ +simulated function OnToggleHidden(SeqAct_ToggleHidden Action) +{ + if (Pawn != None) + { + Pawn.OnToggleHidden(Action); + } +} + +/** Returns true if controller is spectating */ +event bool IsSpectating() +{ + return false; +} + +/** Returns if controller is in combat */ +event bool IsInCombat( optional bool bForceCheck ); + +/** + * Called when the level this controller is in is unloaded via streaming. + */ +event CurrentLevelUnloaded(); + +function SendMessage(PlayerReplicationInfo Recipient, name MessageType, float Wait, optional class DamageType); + +function ReadyForLift(); + +/** spawn and init Navigation Handle */ +simulated function InitNavigationHandle() +{ + if( NavigationHandleClass != None ) + { + NavigationHandle = new(self) NavigationHandleClass; + } +} + +simulated event InterpolationStarted(SeqAct_Interp InterpAction, InterpGroupInst GroupInst) +{ + if (Pawn!=none) + { + Pawn.InterpolationStarted(InterpAction, GroupInst); + } + + Super.InterpolationStarted( InterpAction, GroupInst ); +} + +/** called when a SeqAct_Interp action finished interpolating this Actor + * @note this function is called on clients for actors that are interpolated clientside via MatineeActor + * @param InterpAction the SeqAct_Interp that was affecting the Actor + */ +simulated event InterpolationFinished(SeqAct_Interp InterpAction) +{ + if (Pawn!=none) + { + Pawn.InterpolationFinished(InterpAction); + } + + Super.InterpolationFinished( InterpAction ); +} + +event bool GeneratePathToActor( Actor Goal, optional float WithinDistance, optional bool bAllowPartialPath ); +event bool GeneratePathToLocation( Vector Goal, optional float WithinDistance, optional bool bAllowPartialPath ); + +defaultproperties +{ + RotationRate=(Pitch=30000,Yaw=30000,Roll=2048) + bHidden=TRUE + bHiddenEd=TRUE + MinHitWall=-1.f + bSlowerZAcquire=TRUE + RemoteRole=ROLE_None + bOnlyRelevantToOwner=TRUE + + SightCounterInterval=0.2 + MaxMoveTowardPawnTargetTime=1.2 + + NavigationHandleClass=class'NavigationHandle' +} diff --git a/Development/Src/Engine/Classes/CoverGroup.uc b/Development/Src/Engine/Classes/CoverGroup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CoverGroupRenderingComponent.uc b/Development/Src/Engine/Classes/CoverGroupRenderingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CoverLink.uc b/Development/Src/Engine/Classes/CoverLink.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CoverMeshComponent.uc b/Development/Src/Engine/Classes/CoverMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CoverReplicator.uc b/Development/Src/Engine/Classes/CoverReplicator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CoverSlipReachSpec.uc b/Development/Src/Engine/Classes/CoverSlipReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CrowdAgentBase.uc b/Development/Src/Engine/Classes/CrowdAgentBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CrowdPopulationManagerBase.uc b/Development/Src/Engine/Classes/CrowdPopulationManagerBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CullDistanceVolume.uc b/Development/Src/Engine/Classes/CullDistanceVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CurveEdPresetCurve.uc b/Development/Src/Engine/Classes/CurveEdPresetCurve.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CustomPropertyItemHandler.uc b/Development/Src/Engine/Classes/CustomPropertyItemHandler.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/CylinderComponent.uc b/Development/Src/Engine/Classes/CylinderComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DOFAndBloomEffect.uc b/Development/Src/Engine/Classes/DOFAndBloomEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DOFBloomMotionBlurEffect.uc b/Development/Src/Engine/Classes/DOFBloomMotionBlurEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DOFEffect.uc b/Development/Src/Engine/Classes/DOFEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DamageType.uc b/Development/Src/Engine/Classes/DamageType.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DataStoreClient.uc b/Development/Src/Engine/Classes/DataStoreClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DecalActor.uc b/Development/Src/Engine/Classes/DecalActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DecalActorBase.uc b/Development/Src/Engine/Classes/DecalActorBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DecalActorMovable.uc b/Development/Src/Engine/Classes/DecalActorMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DecalComponent.uc b/Development/Src/Engine/Classes/DecalComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DecalManager.uc b/Development/Src/Engine/Classes/DecalManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DecalMaterial.uc b/Development/Src/Engine/Classes/DecalMaterial.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DefaultPhysicsVolume.uc b/Development/Src/Engine/Classes/DefaultPhysicsVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DirectionalLight.uc b/Development/Src/Engine/Classes/DirectionalLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DirectionalLightComponent.uc b/Development/Src/Engine/Classes/DirectionalLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DirectionalLightToggleable.uc b/Development/Src/Engine/Classes/DirectionalLightToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatConstant.uc b/Development/Src/Engine/Classes/DistributionFloatConstant.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatConstantCurve.uc b/Development/Src/Engine/Classes/DistributionFloatConstantCurve.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatParameterBase.uc b/Development/Src/Engine/Classes/DistributionFloatParameterBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatParticleParameter.uc b/Development/Src/Engine/Classes/DistributionFloatParticleParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatSoundParameter.uc b/Development/Src/Engine/Classes/DistributionFloatSoundParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatUniform.uc b/Development/Src/Engine/Classes/DistributionFloatUniform.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatUniformCurve.uc b/Development/Src/Engine/Classes/DistributionFloatUniformCurve.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionFloatUniformRange.uc b/Development/Src/Engine/Classes/DistributionFloatUniformRange.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorConstant.uc b/Development/Src/Engine/Classes/DistributionVectorConstant.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorConstantCurve.uc b/Development/Src/Engine/Classes/DistributionVectorConstantCurve.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorParameterBase.uc b/Development/Src/Engine/Classes/DistributionVectorParameterBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorParticleParameter.uc b/Development/Src/Engine/Classes/DistributionVectorParticleParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorUniform.uc b/Development/Src/Engine/Classes/DistributionVectorUniform.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorUniformCurve.uc b/Development/Src/Engine/Classes/DistributionVectorUniformCurve.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DistributionVectorUniformRange.uc b/Development/Src/Engine/Classes/DistributionVectorUniformRange.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DmgType_Crushed.uc b/Development/Src/Engine/Classes/DmgType_Crushed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DmgType_Fell.uc b/Development/Src/Engine/Classes/DmgType_Fell.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DmgType_Suicided.uc b/Development/Src/Engine/Classes/DmgType_Suicided.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DmgType_Telefragged.uc b/Development/Src/Engine/Classes/DmgType_Telefragged.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantDirectionalLight.uc b/Development/Src/Engine/Classes/DominantDirectionalLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantDirectionalLightComponent.uc b/Development/Src/Engine/Classes/DominantDirectionalLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantDirectionalLightMovable.uc b/Development/Src/Engine/Classes/DominantDirectionalLightMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantPointLight.uc b/Development/Src/Engine/Classes/DominantPointLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantPointLightComponent.uc b/Development/Src/Engine/Classes/DominantPointLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantSpotLight.uc b/Development/Src/Engine/Classes/DominantSpotLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DominantSpotLightComponent.uc b/Development/Src/Engine/Classes/DominantSpotLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DoorMarker.uc b/Development/Src/Engine/Classes/DoorMarker.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DownloadableContentEnumerator.uc b/Development/Src/Engine/Classes/DownloadableContentEnumerator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DownloadableContentManager.uc b/Development/Src/Engine/Classes/DownloadableContentManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawBoxComponent.uc b/Development/Src/Engine/Classes/DrawBoxComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawCapsuleComponent.uc b/Development/Src/Engine/Classes/DrawCapsuleComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawConeComponent.uc b/Development/Src/Engine/Classes/DrawConeComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawCylinderComponent.uc b/Development/Src/Engine/Classes/DrawCylinderComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawFrustumComponent.uc b/Development/Src/Engine/Classes/DrawFrustumComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawLightConeComponent.uc b/Development/Src/Engine/Classes/DrawLightConeComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawLightRadiusComponent.uc b/Development/Src/Engine/Classes/DrawLightRadiusComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawPylonRadiusComponent.uc b/Development/Src/Engine/Classes/DrawPylonRadiusComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawQuadComponent.uc b/Development/Src/Engine/Classes/DrawQuadComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawSoundRadiusComponent.uc b/Development/Src/Engine/Classes/DrawSoundRadiusComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DrawSphereComponent.uc b/Development/Src/Engine/Classes/DrawSphereComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DroppedPickup.uc b/Development/Src/Engine/Classes/DroppedPickup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicAnchor.uc b/Development/Src/Engine/Classes/DynamicAnchor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicBlockingVolume.uc b/Development/Src/Engine/Classes/DynamicBlockingVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicCameraActor.uc b/Development/Src/Engine/Classes/DynamicCameraActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicLightEnvironmentComponent.uc b/Development/Src/Engine/Classes/DynamicLightEnvironmentComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicPhysicsVolume.uc b/Development/Src/Engine/Classes/DynamicPhysicsVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicPylon.uc b/Development/Src/Engine/Classes/DynamicPylon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicSMActor.uc b/Development/Src/Engine/Classes/DynamicSMActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicSMActor_Spawnable.uc b/Development/Src/Engine/Classes/DynamicSMActor_Spawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/DynamicTriggerVolume.uc b/Development/Src/Engine/Classes/DynamicTriggerVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EdCoordSystem.uc b/Development/Src/Engine/Classes/EdCoordSystem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EditorLinkSelectionInterface.uc b/Development/Src/Engine/Classes/EditorLinkSelectionInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Emitter.uc b/Development/Src/Engine/Classes/Emitter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EmitterCameraLensEffectBase.uc b/Development/Src/Engine/Classes/EmitterCameraLensEffectBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EmitterPool.uc b/Development/Src/Engine/Classes/EmitterPool.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EmitterSpawnable.uc b/Development/Src/Engine/Classes/EmitterSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Engine.uc b/Development/Src/Engine/Classes/Engine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EngineBaseTypes.uc b/Development/Src/Engine/Classes/EngineBaseTypes.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EngineTypes.uc b/Development/Src/Engine/Classes/EngineTypes.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/EnvironmentVolume.uc b/Development/Src/Engine/Classes/EnvironmentVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ExponentialHeightFog.uc b/Development/Src/Engine/Classes/ExponentialHeightFog.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ExponentialHeightFogComponent.uc b/Development/Src/Engine/Classes/ExponentialHeightFogComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FaceFXAnimSet.uc b/Development/Src/Engine/Classes/FaceFXAnimSet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FaceFXAsset.uc b/Development/Src/Engine/Classes/FaceFXAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FacebookIntegration.uc b/Development/Src/Engine/Classes/FacebookIntegration.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FailedConnect.uc b/Development/Src/Engine/Classes/FailedConnect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FileLog.uc b/Development/Src/Engine/Classes/FileLog.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FileWriter.uc b/Development/Src/Engine/Classes/FileWriter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FloorToCeilingReachSpec.uc b/Development/Src/Engine/Classes/FloorToCeilingReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FluidInfluenceActor.uc b/Development/Src/Engine/Classes/FluidInfluenceActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FluidInfluenceComponent.uc b/Development/Src/Engine/Classes/FluidInfluenceComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FluidSurfaceActor.uc b/Development/Src/Engine/Classes/FluidSurfaceActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FluidSurfaceActorMovable.uc b/Development/Src/Engine/Classes/FluidSurfaceActorMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FluidSurfaceComponent.uc b/Development/Src/Engine/Classes/FluidSurfaceComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeConeDensityComponent.uc b/Development/Src/Engine/Classes/FogVolumeConeDensityComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeConeDensityInfo.uc b/Development/Src/Engine/Classes/FogVolumeConeDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeConstantDensityComponent.uc b/Development/Src/Engine/Classes/FogVolumeConstantDensityComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeConstantDensityInfo.uc b/Development/Src/Engine/Classes/FogVolumeConstantDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeDensityComponent.uc b/Development/Src/Engine/Classes/FogVolumeDensityComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeDensityInfo.uc b/Development/Src/Engine/Classes/FogVolumeDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeLinearHalfspaceDensityComponent.uc b/Development/Src/Engine/Classes/FogVolumeLinearHalfspaceDensityComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeLinearHalfspaceDensityInfo.uc b/Development/Src/Engine/Classes/FogVolumeLinearHalfspaceDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeSphericalDensityComponent.uc b/Development/Src/Engine/Classes/FogVolumeSphericalDensityComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FogVolumeSphericalDensityInfo.uc b/Development/Src/Engine/Classes/FogVolumeSphericalDensityInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Font.uc b/Development/Src/Engine/Classes/Font.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FontImportOptions.uc b/Development/Src/Engine/Classes/FontImportOptions.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForceFeedbackManager.uc b/Development/Src/Engine/Classes/ForceFeedbackManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForceFeedbackWaveform.uc b/Development/Src/Engine/Classes/ForceFeedbackWaveform.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForceFieldShape.uc b/Development/Src/Engine/Classes/ForceFieldShape.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForceFieldShapeBox.uc b/Development/Src/Engine/Classes/ForceFieldShapeBox.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForceFieldShapeCapsule.uc b/Development/Src/Engine/Classes/ForceFieldShapeCapsule.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForceFieldShapeSphere.uc b/Development/Src/Engine/Classes/ForceFieldShapeSphere.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForcedLoopSoundNode.uc b/Development/Src/Engine/Classes/ForcedLoopSoundNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ForcedReachSpec.uc b/Development/Src/Engine/Classes/ForcedReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FractureManager.uc b/Development/Src/Engine/Classes/FractureManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FractureMaterial.uc b/Development/Src/Engine/Classes/FractureMaterial.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedBaseComponent.uc b/Development/Src/Engine/Classes/FracturedBaseComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedSMActorSpawnable.uc b/Development/Src/Engine/Classes/FracturedSMActorSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedSkinnedMeshComponent.uc b/Development/Src/Engine/Classes/FracturedSkinnedMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedStaticMeshActor.uc b/Development/Src/Engine/Classes/FracturedStaticMeshActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedStaticMeshActor_Spawnable.uc b/Development/Src/Engine/Classes/FracturedStaticMeshActor_Spawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedStaticMeshComponent.uc b/Development/Src/Engine/Classes/FracturedStaticMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/FracturedStaticMeshPart.uc b/Development/Src/Engine/Classes/FracturedStaticMeshPart.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameEngine.uc b/Development/Src/Engine/Classes/GameEngine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameInfo.uc b/Development/Src/Engine/Classes/GameInfo.uc old mode 100755 new mode 100644 index 795161f..85e4ee1 --- a/Development/Src/Engine/Classes/GameInfo.uc +++ b/Development/Src/Engine/Classes/GameInfo.uc @@ -1,3867 +1,3873 @@ -//============================================================================= -// GameInfo. -// -// The GameInfo defines the game being played: the game rules, scoring, what actors -// are allowed to exist in this game type, and who may enter the game. While the -// GameInfo class is the public interface, much of this functionality is delegated -// to several classes to allow easy modification of specific game components. These -// classes include GameInfo, AccessControl, Mutator, and BroadcastHandler. -// A GameInfo actor is instantiated when the level is initialized for gameplay (in -// C++ UGameEngine::LoadMap() ). The class of this GameInfo actor is determined by -// (in order) either the URL ?game=xxx, or the -// DefaultGame entry in the game's .ini file (in the Engine.Engine section), unless -// its a network game in which case the DefaultServerGame entry is used. -// The GameType used can be overridden in the GameInfo script event SetGameType(), called -// on the game class picked by the above process. -// -// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. -//============================================================================= -class GameInfo extends Info - config(Game) - native - dependson(OnlineSubsystem); - -//----------------------------------------------------------------------------- -// Variables. - -var bool bRestartLevel; // Level should be restarted when player dies -var bool bPauseable; // Whether the game is pauseable. -var bool bTeamGame; // This is a team game. -var bool bGameEnded; // set when game ends -var bool bOverTime; -var bool bDelayedStart; -var bool bWaitingToStartMatch; -var globalconfig bool bChangeLevels; -var bool bAlreadyChanged; -var globalconfig bool bAdminCanPause; -var bool bGameRestarted; -var bool bLevelChange; // level transition in progress -var globalconfig bool bKickLiveIdlers; // if true, even playercontrollers with pawns can be kicked for idling - -/** Whether this match is going to use arbitration or not */ -var bool bUsingArbitration; - -/** - * Whether the arbitrated handshaking has occurred or not. - * NOTE: The code will reject new connections once handshaking has started - */ -var bool bHasArbitratedHandshakeBegun; - -/** Whether the arbitrated handshaking has occurred or not. */ -var bool bNeedsEndGameHandshake; - -/** Whether the arbitrated handshaking has completed or not. */ -var bool bIsEndGameHandshakeComplete; - -/** Used to indicate when an arbitrated match has started its end sequence */ -var bool bHasEndGameHandshakeBegun; - -/** Whether the game expects a fixed player start for profiling. */ -var bool bFixedPlayerStart; - -/** The causeevent= string that the game passed in This is separate from automatedPerfTesting which is going to probably spawn bots / effects **/ -var string CauseEventCommand; - -/** This is the BugIt String Data. Other info should be stored here **/ -/** Currently stores the location string form **/ -var string BugLocString; - -/** Currently stores the rotation in string form **/ -var string BugRotString; - -/** - * List of player controllers we're awaiting handshakes with - * - * NOTE: Any PC in this list that does not complete the handshake within - * ArbitrationHandshakeTimeout will be kicked from the match - */ -var array PendingArbitrationPCs; - -/** - * Holds the list of players that passed handshaking and require finalization - * of arbitration data written to the online subsystem - */ -var array ArbitrationPCs; - -/** Amount of time a client can take for arbitration handshaking before being kicked */ -var globalconfig float ArbitrationHandshakeTimeout; - -var globalconfig float GameDifficulty; -var globalconfig int GoreLevel; // 0=Normal, increasing values=less gore -var float GameSpeed; // Scale applied to game rate. - -var class DefaultPawnClass; - -// user interface -var class HUDType; // HUD class this game uses. -var class SecondaryHUDType; // Secondary HUD class this game uses. - -var globalconfig int MaxSpectators; // Maximum number of spectators allowed by this server. -var int MaxSpectatorsAllowed; // Maximum number of spectators ever allowed (MaxSpectators is clamped to this in initgame() -var int NumSpectators; // Current number of spectators. -var globalconfig int MaxPlayers; // Maximum number of players allowed by this server. -var int MaxPlayersAllowed; // Maximum number of players ever allowed (MaxPlayers is clamped to this in initgame() -var int NumPlayers; // number of human players -var int NumBots; // number of non-human players (AI controlled but participating as a player) - -/** number of players that are still travelling from a previous map */ -var int NumTravellingPlayers; -var int CurrentID; // used to assign unique PlayerIDs to each PlayerReplicationInfo -var localized string DefaultPlayerName; -var localized string GameName; -var float FearCostFallOff; // how fast the FearCost in NavigationPoints falls off -var bool bDoFearCostFallOff; // If true, FearCost will fall off over time in NavigationPoints. Reset to false once all reach FearCosts reach 0. - -var config int GoalScore; // what score is needed to end the match -var config int MaxLives; // max number of lives for match, unless overruled by level's GameDetails -var config int TimeLimit; // time limit in minutes - -// Message classes. -var class DeathMessageClass; -var class GameMessageClass; - -//------------------------------------- -// GameInfo components -var Mutator BaseMutator; // linked list of Mutators (for modifying actors as they enter the game) -var class AccessControlClass; -var AccessControl AccessControl; // AccessControl controls whether players can enter and/or become admins -var class BroadcastHandlerClass; -var BroadcastHandler BroadcastHandler; // handles message (text and localized) broadcasts - -/** Class of automated test manager used by this game class */ -var class AutoTestManagerClass; - -/** Instantiated AutoTestManager - only exists if requested by command-line */ -var AutoTestManager MyAutoTestManager; - -var class PlayerControllerClass; // type of player controller to spawn for players logging in -var class PlayerReplicationInfoClass; - -// ReplicationInfo -var() class GameReplicationInfoClass; -var GameReplicationInfo GameReplicationInfo; - -var CrowdPopulationManagerBase PopulationManager; -var class PopulationManagerClass; - -var globalconfig float MaxIdleTime; // maximum time players are allowed to idle before being kicked - -/** Max interval that client clock is allowed to get ahead of server clock before triggering speed hack detection */ -var globalconfig float MaxTimeMargin; - -/** How fast we allow client clock to drift from server clock over time without ever triggering speed hack detection */ -var globalconfig float TimeMarginSlack; - -/** Clamps how far behind server clock we let time margin get. Used to prevent speedhacks where client slows their clock down for a while then speeds it up. */ -var globalconfig float MinTimeMargin; - -var array InactivePRIArray; /** PRIs of players who have left game (saved in case they reconnect) */ - -/** The list of delegates to check before unpausing a game */ -var array > Pausers; - -/** Cached online subsystem variable */ -var OnlineSubsystem OnlineSub; - -/** Cached online game interface variable */ -var OnlineGameInterface GameInterface; - -/** Class sent to clients to use to create and hold their stats */ -var class OnlineStatsWriteClass; - -/** The leaderboard to write the stats to for skill/scoring */ -var int LeaderboardId; - -/** The arbitrated leaderboard to write the stats to for skill/scoring */ -var int ArbitratedLeaderboardId; - -/** perform map travels using SeamlessTravel() which loads in the background and doesn't disconnect clients - * @see WorldInfo::SeamlessTravel() - */ -var bool bUseSeamlessTravel; - -/** Base copy of cover changes that need to be replicated to clients on join */ -var protected CoverReplicator CoverReplicatorBase; - -/** Tracks whether the server can travel due to a critical network error or not */ -var bool bHasNetworkError; - -/** Whether this game type requires voice to be push to talk or not */ -var const bool bRequiresPushToTalk; - -/** The class to use when registering dedicated servers with the online service */ -var const class OnlineGameSettingsClass; - -/** The options to apply for dedicated server when it starts to register */ -var string ServerOptions; - -/** Current adjusted net speed - Used for dynamically managing netspeed for listen servers*/ -var int AdjustedNetSpeed; - -/** Last time netspeed was updated for server (by client entering or leaving) */ -var float LastNetSpeedUpdateTime; - -/** Total available bandwidth for listen server, split dynamically across net connections */ -var globalconfig int TotalNetBandwidth; - -/** Minimum bandwidth dynamically set per connection */ -var globalconfig int MinDynamicBandwidth; - -/** Maximum bandwidth dynamically set per connection */ -var globalconfig int MaxDynamicBandwidth; - -/** Standby cheat detection vars */ -/** Used to determine if checking for standby cheats should occur */ -var config bool bIsStandbyCheckingEnabled; -/** Tracks standby checking status */ -var bool bIsStandbyCheckingOn; -/** Used to determine whether we've already caught a cheat or not */ -var bool bHasStandbyCheatTriggered; -/** The amount of time without packets before triggering the cheat code */ -var config float StandbyRxCheatTime; -/** The amount of time without packets before triggering the cheat code */ -var config float StandbyTxCheatTime; -/** The point we determine the server is either delaying packets or has bad upstream */ -var config int BadPingThreshold; -/** The percentage of clients missing RX data before triggering the standby code */ -var config float PercentMissingForRxStandby; -/** The percentage of clients missing TX data before triggering the standby code */ -var config float PercentMissingForTxStandby; -/** The percentage of clients with bad ping before triggering the standby code */ -var config float PercentForBadPing; -/** The amount of time to wait before checking a connection for standby issues */ -var config float JoinInProgressStandbyWaitTime; - -/** Material used for drawing a streaming pause icon. */ -var Material StreamingPauseIcon; - -/** Describes which standby detection event occured so the game can take appropriate action */ -enum EStandbyType -{ - STDBY_Rx, - STDBY_Tx, - STDBY_BadPing -}; -/** End standby cheat vars */ - -struct native GameClassShortName -{ - var string ShortName; - var string GameClassName; -}; -var() protected config const array GameInfoClassAliases; - -/** - * GameTypePrefix helper structure. - * Used to find valid gametypes for a map via its prefix. - */ -struct native GameTypePrefix -{ - /** map prefix, e.g. "DM" */ - var string Prefix; - /** if TRUE, generate a common package for the gametype */ - var bool bUsesCommonPackage; - /** gametype used if none specified on the URL */ - var string GameType; - /** additional gametypes supported by this map prefix via the URL (used for cooking) */ - var array AdditionalGameTypes; - /** forced objects (and classes) that should go into the common package to avoid cooking into every map */ - var array ForcedObjects; -}; - -/** The default game type to use on a map */ -var config string DefaultGameType; -/** Used for loading appropriate game type if non-specified in URL */ -var config array DefaultMapPrefixes; -/** Used for loading appropriate game type if non-specified in URL */ -var config array CustomMapPrefixes; - - -/** Size of the AnimTree pool. System will keep this number of extra AnimTrees around per Template */ -var config int AnimTreePoolSize; - -/** - * Retrieve the FGameTypePrefix struct for the given map filename. - * - * @param InFilename The map file name - * @param OutGameType The gametype prefix struct to fill in - * @param bCheckExt Optional parameter to check the extension of the InFilename to ensure it is a map - * - * @return UBOOL TRUE if successful, FALSE if map prefix not found. - * NOTE: FALSE will fill in with the default gametype. - */ -function native bool GetSupportedGameTypes(const out string InFilename, out GameTypePrefix OutGameType, optional bool bCheckExt = false) const; - -/** - * Retrieve the name of the common package (if any) for the given map filename. - * - * @param InFilename The map file name - * @param OutCommonPackageName The nane of the common package for the given map - * - * @return UBOOL TRUE if successful, FALSE if map prefix not found. - */ -function native bool GetMapCommonPackageName(const out string InFilename, out string OutCommonPackageName) const; - -cpptext -{ - /** called on the default object of the class specified by DefaultGame in the [Engine.GameInfo] section of Game.ini - * whenever worlds are saved. - * Gives the game a chance to add supported gametypes to the WorldInfo's GameTypesSupportedOnThisMap array - * (used for console cooking) - * @param Info: the WorldInfo of the world being saved - */ - virtual void AddSupportedGameTypes(AWorldInfo* Info, const TCHAR* WorldFilename, TArray& AdditionalPackagesToCook) const - { - } - - /** Allows for game classname remapping and/or aliasing (e.g. for shorthand names) */ - static FString StaticGetRemappedGameClassName(FString const& GameClassName); -} - -//------------------------------------------------------------------------------ -// Engine notifications. - -event PreBeginPlay() -{ - AdjustedNetSpeed = MaxDynamicBandwidth; - SetGameSpeed(GameSpeed); - GameReplicationInfo = Spawn(GameReplicationInfoClass); - WorldInfo.GRI = GameReplicationInfo; - - InitGameReplicationInfo(); - InitCrowdPopulationManager(); -} - -function CoverReplicator GetCoverReplicator() -{ - if (CoverReplicatorBase == None && WorldInfo.NetMode != NM_Standalone) - { - CoverReplicatorBase = Spawn(class'CoverReplicator'); - } - return CoverReplicatorBase; -} - -event PostBeginPlay() -{ - if ( MaxIdleTime > 0 ) - { - MaxIdleTime = FMax(MaxIdleTime, 20); - } - - if (WorldInfo.NetMode == NM_DedicatedServer) - { - // Update any online advertised settings - UpdateGameSettings(); - } -} - -/** - * Use 'ShowGameDebug' console command to show this debug info - * Useful to show general debug info not tied to a particular actor physically in the level. - */ -simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) -{ - local Canvas Canvas; - - Canvas = HUD.Canvas; - Canvas.SetDrawColor(255,255,255); - - Canvas.DrawText("Game:" $GameName ); - out_YPos += out_YL; - Canvas.SetPos(4,out_YPos); - - if ( WorldInfo.PopulationManager != None ) - { - WorldInfo.PopulationManager.DisplayDebug(HUD, out_YL, out_YPos); - } -} - - -/* Reset() - reset actor to initial state - used when restarting level without reloading. - @note: GameInfo::Reset() called after all other actors have been reset */ -function Reset() -{ - super.Reset(); - - bGameEnded = false; - bOverTime = false; - InitGameReplicationInfo(); -} - -/** @return true if ActorToReset should have Reset() called on it while restarting the game, false if the GameInfo will manually reset it - or if the actor does not need to be reset -*/ -function bool ShouldReset(Actor ActorToReset) -{ - return true; -} - -/** Resets level by calling Reset() on all actors */ -function ResetLevel() -{ - local Controller C; - local Actor A; - local Sequence GameSeq; - local array AllSeqEvents; - local array ActivateIndices; - local int i; - - `Log("Reset" @ self); - // Reset ALL controllers first - foreach WorldInfo.AllControllers(class'Controller', C) - { - if ( PlayerController(C) != None ) - { - PlayerController(C).ClientReset(); - } - C.Reset(); - } - - // Reset all actors (except controllers, the GameInfo, and any other actors specified by ShouldReset()) - foreach AllActors(class'Actor', A) - { - if (A != self && !A.IsA('Controller') && ShouldReset(A)) - { - A.Reset(); - } - } - - // reset the GameInfo - Reset(); - - // reset Kismet and activate any Level Reset events - GameSeq = WorldInfo.GetGameSequence(); - if (GameSeq != None) - { - // reset the game sequence - GameSeq.Reset(); - - // find any Level Loaded events that exist - GameSeq.FindSeqObjectsByClass(class'SeqEvent_LevelLoaded', true, AllSeqEvents); - - // activate them - ActivateIndices[0] = 2; - for (i = 0; i < AllSeqEvents.Length; i++) - { - SeqEvent_LevelLoaded(AllSeqEvents[i]).CheckActivate(WorldInfo, None, false, ActivateIndices); - } - } -} - - -event Timer() -{ - BroadcastHandler.UpdateSentText(); - - // Update navigation point fear cost fall off. - if ( bDoFearCostFallOff ) - { - DoNavFearCostFallOff(); - } -} - -/** - * Check to see if we should start in cinematic mode (e.g. matinee movie capture). - * - * @param OutHidePlayer Whether to hide the player - * @param OutHideHud Whether to hide the HUD - * @param OutDisableMovement Whether to disable movement - * @param OutDisableTurning Whether to disable turning - * @param OutDisableInput Whether to disable input - * - * @return UBOOL TRUE if we should turn on cinematic mode, - * FALSE if if we should not. - */ -final native function bool ShouldStartInCinematicMode(out int OutHidePlayer, out int OutHideHud, out int OutDisableMovement, out int OutDisableTurning, out int OutDisableInput); - -/** Update navigation point fear cost fall off. */ -final native function DoNavFearCostFallOff(); - -/** notification when a NavigationPoint becomes blocked or unblocked */ -function NotifyNavigationChanged(NavigationPoint N); - -// Called when game shutsdown. -event GameEnding() -{ - if (AccessControl != none) - { - AccessControl.NotifyGameEnding(); - } - - ClearOnlineDelegates(); - - EndLogging("serverquit"); -} - -/* KickIdler() called if - if ( (Pawn != None) || (PlayerReplicationInfo.bOnlySpectator && (ViewTarget != self)) - || (WorldInfo.Pauser != None) || WorldInfo.Game.bWaitingToStartMatch || WorldInfo.Game.bGameEnded ) - { - LastActiveTime = WorldInfo.TimeSeconds; - } - else if ( (WorldInfo.Game.MaxIdleTime > 0) && (WorldInfo.TimeSeconds - LastActiveTime > WorldInfo.Game.MaxIdleTime) ) - KickIdler(self); -*/ -event KickIdler(PlayerController PC) -{ - `log("Kicking idle player "$PC.PlayerReplicationInfo.PlayerName); - AccessControl.KickPlayer(PC, AccessControl.IdleKickReason); -} - -// This will kick any player, even if they are an admin. -event ForceKickPlayer(PlayerController PC, string KickReason) -{ - `log("Force kicking player "$PC.PlayerReplicationInfo.PlayerName); - AccessControl.ForceKickPlayer(PC, KickReason); -} - -//------------------------------------------------------------------------------ -// Replication - -function InitGameReplicationInfo() -{ - GameReplicationInfo.GameClass = Class; - GameReplicationInfo.ReceivedGameClass(); -} - -native function string GetNetworkNumber(); - -function int GetNumPlayers() -{ - return NumPlayers + NumTravellingPlayers; -} - -//------------------------------------------------------------------------------ -// Misc. - -/** - * Default delegate that provides an implementation for those that don't have - * special needs other than a toggle - */ -delegate bool CanUnpause() -{ - return true; -} - -/** - * Adds the delegate to the list if the player controller has the right to pause - * the game. The delegate is called to see if it is ok to unpause the game, e.g. - * the reason the game was paused has been cleared. - * - * @param PC the player controller to check for admin privs - * @param CanUnpauseDelegate the delegate to query when checking for unpause - */ -function bool SetPause(PlayerController PC, optional delegate CanUnpauseDelegate=CanUnpause) -{ - local int FoundIndex; - - if ( AllowPausing(PC) ) - { - // Don't add the delegate twice (no need) - FoundIndex = Pausers.Find(CanUnpauseDelegate); - if (FoundIndex == INDEX_NONE) - { - // Not in the list so add it for querying - FoundIndex = Pausers.Length; - Pausers.Length = FoundIndex + 1; - Pausers[FoundIndex] = CanUnpauseDelegate; - } - // Let the first one in "own" the pause state - if (WorldInfo.Pauser == None) - { - WorldInfo.Pauser = PC.PlayerReplicationInfo; - } - return true; - } - return false; -} - -/** - * Checks the list of delegates to determine if the pausing can be cleared. If - * the delegate says it's ok to unpause, that delegate is removed from the list - * and the rest are checked. The game is considered unpaused when the list is - * empty. - */ -event ClearPause() -{ - local int Index; - local delegate CanUnpauseCriteriaMet; - - if ( !AllowPausing() && Pausers.Length > 0 ) - { - `log("Clearing list of UnPause delegates for" @ Name @ "because game type is not pauseable"); - Pausers.Length = 0; - } - - for (Index = 0; Index < Pausers.Length; Index++) - { - CanUnpauseCriteriaMet = Pausers[Index]; - if (CanUnpauseCriteriaMet()) - { - Pausers.Remove(Index--,1); - } - } - - // Clear the pause state if the list is empty - if ( Pausers.Length == 0 ) - { - WorldInfo.Pauser = None; - } -} - -/** - * Forcibly removes an object's CanUnpause delegates from the list of pausers. If any of the object's CanUnpause delegate - * handlers were in the list, triggers a call to ClearPause(). - * - * Called when the player controller is being destroyed to prevent the game from being stuck in a paused state when a PC that - * paused the game is destroyed before the game is unpaused. - */ -native final function ForceClearUnpauseDelegates( Actor PauseActor ); - -/** - * Dumps the pause delegate list to track down who has the game paused - */ -function DebugPause() -{ - local int Index; - local delegate CanUnpauseCriteriaMet; - - for (Index = 0; Index < Pausers.Length; Index++) - { - CanUnpauseCriteriaMet = Pausers[Index]; - if (CanUnpauseCriteriaMet()) - { - `Log("Pauser in index "$Index$" thinks it's ok to unpause:" @ CanUnpauseCriteriaMet); - } - else - { - `Log("Pauser in index "$Index$" thinks the game should remain paused:" @ CanUnpauseCriteriaMet); - } - } -} - -//------------------------------------------------------------------------------ -// Game parameters. - -// -// Set gameplay speed. -// -function SetGameSpeed( Float T ) -{ - GameSpeed = FMax(T, 0.00001); - WorldInfo.TimeDilation = GameSpeed; - SetTimer(WorldInfo.TimeDilation, true); -} - -//------------------------------------------------------------------------------ -// Player start functions - -// -// Grab the next option from a string. -// -static function bool GrabOption( out string Options, out string Result ) -{ - if( Left(Options,1)=="?" ) - { - // Get result. - Result = Mid(Options,1); - if( InStr(Result,"?")>=0 ) - Result = Left( Result, InStr(Result,"?") ); - - // Update options. - Options = Mid(Options,1); - if( InStr(Options,"?")>=0 ) - Options = Mid( Options, InStr(Options,"?") ); - else - Options = ""; - - return true; - } - else return false; -} - -// -// Break up a key=value pair into its key and value. -// -static function GetKeyValue( string Pair, out string Key, out string Value ) -{ - if( InStr(Pair,"=")>=0 ) - { - Key = Left(Pair,InStr(Pair,"=")); - Value = Mid(Pair,InStr(Pair,"=")+1); - } - else - { - Key = Pair; - Value = ""; - } -} - -/* ParseOption() - Find an option in the options string and return it. -*/ -static function string ParseOption( string Options, string InKey ) -{ - local string Pair, Key, Value; - while( GrabOption( Options, Pair ) ) - { - GetKeyValue( Pair, Key, Value ); - if( Key ~= InKey ) - return Value; - } - return ""; -} - -// -// HasOption - return true if the option is specified on the command line. -// -static function bool HasOption( string Options, string InKey ) -{ - local string Pair, Key, Value; - while( GrabOption( Options, Pair ) ) - { - GetKeyValue( Pair, Key, Value ); - if( Key ~= InKey ) - return true; - } - return false; -} - -static function int GetIntOption( string Options, string ParseString, int CurrentValue) -{ - local string InOpt; - - InOpt = ParseOption( Options, ParseString ); - if ( InOpt != "" ) - { - return int(InOpt); - } - return CurrentValue; -} - -/** @return the full path to the optimal GameInfo class to use for the specified map and options - * this is used for preloading cooked packages, etc. and therefore doesn't need to include any fallbacks - * as SetGameType() will be called later to actually find/load the desired class - */ -static event string GetDefaultGameClassPath(string MapName, string Options, string Portal) -{ - return PathName(Default.Class); -} - -/** @return the class of GameInfo to spawn for the game on the specified map and the specified options - * this function should include any fallbacks in case the desired class can't be found - */ -static event class SetGameType(string MapName, string Options, string Portal) -{ - return Default.Class; -} - -/* Initialize the game. - The GameInfo's InitGame() function is called before any other scripts (including - PreBeginPlay() ), and is used by the GameInfo to initialize parameters and spawn - its helper classes. - Warning: this is called before actors' PreBeginPlay. -*/ -event InitGame( string Options, out string ErrorMessage ) -{ - local string InOpt, LeftOpt; - local int pos; - local class ACClass; - local AccessControl CurAC; - local OnlineGameSettings GameSettings; - - MaxPlayers = Clamp(GetIntOption( Options, "MaxPlayers", MaxPlayers ),0,MaxPlayersAllowed); - MaxSpectators = Clamp(GetIntOption( Options, "MaxSpectators", MaxSpectators ),0,MaxSpectatorsAllowed); - GameDifficulty = FMax(0,GetIntOption(Options, "Difficulty", GameDifficulty)); - - InOpt = ParseOption( Options, "GameSpeed"); - if( InOpt != "" ) - { - `log("GameSpeed"@InOpt); - SetGameSpeed(float(InOpt)); - } - - TimeLimit = Max(0,GetIntOption( Options, "TimeLimit", TimeLimit )); - - BroadcastHandler = spawn(BroadcastHandlerClass); - - InOpt = ParseOption( Options, "AccessControl"); - if( InOpt != "" ) - { - ACClass = class(DynamicLoadObject(InOpt, class'Class')); - } - if ( ACClass == None ) - { - ACClass = AccessControlClass; - } - - LeftOpt = ParseOption( Options, "AdminName" ); - InOpt = ParseOption( Options, "AdminPassword"); - /* @FIXME: this is a compiler error, "can't set defaults of non-config properties". Fix or remove at some point. - if( LeftOpt!="" && InOpt!="" ) - ACClass.default.bDontAddDefaultAdmin = true; - */ - - // Only spawn access control if we are a server - if (WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer) - { - // If we are coming out of seamless travel, and there is an access control carried over from the previous level, - // use that instead of creating a new one - if (WorldInfo.IsInSeamlessTravel()) - { - foreach DynamicActors(Class'AccessControl', CurAC) - { - AccessControl = CurAC; - break; - } - } - - if (AccessControl == none) - { - AccessControl = Spawn(ACClass); - } - - if (AccessControl != None && InOpt != "") - { - AccessControl.SetAdminPassword(InOpt); - } - } - - InOpt = ParseOption( Options, "Mutator"); - if ( InOpt != "" ) - { - `log("Mutators"@InOpt); - while ( InOpt != "" ) - { - pos = InStr(InOpt,","); - if ( pos > 0 ) - { - LeftOpt = Left(InOpt, pos); - InOpt = Right(InOpt, Len(InOpt) - pos - 1); - } - else - { - LeftOpt = InOpt; - InOpt = ""; - } - AddMutator(LeftOpt, true); - } - } - - InOpt = ParseOption( Options, "GamePassword"); - if( InOpt != "" && AccessControl != None) - { - AccessControl.SetGamePassWord(InOpt); - `log( "GamePassword" @ InOpt ); - } - - bFixedPlayerStart = ( ParseOption( Options, "FixedPlayerStart" ) ~= "1" ); - CauseEventCommand = ( ParseOption( Options, "causeevent" ) ); - - if ( ParseOption( Options, "AutoTests" ) ~= "1" ) - { - if ( MyAutoTestManager == None ) - { - MyAutoTestManager = spawn(AutoTestManagerClass); - } - MyAutoTestManager.InitializeOptions(Options); - } - - BugLocString = ParseOption(Options, "BugLoc"); - BugRotString = ParseOption(Options, "BugRot"); - - if (BaseMutator != none) - { - BaseMutator.InitMutator(Options, ErrorMessage); - } - - // Cache a pointer to the online subsystem - OnlineSub = class'GameEngine'.static.GetOnlineSubsystem(); - if (OnlineSub != None) - { - // And grab one for the game interface since it will be used often - GameInterface = OnlineSub.GameInterface; - if (GameInterface != None) - { - // Grab the current game settings object out - GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - if (GameSettings != None) - { - // Check for an arbitrated match - bUsingArbitration = GameSettings.bUsesArbitration; - } - } - } - - if ((WorldInfo.IsConsoleBuild(CONSOLE_Any) == false) && - (WorldInfo.NetMode != NM_Standalone) && - // Don't register the session if the UI already has - (GameSettings == None)) - { - // Cache this so it can be used later by async processes - ServerOptions = Options; - // If there isn't a login to process, immediately register the server - // Otherwise the server will be registered when the login completes - if (!ProcessServerLogin()) - { - RegisterServer(); - } - } -} - -/** Called when a connection closes before getting to PostLogin() */ -event NotifyPendingConnectionLost(); - -function AddMutator(string mutname, optional bool bUserAdded) -{ - local class mutClass; - local Mutator mut; - local int i; - - if ( !Static.AllowMutator(MutName) ) - return; - - mutClass = class(DynamicLoadObject(mutname, class'Class')); - if (mutClass == None) - return; - - if (mutClass.Default.GroupNames.length > 0 && BaseMutator != None) - { - // make sure no mutators with same groupname - for (mut = BaseMutator; mut != None; mut = mut.NextMutator) - { - for (i = 0; i < mut.GroupNames.length; i++) - { - if (mutClass.default.GroupNames.Find(mut.GroupNames[i]) != INDEX_NONE) - { - `log("Not adding "$mutClass$" because already have a mutator in the same group - "$mut); - return; - } - } - } - } - - // make sure this mutator is not added already - for ( mut=BaseMutator; mut!=None; mut=mut.NextMutator ) - if ( mut.Class == mutClass ) - { - `log("Not adding "$mutClass$" because this mutator is already added - "$mut); - return; - } - - mut = Spawn(mutClass); - // mc, beware of mut being none - if (mut == None) - return; - - // Meant to verify if this mutator was from Command Line parameters or added from other Actors - mut.bUserAdded = bUserAdded; - - if (BaseMutator == None) - { - BaseMutator = mut; - } - else - { - BaseMutator.AddMutator(mut); - } -} - -/* RemoveMutator() -Remove a mutator from the mutator list -*/ -function RemoveMutator( Mutator MutatorToRemove ) -{ - local Mutator M; - - // remove from mutator list - if ( BaseMutator == MutatorToRemove ) - { - BaseMutator = MutatorToRemove.NextMutator; - } - else if ( BaseMutator != None ) - { - for ( M=BaseMutator; M!=None; M=M.NextMutator ) - { - if ( M.NextMutator == MutatorToRemove ) - { - M.NextMutator = MutatorToRemove.NextMutator; - break; - } - } - } -} - -/* ProcessServerTravel() - Optional handling of ServerTravel for network games. -*/ -function ProcessServerTravel(string URL, optional bool bAbsolute) -{ - local PlayerController LocalPlayer; - local bool bSeamless; - local string NextMap; - local Guid NextMapGuid; - local int OptionStart; - - bLevelChange = true; - EndLogging("mapchange"); - - // force an old style load screen if the server has been up for a long time so that TimeSeconds doesn't overflow and break everything - bSeamless = (bUseSeamlessTravel && WorldInfo.TimeSeconds < 172800.0f); // 172800 seconds == 48 hours - - if (InStr(Caps(URL), "?RESTART") != INDEX_NONE) - { - NextMap = string(WorldInfo.GetPackageName()); - } - else - { - OptionStart = InStr(URL, "?"); - if (OptionStart == INDEX_NONE) - { - NextMap = URL; - } - else - { - NextMap = Left(URL, OptionStart); - } - } - NextMapGuid = GetPackageGuid(name(NextMap)); - - // Notify clients we're switching level and give them time to receive. - LocalPlayer = ProcessClientTravel(URL, NextMapGuid, bSeamless, bAbsolute); - - `log("ProcessServerTravel:"@URL); - WorldInfo.NextURL = URL; - if (WorldInfo.NetMode == NM_ListenServer && LocalPlayer != None) - { - WorldInfo.NextURL $= "?Team="$LocalPlayer.GetDefaultURL("Team") - $"?Name="$LocalPlayer.GetDefaultURL("Name") - $"?Class="$LocalPlayer.GetDefaultURL("Class") - $"?Character="$LocalPlayer.GetDefaultURL("Character"); - } - - - // Notify access control, to cleanup online subsystem references - if (AccessControl != none) - { - AccessControl.NotifyServerTravel(bSeamless); - } - - // Trigger cleanup of online delegates - ClearOnlineDelegates(); - - if (bSeamless) - { - WorldInfo.SeamlessTravel(WorldInfo.NextURL, bAbsolute); - WorldInfo.NextURL = ""; - } - // Switch immediately if not networking. - else if (WorldInfo.NetMode != NM_DedicatedServer && WorldInfo.NetMode != NM_ListenServer) - { - WorldInfo.NextSwitchCountdown = 0.0; - } -} - -/** - * Notifies all clients to travel to the specified URL. - * - * @param URL a string containing the mapname (or IP address) to travel to, along with option key/value pairs - * @param NextMapGuid the GUID of the server's version of the next map - * @param bSeamless indicates whether the travel should use seamless travel or not. - * @param bAbsolute indicates which type of travel the server will perform (i.e. TRAVEL_Relative or TRAVEL_Absolute) - */ -function PlayerController ProcessClientTravel( out string URL, Guid NextMapGuid, bool bSeamless, bool bAbsolute ) -{ - local PlayerController P, LP; - - // We call PreClientTravel directly on any local PlayerPawns (ie listen server) - foreach WorldInfo.AllControllers(class'PlayerController', P) - { - if ( NetConnection(P.Player) != None ) - { - // remote player - P.ClientTravel(URL, TRAVEL_Relative, bSeamless, NextMapGuid); - } - else - { - // local player - LP = P; - P.PreClientTravel(URL, bAbsolute ? TRAVEL_Absolute : TRAVEL_Relative, bSeamless); - } - } - - return LP; -} - -function bool RequiresPassword() -{ - return ( (AccessControl != None) && AccessControl.RequiresPassword() ); -} - -// -// Accept or reject a player on the server. -// Fails login if you set the Error to a non-empty string. -// NOTE: UniqueId should not be trusted at this stage, it requires authentication -// -event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) -{ - local bool bSpectator; - local bool bPerfTesting; - - // Check for an arbitrated match in progress and kick if needed - if (WorldInfo.NetMode != NM_Standalone && bUsingArbitration && bHasArbitratedHandshakeBegun) - { - ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".ArbitrationMessage"; - return; - } - - // If this player is banned, reject him - if (AccessControl != none && AccessControl.IsIDBanned(UniqueId)) - { - `log(Address@"is banned, rejecting..."); - ErrorMessage = "Engine.AccessControl.SessionBanned"; - return; - } - - - bPerfTesting = ( ParseOption( Options, "AutomatedPerfTesting" ) ~= "1" ); - bSpectator = bPerfTesting || ( ParseOption( Options, "SpectatorOnly" ) ~= "1" ) || ( ParseOption( Options, "CauseEvent" ) ~= "FlyThrough" ); - - if (AccessControl != None) - { - AccessControl.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage, bSpectator); - } -} - -/** - * If called from within PreLogin, pauses the login process for the currently connecting client (usually to delay login for authentication) - * - * @return A reference to the Player/NetConnection representing the connecting client; used to resume the login process - */ -native static final function Player PauseLogin(); - -/** - * Resumes the login process for the specified client Player/NetConnection - * - * @param InPlayer The Player/NetConnection to resume logging in - */ -native static final function ResumeLogin(Player InPlayer); - -/** - * Rejects login for the specified client/NetConnection, with the specified error message - * NOTE: Error is the same error format PreLogin would take in OutError - * NOTE: Not restricted to clients at login; can be used on any valid NetConnection to disconnect a client - * - * @param InPlayer The Player/NetConnection to reject from the server - * @param Error The error message to give the player - */ -native static final function RejectLogin(Player InPlayer, string Error); - -/* - * Is the server currently at capacity? - * @param bSpectator - Whether we should check against player or spectator limits - * @return TRUE if the server is full, FALSE otherwise - */ -function bool AtCapacity(bool bSpectator) -{ - if ( WorldInfo.NetMode == NM_Standalone ) - return false; - - if ( bSpectator ) - return ( (NumSpectators >= MaxSpectators) - && ((WorldInfo.NetMode != NM_ListenServer) || (NumPlayers > 0)) ); - else - return ( (MaxPlayers>0) && (GetNumPlayers() >= MaxPlayers) ); -} - -native final function int GetNextPlayerID(); - -/** spawns a PlayerController at the specified location; split out from Login()/HandleSeamlessTravelPlayer() for easier overriding */ -function PlayerController SpawnPlayerController(vector SpawnLocation, rotator SpawnRotation) -{ - return Spawn(PlayerControllerClass,,, SpawnLocation, SpawnRotation); -} - -// -// Log a player in. -// Fails login if you set the Error string. -// PreLogin is called before Login, but significant game time may pass before -// Login is called, especially if content is downloaded. -// NOTE: If the AccessControl utilizes PauseLogin, UniqueID should be fully authenticated here -// -event PlayerController Login(string Portal, string Options, const UniqueNetID UniqueID, out string ErrorMessage) -{ - local NavigationPoint StartSpot; - local PlayerController NewPlayer; - local string InName, InCharacter/*, InAdminName*/, InPassword; - local byte InTeam; - local bool bSpectator, bAdmin, bPerfTesting; - local rotator SpawnRotation; - local UniqueNetId ZeroId; - - bAdmin = false; - - // Kick the player if they joined during the handshake process - if (bUsingArbitration && bHasArbitratedHandshakeBegun) - { - ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".ArbitrationMessage"; - return None; - } - - if ( BaseMutator != None ) - BaseMutator.ModifyLogin(Portal, Options); - - bPerfTesting = ( ParseOption( Options, "AutomatedPerfTesting" ) ~= "1" ); - bSpectator = bPerfTesting || ( ParseOption( Options, "SpectatorOnly" ) ~= "1" ); - - // Get URL options. - InName = Left(ParseOption ( Options, "Name"), 20); - InTeam = GetIntOption( Options, "Team", 255 ); // default to "no team" - //InAdminName= ParseOption ( Options, "AdminName"); - InPassword = ParseOption ( Options, "Password" ); - //InChecksum = ParseOption ( Options, "Checksum" ); - - if ( AccessControl != None ) - { - bAdmin = AccessControl.ParseAdminOptions(Options); - } - - // Make sure there is capacity except for admins. (This might have changed since the PreLogin call). - if ( !bAdmin && AtCapacity(bSpectator) ) - { - ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".MaxedOutMessage"; - return None; - } - - // if this player is banned, kick him - if( ( WorldInfo.Game.AccessControl != none ) && (WorldInfo.Game.AccessControl.IsIDBanned(UniqueId)) ) - { - `Log(InName @ "is banned, rejecting..."); - ErrorMessage = "Engine.AccessControl.SessionBanned"; - return None; - } - - // If admin, force spectate mode if the server already full of reg. players - if ( bAdmin && AtCapacity(false) ) - { - bSpectator = true; - } - - // Pick a team (if need teams) - InTeam = PickTeam(InTeam,None); - - // Find a start spot. - StartSpot = FindPlayerStart( None, InTeam, Portal ); - - if( StartSpot == None ) - { - ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".FailedPlaceMessage"; - return None; - } - - SpawnRotation.Yaw = StartSpot.Rotation.Yaw; - NewPlayer = SpawnPlayerController(StartSpot.Location, SpawnRotation); - - // Handle spawn failure. - if( NewPlayer == None ) - { - `log("Couldn't spawn player controller of class "$PlayerControllerClass); - ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".FailedSpawnMessage"; - return None; - } - - NewPlayer.StartSpot = StartSpot; - - // Set the player's ID. - NewPlayer.PlayerReplicationInfo.PlayerID = GetNextPlayerID(); - - // If the access control is currently authenticating the players UID, don't store the UID until it is authenticated - if (AccessControl == none || !AccessControl.IsPendingAuth(UniqueId)) - { - NewPlayer.PlayerReplicationInfo.SetUniqueId(UniqueId); - } - - if (OnlineSub != None && - OnlineSub.GameInterface != None && - UniqueId != ZeroId) - { - // Go ahead and register the player as part of the session - WorldInfo.Game.OnlineSub.GameInterface.RegisterPlayer(PlayerReplicationInfoClass.default.SessionName, UniqueId, HasOption(Options, "bIsFromInvite")); - } - // Now that the unique id is replicated, this player can contribute to skill - RecalculateSkillRating(); - - // Init player's name - if( InName=="" ) - { - InName=DefaultPlayerName$NewPlayer.PlayerReplicationInfo.PlayerID; - } - - ChangeName( NewPlayer, InName, false ); - - InCharacter = ParseOption(Options, "Character"); - NewPlayer.SetCharacter(InCharacter); - - if ( bSpectator || NewPlayer.PlayerReplicationInfo.bOnlySpectator || !ChangeTeam(newPlayer, InTeam, false) ) - { - NewPlayer.GotoState('Spectating'); - NewPlayer.PlayerReplicationInfo.bOnlySpectator = true; - NewPlayer.PlayerReplicationInfo.bIsSpectator = true; - NewPlayer.PlayerReplicationInfo.bOutOfLives = true; - return NewPlayer; - } - - // perform auto-login if admin password/name was passed on the url - if ( AccessControl != None && AccessControl.AdminLogin(NewPlayer, InPassword) ) - { - AccessControl.AdminEntered(NewPlayer); - } - - - // if delayed start, don't give a pawn to the player yet - // Normal for multiplayer games - if ( bDelayedStart ) - { - // @todo ib2merge: Chair had this commented out - NewPlayer.GotoState('PlayerWaiting'); - return NewPlayer; - } - - return newPlayer; -} - -/* StartMatch() -Start the game - inform all actors that the match is starting, and spawn player pawns -*/ -function StartMatch() -{ - local Actor A; - - if ( MyAutoTestManager != None ) - { - MyAutoTestManager.StartMatch(); - } - - // tell all actors the game is starting - ForEach AllActors(class'Actor', A) - { - A.MatchStarting(); - } - - // start human players first - StartHumans(); - - // start AI players - StartBots(); - - bWaitingToStartMatch = false; - - StartOnlineGame(); - - // fire off any level startup events - WorldInfo.NotifyMatchStarted(); -} - -/** - * Tells the online system to start the game and waits for the callback. Tells - * each connected client to mark their session as in progress - */ -function StartOnlineGame() -{ - local PlayerController PC; - - if (GameInterface != None) - { - // Tell clients to mark their game as started - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - // Skip notifying local PCs as they are handled automatically - if (!PC.IsLocalPlayerController()) - { - PC.ClientStartOnlineGame(); - } - } - // Register the start callback so that the stat guid can be read - GameInterface.AddStartOnlineGameCompleteDelegate(OnStartOnlineGameComplete); - // Start the game locally and wait for it to complete - GameInterface.StartOnlineGame(PlayerReplicationInfoClass.default.SessionName); - } - else - { - // Notify all clients that the match has begun - GameReplicationInfo.StartMatch(); - } -} - -/** - * Callback when the start completes - * - * @param SessionName the name of the session this is for - * @param bWasSuccessful true if it worked, false otherwise - */ -function OnStartOnlineGameComplete(name SessionName,bool bWasSuccessful) -{ - local PlayerController PC; - local string StatGuid; - - GameInterface.ClearStartOnlineGameCompleteDelegate(OnStartOnlineGameComplete); - if (bWasSuccessful && OnlineSub.StatsInterface != None) - { - // Get the stat guid for the server - StatGuid = OnlineSub.StatsInterface.GetHostStatGuid(); - if (StatGuid != "") - { - // Send the stat guid to all clients - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (PC.IsLocalPlayerController() == false) - { - PC.ClientRegisterHostStatGuid(StatGuid); - } - } - } - } - - // Notify all clients that the match has begun - GameReplicationInfo.StartMatch(); -} - -function StartHumans() -{ - local PlayerController P; - - foreach WorldInfo.AllControllers(class'PlayerController', P) - { - if (P.Pawn == None) - { - if ( bGameEnded ) - { - return; // telefrag ended the game with ridiculous frag limit - } - else if (P.CanRestartPlayer()) - { - RestartPlayer(P); - } - } - } -} - -function StartBots() -{ - local Controller P; - - foreach WorldInfo.AllControllers(class'Controller', P) - { - if (P.bIsPlayer && !P.IsA('PlayerController')) - { - if (WorldInfo.NetMode == NM_Standalone) - { - RestartPlayer(P); - } - else - { - P.GotoState('Dead','MPStart'); - } - } - } -} -// -// Restart a player. -// -function RestartPlayer(Controller NewPlayer) -{ - local NavigationPoint startSpot; - local int TeamNum, Idx; - local array Events; - local SeqEvent_PlayerSpawned SpawnedEvent; - local LocalPlayer LP; - local PlayerController PC; - - if( bRestartLevel && WorldInfo.NetMode!=NM_DedicatedServer && WorldInfo.NetMode!=NM_ListenServer ) - { - `warn("bRestartLevel && !server, abort from RestartPlayer"@WorldInfo.NetMode); - return; - } - // figure out the team number and find the start spot - TeamNum = ((NewPlayer.PlayerReplicationInfo == None) || (NewPlayer.PlayerReplicationInfo.Team == None)) ? 255 : NewPlayer.PlayerReplicationInfo.Team.TeamIndex; - StartSpot = FindPlayerStart(NewPlayer, TeamNum); - - // if a start spot wasn't found, - if (startSpot == None) - { - // check for a previously assigned spot - if (NewPlayer.StartSpot != None) - { - StartSpot = NewPlayer.StartSpot; - `warn("Player start not found, using last start spot"); - } - else - { - // otherwise abort - `warn("Player start not found, failed to restart player"); - return; - } - } - // try to create a pawn to use of the default class for this player - if (NewPlayer.Pawn == None) - { - NewPlayer.Pawn = SpawnDefaultPawnFor(NewPlayer, StartSpot); - } - if (NewPlayer.Pawn == None) - { - `log("failed to spawn player at "$StartSpot); - NewPlayer.GotoState('Dead'); - if ( PlayerController(NewPlayer) != None ) - { - PlayerController(NewPlayer).ClientGotoState('Dead','Begin'); - } - } - else - { - // initialize and start it up - NewPlayer.Pawn.SetAnchor(startSpot); - if ( PlayerController(NewPlayer) != None ) - { - PlayerController(NewPlayer).TimeMargin = -0.1; - startSpot.AnchoredPawn = None; // SetAnchor() will set this since IsHumanControlled() won't return true for the Pawn yet - } - NewPlayer.Pawn.LastStartSpot = PlayerStart(startSpot); - NewPlayer.Pawn.LastStartTime = WorldInfo.TimeSeconds; - NewPlayer.Possess(NewPlayer.Pawn, false); - NewPlayer.Pawn.PlayTeleportEffect(true, true); - NewPlayer.ClientSetRotation(NewPlayer.Pawn.Rotation, TRUE); - - if (!WorldInfo.bNoDefaultInventoryForPlayer) - { - AddDefaultInventory(NewPlayer.Pawn); - } - SetPlayerDefaults(NewPlayer.Pawn); - - // activate spawned events - if (WorldInfo.GetGameSequence() != None) - { - WorldInfo.GetGameSequence().FindSeqObjectsByClass(class'SeqEvent_PlayerSpawned',TRUE,Events); - for (Idx = 0; Idx < Events.Length; Idx++) - { - SpawnedEvent = SeqEvent_PlayerSpawned(Events[Idx]); - if (SpawnedEvent != None && - SpawnedEvent.CheckActivate(NewPlayer,NewPlayer)) - { - SpawnedEvent.SpawnPoint = startSpot; - SpawnedEvent.PopulateLinkedVariableValues(); - } - } - } - } - - // To fix custom post processing chain when not running in editor or PIE. - PC = PlayerController(NewPlayer); - if (PC != none) - { - LP = LocalPlayer(PC.Player); - if(LP != None) - { - LP.RemoveAllPostProcessingChains(); - LP.InsertPostProcessingChain(LP.Outer.GetWorldPostProcessChain(),INDEX_NONE,true); - if(PC.myHUD != None) - { - PC.myHUD.NotifyBindPostProcessEffects(); - } - } - } -} - -/** - * Returns a pawn of the default pawn class - * - * @param NewPlayer - Controller for whom this pawn is spawned - * @param StartSpot - PlayerStart at which to spawn pawn - * - * @return pawn - */ -function Pawn SpawnDefaultPawnFor(Controller NewPlayer, NavigationPoint StartSpot) -{ - local class DefaultPlayerClass; - local Rotator StartRotation; - local Pawn ResultPawn; - - DefaultPlayerClass = GetDefaultPlayerClass(NewPlayer); - - // don't allow pawn to be spawned with any pitch or roll - StartRotation.Yaw = StartSpot.Rotation.Yaw; - - ResultPawn = Spawn(DefaultPlayerClass,,,StartSpot.Location,StartRotation); - if ( ResultPawn == None ) - { - `log("Couldn't spawn player of type "$DefaultPlayerClass$" at "$StartSpot); - } - return ResultPawn; -} - -/** - * Returns the default pawn class for the specified controller, - * - * @param C - controller to figure out pawn class for - * - * @return default pawn class - */ -function class GetDefaultPlayerClass(Controller C) -{ - // default to the game specified pawn class - return DefaultPawnClass; -} - -/** replicates the current level streaming status to the given PlayerController */ -function ReplicateStreamingStatus(PlayerController PC) -{ - local int LevelIndex; - local LevelStreaming TheLevel; - - // don't do this for local players or players after the first on a splitscreen client - if (LocalPlayer(PC.Player) == None && ChildConnection(PC.Player) == None) - { - // if we've loaded levels via CommitMapChange() that aren't normally in the StreamingLevels array, tell the client about that - if (WorldInfo.CommittedPersistentLevelName != 'None') - { - PC.ClientPrepareMapChange(WorldInfo.CommittedPersistentLevelName, true, true); - // tell the client to commit the level immediately - PC.ClientCommitMapChange(); - } - - if (WorldInfo.StreamingLevels.length > 0) - { - // Tell the player controller the current streaming level status - for (LevelIndex = 0; LevelIndex < WorldInfo.StreamingLevels.Length; LevelIndex++) - { - // streamingServer - TheLevel = WorldInfo.StreamingLevels[LevelIndex]; - - if( TheLevel != none ) - { - `log( "levelStatus: " $ TheLevel.PackageName $ " " - $ TheLevel.bShouldBeVisible $ " " - $ TheLevel.bIsVisible $ " " - $ TheLevel.bShouldBeLoaded $ " " - $ TheLevel.LoadedLevel $ " " - $ TheLevel.bHasLoadRequestPending $ " " - ) ; - - PC.ClientUpdateLevelStreamingStatus( - TheLevel.PackageName, - TheLevel.bShouldBeLoaded, - TheLevel.bShouldBeVisible, - TheLevel.bShouldBlockOnLoad); - } - } - PC.ClientFlushLevelStreaming(); - } - - // if we're preparing to load different levels using PrepareMapChange() inform the client about that now - if (WorldInfo.PreparingLevelNames.length > 0) - { - for (LevelIndex = 0; LevelIndex < WorldInfo.PreparingLevelNames.length; LevelIndex++) - { - PC.ClientPrepareMapChange(WorldInfo.PreparingLevelNames[LevelIndex], LevelIndex == 0, LevelIndex == WorldInfo.PreparingLevelNames.length - 1); - } - // DO NOT commit these changes yet - we'll send that when we're done preparing them - } - } -} - -/** handles all player initialization that is shared between the travel methods - * (i.e. called from both PostLogin() and HandleSeamlessTravelPlayer()) - */ -function GenericPlayerInitialization(Controller C) -{ - local PlayerController PC; - - PC = PlayerController(C); - if (PC != None) - { - // Keep track of the best host to migrate to in case of a disconnect - UpdateBestNextHosts(); - - // Notify the game that we can now be muted and mute others - UpdateGameplayMuteList(PC); - - // tell client what hud class to use - PC.ClientSetHUD(HudType); - - // tell client what secondary hud class to use - PC.ClientSetSecondaryHUD(SecondaryHudType); - - ReplicateStreamingStatus(PC); - - // see if we need to spawn a CoverReplicator for this player - if (CoverReplicatorBase != None) - { - PC.SpawnCoverReplicator(); - } - - // Set the rich presence strings on the client (has to be done there) - PC.ClientSetOnlineStatus(); - } - - if (BaseMutator != None) - { - BaseMutator.NotifyLogin(C); - } -} - -/** - * Sort the list of best hosts. Clients with the most peer connections come first. - * Then sort based on time of join so that newest players are preferred. - * - * @param A first item to compare - * @param B second item to compare - * @return 0 if A==B, < 0 if A < B, > 0 if A > B - */ -function int BestNextHostSort(PlayerController A, PlayerController B) -{ - local int Result; - - if (A.ConnectedPeers.Length == B.ConnectedPeers.Length && - A.PlayerReplicationInfo != None && B.PlayerReplicationInfo != None) - { - // sort by newest start time - Result = FCeil(B.PlayerReplicationInfo.StartTime) - FCeil(A.PlayerReplicationInfo.StartTime); - } - else - { - // sort by largest connected peers - Result = A.ConnectedPeers.Length - B.ConnectedPeers.Length; - } - - return Result; -} - -/** - * Updates the list of best next hosts on the current server and also replicates this list to all clients. - */ -function UpdateBestNextHosts() -{ - local PlayerController PC; - local array SortedPCList; - local UniqueNetId SortedPlayerIdList[10]; - local UniqueNetId ZeroId; - local int Idx,NumEntries; - - // copy list of remote PCs - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (!PC.IsLocalPlayerController() && - PC.PlayerReplicationInfo != None && - PC.PlayerReplicationInfo.UniqueId != ZeroId && - PC.IsPrimaryPlayer()) - { - SortedPCList.AddItem(PC); - } - } - // sort list of PCs from best to worst host - SortedPCList.Sort(BestNextHostSort); - - // copy to list of unique net ids - NumEntries = Min(SortedPCList.Length,10); - for (Idx=0; Idx < NumEntries; Idx++) - { - SortedPlayerIdList[Idx] = SortedPCList[Idx].PlayerReplicationInfo.UniqueId; - } - - // send list of best hosts to clients - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (!PC.IsLocalPlayerController()) - { - PC.ClientUpdateBestNextHosts(SortedPlayerIdList,NumEntries); - } - } -} - -// -// Called after a successful login. This is the first place -// it is safe to call replicated functions on the PlayerController. -// -event PostLogin( PlayerController NewPlayer ) -{ - local string Address, StatGuid; - local int pos, i; - local Sequence GameSeq; - local array AllInterpActions; - - local int HidePlayer, HideHud, DisableMovement, DisableTurning, DisableInput; - - // update player count - if (NewPlayer.PlayerReplicationInfo.bOnlySpectator) - { - NumSpectators++; - } - else if (WorldInfo.IsInSeamlessTravel() || NewPlayer.HasClientLoadedCurrentWorld()) - { - NumPlayers++; - } - else - { - NumTravellingPlayers++; - } - - // Tell the online subsystem the number of players in the game - UpdateGameSettingsCounts(); - - // save network address for re-associating with reconnecting player, after stripping out port number - Address = NewPlayer.GetPlayerNetworkAddress(); - pos = InStr(Address,":"); - NewPlayer.PlayerReplicationInfo.SavedNetworkAddress = (pos > 0) ? left(Address,pos) : Address; - - // check if this player is reconnecting and already has PRI - FindInactivePRI(NewPlayer); - - if ( !bDelayedStart ) - { - // start match, or let player enter, immediately - bRestartLevel = false; // let player spawn once in levels that must be restarted after every death - if ( bWaitingToStartMatch ) - StartMatch(); - else - RestartPlayer(newPlayer); - bRestartLevel = Default.bRestartLevel; - } - - if (NewPlayer.Pawn != None) - { - NewPlayer.Pawn.ClientSetRotation(NewPlayer.Pawn.Rotation); - } - - NewPlayer.ClientCapBandwidth(NewPlayer.Player.CurrentNetSpeed); - UpdateNetSpeeds(); - - GenericPlayerInitialization(NewPlayer); - - // Tell the new player the stat guid - if (GameReplicationInfo.bMatchHasBegun && OnlineSub != None && OnlineSub.StatsInterface != None) - { - // Get the stat guid for the server - StatGuid = OnlineSub.StatsInterface.GetHostStatGuid(); - if (StatGuid != "") - { - NewPlayer.ClientRegisterHostStatGuid(StatGuid); - } - } - - // Tell the player to disable voice by default and use the push to talk method - if (bRequiresPushToTalk) - { - NewPlayer.ClientStopNetworkedVoice(); - } - else - { - NewPlayer.ClientStartNetworkedVoice(); - } - - if (NewPlayer.PlayerReplicationInfo.bOnlySpectator) - { - NewPlayer.ClientGotoState('Spectating'); - } - - // add the player to any matinees running so that it gets in on any cinematics already running, etc - GameSeq = WorldInfo.GetGameSequence(); - if (GameSeq != None) - { - // find any matinee actions that exist - GameSeq.FindSeqObjectsByClass(class'SeqAct_Interp', true, AllInterpActions); - - // tell them all to add this PC to any running Director tracks - for (i = 0; i < AllInterpActions.Length; i++) - { - SeqAct_Interp(AllInterpActions[i]).AddPlayerToDirectorTracks(NewPlayer); - } - } - - //Check to see if we should start in cinematic mode (matinee movie capture) - if(ShouldStartInCinematicMode(HidePlayer, HideHud, DisableMovement, DisableTurning, DisableInput)) - { - NewPlayer.SetCinematicMode(true, HidePlayer == 1, HideHud == 1, DisableMovement == 1, DisableTurning == 1, DisableInput == 1); - } - - // Pass on to access control - if (AccessControl != none) - { - AccessControl.PostLogin(NewPlayer); - } -} - -function UpdateNetSpeeds() -{ - local int NewNetSpeed; - local PlayerController PC; - local OnlineGameSettings GameSettings; - - if (GameInterface != None) - { - GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - } - - if ( (WorldInfo.NetMode == NM_DedicatedServer) || (WorldInfo.NetMode == NM_Standalone) || (GameSettings != None && GameSettings.bIsLanMatch) ) - { - return; - } - - if ( WorldInfo.TimeSeconds - LastNetSpeedUpdateTime < 1.0 ) - { - SetTimer( 1.0, false, nameof(UpdateNetSpeeds) ); - return; - } - - LastNetSpeedUpdateTime = WorldInfo.TimeSeconds; - - NewNetSpeed = CalculatedNetSpeed(); - `log("New Dynamic NetSpeed "$NewNetSpeed$" vs old "$AdjustedNetSpeed,,'DevNet'); - - if ( AdjustedNetSpeed != NewNetSpeed ) - { - AdjustedNetSpeed = NewNetSpeed; - ForEach WorldInfo.AllControllers(class'PlayerController', PC) - { - PC.SetNetSpeed(AdjustedNetSpeed); - } - } -} - -function int CalculatedNetSpeed() -{ - return Clamp(TotalNetBandwidth/Max(NumPlayers,1), MinDynamicBandwidth, MaxDynamicBandwidth); -} - -/** - * Engine is shutting down. - */ -event PreExit() -{ - if (AccessControl != none) - { - AccessControl.NotifyExit(); - } - - ClearOnlineDelegates(); -} - -// -// Player exits. -// -function Logout( Controller Exiting ) -{ - local PlayerController PC; - local int PCIndex; - - PC = PlayerController(Exiting); - if ( PC != None ) - { - if (AccessControl != None && - AccessControl.AdminLogout( PlayerController(Exiting) )) - { - AccessControl.AdminExited( PlayerController(Exiting) ); - } - - if ( PC.PlayerReplicationInfo.bOnlySpectator ) - { - NumSpectators--; - } - else - { - if (WorldInfo.IsInSeamlessTravel() || PC.HasClientLoadedCurrentWorld()) - { - NumPlayers--; - } - else - { - NumTravellingPlayers--; - } - // Tell the online subsystem the number of players in the game - UpdateGameSettingsCounts(); - } - // This person has left during an arbitration period - if (bUsingArbitration && bHasArbitratedHandshakeBegun && !bHasEndGameHandshakeBegun) - { - `Log("Player "$PC.PlayerReplicationInfo.PlayerName$" has dropped"); - } - // Unregister the player from the online layer - UnregisterPlayer(PC); - // Remove from the arbitrated PC list if in an arbitrated match - if (bUsingArbitration) - { - // Find the PC in the list and remove it if found - PCIndex = ArbitrationPCs.Find(PC); - if (PCIndex != INDEX_NONE) - { - ArbitrationPCs.Remove(PCIndex,1); - } - } - } - //notify mutators that a player exited - if (BaseMutator != None) - { - BaseMutator.NotifyLogout(Exiting); - } - if ( PC != None ) - { - UpdateNetSpeeds(); - } -} - -/** - * Removes the player from the named session when they leave - * - * @param PC the player controller that just left - */ -function UnregisterPlayer(PlayerController PC) -{ - local UniqueNetId ZeroId; - - // If there is a session that matches the name, unregister this remote player - if (WorldInfo.NetMode != NM_Standalone && - GameInterface != None && - PC.PlayerReplicationInfo.UniqueId != ZeroId && - GameInterface.GetGameSettings(PC.PlayerReplicationInfo.SessionName) != None) - { - // Unregister the player from the session - GameInterface.UnregisterPlayer(PC.PlayerReplicationInfo.SessionName,PC.PlayerReplicationInfo.UniqueId); - } -} - -// -// Examine the passed player's inventory, and accept or discard each item. -// AcceptInventory needs to gracefully handle the case of some inventory -// being accepted but other inventory not being accepted (such as the default -// weapon). There are several things that can go wrong: A weapon's -// AmmoType not being accepted but the weapon being accepted -- the weapon -// should be killed off. Or the player's selected inventory item, active -// weapon, etc. not being accepted, leaving the player weaponless or leaving -// the HUD inventory rendering messed up (AcceptInventory should pick another -// applicable weapon/item as current). -// -event AcceptInventory(pawn PlayerPawn) -{ - //default accept all inventory except default weapon (spawned explicitly) -} - -// -// Spawn any default inventory for the player. -// -event AddDefaultInventory(Pawn P) -{ - // Allow the pawn itself to modify its inventory - P.AddDefaultInventory(); - - if ( P.InvManager == None ) - { - `warn("GameInfo::AddDefaultInventory - P.InvManager == None"); - } -} - -/* Mutate() -Pass an input string to the mutator list. Used by PlayerController.Mutate(), intended to allow -mutators to have input exec functions (by binding mutate xxx to keys) -*/ -function Mutate(string MutateString, PlayerController Sender) -{ - if ( BaseMutator != None ) - BaseMutator.Mutate(MutateString, Sender); -} - -/* SetPlayerDefaults() - first make sure pawn properties are back to default, then give mutators an opportunity - to modify them -*/ -function SetPlayerDefaults(Pawn PlayerPawn) -{ - PlayerPawn.AirControl = PlayerPawn.Default.AirControl; - PlayerPawn.GroundSpeed = PlayerPawn.Default.GroundSpeed; - PlayerPawn.WaterSpeed = PlayerPawn.Default.WaterSpeed; - PlayerPawn.AirSpeed = PlayerPawn.Default.AirSpeed; - PlayerPawn.Acceleration = PlayerPawn.Default.Acceleration; - PlayerPawn.AccelRate = PlayerPawn.Default.AccelRate; - PlayerPawn.JumpZ = PlayerPawn.Default.JumpZ; - if ( BaseMutator != None ) - BaseMutator.ModifyPlayer(PlayerPawn); - PlayerPawn.PhysicsVolume.ModifyPlayer(PlayerPawn); -} - -function NotifyKilled(Controller Killer, Controller Killed, Pawn KilledPawn, class damageType ) -{ - local Controller C; - - foreach WorldInfo.AllControllers(class'Controller', C) - { - C.NotifyKilled(Killer, Killed, KilledPawn, damageType); - } -} - -function Killed( Controller Killer, Controller KilledPlayer, Pawn KilledPawn, class damageType ) -{ - if( KilledPlayer != None && KilledPlayer.bIsPlayer ) - { - KilledPlayer.PlayerReplicationInfo.IncrementDeaths(); - KilledPlayer.PlayerReplicationInfo.SetNetUpdateTime(FMin(KilledPlayer.PlayerReplicationInfo.NetUpdateTime, WorldInfo.TimeSeconds + 0.3 * FRand())); - BroadcastDeathMessage(Killer, KilledPlayer, damageType); - } - - if( KilledPlayer != None ) - { - ScoreKill(Killer, KilledPlayer); - } - - DiscardInventory(KilledPawn, Killer); - NotifyKilled(Killer, KilledPlayer, KilledPawn, damageType); -} - -function bool PreventDeath(Pawn KilledPawn, Controller Killer, class DamageType, vector HitLocation) -{ - if ( BaseMutator == None ) - return false; - return BaseMutator.PreventDeath(KilledPawn, Killer, DamageType, HitLocation); -} - -function BroadcastDeathMessage(Controller Killer, Controller Other, class damageType) -{ - if ( (Killer == Other) || (Killer == None) ) - { - BroadcastLocalized(self, DeathMessageClass, 1, None, Other.PlayerReplicationInfo, damageType); - } - else - { - BroadcastLocalized(self, DeathMessageClass, 0, Killer.PlayerReplicationInfo, Other.PlayerReplicationInfo, damageType); - } -} - -function Kick( string S ) -{ - if (AccessControl != None) - AccessControl.Kick(S); -} - -function KickBan( string S ) -{ - if (AccessControl != None) - AccessControl.KickBan(S); -} - -//------------------------------------------------------------------------------------- -// Level gameplay modification. - -// -// Return whether Viewer is allowed to spectate from the -// point of view of ViewTarget. -// -function bool CanSpectate( PlayerController Viewer, PlayerReplicationInfo ViewTarget ) -{ - return true; -} - -/* ReduceDamage: - Use reduce damage for teamplay modifications, etc. */ -function ReduceDamage(out int Damage, pawn injured, Controller instigatedBy, vector HitLocation, out vector Momentum, class DamageType, Actor DamageCauser) -{ - local int OriginalDamage; - - OriginalDamage = Damage; - - if ( injured.PhysicsVolume.bNeutralZone || injured.InGodMode() ) - { - Damage = 0; - return; - } - - if (BaseMutator != None) - { - BaseMutator.NetDamage(OriginalDamage, Damage, Injured, InstigatedBy, HitLocation, Momentum, DamageType, DamageCauser); - } -} - -/* CheckRelevance() -returns true if actor is relevant to this game and should not be destroyed. Called in Actor.PreBeginPlay(), intended to allow -mutators to remove or replace actors being spawned -*/ -function bool CheckRelevance(Actor Other) -{ - if ( BaseMutator == None ) - return true; - return BaseMutator.CheckRelevance(Other); -} - -/** - * Return whether an item should respawn. Default implementation allows item respawning in multiplayer games. - */ -function bool ShouldRespawn( PickupFactory Other ) -{ - return ( WorldInfo.NetMode != NM_Standalone ); -} - -/** - * Called when pawn has a chance to pick Item up (i.e. when - * the pawn touches a weapon pickup). Should return true if - * he wants to pick it up, false if he does not want it. - * @param Other the Pawn that wants the item - * @param ItemClass the Inventory class the Pawn can pick up - * @param Pickup the Actor containing that item (this may be a PickupFactory or it may be a DroppedPickup) - * @return whether or not the Pickup actor should give its item to Other - */ -function bool PickupQuery(Pawn Other, class ItemClass, Actor Pickup) -{ - local byte bAllowPickup; - - if (BaseMutator != None && BaseMutator.OverridePickupQuery(Other, ItemClass, Pickup, bAllowPickup)) - { - return bool(bAllowPickup); - } - - if ( Other.InvManager == None ) - { - return false; - } - else - { - return Other.InvManager.HandlePickupQuery(ItemClass, Pickup); - } -} - -/** - * Discard a player's inventory after he dies. - */ -function DiscardInventory( Pawn Other, optional controller Killer ) -{ - if ( Other.InvManager != None ) - Other.InvManager.DiscardInventory(); -} - -/* Try to change a player's name. -*/ -function ChangeName( Controller Other, coerce string S, bool bNameChange ) -{ - if( S == "" ) - { - return; - } - - Other.PlayerReplicationInfo.SetPlayerName(S); -} - -/* Return whether a team change is allowed. -*/ -function bool ChangeTeam(Controller Other, int N, bool bNewTeam) -{ - return true; -} - -/* Return a picked team number if none was specified -*/ -function byte PickTeam(byte Current, Controller C) -{ - return Current; -} - -/* Send a player to a URL. -*/ -function SendPlayer( PlayerController aPlayer, string URL ) -{ - aPlayer.ClientTravel( URL, TRAVEL_Relative ); -} - -/** @return the map we should travel to for the next game */ -function string GetNextMap(); - -/** - * Returns true if we want to travel_absolute - */ -function bool GetTravelType() -{ - return false; -} - -/* Restart the game. -*/ -function RestartGame() -{ - local string NextMap; - local string TransitionMapCmdLine; - local string URLString; - local int URLMapLen; - local int MapNameLen; - - // If we are using arbitration and haven't done the end game handshaking, - // do that process first and then come back here afterward - if (bUsingArbitration) - { - if (bIsEndGameHandshakeComplete) - { - // All arbitrated matches must exit after one match - NotifyArbitratedMatchEnd(); - } - return; - } - - if (BaseMutator != None && BaseMutator.HandleRestartGame()) - { - return; - } - - if (bGameRestarted) - { - return; - } - bGameRestarted = true; - - // these server travels should all be relative to the current URL - if ( bChangeLevels && !bAlreadyChanged ) - { - // get the next map and start the transition - bAlreadyChanged = true; - - if ( (MyAutoTestManager != None) && MyAutoTestManager.bUsingAutomatedTestingMapList) - { - NextMap = MyAutoTestManager.GetNextAutomatedTestingMap(); - } - else - { - NextMap = GetNextMap(); - } - - if (NextMap != "") - { - if ( (MyAutoTestManager == None) || !MyAutoTestManager.bUsingAutomatedTestingMapList ) - { - WorldInfo.ServerTravel(NextMap,GetTravelType()); - } - else - { - if ( !MyAutoTestManager.bAutomatedTestingWithOpen ) - { - URLString = WorldInfo.GetLocalURL(); - URLMapLen = Len(URLString); - - MapNameLen = InStr(URLString, "?"); - if (MapNameLen != -1) - { - URLString = Right(URLString, URLMapLen - MapNameLen); - } - - // The ENTIRE url needs to be recreated here... - TransitionMapCmdLine = NextMap$URLString$"?AutomatedTestingMapIndex="$MyAutoTestManager.AutomatedTestingMapIndex; - `log(">>> Issuing server travel on " $ TransitionMapCmdLine); - WorldInfo.ServerTravel(TransitionMapCmdLine,GetTravelType()); - } - else - { - TransitionMapCmdLine = "?AutomatedTestingMapIndex="$MyAutoTestManager.AutomatedTestingMapIndex$"?NumberOfMatchesPlayed="$MyAutoTestManager.NumberOfMatchesPlayed$"?NumMapListCyclesDone="$MyAutoTestManager.NumMapListCyclesDone; - `log(">>> Issuing open command on " $ NextMap $ TransitionMapCmdLine); - ConsoleCommand( "open " $ NextMap $ TransitionMapCmdLine); - } - } - return; - } - } - - WorldInfo.ServerTravel("?Restart",GetTravelType()); -} - -//========================================================================== -// Message broadcasting functions (handled by the BroadCastHandler) - -event Broadcast( Actor Sender, coerce string Msg, optional name Type ) -{ - BroadcastHandler.Broadcast(Sender,Msg,Type); -} - -function BroadcastTeam( Controller Sender, coerce string Msg, optional name Type ) -{ - BroadcastHandler.BroadcastTeam(Sender,Msg,Type); -} - -/* - Broadcast a localized message to all players. - Most message deal with 0 to 2 related PRIs. - The LocalMessage class defines how the PRI's and optional actor are used. -*/ -event BroadcastLocalized( actor Sender, class Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) -{ - BroadcastHandler.AllowBroadcastLocalized(Sender,Message,Switch,RelatedPRI_1,RelatedPRI_2,OptionalObject); -} - -/* - Broadcast a localized message to all players on a team. - Most message deal with 0 to 2 related PRIs. - The LocalMessage class defines how the PRI's and optional actor are used. -*/ -event BroadcastLocalizedTeam( int TeamIndex, actor Sender, class Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) -{ - BroadcastHandler.AllowBroadcastLocalizedTeam(TeamIndex, Sender,Message,Switch,RelatedPRI_1,RelatedPRI_2,OptionalObject); -} - -//========================================================================== -function bool CheckModifiedEndGame(PlayerReplicationInfo Winner, string Reason) -{ - return (BaseMutator != None && !BaseMutator.CheckEndGame(Winner, Reason)); -} - -function bool CheckEndGame(PlayerReplicationInfo Winner, string Reason) -{ - local Controller P; - - if ( CheckModifiedEndGame(Winner, Reason) ) - return false; - - // all player cameras focus on winner or final scene (picked by mutator) - foreach WorldInfo.AllControllers(class'Controller', P) - { - P.GameHasEnded(); - } - return true; -} - -/** - * Tells all clients to write stats and then handles writing local stats - */ -function WriteOnlineStats() -{ - local PlayerController PC; - local OnlineGameSettings CurrentSettings; - - if (GameInterface != None) - { - // Make sure that we are recording stats - CurrentSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - if (CurrentSettings != None && CurrentSettings.bUsesStats) - { - // Iterate through the controllers telling them to write stats - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (PC.IsLocalPlayerController() == false) - { - PC.ClientWriteLeaderboardStats(OnlineStatsWriteClass); - } - } - // Iterate through local controllers telling them to write stats - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (PC.IsLocalPlayerController()) - { - PC.ClientWriteLeaderboardStats(OnlineStatsWriteClass); - } - } - } - } -} - -/** - * If the match is arbitrated, tells all clients to write out their copies - * of the player scores. If not arbitrated, it only has the first local player - * write the scores. - */ -function WriteOnlinePlayerScores() -{ - local PlayerController PC; - - if (bUsingArbitration) - { - // Iterate through the controllers telling them to write stats - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - PC.ClientWriteOnlinePlayerScores(ArbitratedLeaderboardId); - } - } - else - { - // Find the first local player and have them write the data - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (PC.IsLocalPlayerController()) - { - PC.ClientWriteOnlinePlayerScores(LeaderboardId); - break; - } - } - } -} - -/* End of game. -*/ -function EndGame( PlayerReplicationInfo Winner, string Reason ) -{ - // don't end game if not really ready - if ( !CheckEndGame(Winner, Reason) ) - { - bOverTime = true; - return; - } - - // Allow replication to happen before reporting scores, stats, etc. - SetTimer( 1.5,false,nameof(PerformEndGameHandling) ); - - bGameEnded = true; - EndLogging(Reason); -} - -/** Does end of game handling for the online layer */ -function PerformEndGameHandling() -{ - if (GameInterface != None) - { - // Write out any online stats - WriteOnlineStats(); - // Write the player data used in determining skill ratings - WriteOnlinePlayerScores(); - // Force the stats to flush and change the status of the match - // to ended making join in progress an option again - EndOnlineGame(); - // Notify clients that the session has ended for arbitrated - if (bUsingArbitration) - { - PendingArbitrationPCs.Length = 0; - ArbitrationPCs.Length = 0; - // Do end of session handling - NotifyArbitratedMatchEnd(); - } - } -} - -/** - * Tells the online system to end the game and tells all clients to do the same - */ -function EndOnlineGame() -{ - local PlayerController PC; - - GameReplicationInfo.EndGame(); - if (GameInterface != None) - { - // Have clients end their games - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - // Skip notifying local PCs as they are handled automatically - if (!PC.IsLocalPlayerController()) - { - PC.ClientEndOnlineGame(); - } - } - // Server is handled here - GameInterface.EndOnlineGame(PlayerReplicationInfoClass.default.SessionName); - } -} - -/** Entry point of the stats code for custom game logging at a regular interval */ -function GameEventsPoll(); -function EndLogging(string Reason); // Stub function - -/** returns whether the given Controller StartSpot property should be used as the spawn location for its Pawn */ -function bool ShouldSpawnAtStartSpot(Controller Player) -{ - return ( WorldInfo.NetMode == NM_Standalone && Player != None && Player.StartSpot != None && - (bWaitingToStartMatch || (Player.PlayerReplicationInfo != None && Player.PlayerReplicationInfo.bWaitingPlayer)) ); -} - -/** FindPlayerStart() -* Return the 'best' player start for this player to start from. PlayerStarts are rated by RatePlayerStart(). -* @param Player is the controller for whom we are choosing a playerstart -* @param InTeam specifies the Player's team (if the player hasn't joined a team yet) -* @param IncomingName specifies the tag of a teleporter to use as the Playerstart -* @returns NavigationPoint chosen as player start (usually a PlayerStart) - */ -function NavigationPoint FindPlayerStart( Controller Player, optional byte InTeam, optional string IncomingName ) -{ - local NavigationPoint N, BestStart; - local Teleporter Tel; - - // allow GameRulesModifiers to override playerstart selection - if (BaseMutator != None) - { - N = BaseMutator.FindPlayerStart(Player, InTeam, IncomingName); - if (N != None) - { - return N; - } - } - - // if incoming start is specified, then just use it - if( incomingName!="" ) - { - ForEach WorldInfo.AllNavigationPoints( class 'Teleporter', Tel ) - if( string(Tel.Tag)~=incomingName ) - return Tel; - } - - // always pick StartSpot at start of match - if ( ShouldSpawnAtStartSpot(Player) && - (PlayerStart(Player.StartSpot) == None || RatePlayerStart(PlayerStart(Player.StartSpot), InTeam, Player) >= 0.0) ) - { - return Player.StartSpot; - } - - BestStart = ChoosePlayerStart(Player, InTeam); - - if ( (BestStart == None) && (Player == None) ) - { - // no playerstart found, so pick any NavigationPoint to keep player from failing to enter game - `log("Warning - PATHS NOT DEFINED or NO PLAYERSTART with positive rating"); - ForEach AllActors( class 'NavigationPoint', N ) - { - BestStart = N; - break; - } - } - return BestStart; -} - -/** ChoosePlayerStart() -* Return the 'best' player start for this player to start from. PlayerStarts are rated by RatePlayerStart(). -* @param Player is the controller for whom we are choosing a playerstart -* @param InTeam specifies the Player's team (if the player hasn't joined a team yet) -* @returns NavigationPoint chosen as player start (usually a PlayerStart) - */ -function PlayerStart ChoosePlayerStart( Controller Player, optional byte InTeam ) -{ - local PlayerStart P, BestStart; - local float BestRating, NewRating; - local byte Team; - - // use InTeam if player doesn't have a team yet - Team = ( (Player != None) && (Player.PlayerReplicationInfo != None) && (Player.PlayerReplicationInfo.Team != None) ) - ? byte(Player.PlayerReplicationInfo.Team.TeamIndex) - : InTeam; - - // Find best playerstart - foreach WorldInfo.AllNavigationPoints(class'PlayerStart', P) - { - NewRating = RatePlayerStart(P,Team,Player); - if ( NewRating > BestRating ) - { - BestRating = NewRating; - BestStart = P; - } - } - return BestStart; -} - -/** RatePlayerStart() -* Return a score representing how desireable a playerstart is. -* @param P is the playerstart being rated -* @param Team is the team of the player choosing the playerstart -* @param Player is the controller choosing the playerstart -* @returns playerstart score -*/ -function float RatePlayerStart(PlayerStart P, byte Team, Controller Player) -{ - local float Rating; - if ( !P.bEnabled ) - { - return 5.f; - } - else - { - Rating = 10.f; - if (P.bPrimaryStart) - { - Rating += 10.f; - } - if (P.TeamIndex == Team) - { - Rating += 15.f; - } - return Rating; - } -} - -function AddObjectiveScore(PlayerReplicationInfo Scorer, Int Score) -{ - if ( Scorer != None ) - { - Scorer.Score += Score; - } - if (BaseMutator != None) - { - BaseMutator.ScoreObjective(Scorer, Score); - } -} - -function ScoreObjective(PlayerReplicationInfo Scorer, Int Score) -{ - AddObjectiveScore(Scorer, Score); - CheckScore(Scorer); -} - -/* CheckScore() -see if this score means the game ends -*/ -function bool CheckScore(PlayerReplicationInfo Scorer) -{ - return true; -} - -function ScoreKill(Controller Killer, Controller Other) -{ - if( (killer == Other) || (killer == None) ) - { - if ( (Other!=None) && (Other.PlayerReplicationInfo != None) ) - { - Other.PlayerReplicationInfo.Score -= 1; - Other.PlayerReplicationInfo.bForceNetUpdate = TRUE; - } - } - else if ( killer.PlayerReplicationInfo != None ) - { - Killer.PlayerReplicationInfo.Score += 1; - Killer.PlayerReplicationInfo.bForceNetUpdate = TRUE; - Killer.PlayerReplicationInfo.Kills++; - } - - ModifyScoreKill(Killer, Other); - - if (Killer != None || MaxLives > 0) - { - CheckScore(Killer.PlayerReplicationInfo); - } -} - -/** - * For subclasses which don't call GameInfo.ScoreKill() - */ -function ModifyScoreKill(Controller Killer, Controller Other) -{ - if (BaseMutator != None) - { - BaseMutator.ScoreKill(Killer, Other); - } -} - -function DriverEnteredVehicle(Vehicle V, Pawn P) -{ - if ( BaseMutator != None ) - BaseMutator.DriverEnteredVehicle(V, P); -} - -function bool CanLeaveVehicle(Vehicle V, Pawn P) -{ - if ( BaseMutator == None ) - return true; - return BaseMutator.CanLeaveVehicle(V, P); -} - -function DriverLeftVehicle(Vehicle V, Pawn P) -{ - if ( BaseMutator != None ) - BaseMutator.DriverLeftVehicle(V, P); -} - -function bool PlayerCanRestartGame( PlayerController aPlayer ) -{ - return true; -} - -// Player Can be restarted ? -function bool PlayerCanRestart( PlayerController aPlayer ) -{ - return true; -} - -// Returns whether a mutator should be allowed with this gametype -static function bool AllowMutator( string MutatorClassName ) -{ - return !class'WorldInfo'.static.IsDemoBuild(); -} - - -function bool AllowCheats(PlayerController P) -{ - return ( WorldInfo.NetMode == NM_Standalone ); -} - -/** - * @return TRUE if the player is allowed to pause the game. - */ -function bool AllowPausing( optional PlayerController PC ) -{ - return bPauseable - || WorldInfo.NetMode == NM_Standalone - || (bAdminCanPause && AccessControl.IsAdmin(PC)); -} - -/** - * Called from C++'s CommitMapChange before unloading previous level - * @param PreviousMapName Name of the previous persistent level - * @param NextMapName Name of the persistent level being streamed to - */ -event PreCommitMapChange(string PreviousMapName, string NextMapName); - -/** - * Called from C++'s CommitMapChange after unloading previous level and loading new level+sublevels - */ -event PostCommitMapChange(); - -/** AddInactivePRI() -* Add PRI to the inactive list, remove from the active list -*/ -function AddInactivePRI(PlayerReplicationInfo PRI, PlayerController PC) -{ - local int i; - local PlayerReplicationInfo NewPRI, CurrentPRI; - local bool bIsConsole; - - // don't store if it's an old PRI from the previous level or if it's a spectator - if (!PRI.bFromPreviousLevel && !PRI.bOnlySpectator) - { - NewPRI = PRI.Duplicate(); - WorldInfo.GRI.RemovePRI(NewPRI); - - // make PRI inactive - NewPRI.RemoteRole = ROLE_None; - - // delete after 5 minutes - NewPRI.LifeSpan = 300; - - // On console, we have to check the unique net id as network address isn't valid - bIsConsole = WorldInfo.IsConsoleBuild(); - - // make sure no duplicates - for (i=0; i 16 ) - { - InactivePRIArray.Remove(0, InactivePRIArray.Length - 16); - } - } - - PRI.Destroy(); - // Readjust the skill rating now that this player has left - RecalculateSkillRating(); -} - -/** FindInactivePRI() -* returns the PRI associated with this re-entering player -*/ -function bool FindInactivePRI(PlayerController PC) -{ - local string NewNetworkAddress, NewName; - local int i; - local PlayerReplicationInfo OldPRI, CurrentPRI; - local bool bIsConsole; - - // don't bother for spectators - if (PC.PlayerReplicationInfo.bOnlySpectator) - { - return false; - } - - // On console, we have to check the unique net id as network address isn't valid - bIsConsole = WorldInfo.IsConsoleBuild(); - - NewNetworkAddress = PC.PlayerReplicationInfo.SavedNetworkAddress; - NewName = PC.PlayerReplicationInfo.PlayerName; - for (i=0; i entry, false if we are going from entry -> new level - * @param ActorList (out) list of actors to maintain - */ -event GetSeamlessTravelActorList(bool bToEntry, out array ActorList) -{ - local int i; - - // always keep PlayerReplicationInfos and TeamInfos, so that after we restart we can keep players on the same team, etc - for (i = 0; i < WorldInfo.GRI.PRIArray.Length; i++) - { - WorldInfo.GRI.PRIArray[i].bFromPreviousLevel = true; - WorldInfo.GRI.PRIArray[i].bForceNetUpdate = true; - ActorList[ActorList.length] = WorldInfo.GRI.PRIArray[i]; - } - - if (bToEntry) - { - // keep general game state until we transition to the final destination - ActorList[ActorList.length] = WorldInfo.GRI; - if (BroadcastHandler != None) - { - ActorList[ActorList.length] = BroadcastHandler; - } - } - - if (BaseMutator != None) - { - BaseMutator.GetSeamlessTravelActorList(bToEntry, ActorList); - } - - if (MyAutoTestManager != None) - { - ActorList[ActorList.length] = MyAutoTestManager; - } - - // Keep the AccessControl persistent, as it needs to >always< be ready for handling auth callbacks - if (AccessControl != none) - { - ActorList[ActorList.Length] = AccessControl; - } -} - -/** used to swap a viewport/connection's PlayerControllers when seamless travelling and the new gametype's - * controller class is different than the previous - * includes network handling - * @param OldPC - the old PC that should be discarded - * @param NewPC - the new PC that should be used for the player - */ -native final function SwapPlayerControllers(PlayerController OldPC, PlayerController NewPC); - -/** called after a seamless level transition has been completed on the *new* GameInfo - * used to reinitialize players already in the game as they won't have *Login() called on them - */ -event PostSeamlessTravel() -{ - local Controller C; - - // handle players that are already loaded - foreach WorldInfo.AllControllers(class'Controller', C) - { - if (C.bIsPlayer) - { - if (PlayerController(C) == None) - { - HandleSeamlessTravelPlayer(C); - } - else - { - if (!C.PlayerReplicationInfo.bOnlySpectator) - { - NumTravellingPlayers++; - } - if (PlayerController(C).HasClientLoadedCurrentWorld()) - { - HandleSeamlessTravelPlayer(C); - } - } - } - } - - if (bWaitingToStartMatch && !bDelayedStart && NumPlayers + NumBots > 0) - { - StartMatch(); - } - if (WorldInfo.NetMode == NM_DedicatedServer) - { - // Update any online advertised settings - UpdateGameSettings(); - } -} - -/** - * Used to update any changes in game settings that need to be published to - * players that are searching for games - */ -function UpdateGameSettings(); - -/** handles reinitializing players that remained through a seamless level transition - * called from C++ for players that finished loading after the server - * @param C the Controller to handle - */ -event HandleSeamlessTravelPlayer(out Controller C) -{ - local rotator StartRotation; - local NavigationPoint StartSpot; - local PlayerController PC, NewPC; - local PlayerReplicationInfo OldPRI; - - `log(">> GameInfo::HandleSeamlessTravelPlayer:" @ C,,'SeamlessTravel'); - - PC = PlayerController(C); - if (PC != None && PC.Class != PlayerControllerClass) - { - if (PC.Player != None) - { - // we need to spawn a new PlayerController to replace the old one - NewPC = SpawnPlayerController(PC.Location, PC.Rotation); - if (NewPC == None) - { - `Warn("Failed to spawn new PlayerController for" @ PC.GetHumanReadableName() @ "(old class" @ PC.Class $ ")"); - PC.Destroy(); - return; - } - else - { - PC.CleanUpAudioComponents(); - PC.SeamlessTravelTo(NewPC); - NewPC.SeamlessTravelFrom(PC); - SwapPlayerControllers(PC, NewPC); - PC = NewPC; - C = NewPC; - } - } - else - { - PC.Destroy(); - } - } - else - { - // clear out data that was only for the previous game - C.PlayerReplicationInfo.Reset(); - // create a new PRI and copy over info; this is necessary because the old gametype may have used a different PRI class - OldPRI = C.PlayerReplicationInfo; - C.InitPlayerReplicationInfo(); - OldPRI.SeamlessTravelTo(C.PlayerReplicationInfo); - // we don't need the old PRI anymore - //@fixme: need a way to replace PRIs that doesn't cause incorrect "player left the game"/"player entered the game" messages - OldPRI.Destroy(); - } - - // get rid of team if this is not a team game - if (!bTeamGame && C.PlayerReplicationInfo.Team != None) - { - C.PlayerReplicationInfo.Team.Destroy(); - C.PlayerReplicationInfo.Team = None; - } - - // Find a start spot. - StartSpot = FindPlayerStart(C, C.GetTeamNum()); - - if (StartSpot == None) - { - `warn(GameMessageClass.Default.FailedPlaceMessage); - } - else - { - StartRotation.Yaw = StartSpot.Rotation.Yaw; - C.SetLocation(StartSpot.Location); - C.SetRotation(StartRotation); - } - - C.StartSpot = StartSpot; - - if (PC != None) - { - PC.CleanUpAudioComponents(); - - // tell the player controller to register its data stores again - PC.ClientInitializeDataStores(); - - SetSeamlessTravelViewTarget(PC); - if (PC.PlayerReplicationInfo.bOnlySpectator) - { - PC.GotoState('Spectating'); - PC.PlayerReplicationInfo.bIsSpectator = true; - PC.PlayerReplicationInfo.bOutOfLives = true; - NumSpectators++; - } - else - { - NumPlayers++; - NumTravellingPlayers--; - PC.GotoState('PlayerWaiting'); - } - - - } - else - { - NumBots++; - C.GotoState('RoundEnded'); - } - - GenericPlayerInitialization(C); - - `log("<< GameInfo::HandleSeamlessTravelPlayer:" @ C,,'SeamlessTravel'); -} - -function SetSeamlessTravelViewTarget(PlayerController PC) -{ - PC.SetViewTarget(PC); -} - -/** - * Updates the online subsystem's information for player counts so that - * LAN matches can show the correct player counts - */ -function UpdateGameSettingsCounts() -{ - local OnlineGameSettings GameSettings; - - if (GameInterface != None) - { - GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - if (GameSettings != None && GameSettings.bIsLanMatch) - { - // Update the number of open slots available - GameSettings.NumOpenPublicConnections = GameSettings.NumPublicConnections - GetNumPlayers(); - if (GameSettings.NumOpenPublicConnections < 0) - { - GameSettings.NumOpenPublicConnections = 0; - } - } - } -} - -/** - * This is a base (empty) implementation of the completion notification - * - * @param PC the player controller to mark as done - * @param bWasSuccessful whether the PC was able to register for arbitration or not - */ -function ProcessClientRegistrationCompletion(PlayerController PC,bool bWasSuccessful); - -/** - * Empty implementation of the code that kicks off async registration - */ -function StartArbitrationRegistration(); - -/** - * Empty implementation of the code that starts an arbitrated match - */ -function StartArbitratedMatch(); - -/** - * Empty implementation of the code that registers the server for arbitration - */ -function RegisterServerForArbitration(); - -/** - * Empty implementation of the code that handles the callback for completion - * - * @param SessionName the name of the session this is for - * @param bWasSuccessful whether the call worked or not - */ -function ArbitrationRegistrationComplete(name SessionName,bool bWasSuccessful); - -function bool MatchIsInProgress() -{ - return true; -} - -/** - * This state is used to change the flow of start/end match to handle arbitration - * - * Basic flow of events: - * Server prepares to start the match and tells all clients to register arbitration - * Clients register with arbitration and tell the server when they are done - * Server checks for all clients to be registered and kicks any clients if - * they don't register in time. - * Server registers with arbitration and the match begins - * - * Match ends and the server tells connected clients to write arbitrated stats - * Clients write stats and notifies server of completion - * Server writes stats and ends the match - */ -auto State PendingMatch -{ - function bool MatchIsInProgress() - { - return false; - } - - /** - * Tells all of the currently connected clients to register with arbitration. - * The clients will call back to the server once they have done so, which - * will tell this state to see if it is time for the server to register with - * arbitration. - */ - function StartMatch() - { - if (bUsingArbitration) - { - StartArbitrationRegistration(); - } - else - { - Global.StartMatch(); - } - } - - /** - * Kicks off the async tasks of having the clients register with - * arbitration before the server does. Sets a timeout for when - * all slow to respond clients get kicked - */ - function StartArbitrationRegistration() - { - local PlayerController PC; - local UniqueNetId HostId; - local OnlineGameSettings GameSettings; - - if (!bHasArbitratedHandshakeBegun) - { - // Tell PreLogin() to reject new connections - bHasArbitratedHandshakeBegun = true; - - // Get the host id from the game settings in case splitscreen works with arbitration - GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - HostId = GameSettings.OwningPlayerId; - - PendingArbitrationPCs.Length = 0; - // Iterate the controller list and tell them to register with arbitration - foreach WorldInfo.AllControllers(class'PlayerController', PC) - { - // Skip notifying local PCs as they are handled automatically - if (!PC.IsLocalPlayerController()) - { - PC.ClientSetHostUniqueId(HostId); - PC.ClientRegisterForArbitration(); - // Add to the pending list - PendingArbitrationPCs[PendingArbitrationPCs.Length] = PC; - } - else - { - // Add them as having completed arbitration - ArbitrationPCs[ArbitrationPCs.Length] = PC; - } - } - // Start the kick timer - SetTimer( ArbitrationHandshakeTimeout,false,nameof(ArbitrationTimeout) ); - } - } - - /** - * Does the registration for the server. This must be done last as it - * includes all the players info from their registration - */ - function RegisterServerForArbitration() - { - if (GameInterface != None) - { - GameInterface.AddArbitrationRegistrationCompleteDelegate(ArbitrationRegistrationComplete); - GameInterface.RegisterForArbitration(PlayerReplicationInfoClass.default.SessionName); - } - else - { - // Fake as working without subsystem - ArbitrationRegistrationComplete(PlayerReplicationInfoClass.default.SessionName,true); - } - } - - /** - * Callback from the server that starts the match if the registration was - * successful. If not, it goes back to the menu - * - * @param SessionName the name of the session this is for - * @param bWasSuccessful whether the registration worked or not - */ - function ArbitrationRegistrationComplete(name SessionName,bool bWasSuccessful) - { - // Clear the delegate so we don't leak with GC - GameInterface.ClearArbitrationRegistrationCompleteDelegate(ArbitrationRegistrationComplete); - if (bWasSuccessful) - { - // Start the match - StartArbitratedMatch(); - } - else - { - ConsoleCommand("Disconnect"); - } - } - - /** - * Handles kicking any clients that haven't completed handshaking - */ - function ArbitrationTimeout() - { - local int Index; - - // Kick any pending players - for (Index = 0; Index < PendingArbitrationPCs.Length; Index++) - { - AccessControl.KickPlayer(PendingArbitrationPCs[Index],GameMessageClass.Default.MaxedOutMessage); - } - PendingArbitrationPCs.Length = 0; - // Do the server registration now that any remaining clients are kicked - RegisterServerForArbitration(); - } - - /** - * Called once arbitration has completed and kicks off the real start of the match - */ - function StartArbitratedMatch() - { - bNeedsEndGameHandshake = true; - // Start the match - Global.StartMatch(); - } - - /** - * Removes the player controller from the pending list. Kicks that PC if it - * failed to register for arbitration. Starts the match if all clients have - * completed their registration - * - * @param PC the player controller to mark as done - * @param bWasSuccessful whether the PC was able to register for arbitration or not - */ - function ProcessClientRegistrationCompletion(PlayerController PC,bool bWasSuccessful) - { - local int FoundIndex; - - // Search for the specified PC and remove if found - FoundIndex = PendingArbitrationPCs.Find(PC); - if (FoundIndex != INDEX_NONE) - { - PendingArbitrationPCs.Remove(FoundIndex,1); - if (bWasSuccessful) - { - // Add to the completed list - ArbitrationPCs[ArbitrationPCs.Length] = PC; - } - else - { - AccessControl.KickPlayer(PC,GameMessageClass.Default.MaxedOutMessage); - } - } - // Start the match if all clients have responded - if (PendingArbitrationPCs.Length == 0) - { - // Clear the kick timer - SetTimer( 0,false,nameof(ArbitrationTimeout) ); - RegisterServerForArbitration(); - } - } - - event EndState(name NextStateName) - { - // Clear the kick timer - SetTimer( 0,false,nameof(ArbitrationTimeout) ); - - if( GameInterface != None ) - { - GameInterface.ClearArbitrationRegistrationCompleteDelegate(ArbitrationRegistrationComplete); - } - } -} - -/** - * Tells all clients to disconnect and then goes to the menu - */ -function NotifyArbitratedMatchEnd() -{ - local PlayerController PC; - - // Iterate through the controllers telling them to disconnect - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (PC.IsLocalPlayerController() == false) - { - PC.ClientArbitratedMatchEnded(); - } - } - // Iterate through local controllers telling them to disconnect - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (PC.IsLocalPlayerController()) - { - PC.ClientArbitratedMatchEnded(); - } - } -} - -/** - * Used to notify the game type that it is ok to update a player's gameplay - * specific muting information now. The playercontroller needs to notify - * the server when it is possible to do so or the unique net id will be - * incorrect and the muting not work. - * - * @param PC the playercontroller that is ready for updates - */ -function UpdateGameplayMuteList(PlayerController PC) -{ - // Let the server start sending voice packets - PC.bHasVoiceHandshakeCompleted = true; - // And tell the client it can start sending voice packets - PC.ClientVoiceHandshakeComplete(); -} - -/** - * Used by the game type to update the advertised skill for this game - */ -function RecalculateSkillRating() -{ - local int Index; - local array Players; - local UniqueNetId ZeroId; - - if (WorldInfo.NetMode != NM_Standalone && - OnlineSub != None && - OnlineSub.GameInterface != None) - { - // Iterate through the players adding their unique id for skill calculation - for (Index = 0; Index < GameReplicationInfo.PRIArray.Length; Index++) - { - if (ZeroId != GameReplicationInfo.PRIArray[Index].UniqueId) - { - Players[Players.Length] = GameReplicationInfo.PRIArray[Index].UniqueId; - } - } - if (Players.Length > 0) - { - // Update the skill rating with the list of players - OnlineSub.GameInterface.RecalculateSkillRating(PlayerReplicationInfoClass.default.SessionName,Players); - } - }; -} - -/** Called when this PC is in cinematic mode, and its matinee is cancelled by the user. */ -event MatineeCancelled(); - - -/** - * Checks for the login parameters being passed on the command line. If - * present, it does an async login before starting the dedicated server - * registration process - * - * @return true if the login is in progress, false otherwise - */ -function bool ProcessServerLogin() -{ - if (OnlineSub != None) - { - if (OnlineSub.PlayerInterface != None) - { - OnlineSub.PlayerInterface.AddLoginChangeDelegate(OnLoginChange); - OnlineSub.PlayerInterface.AddLoginFailedDelegate(0,OnLoginFailed); - // Check the command line for login information and login async - if (OnlineSub.PlayerInterface.AutoLogin() == false) - { - ClearAutoLoginDelegates(); - return false; - } - return true; - } - } - return false; -} - -/** - * Clears the login delegates once the login process has passed or failed - */ -function ClearAutoLoginDelegates() -{ - if (OnlineSub.PlayerInterface != None) - { - OnlineSub.PlayerInterface.ClearLoginChangeDelegate(OnLoginChange); - OnlineSub.PlayerInterface.ClearLoginFailedDelegate(0,OnLoginFailed); - } -} - -/** - * Called if the autologin fails - * - * @param LocalUserNum the controller number of the associated user - * @param ErrorCode the async error code that occurred - */ -function OnLoginFailed(byte LocalUserNum,EOnlineServerConnectionStatus ErrorCode) -{ - ClearAutoLoginDelegates(); -} - -/** - * Used to tell the game when the autologin has completed - * - * @param LocalUserNum ignored - */ -function OnLoginChange(byte LocalUserNum) -{ - ClearAutoLoginDelegates(); - // The login has completed so start the dedicated server - RegisterServer(); -} - -/** - * Registers the dedicated server with the online service - */ -function RegisterServer() -{ - local OnlineGameSettings GameSettings; - - if (OnlineGameSettingsClass != None && OnlineSub != None && OnlineSub.GameInterface != None) - { - // Create the default settings to get the standard settings to advertise - GameSettings = new OnlineGameSettingsClass; - // Serialize any custom settings from the URL - GameSettings.UpdateFromURL(ServerOptions, self); - - // If 'bIsLanMatch' is set, disable all authentication - if (AccessControl != None && - (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) && GameSettings.bIsLanMatch) - { - `log("Disabling all authentication, due to bIsLanMatch being set to true"); - AccessControl.ClearAuthDelegates(false); - } - - // Register the delegate so we can see when it's done - OnlineSub.GameInterface.AddCreateOnlineGameCompleteDelegate(OnServerCreateComplete); - // Now kick off the async publish - if ( !OnlineSub.GameInterface.CreateOnlineGame(0,PlayerReplicationInfoClass.default.SessionName,GameSettings) ) - { - OnlineSub.GameInterface.ClearCreateOnlineGameCompleteDelegate(OnServerCreateComplete); - } - } - else - { - `Warn("No game settings to register with the online service. Game won't be advertised"); - } -} - -/** - * Notifies us of the game being registered successfully or not - * - * @param SessionName the name of the session that was created - * @param bWasSuccessful flag telling us whether it worked or not - */ -function OnServerCreateComplete(name SessionName,bool bWasSuccessful) -{ - local OnlineGameSettings GameSettings; - - GameInterface.ClearCreateOnlineGameCompleteDelegate(OnServerCreateComplete); - if (bWasSuccessful == false) - { - GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - if (GameSettings != None && GameSettings.bIsLanMatch == false) - { - `Warn("Failed to register game with online service. Registering as a LAN match"); - // Force to be a LAN match - GameSettings.bIsLanMatch = true; - // Register the delegate so we can see when it's done - GameInterface.AddCreateOnlineGameCompleteDelegate(OnServerCreateComplete); - // Now kick off the async publish - if (!GameInterface.CreateOnlineGame(0,SessionName,GameSettings)) - { - GameInterface.ClearCreateOnlineGameCompleteDelegate(OnServerCreateComplete); - } - } - else - { - `Warn("Failed to register game with online service. Game won't be advertised"); - } - } - else - { - // If a game server is started without Steam running, auth code needs late initialization - // (as the auth interface is only setup within CreateOnlineGame when Steam was not started) - if (OnlineSub.Class.Name == 'OnlineSubsystemSteamworks' && AccessControl != none && AccessControl.CachedAuthInt == none) - { - AccessControl.InitAuthHooks(); - - // This delegate was not set until after the auth interface became ready, so kick it off here - AccessControl.OnAuthReady(); - } - - UpdateGameSettings(); - } -} - -/** - * Iterates the player controllers and tells them to return to their party - */ -function TellClientsToReturnToPartyHost() -{ - local PlayerController PC; - local OnlineGameSettings GameSettings; - local UniqueNetId RequestingPlayerId; - - OnlineSub = class'GameEngine'.static.GetOnlineSubsystem(); - if (OnlineSub != None) - { - // And grab one for the game interface since it will be used often - GameInterface = OnlineSub.GameInterface; - if (GameInterface != None) - { - // Use the game session owner as the host requesting travel - GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); - if (GameSettings != None) - { - RequestingPlayerId = GameSettings.OwningPlayerId; - } - else - { - // If no valid game session then use local player's net id as the host requesting the travel - foreach LocalPlayerControllers(class'PlayerController',PC) - { - if (PC.IsPrimaryPlayer() && - PC.PlayerReplicationInfo != None) - { - RequestingPlayerId = PC.PlayerReplicationInfo.UniqueId; - break; - } - } - } - // Tell all clients to return using the net id of the host - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if (!PC.IsLocalPlayerController() && - PC.IsPrimaryPlayer()) - { - PC.ClientReturnToParty(RequestingPlayerId); - } - } - // Host travels last as this can trigger a disconnect on clients - foreach LocalPlayerControllers(class'PlayerController',PC) - { - if (PC.IsPrimaryPlayer()) - { - PC.ClientReturnToParty(RequestingPlayerId); - break; - } - } - } - } -} - -/** - * Send notification to clients that a party host is about to leave the match - * - * @param PartyHostPlayerId net id of the party host that is leaving - */ -function TellClientsPartyHostIsLeaving(UniqueNetId PartyHostPlayerId) -{ - local PlayerController PC; - - // Tell all clients to return using the net id of the host - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if ( PC.IsPrimaryPlayer() ) - { - PC.ClientNotifyPartyHostLeaving(PartyHostPlayerId); - } - } -} - - -/** - * Iterates the player controllers and tells remote players to travel to the specified session - * - * @param SessionName the name of the session to register - * @param SearchClass the search that should be populated with the session - * @param PlatformSpecificInfo the binary data to place in the platform specific areas - */ -function TellClientsToTravelToSession(name SessionName,class SearchClass,byte PlatformSpecificInfo[80]) -{ - local PlayerController PC; - - foreach WorldInfo.AllControllers(class'PlayerController',PC) - { - if ( !PC.IsLocalPlayerController() && PC.IsPrimaryPlayer() ) - { - PC.ClientTravelToSession(SessionName,SearchClass,PlatformSpecificInfo); - } - } -} - -//================================================================= -/** - * AutoTestManager INTERFACE - */ - -/** function to start the world traveling **/ -exec function DoTravelTheWorld() -{ - if ( MyAutoTestManager != None ) - { - GotoState('TravelTheWorld'); - MyAutoTestManager.DoTravelTheWorld(); - } -} - -/** Alters the synthetic bandwidth limit for a running game **/ -exec native function SetBandwidthLimit( float AsyncIOBandwidthLimit ); - -/** This our state which allows us to have delayed actions while traveling the world (e.g. waiting for levels to stream in) **/ -state TravelTheWorld -{ -} - -/** - * @returns true if Automated Performance testing is enabled - */ -function bool IsAutomatedPerfTesting() -{ - return (MyAutoTestManager != None) && MyAutoTestManager.bAutomatedPerfTesting; -} - -/** - * @returns true if checking for fragmentation is enabled - */ -function bool IsCheckingForFragmentation() -{ - return (MyAutoTestManager != None) && MyAutoTestManager.bCheckingForFragmentation; -} - -/** - * @returns true if checking for memory leaks is enabled - */ -function bool IsCheckingForMemLeaks() -{ - return (MyAutoTestManager != None) && MyAutoTestManager.bCheckingForMemLeaks; -} - -/** - * @returns true if doing a sentinel run - */ -function bool IsDoingASentinelRun() -{ - return (MyAutoTestManager != None) && MyAutoTestManager.bDoingASentinelRun; -} - -/** - * @returns true if should auto-continue to next round - */ -function bool ShouldAutoContinueToNextRound() -{ - return (MyAutoTestManager != None) && MyAutoTestManager.bAutoContinueToNextRound; -} - -/** - * Asks AutoTestManager to start a sentinel run if needed - * Must be called by gameinfo subclass - not called in base implementation of GameInfo.StartMatch() - * @returns true if should skip normal startmatch process - */ -function bool CheckForSentinelRun() -{ - return (MyAutoTestManager != None) && MyAutoTestManager.CheckForSentinelRun(); -} - -/** This is for the QA team who don't use UFE nor commandline :-( **/ -exec simulated function BeginBVT( optional coerce string TagDesc ) -{ - if ( MyAutoTestManager == None ) - { - MyAutoTestManager = spawn(AutoTestManagerClass); - } - - MyAutoTestManager.BeginSentinelRun( "BVT", "", TagDesc ); - MyAutoTestManager.SetTimer( 3.0f, TRUE, nameof(MyAutoTestManager.DoTimeBasedSentinelStatGathering) ); -} - - - -/** - * Turns standby detection on/off - * - * @param bIsEnabled true to turn it on, false to disable it - */ -native function EnableStandbyCheatDetection(bool bIsEnabled); - -/** - * Notifies the game code that a standby cheat was detected - * - * @param StandbyType the type of cheat detected - */ -event StandbyCheatDetected(EStandbyType StandbyType); - - -/** - * Used to create a new online session after the previous one has been destroyed after travelling - * - * @param SessionName The name of the game session (not used with Steamworks) - * @param bWasSuccesful Whether or not the session was succesfully destroyed - */ -function OnDestroyOnlineGameComplete(name SessionName, bool bWasSuccessful) -{ - if (!ProcessServerLogin()) - RegisterServer(); - - GameInterface.ClearDestroyOnlineGameCompleteDelegate(OnDestroyOnlineGameComplete); -} - -/** - * Notifies the game code that the engine has finished loading. This - * function will only be called one time only. - */ -event OnEngineHasLoaded(); - -function InitCrowdPopulationManager() -{ - if( PopulationManagerClass != None ) - { - PopulationManager = Spawn(PopulationManagerClass); - } -} - -/** - * Cleans up any online subsystem delegates that are set - */ -function ClearOnlineDelegates(); - - -defaultproperties -{ - // The game spawns bots/players which can't be done during physics ticking - TickGroup=TG_PreAsyncWork - - GameSpeed=1.0 - bDelayedStart=true - HUDType=class'Engine.HUD' - bWaitingToStartMatch=false - bRestartLevel=True - bPauseable=True - AccessControlClass=class'Engine.AccessControl' - BroadcastHandlerClass=class'Engine.BroadcastHandler' - DeathMessageClass=class'LocalMessage' - PlayerControllerClass=class'Engine.PlayerController' - GameMessageClass=class'GameMessage' - GameReplicationInfoClass=class'GameReplicationInfo' - AutoTestManagerClass=class'Engine.AutoTestManager' - FearCostFalloff=+0.95 - CurrentID=1 - PlayerReplicationInfoClass=Class'Engine.PlayerReplicationInfo' - MaxSpectatorsAllowed=32 - MaxPlayersAllowed=32 - - Components.Remove(Sprite) - - // Defaults for if your game has only one skill leaderboard - LeaderboardId=0xFFFE0000 - ArbitratedLeaderboardId=0xFFFF0000 - -// PopulationManagerClass=class'CrowdPopulationManagerBase' - - StreamingPauseIcon=Material'EngineResources.M_StreamingPause' -} +//============================================================================= +// GameInfo. +// +// The GameInfo defines the game being played: the game rules, scoring, what actors +// are allowed to exist in this game type, and who may enter the game. While the +// GameInfo class is the public interface, much of this functionality is delegated +// to several classes to allow easy modification of specific game components. These +// classes include GameInfo, AccessControl, Mutator, and BroadcastHandler. +// A GameInfo actor is instantiated when the level is initialized for gameplay (in +// C++ UGameEngine::LoadMap() ). The class of this GameInfo actor is determined by +// (in order) either the URL ?game=xxx, or the +// DefaultGame entry in the game's .ini file (in the Engine.Engine section), unless +// its a network game in which case the DefaultServerGame entry is used. +// The GameType used can be overridden in the GameInfo script event SetGameType(), called +// on the game class picked by the above process. +// +// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. +//============================================================================= +class GameInfo extends Info + config(Game) + native + dependson(OnlineSubsystem); + +//----------------------------------------------------------------------------- +// Variables. + +var bool bRestartLevel; // Level should be restarted when player dies +var bool bPauseable; // Whether the game is pauseable. +var bool bTeamGame; // This is a team game. +var bool bGameEnded; // set when game ends +var bool bOverTime; +var bool bDelayedStart; +var bool bWaitingToStartMatch; +var globalconfig bool bChangeLevels; +var bool bAlreadyChanged; +var globalconfig bool bAdminCanPause; +var bool bGameRestarted; +var bool bLevelChange; // level transition in progress +var globalconfig bool bKickLiveIdlers; // if true, even playercontrollers with pawns can be kicked for idling + +/** Whether this match is going to use arbitration or not */ +var bool bUsingArbitration; + +/** + * Whether the arbitrated handshaking has occurred or not. + * NOTE: The code will reject new connections once handshaking has started + */ +var bool bHasArbitratedHandshakeBegun; + +/** Whether the arbitrated handshaking has occurred or not. */ +var bool bNeedsEndGameHandshake; + +/** Whether the arbitrated handshaking has completed or not. */ +var bool bIsEndGameHandshakeComplete; + +/** Used to indicate when an arbitrated match has started its end sequence */ +var bool bHasEndGameHandshakeBegun; + +/** Whether the game expects a fixed player start for profiling. */ +var bool bFixedPlayerStart; + +/** The causeevent= string that the game passed in This is separate from automatedPerfTesting which is going to probably spawn bots / effects **/ +var string CauseEventCommand; + +/** This is the BugIt String Data. Other info should be stored here **/ +/** Currently stores the location string form **/ +var string BugLocString; + +/** Currently stores the rotation in string form **/ +var string BugRotString; + +/** + * List of player controllers we're awaiting handshakes with + * + * NOTE: Any PC in this list that does not complete the handshake within + * ArbitrationHandshakeTimeout will be kicked from the match + */ +var array PendingArbitrationPCs; + +/** + * Holds the list of players that passed handshaking and require finalization + * of arbitration data written to the online subsystem + */ +var array ArbitrationPCs; + +/** Amount of time a client can take for arbitration handshaking before being kicked */ +var globalconfig float ArbitrationHandshakeTimeout; + +var globalconfig float GameDifficulty; +var globalconfig int GoreLevel; // 0=Normal, increasing values=less gore +var float GameSpeed; // Scale applied to game rate. + +var class DefaultPawnClass; + +// user interface +var class HUDType; // HUD class this game uses. +var class SecondaryHUDType; // Secondary HUD class this game uses. + +var globalconfig int MaxSpectators; // Maximum number of spectators allowed by this server. +var int MaxSpectatorsAllowed; // Maximum number of spectators ever allowed (MaxSpectators is clamped to this in initgame() +var int NumSpectators; // Current number of spectators. +var globalconfig int MaxPlayers; // Maximum number of players allowed by this server. +var int MaxPlayersAllowed; // Maximum number of players ever allowed (MaxPlayers is clamped to this in initgame() +var int NumPlayers; // number of human players +var int NumBots; // number of non-human players (AI controlled but participating as a player) + +/** number of players that are still travelling from a previous map */ +var int NumTravellingPlayers; +var int CurrentID; // used to assign unique PlayerIDs to each PlayerReplicationInfo +var localized string DefaultPlayerName; +var localized string GameName; +var float FearCostFallOff; // how fast the FearCost in NavigationPoints falls off +var bool bDoFearCostFallOff; // If true, FearCost will fall off over time in NavigationPoints. Reset to false once all reach FearCosts reach 0. + +var config int GoalScore; // what score is needed to end the match +var config int MaxLives; // max number of lives for match, unless overruled by level's GameDetails +var config int TimeLimit; // time limit in minutes + +// Message classes. +var class DeathMessageClass; +var class GameMessageClass; + +//------------------------------------- +// GameInfo components +var Mutator BaseMutator; // linked list of Mutators (for modifying actors as they enter the game) +var class AccessControlClass; +var AccessControl AccessControl; // AccessControl controls whether players can enter and/or become admins +var class BroadcastHandlerClass; +var BroadcastHandler BroadcastHandler; // handles message (text and localized) broadcasts + +/** Class of automated test manager used by this game class */ +var class AutoTestManagerClass; + +/** Instantiated AutoTestManager - only exists if requested by command-line */ +var AutoTestManager MyAutoTestManager; + +var class PlayerControllerClass; // type of player controller to spawn for players logging in +var class PlayerReplicationInfoClass; + +// ReplicationInfo +var() class GameReplicationInfoClass; +var GameReplicationInfo GameReplicationInfo; + +var CrowdPopulationManagerBase PopulationManager; +var class PopulationManagerClass; + +var globalconfig float MaxIdleTime; // maximum time players are allowed to idle before being kicked + +/** Max interval that client clock is allowed to get ahead of server clock before triggering speed hack detection */ +var globalconfig float MaxTimeMargin; + +/** How fast we allow client clock to drift from server clock over time without ever triggering speed hack detection */ +var globalconfig float TimeMarginSlack; + +/** Clamps how far behind server clock we let time margin get. Used to prevent speedhacks where client slows their clock down for a while then speeds it up. */ +var globalconfig float MinTimeMargin; + +var array InactivePRIArray; /** PRIs of players who have left game (saved in case they reconnect) */ + +/** The list of delegates to check before unpausing a game */ +var array > Pausers; + +/** Cached online subsystem variable */ +var OnlineSubsystem OnlineSub; + +/** Cached online game interface variable */ +var OnlineGameInterface GameInterface; + +/** Class sent to clients to use to create and hold their stats */ +var class OnlineStatsWriteClass; + +/** The leaderboard to write the stats to for skill/scoring */ +var int LeaderboardId; + +/** The arbitrated leaderboard to write the stats to for skill/scoring */ +var int ArbitratedLeaderboardId; + +/** perform map travels using SeamlessTravel() which loads in the background and doesn't disconnect clients + * @see WorldInfo::SeamlessTravel() + */ +var bool bUseSeamlessTravel; + +/** Base copy of cover changes that need to be replicated to clients on join */ +var protected CoverReplicator CoverReplicatorBase; + +/** Tracks whether the server can travel due to a critical network error or not */ +var bool bHasNetworkError; + +/** Whether this game type requires voice to be push to talk or not */ +var const bool bRequiresPushToTalk; + +/** The class to use when registering dedicated servers with the online service */ +var const class OnlineGameSettingsClass; + +/** The options to apply for dedicated server when it starts to register */ +var string ServerOptions; + +/** Current adjusted net speed - Used for dynamically managing netspeed for listen servers*/ +var int AdjustedNetSpeed; + +/** Last time netspeed was updated for server (by client entering or leaving) */ +var float LastNetSpeedUpdateTime; + +/** Total available bandwidth for listen server, split dynamically across net connections */ +var globalconfig int TotalNetBandwidth; + +/** Minimum bandwidth dynamically set per connection */ +var globalconfig int MinDynamicBandwidth; + +/** Maximum bandwidth dynamically set per connection */ +var globalconfig int MaxDynamicBandwidth; + +/** Standby cheat detection vars */ +/** Used to determine if checking for standby cheats should occur */ +var config bool bIsStandbyCheckingEnabled; +/** Tracks standby checking status */ +var bool bIsStandbyCheckingOn; +/** Used to determine whether we've already caught a cheat or not */ +var bool bHasStandbyCheatTriggered; +/** The amount of time without packets before triggering the cheat code */ +var config float StandbyRxCheatTime; +/** The amount of time without packets before triggering the cheat code */ +var config float StandbyTxCheatTime; +/** The point we determine the server is either delaying packets or has bad upstream */ +var config int BadPingThreshold; +/** The percentage of clients missing RX data before triggering the standby code */ +var config float PercentMissingForRxStandby; +/** The percentage of clients missing TX data before triggering the standby code */ +var config float PercentMissingForTxStandby; +/** The percentage of clients with bad ping before triggering the standby code */ +var config float PercentForBadPing; +/** The amount of time to wait before checking a connection for standby issues */ +var config float JoinInProgressStandbyWaitTime; + +/** Material used for drawing a streaming pause icon. */ +var Material StreamingPauseIcon; + +/** Describes which standby detection event occured so the game can take appropriate action */ +enum EStandbyType +{ + STDBY_Rx, + STDBY_Tx, + STDBY_BadPing +}; +/** End standby cheat vars */ + +struct native GameClassShortName +{ + var string ShortName; + var string GameClassName; +}; +var() protected config const array GameInfoClassAliases; + +/** + * GameTypePrefix helper structure. + * Used to find valid gametypes for a map via its prefix. + */ +struct native GameTypePrefix +{ + /** map prefix, e.g. "DM" */ + var string Prefix; + /** if TRUE, generate a common package for the gametype */ + var bool bUsesCommonPackage; + /** gametype used if none specified on the URL */ + var string GameType; + /** additional gametypes supported by this map prefix via the URL (used for cooking) */ + var array AdditionalGameTypes; + /** forced objects (and classes) that should go into the common package to avoid cooking into every map */ + var array ForcedObjects; +}; + +enum PIEPawnMeshTypes +{ + PIEMESH_UseMeshID, // 0 + PIEMESH_MAX // 1 +}; + +/** The default game type to use on a map */ +var config string DefaultGameType; +/** Used for loading appropriate game type if non-specified in URL */ +var config array DefaultMapPrefixes; +/** Used for loading appropriate game type if non-specified in URL */ +var config array CustomMapPrefixes; + + +/** Size of the AnimTree pool. System will keep this number of extra AnimTrees around per Template */ +var config int AnimTreePoolSize; + +/** + * Retrieve the FGameTypePrefix struct for the given map filename. + * + * @param InFilename The map file name + * @param OutGameType The gametype prefix struct to fill in + * @param bCheckExt Optional parameter to check the extension of the InFilename to ensure it is a map + * + * @return UBOOL TRUE if successful, FALSE if map prefix not found. + * NOTE: FALSE will fill in with the default gametype. + */ +function native bool GetSupportedGameTypes(const out string InFilename, out GameTypePrefix OutGameType, optional bool bCheckExt = false) const; + +/** + * Retrieve the name of the common package (if any) for the given map filename. + * + * @param InFilename The map file name + * @param OutCommonPackageName The nane of the common package for the given map + * + * @return UBOOL TRUE if successful, FALSE if map prefix not found. + */ +function native bool GetMapCommonPackageName(const out string InFilename, out string OutCommonPackageName) const; + +cpptext +{ + /** called on the default object of the class specified by DefaultGame in the [Engine.GameInfo] section of Game.ini + * whenever worlds are saved. + * Gives the game a chance to add supported gametypes to the WorldInfo's GameTypesSupportedOnThisMap array + * (used for console cooking) + * @param Info: the WorldInfo of the world being saved + */ + virtual void AddSupportedGameTypes(AWorldInfo* Info, const TCHAR* WorldFilename, TArray& AdditionalPackagesToCook) const + { + } + + /** Allows for game classname remapping and/or aliasing (e.g. for shorthand names) */ + static FString StaticGetRemappedGameClassName(FString const& GameClassName); +} + +//------------------------------------------------------------------------------ +// Engine notifications. + +event PreBeginPlay() +{ + AdjustedNetSpeed = MaxDynamicBandwidth; + SetGameSpeed(GameSpeed); + GameReplicationInfo = Spawn(GameReplicationInfoClass); + WorldInfo.GRI = GameReplicationInfo; + + InitGameReplicationInfo(); + InitCrowdPopulationManager(); +} + +function CoverReplicator GetCoverReplicator() +{ + if (CoverReplicatorBase == None && WorldInfo.NetMode != NM_Standalone) + { + CoverReplicatorBase = Spawn(class'CoverReplicator'); + } + return CoverReplicatorBase; +} + +event PostBeginPlay() +{ + if ( MaxIdleTime > 0 ) + { + MaxIdleTime = FMax(MaxIdleTime, 20); + } + + if (WorldInfo.NetMode == NM_DedicatedServer) + { + // Update any online advertised settings + UpdateGameSettings(); + } +} + +/** + * Use 'ShowGameDebug' console command to show this debug info + * Useful to show general debug info not tied to a particular actor physically in the level. + */ +simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) +{ + local Canvas Canvas; + + Canvas = HUD.Canvas; + Canvas.SetDrawColor(255,255,255); + + Canvas.DrawText("Game:" $GameName ); + out_YPos += out_YL; + Canvas.SetPos(4,out_YPos); + + if ( WorldInfo.PopulationManager != None ) + { + WorldInfo.PopulationManager.DisplayDebug(HUD, out_YL, out_YPos); + } +} + + +/* Reset() - reset actor to initial state - used when restarting level without reloading. + @note: GameInfo::Reset() called after all other actors have been reset */ +function Reset() +{ + super.Reset(); + + bGameEnded = false; + bOverTime = false; + InitGameReplicationInfo(); +} + +/** @return true if ActorToReset should have Reset() called on it while restarting the game, false if the GameInfo will manually reset it + or if the actor does not need to be reset +*/ +function bool ShouldReset(Actor ActorToReset) +{ + return true; +} + +/** Resets level by calling Reset() on all actors */ +function ResetLevel() +{ + local Controller C; + local Actor A; + local Sequence GameSeq; + local array AllSeqEvents; + local array ActivateIndices; + local int i; + + `Log("Reset" @ self); + // Reset ALL controllers first + foreach WorldInfo.AllControllers(class'Controller', C) + { + if ( PlayerController(C) != None ) + { + PlayerController(C).ClientReset(); + } + C.Reset(); + } + + // Reset all actors (except controllers, the GameInfo, and any other actors specified by ShouldReset()) + foreach AllActors(class'Actor', A) + { + if (A != self && !A.IsA('Controller') && ShouldReset(A)) + { + A.Reset(); + } + } + + // reset the GameInfo + Reset(); + + // reset Kismet and activate any Level Reset events + GameSeq = WorldInfo.GetGameSequence(); + if (GameSeq != None) + { + // reset the game sequence + GameSeq.Reset(); + + // find any Level Loaded events that exist + GameSeq.FindSeqObjectsByClass(class'SeqEvent_LevelLoaded', true, AllSeqEvents); + + // activate them + ActivateIndices[0] = 2; + for (i = 0; i < AllSeqEvents.Length; i++) + { + SeqEvent_LevelLoaded(AllSeqEvents[i]).CheckActivate(WorldInfo, None, false, ActivateIndices); + } + } +} + + +event Timer() +{ + BroadcastHandler.UpdateSentText(); + + // Update navigation point fear cost fall off. + if ( bDoFearCostFallOff ) + { + DoNavFearCostFallOff(); + } +} + +/** + * Check to see if we should start in cinematic mode (e.g. matinee movie capture). + * + * @param OutHidePlayer Whether to hide the player + * @param OutHideHud Whether to hide the HUD + * @param OutDisableMovement Whether to disable movement + * @param OutDisableTurning Whether to disable turning + * @param OutDisableInput Whether to disable input + * + * @return UBOOL TRUE if we should turn on cinematic mode, + * FALSE if if we should not. + */ +final native function bool ShouldStartInCinematicMode(out int OutHidePlayer, out int OutHideHud, out int OutDisableMovement, out int OutDisableTurning, out int OutDisableInput); + +/** Update navigation point fear cost fall off. */ +final native function DoNavFearCostFallOff(); + +/** notification when a NavigationPoint becomes blocked or unblocked */ +function NotifyNavigationChanged(NavigationPoint N); + +// Called when game shutsdown. +event GameEnding() +{ + if (AccessControl != none) + { + AccessControl.NotifyGameEnding(); + } + + ClearOnlineDelegates(); + + EndLogging("serverquit"); +} + +/* KickIdler() called if + if ( (Pawn != None) || (PlayerReplicationInfo.bOnlySpectator && (ViewTarget != self)) + || (WorldInfo.Pauser != None) || WorldInfo.Game.bWaitingToStartMatch || WorldInfo.Game.bGameEnded ) + { + LastActiveTime = WorldInfo.TimeSeconds; + } + else if ( (WorldInfo.Game.MaxIdleTime > 0) && (WorldInfo.TimeSeconds - LastActiveTime > WorldInfo.Game.MaxIdleTime) ) + KickIdler(self); +*/ +event KickIdler(PlayerController PC) +{ + `log("Kicking idle player "$PC.PlayerReplicationInfo.PlayerName); + AccessControl.KickPlayer(PC, AccessControl.IdleKickReason); +} + +// This will kick any player, even if they are an admin. +event ForceKickPlayer(PlayerController PC, string KickReason) +{ + `log("Force kicking player "$PC.PlayerReplicationInfo.PlayerName); + AccessControl.ForceKickPlayer(PC, KickReason); +} + +//------------------------------------------------------------------------------ +// Replication + +function InitGameReplicationInfo() +{ + GameReplicationInfo.GameClass = Class; + GameReplicationInfo.ReceivedGameClass(); +} + +native function string GetNetworkNumber(); + +function int GetNumPlayers() +{ + return NumPlayers + NumTravellingPlayers; +} + +//------------------------------------------------------------------------------ +// Misc. + +/** + * Default delegate that provides an implementation for those that don't have + * special needs other than a toggle + */ +delegate bool CanUnpause() +{ + return true; +} + +/** + * Adds the delegate to the list if the player controller has the right to pause + * the game. The delegate is called to see if it is ok to unpause the game, e.g. + * the reason the game was paused has been cleared. + * + * @param PC the player controller to check for admin privs + * @param CanUnpauseDelegate the delegate to query when checking for unpause + */ +function bool SetPause(PlayerController PC, optional delegate CanUnpauseDelegate=CanUnpause) +{ + local int FoundIndex; + + if ( AllowPausing(PC) ) + { + // Don't add the delegate twice (no need) + FoundIndex = Pausers.Find(CanUnpauseDelegate); + if (FoundIndex == INDEX_NONE) + { + // Not in the list so add it for querying + FoundIndex = Pausers.Length; + Pausers.Length = FoundIndex + 1; + Pausers[FoundIndex] = CanUnpauseDelegate; + } + // Let the first one in "own" the pause state + if (WorldInfo.Pauser == None) + { + WorldInfo.Pauser = PC.PlayerReplicationInfo; + } + return true; + } + return false; +} + +/** + * Checks the list of delegates to determine if the pausing can be cleared. If + * the delegate says it's ok to unpause, that delegate is removed from the list + * and the rest are checked. The game is considered unpaused when the list is + * empty. + */ +event ClearPause() +{ + local int Index; + local delegate CanUnpauseCriteriaMet; + + if ( !AllowPausing() && Pausers.Length > 0 ) + { + `log("Clearing list of UnPause delegates for" @ Name @ "because game type is not pauseable"); + Pausers.Length = 0; + } + + for (Index = 0; Index < Pausers.Length; Index++) + { + CanUnpauseCriteriaMet = Pausers[Index]; + if (CanUnpauseCriteriaMet()) + { + Pausers.Remove(Index--,1); + } + } + + // Clear the pause state if the list is empty + if ( Pausers.Length == 0 ) + { + WorldInfo.Pauser = None; + } +} + +/** + * Forcibly removes an object's CanUnpause delegates from the list of pausers. If any of the object's CanUnpause delegate + * handlers were in the list, triggers a call to ClearPause(). + * + * Called when the player controller is being destroyed to prevent the game from being stuck in a paused state when a PC that + * paused the game is destroyed before the game is unpaused. + */ +native final function ForceClearUnpauseDelegates( Actor PauseActor ); + +/** + * Dumps the pause delegate list to track down who has the game paused + */ +function DebugPause() +{ + local int Index; + local delegate CanUnpauseCriteriaMet; + + for (Index = 0; Index < Pausers.Length; Index++) + { + CanUnpauseCriteriaMet = Pausers[Index]; + if (CanUnpauseCriteriaMet()) + { + `Log("Pauser in index "$Index$" thinks it's ok to unpause:" @ CanUnpauseCriteriaMet); + } + else + { + `Log("Pauser in index "$Index$" thinks the game should remain paused:" @ CanUnpauseCriteriaMet); + } + } +} + +//------------------------------------------------------------------------------ +// Game parameters. + +// +// Set gameplay speed. +// +function SetGameSpeed( Float T ) +{ + GameSpeed = FMax(T, 0.00001); + WorldInfo.TimeDilation = GameSpeed; + SetTimer(WorldInfo.TimeDilation, true); +} + +//------------------------------------------------------------------------------ +// Player start functions + +// +// Grab the next option from a string. +// +static function bool GrabOption( out string Options, out string Result ) +{ + if( Left(Options,1)=="?" ) + { + // Get result. + Result = Mid(Options,1); + if( InStr(Result,"?")>=0 ) + Result = Left( Result, InStr(Result,"?") ); + + // Update options. + Options = Mid(Options,1); + if( InStr(Options,"?")>=0 ) + Options = Mid( Options, InStr(Options,"?") ); + else + Options = ""; + + return true; + } + else return false; +} + +// +// Break up a key=value pair into its key and value. +// +static function GetKeyValue( string Pair, out string Key, out string Value ) +{ + if( InStr(Pair,"=")>=0 ) + { + Key = Left(Pair,InStr(Pair,"=")); + Value = Mid(Pair,InStr(Pair,"=")+1); + } + else + { + Key = Pair; + Value = ""; + } +} + +/* ParseOption() + Find an option in the options string and return it. +*/ +static function string ParseOption( string Options, string InKey ) +{ + local string Pair, Key, Value; + while( GrabOption( Options, Pair ) ) + { + GetKeyValue( Pair, Key, Value ); + if( Key ~= InKey ) + return Value; + } + return ""; +} + +// +// HasOption - return true if the option is specified on the command line. +// +static function bool HasOption( string Options, string InKey ) +{ + local string Pair, Key, Value; + while( GrabOption( Options, Pair ) ) + { + GetKeyValue( Pair, Key, Value ); + if( Key ~= InKey ) + return true; + } + return false; +} + +static function int GetIntOption( string Options, string ParseString, int CurrentValue) +{ + local string InOpt; + + InOpt = ParseOption( Options, ParseString ); + if ( InOpt != "" ) + { + return int(InOpt); + } + return CurrentValue; +} + +/** @return the full path to the optimal GameInfo class to use for the specified map and options + * this is used for preloading cooked packages, etc. and therefore doesn't need to include any fallbacks + * as SetGameType() will be called later to actually find/load the desired class + */ +static event string GetDefaultGameClassPath(string MapName, string Options, string Portal) +{ + return PathName(Default.Class); +} + +/** @return the class of GameInfo to spawn for the game on the specified map and the specified options + * this function should include any fallbacks in case the desired class can't be found + */ +static event class SetGameType(string MapName, string Options, string Portal) +{ + return Default.Class; +} + +/* Initialize the game. + The GameInfo's InitGame() function is called before any other scripts (including + PreBeginPlay() ), and is used by the GameInfo to initialize parameters and spawn + its helper classes. + Warning: this is called before actors' PreBeginPlay. +*/ +event InitGame( string Options, out string ErrorMessage ) +{ + local string InOpt, LeftOpt; + local int pos; + local class ACClass; + local AccessControl CurAC; + local OnlineGameSettings GameSettings; + + MaxPlayers = Clamp(GetIntOption( Options, "MaxPlayers", MaxPlayers ),0,MaxPlayersAllowed); + MaxSpectators = Clamp(GetIntOption( Options, "MaxSpectators", MaxSpectators ),0,MaxSpectatorsAllowed); + GameDifficulty = FMax(0,GetIntOption(Options, "Difficulty", GameDifficulty)); + + InOpt = ParseOption( Options, "GameSpeed"); + if( InOpt != "" ) + { + `log("GameSpeed"@InOpt); + SetGameSpeed(float(InOpt)); + } + + TimeLimit = Max(0,GetIntOption( Options, "TimeLimit", TimeLimit )); + + BroadcastHandler = spawn(BroadcastHandlerClass); + + InOpt = ParseOption( Options, "AccessControl"); + if( InOpt != "" ) + { + ACClass = class(DynamicLoadObject(InOpt, class'Class')); + } + if ( ACClass == None ) + { + ACClass = AccessControlClass; + } + + LeftOpt = ParseOption( Options, "AdminName" ); + InOpt = ParseOption( Options, "AdminPassword"); + /* @FIXME: this is a compiler error, "can't set defaults of non-config properties". Fix or remove at some point. + if( LeftOpt!="" && InOpt!="" ) + ACClass.default.bDontAddDefaultAdmin = true; + */ + + // Only spawn access control if we are a server + if (WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer) + { + // If we are coming out of seamless travel, and there is an access control carried over from the previous level, + // use that instead of creating a new one + if (WorldInfo.IsInSeamlessTravel()) + { + foreach DynamicActors(Class'AccessControl', CurAC) + { + AccessControl = CurAC; + break; + } + } + + if (AccessControl == none) + { + AccessControl = Spawn(ACClass); + } + + if (AccessControl != None && InOpt != "") + { + AccessControl.SetAdminPassword(InOpt); + } + } + + InOpt = ParseOption( Options, "Mutator"); + if ( InOpt != "" ) + { + `log("Mutators"@InOpt); + while ( InOpt != "" ) + { + pos = InStr(InOpt,","); + if ( pos > 0 ) + { + LeftOpt = Left(InOpt, pos); + InOpt = Right(InOpt, Len(InOpt) - pos - 1); + } + else + { + LeftOpt = InOpt; + InOpt = ""; + } + AddMutator(LeftOpt, true); + } + } + + InOpt = ParseOption( Options, "GamePassword"); + if( InOpt != "" && AccessControl != None) + { + AccessControl.SetGamePassWord(InOpt); + `log( "GamePassword" @ InOpt ); + } + + bFixedPlayerStart = ( ParseOption( Options, "FixedPlayerStart" ) ~= "1" ); + CauseEventCommand = ( ParseOption( Options, "causeevent" ) ); + + if ( ParseOption( Options, "AutoTests" ) ~= "1" ) + { + if ( MyAutoTestManager == None ) + { + MyAutoTestManager = spawn(AutoTestManagerClass); + } + MyAutoTestManager.InitializeOptions(Options); + } + + BugLocString = ParseOption(Options, "BugLoc"); + BugRotString = ParseOption(Options, "BugRot"); + + if (BaseMutator != none) + { + BaseMutator.InitMutator(Options, ErrorMessage); + } + + // Cache a pointer to the online subsystem + OnlineSub = class'GameEngine'.static.GetOnlineSubsystem(); + if (OnlineSub != None) + { + // And grab one for the game interface since it will be used often + GameInterface = OnlineSub.GameInterface; + if (GameInterface != None) + { + // Grab the current game settings object out + GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + if (GameSettings != None) + { + // Check for an arbitrated match + bUsingArbitration = GameSettings.bUsesArbitration; + } + } + } + + if ((WorldInfo.IsConsoleBuild(CONSOLE_Any) == false) && + (WorldInfo.NetMode != NM_Standalone) && + // Don't register the session if the UI already has + (GameSettings == None)) + { + // Cache this so it can be used later by async processes + ServerOptions = Options; + // If there isn't a login to process, immediately register the server + // Otherwise the server will be registered when the login completes + if (!ProcessServerLogin()) + { + RegisterServer(); + } + } +} + +/** Called when a connection closes before getting to PostLogin() */ +event NotifyPendingConnectionLost(); + +function AddMutator(string mutname, optional bool bUserAdded) +{ + local class mutClass; + local Mutator mut; + local int i; + + if ( !Static.AllowMutator(MutName) ) + return; + + mutClass = class(DynamicLoadObject(mutname, class'Class')); + if (mutClass == None) + return; + + if (mutClass.Default.GroupNames.length > 0 && BaseMutator != None) + { + // make sure no mutators with same groupname + for (mut = BaseMutator; mut != None; mut = mut.NextMutator) + { + for (i = 0; i < mut.GroupNames.length; i++) + { + if (mutClass.default.GroupNames.Find(mut.GroupNames[i]) != INDEX_NONE) + { + `log("Not adding "$mutClass$" because already have a mutator in the same group - "$mut); + return; + } + } + } + } + + // make sure this mutator is not added already + for ( mut=BaseMutator; mut!=None; mut=mut.NextMutator ) + if ( mut.Class == mutClass ) + { + `log("Not adding "$mutClass$" because this mutator is already added - "$mut); + return; + } + + mut = Spawn(mutClass); + // mc, beware of mut being none + if (mut == None) + return; + + // Meant to verify if this mutator was from Command Line parameters or added from other Actors + mut.bUserAdded = bUserAdded; + + if (BaseMutator == None) + { + BaseMutator = mut; + } + else + { + BaseMutator.AddMutator(mut); + } +} + +/* RemoveMutator() +Remove a mutator from the mutator list +*/ +function RemoveMutator( Mutator MutatorToRemove ) +{ + local Mutator M; + + // remove from mutator list + if ( BaseMutator == MutatorToRemove ) + { + BaseMutator = MutatorToRemove.NextMutator; + } + else if ( BaseMutator != None ) + { + for ( M=BaseMutator; M!=None; M=M.NextMutator ) + { + if ( M.NextMutator == MutatorToRemove ) + { + M.NextMutator = MutatorToRemove.NextMutator; + break; + } + } + } +} + +/* ProcessServerTravel() + Optional handling of ServerTravel for network games. +*/ +function ProcessServerTravel(string URL, optional bool bAbsolute) +{ + local PlayerController LocalPlayer; + local bool bSeamless; + local string NextMap; + local Guid NextMapGuid; + local int OptionStart; + + bLevelChange = true; + EndLogging("mapchange"); + + // force an old style load screen if the server has been up for a long time so that TimeSeconds doesn't overflow and break everything + bSeamless = (bUseSeamlessTravel && WorldInfo.TimeSeconds < 172800.0f); // 172800 seconds == 48 hours + + if (InStr(Caps(URL), "?RESTART") != INDEX_NONE) + { + NextMap = string(WorldInfo.GetPackageName()); + } + else + { + OptionStart = InStr(URL, "?"); + if (OptionStart == INDEX_NONE) + { + NextMap = URL; + } + else + { + NextMap = Left(URL, OptionStart); + } + } + NextMapGuid = GetPackageGuid(name(NextMap)); + + // Notify clients we're switching level and give them time to receive. + LocalPlayer = ProcessClientTravel(URL, NextMapGuid, bSeamless, bAbsolute); + + `log("ProcessServerTravel:"@URL); + WorldInfo.NextURL = URL; + if (WorldInfo.NetMode == NM_ListenServer && LocalPlayer != None) + { + WorldInfo.NextURL $= "?Team="$LocalPlayer.GetDefaultURL("Team") + $"?Name="$LocalPlayer.GetDefaultURL("Name") + $"?Class="$LocalPlayer.GetDefaultURL("Class") + $"?Character="$LocalPlayer.GetDefaultURL("Character"); + } + + + // Notify access control, to cleanup online subsystem references + if (AccessControl != none) + { + AccessControl.NotifyServerTravel(bSeamless); + } + + // Trigger cleanup of online delegates + ClearOnlineDelegates(); + + if (bSeamless) + { + WorldInfo.SeamlessTravel(WorldInfo.NextURL, bAbsolute); + WorldInfo.NextURL = ""; + } + // Switch immediately if not networking. + else if (WorldInfo.NetMode != NM_DedicatedServer && WorldInfo.NetMode != NM_ListenServer) + { + WorldInfo.NextSwitchCountdown = 0.0; + } +} + +/** + * Notifies all clients to travel to the specified URL. + * + * @param URL a string containing the mapname (or IP address) to travel to, along with option key/value pairs + * @param NextMapGuid the GUID of the server's version of the next map + * @param bSeamless indicates whether the travel should use seamless travel or not. + * @param bAbsolute indicates which type of travel the server will perform (i.e. TRAVEL_Relative or TRAVEL_Absolute) + */ +function PlayerController ProcessClientTravel( out string URL, Guid NextMapGuid, bool bSeamless, bool bAbsolute ) +{ + local PlayerController P, LP; + + // We call PreClientTravel directly on any local PlayerPawns (ie listen server) + foreach WorldInfo.AllControllers(class'PlayerController', P) + { + if ( NetConnection(P.Player) != None ) + { + // remote player + P.ClientTravel(URL, TRAVEL_Relative, bSeamless, NextMapGuid); + } + else + { + // local player + LP = P; + P.PreClientTravel(URL, bAbsolute ? TRAVEL_Absolute : TRAVEL_Relative, bSeamless); + } + } + + return LP; +} + +function bool RequiresPassword() +{ + return ( (AccessControl != None) && AccessControl.RequiresPassword() ); +} + +// +// Accept or reject a player on the server. +// Fails login if you set the Error to a non-empty string. +// NOTE: UniqueId should not be trusted at this stage, it requires authentication +// +event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) +{ + local bool bSpectator; + local bool bPerfTesting; + + // Check for an arbitrated match in progress and kick if needed + if (WorldInfo.NetMode != NM_Standalone && bUsingArbitration && bHasArbitratedHandshakeBegun) + { + ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".ArbitrationMessage"; + return; + } + + // If this player is banned, reject him + if (AccessControl != none && AccessControl.IsIDBanned(UniqueId)) + { + `log(Address@"is banned, rejecting..."); + ErrorMessage = "Engine.AccessControl.SessionBanned"; + return; + } + + + bPerfTesting = ( ParseOption( Options, "AutomatedPerfTesting" ) ~= "1" ); + bSpectator = bPerfTesting || ( ParseOption( Options, "SpectatorOnly" ) ~= "1" ) || ( ParseOption( Options, "CauseEvent" ) ~= "FlyThrough" ); + + if (AccessControl != None) + { + AccessControl.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage, bSpectator); + } +} + +/** + * If called from within PreLogin, pauses the login process for the currently connecting client (usually to delay login for authentication) + * + * @return A reference to the Player/NetConnection representing the connecting client; used to resume the login process + */ +native static final function Player PauseLogin(); + +/** + * Resumes the login process for the specified client Player/NetConnection + * + * @param InPlayer The Player/NetConnection to resume logging in + */ +native static final function ResumeLogin(Player InPlayer); + +/** + * Rejects login for the specified client/NetConnection, with the specified error message + * NOTE: Error is the same error format PreLogin would take in OutError + * NOTE: Not restricted to clients at login; can be used on any valid NetConnection to disconnect a client + * + * @param InPlayer The Player/NetConnection to reject from the server + * @param Error The error message to give the player + */ +native static final function RejectLogin(Player InPlayer, string Error); + +/* + * Is the server currently at capacity? + * @param bSpectator - Whether we should check against player or spectator limits + * @return TRUE if the server is full, FALSE otherwise + */ +function bool AtCapacity(bool bSpectator) +{ + if ( WorldInfo.NetMode == NM_Standalone ) + return false; + + if ( bSpectator ) + return ( (NumSpectators >= MaxSpectators) + && ((WorldInfo.NetMode != NM_ListenServer) || (NumPlayers > 0)) ); + else + return ( (MaxPlayers>0) && (GetNumPlayers() >= MaxPlayers) ); +} + +native final function int GetNextPlayerID(); + +/** spawns a PlayerController at the specified location; split out from Login()/HandleSeamlessTravelPlayer() for easier overriding */ +function PlayerController SpawnPlayerController(vector SpawnLocation, rotator SpawnRotation) +{ + return Spawn(PlayerControllerClass,,, SpawnLocation, SpawnRotation); +} + +// +// Log a player in. +// Fails login if you set the Error string. +// PreLogin is called before Login, but significant game time may pass before +// Login is called, especially if content is downloaded. +// NOTE: If the AccessControl utilizes PauseLogin, UniqueID should be fully authenticated here +// +event PlayerController Login(string Portal, string Options, const UniqueNetID UniqueID, out string ErrorMessage) +{ + local NavigationPoint StartSpot; + local PlayerController NewPlayer; + local string InName, InCharacter/*, InAdminName*/, InPassword; + local byte InTeam; + local bool bSpectator, bAdmin, bPerfTesting; + local rotator SpawnRotation; + local UniqueNetId ZeroId; + + bAdmin = false; + + // Kick the player if they joined during the handshake process + if (bUsingArbitration && bHasArbitratedHandshakeBegun) + { + ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".ArbitrationMessage"; + return None; + } + + if ( BaseMutator != None ) + BaseMutator.ModifyLogin(Portal, Options); + + bPerfTesting = ( ParseOption( Options, "AutomatedPerfTesting" ) ~= "1" ); + bSpectator = bPerfTesting || ( ParseOption( Options, "SpectatorOnly" ) ~= "1" ); + + // Get URL options. + InName = Left(ParseOption ( Options, "Name"), 20); + InTeam = GetIntOption( Options, "Team", 255 ); // default to "no team" + //InAdminName= ParseOption ( Options, "AdminName"); + InPassword = ParseOption ( Options, "Password" ); + //InChecksum = ParseOption ( Options, "Checksum" ); + + if ( AccessControl != None ) + { + bAdmin = AccessControl.ParseAdminOptions(Options); + } + + // Make sure there is capacity except for admins. (This might have changed since the PreLogin call). + if ( !bAdmin && AtCapacity(bSpectator) ) + { + ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".MaxedOutMessage"; + return None; + } + + // if this player is banned, kick him + if( ( WorldInfo.Game.AccessControl != none ) && (WorldInfo.Game.AccessControl.IsIDBanned(UniqueId)) ) + { + `Log(InName @ "is banned, rejecting..."); + ErrorMessage = "Engine.AccessControl.SessionBanned"; + return None; + } + + // If admin, force spectate mode if the server already full of reg. players + if ( bAdmin && AtCapacity(false) ) + { + bSpectator = true; + } + + // Pick a team (if need teams) + InTeam = PickTeam(InTeam,None); + + // Find a start spot. + StartSpot = FindPlayerStart( None, InTeam, Portal ); + + if( StartSpot == None ) + { + ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".FailedPlaceMessage"; + return None; + } + + SpawnRotation.Yaw = StartSpot.Rotation.Yaw; + NewPlayer = SpawnPlayerController(StartSpot.Location, SpawnRotation); + + // Handle spawn failure. + if( NewPlayer == None ) + { + `log("Couldn't spawn player controller of class "$PlayerControllerClass); + ErrorMessage = PathName(WorldInfo.Game.GameMessageClass) $ ".FailedSpawnMessage"; + return None; + } + + NewPlayer.StartSpot = StartSpot; + + // Set the player's ID. + NewPlayer.PlayerReplicationInfo.PlayerID = GetNextPlayerID(); + + // If the access control is currently authenticating the players UID, don't store the UID until it is authenticated + if (AccessControl == none || !AccessControl.IsPendingAuth(UniqueId)) + { + NewPlayer.PlayerReplicationInfo.SetUniqueId(UniqueId); + } + + if (OnlineSub != None && + OnlineSub.GameInterface != None && + UniqueId != ZeroId) + { + // Go ahead and register the player as part of the session + WorldInfo.Game.OnlineSub.GameInterface.RegisterPlayer(PlayerReplicationInfoClass.default.SessionName, UniqueId, HasOption(Options, "bIsFromInvite")); + } + // Now that the unique id is replicated, this player can contribute to skill + RecalculateSkillRating(); + + // Init player's name + if( InName=="" ) + { + InName=DefaultPlayerName$NewPlayer.PlayerReplicationInfo.PlayerID; + } + + ChangeName( NewPlayer, InName, false ); + + InCharacter = ParseOption(Options, "Character"); + NewPlayer.SetCharacter(InCharacter); + + if ( bSpectator || NewPlayer.PlayerReplicationInfo.bOnlySpectator || !ChangeTeam(newPlayer, InTeam, false) ) + { + NewPlayer.GotoState('Spectating'); + NewPlayer.PlayerReplicationInfo.bOnlySpectator = true; + NewPlayer.PlayerReplicationInfo.bIsSpectator = true; + NewPlayer.PlayerReplicationInfo.bOutOfLives = true; + return NewPlayer; + } + + // perform auto-login if admin password/name was passed on the url + if ( AccessControl != None && AccessControl.AdminLogin(NewPlayer, InPassword) ) + { + AccessControl.AdminEntered(NewPlayer); + } + + + // if delayed start, don't give a pawn to the player yet + // Normal for multiplayer games + if ( bDelayedStart ) + { + // @todo ib2merge: Chair had this commented out + NewPlayer.GotoState('PlayerWaiting'); + return NewPlayer; + } + + return newPlayer; +} + +/* StartMatch() +Start the game - inform all actors that the match is starting, and spawn player pawns +*/ +function StartMatch() +{ + local Actor A; + + if ( MyAutoTestManager != None ) + { + MyAutoTestManager.StartMatch(); + } + + // tell all actors the game is starting + ForEach AllActors(class'Actor', A) + { + A.MatchStarting(); + } + + // start human players first + StartHumans(); + + // start AI players + StartBots(); + + bWaitingToStartMatch = false; + + StartOnlineGame(); + + // fire off any level startup events + WorldInfo.NotifyMatchStarted(); +} + +/** + * Tells the online system to start the game and waits for the callback. Tells + * each connected client to mark their session as in progress + */ +function StartOnlineGame() +{ + local PlayerController PC; + + if (GameInterface != None) + { + // Tell clients to mark their game as started + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + // Skip notifying local PCs as they are handled automatically + if (!PC.IsLocalPlayerController()) + { + PC.ClientStartOnlineGame(); + } + } + // Register the start callback so that the stat guid can be read + GameInterface.AddStartOnlineGameCompleteDelegate(OnStartOnlineGameComplete); + // Start the game locally and wait for it to complete + GameInterface.StartOnlineGame(PlayerReplicationInfoClass.default.SessionName); + } + else + { + // Notify all clients that the match has begun + GameReplicationInfo.StartMatch(); + } +} + +/** + * Callback when the start completes + * + * @param SessionName the name of the session this is for + * @param bWasSuccessful true if it worked, false otherwise + */ +function OnStartOnlineGameComplete(name SessionName,bool bWasSuccessful) +{ + local PlayerController PC; + local string StatGuid; + + GameInterface.ClearStartOnlineGameCompleteDelegate(OnStartOnlineGameComplete); + if (bWasSuccessful && OnlineSub.StatsInterface != None) + { + // Get the stat guid for the server + StatGuid = OnlineSub.StatsInterface.GetHostStatGuid(); + if (StatGuid != "") + { + // Send the stat guid to all clients + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (PC.IsLocalPlayerController() == false) + { + PC.ClientRegisterHostStatGuid(StatGuid); + } + } + } + } + + // Notify all clients that the match has begun + GameReplicationInfo.StartMatch(); +} + +function StartHumans() +{ + local PlayerController P; + + foreach WorldInfo.AllControllers(class'PlayerController', P) + { + if (P.Pawn == None) + { + if ( bGameEnded ) + { + return; // telefrag ended the game with ridiculous frag limit + } + else if (P.CanRestartPlayer()) + { + RestartPlayer(P); + } + } + } +} + +function StartBots() +{ + local Controller P; + + foreach WorldInfo.AllControllers(class'Controller', P) + { + if (P.bIsPlayer && !P.IsA('PlayerController')) + { + if (WorldInfo.NetMode == NM_Standalone) + { + RestartPlayer(P); + } + else + { + P.GotoState('Dead','MPStart'); + } + } + } +} +// +// Restart a player. +// +function RestartPlayer(Controller NewPlayer) +{ + local NavigationPoint startSpot; + local int TeamNum, Idx; + local array Events; + local SeqEvent_PlayerSpawned SpawnedEvent; + local LocalPlayer LP; + local PlayerController PC; + + if( bRestartLevel && WorldInfo.NetMode!=NM_DedicatedServer && WorldInfo.NetMode!=NM_ListenServer ) + { + `warn("bRestartLevel && !server, abort from RestartPlayer"@WorldInfo.NetMode); + return; + } + // figure out the team number and find the start spot + TeamNum = ((NewPlayer.PlayerReplicationInfo == None) || (NewPlayer.PlayerReplicationInfo.Team == None)) ? 255 : NewPlayer.PlayerReplicationInfo.Team.TeamIndex; + StartSpot = FindPlayerStart(NewPlayer, TeamNum); + + // if a start spot wasn't found, + if (startSpot == None) + { + // check for a previously assigned spot + if (NewPlayer.StartSpot != None) + { + StartSpot = NewPlayer.StartSpot; + `warn("Player start not found, using last start spot"); + } + else + { + // otherwise abort + `warn("Player start not found, failed to restart player"); + return; + } + } + // try to create a pawn to use of the default class for this player + if (NewPlayer.Pawn == None) + { + NewPlayer.Pawn = SpawnDefaultPawnFor(NewPlayer, StartSpot); + } + if (NewPlayer.Pawn == None) + { + `log("failed to spawn player at "$StartSpot); + NewPlayer.GotoState('Dead'); + if ( PlayerController(NewPlayer) != None ) + { + PlayerController(NewPlayer).ClientGotoState('Dead','Begin'); + } + } + else + { + // initialize and start it up + NewPlayer.Pawn.SetAnchor(startSpot); + if ( PlayerController(NewPlayer) != None ) + { + PlayerController(NewPlayer).TimeMargin = -0.1; + startSpot.AnchoredPawn = None; // SetAnchor() will set this since IsHumanControlled() won't return true for the Pawn yet + } + NewPlayer.Pawn.LastStartSpot = PlayerStart(startSpot); + NewPlayer.Pawn.LastStartTime = WorldInfo.TimeSeconds; + NewPlayer.Possess(NewPlayer.Pawn, false); + NewPlayer.Pawn.PlayTeleportEffect(true, true); + NewPlayer.ClientSetRotation(NewPlayer.Pawn.Rotation, TRUE); + + if (!WorldInfo.bNoDefaultInventoryForPlayer) + { + AddDefaultInventory(NewPlayer.Pawn); + } + SetPlayerDefaults(NewPlayer.Pawn); + + // activate spawned events + if (WorldInfo.GetGameSequence() != None) + { + WorldInfo.GetGameSequence().FindSeqObjectsByClass(class'SeqEvent_PlayerSpawned',TRUE,Events); + for (Idx = 0; Idx < Events.Length; Idx++) + { + SpawnedEvent = SeqEvent_PlayerSpawned(Events[Idx]); + if (SpawnedEvent != None && + SpawnedEvent.CheckActivate(NewPlayer,NewPlayer)) + { + SpawnedEvent.SpawnPoint = startSpot; + SpawnedEvent.PopulateLinkedVariableValues(); + } + } + } + } + + // To fix custom post processing chain when not running in editor or PIE. + PC = PlayerController(NewPlayer); + if (PC != none) + { + LP = LocalPlayer(PC.Player); + if(LP != None) + { + LP.RemoveAllPostProcessingChains(); + LP.InsertPostProcessingChain(LP.Outer.GetWorldPostProcessChain(),INDEX_NONE,true); + if(PC.myHUD != None) + { + PC.myHUD.NotifyBindPostProcessEffects(); + } + } + } +} + +/** + * Returns a pawn of the default pawn class + * + * @param NewPlayer - Controller for whom this pawn is spawned + * @param StartSpot - PlayerStart at which to spawn pawn + * + * @return pawn + */ +function Pawn SpawnDefaultPawnFor(Controller NewPlayer, NavigationPoint StartSpot) +{ + local class DefaultPlayerClass; + local Rotator StartRotation; + local Pawn ResultPawn; + + DefaultPlayerClass = GetDefaultPlayerClass(NewPlayer); + + // don't allow pawn to be spawned with any pitch or roll + StartRotation.Yaw = StartSpot.Rotation.Yaw; + + ResultPawn = Spawn(DefaultPlayerClass,,,StartSpot.Location,StartRotation); + if ( ResultPawn == None ) + { + `log("Couldn't spawn player of type "$DefaultPlayerClass$" at "$StartSpot); + } + return ResultPawn; +} + +/** + * Returns the default pawn class for the specified controller, + * + * @param C - controller to figure out pawn class for + * + * @return default pawn class + */ +function class GetDefaultPlayerClass(Controller C) +{ + // default to the game specified pawn class + return DefaultPawnClass; +} + +/** replicates the current level streaming status to the given PlayerController */ +function ReplicateStreamingStatus(PlayerController PC) +{ + local int LevelIndex; + local LevelStreaming TheLevel; + + // don't do this for local players or players after the first on a splitscreen client + if (LocalPlayer(PC.Player) == None && ChildConnection(PC.Player) == None) + { + // if we've loaded levels via CommitMapChange() that aren't normally in the StreamingLevels array, tell the client about that + if (WorldInfo.CommittedPersistentLevelName != 'None') + { + PC.ClientPrepareMapChange(WorldInfo.CommittedPersistentLevelName, true, true); + // tell the client to commit the level immediately + PC.ClientCommitMapChange(); + } + + if (WorldInfo.StreamingLevels.length > 0) + { + // Tell the player controller the current streaming level status + for (LevelIndex = 0; LevelIndex < WorldInfo.StreamingLevels.Length; LevelIndex++) + { + // streamingServer + TheLevel = WorldInfo.StreamingLevels[LevelIndex]; + + if( TheLevel != none ) + { + `log( "levelStatus: " $ TheLevel.PackageName $ " " + $ TheLevel.bShouldBeVisible $ " " + $ TheLevel.bIsVisible $ " " + $ TheLevel.bShouldBeLoaded $ " " + $ TheLevel.LoadedLevel $ " " + $ TheLevel.bHasLoadRequestPending $ " " + ) ; + + PC.ClientUpdateLevelStreamingStatus( + TheLevel.PackageName, + TheLevel.bShouldBeLoaded, + TheLevel.bShouldBeVisible, + TheLevel.bShouldBlockOnLoad); + } + } + PC.ClientFlushLevelStreaming(); + } + + // if we're preparing to load different levels using PrepareMapChange() inform the client about that now + if (WorldInfo.PreparingLevelNames.length > 0) + { + for (LevelIndex = 0; LevelIndex < WorldInfo.PreparingLevelNames.length; LevelIndex++) + { + PC.ClientPrepareMapChange(WorldInfo.PreparingLevelNames[LevelIndex], LevelIndex == 0, LevelIndex == WorldInfo.PreparingLevelNames.length - 1); + } + // DO NOT commit these changes yet - we'll send that when we're done preparing them + } + } +} + +/** handles all player initialization that is shared between the travel methods + * (i.e. called from both PostLogin() and HandleSeamlessTravelPlayer()) + */ +function GenericPlayerInitialization(Controller C) +{ + local PlayerController PC; + + PC = PlayerController(C); + if (PC != None) + { + // Keep track of the best host to migrate to in case of a disconnect + UpdateBestNextHosts(); + + // Notify the game that we can now be muted and mute others + UpdateGameplayMuteList(PC); + + // tell client what hud class to use + PC.ClientSetHUD(HudType); + + // tell client what secondary hud class to use + PC.ClientSetSecondaryHUD(SecondaryHudType); + + ReplicateStreamingStatus(PC); + + // see if we need to spawn a CoverReplicator for this player + if (CoverReplicatorBase != None) + { + PC.SpawnCoverReplicator(); + } + + // Set the rich presence strings on the client (has to be done there) + PC.ClientSetOnlineStatus(); + } + + if (BaseMutator != None) + { + BaseMutator.NotifyLogin(C); + } +} + +/** + * Sort the list of best hosts. Clients with the most peer connections come first. + * Then sort based on time of join so that newest players are preferred. + * + * @param A first item to compare + * @param B second item to compare + * @return 0 if A==B, < 0 if A < B, > 0 if A > B + */ +function int BestNextHostSort(PlayerController A, PlayerController B) +{ + local int Result; + + if (A.ConnectedPeers.Length == B.ConnectedPeers.Length && + A.PlayerReplicationInfo != None && B.PlayerReplicationInfo != None) + { + // sort by newest start time + Result = FCeil(B.PlayerReplicationInfo.StartTime) - FCeil(A.PlayerReplicationInfo.StartTime); + } + else + { + // sort by largest connected peers + Result = A.ConnectedPeers.Length - B.ConnectedPeers.Length; + } + + return Result; +} + +/** + * Updates the list of best next hosts on the current server and also replicates this list to all clients. + */ +function UpdateBestNextHosts() +{ + local PlayerController PC; + local array SortedPCList; + local UniqueNetId SortedPlayerIdList[10]; + local UniqueNetId ZeroId; + local int Idx,NumEntries; + + // copy list of remote PCs + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (!PC.IsLocalPlayerController() && + PC.PlayerReplicationInfo != None && + PC.PlayerReplicationInfo.UniqueId != ZeroId && + PC.IsPrimaryPlayer()) + { + SortedPCList.AddItem(PC); + } + } + // sort list of PCs from best to worst host + SortedPCList.Sort(BestNextHostSort); + + // copy to list of unique net ids + NumEntries = Min(SortedPCList.Length,10); + for (Idx=0; Idx < NumEntries; Idx++) + { + SortedPlayerIdList[Idx] = SortedPCList[Idx].PlayerReplicationInfo.UniqueId; + } + + // send list of best hosts to clients + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (!PC.IsLocalPlayerController()) + { + PC.ClientUpdateBestNextHosts(SortedPlayerIdList,NumEntries); + } + } +} + +// +// Called after a successful login. This is the first place +// it is safe to call replicated functions on the PlayerController. +// +event PostLogin( PlayerController NewPlayer ) +{ + local string Address, StatGuid; + local int pos, i; + local Sequence GameSeq; + local array AllInterpActions; + + local int HidePlayer, HideHud, DisableMovement, DisableTurning, DisableInput; + + // update player count + if (NewPlayer.PlayerReplicationInfo.bOnlySpectator) + { + NumSpectators++; + } + else if (WorldInfo.IsInSeamlessTravel() || NewPlayer.HasClientLoadedCurrentWorld()) + { + NumPlayers++; + } + else + { + NumTravellingPlayers++; + } + + // Tell the online subsystem the number of players in the game + UpdateGameSettingsCounts(); + + // save network address for re-associating with reconnecting player, after stripping out port number + Address = NewPlayer.GetPlayerNetworkAddress(); + pos = InStr(Address,":"); + NewPlayer.PlayerReplicationInfo.SavedNetworkAddress = (pos > 0) ? left(Address,pos) : Address; + + // check if this player is reconnecting and already has PRI + FindInactivePRI(NewPlayer); + + if ( !bDelayedStart ) + { + // start match, or let player enter, immediately + bRestartLevel = false; // let player spawn once in levels that must be restarted after every death + if ( bWaitingToStartMatch ) + StartMatch(); + else + RestartPlayer(newPlayer); + bRestartLevel = Default.bRestartLevel; + } + + if (NewPlayer.Pawn != None) + { + NewPlayer.Pawn.ClientSetRotation(NewPlayer.Pawn.Rotation); + } + + NewPlayer.ClientCapBandwidth(NewPlayer.Player.CurrentNetSpeed); + UpdateNetSpeeds(); + + GenericPlayerInitialization(NewPlayer); + + // Tell the new player the stat guid + if (GameReplicationInfo.bMatchHasBegun && OnlineSub != None && OnlineSub.StatsInterface != None) + { + // Get the stat guid for the server + StatGuid = OnlineSub.StatsInterface.GetHostStatGuid(); + if (StatGuid != "") + { + NewPlayer.ClientRegisterHostStatGuid(StatGuid); + } + } + + // Tell the player to disable voice by default and use the push to talk method + if (bRequiresPushToTalk) + { + NewPlayer.ClientStopNetworkedVoice(); + } + else + { + NewPlayer.ClientStartNetworkedVoice(); + } + + if (NewPlayer.PlayerReplicationInfo.bOnlySpectator) + { + NewPlayer.ClientGotoState('Spectating'); + } + + // add the player to any matinees running so that it gets in on any cinematics already running, etc + GameSeq = WorldInfo.GetGameSequence(); + if (GameSeq != None) + { + // find any matinee actions that exist + GameSeq.FindSeqObjectsByClass(class'SeqAct_Interp', true, AllInterpActions); + + // tell them all to add this PC to any running Director tracks + for (i = 0; i < AllInterpActions.Length; i++) + { + SeqAct_Interp(AllInterpActions[i]).AddPlayerToDirectorTracks(NewPlayer); + } + } + + //Check to see if we should start in cinematic mode (matinee movie capture) + if(ShouldStartInCinematicMode(HidePlayer, HideHud, DisableMovement, DisableTurning, DisableInput)) + { + NewPlayer.SetCinematicMode(true, HidePlayer == 1, HideHud == 1, DisableMovement == 1, DisableTurning == 1, DisableInput == 1); + } + + // Pass on to access control + if (AccessControl != none) + { + AccessControl.PostLogin(NewPlayer); + } +} + +function UpdateNetSpeeds() +{ + local int NewNetSpeed; + local PlayerController PC; + local OnlineGameSettings GameSettings; + + if (GameInterface != None) + { + GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + } + + if ( (WorldInfo.NetMode == NM_DedicatedServer) || (WorldInfo.NetMode == NM_Standalone) || (GameSettings != None && GameSettings.bIsLanMatch) ) + { + return; + } + + if ( WorldInfo.TimeSeconds - LastNetSpeedUpdateTime < 1.0 ) + { + SetTimer( 1.0, false, nameof(UpdateNetSpeeds) ); + return; + } + + LastNetSpeedUpdateTime = WorldInfo.TimeSeconds; + + NewNetSpeed = CalculatedNetSpeed(); + `log("New Dynamic NetSpeed "$NewNetSpeed$" vs old "$AdjustedNetSpeed,,'DevNet'); + + if ( AdjustedNetSpeed != NewNetSpeed ) + { + AdjustedNetSpeed = NewNetSpeed; + ForEach WorldInfo.AllControllers(class'PlayerController', PC) + { + PC.SetNetSpeed(AdjustedNetSpeed); + } + } +} + +function int CalculatedNetSpeed() +{ + return Clamp(TotalNetBandwidth/Max(NumPlayers,1), MinDynamicBandwidth, MaxDynamicBandwidth); +} + +/** + * Engine is shutting down. + */ +event PreExit() +{ + if (AccessControl != none) + { + AccessControl.NotifyExit(); + } + + ClearOnlineDelegates(); +} + +// +// Player exits. +// +function Logout( Controller Exiting ) +{ + local PlayerController PC; + local int PCIndex; + + PC = PlayerController(Exiting); + if ( PC != None ) + { + if (AccessControl != None && + AccessControl.AdminLogout( PlayerController(Exiting) )) + { + AccessControl.AdminExited( PlayerController(Exiting) ); + } + + if ( PC.PlayerReplicationInfo.bOnlySpectator ) + { + NumSpectators--; + } + else + { + if (WorldInfo.IsInSeamlessTravel() || PC.HasClientLoadedCurrentWorld()) + { + NumPlayers--; + } + else + { + NumTravellingPlayers--; + } + // Tell the online subsystem the number of players in the game + UpdateGameSettingsCounts(); + } + // This person has left during an arbitration period + if (bUsingArbitration && bHasArbitratedHandshakeBegun && !bHasEndGameHandshakeBegun) + { + `Log("Player "$PC.PlayerReplicationInfo.PlayerName$" has dropped"); + } + // Unregister the player from the online layer + UnregisterPlayer(PC); + // Remove from the arbitrated PC list if in an arbitrated match + if (bUsingArbitration) + { + // Find the PC in the list and remove it if found + PCIndex = ArbitrationPCs.Find(PC); + if (PCIndex != INDEX_NONE) + { + ArbitrationPCs.Remove(PCIndex,1); + } + } + } + //notify mutators that a player exited + if (BaseMutator != None) + { + BaseMutator.NotifyLogout(Exiting); + } + if ( PC != None ) + { + UpdateNetSpeeds(); + } +} + +/** + * Removes the player from the named session when they leave + * + * @param PC the player controller that just left + */ +function UnregisterPlayer(PlayerController PC) +{ + local UniqueNetId ZeroId; + + // If there is a session that matches the name, unregister this remote player + if (WorldInfo.NetMode != NM_Standalone && + GameInterface != None && + PC.PlayerReplicationInfo.UniqueId != ZeroId && + GameInterface.GetGameSettings(PC.PlayerReplicationInfo.SessionName) != None) + { + // Unregister the player from the session + GameInterface.UnregisterPlayer(PC.PlayerReplicationInfo.SessionName,PC.PlayerReplicationInfo.UniqueId); + } +} + +// +// Examine the passed player's inventory, and accept or discard each item. +// AcceptInventory needs to gracefully handle the case of some inventory +// being accepted but other inventory not being accepted (such as the default +// weapon). There are several things that can go wrong: A weapon's +// AmmoType not being accepted but the weapon being accepted -- the weapon +// should be killed off. Or the player's selected inventory item, active +// weapon, etc. not being accepted, leaving the player weaponless or leaving +// the HUD inventory rendering messed up (AcceptInventory should pick another +// applicable weapon/item as current). +// +event AcceptInventory(pawn PlayerPawn) +{ + //default accept all inventory except default weapon (spawned explicitly) +} + +// +// Spawn any default inventory for the player. +// +event AddDefaultInventory(Pawn P) +{ + // Allow the pawn itself to modify its inventory + P.AddDefaultInventory(); + + if ( P.InvManager == None ) + { + `warn("GameInfo::AddDefaultInventory - P.InvManager == None"); + } +} + +/* Mutate() +Pass an input string to the mutator list. Used by PlayerController.Mutate(), intended to allow +mutators to have input exec functions (by binding mutate xxx to keys) +*/ +function Mutate(string MutateString, PlayerController Sender) +{ + if ( BaseMutator != None ) + BaseMutator.Mutate(MutateString, Sender); +} + +/* SetPlayerDefaults() + first make sure pawn properties are back to default, then give mutators an opportunity + to modify them +*/ +function SetPlayerDefaults(Pawn PlayerPawn) +{ + PlayerPawn.AirControl = PlayerPawn.Default.AirControl; + PlayerPawn.GroundSpeed = PlayerPawn.Default.GroundSpeed; + PlayerPawn.WaterSpeed = PlayerPawn.Default.WaterSpeed; + PlayerPawn.AirSpeed = PlayerPawn.Default.AirSpeed; + PlayerPawn.Acceleration = PlayerPawn.Default.Acceleration; + PlayerPawn.AccelRate = PlayerPawn.Default.AccelRate; + PlayerPawn.JumpZ = PlayerPawn.Default.JumpZ; + if ( BaseMutator != None ) + BaseMutator.ModifyPlayer(PlayerPawn); + PlayerPawn.PhysicsVolume.ModifyPlayer(PlayerPawn); +} + +function NotifyKilled(Controller Killer, Controller Killed, Pawn KilledPawn, class damageType ) +{ + local Controller C; + + foreach WorldInfo.AllControllers(class'Controller', C) + { + C.NotifyKilled(Killer, Killed, KilledPawn, damageType); + } +} + +function Killed( Controller Killer, Controller KilledPlayer, Pawn KilledPawn, class damageType ) +{ + if( KilledPlayer != None && KilledPlayer.bIsPlayer ) + { + KilledPlayer.PlayerReplicationInfo.IncrementDeaths(); + KilledPlayer.PlayerReplicationInfo.SetNetUpdateTime(FMin(KilledPlayer.PlayerReplicationInfo.NetUpdateTime, WorldInfo.TimeSeconds + 0.3 * FRand())); + BroadcastDeathMessage(Killer, KilledPlayer, damageType); + } + + if( KilledPlayer != None ) + { + ScoreKill(Killer, KilledPlayer); + } + + DiscardInventory(KilledPawn, Killer); + NotifyKilled(Killer, KilledPlayer, KilledPawn, damageType); +} + +function bool PreventDeath(Pawn KilledPawn, Controller Killer, class DamageType, vector HitLocation) +{ + if ( BaseMutator == None ) + return false; + return BaseMutator.PreventDeath(KilledPawn, Killer, DamageType, HitLocation); +} + +function BroadcastDeathMessage(Controller Killer, Controller Other, class damageType) +{ + if ( (Killer == Other) || (Killer == None) ) + { + BroadcastLocalized(self, DeathMessageClass, 1, None, Other.PlayerReplicationInfo, damageType); + } + else + { + BroadcastLocalized(self, DeathMessageClass, 0, Killer.PlayerReplicationInfo, Other.PlayerReplicationInfo, damageType); + } +} + +function Kick( string S ) +{ + if (AccessControl != None) + AccessControl.Kick(S); +} + +function KickBan( string S ) +{ + if (AccessControl != None) + AccessControl.KickBan(S); +} + +//------------------------------------------------------------------------------------- +// Level gameplay modification. + +// +// Return whether Viewer is allowed to spectate from the +// point of view of ViewTarget. +// +function bool CanSpectate( PlayerController Viewer, PlayerReplicationInfo ViewTarget ) +{ + return true; +} + +/* ReduceDamage: + Use reduce damage for teamplay modifications, etc. */ +function ReduceDamage(out int Damage, pawn injured, Controller instigatedBy, vector HitLocation, out vector Momentum, class DamageType, Actor DamageCauser) +{ + local int OriginalDamage; + + OriginalDamage = Damage; + + if ( injured.PhysicsVolume.bNeutralZone || injured.InGodMode() ) + { + Damage = 0; + return; + } + + if (BaseMutator != None) + { + BaseMutator.NetDamage(OriginalDamage, Damage, Injured, InstigatedBy, HitLocation, Momentum, DamageType, DamageCauser); + } +} + +/* CheckRelevance() +returns true if actor is relevant to this game and should not be destroyed. Called in Actor.PreBeginPlay(), intended to allow +mutators to remove or replace actors being spawned +*/ +function bool CheckRelevance(Actor Other) +{ + if ( BaseMutator == None ) + return true; + return BaseMutator.CheckRelevance(Other); +} + +/** + * Return whether an item should respawn. Default implementation allows item respawning in multiplayer games. + */ +function bool ShouldRespawn( PickupFactory Other ) +{ + return ( WorldInfo.NetMode != NM_Standalone ); +} + +/** + * Called when pawn has a chance to pick Item up (i.e. when + * the pawn touches a weapon pickup). Should return true if + * he wants to pick it up, false if he does not want it. + * @param Other the Pawn that wants the item + * @param ItemClass the Inventory class the Pawn can pick up + * @param Pickup the Actor containing that item (this may be a PickupFactory or it may be a DroppedPickup) + * @return whether or not the Pickup actor should give its item to Other + */ +function bool PickupQuery(Pawn Other, class ItemClass, Actor Pickup) +{ + local byte bAllowPickup; + + if (BaseMutator != None && BaseMutator.OverridePickupQuery(Other, ItemClass, Pickup, bAllowPickup)) + { + return bool(bAllowPickup); + } + + if ( Other.InvManager == None ) + { + return false; + } + else + { + return Other.InvManager.HandlePickupQuery(ItemClass, Pickup); + } +} + +/** + * Discard a player's inventory after he dies. + */ +function DiscardInventory( Pawn Other, optional controller Killer ) +{ + if ( Other.InvManager != None ) + Other.InvManager.DiscardInventory(); +} + +/* Try to change a player's name. +*/ +function ChangeName( Controller Other, coerce string S, bool bNameChange ) +{ + if( S == "" ) + { + return; + } + + Other.PlayerReplicationInfo.SetPlayerName(S); +} + +/* Return whether a team change is allowed. +*/ +function bool ChangeTeam(Controller Other, int N, bool bNewTeam) +{ + return true; +} + +/* Return a picked team number if none was specified +*/ +function byte PickTeam(byte Current, Controller C) +{ + return Current; +} + +/* Send a player to a URL. +*/ +function SendPlayer( PlayerController aPlayer, string URL ) +{ + aPlayer.ClientTravel( URL, TRAVEL_Relative ); +} + +/** @return the map we should travel to for the next game */ +function string GetNextMap(); + +/** + * Returns true if we want to travel_absolute + */ +function bool GetTravelType() +{ + return false; +} + +/* Restart the game. +*/ +function RestartGame() +{ + local string NextMap; + local string TransitionMapCmdLine; + local string URLString; + local int URLMapLen; + local int MapNameLen; + + // If we are using arbitration and haven't done the end game handshaking, + // do that process first and then come back here afterward + if (bUsingArbitration) + { + if (bIsEndGameHandshakeComplete) + { + // All arbitrated matches must exit after one match + NotifyArbitratedMatchEnd(); + } + return; + } + + if (BaseMutator != None && BaseMutator.HandleRestartGame()) + { + return; + } + + if (bGameRestarted) + { + return; + } + bGameRestarted = true; + + // these server travels should all be relative to the current URL + if ( bChangeLevels && !bAlreadyChanged ) + { + // get the next map and start the transition + bAlreadyChanged = true; + + if ( (MyAutoTestManager != None) && MyAutoTestManager.bUsingAutomatedTestingMapList) + { + NextMap = MyAutoTestManager.GetNextAutomatedTestingMap(); + } + else + { + NextMap = GetNextMap(); + } + + if (NextMap != "") + { + if ( (MyAutoTestManager == None) || !MyAutoTestManager.bUsingAutomatedTestingMapList ) + { + WorldInfo.ServerTravel(NextMap,GetTravelType()); + } + else + { + if ( !MyAutoTestManager.bAutomatedTestingWithOpen ) + { + URLString = WorldInfo.GetLocalURL(); + URLMapLen = Len(URLString); + + MapNameLen = InStr(URLString, "?"); + if (MapNameLen != -1) + { + URLString = Right(URLString, URLMapLen - MapNameLen); + } + + // The ENTIRE url needs to be recreated here... + TransitionMapCmdLine = NextMap$URLString$"?AutomatedTestingMapIndex="$MyAutoTestManager.AutomatedTestingMapIndex; + `log(">>> Issuing server travel on " $ TransitionMapCmdLine); + WorldInfo.ServerTravel(TransitionMapCmdLine,GetTravelType()); + } + else + { + TransitionMapCmdLine = "?AutomatedTestingMapIndex="$MyAutoTestManager.AutomatedTestingMapIndex$"?NumberOfMatchesPlayed="$MyAutoTestManager.NumberOfMatchesPlayed$"?NumMapListCyclesDone="$MyAutoTestManager.NumMapListCyclesDone; + `log(">>> Issuing open command on " $ NextMap $ TransitionMapCmdLine); + ConsoleCommand( "open " $ NextMap $ TransitionMapCmdLine); + } + } + return; + } + } + + WorldInfo.ServerTravel("?Restart",GetTravelType()); +} + +//========================================================================== +// Message broadcasting functions (handled by the BroadCastHandler) + +event Broadcast( Actor Sender, coerce string Msg, optional name Type ) +{ + BroadcastHandler.Broadcast(Sender,Msg,Type); +} + +function BroadcastTeam( Controller Sender, coerce string Msg, optional name Type ) +{ + BroadcastHandler.BroadcastTeam(Sender,Msg,Type); +} + +/* + Broadcast a localized message to all players. + Most message deal with 0 to 2 related PRIs. + The LocalMessage class defines how the PRI's and optional actor are used. +*/ +event BroadcastLocalized( actor Sender, class Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) +{ + BroadcastHandler.AllowBroadcastLocalized(Sender,Message,Switch,RelatedPRI_1,RelatedPRI_2,OptionalObject); +} + +/* + Broadcast a localized message to all players on a team. + Most message deal with 0 to 2 related PRIs. + The LocalMessage class defines how the PRI's and optional actor are used. +*/ +event BroadcastLocalizedTeam( int TeamIndex, actor Sender, class Message, optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) +{ + BroadcastHandler.AllowBroadcastLocalizedTeam(TeamIndex, Sender,Message,Switch,RelatedPRI_1,RelatedPRI_2,OptionalObject); +} + +//========================================================================== +function bool CheckModifiedEndGame(PlayerReplicationInfo Winner, string Reason) +{ + return (BaseMutator != None && !BaseMutator.CheckEndGame(Winner, Reason)); +} + +function bool CheckEndGame(PlayerReplicationInfo Winner, string Reason) +{ + local Controller P; + + if ( CheckModifiedEndGame(Winner, Reason) ) + return false; + + // all player cameras focus on winner or final scene (picked by mutator) + foreach WorldInfo.AllControllers(class'Controller', P) + { + P.GameHasEnded(); + } + return true; +} + +/** + * Tells all clients to write stats and then handles writing local stats + */ +function WriteOnlineStats() +{ + local PlayerController PC; + local OnlineGameSettings CurrentSettings; + + if (GameInterface != None) + { + // Make sure that we are recording stats + CurrentSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + if (CurrentSettings != None && CurrentSettings.bUsesStats) + { + // Iterate through the controllers telling them to write stats + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (PC.IsLocalPlayerController() == false) + { + PC.ClientWriteLeaderboardStats(OnlineStatsWriteClass); + } + } + // Iterate through local controllers telling them to write stats + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (PC.IsLocalPlayerController()) + { + PC.ClientWriteLeaderboardStats(OnlineStatsWriteClass); + } + } + } + } +} + +/** + * If the match is arbitrated, tells all clients to write out their copies + * of the player scores. If not arbitrated, it only has the first local player + * write the scores. + */ +function WriteOnlinePlayerScores() +{ + local PlayerController PC; + + if (bUsingArbitration) + { + // Iterate through the controllers telling them to write stats + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + PC.ClientWriteOnlinePlayerScores(ArbitratedLeaderboardId); + } + } + else + { + // Find the first local player and have them write the data + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (PC.IsLocalPlayerController()) + { + PC.ClientWriteOnlinePlayerScores(LeaderboardId); + break; + } + } + } +} + +/* End of game. +*/ +function EndGame( PlayerReplicationInfo Winner, string Reason ) +{ + // don't end game if not really ready + if ( !CheckEndGame(Winner, Reason) ) + { + bOverTime = true; + return; + } + + // Allow replication to happen before reporting scores, stats, etc. + SetTimer( 1.5,false,nameof(PerformEndGameHandling) ); + + bGameEnded = true; + EndLogging(Reason); +} + +/** Does end of game handling for the online layer */ +function PerformEndGameHandling() +{ + if (GameInterface != None) + { + // Write out any online stats + WriteOnlineStats(); + // Write the player data used in determining skill ratings + WriteOnlinePlayerScores(); + // Force the stats to flush and change the status of the match + // to ended making join in progress an option again + EndOnlineGame(); + // Notify clients that the session has ended for arbitrated + if (bUsingArbitration) + { + PendingArbitrationPCs.Length = 0; + ArbitrationPCs.Length = 0; + // Do end of session handling + NotifyArbitratedMatchEnd(); + } + } +} + +/** + * Tells the online system to end the game and tells all clients to do the same + */ +function EndOnlineGame() +{ + local PlayerController PC; + + GameReplicationInfo.EndGame(); + if (GameInterface != None) + { + // Have clients end their games + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + // Skip notifying local PCs as they are handled automatically + if (!PC.IsLocalPlayerController()) + { + PC.ClientEndOnlineGame(); + } + } + // Server is handled here + GameInterface.EndOnlineGame(PlayerReplicationInfoClass.default.SessionName); + } +} + +/** Entry point of the stats code for custom game logging at a regular interval */ +function GameEventsPoll(); +function EndLogging(string Reason); // Stub function + +/** returns whether the given Controller StartSpot property should be used as the spawn location for its Pawn */ +function bool ShouldSpawnAtStartSpot(Controller Player) +{ + return ( WorldInfo.NetMode == NM_Standalone && Player != None && Player.StartSpot != None && + (bWaitingToStartMatch || (Player.PlayerReplicationInfo != None && Player.PlayerReplicationInfo.bWaitingPlayer)) ); +} + +/** FindPlayerStart() +* Return the 'best' player start for this player to start from. PlayerStarts are rated by RatePlayerStart(). +* @param Player is the controller for whom we are choosing a playerstart +* @param InTeam specifies the Player's team (if the player hasn't joined a team yet) +* @param IncomingName specifies the tag of a teleporter to use as the Playerstart +* @returns NavigationPoint chosen as player start (usually a PlayerStart) + */ +function NavigationPoint FindPlayerStart( Controller Player, optional byte InTeam, optional string IncomingName ) +{ + local NavigationPoint N, BestStart; + local Teleporter Tel; + + // allow GameRulesModifiers to override playerstart selection + if (BaseMutator != None) + { + N = BaseMutator.FindPlayerStart(Player, InTeam, IncomingName); + if (N != None) + { + return N; + } + } + + // if incoming start is specified, then just use it + if( incomingName!="" ) + { + ForEach WorldInfo.AllNavigationPoints( class 'Teleporter', Tel ) + if( string(Tel.Tag)~=incomingName ) + return Tel; + } + + // always pick StartSpot at start of match + if ( ShouldSpawnAtStartSpot(Player) && + (PlayerStart(Player.StartSpot) == None || RatePlayerStart(PlayerStart(Player.StartSpot), InTeam, Player) >= 0.0) ) + { + return Player.StartSpot; + } + + BestStart = ChoosePlayerStart(Player, InTeam); + + if ( (BestStart == None) && (Player == None) ) + { + // no playerstart found, so pick any NavigationPoint to keep player from failing to enter game + `log("Warning - PATHS NOT DEFINED or NO PLAYERSTART with positive rating"); + ForEach AllActors( class 'NavigationPoint', N ) + { + BestStart = N; + break; + } + } + return BestStart; +} + +/** ChoosePlayerStart() +* Return the 'best' player start for this player to start from. PlayerStarts are rated by RatePlayerStart(). +* @param Player is the controller for whom we are choosing a playerstart +* @param InTeam specifies the Player's team (if the player hasn't joined a team yet) +* @returns NavigationPoint chosen as player start (usually a PlayerStart) + */ +function PlayerStart ChoosePlayerStart( Controller Player, optional byte InTeam ) +{ + local PlayerStart P, BestStart; + local float BestRating, NewRating; + local byte Team; + + // use InTeam if player doesn't have a team yet + Team = ( (Player != None) && (Player.PlayerReplicationInfo != None) && (Player.PlayerReplicationInfo.Team != None) ) + ? byte(Player.PlayerReplicationInfo.Team.TeamIndex) + : InTeam; + + // Find best playerstart + foreach WorldInfo.AllNavigationPoints(class'PlayerStart', P) + { + NewRating = RatePlayerStart(P,Team,Player); + if ( NewRating > BestRating ) + { + BestRating = NewRating; + BestStart = P; + } + } + return BestStart; +} + +/** RatePlayerStart() +* Return a score representing how desireable a playerstart is. +* @param P is the playerstart being rated +* @param Team is the team of the player choosing the playerstart +* @param Player is the controller choosing the playerstart +* @returns playerstart score +*/ +function float RatePlayerStart(PlayerStart P, byte Team, Controller Player) +{ + local float Rating; + if ( !P.bEnabled ) + { + return 5.f; + } + else + { + Rating = 10.f; + if (P.bPrimaryStart) + { + Rating += 10.f; + } + if (P.TeamIndex == Team) + { + Rating += 15.f; + } + return Rating; + } +} + +function AddObjectiveScore(PlayerReplicationInfo Scorer, Int Score) +{ + if ( Scorer != None ) + { + Scorer.Score += Score; + } + if (BaseMutator != None) + { + BaseMutator.ScoreObjective(Scorer, Score); + } +} + +function ScoreObjective(PlayerReplicationInfo Scorer, Int Score) +{ + AddObjectiveScore(Scorer, Score); + CheckScore(Scorer); +} + +/* CheckScore() +see if this score means the game ends +*/ +function bool CheckScore(PlayerReplicationInfo Scorer) +{ + return true; +} + +function ScoreKill(Controller Killer, Controller Other) +{ + if( (killer == Other) || (killer == None) ) + { + if ( (Other!=None) && (Other.PlayerReplicationInfo != None) ) + { + Other.PlayerReplicationInfo.Score -= 1; + Other.PlayerReplicationInfo.bForceNetUpdate = TRUE; + } + } + else if ( killer.PlayerReplicationInfo != None ) + { + Killer.PlayerReplicationInfo.Score += 1; + Killer.PlayerReplicationInfo.bForceNetUpdate = TRUE; + Killer.PlayerReplicationInfo.Kills++; + } + + ModifyScoreKill(Killer, Other); + + if (Killer != None || MaxLives > 0) + { + CheckScore(Killer.PlayerReplicationInfo); + } +} + +/** + * For subclasses which don't call GameInfo.ScoreKill() + */ +function ModifyScoreKill(Controller Killer, Controller Other) +{ + if (BaseMutator != None) + { + BaseMutator.ScoreKill(Killer, Other); + } +} + +function DriverEnteredVehicle(Vehicle V, Pawn P) +{ + if ( BaseMutator != None ) + BaseMutator.DriverEnteredVehicle(V, P); +} + +function bool CanLeaveVehicle(Vehicle V, Pawn P) +{ + if ( BaseMutator == None ) + return true; + return BaseMutator.CanLeaveVehicle(V, P); +} + +function DriverLeftVehicle(Vehicle V, Pawn P) +{ + if ( BaseMutator != None ) + BaseMutator.DriverLeftVehicle(V, P); +} + +function bool PlayerCanRestartGame( PlayerController aPlayer ) +{ + return true; +} + +// Player Can be restarted ? +function bool PlayerCanRestart( PlayerController aPlayer ) +{ + return true; +} + +// Returns whether a mutator should be allowed with this gametype +static function bool AllowMutator( string MutatorClassName ) +{ + return !class'WorldInfo'.static.IsDemoBuild(); +} + + +function bool AllowCheats(PlayerController P) +{ + return ( WorldInfo.NetMode == NM_Standalone ); +} + +/** + * @return TRUE if the player is allowed to pause the game. + */ +function bool AllowPausing( optional PlayerController PC ) +{ + return bPauseable + || WorldInfo.NetMode == NM_Standalone + || (bAdminCanPause && AccessControl.IsAdmin(PC)); +} + +/** + * Called from C++'s CommitMapChange before unloading previous level + * @param PreviousMapName Name of the previous persistent level + * @param NextMapName Name of the persistent level being streamed to + */ +event PreCommitMapChange(string PreviousMapName, string NextMapName); + +/** + * Called from C++'s CommitMapChange after unloading previous level and loading new level+sublevels + */ +event PostCommitMapChange(); + +/** AddInactivePRI() +* Add PRI to the inactive list, remove from the active list +*/ +function AddInactivePRI(PlayerReplicationInfo PRI, PlayerController PC) +{ + local int i; + local PlayerReplicationInfo NewPRI, CurrentPRI; + local bool bIsConsole; + + // don't store if it's an old PRI from the previous level or if it's a spectator + if (!PRI.bFromPreviousLevel && !PRI.bOnlySpectator) + { + NewPRI = PRI.Duplicate(); + WorldInfo.GRI.RemovePRI(NewPRI); + + // make PRI inactive + NewPRI.RemoteRole = ROLE_None; + + // delete after 5 minutes + NewPRI.LifeSpan = 300; + + // On console, we have to check the unique net id as network address isn't valid + bIsConsole = WorldInfo.IsConsoleBuild(); + + // make sure no duplicates + for (i=0; i 16 ) + { + InactivePRIArray.Remove(0, InactivePRIArray.Length - 16); + } + } + + PRI.Destroy(); + // Readjust the skill rating now that this player has left + RecalculateSkillRating(); +} + +/** FindInactivePRI() +* returns the PRI associated with this re-entering player +*/ +function bool FindInactivePRI(PlayerController PC) +{ + local string NewNetworkAddress, NewName; + local int i; + local PlayerReplicationInfo OldPRI, CurrentPRI; + local bool bIsConsole; + + // don't bother for spectators + if (PC.PlayerReplicationInfo.bOnlySpectator) + { + return false; + } + + // On console, we have to check the unique net id as network address isn't valid + bIsConsole = WorldInfo.IsConsoleBuild(); + + NewNetworkAddress = PC.PlayerReplicationInfo.SavedNetworkAddress; + NewName = PC.PlayerReplicationInfo.PlayerName; + for (i=0; i entry, false if we are going from entry -> new level + * @param ActorList (out) list of actors to maintain + */ +event GetSeamlessTravelActorList(bool bToEntry, out array ActorList) +{ + local int i; + + // always keep PlayerReplicationInfos and TeamInfos, so that after we restart we can keep players on the same team, etc + for (i = 0; i < WorldInfo.GRI.PRIArray.Length; i++) + { + WorldInfo.GRI.PRIArray[i].bFromPreviousLevel = true; + WorldInfo.GRI.PRIArray[i].bForceNetUpdate = true; + ActorList[ActorList.length] = WorldInfo.GRI.PRIArray[i]; + } + + if (bToEntry) + { + // keep general game state until we transition to the final destination + ActorList[ActorList.length] = WorldInfo.GRI; + if (BroadcastHandler != None) + { + ActorList[ActorList.length] = BroadcastHandler; + } + } + + if (BaseMutator != None) + { + BaseMutator.GetSeamlessTravelActorList(bToEntry, ActorList); + } + + if (MyAutoTestManager != None) + { + ActorList[ActorList.length] = MyAutoTestManager; + } + + // Keep the AccessControl persistent, as it needs to >always< be ready for handling auth callbacks + if (AccessControl != none) + { + ActorList[ActorList.Length] = AccessControl; + } +} + +/** used to swap a viewport/connection's PlayerControllers when seamless travelling and the new gametype's + * controller class is different than the previous + * includes network handling + * @param OldPC - the old PC that should be discarded + * @param NewPC - the new PC that should be used for the player + */ +native final function SwapPlayerControllers(PlayerController OldPC, PlayerController NewPC); + +/** called after a seamless level transition has been completed on the *new* GameInfo + * used to reinitialize players already in the game as they won't have *Login() called on them + */ +event PostSeamlessTravel() +{ + local Controller C; + + // handle players that are already loaded + foreach WorldInfo.AllControllers(class'Controller', C) + { + if (C.bIsPlayer) + { + if (PlayerController(C) == None) + { + HandleSeamlessTravelPlayer(C); + } + else + { + if (!C.PlayerReplicationInfo.bOnlySpectator) + { + NumTravellingPlayers++; + } + if (PlayerController(C).HasClientLoadedCurrentWorld()) + { + HandleSeamlessTravelPlayer(C); + } + } + } + } + + if (bWaitingToStartMatch && !bDelayedStart && NumPlayers + NumBots > 0) + { + StartMatch(); + } + if (WorldInfo.NetMode == NM_DedicatedServer) + { + // Update any online advertised settings + UpdateGameSettings(); + } +} + +/** + * Used to update any changes in game settings that need to be published to + * players that are searching for games + */ +function UpdateGameSettings(); + +/** handles reinitializing players that remained through a seamless level transition + * called from C++ for players that finished loading after the server + * @param C the Controller to handle + */ +event HandleSeamlessTravelPlayer(out Controller C) +{ + local rotator StartRotation; + local NavigationPoint StartSpot; + local PlayerController PC, NewPC; + local PlayerReplicationInfo OldPRI; + + `log(">> GameInfo::HandleSeamlessTravelPlayer:" @ C,,'SeamlessTravel'); + + PC = PlayerController(C); + if (PC != None && PC.Class != PlayerControllerClass) + { + if (PC.Player != None) + { + // we need to spawn a new PlayerController to replace the old one + NewPC = SpawnPlayerController(PC.Location, PC.Rotation); + if (NewPC == None) + { + `Warn("Failed to spawn new PlayerController for" @ PC.GetHumanReadableName() @ "(old class" @ PC.Class $ ")"); + PC.Destroy(); + return; + } + else + { + PC.CleanUpAudioComponents(); + PC.SeamlessTravelTo(NewPC); + NewPC.SeamlessTravelFrom(PC); + SwapPlayerControllers(PC, NewPC); + PC = NewPC; + C = NewPC; + } + } + else + { + PC.Destroy(); + } + } + else + { + // clear out data that was only for the previous game + C.PlayerReplicationInfo.Reset(); + // create a new PRI and copy over info; this is necessary because the old gametype may have used a different PRI class + OldPRI = C.PlayerReplicationInfo; + C.InitPlayerReplicationInfo(); + OldPRI.SeamlessTravelTo(C.PlayerReplicationInfo); + // we don't need the old PRI anymore + //@fixme: need a way to replace PRIs that doesn't cause incorrect "player left the game"/"player entered the game" messages + OldPRI.Destroy(); + } + + // get rid of team if this is not a team game + if (!bTeamGame && C.PlayerReplicationInfo.Team != None) + { + C.PlayerReplicationInfo.Team.Destroy(); + C.PlayerReplicationInfo.Team = None; + } + + // Find a start spot. + StartSpot = FindPlayerStart(C, C.GetTeamNum()); + + if (StartSpot == None) + { + `warn(GameMessageClass.Default.FailedPlaceMessage); + } + else + { + StartRotation.Yaw = StartSpot.Rotation.Yaw; + C.SetLocation(StartSpot.Location); + C.SetRotation(StartRotation); + } + + C.StartSpot = StartSpot; + + if (PC != None) + { + PC.CleanUpAudioComponents(); + + // tell the player controller to register its data stores again + PC.ClientInitializeDataStores(); + + SetSeamlessTravelViewTarget(PC); + if (PC.PlayerReplicationInfo.bOnlySpectator) + { + PC.GotoState('Spectating'); + PC.PlayerReplicationInfo.bIsSpectator = true; + PC.PlayerReplicationInfo.bOutOfLives = true; + NumSpectators++; + } + else + { + NumPlayers++; + NumTravellingPlayers--; + PC.GotoState('PlayerWaiting'); + } + + + } + else + { + NumBots++; + C.GotoState('RoundEnded'); + } + + GenericPlayerInitialization(C); + + `log("<< GameInfo::HandleSeamlessTravelPlayer:" @ C,,'SeamlessTravel'); +} + +function SetSeamlessTravelViewTarget(PlayerController PC) +{ + PC.SetViewTarget(PC); +} + +/** + * Updates the online subsystem's information for player counts so that + * LAN matches can show the correct player counts + */ +function UpdateGameSettingsCounts() +{ + local OnlineGameSettings GameSettings; + + if (GameInterface != None) + { + GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + if (GameSettings != None && GameSettings.bIsLanMatch) + { + // Update the number of open slots available + GameSettings.NumOpenPublicConnections = GameSettings.NumPublicConnections - GetNumPlayers(); + if (GameSettings.NumOpenPublicConnections < 0) + { + GameSettings.NumOpenPublicConnections = 0; + } + } + } +} + +/** + * This is a base (empty) implementation of the completion notification + * + * @param PC the player controller to mark as done + * @param bWasSuccessful whether the PC was able to register for arbitration or not + */ +function ProcessClientRegistrationCompletion(PlayerController PC,bool bWasSuccessful); + +/** + * Empty implementation of the code that kicks off async registration + */ +function StartArbitrationRegistration(); + +/** + * Empty implementation of the code that starts an arbitrated match + */ +function StartArbitratedMatch(); + +/** + * Empty implementation of the code that registers the server for arbitration + */ +function RegisterServerForArbitration(); + +/** + * Empty implementation of the code that handles the callback for completion + * + * @param SessionName the name of the session this is for + * @param bWasSuccessful whether the call worked or not + */ +function ArbitrationRegistrationComplete(name SessionName,bool bWasSuccessful); + +function bool MatchIsInProgress() +{ + return true; +} + +/** + * This state is used to change the flow of start/end match to handle arbitration + * + * Basic flow of events: + * Server prepares to start the match and tells all clients to register arbitration + * Clients register with arbitration and tell the server when they are done + * Server checks for all clients to be registered and kicks any clients if + * they don't register in time. + * Server registers with arbitration and the match begins + * + * Match ends and the server tells connected clients to write arbitrated stats + * Clients write stats and notifies server of completion + * Server writes stats and ends the match + */ +auto State PendingMatch +{ + function bool MatchIsInProgress() + { + return false; + } + + /** + * Tells all of the currently connected clients to register with arbitration. + * The clients will call back to the server once they have done so, which + * will tell this state to see if it is time for the server to register with + * arbitration. + */ + function StartMatch() + { + if (bUsingArbitration) + { + StartArbitrationRegistration(); + } + else + { + Global.StartMatch(); + } + } + + /** + * Kicks off the async tasks of having the clients register with + * arbitration before the server does. Sets a timeout for when + * all slow to respond clients get kicked + */ + function StartArbitrationRegistration() + { + local PlayerController PC; + local UniqueNetId HostId; + local OnlineGameSettings GameSettings; + + if (!bHasArbitratedHandshakeBegun) + { + // Tell PreLogin() to reject new connections + bHasArbitratedHandshakeBegun = true; + + // Get the host id from the game settings in case splitscreen works with arbitration + GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + HostId = GameSettings.OwningPlayerId; + + PendingArbitrationPCs.Length = 0; + // Iterate the controller list and tell them to register with arbitration + foreach WorldInfo.AllControllers(class'PlayerController', PC) + { + // Skip notifying local PCs as they are handled automatically + if (!PC.IsLocalPlayerController()) + { + PC.ClientSetHostUniqueId(HostId); + PC.ClientRegisterForArbitration(); + // Add to the pending list + PendingArbitrationPCs[PendingArbitrationPCs.Length] = PC; + } + else + { + // Add them as having completed arbitration + ArbitrationPCs[ArbitrationPCs.Length] = PC; + } + } + // Start the kick timer + SetTimer( ArbitrationHandshakeTimeout,false,nameof(ArbitrationTimeout) ); + } + } + + /** + * Does the registration for the server. This must be done last as it + * includes all the players info from their registration + */ + function RegisterServerForArbitration() + { + if (GameInterface != None) + { + GameInterface.AddArbitrationRegistrationCompleteDelegate(ArbitrationRegistrationComplete); + GameInterface.RegisterForArbitration(PlayerReplicationInfoClass.default.SessionName); + } + else + { + // Fake as working without subsystem + ArbitrationRegistrationComplete(PlayerReplicationInfoClass.default.SessionName,true); + } + } + + /** + * Callback from the server that starts the match if the registration was + * successful. If not, it goes back to the menu + * + * @param SessionName the name of the session this is for + * @param bWasSuccessful whether the registration worked or not + */ + function ArbitrationRegistrationComplete(name SessionName,bool bWasSuccessful) + { + // Clear the delegate so we don't leak with GC + GameInterface.ClearArbitrationRegistrationCompleteDelegate(ArbitrationRegistrationComplete); + if (bWasSuccessful) + { + // Start the match + StartArbitratedMatch(); + } + else + { + ConsoleCommand("Disconnect"); + } + } + + /** + * Handles kicking any clients that haven't completed handshaking + */ + function ArbitrationTimeout() + { + local int Index; + + // Kick any pending players + for (Index = 0; Index < PendingArbitrationPCs.Length; Index++) + { + AccessControl.KickPlayer(PendingArbitrationPCs[Index],GameMessageClass.Default.MaxedOutMessage); + } + PendingArbitrationPCs.Length = 0; + // Do the server registration now that any remaining clients are kicked + RegisterServerForArbitration(); + } + + /** + * Called once arbitration has completed and kicks off the real start of the match + */ + function StartArbitratedMatch() + { + bNeedsEndGameHandshake = true; + // Start the match + Global.StartMatch(); + } + + /** + * Removes the player controller from the pending list. Kicks that PC if it + * failed to register for arbitration. Starts the match if all clients have + * completed their registration + * + * @param PC the player controller to mark as done + * @param bWasSuccessful whether the PC was able to register for arbitration or not + */ + function ProcessClientRegistrationCompletion(PlayerController PC,bool bWasSuccessful) + { + local int FoundIndex; + + // Search for the specified PC and remove if found + FoundIndex = PendingArbitrationPCs.Find(PC); + if (FoundIndex != INDEX_NONE) + { + PendingArbitrationPCs.Remove(FoundIndex,1); + if (bWasSuccessful) + { + // Add to the completed list + ArbitrationPCs[ArbitrationPCs.Length] = PC; + } + else + { + AccessControl.KickPlayer(PC,GameMessageClass.Default.MaxedOutMessage); + } + } + // Start the match if all clients have responded + if (PendingArbitrationPCs.Length == 0) + { + // Clear the kick timer + SetTimer( 0,false,nameof(ArbitrationTimeout) ); + RegisterServerForArbitration(); + } + } + + event EndState(name NextStateName) + { + // Clear the kick timer + SetTimer( 0,false,nameof(ArbitrationTimeout) ); + + if( GameInterface != None ) + { + GameInterface.ClearArbitrationRegistrationCompleteDelegate(ArbitrationRegistrationComplete); + } + } +} + +/** + * Tells all clients to disconnect and then goes to the menu + */ +function NotifyArbitratedMatchEnd() +{ + local PlayerController PC; + + // Iterate through the controllers telling them to disconnect + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (PC.IsLocalPlayerController() == false) + { + PC.ClientArbitratedMatchEnded(); + } + } + // Iterate through local controllers telling them to disconnect + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (PC.IsLocalPlayerController()) + { + PC.ClientArbitratedMatchEnded(); + } + } +} + +/** + * Used to notify the game type that it is ok to update a player's gameplay + * specific muting information now. The playercontroller needs to notify + * the server when it is possible to do so or the unique net id will be + * incorrect and the muting not work. + * + * @param PC the playercontroller that is ready for updates + */ +function UpdateGameplayMuteList(PlayerController PC) +{ + // Let the server start sending voice packets + PC.bHasVoiceHandshakeCompleted = true; + // And tell the client it can start sending voice packets + PC.ClientVoiceHandshakeComplete(); +} + +/** + * Used by the game type to update the advertised skill for this game + */ +function RecalculateSkillRating() +{ + local int Index; + local array Players; + local UniqueNetId ZeroId; + + if (WorldInfo.NetMode != NM_Standalone && + OnlineSub != None && + OnlineSub.GameInterface != None) + { + // Iterate through the players adding their unique id for skill calculation + for (Index = 0; Index < GameReplicationInfo.PRIArray.Length; Index++) + { + if (ZeroId != GameReplicationInfo.PRIArray[Index].UniqueId) + { + Players[Players.Length] = GameReplicationInfo.PRIArray[Index].UniqueId; + } + } + if (Players.Length > 0) + { + // Update the skill rating with the list of players + OnlineSub.GameInterface.RecalculateSkillRating(PlayerReplicationInfoClass.default.SessionName,Players); + } + }; +} + +/** Called when this PC is in cinematic mode, and its matinee is cancelled by the user. */ +event MatineeCancelled(); + + +/** + * Checks for the login parameters being passed on the command line. If + * present, it does an async login before starting the dedicated server + * registration process + * + * @return true if the login is in progress, false otherwise + */ +function bool ProcessServerLogin() +{ + if (OnlineSub != None) + { + if (OnlineSub.PlayerInterface != None) + { + OnlineSub.PlayerInterface.AddLoginChangeDelegate(OnLoginChange); + OnlineSub.PlayerInterface.AddLoginFailedDelegate(0,OnLoginFailed); + // Check the command line for login information and login async + if (OnlineSub.PlayerInterface.AutoLogin() == false) + { + ClearAutoLoginDelegates(); + return false; + } + return true; + } + } + return false; +} + +/** + * Clears the login delegates once the login process has passed or failed + */ +function ClearAutoLoginDelegates() +{ + if (OnlineSub.PlayerInterface != None) + { + OnlineSub.PlayerInterface.ClearLoginChangeDelegate(OnLoginChange); + OnlineSub.PlayerInterface.ClearLoginFailedDelegate(0,OnLoginFailed); + } +} + +/** + * Called if the autologin fails + * + * @param LocalUserNum the controller number of the associated user + * @param ErrorCode the async error code that occurred + */ +function OnLoginFailed(byte LocalUserNum,EOnlineServerConnectionStatus ErrorCode) +{ + ClearAutoLoginDelegates(); +} + +/** + * Used to tell the game when the autologin has completed + * + * @param LocalUserNum ignored + */ +function OnLoginChange(byte LocalUserNum) +{ + ClearAutoLoginDelegates(); + // The login has completed so start the dedicated server + RegisterServer(); +} + +/** + * Registers the dedicated server with the online service + */ +function RegisterServer() +{ + local OnlineGameSettings GameSettings; + + if (OnlineGameSettingsClass != None && OnlineSub != None && OnlineSub.GameInterface != None) + { + // Create the default settings to get the standard settings to advertise + GameSettings = new OnlineGameSettingsClass; + // Serialize any custom settings from the URL + GameSettings.UpdateFromURL(ServerOptions, self); + + // If 'bIsLanMatch' is set, disable all authentication + if (AccessControl != None && + (WorldInfo.NetMode == NM_DedicatedServer || WorldInfo.NetMode == NM_ListenServer) && GameSettings.bIsLanMatch) + { + `log("Disabling all authentication, due to bIsLanMatch being set to true"); + AccessControl.ClearAuthDelegates(false); + } + + // Register the delegate so we can see when it's done + OnlineSub.GameInterface.AddCreateOnlineGameCompleteDelegate(OnServerCreateComplete); + // Now kick off the async publish + if ( !OnlineSub.GameInterface.CreateOnlineGame(0,PlayerReplicationInfoClass.default.SessionName,GameSettings) ) + { + OnlineSub.GameInterface.ClearCreateOnlineGameCompleteDelegate(OnServerCreateComplete); + } + } + else + { + `Warn("No game settings to register with the online service. Game won't be advertised"); + } +} + +/** + * Notifies us of the game being registered successfully or not + * + * @param SessionName the name of the session that was created + * @param bWasSuccessful flag telling us whether it worked or not + */ +function OnServerCreateComplete(name SessionName,bool bWasSuccessful) +{ + local OnlineGameSettings GameSettings; + + GameInterface.ClearCreateOnlineGameCompleteDelegate(OnServerCreateComplete); + if (bWasSuccessful == false) + { + GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + if (GameSettings != None && GameSettings.bIsLanMatch == false) + { + `Warn("Failed to register game with online service. Registering as a LAN match"); + // Force to be a LAN match + GameSettings.bIsLanMatch = true; + // Register the delegate so we can see when it's done + GameInterface.AddCreateOnlineGameCompleteDelegate(OnServerCreateComplete); + // Now kick off the async publish + if (!GameInterface.CreateOnlineGame(0,SessionName,GameSettings)) + { + GameInterface.ClearCreateOnlineGameCompleteDelegate(OnServerCreateComplete); + } + } + else + { + `Warn("Failed to register game with online service. Game won't be advertised"); + } + } + else + { + // If a game server is started without Steam running, auth code needs late initialization + // (as the auth interface is only setup within CreateOnlineGame when Steam was not started) + if (OnlineSub.Class.Name == 'OnlineSubsystemSteamworks' && AccessControl != none && AccessControl.CachedAuthInt == none) + { + AccessControl.InitAuthHooks(); + + // This delegate was not set until after the auth interface became ready, so kick it off here + AccessControl.OnAuthReady(); + } + + UpdateGameSettings(); + } +} + +/** + * Iterates the player controllers and tells them to return to their party + */ +function TellClientsToReturnToPartyHost() +{ + local PlayerController PC; + local OnlineGameSettings GameSettings; + local UniqueNetId RequestingPlayerId; + + OnlineSub = class'GameEngine'.static.GetOnlineSubsystem(); + if (OnlineSub != None) + { + // And grab one for the game interface since it will be used often + GameInterface = OnlineSub.GameInterface; + if (GameInterface != None) + { + // Use the game session owner as the host requesting travel + GameSettings = GameInterface.GetGameSettings(PlayerReplicationInfoClass.default.SessionName); + if (GameSettings != None) + { + RequestingPlayerId = GameSettings.OwningPlayerId; + } + else + { + // If no valid game session then use local player's net id as the host requesting the travel + foreach LocalPlayerControllers(class'PlayerController',PC) + { + if (PC.IsPrimaryPlayer() && + PC.PlayerReplicationInfo != None) + { + RequestingPlayerId = PC.PlayerReplicationInfo.UniqueId; + break; + } + } + } + // Tell all clients to return using the net id of the host + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if (!PC.IsLocalPlayerController() && + PC.IsPrimaryPlayer()) + { + PC.ClientReturnToParty(RequestingPlayerId); + } + } + // Host travels last as this can trigger a disconnect on clients + foreach LocalPlayerControllers(class'PlayerController',PC) + { + if (PC.IsPrimaryPlayer()) + { + PC.ClientReturnToParty(RequestingPlayerId); + break; + } + } + } + } +} + +/** + * Send notification to clients that a party host is about to leave the match + * + * @param PartyHostPlayerId net id of the party host that is leaving + */ +function TellClientsPartyHostIsLeaving(UniqueNetId PartyHostPlayerId) +{ + local PlayerController PC; + + // Tell all clients to return using the net id of the host + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if ( PC.IsPrimaryPlayer() ) + { + PC.ClientNotifyPartyHostLeaving(PartyHostPlayerId); + } + } +} + + +/** + * Iterates the player controllers and tells remote players to travel to the specified session + * + * @param SessionName the name of the session to register + * @param SearchClass the search that should be populated with the session + * @param PlatformSpecificInfo the binary data to place in the platform specific areas + */ +function TellClientsToTravelToSession(name SessionName,class SearchClass,byte PlatformSpecificInfo[80]) +{ + local PlayerController PC; + + foreach WorldInfo.AllControllers(class'PlayerController',PC) + { + if ( !PC.IsLocalPlayerController() && PC.IsPrimaryPlayer() ) + { + PC.ClientTravelToSession(SessionName,SearchClass,PlatformSpecificInfo); + } + } +} + +//================================================================= +/** + * AutoTestManager INTERFACE + */ + +/** function to start the world traveling **/ +exec function DoTravelTheWorld() +{ + if ( MyAutoTestManager != None ) + { + GotoState('TravelTheWorld'); + MyAutoTestManager.DoTravelTheWorld(); + } +} + +/** Alters the synthetic bandwidth limit for a running game **/ +exec native function SetBandwidthLimit( float AsyncIOBandwidthLimit ); + +/** This our state which allows us to have delayed actions while traveling the world (e.g. waiting for levels to stream in) **/ +state TravelTheWorld +{ +} + +/** + * @returns true if Automated Performance testing is enabled + */ +function bool IsAutomatedPerfTesting() +{ + return (MyAutoTestManager != None) && MyAutoTestManager.bAutomatedPerfTesting; +} + +/** + * @returns true if checking for fragmentation is enabled + */ +function bool IsCheckingForFragmentation() +{ + return (MyAutoTestManager != None) && MyAutoTestManager.bCheckingForFragmentation; +} + +/** + * @returns true if checking for memory leaks is enabled + */ +function bool IsCheckingForMemLeaks() +{ + return (MyAutoTestManager != None) && MyAutoTestManager.bCheckingForMemLeaks; +} + +/** + * @returns true if doing a sentinel run + */ +function bool IsDoingASentinelRun() +{ + return (MyAutoTestManager != None) && MyAutoTestManager.bDoingASentinelRun; +} + +/** + * @returns true if should auto-continue to next round + */ +function bool ShouldAutoContinueToNextRound() +{ + return (MyAutoTestManager != None) && MyAutoTestManager.bAutoContinueToNextRound; +} + +/** + * Asks AutoTestManager to start a sentinel run if needed + * Must be called by gameinfo subclass - not called in base implementation of GameInfo.StartMatch() + * @returns true if should skip normal startmatch process + */ +function bool CheckForSentinelRun() +{ + return (MyAutoTestManager != None) && MyAutoTestManager.CheckForSentinelRun(); +} + +/** This is for the QA team who don't use UFE nor commandline :-( **/ +exec simulated function BeginBVT( optional coerce string TagDesc ) +{ + if ( MyAutoTestManager == None ) + { + MyAutoTestManager = spawn(AutoTestManagerClass); + } + + MyAutoTestManager.BeginSentinelRun( "BVT", "", TagDesc ); + MyAutoTestManager.SetTimer( 3.0f, TRUE, nameof(MyAutoTestManager.DoTimeBasedSentinelStatGathering) ); +} + + + +/** + * Turns standby detection on/off + * + * @param bIsEnabled true to turn it on, false to disable it + */ +native function EnableStandbyCheatDetection(bool bIsEnabled); + +/** + * Notifies the game code that a standby cheat was detected + * + * @param StandbyType the type of cheat detected + */ +event StandbyCheatDetected(EStandbyType StandbyType); + + +/** + * Used to create a new online session after the previous one has been destroyed after travelling + * + * @param SessionName The name of the game session (not used with Steamworks) + * @param bWasSuccesful Whether or not the session was succesfully destroyed + */ +function OnDestroyOnlineGameComplete(name SessionName, bool bWasSuccessful) +{ + if (!ProcessServerLogin()) + RegisterServer(); + + GameInterface.ClearDestroyOnlineGameCompleteDelegate(OnDestroyOnlineGameComplete); +} + +/** + * Notifies the game code that the engine has finished loading. This + * function will only be called one time only. + */ +event OnEngineHasLoaded(); + +function InitCrowdPopulationManager() +{ + if( PopulationManagerClass != None ) + { + PopulationManager = Spawn(PopulationManagerClass); + } +} + +/** + * Cleans up any online subsystem delegates that are set + */ +function ClearOnlineDelegates(); + + +defaultproperties +{ + // The game spawns bots/players which can't be done during physics ticking + TickGroup=TG_PreAsyncWork + + GameSpeed=1.0 + bDelayedStart=true + HUDType=class'Engine.HUD' + bWaitingToStartMatch=false + bRestartLevel=True + bPauseable=True + AccessControlClass=class'Engine.AccessControl' + BroadcastHandlerClass=class'Engine.BroadcastHandler' + DeathMessageClass=class'LocalMessage' + PlayerControllerClass=class'Engine.PlayerController' + GameMessageClass=class'GameMessage' + GameReplicationInfoClass=class'GameReplicationInfo' + AutoTestManagerClass=class'Engine.AutoTestManager' + FearCostFalloff=+0.95 + CurrentID=1 + PlayerReplicationInfoClass=Class'Engine.PlayerReplicationInfo' + MaxSpectatorsAllowed=32 + MaxPlayersAllowed=32 + + Components.Remove(Sprite) + + // Defaults for if your game has only one skill leaderboard + LeaderboardId=0xFFFE0000 + ArbitratedLeaderboardId=0xFFFF0000 + +// PopulationManagerClass=class'CrowdPopulationManagerBase' + + StreamingPauseIcon=Material'EngineResources.M_StreamingPause' +} diff --git a/Development/Src/Engine/Classes/GameMessage.uc b/Development/Src/Engine/Classes/GameMessage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GamePadLightbarSubsystem.uc b/Development/Src/Engine/Classes/GamePadLightbarSubsystem.uc new file mode 100644 index 0000000..7204909 --- /dev/null +++ b/Development/Src/Engine/Classes/GamePadLightbarSubsystem.uc @@ -0,0 +1,68 @@ +class GamePadLightbarSubsystem extends Object + native + config(LightBar); + +enum LightBarState { + ELBS_Standby, // 0 + ELBS_Lerping, // 1 + ELBS_Pulsing, // 2 +}; + +struct ColorDefinition { + var init string Id; + var byte R; + var byte G; + var byte B; + structdefaultproperties {} +}; + +struct LerpToInstruction { + var init string Id; + var float Time; + var init string LerpToId; + structdefaultproperties {} +}; + +struct SetAndLerpInstruction extends LerpToInstruction { + var init string LerpFromId; +}; + +struct PulseInstruction extends SetAndLerpInstruction { +}; + +var GamePadLightbarSubsystem.LightBarState CurrentLightBarState; +var LinearColor CurrentColor; +var LinearColor OriginalColor; +var LinearColor TargetColor; +var float LerpTimeRemaining; +var float TotalLerpTime; +var () const config Color DefaultColor; +var () const editinline config array ColorDefinitions; +var () const editinline config array LerpToInstructions; +var () const editinline config array SetAndLerpInstructions; +var const editinline config array PulseInstructions; + +native function SetPadColor(Color NewPadColor); // Export UGamePadLightbarSubsystem::execSetPadColor(FFrame&, void* const) + +native function SetPadColorFromDef(string TheColorId); // Export UGamePadLightbarSubsystem::execSetPadColorFromDef(FFrame&, void* const) + +native function BeginLerp(Color NewLerpColor, float LerpTime); // Export UGamePadLightbarSubsystem::execBeginLerp(FFrame&, void* const) + +native function BeginLerpFromDef(string InstructionId); // Export UGamePadLightbarSubsystem::execBeginLerpFromDef(FFrame&, void* const) + +native function SetPadColorAndLerp(float LerpTime, Color NewPadColor, optional Color NewTargetColor=default.DefaultColor); // Export UGamePadLightbarSubsystem::execSetPadColorAndLerp(FFrame&, void* const) + +native function SetPadColorAndLerpFromDef(string InstructionId); // Export UGamePadLightbarSubsystem::execSetPadColorAndLerpFromDef(FFrame&, void* const) + +native function SetPulsing(float LerpTime, Color Target1, optional Color Target2=default.DefaultColor); // Export UGamePadLightbarSubsystem::execSetPulsing(FFrame&, void* const) + +native function SetPulsingFromDef(string InstructionId); // Export UGamePadLightbarSubsystem::execSetPulsingFromDef(FFrame&, void* const) + +native function ResetState(); // Export UGamePadLightbarSubsystem::execResetState(FFrame&, void* const) + +defaultproperties +{ + CurrentColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + OriginalColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + TargetColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) +} diff --git a/Development/Src/Engine/Classes/GameReplicationInfo.uc b/Development/Src/Engine/Classes/GameReplicationInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameStats.uci b/Development/Src/Engine/Classes/GameStats.uci old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameUISceneClient.uc b/Development/Src/Engine/Classes/GameUISceneClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameViewportClient.uc b/Development/Src/Engine/Classes/GameViewportClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameplayEvents.uc b/Development/Src/Engine/Classes/GameplayEvents.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameplayEventsHandler.uc b/Development/Src/Engine/Classes/GameplayEventsHandler.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameplayEventsReader.uc b/Development/Src/Engine/Classes/GameplayEventsReader.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameplayEventsUploadAnalytics.uc b/Development/Src/Engine/Classes/GameplayEventsUploadAnalytics.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameplayEventsWriter.uc b/Development/Src/Engine/Classes/GameplayEventsWriter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GameplayEventsWriterBase.uc b/Development/Src/Engine/Classes/GameplayEventsWriterBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GeneratedMeshAreaLight.uc b/Development/Src/Engine/Classes/GeneratedMeshAreaLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GenericParamListStatEntry.uc b/Development/Src/Engine/Classes/GenericParamListStatEntry.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Goal_AtActor.uc b/Development/Src/Engine/Classes/Goal_AtActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Goal_Null.uc b/Development/Src/Engine/Classes/Goal_Null.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/GravityVolume.uc b/Development/Src/Engine/Classes/GravityVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HUD.uc b/Development/Src/Engine/Classes/HUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HavokCustomTraversalAnnotation.uc b/Development/Src/Engine/Classes/HavokCustomTraversalAnnotation.uc new file mode 100644 index 0000000..f0a90b6 --- /dev/null +++ b/Development/Src/Engine/Classes/HavokCustomTraversalAnnotation.uc @@ -0,0 +1,36 @@ +class HavokCustomTraversalAnnotation extends Actor + native(Havok) + placeable + hidecategories(Navigation) + config(Engine); + +enum EHavokTraversalType { + TRAVERSALTYPE_DROP_DOWN, // 0 + TRAVERSALTYPE_CLIMB, // 1 + TRAVERSALTYPE_JUMP, // 2 + TRAVERSALTYPE_VAULT, // 3 + TRAVERSALTYPE_DUCK_UNDER, // 4 + TRAVERSALTYPE_PORTAL, // 5 +}; + +var () Actor m_Target; +var () HavokCustomTraversalAnnotation.EHavokTraversalType TraversalType; +var () float EdgeCost; +var (NavigationEdge) Rotator SourceEdgeRotation; +var (NavigationEdge) Vector SourceEdgeTranslation; +var (NavigationEdge) float fEdgeWidth; +var (NavigationEdge) bool bForceParallelEdges; +var HavokCustomTraversalAnnotation m_Source; + +native function GetSourceEdge(out Vector EdgeStart, out Vector EdgeEnd); // Export UHavokCustomTraversalAnnotation::execGetSourceEdge(FFrame&, void* const) + +native function GetDestinationEdge(out Vector EdgeStart, out Vector EdgeEnd); // Export UHavokCustomTraversalAnnotation::execGetDestinationEdge(FFrame&, void* const) + +defaultproperties +{ + EdgeCost=1.0000000 + fEdgeWidth=50.0000000 + bForceParallelEdges=true + Components[0]=none + Components[1]=none +} diff --git a/Development/Src/Engine/Classes/HavokCustomTraversalRenderingComponent.uc b/Development/Src/Engine/Classes/HavokCustomTraversalRenderingComponent.uc new file mode 100644 index 0000000..ac045bb --- /dev/null +++ b/Development/Src/Engine/Classes/HavokCustomTraversalRenderingComponent.uc @@ -0,0 +1,10 @@ +class HavokCustomTraversalRenderingComponent extends PrimitiveComponent + native(Havok) + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ReplacementPrimitive=none +} diff --git a/Development/Src/Engine/Classes/HavokMaterialPainter.uc b/Development/Src/Engine/Classes/HavokMaterialPainter.uc new file mode 100644 index 0000000..39ea7c3 --- /dev/null +++ b/Development/Src/Engine/Classes/HavokMaterialPainter.uc @@ -0,0 +1,8 @@ +class HavokMaterialPainter extends Volume + native(Havok) + placeable + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/Engine/Classes/HavokNavMeshActor.uc b/Development/Src/Engine/Classes/HavokNavMeshActor.uc new file mode 100644 index 0000000..9aa8009 --- /dev/null +++ b/Development/Src/Engine/Classes/HavokNavMeshActor.uc @@ -0,0 +1,115 @@ +class HavokNavMeshActor extends Actor + native(Havok) + placeable + hidecategories(Navigation,Display,Attachment,Collision,Physics,Advanced,Debug,Object,Relevancy,Mobile) + config(Engine); + +enum EHavokVersion { + HAVOK_2012_2, // 0 + HAVOK_2013_3, // 1 + HAVOK_2014_2, // 2 + HAVOK_2016_1, // 3 +}; + +struct NavMeshLayerInfo { + var name Desc; + var float Radius; + var float Height; + var float CrouchHeight; + var byte PathColor; + structdefaultproperties {} +}; + +struct UserEdgeData { + var Vector StartA; + var Vector EndA; + var Vector StartB; + var Vector EndB; + var byte TraversalType; + var float EdgeCost; + structdefaultproperties {} +}; + +var transient bool bNavMeshLoaded; +var (DebugDraw) bool DrawTraversalAnalysis; +var (DebugDraw) bool DrawNavMeshEdges; +var (DebugDraw) bool DrawNavMeshUserEdges; +var (DebugDraw) bool DrawNavMeshFaces; +var (DebugDraw) bool DrawCluster; +var (DebugDraw) bool DrawFaceToClusterLines; +var (GenerationBasic) bool FixupOverlappingTriangles; +var (GenerationBasic) bool IncludeUserEdgesInClusters; +var (GenerationBasic) bool ShrinkNavMeshByCharacterWidth; +var (Simplification) bool UseSimplification; +var (RegionPruning) bool PreserveVerticalBorderRegions; +var (RegionPruning) bool BorderPreservationTolerance; +var (TraversalAnalsysisDropDowns) bool bAnalyzeDropDowns; +var (TraversalAnalsysisJumps) bool bAnalyzeJumps; +var const export editinline transient SpriteComponent EditorSprite; +var export editinline HavokNavigationRenderingComponent RenderingComponent; +var native const UntypedBulkData_Mirror NavMeshData; +var native Pointer HavokWorld; +var HavokNavMeshGrid HavokGrid; +var () editconst HavokNavMeshActor.EHavokVersion Version; +var (DebugDraw) Vector DrawClusterOffset; +var (GenerationBasic) Vector SingleCarverAABBMin; +var (GenerationBasic) Vector SingleCarverAABBMax; +var (Simplification) float MaxBorderDistanceError; +var (Simplification) float MaxPartitionHeightError; +var (RegionPruning) float MinRegionArea; +var (RegionPruning) float MinDistanceToSeed; +var (Character) float MaxWalkableSlope; +var (Character) float EntityHalfHeight; +var (Character) float StartingHeightOffset; +var (Character) float MaxStepHeight; +var (Character) float MaxPolyHeight; +var (Character) float HeightMergeThreshold; +var (Character) float MinRadius; +var (Character) float MaxRadius; +var (TraversalAnalsysisDropDowns) float MaxDropHeight; +var (TraversalAnalsysisDropDowns) float MaxUnderhang; +var (TraversalAnalsysisDropDowns) float DropDownCost; +var (TraversalAnalsysisJumps) float MaxJumpHeight; +var (TraversalAnalsysisJumps) float StandardJumpHeight; +var (TraversalAnalsysisJumps) float StandardJumpDistance; +var (TraversalAnalsysisJumps) float JumpCost; + +native function InitializeNavMesh(); // Export UHavokNavMeshActor::execInitializeNavMesh(FFrame&, void* const) + +native function CleanupNavMesh(); // Export UHavokNavMeshActor::execCleanupNavMesh(FFrame&, void* const) + +defaultproperties +{ + DrawTraversalAnalysis=true + DrawNavMeshEdges=true + DrawNavMeshUserEdges=true + DrawNavMeshFaces=true + ShrinkNavMeshByCharacterWidth=true + UseSimplification=true + bAnalyzeDropDowns=true + Version=HAVOK_2014_2 + DrawClusterOffset=(X=0.0000000,Y=0.0000000,Z=64.0000000) + MaxBorderDistanceError=2.0000000 + MaxPartitionHeightError=16.0000000 + MinRegionArea=200000.0000000 + MinDistanceToSeed=0.5000000 + MaxWalkableSlope=0.8000000 + EntityHalfHeight=17.5000000 + StartingHeightOffset=65.0000000 + MaxStepHeight=20.0000000 + MaxPolyHeight=120.0000000 + MinRadius=35.0000000 + MaxRadius=55.0000000 + MaxDropHeight=4000.0000000 + MaxUnderhang=10.0000000 + DropDownCost=1.0000000 + MaxJumpHeight=100.0000000 + StandardJumpHeight=80.0000000 + StandardJumpDistance=160.0000000 + JumpCost=2.0000000 + Components[0]=none + Components[1]=none + bStatic=true + bNoDelete=true + bMovable=false +} diff --git a/Development/Src/Engine/Classes/HavokNavMeshGrid.uc b/Development/Src/Engine/Classes/HavokNavMeshGrid.uc new file mode 100644 index 0000000..13771ca --- /dev/null +++ b/Development/Src/Engine/Classes/HavokNavMeshGrid.uc @@ -0,0 +1,18 @@ +class HavokNavMeshGrid extends Object + native(Havok) + config(Engine); + +var Matrix WorldToScreen; +var Matrix ScreenToWorld; +var float TexelDistance; +var int GridSize; +var native const UntypedBulkData_Mirror SerializedGridData; +var transient array MemoryGridData; + +native function InitGrid(); // Export UHavokNavMeshGrid::execInitGrid(FFrame&, void* const) + +native function Vector TexelToWorld(const out Vector2D InPos); // Export UHavokNavMeshGrid::execTexelToWorld(FFrame&, void* const) + +native function Vector2D WorldToTexel(const out Vector InPos); // Export UHavokNavMeshGrid::execWorldToTexel(FFrame&, void* const) + +native function Vector2D WorldToTangent(const out Vector InPos); // Export UHavokNavMeshGrid::execWorldToTangent(FFrame&, void* const) diff --git a/Development/Src/Engine/Classes/HavokNavigationHandle.uc b/Development/Src/Engine/Classes/HavokNavigationHandle.uc new file mode 100644 index 0000000..0b761fe --- /dev/null +++ b/Development/Src/Engine/Classes/HavokNavigationHandle.uc @@ -0,0 +1,58 @@ +class HavokNavigationHandle extends NavigationHandle within Actor + native(Havok) + config(Engine) + dependson(Pylon); + +enum EHavokNavigationMeshType { + HavokNavMesh_Pristine, // 0 + HavokNavMesh_Obstacle, // 1 + HavokNavMesh_Taskforce1, // 2 + HavokNavMesh_Taskforce2, // 3 +}; + +enum EHavokEdgeType { + EDGETYPE_REGULAR, // 0 + EDGETYPE_TRAVERSAL_DROPDOWN, // 1 + EDGETYPE_TRAVERSAL_JUMP, // 2 +}; + +struct CachedPathItem { + var int CachedKey; + var Vector Location; + var HavokNavigationHandle.EHavokEdgeType EdgeType; + var bool bTerminatedPath; + structdefaultproperties {} +}; + +var init array PathPoints; +var transient HavokNavigationHandle.EHavokNavigationMeshType PathingNavMeshType; +var transient HavokNavigationHandle.EHavokEdgeType CurrEdgeType; +var transient float LastClearPathTime; +var transient float ClearPathTime; + +native function bool GetNextMoveLocation(out Vector out_MoveDest, float ArrivalDistance); // Export UHavokNavigationHandle::execGetNextMoveLocation(FFrame&, void* const) + +native function bool FindPath(optional out Actor out_DestActor, optional out int out_DestItem); // Export UHavokNavigationHandle::execFindPath(FFrame&, void* const) + +native function bool SuggestMovePreparation(out Vector MovePt, Controller C); // Export UHavokNavigationHandle::execSuggestMovePreparation(FFrame&, void* const) + +native function bool PointReachable(Vector Point, optional Vector OverrideStartPoint, optional bool bAllowHitsInEndCollisionBox=true); // Export UHavokNavigationHandle::execPointReachable(FFrame&, void* const) + +native function bool ActorReachable(Actor GoalActor); // Export UHavokNavigationHandle::execActorReachable(FFrame&, void* const) + +native function bool LineCheck(Vector Start, Vector Direction, Vector Extent, optional out Vector out_HitLocation, optional out Vector out_HitNormal); // Export UHavokNavigationHandle::execLineCheck(FFrame&, void* const) + +native function int GetPackedKeyForPosition(out Vector pos, const out Vector PrevPos, int PreviousKey); // Export UHavokNavigationHandle::execGetPackedKeyForPosition(FFrame&, void* const) + +native function ClearCurrentEdge(); // Export UHavokNavigationHandle::execClearCurrentEdge(FFrame&, void* const) + +native function Pylon.ENavMeshEdgeType GetCurrentEdgeType(); // Export UHavokNavigationHandle::execGetCurrentEdgeType(FFrame&, void* const) + +native function CopyMovePointsFromPathCache(Vector FinalDest, out array MovePoints); // Export UHavokNavigationHandle::execCopyMovePointsFromPathCache(FFrame&, void* const) + +native function bool PathCache_RemoveIndex(int Index, optional int Count=1); // Export UHavokNavigationHandle::execPathCache_RemoveIndex(FFrame&, void* const) + +defaultproperties +{ + ClearPathTime=1.0000000 +} diff --git a/Development/Src/Engine/Classes/HavokNavigationRenderingComponent.uc b/Development/Src/Engine/Classes/HavokNavigationRenderingComponent.uc new file mode 100644 index 0000000..1b1051b --- /dev/null +++ b/Development/Src/Engine/Classes/HavokNavigationRenderingComponent.uc @@ -0,0 +1,23 @@ +class HavokNavigationRenderingComponent extends PrimitiveComponent + native(Havok) + hidecategories(Object) + config(Engine); + +var editoronly transient bool bDrawEdges; + +defaultproperties +{ + ReplacementPrimitive=none + HiddenGame=true + bAcceptsDynamicDecals=false + bCastDynamicShadow=false + bCastStaticShadow=false + bAcceptsDynamicDominantLightShadows=false + bAcceptsDynamicLights=false + bUseOnePassLightingOnTranslucency=true + CanBlockCamera=false + AlwaysLoadOnClient=false + AlwaysLoadOnServer=false + bAllowShadowFade=false + TranslucencySortPriority=-2 +} diff --git a/Development/Src/Engine/Classes/HavokTraversalAnnotationPortal.uc b/Development/Src/Engine/Classes/HavokTraversalAnnotationPortal.uc new file mode 100644 index 0000000..9630f2c --- /dev/null +++ b/Development/Src/Engine/Classes/HavokTraversalAnnotationPortal.uc @@ -0,0 +1,12 @@ +class HavokTraversalAnnotationPortal extends HavokCustomTraversalAnnotation + native(Havok) + placeable + hidecategories(Navigation) + config(Engine); + +native function bool IsValidPortal(); // Export UHavokTraversalAnnotationPortal::execIsValidPortal(FFrame&, void* const) + +defaultproperties +{ + TraversalType=TRAVERSALTYPE_PORTAL +} diff --git a/Development/Src/Engine/Classes/HeadTrackingComponent.uc b/Development/Src/Engine/Classes/HeadTrackingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HeightFog.uc b/Development/Src/Engine/Classes/HeightFog.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HeightFogComponent.uc b/Development/Src/Engine/Classes/HeightFogComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HttpBaseInterface.uc b/Development/Src/Engine/Classes/HttpBaseInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HttpFactory.uc b/Development/Src/Engine/Classes/HttpFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HttpRequestInterface.uc b/Development/Src/Engine/Classes/HttpRequestInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HttpResponseInterface.uc b/Development/Src/Engine/Classes/HttpResponseInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/HttpStatusCodes.uci b/Development/Src/Engine/Classes/HttpStatusCodes.uci old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ImageBasedReflectionComponent.uc b/Development/Src/Engine/Classes/ImageBasedReflectionComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ImageReflection.uc b/Development/Src/Engine/Classes/ImageReflection.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ImageReflectionComponent.uc b/Development/Src/Engine/Classes/ImageReflectionComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ImageReflectionSceneCapture.uc b/Development/Src/Engine/Classes/ImageReflectionSceneCapture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ImageReflectionShadowPlane.uc b/Development/Src/Engine/Classes/ImageReflectionShadowPlane.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ImageReflectionShadowPlaneComponent.uc b/Development/Src/Engine/Classes/ImageReflectionShadowPlaneComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InAppMessageBase.uc b/Development/Src/Engine/Classes/InAppMessageBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InGameAdManager.uc b/Development/Src/Engine/Classes/InGameAdManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Info.uc b/Development/Src/Engine/Classes/Info.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/IniLocPatcher.uc b/Development/Src/Engine/Classes/IniLocPatcher.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Input.uc b/Development/Src/Engine/Classes/Input.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InstancedFoliageActor.uc b/Development/Src/Engine/Classes/InstancedFoliageActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InstancedFoliageSettings.uc b/Development/Src/Engine/Classes/InstancedFoliageSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InstancedStaticMeshComponent.uc b/Development/Src/Engine/Classes/InstancedStaticMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interaction.uc b/Development/Src/Engine/Classes/Interaction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InteractiveFoliageActor.uc b/Development/Src/Engine/Classes/InteractiveFoliageActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InteractiveFoliageComponent.uc b/Development/Src/Engine/Classes/InteractiveFoliageComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_ActorPathConstraints.uc b/Development/Src/Engine/Classes/Interface_ActorPathConstraints.uc new file mode 100644 index 0000000..2c2a7f8 --- /dev/null +++ b/Development/Src/Engine/Classes/Interface_ActorPathConstraints.uc @@ -0,0 +1,3 @@ +interface Interface_ActorPathConstraints extends Interface; + +function SolveConstraints(const Vector InitialPosition, const float MaxDistance, out Vector OutDesiredPosition); // Export UInterface_ActorPathConstraints::execSolveConstraints(FFrame&, void* const) diff --git a/Development/Src/Engine/Classes/Interface_NavMeshPathObject.uc b/Development/Src/Engine/Classes/Interface_NavMeshPathObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_NavMeshPathObstacle.uc b/Development/Src/Engine/Classes/Interface_NavMeshPathObstacle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_NavMeshPathSwitch.uc b/Development/Src/Engine/Classes/Interface_NavMeshPathSwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_NavigationHandle.uc b/Development/Src/Engine/Classes/Interface_NavigationHandle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_PylonGeometryProvider.uc b/Development/Src/Engine/Classes/Interface_PylonGeometryProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_RVO.uc b/Development/Src/Engine/Classes/Interface_RVO.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Interface_Speaker.uc b/Development/Src/Engine/Classes/Interface_Speaker.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpActor.uc b/Development/Src/Engine/Classes/InterpActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpActor_ForCinematic.uc b/Development/Src/Engine/Classes/InterpActor_ForCinematic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpCurveEdSetup.uc b/Development/Src/Engine/Classes/InterpCurveEdSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpData.uc b/Development/Src/Engine/Classes/InterpData.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpFilter.uc b/Development/Src/Engine/Classes/InterpFilter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpFilter_Classes.uc b/Development/Src/Engine/Classes/InterpFilter_Classes.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpFilter_Custom.uc b/Development/Src/Engine/Classes/InterpFilter_Custom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroup.uc b/Development/Src/Engine/Classes/InterpGroup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupAI.uc b/Development/Src/Engine/Classes/InterpGroupAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupCamera.uc b/Development/Src/Engine/Classes/InterpGroupCamera.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupDirector.uc b/Development/Src/Engine/Classes/InterpGroupDirector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupInst.uc b/Development/Src/Engine/Classes/InterpGroupInst.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupInstAI.uc b/Development/Src/Engine/Classes/InterpGroupInstAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupInstCamera.uc b/Development/Src/Engine/Classes/InterpGroupInstCamera.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpGroupInstDirector.uc b/Development/Src/Engine/Classes/InterpGroupInstDirector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrack.uc b/Development/Src/Engine/Classes/InterpTrack.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackAnimControl.uc b/Development/Src/Engine/Classes/InterpTrackAnimControl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackAudioMaster.uc b/Development/Src/Engine/Classes/InterpTrackAudioMaster.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackBoolProp.uc b/Development/Src/Engine/Classes/InterpTrackBoolProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackColorProp.uc b/Development/Src/Engine/Classes/InterpTrackColorProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackColorScale.uc b/Development/Src/Engine/Classes/InterpTrackColorScale.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackDirector.uc b/Development/Src/Engine/Classes/InterpTrackDirector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackEvent.uc b/Development/Src/Engine/Classes/InterpTrackEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackFaceFX.uc b/Development/Src/Engine/Classes/InterpTrackFaceFX.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackFade.uc b/Development/Src/Engine/Classes/InterpTrackFade.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackFloatBase.uc b/Development/Src/Engine/Classes/InterpTrackFloatBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackFloatMaterialParam.uc b/Development/Src/Engine/Classes/InterpTrackFloatMaterialParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackFloatParticleParam.uc b/Development/Src/Engine/Classes/InterpTrackFloatParticleParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackFloatProp.uc b/Development/Src/Engine/Classes/InterpTrackFloatProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackHeadTracking.uc b/Development/Src/Engine/Classes/InterpTrackHeadTracking.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInst.uc b/Development/Src/Engine/Classes/InterpTrackInst.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstAnimControl.uc b/Development/Src/Engine/Classes/InterpTrackInstAnimControl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstAudioMaster.uc b/Development/Src/Engine/Classes/InterpTrackInstAudioMaster.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstBoolProp.uc b/Development/Src/Engine/Classes/InterpTrackInstBoolProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstColorProp.uc b/Development/Src/Engine/Classes/InterpTrackInstColorProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstColorScale.uc b/Development/Src/Engine/Classes/InterpTrackInstColorScale.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstDirector.uc b/Development/Src/Engine/Classes/InterpTrackInstDirector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstEvent.uc b/Development/Src/Engine/Classes/InterpTrackInstEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstFaceFX.uc b/Development/Src/Engine/Classes/InterpTrackInstFaceFX.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstFade.uc b/Development/Src/Engine/Classes/InterpTrackInstFade.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstFloatMaterialParam.uc b/Development/Src/Engine/Classes/InterpTrackInstFloatMaterialParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstFloatParticleParam.uc b/Development/Src/Engine/Classes/InterpTrackInstFloatParticleParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstFloatProp.uc b/Development/Src/Engine/Classes/InterpTrackInstFloatProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstHeadTracking.uc b/Development/Src/Engine/Classes/InterpTrackInstHeadTracking.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstLinearColorProp.uc b/Development/Src/Engine/Classes/InterpTrackInstLinearColorProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstMorphWeight.uc b/Development/Src/Engine/Classes/InterpTrackInstMorphWeight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstMove.uc b/Development/Src/Engine/Classes/InterpTrackInstMove.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstNotify.uc b/Development/Src/Engine/Classes/InterpTrackInstNotify.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstParticleReplay.uc b/Development/Src/Engine/Classes/InterpTrackInstParticleReplay.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstProperty.uc b/Development/Src/Engine/Classes/InterpTrackInstProperty.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstSkelControlScale.uc b/Development/Src/Engine/Classes/InterpTrackInstSkelControlScale.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstSkelControlStrength.uc b/Development/Src/Engine/Classes/InterpTrackInstSkelControlStrength.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstSlomo.uc b/Development/Src/Engine/Classes/InterpTrackInstSlomo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstSound.uc b/Development/Src/Engine/Classes/InterpTrackInstSound.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstToggle.uc b/Development/Src/Engine/Classes/InterpTrackInstToggle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstVectorMaterialParam.uc b/Development/Src/Engine/Classes/InterpTrackInstVectorMaterialParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstVectorProp.uc b/Development/Src/Engine/Classes/InterpTrackInstVectorProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackInstVisibility.uc b/Development/Src/Engine/Classes/InterpTrackInstVisibility.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackLinearColorBase.uc b/Development/Src/Engine/Classes/InterpTrackLinearColorBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackLinearColorProp.uc b/Development/Src/Engine/Classes/InterpTrackLinearColorProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackMorphWeight.uc b/Development/Src/Engine/Classes/InterpTrackMorphWeight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackMove.uc b/Development/Src/Engine/Classes/InterpTrackMove.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackMoveAxis.uc b/Development/Src/Engine/Classes/InterpTrackMoveAxis.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackNotify.uc b/Development/Src/Engine/Classes/InterpTrackNotify.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackParticleReplay.uc b/Development/Src/Engine/Classes/InterpTrackParticleReplay.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackSkelControlScale.uc b/Development/Src/Engine/Classes/InterpTrackSkelControlScale.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackSkelControlStrength.uc b/Development/Src/Engine/Classes/InterpTrackSkelControlStrength.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackSlomo.uc b/Development/Src/Engine/Classes/InterpTrackSlomo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackSound.uc b/Development/Src/Engine/Classes/InterpTrackSound.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackToggle.uc b/Development/Src/Engine/Classes/InterpTrackToggle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackVectorBase.uc b/Development/Src/Engine/Classes/InterpTrackVectorBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackVectorMaterialParam.uc b/Development/Src/Engine/Classes/InterpTrackVectorMaterialParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackVectorProp.uc b/Development/Src/Engine/Classes/InterpTrackVectorProp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InterpTrackVisibility.uc b/Development/Src/Engine/Classes/InterpTrackVisibility.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Inventory.uc b/Development/Src/Engine/Classes/Inventory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/InventoryManager.uc b/Development/Src/Engine/Classes/InventoryManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/JsonObject.uc b/Development/Src/Engine/Classes/JsonObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KActor.uc b/Development/Src/Engine/Classes/KActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KActorFromStatic.uc b/Development/Src/Engine/Classes/KActorFromStatic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KActorSpawnable.uc b/Development/Src/Engine/Classes/KActorSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KAsset.uc b/Development/Src/Engine/Classes/KAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KAssetSpawnable.uc b/Development/Src/Engine/Classes/KAssetSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KMeshProps.uc b/Development/Src/Engine/Classes/KMeshProps.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Keypoint.uc b/Development/Src/Engine/Classes/Keypoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KillZDamageType.uc b/Development/Src/Engine/Classes/KillZDamageType.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/KismetBookMark.uc b/Development/Src/Engine/Classes/KismetBookMark.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Ladder.uc b/Development/Src/Engine/Classes/Ladder.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LadderReachSpec.uc b/Development/Src/Engine/Classes/LadderReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LadderVolume.uc b/Development/Src/Engine/Classes/LadderVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Landscape.uc b/Development/Src/Engine/Classes/Landscape.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeComponent.uc b/Development/Src/Engine/Classes/LandscapeComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeGizmoActiveActor.uc b/Development/Src/Engine/Classes/LandscapeGizmoActiveActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeGizmoActor.uc b/Development/Src/Engine/Classes/LandscapeGizmoActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeGizmoRenderComponent.uc b/Development/Src/Engine/Classes/LandscapeGizmoRenderComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeHeightfieldCollisionComponent.uc b/Development/Src/Engine/Classes/LandscapeHeightfieldCollisionComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeInfo.uc b/Development/Src/Engine/Classes/LandscapeInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeLayerInfoObject.uc b/Development/Src/Engine/Classes/LandscapeLayerInfoObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeMaterialInstanceConstant.uc b/Development/Src/Engine/Classes/LandscapeMaterialInstanceConstant.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LandscapeProxy.uc b/Development/Src/Engine/Classes/LandscapeProxy.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LensFlare.uc b/Development/Src/Engine/Classes/LensFlare.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LensFlareComponent.uc b/Development/Src/Engine/Classes/LensFlareComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LensFlareSource.uc b/Development/Src/Engine/Classes/LensFlareSource.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelGridVolume.uc b/Development/Src/Engine/Classes/LevelGridVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelGridVolumeRenderingComponent.uc b/Development/Src/Engine/Classes/LevelGridVolumeRenderingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelStreaming.uc b/Development/Src/Engine/Classes/LevelStreaming.uc old mode 100755 new mode 100644 index 8100662..22f4303 --- a/Development/Src/Engine/Classes/LevelStreaming.uc +++ b/Development/Src/Engine/Classes/LevelStreaming.uc @@ -12,7 +12,7 @@ class LevelStreaming extends Object native; /** Name of the level package name used for loading. */ -var() name PackageName; // HACK: un-const'd for paladins +var() editconst const name PackageName; /** Pointer to Level object if currently loaded/ streamed in. */ var transient const level LoadedLevel; diff --git a/Development/Src/Engine/Classes/LevelStreamingAlwaysLoaded.uc b/Development/Src/Engine/Classes/LevelStreamingAlwaysLoaded.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelStreamingDistance.uc b/Development/Src/Engine/Classes/LevelStreamingDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelStreamingKismet.uc b/Development/Src/Engine/Classes/LevelStreamingKismet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelStreamingPersistent.uc b/Development/Src/Engine/Classes/LevelStreamingPersistent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LevelStreamingVolume.uc b/Development/Src/Engine/Classes/LevelStreamingVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LiftCenter.uc b/Development/Src/Engine/Classes/LiftCenter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LiftExit.uc b/Development/Src/Engine/Classes/LiftExit.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Light.uc b/Development/Src/Engine/Classes/Light.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightComponent.uc b/Development/Src/Engine/Classes/LightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightEnvironmentComponent.uc b/Development/Src/Engine/Classes/LightEnvironmentComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightFunction.uc b/Development/Src/Engine/Classes/LightFunction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightmappedSurfaceCollection.uc b/Development/Src/Engine/Classes/LightmappedSurfaceCollection.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightmassCharacterIndirectDetailVolume.uc b/Development/Src/Engine/Classes/LightmassCharacterIndirectDetailVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightmassImportanceVolume.uc b/Development/Src/Engine/Classes/LightmassImportanceVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightmassLevelSettings.uc b/Development/Src/Engine/Classes/LightmassLevelSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LightmassPrimitiveSettingsObject.uc b/Development/Src/Engine/Classes/LightmassPrimitiveSettingsObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LineBatchComponent.uc b/Development/Src/Engine/Classes/LineBatchComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LocalMessage.uc b/Development/Src/Engine/Classes/LocalMessage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/LocalPlayer.uc b/Development/Src/Engine/Classes/LocalPlayer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MantleReachSpec.uc b/Development/Src/Engine/Classes/MantleReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MapInfo.uc b/Development/Src/Engine/Classes/MapInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MassiveLODOverrideVolume.uc b/Development/Src/Engine/Classes/MassiveLODOverrideVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Material.uc b/Development/Src/Engine/Classes/Material.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialEffect.uc b/Development/Src/Engine/Classes/MaterialEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpression.uc b/Development/Src/Engine/Classes/MaterialExpression.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionAbs.uc b/Development/Src/Engine/Classes/MaterialExpressionAbs.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionActorWorldPosition.uc b/Development/Src/Engine/Classes/MaterialExpressionActorWorldPosition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionAdd.uc b/Development/Src/Engine/Classes/MaterialExpressionAdd.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionAntialiasedTextureMask.uc b/Development/Src/Engine/Classes/MaterialExpressionAntialiasedTextureMask.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionAppendVector.uc b/Development/Src/Engine/Classes/MaterialExpressionAppendVector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionBumpOffset.uc b/Development/Src/Engine/Classes/MaterialExpressionBumpOffset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCameraVector.uc b/Development/Src/Engine/Classes/MaterialExpressionCameraVector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCameraWorldPosition.uc b/Development/Src/Engine/Classes/MaterialExpressionCameraWorldPosition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCeil.uc b/Development/Src/Engine/Classes/MaterialExpressionCeil.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionClamp.uc b/Development/Src/Engine/Classes/MaterialExpressionClamp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionComment.uc b/Development/Src/Engine/Classes/MaterialExpressionComment.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionComponentMask.uc b/Development/Src/Engine/Classes/MaterialExpressionComponentMask.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionConstant.uc b/Development/Src/Engine/Classes/MaterialExpressionConstant.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionConstant2Vector.uc b/Development/Src/Engine/Classes/MaterialExpressionConstant2Vector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionConstant3Vector.uc b/Development/Src/Engine/Classes/MaterialExpressionConstant3Vector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionConstant4Vector.uc b/Development/Src/Engine/Classes/MaterialExpressionConstant4Vector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionConstantBiasScale.uc b/Development/Src/Engine/Classes/MaterialExpressionConstantBiasScale.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionConstantClamp.uc b/Development/Src/Engine/Classes/MaterialExpressionConstantClamp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCosine.uc b/Development/Src/Engine/Classes/MaterialExpressionCosine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCrossProduct.uc b/Development/Src/Engine/Classes/MaterialExpressionCrossProduct.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCustom.uc b/Development/Src/Engine/Classes/MaterialExpressionCustom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionCustomTexture.uc b/Development/Src/Engine/Classes/MaterialExpressionCustomTexture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDepthBiasBlend.uc b/Development/Src/Engine/Classes/MaterialExpressionDepthBiasBlend.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDepthBiasedAlpha.uc b/Development/Src/Engine/Classes/MaterialExpressionDepthBiasedAlpha.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDepthBiasedBlend.uc b/Development/Src/Engine/Classes/MaterialExpressionDepthBiasedBlend.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDepthOfFieldFunction.uc b/Development/Src/Engine/Classes/MaterialExpressionDepthOfFieldFunction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDeriveNormalZ.uc b/Development/Src/Engine/Classes/MaterialExpressionDeriveNormalZ.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDesaturation.uc b/Development/Src/Engine/Classes/MaterialExpressionDesaturation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDestColor.uc b/Development/Src/Engine/Classes/MaterialExpressionDestColor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDestDepth.uc b/Development/Src/Engine/Classes/MaterialExpressionDestDepth.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDistance.uc b/Development/Src/Engine/Classes/MaterialExpressionDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDivide.uc b/Development/Src/Engine/Classes/MaterialExpressionDivide.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDotProduct.uc b/Development/Src/Engine/Classes/MaterialExpressionDotProduct.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionDynamicParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionDynamicParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFlipBookSample.uc b/Development/Src/Engine/Classes/MaterialExpressionFlipBookSample.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFloor.uc b/Development/Src/Engine/Classes/MaterialExpressionFloor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFluidNormal.uc b/Development/Src/Engine/Classes/MaterialExpressionFluidNormal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFmod.uc b/Development/Src/Engine/Classes/MaterialExpressionFmod.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFoliageImpulseDirection.uc b/Development/Src/Engine/Classes/MaterialExpressionFoliageImpulseDirection.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFoliageNormalizedRotationAxisAndAngle.uc b/Development/Src/Engine/Classes/MaterialExpressionFoliageNormalizedRotationAxisAndAngle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFontSample.uc b/Development/Src/Engine/Classes/MaterialExpressionFontSample.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFontSampleParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionFontSampleParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFrac.uc b/Development/Src/Engine/Classes/MaterialExpressionFrac.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFresnel.uc b/Development/Src/Engine/Classes/MaterialExpressionFresnel.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFunctionInput.uc b/Development/Src/Engine/Classes/MaterialExpressionFunctionInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionFunctionOutput.uc b/Development/Src/Engine/Classes/MaterialExpressionFunctionOutput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionIf.uc b/Development/Src/Engine/Classes/MaterialExpressionIf.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLandscapeLayerBlend.uc b/Development/Src/Engine/Classes/MaterialExpressionLandscapeLayerBlend.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLensFlareIntensity.uc b/Development/Src/Engine/Classes/MaterialExpressionLensFlareIntensity.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLensFlareOcclusion.uc b/Development/Src/Engine/Classes/MaterialExpressionLensFlareOcclusion.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLensFlareRadialDistance.uc b/Development/Src/Engine/Classes/MaterialExpressionLensFlareRadialDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLensFlareRayDistance.uc b/Development/Src/Engine/Classes/MaterialExpressionLensFlareRayDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLensFlareSourceDistance.uc b/Development/Src/Engine/Classes/MaterialExpressionLensFlareSourceDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLightVector.uc b/Development/Src/Engine/Classes/MaterialExpressionLightVector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLightmapUVs.uc b/Development/Src/Engine/Classes/MaterialExpressionLightmapUVs.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLightmassReplace.uc b/Development/Src/Engine/Classes/MaterialExpressionLightmassReplace.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionLinearInterpolate.uc b/Development/Src/Engine/Classes/MaterialExpressionLinearInterpolate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionMaterialFunctionCall.uc b/Development/Src/Engine/Classes/MaterialExpressionMaterialFunctionCall.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionMeshEmitterDynamicParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionMeshEmitterDynamicParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionMeshEmitterVertexColor.uc b/Development/Src/Engine/Classes/MaterialExpressionMeshEmitterVertexColor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionMeshSubUV.uc b/Development/Src/Engine/Classes/MaterialExpressionMeshSubUV.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionMeshSubUVBlend.uc b/Development/Src/Engine/Classes/MaterialExpressionMeshSubUVBlend.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionMultiply.uc b/Development/Src/Engine/Classes/MaterialExpressionMultiply.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionNormalize.uc b/Development/Src/Engine/Classes/MaterialExpressionNormalize.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionObjectOrientation.uc b/Development/Src/Engine/Classes/MaterialExpressionObjectOrientation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionObjectRadius.uc b/Development/Src/Engine/Classes/MaterialExpressionObjectRadius.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionObjectWorldPosition.uc b/Development/Src/Engine/Classes/MaterialExpressionObjectWorldPosition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionOcclusionPercentage.uc b/Development/Src/Engine/Classes/MaterialExpressionOcclusionPercentage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionOneMinus.uc b/Development/Src/Engine/Classes/MaterialExpressionOneMinus.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionPanner.uc b/Development/Src/Engine/Classes/MaterialExpressionPanner.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionParticleMacroUV.uc b/Development/Src/Engine/Classes/MaterialExpressionParticleMacroUV.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionParticleSubUV.uc b/Development/Src/Engine/Classes/MaterialExpressionParticleSubUV.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionPerInstanceRandom.uc b/Development/Src/Engine/Classes/MaterialExpressionPerInstanceRandom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionPixelDepth.uc b/Development/Src/Engine/Classes/MaterialExpressionPixelDepth.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionPower.uc b/Development/Src/Engine/Classes/MaterialExpressionPower.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionQualitySwitch.uc b/Development/Src/Engine/Classes/MaterialExpressionQualitySwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionReflectionVector.uc b/Development/Src/Engine/Classes/MaterialExpressionReflectionVector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionRotateAboutAxis.uc b/Development/Src/Engine/Classes/MaterialExpressionRotateAboutAxis.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionRotator.uc b/Development/Src/Engine/Classes/MaterialExpressionRotator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionScalarParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionScalarParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionSceneDepth.uc b/Development/Src/Engine/Classes/MaterialExpressionSceneDepth.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionSceneTexture.uc b/Development/Src/Engine/Classes/MaterialExpressionSceneTexture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionScreenPosition.uc b/Development/Src/Engine/Classes/MaterialExpressionScreenPosition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionScreenSize.uc b/Development/Src/Engine/Classes/MaterialExpressionScreenSize.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionSine.uc b/Development/Src/Engine/Classes/MaterialExpressionSine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionSphereMask.uc b/Development/Src/Engine/Classes/MaterialExpressionSphereMask.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionSquareRoot.uc b/Development/Src/Engine/Classes/MaterialExpressionSquareRoot.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionStaticBool.uc b/Development/Src/Engine/Classes/MaterialExpressionStaticBool.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionStaticBoolParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionStaticBoolParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionStaticComponentMaskParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionStaticComponentMaskParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionStaticSwitch.uc b/Development/Src/Engine/Classes/MaterialExpressionStaticSwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionStaticSwitchParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionStaticSwitchParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionSubtract.uc b/Development/Src/Engine/Classes/MaterialExpressionSubtract.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTerrainLayerCoords.uc b/Development/Src/Engine/Classes/MaterialExpressionTerrainLayerCoords.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTerrainLayerSwitch.uc b/Development/Src/Engine/Classes/MaterialExpressionTerrainLayerSwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTerrainLayerWeight.uc b/Development/Src/Engine/Classes/MaterialExpressionTerrainLayerWeight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTexelSize.uc b/Development/Src/Engine/Classes/MaterialExpressionTexelSize.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureCoordinate.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureCoordinate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureObject.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureObjectParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureObjectParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSample.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSample.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameter2D.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameter2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterCube.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterCube.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterFlipbook.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterFlipbook.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterMeshSubUV.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterMeshSubUV.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterMeshSubUVBlend.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterMeshSubUVBlend.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterMovie.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterNormal.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterNormal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterSubUV.uc b/Development/Src/Engine/Classes/MaterialExpressionTextureSampleParameterSubUV.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTime.uc b/Development/Src/Engine/Classes/MaterialExpressionTime.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTransform.uc b/Development/Src/Engine/Classes/MaterialExpressionTransform.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTransformPosition.uc b/Development/Src/Engine/Classes/MaterialExpressionTransformPosition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionTwoSidedSign.uc b/Development/Src/Engine/Classes/MaterialExpressionTwoSidedSign.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionVectorParameter.uc b/Development/Src/Engine/Classes/MaterialExpressionVectorParameter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionVertexColor.uc b/Development/Src/Engine/Classes/MaterialExpressionVertexColor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionWindDirectionAndSpeed.uc b/Development/Src/Engine/Classes/MaterialExpressionWindDirectionAndSpeed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionWorldNormal.uc b/Development/Src/Engine/Classes/MaterialExpressionWorldNormal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialExpressionWorldPosition.uc b/Development/Src/Engine/Classes/MaterialExpressionWorldPosition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialFunction.uc b/Development/Src/Engine/Classes/MaterialFunction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialInstance.uc b/Development/Src/Engine/Classes/MaterialInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialInstanceActor.uc b/Development/Src/Engine/Classes/MaterialInstanceActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialInstanceConstant.uc b/Development/Src/Engine/Classes/MaterialInstanceConstant.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialInstanceTimeVarying.uc b/Development/Src/Engine/Classes/MaterialInstanceTimeVarying.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialInstanceTimeVaryingActor.uc b/Development/Src/Engine/Classes/MaterialInstanceTimeVaryingActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MaterialInterface.uc b/Development/Src/Engine/Classes/MaterialInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MatineeActor.uc b/Development/Src/Engine/Classes/MatineeActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MatineePawn.uc b/Development/Src/Engine/Classes/MatineePawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MeshComponent.uc b/Development/Src/Engine/Classes/MeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MeshComponentFactory.uc b/Development/Src/Engine/Classes/MeshComponentFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MicroTransactionBase.uc b/Development/Src/Engine/Classes/MicroTransactionBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ModelComponent.uc b/Development/Src/Engine/Classes/ModelComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodeBase.uc b/Development/Src/Engine/Classes/MorphNodeBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodeMultiPose.uc b/Development/Src/Engine/Classes/MorphNodeMultiPose.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodePose.uc b/Development/Src/Engine/Classes/MorphNodePose.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodeWeight.uc b/Development/Src/Engine/Classes/MorphNodeWeight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodeWeightBase.uc b/Development/Src/Engine/Classes/MorphNodeWeightBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodeWeightByBoneAngle.uc b/Development/Src/Engine/Classes/MorphNodeWeightByBoneAngle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphNodeWeightByBoneRotation.uc b/Development/Src/Engine/Classes/MorphNodeWeightByBoneRotation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphTarget.uc b/Development/Src/Engine/Classes/MorphTarget.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphTargetSet.uc b/Development/Src/Engine/Classes/MorphTargetSet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MorphWeightSequence.uc b/Development/Src/Engine/Classes/MorphWeightSequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MotionBlurEffect.uc b/Development/Src/Engine/Classes/MotionBlurEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MultiCueSplineAudioComponent.uc b/Development/Src/Engine/Classes/MultiCueSplineAudioComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MultiFont.uc b/Development/Src/Engine/Classes/MultiFont.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MultiProviderAnalytics.uc b/Development/Src/Engine/Classes/MultiProviderAnalytics.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/MusicTrackDataStructures.uc b/Development/Src/Engine/Classes/MusicTrackDataStructures.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Mutator.uc b/Development/Src/Engine/Classes/Mutator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshBoundsVolume.uc b/Development/Src/Engine/Classes/NavMeshBoundsVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoalFilter_MinPathDistance.uc b/Development/Src/Engine/Classes/NavMeshGoalFilter_MinPathDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoalFilter_NotNearOtherAI.uc b/Development/Src/Engine/Classes/NavMeshGoalFilter_NotNearOtherAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoalFilter_OutOfViewFrom.uc b/Development/Src/Engine/Classes/NavMeshGoalFilter_OutOfViewFrom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoalFilter_OutsideOfDotProductWedge.uc b/Development/Src/Engine/Classes/NavMeshGoalFilter_OutsideOfDotProductWedge.uc old mode 100755 new mode 100644 index 005f589..2f3f3c9 --- a/Development/Src/Engine/Classes/NavMeshGoalFilter_OutsideOfDotProductWedge.uc +++ b/Development/Src/Engine/Classes/NavMeshGoalFilter_OutsideOfDotProductWedge.uc @@ -1,54 +1,9 @@ -/** - * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. - */ -class NavMeshGoalFilter_OutSideOfDotProductWedge extends NavMeshGoal_Filter - native(AI); - -/** Location to compare from **/ -var transient vector Location; - -var transient vector Rotation; - -var transient float Epsilon; - -cpptext -{ - // Interface - /** - * Called on each Goal_Filter that is in the list of a generic filter container to determine a goal's fitness for being 'the one' - * @param PossibleGoal - the chosen (cheapest) successor from the open list - * @param PathParams - the cached pathfinding params for the pathing entity - * @return - TRUE indicates according to this filter's criteria this goal is valid - */ - virtual UBOOL IsValidFinalGoal( PathCardinalType PossibleGoal, - const FNavMeshPathParams& PathParams); -} - - -static function bool OutsideOfDotProductWedge( NavMeshGoal_GenericFilterContainer FilterContainer , vector InLocation, rotator InRotation, float InEpsilon ) -{ - local NavMeshGoalFilter_OutSideOfDotProductWedge Eval; - - if( FilterContainer != None ) - { - Eval = NavMeshGoalFilter_OutSideOfDotProductWedge(FilterContainer.GetFilterOfType(default.class)); - - if( Eval != None ) - { - Eval.Location = InLocation; - Eval.Rotation = vector(InRotation); - Eval.Epsilon = InEpsilon; - FilterContainer.GoalFilters.AddItem(Eval); - return TRUE; - } - } - - return FALSE; -} - - - -defaultproperties -{ - bShowDebug=FALSE -} \ No newline at end of file +class NavMeshGoalFilter_OutSideOfDotProductWedge extends NavMeshGoal_Filter + native(AI) + config(Engine); + +var transient Vector Location; +var transient Vector Rotation; +var transient float Epsilon; + +function bool OutsideOfDotProductWedge(NavMeshGoal_GenericFilterContainer FilterContainer, Vector InLocation, Rotator InRotation, float InEpsilon) { } diff --git a/Development/Src/Engine/Classes/NavMeshGoalFilter_PolyEncompassesAI.uc b/Development/Src/Engine/Classes/NavMeshGoalFilter_PolyEncompassesAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_At.uc b/Development/Src/Engine/Classes/NavMeshGoal_At.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_ClosestActorInList.uc b/Development/Src/Engine/Classes/NavMeshGoal_ClosestActorInList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_Filter.uc b/Development/Src/Engine/Classes/NavMeshGoal_Filter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_GenericFilterContainer.uc b/Development/Src/Engine/Classes/NavMeshGoal_GenericFilterContainer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_Null.uc b/Development/Src/Engine/Classes/NavMeshGoal_Null.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_PolyEncompassesAI.uc b/Development/Src/Engine/Classes/NavMeshGoal_PolyEncompassesAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_Random.uc b/Development/Src/Engine/Classes/NavMeshGoal_Random.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshGoal_WithinDistanceEnvelope.uc b/Development/Src/Engine/Classes/NavMeshGoal_WithinDistanceEnvelope.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshObstacle.uc b/Development/Src/Engine/Classes/NavMeshObstacle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPathConstraint.uc b/Development/Src/Engine/Classes/NavMeshPathConstraint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPathGoalEvaluator.uc b/Development/Src/Engine/Classes/NavMeshPathGoalEvaluator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_AlongLine.uc b/Development/Src/Engine/Classes/NavMeshPath_AlongLine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_EnforceTwoWayEdges.uc b/Development/Src/Engine/Classes/NavMeshPath_EnforceTwoWayEdges.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_MinDistBetweenSpecsOfType.uc b/Development/Src/Engine/Classes/NavMeshPath_MinDistBetweenSpecsOfType.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_SameCoverLink.uc b/Development/Src/Engine/Classes/NavMeshPath_SameCoverLink.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_Toward.uc b/Development/Src/Engine/Classes/NavMeshPath_Toward.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_WithinDistanceEnvelope.uc b/Development/Src/Engine/Classes/NavMeshPath_WithinDistanceEnvelope.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshPath_WithinTraversalDist.uc b/Development/Src/Engine/Classes/NavMeshPath_WithinTraversalDist.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavMeshRenderingComponent.uc b/Development/Src/Engine/Classes/NavMeshRenderingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavigationHandle.uc b/Development/Src/Engine/Classes/NavigationHandle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NavigationPoint.uc b/Development/Src/Engine/Classes/NavigationPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Note.uc b/Development/Src/Engine/Classes/Note.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxCylindricalForceField.uc b/Development/Src/Engine/Classes/NxCylindricalForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxCylindricalForceFieldCapsule.uc b/Development/Src/Engine/Classes/NxCylindricalForceFieldCapsule.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceField.uc b/Development/Src/Engine/Classes/NxForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldComponent.uc b/Development/Src/Engine/Classes/NxForceFieldComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldCylindricalComponent.uc b/Development/Src/Engine/Classes/NxForceFieldCylindricalComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldGeneric.uc b/Development/Src/Engine/Classes/NxForceFieldGeneric.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldGenericComponent.uc b/Development/Src/Engine/Classes/NxForceFieldGenericComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldRadial.uc b/Development/Src/Engine/Classes/NxForceFieldRadial.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldRadialComponent.uc b/Development/Src/Engine/Classes/NxForceFieldRadialComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldSpawnable.uc b/Development/Src/Engine/Classes/NxForceFieldSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldTornado.uc b/Development/Src/Engine/Classes/NxForceFieldTornado.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxForceFieldTornadoComponent.uc b/Development/Src/Engine/Classes/NxForceFieldTornadoComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxGenericForceField.uc b/Development/Src/Engine/Classes/NxGenericForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxGenericForceFieldBox.uc b/Development/Src/Engine/Classes/NxGenericForceFieldBox.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxGenericForceFieldBrush.uc b/Development/Src/Engine/Classes/NxGenericForceFieldBrush.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxGenericForceFieldCapsule.uc b/Development/Src/Engine/Classes/NxGenericForceFieldCapsule.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxRadialCustomForceField.uc b/Development/Src/Engine/Classes/NxRadialCustomForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxRadialForceField.uc b/Development/Src/Engine/Classes/NxRadialForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxTornadoAngularForceField.uc b/Development/Src/Engine/Classes/NxTornadoAngularForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxTornadoAngularForceFieldCapsule.uc b/Development/Src/Engine/Classes/NxTornadoAngularForceFieldCapsule.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxTornadoForceField.uc b/Development/Src/Engine/Classes/NxTornadoForceField.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/NxTornadoForceFieldCapsule.uc b/Development/Src/Engine/Classes/NxTornadoForceFieldCapsule.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ObjectReferencer.uc b/Development/Src/Engine/Classes/ObjectReferencer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineAccountInterface.uc b/Development/Src/Engine/Classes/OnlineAccountInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineAuthInterface.uc b/Development/Src/Engine/Classes/OnlineAuthInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineChatInterface.uc b/Development/Src/Engine/Classes/OnlineChatInterface.uc new file mode 100644 index 0000000..b3db8aa --- /dev/null +++ b/Development/Src/Engine/Classes/OnlineChatInterface.uc @@ -0,0 +1,11 @@ +interface OnlineChatInterface extends Interface; + +delegate OnChatMessage(int Channel, string Sender, string Message); + +function AddChatMessageDelegate(delegate ChatDelegate); + +function ClearChatMessageDelegate(delegate ChatDelegate); + +function SendChatMessage(int Channel, string Message); + +function NotifyTeamChange(QWord PlayerUID, byte TeamID); diff --git a/Development/Src/Engine/Classes/OnlineCommunityContentInterface.uc b/Development/Src/Engine/Classes/OnlineCommunityContentInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineContentInterface.uc b/Development/Src/Engine/Classes/OnlineContentInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineEventTracker.uc b/Development/Src/Engine/Classes/OnlineEventTracker.uc new file mode 100644 index 0000000..fd7840a --- /dev/null +++ b/Development/Src/Engine/Classes/OnlineEventTracker.uc @@ -0,0 +1,10 @@ +class OnlineEventTracker extends Object + abstract + native + config(Engine); + +event Init() { } + +event ShutDown() { } + +event bool RaiseEvent(const string EventName, const array EventParams) { } diff --git a/Development/Src/Engine/Classes/OnlineEventsInterface.uc b/Development/Src/Engine/Classes/OnlineEventsInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineGameDVRInterface.uc b/Development/Src/Engine/Classes/OnlineGameDVRInterface.uc new file mode 100644 index 0000000..8d2a1b3 --- /dev/null +++ b/Development/Src/Engine/Classes/OnlineGameDVRInterface.uc @@ -0,0 +1,29 @@ +interface OnlineGameDVRInterface extends Interface; + +function EnableRecording(); + +function DisableRecording(); + +function bool ReadRecordedClips(byte LocalUserNum); + +delegate OnReadRecordedClipsComplete(bool bWasSuccessful, byte LocalUserNum); + +function ClearCachedRecordedClips(byte LocalUserNum); + +function AddReadRecordedClipsCompleteDelegate(byte LocalUserNum, delegate ReadRecordedClipsCompleteDelegate); + +function ClearReadRecordedClipsCompleteDelegate(byte LocalUserNum, delegate ReadRecordedClipsCompleteDelegate); + +function bool BeginRecordingEvent(byte LocalUserNum, string EventName); + +delegate OnRecordEventComplete(bool bWasSuccessful, byte LocalUserNum, string EventName); + +function AddRecordEventCompleteDelegate(byte LocalUserNum, delegate RecordEventCompleteDelegate); + +function ClearRecordEventCompleteDelegate(byte LocalUserNum, delegate RecordEventCompleteDelegate); + +function bool EndRecordingEvent(byte LocalUserNum, string EventName); + +function bool RecordPreviousTimespan(byte LocalUserNum, string EventName, float Duration); + +function bool CancelRecordingEvent(byte LocalUserNum, string EventName); diff --git a/Development/Src/Engine/Classes/OnlineGameDownloadInterface.uc b/Development/Src/Engine/Classes/OnlineGameDownloadInterface.uc new file mode 100644 index 0000000..60732a4 --- /dev/null +++ b/Development/Src/Engine/Classes/OnlineGameDownloadInterface.uc @@ -0,0 +1,39 @@ +interface OnlineGameDownloadInterface extends Interface; + +enum EDownloadSpeed { + EDLS_Pause, // 0 + EDLS_Slow, // 1 + EDLS_Fast, // 2 +}; + +function bool IsGameComplete(); + +function bool IsChunkComplete(const int InChunkIndex, const bool bRequireFastAccess); + +function bool AreChunksComplete(const array ChunkIndices, const bool bRequireFastAccess); + +function bool DoesGameNeedRefresh(); + +function RefreshGame(); + +function float GetChunkETA(const int InChunkIndex); + +function float GetChunksETA(const array ChunkIndices); + +function float GetChunkProgress(const int InChunkIndex); + +function float GetChunksProgress(const array ChunkIndices); + +function float GetOverallProgress(); + +function array GetTodoList(); + +function SetChunksHighPriority(const array ChunkIndices); + +function SetDownloadSpeed(const OnlineGameDownloadInterface.EDownloadSpeed InSpeed); + +delegate OnChunkComplete(const int ChunkIndex); + +function AddOnChunkCompleteDelegate(delegate InDelegate); + +function ClearOnChunkCompleteDelegate(delegate InDelegate); diff --git a/Development/Src/Engine/Classes/OnlineGameInterface.uc b/Development/Src/Engine/Classes/OnlineGameInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineGameSearch.uc b/Development/Src/Engine/Classes/OnlineGameSearch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineGameSettings.uc b/Development/Src/Engine/Classes/OnlineGameSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineMarketplaceInterface.uc b/Development/Src/Engine/Classes/OnlineMarketplaceInterface.uc new file mode 100644 index 0000000..591e097 --- /dev/null +++ b/Development/Src/Engine/Classes/OnlineMarketplaceInterface.uc @@ -0,0 +1,58 @@ +interface OnlineMarketplaceInterface extends Interface + dependson(OnlineSubsystem); + +function bool ReadAvailableProducts(byte LocalUserNum, string ParentId, optional OnlineSubsystem.EMediaItemType ParentMediaType=1, optional OnlineSubsystem.EMediaItemType ChildMediaType=1, optional OnlineSubsystem.ECatalogSortOrder SortOrder=0); + +delegate OnReadAvailableProductsComplete(OnlineSubsystem.EMediaItemType MediaType); + +function AddReadAvailableProductsCompleteDelegate(byte LocalUserNum, delegate ReadAvailableProductsCompleteDelegate); + +function ClearReadAvailableProductsCompleteDelegate(byte LocalUserNum, delegate ReadAvailableProductsCompleteDelegate); + +function OnlineSubsystem.EOnlineEnumerationReadState GetAvailableProducts(byte LocalUserNum, OnlineSubsystem.EMediaItemType MediaType, out array AvailableProducts); + +function ResetAvailableProducts(byte LocalUserNum, OnlineSubsystem.EMediaItemType MediaType); + +function bool ReadAdditionalDetailsForProducts(byte LocalUserNum, OnlineSubsystem.EMediaItemType MediaType); + +delegate OnReadAdditionalProductDetailsComplete(OnlineSubsystem.EMediaItemType MediaType); + +function AddReadAdditionalProductDetailsCompleteDelegate(byte LocalUserNum, delegate ReadAdditionalProductDetailsCompleteDelegate); + +function ClearReadAdditionalProductDetailsCompleteDelegate(byte LocalUserNum, delegate ReadAdditionalProductDetailsCompleteDelegate); + +delegate OnReadDetailsForProductIdList(out array ProductList); + +function bool ReadDetailsForProductIdList(byte LocalUserNum, array ProductIds); + +function AddReadDetailsForProductIdListCompleteDelegate(byte LocalUserNum, delegate InDelegate); + +function ClearReadDetailsForProductIdListCompleteDelegate(byte LocalUserNum, delegate InDelegate); + +function bool ReadInventoryItems(byte LocalUserNum); + +delegate OnReadInventoryItemsComplete(); + +function AddReadInventoryItemsCompleteDelegate(byte LocalUserNum, delegate ReadInventoryItemsCompleteDelegate); + +function ClearReadInventoryItemsCompleteDelegate(byte LocalUserNum, delegate ReadInventoryItemsCompleteDelegate); + +function OnlineSubsystem.EOnlineEnumerationReadState GetInventoryItems(byte LocalUserNum, out array InventoryItems); + +function ResetInventoryItems(byte LocalUserNum); + +function bool ConsumeInventoryItem(byte LocalUserNum, string ProductID, int Quantity, string TransactionId); + +delegate OnConsumeInventoryItemComplete(string ProductID, bool bDidSucceed, int NewQuantity); + +function AddConsumeInventoryItemCompleteDelegate(byte LocalUserNum, delegate ConsumeInventoryItemCompleteDelegate); + +function ClearConsumeInventoryItemCompleteDelegate(byte LocalUserNum, delegate ConsumeInventoryItemCompleteDelegate); + +delegate OnMarketplaceItemPurchased(); + +function AddMarketplaceItemPurchasedDelegate(delegate InDelegate); + +function ClearMarketplaceItemPurchasedDelegate(delegate InDelegate); + +function SetMarketplaceVisibility(bool Visible); diff --git a/Development/Src/Engine/Classes/OnlineMatchmakingStats.uc b/Development/Src/Engine/Classes/OnlineMatchmakingStats.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineNewsInterface.uc b/Development/Src/Engine/Classes/OnlineNewsInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlinePartyChatInterface.uc b/Development/Src/Engine/Classes/OnlinePartyChatInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlinePlayerInterface.uc b/Development/Src/Engine/Classes/OnlinePlayerInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlinePlayerInterfaceEx.uc b/Development/Src/Engine/Classes/OnlinePlayerInterfaceEx.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlinePlayerStorage.uc b/Development/Src/Engine/Classes/OnlinePlayerStorage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlinePlaylistGameTypeProvider.uc b/Development/Src/Engine/Classes/OnlinePlaylistGameTypeProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineProfileSettings.uc b/Development/Src/Engine/Classes/OnlineProfileSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineRecentPlayersList.uc b/Development/Src/Engine/Classes/OnlineRecentPlayersList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineSocialInterface.uc b/Development/Src/Engine/Classes/OnlineSocialInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineStats.uc b/Development/Src/Engine/Classes/OnlineStats.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineStatsInterface.uc b/Development/Src/Engine/Classes/OnlineStatsInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineStatsRead.uc b/Development/Src/Engine/Classes/OnlineStatsRead.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineStatsWrite.uc b/Development/Src/Engine/Classes/OnlineStatsWrite.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/OnlineSubsystem.uc b/Development/Src/Engine/Classes/OnlineSubsystem.uc old mode 100755 new mode 100644 index d75cf30..5db33e4 --- a/Development/Src/Engine/Classes/OnlineSubsystem.uc +++ b/Development/Src/Engine/Classes/OnlineSubsystem.uc @@ -1,1446 +1,1857 @@ -/** - * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. - */ - -/** - * This class holds a set of online interfaces that game code uses to talk - * with the platform layer's services. The set of services are implemented - * as interface pointers so that we can mix & match services at run time. - * This also allows licensees the ability to use part of our base services - * and provide custom implmentations of others. - */ -class OnlineSubsystem extends Object - native - abstract - inherits(FTickableObject) - dependson(Settings) - config(Engine); - -/** The interface to use for creating and/or enumerating account information */ -var OnlineAccountInterface AccountInterface; - -/** The interface for accessing online player methods */ -var OnlinePlayerInterface PlayerInterface; - -/** The interface for accessing online player extension methods */ -var OnlinePlayerInterfaceEx PlayerInterfaceEx; - -/** The interface for accessing system wide network functions */ -var OnlineSystemInterface SystemInterface; - -/** The interface to use for creating, searching for, or destroying online games */ -var OnlineGameInterface GameInterface; - -/** The interface to use for online content */ -var OnlineContentInterface ContentInterface; - -/** The interface to use for voice communication */ -var OnlineVoiceInterface VoiceInterface; - -/** The interface to use for stats read/write operations */ -var OnlineStatsInterface StatsInterface; - -/** The interface to use for reading game specific news announcements */ -var OnlineNewsInterface NewsInterface; - -/** The interface to use for accessing online party chat methods */ -var OnlinePartyChatInterface PartyChatInterface; - -/** The interface to use for downloading files from the network platform */ -var OnlineTitleFileInterface TitleFileInterface; - -/** The interface to use for checking the availability of cached files */ -var OnlineTitleFileCacheInterface TitleFileCacheInterface; - -/** The interface to use for reading and writing files to the cloud */ -var UserCloudFileInterface UserCloudInterface; - -/** The interface to use for sharing files on the cloud */ -var SharedCloudFileInterface SharedCloudInterface; - -/** The interface to use for posting to social networks */ -var OnlineSocialInterface SocialInterface; - -/** The interface to use for multiplayer authentication */ -var OnlineAuthInterface AuthInterface; - -/** Struct that holds a transient, unique identifier for a player */ -struct native UniqueNetId -{ - /** The id used by the network to uniquely identify a player */ - var QWORD Uid; - - structcpptext - { - /** - * The noinit version of the ctor - */ - FORCEINLINE FUniqueNetId(void) - { - } - - /** - * Zeros the data in the struct - * - * @param ignored. only present to allow zeroing of data - */ - FORCEINLINE FUniqueNetId(EEventParm) - { - Uid = (QWORD)0; - } - - /** - * Zeros the data in the struct - * - * @param ignored. only present to allow zeroing of data - */ - FORCEINLINE FUniqueNetId(DWORD) - { - Uid = (QWORD)0; - } - - /** - * Initialize from a QWORD - * - * @param InQWORD The QWORD the UID should be initialized to - */ - FORCEINLINE FUniqueNetId(QWORD InQWORD) - { - Uid = InQWORD; - } - - /** Copy constructor */ - FORCEINLINE FUniqueNetId(const FUniqueNetId& Other) - { - Uid = Other.Uid; - } - - /** - * Compares the IDs for equality - * - * @param Id the value to compare - * - * @returns TRUE if they are equal, FALSE otherwise - */ - FORCEINLINE UBOOL operator==(const FUniqueNetId& Id) const - { - return Uid == Id.Uid; - } - - /** - * Compares the IDs for inequality - * - * @param Id the value to compare - * - * @returns TRUE if they are not equal, FALSE otherwise - */ - FORCEINLINE UBOOL operator!=(const FUniqueNetId& Id) const - { - return Uid != Id.Uid; - } - - /** - * Converts a DWORD into our type in network byte order - * - * @param Id the value to assign - */ - FORCEINLINE FUniqueNetId& operator=(const DWORD Id) - { -#if WITH_PANORAMA || XBOX || WITH_STEAMWORKS - check(0 && "Bad conversion loses data"); -#else - Uid = Id; -#endif - return *this; - } - - /** - * Converts a QWORD into our type in network byte order - * - * @param Id the value to assign - */ - FORCEINLINE FUniqueNetId& operator=(const QWORD Id) - { - Uid = Id; - return *this; - } - - /** - * Converts the unique id to a DWORD - * - * @return unique id as a DWORD - */ - FORCEINLINE DWORD ToDWORD(void) const - { -#if WITH_PANORAMA || XBOX || WITH_STEAMWORKS - check(0 && "Bad conversion loses data"); - return 0; -#else - return Uid & 0xFFFFFFFF; -#endif - } - - /** - * Accessor for determining whether this net id has been assigned a value. - */ - FORCEINLINE UBOOL HasValue() const - { - return (QWORD)0 != Uid; - } - - /** serialization interface */ - friend FArchive& operator<<(FArchive& Ar, FUniqueNetId& Id) - { - Ar << Id.Uid; - return Ar; - } - } -}; - -/** The different login statuses for a player */ -enum ELoginStatus -{ - /** Player has not logged in or chosen a local profile */ - LS_NotLoggedIn, - /** Player is using a local profile but is not logged in */ - LS_UsingLocalProfile, - /** Player has been validated by the platform specific authentication service */ - LS_LoggedIn -}; - -/** This enum indicates access to major features in the game (parent controls */ -enum EFeaturePrivilegeLevel -{ - /** Parental controls have disabled this feature */ - FPL_Disabled, - /** Parental controls allow this feature only with people on their friends list */ - FPL_EnabledFriendsOnly, - /** Parental controls allow this feature everywhere */ - FPL_Enabled -}; - -/** Used to bulk query the friends list */ -struct native FriendsQuery -{ - /** The unique player id to check friends status for */ - var UniqueNetId UniqueId; - /** Out param indicating whether the player is a friend or not */ - var bool bIsFriend; -}; - -/** Indicates where network notifications should appear on the screen */ -enum ENetworkNotificationPosition -{ - NNP_TopLeft, - NNP_TopCenter, - NNP_TopRight, - NNP_CenterLeft, - NNP_Center, - NNP_CenterRight, - NNP_BottomLeft, - NNP_BottomCenter, - NNP_BottomRight -}; - -/** Enum indicating the current state of the online game (in progress, ended, etc.) */ -enum EOnlineGameState -{ - /** An online game has not been created yet */ - OGS_NoSession, - /** Session has been created and the match hasn't started (pre match lobby) */ - OGS_Pending, - /** Session has been asked to start (may take time due to communication with backend) */ - OGS_Starting, - /** The current session has started. Matches with join in progress disabled are no longer joinable */ - OGS_InProgress, - /** The session is still valid, but the match is no longer being played (post match lobby) */ - OGS_Ending, - /** The session is closed and any stats committed */ - OGS_Ended -}; - -/** The state of an async enumeration (friends, content, etc) read request */ -enum EOnlineEnumerationReadState -{ - OERS_NotStarted, - OERS_InProgress, - OERS_Done, - OERS_Failed -}; - -/** The possible friend states for a friend entry */ -enum EOnlineFriendState -{ - /** Not currently online */ - OFS_Offline, - /** Signed in and online */ - OFS_Online, - /** Signed in, online, and idle */ - OFS_Away, - /** Signed in, online, and asks to be left alone */ - OFS_Busy -}; - -/** Holds information about a player in a friends list */ -struct native OnlineFriend -{ - /** Unique identifier of the friend */ - var const UniqueNetId UniqueId; - /** The session id that the player is in */ - var const qword SessionId; - /** Player's nick as published to the online service */ - var const string NickName; - /** String holding information about the player's game state (cap-ed flag, etc.) */ - var const string PresenceInfo; - /** The current state for this friend */ - var const EOnlineFriendState FriendState; - /** Whether the friend is online or not */ - var const bool bIsOnline; - /** Whether the friend is playing a game or not */ - var const bool bIsPlaying; - /** Whether the friend is playing the same game or not */ - var const bool bIsPlayingThisGame; - /** Whether the game the friend is in is joinable or not */ - var const bool bIsJoinable; - /** Whether the friend can chat via voice or not */ - var const bool bHasVoiceSupport; - /** Whether the friends has an invitation outstanding from you or not*/ - var bool bHaveInvited; - /** Whether the friends has sent an invite to you or not */ - var const bool bHasInvitedYou; - - structcpptext - { - /** - * Zeroes members - */ - FOnlineFriend(void) - { - appMemzero(this,sizeof(FOnlineFriend)); - } - - /** - * Copy constructor. Copies the other into this object - * - * @param Other the other structure to copy - */ - FOnlineFriend(const FOnlineFriend& Other) - { - appMemzero(this,sizeof(FOnlineFriend)); - appMemcpy(&UniqueId,&Other.UniqueId,sizeof(FUniqueNetId)); - SessionId = Other.SessionId; - NickName = Other.NickName; - PresenceInfo = Other.PresenceInfo; - FriendState = Other.FriendState; - bIsOnline = Other.bIsOnline; - bIsPlaying = Other.bIsPlaying; - bIsPlayingThisGame = Other.bIsPlayingThisGame; - bIsJoinable = Other.bIsJoinable; - bHasVoiceSupport = Other.bHasVoiceSupport; - bHaveInvited = Other.bHaveInvited; - bHasInvitedYou = Other.bHasInvitedYou; - } - - /** - * Assignment operator. Copies the other into this object - * - * @param Other the other structure to copy - */ - FOnlineFriend& operator=(const FOnlineFriend& Other) - { - if (this != &Other) - { - appMemcpy(&UniqueId,&Other.UniqueId,sizeof(FUniqueNetId)); - SessionId = Other.SessionId; - NickName = Other.NickName; - PresenceInfo = Other.PresenceInfo; - FriendState = Other.FriendState; - bIsOnline = Other.bIsOnline; - bIsPlaying = Other.bIsPlaying; - bIsPlayingThisGame = Other.bIsPlayingThisGame; - bIsJoinable = Other.bIsJoinable; - bHasVoiceSupport = Other.bHasVoiceSupport; - bHaveInvited = Other.bHaveInvited; - bHasInvitedYou = Other.bHasInvitedYou; - } - return *this; - } - } -}; - -/** The type of player owned content */ -enum EOnlineContentType -{ - /** Content downloaded digitally from the online market */ - OCT_Downloaded, - /** Player's save game content */ - OCT_SaveGame -}; - -/** Holds information about a single piece of downloaded content */ -struct native OnlineContent -{ - /** The type of content this represents */ - var EOnlineContentType ContentType; - /** Optional user index that content is downloaded for (-1 means it's not associated with any user) */ - var byte UserIndex; - /** Whether the package is corrupt or not */ - var bool bIsCorrupt; - /** The device ID the DLC is on */ - var int DeviceId; - /** The game specific license mask for this item */ - var int LicenseMask; - /** Displayable name of the content */ - var string FriendlyName; - /** Non-displayable file name of the content */ - var string Filename; - /** File system usable reference to the content */ - var string ContentPath; - /** List of packages in the content */ - var array ContentPackages; - /** List of all non-package files in the content */ - var array ContentFiles; -}; - -/** Holds information about a single piece of cross title downloaded content */ -struct native OnlineCrossTitleContent extends OnlineContent -{ - /** The title ID the content is from */ - var int TitleId; -}; - -/** - * Indicates the connection status with the remote online servers - */ -enum EOnlineServerConnectionStatus -{ - /** Gracefully disconnected from the online servers */ - OSCS_NotConnected, - /** Connected to the online servers just fine */ - OSCS_Connected, - /** Connection was lost for some reason */ - OSCS_ConnectionDropped, - /** Can't connect because of missing network connection */ - OSCS_NoNetworkConnection, - /** Service is temporarily unavailable */ - OSCS_ServiceUnavailable, - /** An update is required before connecting is possible */ - OSCS_UpdateRequired, - /** Servers are too busy to handle the request right now */ - OSCS_ServersTooBusy, - /** Disconnected due to duplicate login */ - OSCS_DuplicateLoginDetected, - /** Can't connect because of an invalid/unknown user */ - OSCS_InvalidUser -}; - -/** - * The various NAT types the player may have - */ -enum ENATType -{ - /** Unable to determine the NAT type */ - NAT_Unknown, - /** Anyone can join without connectivity problems */ - NAT_Open, - /** Most can join but might have problems with strict */ - NAT_Moderate, - /** Will most likely have connectivity problems with strict/moderate */ - NAT_Strict -}; - -/** A player in a session */ -struct native OnlineRegistrant -{ - /** Unique id of the player involved in the arbitrated session */ - var const UniqueNetId PlayerNetId; - - structcpptext - { - /** - * The noinit version of the ctor - */ - FORCEINLINE FOnlineRegistrant(void) - { - } - - /** - * Inits it to the player id specified - * - * @param InId sets the player id - */ - FORCEINLINE FOnlineRegistrant(const FUniqueNetId InId) : - PlayerNetId(InId) - { - } - - /** - * Compares the player IDs for equality - * - * @param Id the value to compare - * - * @returns TRUE if they are equal, FALSE otherwise - */ - FORCEINLINE UBOOL operator==(const FOnlineRegistrant& Other) const - { - return PlayerNetId == Other.PlayerNetId; - } - } -}; - -/** Struct holding the information about a single arbitration registrant */ -struct native OnlineArbitrationRegistrant extends OnlineRegistrant -{ - /** Unique id of the machine involved in the arbitrated session */ - var const qword MachineId; - /** Trust level of the machine/player for the arbitrated session */ - var const int Trustworthiness; -}; - -/** - * Holds a word/phrase that was recognized by the speech analyzer - * - * @note See VoiceInterface.h to change the native layout of this struct - */ -struct SpeechRecognizedWord -{ - /** The id of the word in the vocabulary */ - var int WordId; - /** the actual word */ - var string WordText; - /** How confident the analyzer was in the recognition */ - var float Confidence; -}; - -/** Indicates the state the LAN beacon is in */ -enum ELanBeaconState -{ - /** The lan beacon is disabled */ - LANB_NotUsingLanBeacon, - /** The lan beacon is responding to client requests for information */ - LANB_Hosting, - /** The lan beacon is querying servers for information */ - LANB_Searching -}; - -/** - * Struct holding information used when writing scoring information that is used - * to determine a player's skill rating - */ -struct native OnlinePlayerScore -{ - /** The player that this score is for */ - var UniqueNetId PlayerId; - /** The team that the player is on */ - var int TeamId; - /** The score for this player */ - var int Score; -}; - -/** The series of status codes that the account creation method can return */ -enum EOnlineAccountCreateStatus -{ - /** Created the account successfully */ - OACS_CreateSuccessful, - /** Failed but no indication why */ - OACS_UnknownError, - /** The user name is invalid */ - OACS_InvalidUserName, - /** The password is invalid */ - OACS_InvalidPassword, - /** The unique user name is invalid */ - OACS_InvalidUniqueUserName, - /** The user name is invalid */ - OACS_UniqueUserNameInUse, - /** The backend service is not reachable */ - OACS_ServiceUnavailable -}; - -/** Information about a local talker */ -struct native LocalTalker -{ - /** Whether this talker is currently registered */ - var bool bHasVoice; - /** Whether the talker should send network data */ - var bool bHasNetworkedVoice; - /** Whether the player is trying to speak voice commands */ - var bool bIsRecognizingSpeech; - /** Whether the local talker was speaking last frame */ - var bool bWasTalking; - /** Whether the remote talker is speaking this frame */ - var bool bIsTalking; - /** Whether this player was already registered with the voice interface or not */ - var bool bIsRegistered; -}; - -/** Information about a remote talker */ -struct native RemoteTalker -{ - /** The unique id for this talker */ - var UniqueNetId TalkerId; - /** Used to trigger talking delegates only after a certain period of time has passed */ - var float LastNotificationTime; - /** Whether the remote talker was speaking last frame */ - var bool bWasTalking; - /** Whether the remote talker is speaking this frame */ - var bool bIsTalking; - /** Whether this player was already registered with the voice interface or not */ - var bool bIsRegistered; -}; - -/** Holds the data used in a friend message */ -struct native OnlineFriendMessage -{ - /** The player that is sending the message */ - var UniqueNetId SendingPlayerId; - /** The nick name of the player that sent the message */ - var string SendingPlayerNick; - /** Whether this is a friend invite or just a generic message */ - var bool bIsFriendInvite; - /** Whether this message is a game invite or not */ - var bool bIsGameInvite; - /** Whether the invite has been accepted or not */ - var bool bWasAccepted; - /** Whether the invite has been denied or not */ - var bool bWasDenied; - /** The corresponding message that was sent */ - var string Message; -}; - -/** Holds a named object interface for dynamically bound interfaces */ -struct native NamedInterface -{ - /** The name to bind this object to */ - var name InterfaceName; - /** The object to store at this location */ - var Object InterfaceObject; -}; - -/** Holds the set of registered named interfaces */ -var private array NamedInterfaces; - -/** Holds a name to class name mapping for adding the named interfaces automatically */ -struct native NamedInterfaceDef -{ - /** The name to bind this object to */ - var name InterfaceName; - /** The class to load and create for the named interface */ - var string InterfaceClassName; -}; - -/** The list of named interfaces to automatically create and store */ -var config array NamedInterfaceDefs; - -/** Holds metadata about a given downloadable file */ -struct native EmsFile -{ - /** Hash value, if applicable, of the given file contents */ - var string Hash; - /** Filename as downloaded */ - var string DLName; - /** Logical filename, maps to the downloaded filename */ - var string Filename; - /** File size */ - var int FileSize; -}; - -/** Holds the data used in downloading a file asynchronously from the online service */ -struct native TitleFile -{ - /** The name of the file as requested */ - var string Filename; - /** The async state the file download is in */ - var EOnlineEnumerationReadState AsyncState; - /** The buffer of data for the file */ - var array Data; -}; - -/** Community file info */ -struct native CommunityContentFile -{ - /** Unique identifier for this content file */ - var int ContentId; - /** Additional identifier for providers that need it */ - var int FileId; - /** Game specific content type field */ - var int ContentType; - /** Size in bytes of the payload in the file */ - var int FileSize; - /** The original owner of the file */ - var UniqueNetId Owner; - /** The number of times this file has been downloaded */ - var int DownloadCount; - /** The average rating for this file from the community */ - var float AverageRating; - /** The number of times this file has been rated */ - var int RatingCount; - /** The last rating the user gave this content */ - var int LastRatingGiven; - /** The path to the file if stored locally */ - var string LocalFilePath; -}; - -/** Community file metadata */ -struct native CommunityContentMetadata -{ - /** Unique identifier for this content type */ - var int ContentType; - /** Metadata to associate with the file */ - var array MetadataItems; -}; - -/** Holds the per session information for named sessions */ -struct native NamedSession -{ - /** The name of the session */ - var name SessionName; - /** The platform specific session information */ - var const native transient pointer SessionInfo{void}; - /** The game settings associated with this session */ - var OnlineGameSettings GameSettings; - /** List of players registered in the session */ - var array Registrants; - /** The set of registered players for arbitration */ - var array ArbitrationRegistrants; -}; - -/** The list of sessions currently managed by the online subsystem */ -var const protected array Sessions; - -/** Holds the information contained in Live's achievements for this title */ -struct native AchievementDetails -{ - /** The ID of the achievement */ - var const int Id; - /** The name of the achievement */ - var const string AchievementName; - /** The description of the achievement */ - var const string Description; - /** The description of how to meet the requirements of the achievement */ - var const string HowTo; - /** The image associated with the achievement */ - var Surface Image; - /** The month of when it was earned */ - var const byte MonthEarned; - /** The day of the month of when it was earned */ - var const byte DayEarned; - /** The year of when it was earned (byte is fine since the none of the consoles will last that long :) ) */ - var const byte YearEarned; - /** The day of week since we have a byte available for padding */ - var const byte DayOfWeekEarned; - /** How much this achievement is worth */ - var const int GamerPoints; - /** Whether the achievement is secret (hidden if not achieved) or not */ - var const bool bIsSecret; - /** Whether the achievement awarded online or not */ - var const bool bWasAchievedOnline; - /** Whether the achievement awarded offline or not */ - var const bool bWasAchievedOffline; -}; - -/** The state of an async enumeration (friends, content, etc) read request */ -enum EOnlineNewsType -{ - ONT_Unknown, - ONT_GameNews, - ONT_ContentAnnouncements, - ONT_Misc -}; - -/** Whether to use the override or not */ -var config bool bUseBuildIdOverride; - -/** Used to specify a build override value */ -var config int BuildIdOverride; - -/** The class to create our patcher instance from */ -var config string IniLocPatcherClassName; - -/** The object responsible for patching downloaded INI/loc files */ -var transient IniLocPatcher Patcher; - -/** Used to introduce latency when communicating with the online layer for testing purposes */ -var config float AsyncMinCompletionTime; - -/** Holds information about a player in a friends list */ -struct native OnlinePartyMember -{ - /** Unique identifier of the friend */ - var const UniqueNetId UniqueId; - /** The player's nickname */ - var const string Nickname; - /** The local controller id if local */ - var const byte LocalUserNum; - /** The NAT type for this player */ - var const ENATType NatType; - /** The title id of the title the player is in */ - var const int TitleId; - /** Whether the player is local to this machine or remote */ - var const bool bIsLocal; - /** Whether the player is in party voice or game voice */ - var const bool bIsInPartyVoice; - /** Whether the player is talking or not */ - var const bool bIsTalking; - /** Whether the player is in a game session */ - var const bool bIsInGameSession; - /** Whether the party member is playing the same game or not */ - var const bool bIsPlayingThisGame; - /** The session id that the player is in */ - var const qword SessionId; - /** The first 4 bytes of custom application data */ - var const int Data1; - /** The second 4 bytes of custom application data */ - var const int Data2; - /** The third 4 bytes of custom application data */ - var const int Data3; - /** The fourth 4 bytes of custom application data */ - var const int Data4; -}; - -/** Flags indicating the privileges allowed for posting to social networking sites */ -struct native SocialPostPrivileges -{ - /** The title can post images on social networks */ - var const bool bCanPostImage; - /** The title can post links on social networks */ - var const bool bCanPostLink; -}; - -/** Flags describing the posted content */ -struct native SocialPostImageFlags -{ - /** Image is user generated content */ - var bool bIsUserGeneratedImage; - /** Post is the result of miscellaneous game activity */ - var bool bIsGameGeneratedImage; - /** Post is the result of an earned achievement */ - var bool bIsAchievementImage; - /** Post is for media */ - var bool bIsMediaImage; -}; - -/** Info needed to post an image */ -struct native SocialPostImageInfo -{ - var SocialPostImageFlags Flags; - /** On Facebook, this is the text that the user provides to describe the image, which appears directly below the user's name */ - var string MessageText; - /** On Facebook, clicking this text displays the image at full size */ - var string TitleText; - /** The caption of the preview image that accompanies this post */ - var string PictureCaption; - /** On Facebook, this text is displayed below the caption */ - var string PictureDescription; -}; - -/** Info needed to post an image link */ -struct native SocialPostLinkInfo extends SocialPostImageInfo -{ - /** Clicking on the message title text on the social networking site navigates to this URL */ - var string TitleURL; - /** Clicking on the preview image on the social networking site navigates to this URL */ - var string PictureURL; -}; - -cpptext -{ -// FTickableObject interface - - /** - * Returns whether it is okay to tick this object. E.g. objects being loaded in the background shouldn't be ticked - * till they are finalized and unreachable objects cannot be ticked either. - * - * @return TRUE if tickable, FALSE otherwise - */ - virtual UBOOL IsTickable() const - { - // We cannot tick objects that are unreachable or are in the process of being loaded in the background. - return !HasAnyFlags( RF_Unreachable | RF_AsyncLoading ); - } - - /** - * Used to determine if an object should be ticked when the game is paused. - * - * @return always TRUE as networking needs to be ticked even when paused - */ - virtual UBOOL IsTickableWhenPaused() const - { - return TRUE; - } - - /** - * Here to complete the interface but needs to be overriden - * - * @param ignored - */ - virtual void Tick(FLOAT) - { - check(0 && "Must be overridden"); - } - - /** - * Generates a string representation of a UniqueNetId struct. - * - * @param IdToConvert the unique net id that should be converted to a string. - * - * @return the specified UniqueNetId represented as a string. - */ - static FString UniqueNetIdToString( const FUniqueNetId& IdToConvert ); - - /** - * Converts a string representing a UniqueNetId into a UniqueNetId struct. - * - * @param UniqueNetIdString the string containing the text representation of the unique id. - * @param out_UniqueId will receive the UniqueNetId generated from the string. - * - * @return TRUE if the string was successfully converted into a UniqueNetId; FALSE if the string was not a valid UniqueNetId. - */ - static UBOOL StringToUniqueNetId( const FString& UniqueNetIdString, FUniqueNetId& out_UniqueId ); - - /** - * Searches the named session array for the specified session - * - * @param SessionName the name to search for - * - * @return pointer to the struct if found, NULL otherwise - */ - inline FNamedSession* GetNamedSession(FName SessionName) - { - for (INT SearchIndex = 0; SearchIndex < Sessions.Num(); SearchIndex++) - { - if (Sessions(SearchIndex).SessionName == SessionName) - { - return &Sessions(SearchIndex); - } - } - return NULL; - } - - /** - * Searches the named session array for the specified session - * - * @param SessionName the name to search for - * - * @return TRUE if found, FALSE otherwise - */ - inline UBOOL HasNamedSession(FName SessionName) - { - return GetNamedSession(SessionName) != NULL; - } - - /** - * Adds a new named session to the list - * - * @param SessionName the name to search for - * @param GameSettings the game settings to add - * - * @return a pointer to the struct that was added - */ - inline FNamedSession* AddNamedSession(FName SessionName,UOnlineGameSettings* GameSettings) - { - INT AddIndex = Sessions.AddZeroed(); - Sessions(AddIndex).SessionName = SessionName; - Sessions(AddIndex).GameSettings = GameSettings; - return &Sessions(AddIndex); - } - - /** - * Searches the named session array for the specified session and removes it - * - * @param SessionName the name to search for - */ - virtual void RemoveNamedSession(FName SessionName) - { - for (INT SearchIndex = 0; SearchIndex < Sessions.Num(); SearchIndex++) - { - if (Sessions(SearchIndex).SessionName == SessionName) - { - Sessions.Remove(SearchIndex); - return; - } - } - } - - /** - * @return platform specific id for a session - */ - virtual QWORD GetSessionId(FName SessionName) - { - return 0; - } - - /** - * @return platform specific id for a session from a search result - */ - virtual QWORD GetSearchResultSessionId(const struct FOnlineGameSearchResult* SearchResult) - { - return 0; - } - - /** - * Notification sent to OnlineSubsystem that pre-travel cleanup is occuring - * - * @param bSessionEnded whether or not the game session has ended - */ - virtual void NotifyCleanupWorld(UBOOL bSessionEnded) - { - } -} - -/** - * Called from engine start up code to allow the subsystem to initialize - * - * @return TRUE if the initialization was successful, FALSE otherwise - */ -native event bool Init(); - -/** - * Used to trigger any automated tasks that need to happen just after startup - */ -event bool PostInit() -{ - local class IniLocPatcherClass; - - // Now that the subsystem is setup, try to download any config/loc updates - if (IniLocPatcherClassName != "") - { - `Log("Loading "$IniLocPatcherClassName$" for INI/Loc patching",,'DevMCP'); - IniLocPatcherClass = class(DynamicLoadObject(IniLocPatcherClassName,class'Class')); - Patcher = new IniLocPatcherClass; - if (Patcher != None) - { - Patcher.Init(); - } - else - { - return false; - } - } - return true; -} - -/** - * Called from the engine shutdown code to allow the subsystem to release any - * resources that may have been allocated - */ -event Exit(); - -/** - * Called from native code to assign the account interface - * - * @param NewInterface the object to assign as providing the account interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetAccountInterface(Object NewInterface) -{ - AccountInterface = OnlineAccountInterface(NewInterface); - // This will return false, if the interface wasn't supported - return AccountInterface != None; -} - -/** - * Called from native code to assign the player interface - * - * @param NewInterface the object to assign as providing the player interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetPlayerInterface(Object NewInterface) -{ - PlayerInterface = OnlinePlayerInterface(NewInterface); - // This will return false, if the interface wasn't supported - return PlayerInterface != None; -} - -/** - * Called from native code to assign the extended player interface - * - * @param NewInterface the object to assign as providing the player interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetPlayerInterfaceEx(Object NewInterface) -{ - PlayerInterfaceEx = OnlinePlayerInterfaceEx(NewInterface); - // This will return false, if the interface wasn't supported - return PlayerInterfaceEx != None; -} - -/** - * Called from native code to assign the system interface - * - * @param NewInterface the object to assign as providing the system interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetSystemInterface(Object NewInterface) -{ - SystemInterface = OnlineSystemInterface(NewInterface); - // This will return false, if the interface wasn't supported - return SystemInterface != None; -} - -/** - * Called from native code to assign the game interface - * - * @param NewInterface the object to assign as providing the game interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetGameInterface(Object NewInterface) -{ - GameInterface = OnlineGameInterface(NewInterface); - // This will return false, if the interface wasn't supported - return GameInterface != None; -} - -/** - * Called from native code to assign the content interface - * - * @param NewInterface the object to assign as providing the content interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetContentInterface(Object NewInterface) -{ - ContentInterface = OnlineContentInterface(NewInterface); - // This will return false, if the interface wasn't supported - return ContentInterface != None; -} - -/** - * Called from native code to assign the voice interface - * - * @param NewInterface the object to assign as providing the voice interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetVoiceInterface(Object NewInterface) -{ - VoiceInterface = OnlineVoiceInterface(NewInterface); - // This will return false, if the interface wasn't supported - return VoiceInterface != None; -} - -/** - * Called from native code to assign the stats interface - * - * @param NewInterface the object to assign as providing the stats interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetStatsInterface(Object NewInterface) -{ - StatsInterface = OnlineStatsInterface(NewInterface); - // This will return false, if the interface wasn't supported - return StatsInterface != None; -} - -/** - * Called from native code to assign the news interface - * - * @param NewInterface the object to assign as providing the news interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetNewsInterface(Object NewInterface) -{ - NewsInterface = OnlineNewsInterface(NewInterface); - // This will return false, if the interface wasn't supported - return NewsInterface != None; -} - -/** - * Called from native code to assign the party chat interface - * - * @param NewInterface the object to assign as providing the party chat interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetPartyChatInterface(Object NewInterface) -{ - PartyChatInterface = OnlinePartyChatInterface(NewInterface); - // This will return false, if the interface wasn't supported - return PartyChatInterface != None; -} - -/** - * Called from native code to assign the title file interface - * - * @param NewInterface the object to assign as providing the file downloading interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetTitleFileInterface(Object NewInterface) -{ - TitleFileInterface = OnlineTitleFileInterface(NewInterface); - // This will return false, if the interface wasn't supported - return TitleFileInterface != None; -} - -/** - * Called from native code to assign the title file caching interface - * - * @param NewInterface the object to assign as providing the file caching interface - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetTitleFileCacheInterface(Object NewInterface) -{ - TitleFileCacheInterface = OnlineTitleFileCacheInterface(NewInterface); - // This will return false, if the interface wasn't supported - return TitleFileCacheInterface != None; -} - -/** - * Called from native code to assign the social interface - * - * @param SocialInterface the object to assign as providing the interface for posting to social networks - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetSocialInterface(Object InSocialInterface) -{ - SocialInterface = OnlineSocialInterface(InSocialInterface); - // This will return false, if the interface wasn't supported - return SocialInterface != None; -} - -/** - * Called from native code to assign the auth interface - * - * @param AuthInterface the object to assign as providing the interface for multiplayer authentication - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetAuthInterface(Object InAuthInterface) -{ - AuthInterface = OnlineAuthInterface(InAuthInterface); - // This will return false, if the interface wasn't supported - return AuthInterface != None; -} - -/** - * Called from native code to assign the user cloud interface - * - * @param InCloudInterface the object to assign as providing the interface for user cloud access - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetUserCloudInterface(Object InCloudInterface) -{ - UserCloudInterface = UserCloudFileInterface(InCloudInterface); - // This will return false, if the interface wasn't supported - return UserCloudInterface != None; -} - -/** - * Called from native code to assign the shared cloud interface - * - * @param InCloudInterface the object to assign as providing the interface for shared cloud access - * - * @return TRUE if the interface is valid, FALSE otherwise - */ -event bool SetSharedCloudInterface(Object InCloudInterface) -{ - SharedCloudInterface = SharedCloudFileInterface(InCloudInterface); - // This will return false, if the interface wasn't supported - return SharedCloudInterface != None; -} - -/** - * Adds the interface object to the named interface list with the specified name - * - * @param InterfaceName the name of the interface to add it as - * @param NewInterface the object/interface that is being cached - */ -event SetNamedInterface(name InterfaceName,Object NewInterface) -{ - local int InterfaceIndex; - - // Determine whether to add or replace - InterfaceIndex = NamedInterfaces.Find('InterfaceName',InterfaceName); - if (InterfaceIndex == INDEX_NONE) - { - // We are adding to the list - InterfaceIndex = NamedInterfaces.Length; - NamedInterfaces.Length = NamedInterfaces.Length + 1; - NamedInterfaces[InterfaceIndex].InterfaceName = InterfaceName; - } - // Replace whatever pointer was previously there - NamedInterfaces[InterfaceIndex].InterfaceObject = NewInterface; -} - -/** - * Returns the interface object associated with the specified name - * - * @param InterfaceName the name of the interface to retrieve - * - * @return The object that matches the interface name if found - */ -event Object GetNamedInterface(name InterfaceName) -{ - local int InterfaceIndex; - - // Find the index in the array for this interface - InterfaceIndex = NamedInterfaces.Find('InterfaceName',InterfaceName); - if (InterfaceIndex != INDEX_NONE) - { - return NamedInterfaces[InterfaceIndex].InterfaceObject; - } - return None; -} - -/** - * Generates a string representation of a UniqueNetId struct. - * - * @param IdToConvert the unique net id that should be converted to a string. - * - * @return the specified UniqueNetId represented as a string. - */ -static final native noexportheader function string UniqueNetIdToString(const out UniqueNetId IdToConvert); - -/** - * Converts a string representing a UniqueNetId into a UniqueNetId struct. - * - * @param UniqueNetIdString the string containing the text representation of the unique id. - * @param out_UniqueId will receive the UniqueNetId generated from the string. - * - * @return TRUE if the string was successfully converted into a UniqueNetId; FALSE if the string was not a valid UniqueNetId. - */ -static final native noexportheader function bool StringToUniqueNetId(string UniqueNetIdString,out UniqueNetId out_UniqueId); - -/** - * Returns the unique id of the player for the specified index - * - * @param UserIndex the user to return the id of - * - * @return the unique id of the player at the specified index - */ -event UniqueNetId GetPlayerUniqueNetIdFromIndex(int UserIndex) -{ - local UniqueNetId ReturnVal, NullId; - - if (PlayerInterface == none || !PlayerInterface.GetUniquePlayerId(UserIndex, ReturnVal)) - { - ReturnVal = NullId; - } - - return ReturnVal; -} - -/** - * Generates a unique number based off of the current script compilation - * - * @return the unique number from the current script compilation - */ -native function int GetBuildUniqueId(); - -/** - * Returns the number of players that can be signed in on this platform - */ -static final native function int GetNumSupportedLogins(); - -/** - * Logs the game settings object - * - * @param GameSettings settings to dump - */ -static function DumpGameSettings(const OnlineGameSettings GameSettings) -{ - `Log(" OnlineGameSettings: "$GameSettings); - `Log(" OwningPlayerName: "$GameSettings.OwningPlayerName); - `Log(" OwningPlayerId: "$UniqueNetIdToString(GameSettings.OwningPlayerId)); - `Log(" PingInMs: "$GameSettings.PingInMs); - `Log(" NumPublicConnections: "$GameSettings.NumPublicConnections); - `Log(" NumOpenPublicConnections: "$GameSettings.NumOpenPublicConnections); - `Log(" NumPrivateConnections: "$GameSettings.NumPrivateConnections); - `Log(" NumOpenPrivateConnections: "$GameSettings.NumOpenPrivateConnections); - `Log(" bIsLanMatch: "$GameSettings.bIsLanMatch); - `Log(" bIsDedicated: "$GameSettings.bIsDedicated); - `Log(" bUsesStats: "$GameSettings.bUsesStats); - `Log(" bUsesArbitration: "$GameSettings.bUsesArbitration); - `Log(" bAntiCheatProtected: "$GameSettings.bAntiCheatProtected); - `Log(" bShouldAdvertise: "$GameSettings.bShouldAdvertise); - `Log(" bAllowJoinInProgress: "$GameSettings.bAllowJoinInProgress); - `Log(" bAllowInvites: "$GameSettings.bAllowInvites); - `Log(" bUsesPresence: "$GameSettings.bUsesPresence); - `Log(" bWasFromInvite: "$GameSettings.bWasFromInvite); - `Log(" bAllowJoinViaPresence: "$GameSettings.bAllowJoinViaPresence); - `Log(" bAllowJoinViaPresenceFriendsOnly: "$GameSettings.bAllowJoinViaPresenceFriendsOnly); - `Log(" GameState: "$GameSettings.GameState); -} - -/** - * Logs the session state for all sessions present - */ -function DumpSessionState() -{ - local int Index; - local int PlayerIndex; - local UniqueNetId NetId; - local UniqueNetId ZeroId; - - // To make the dumb warning go away even though it is used - NetId = ZeroId; - ZeroId = NetId; - - `Log("Unreal online session state"); - `Log("-------------------------------------------------------------"); - `Log(""); - `Log("Number of sessions: "$Sessions.Length); - - // Iterate through the sessions listing the session plus the registrants - for (Index = 0; Index < Sessions.Length; Index++) - { - `Log(" Session: "$Sessions[Index].SessionName); - DumpGameSettings(Sessions[Index].GameSettings); - `Log(""); - - `Log(" Number of players: "$Sessions[Index].Registrants.Length); - // List each player in the session - for (PlayerIndex = 0; PlayerIndex < Sessions[Index].Registrants.Length; PlayerIndex++) - { - NetId = Sessions[Index].Registrants[PlayerIndex].PlayerNetId; - `Log(" Player: "$UniqueNetIdToString(NetId)); - } - `Log(" Number of arbitrated players: "$Sessions[Index].ArbitrationRegistrants.Length); - // List each arbitrated player in the session - for (PlayerIndex = 0; PlayerIndex < Sessions[Index].ArbitrationRegistrants.Length; PlayerIndex++) - { - NetId = Sessions[Index].ArbitrationRegistrants[PlayerIndex].PlayerNetId; - `Log(" Player: "$UniqueNetIdToString(NetId)); - } - } -} - -`if(`notdefined(FINAL_RELEASE)) - /** - * Log list of players' netids for debugging - */ - static function DumpNetIds(const out array Players, string DebugLabel) - { - local int PlayerIdx; - local UniqueNetId NetId; - for (PlayerIdx=0; PlayerIdx ContentPackages; + /** List of all non-package files in the content */ + var array ContentFiles; +}; + +/** Holds information about a single piece of cross title downloaded content */ +struct native OnlineCrossTitleContent extends OnlineContent +{ + /** The title ID the content is from */ + var int TitleId; +}; + +/** + * Indicates the connection status with the remote online servers + */ +enum EOnlineServerConnectionStatus +{ + /** Gracefully disconnected from the online servers */ + OSCS_NotConnected, + /** Connected to the online servers just fine */ + OSCS_Connected, + /** Connection was lost for some reason */ + OSCS_ConnectionDropped, + /** Can't connect because of missing network connection */ + OSCS_NoNetworkConnection, + /** Service is temporarily unavailable */ + OSCS_ServiceUnavailable, + /** An update is required before connecting is possible */ + OSCS_UpdateRequired, + /** Servers are too busy to handle the request right now */ + OSCS_ServersTooBusy, + /** Disconnected due to duplicate login */ + OSCS_DuplicateLoginDetected, + /** Can't connect because of an invalid/unknown user */ + OSCS_InvalidUser +}; + +/** + * The various NAT types the player may have + */ +enum ENATType +{ + /** Unable to determine the NAT type */ + NAT_Unknown, + /** Anyone can join without connectivity problems */ + NAT_Open, + /** Most can join but might have problems with strict */ + NAT_Moderate, + /** Will most likely have connectivity problems with strict/moderate */ + NAT_Strict +}; + +/** A player in a session */ +struct native OnlineRegistrant +{ + /** Unique id of the player involved in the arbitrated session */ + var const UniqueNetId PlayerNetId; + + structcpptext + { + /** + * The noinit version of the ctor + */ + FORCEINLINE FOnlineRegistrant(void) + { + } + + /** + * Inits it to the player id specified + * + * @param InId sets the player id + */ + FORCEINLINE FOnlineRegistrant(const FUniqueNetId InId) : + PlayerNetId(InId) + { + } + + /** + * Compares the player IDs for equality + * + * @param Id the value to compare + * + * @returns TRUE if they are equal, FALSE otherwise + */ + FORCEINLINE UBOOL operator==(const FOnlineRegistrant& Other) const + { + return PlayerNetId == Other.PlayerNetId; + } + } +}; + +/** Struct holding the information about a single arbitration registrant */ +struct native OnlineArbitrationRegistrant extends OnlineRegistrant +{ + /** Unique id of the machine involved in the arbitrated session */ + var const qword MachineId; + /** Trust level of the machine/player for the arbitrated session */ + var const int Trustworthiness; +}; + +/** + * Holds a word/phrase that was recognized by the speech analyzer + * + * @note See VoiceInterface.h to change the native layout of this struct + */ +struct SpeechRecognizedWord +{ + /** The id of the word in the vocabulary */ + var int WordId; + /** the actual word */ + var string WordText; + /** How confident the analyzer was in the recognition */ + var float Confidence; +}; + +/** Indicates the state the LAN beacon is in */ +enum ELanBeaconState +{ + /** The lan beacon is disabled */ + LANB_NotUsingLanBeacon, + /** The lan beacon is responding to client requests for information */ + LANB_Hosting, + /** The lan beacon is querying servers for information */ + LANB_Searching +}; + +/** + * Struct holding information used when writing scoring information that is used + * to determine a player's skill rating + */ +struct native OnlinePlayerScore +{ + /** The player that this score is for */ + var UniqueNetId PlayerId; + /** The team that the player is on */ + var int TeamId; + /** The score for this player */ + var int Score; +}; + +/** The series of status codes that the account creation method can return */ +enum EOnlineAccountCreateStatus +{ + /** Created the account successfully */ + OACS_CreateSuccessful, + /** Failed but no indication why */ + OACS_UnknownError, + /** The user name is invalid */ + OACS_InvalidUserName, + /** The password is invalid */ + OACS_InvalidPassword, + /** The unique user name is invalid */ + OACS_InvalidUniqueUserName, + /** The user name is invalid */ + OACS_UniqueUserNameInUse, + /** The backend service is not reachable */ + OACS_ServiceUnavailable +}; + +/** Information about a local talker */ +struct native LocalTalker +{ + /** Whether this talker is currently registered */ + var bool bHasVoice; + /** Whether the talker should send network data */ + var bool bHasNetworkedVoice; + /** Whether the player is trying to speak voice commands */ + var bool bIsRecognizingSpeech; + /** Whether the local talker was speaking last frame */ + var bool bWasTalking; + /** Whether the remote talker is speaking this frame */ + var bool bIsTalking; + /** Whether this player was already registered with the voice interface or not */ + var bool bIsRegistered; +}; + +/** Information about a remote talker */ +struct native RemoteTalker +{ + /** The unique id for this talker */ + var UniqueNetId TalkerId; + /** Used to trigger talking delegates only after a certain period of time has passed */ + var float LastNotificationTime; + /** Whether the remote talker was speaking last frame */ + var bool bWasTalking; + /** Whether the remote talker is speaking this frame */ + var bool bIsTalking; + /** Whether this player was already registered with the voice interface or not */ + var bool bIsRegistered; +}; + +/** Holds the data used in a friend message */ +struct native OnlineFriendMessage +{ + /** The player that is sending the message */ + var UniqueNetId SendingPlayerId; + /** The nick name of the player that sent the message */ + var string SendingPlayerNick; + /** Whether this is a friend invite or just a generic message */ + var bool bIsFriendInvite; + /** Whether this message is a game invite or not */ + var bool bIsGameInvite; + /** Whether the invite has been accepted or not */ + var bool bWasAccepted; + /** Whether the invite has been denied or not */ + var bool bWasDenied; + /** The corresponding message that was sent */ + var string Message; +}; + +/** Holds a named object interface for dynamically bound interfaces */ +struct native NamedInterface +{ + /** The name to bind this object to */ + var name InterfaceName; + /** The object to store at this location */ + var Object InterfaceObject; +}; + +/** Holds the set of registered named interfaces */ +var private array NamedInterfaces; + +/** Holds a name to class name mapping for adding the named interfaces automatically */ +struct native NamedInterfaceDef +{ + /** The name to bind this object to */ + var name InterfaceName; + /** The class to load and create for the named interface */ + var string InterfaceClassName; +}; + +/** The list of named interfaces to automatically create and store */ +var config array NamedInterfaceDefs; + +/** Holds metadata about a given downloadable file */ +struct native EmsFile +{ + /** Hash value, if applicable, of the given file contents */ + var string Hash; + /** Filename as downloaded */ + var string DLName; + /** Logical filename, maps to the downloaded filename */ + var string Filename; + /** File size */ + var int FileSize; +}; + +/** Holds the data used in downloading a file asynchronously from the online service */ +struct native TitleFile +{ + /** The name of the file as requested */ + var string Filename; + /** The async state the file download is in */ + var EOnlineEnumerationReadState AsyncState; + /** The buffer of data for the file */ + var array Data; +}; + +/** Community file info */ +struct native CommunityContentFile +{ + /** Unique identifier for this content file */ + var int ContentId; + /** Additional identifier for providers that need it */ + var int FileId; + /** Game specific content type field */ + var int ContentType; + /** Size in bytes of the payload in the file */ + var int FileSize; + /** The original owner of the file */ + var UniqueNetId Owner; + /** The number of times this file has been downloaded */ + var int DownloadCount; + /** The average rating for this file from the community */ + var float AverageRating; + /** The number of times this file has been rated */ + var int RatingCount; + /** The last rating the user gave this content */ + var int LastRatingGiven; + /** The path to the file if stored locally */ + var string LocalFilePath; +}; + +/** Community file metadata */ +struct native CommunityContentMetadata +{ + /** Unique identifier for this content type */ + var int ContentType; + /** Metadata to associate with the file */ + var array MetadataItems; +}; + +/** Holds the per session information for named sessions */ +struct native NamedSession +{ + /** The name of the session */ + var name SessionName; + /** The platform specific session information */ + var const native transient pointer SessionInfo{void}; + /** The game settings associated with this session */ + var OnlineGameSettings GameSettings; + /** List of players registered in the session */ + var array Registrants; + /** The set of registered players for arbitration */ + var array ArbitrationRegistrants; +}; + +/** The list of sessions currently managed by the online subsystem */ +var const protected array Sessions; + +/** Holds the information contained in Live's achievements for this title */ +struct native AchievementDetails +{ + /** The ID of the achievement */ + var const int Id; + /** The name of the achievement */ + var const string AchievementName; + /** The description of the achievement */ + var const string Description; + /** The description of how to meet the requirements of the achievement */ + var const string HowTo; + /** The image associated with the achievement */ + var Surface Image; + /** The month of when it was earned */ + var const byte MonthEarned; + /** The day of the month of when it was earned */ + var const byte DayEarned; + /** The year of when it was earned (byte is fine since the none of the consoles will last that long :) ) */ + var const byte YearEarned; + /** The day of week since we have a byte available for padding */ + var const byte DayOfWeekEarned; + /** How much this achievement is worth */ + var const int GamerPoints; + /** Whether the achievement is secret (hidden if not achieved) or not */ + var const bool bIsSecret; + /** Whether the achievement awarded online or not */ + var const bool bWasAchievedOnline; + /** Whether the achievement awarded offline or not */ + var const bool bWasAchievedOffline; +}; + +/** The state of an async enumeration (friends, content, etc) read request */ +enum EOnlineNewsType +{ + ONT_Unknown, + ONT_GameNews, + ONT_ContentAnnouncements, + ONT_Misc +}; + +/** Whether to use the override or not */ +var config bool bUseBuildIdOverride; + +/** Used to specify a build override value */ +var config int BuildIdOverride; + +/** The class to create our patcher instance from */ +var config string IniLocPatcherClassName; + +/** The object responsible for patching downloaded INI/loc files */ +var transient IniLocPatcher Patcher; + +/** Used to introduce latency when communicating with the online layer for testing purposes */ +var config float AsyncMinCompletionTime; + +/** Holds information about a player in a friends list */ +struct native OnlinePartyMember +{ + /** Unique identifier of the friend */ + var const UniqueNetId UniqueId; + /** The player's nickname */ + var const string Nickname; + /** The local controller id if local */ + var const byte LocalUserNum; + /** The NAT type for this player */ + var const ENATType NatType; + /** The title id of the title the player is in */ + var const int TitleId; + /** Whether the player is local to this machine or remote */ + var const bool bIsLocal; + /** Whether the player is in party voice or game voice */ + var const bool bIsInPartyVoice; + /** Whether the player is talking or not */ + var const bool bIsTalking; + /** Whether the player is in a game session */ + var const bool bIsInGameSession; + /** Whether the party member is playing the same game or not */ + var const bool bIsPlayingThisGame; + /** The session id that the player is in */ + var const qword SessionId; + /** The first 4 bytes of custom application data */ + var const int Data1; + /** The second 4 bytes of custom application data */ + var const int Data2; + /** The third 4 bytes of custom application data */ + var const int Data3; + /** The fourth 4 bytes of custom application data */ + var const int Data4; +}; + +/** Flags indicating the privileges allowed for posting to social networking sites */ +struct native SocialPostPrivileges +{ + /** The title can post images on social networks */ + var const bool bCanPostImage; + /** The title can post links on social networks */ + var const bool bCanPostLink; +}; + +/** Flags describing the posted content */ +struct native SocialPostImageFlags +{ + /** Image is user generated content */ + var bool bIsUserGeneratedImage; + /** Post is the result of miscellaneous game activity */ + var bool bIsGameGeneratedImage; + /** Post is the result of an earned achievement */ + var bool bIsAchievementImage; + /** Post is for media */ + var bool bIsMediaImage; +}; + +/** Info needed to post an image */ +struct native SocialPostImageInfo +{ + var SocialPostImageFlags Flags; + /** On Facebook, this is the text that the user provides to describe the image, which appears directly below the user's name */ + var string MessageText; + /** On Facebook, clicking this text displays the image at full size */ + var string TitleText; + /** The caption of the preview image that accompanies this post */ + var string PictureCaption; + /** On Facebook, this text is displayed below the caption */ + var string PictureDescription; +}; + +/** Info needed to post an image link */ +struct native SocialPostLinkInfo extends SocialPostImageInfo +{ + /** Clicking on the message title text on the social networking site navigates to this URL */ + var string TitleURL; + /** Clicking on the preview image on the social networking site navigates to this URL */ + var string PictureURL; +}; + +enum EFeaturePrivilege +{ + FP_OnlinePlay, // 0 + FP_CommunicationText, // 1 + FP_CommunicationVideo, // 2 + FP_CommunicationVoice, // 3 + FP_ShareUserCreatedContent, // 4 + FP_PurchaseContent, // 5 + FP_ViewPlayerProfile, // 6 + FP_ShowPresenceInformation, // 7 + FP_RecordDVRClips, // 8 + FP_CloudStorage, // 9 + FP_PremiumContent, // 10 + FP_PremiumVideoContent, // 11 + FP_BrowseInternet, // 12 + FP_SocialNetworkSharing, // 13 + FP_KinectSharing, // 14 + FP_FitnessUpload, // 15 + FP_MAX // 16 +}; + +enum EReputationFeedbackType +{ + RFBT_CommunicationsAbusiveVoice,// 0 + RFBT_CommunicationsInappropriateVideo,// 1 + RFBT_FairPlayCheater, // 2 + RFBT_FairPlayKicked, // 3 + RFBT_FairPlayKillsTeammates, // 4 + RFBT_FairPlayQuitter, // 5 + RFBT_FairPlayTampering, // 6 + RFBT_InappropriateUserGeneratedContent,// 7 + RFBT_PositiveHelpfulPlayer, // 8 + RFBT_PositiveHighQualityUserGeneratedContent,// 9 + RFBT_PositiveSkilledPlayer, // 10 + RFBT_MAX // 11 +}; + +enum EOnlineAccountTier +{ + OAT_Unknown, // 0 + OAT_NewUser, // 1 + OAT_Silver, // 2 + OAT_Gold, // 3 + OAT_FamilyGold, // 4 + OAT_MAX // 5 +}; + +enum EOnlineCreateGameSessionFlag +{ + OCGSF_New, // 0 + OCGSF_ReSubmit, // 1 + OCGSF_MAX // 2 +}; + +enum EOnlineFileType +{ + OFT_Unknown, // 0 + OFT_Binary, // 1 + OFT_Json, // 2 + OFT_MAX // 3 +}; + +enum EAchievementRewardType +{ + ART_Unknown, // 0 + ART_Gamerscore, // 1 + ART_InApp, // 2 + ART_Art, // 3 + ART_MAX // 4 +}; + +enum EAchievementMediaAssetType +{ + AMAT_Unknown, // 0 + AMAT_Icon, // 1 + AMAT_Art, // 2 + AMAT_MAX // 3 +}; + +enum EAchievementUnlockType +{ + AUT_Unknown, // 0 + AUT_All, // 1 + AUT_Persistent, // 2 + AUT_Challenge, // 3 + AUT_MAX // 4 +}; + +enum EAchievementParticipationType +{ + EAPT_Unknown, // 0 + EAPT_Individual, // 1 + EAPT_Group, // 2 + EAPT_MAX // 3 +}; + +enum EAchievementProgressState +{ + APS_Unknown, // 0 + APS_Achieved, // 1 + APS_NotStarted, // 2 + APS_InProgress, // 3 + APS_MAX // 4 +}; + +enum ECatalogSortOrder +{ + CSO_FreeAndPaidCountDaily, // 0 + CSO_PaidCountAllTime, // 1 + CSO_PaidCountDail, // 2 + CSO_DigitalReleaseDate, // 3 + CSO_ReleaseDate, // 4 + CSO_UserRatings, // 5 + CSO_MAX // 6 +}; + +enum EMediaItemType +{ + MIT_Unknown, // 0 + MIT_Game, // 1 + MIT_Application, // 2 + MIT_GameContent, // 3 + MIT_GameConsumable, // 4 + MIT_Subscription, // 5 + MIT_MAX // 6 +}; + +enum EInventoryItemState +{ + IIS_Unknown, // 0 + IIS_All, // 1 + IIS_Enabled, // 2 + IIS_Suspended, // 3 + IIS_Expired, // 4 + IIS_Canceled, // 5 + IIS_MAX // 6 +}; + +enum ESessionMemberStatus +{ + DSMS_Reserved, // 0 + DSMS_Inactive, // 1 + DSMS_Ready, // 2 + DSMS_Active, // 3 + DSMS_MAX // 4 +}; + +struct native OnlineProfile +{ + var string UserId; + var OnlineSubsystem.EOnlineAccountTier AccountTier; + var int Gamerscore; + var string ApplicationDisplayName; + var string GameDisplayName; + var string ApplicationDisplayPictureResizeURL; + var string GameDisplayPictureResizeURL; + + structdefaultproperties + { + UserId="" + AccountTier=EOnlineAccountTier.OAT_Unknown + Gamerscore=0 + ApplicationDisplayName="" + GameDisplayName="" + ApplicationDisplayPictureResizeURL="" + GameDisplayPictureResizeURL="" + } +}; + +struct native UserAccountInfo +{ + var string DateOfBirth; + var string Email; + var string FirstName; + var string LastName; + var string Gamertag; + + structdefaultproperties + { + DateOfBirth="" + Email="" + FirstName="" + LastName="" + Gamertag="" + } +}; + +struct native AchievementReward +{ + var const string RewardName; + var const string Description; + var const string Data; + var const OnlineSubsystem.EAchievementRewardType RewardType; + + structdefaultproperties + { + RewardName="" + Description="" + Data="" + RewardType=EAchievementRewardType.ART_Unknown + } +}; + +struct native AchievementMediaAsset +{ + var const string AssetName; + var const OnlineSubsystem.EAchievementMediaAssetType AssetType; + var const string AssetURL; + + structdefaultproperties + { + AssetName="" + AssetType=EAchievementMediaAssetType.AMAT_Unknown + AssetURL="" + } +}; + +struct native AchievementTitleAssociation +{ + var const string LocalizedTitleName; + var const int TitleId; + + structdefaultproperties + { + LocalizedTitleName="" + TitleId=0 + } +}; + +struct native MarketplaceProductAvailability +{ + var const array AcceptablePaymentInstrumentTypes; + var const string Description; + var const string Title; + var const int ConsumableQuantity; + var const string ContentId; + var const string CurrencyCode; + var const string DisplayListPrice; + var const string DisplayPrice; + var const string DistributionType; + var const bool bIsPurchasable; + var const float ListPrice; + var const string OfferId; + var const float Price; + var const string PromotionalText; + var const string SignedOffer; + + structdefaultproperties + { + AcceptablePaymentInstrumentTypes=none + Description="" + Title="" + ConsumableQuantity=0 + ContentId="" + CurrencyCode="" + DisplayListPrice="" + DisplayPrice="" + DistributionType="" + bIsPurchasable=false + ListPrice=0.0000000 + OfferId="" + Price=0.0000000 + PromotionalText="" + SignedOffer="" + } +}; + +struct native MarketplaceProductImage +{ + var const string Id; + var const int Height; + var const int Width; + var const string Purpose; + var const array Purposes; + var const string ResizeURL; + + structdefaultproperties + { + Id="" + Height=0 + Width=0 + Purpose="" + Purposes=none + ResizeURL="" + } +}; + +struct native MarketplaceProductDetails +{ + var const string StandardId; + var const OnlineSubsystem.EMediaItemType MediaItemType; + var const string ProductName; + var const string ProductID; + var const QWord ReleaseDate; + var const string SandboxId; + var const int TitleId; + var const bool bIsBundle; + var const bool bIsPartOfAnyBundle; + var const string ReducedName; + var const array Images; + var OnlineSubsystem.EOnlineEnumerationReadState DetailsReadState; + var const array Availabilities; + var const string ProductDescription; + + structdefaultproperties + { + StandardId="" + MediaItemType=EMediaItemType.MIT_Unknown + ProductName="" + ProductID="" + ReleaseDate=() + SandboxId="" + TitleId=0 + bIsBundle=false + bIsPartOfAnyBundle=false + ReducedName="" + Images=none + DetailsReadState=EOnlineEnumerationReadState.OERS_NotStarted + Availabilities=none + ProductDescription="" + } +}; + +struct native MarketplaceInventoryItem +{ + var const string ProductID; + var const OnlineSubsystem.EMediaItemType MediaItemType; + var const OnlineSubsystem.EInventoryItemState ItemState; + var const int ConsumableBalance; + var const int TitleId; + var const array ContainerIds; + var const QWord StartDate; + var const QWord EndDate; + var const QWord RightsObtainedDate; + var const string URL; + var const string ConsumableUrl; + + structdefaultproperties + { + ProductID="" + MediaItemType=EMediaItemType.MIT_Unknown + ItemState=EInventoryItemState.IIS_Unknown + ConsumableBalance=0 + TitleId=0 + ContainerIds=none + StartDate=() + EndDate=() + RightsObtainedDate=() + URL="" + ConsumableUrl="" + } +}; + +struct native SessionMemberInfo +{ + var UniqueNetId PlayerNetId; + var OnlineSubsystem.ESessionMemberStatus MemberStatus; + var init string SecureAddress; + var init string NickName; + var bool Muted; + + structdefaultproperties + { + PlayerNetId=(Uid=()) + MemberStatus=ESessionMemberStatus.DSMS_Reserved + SecureAddress="" + NickName="" + Muted=false + } +}; + +struct native PermissionsResult +{ + var SessionMemberInfo User; + var bool bHasPermission; + + structdefaultproperties + { + User=(PlayerNetId=(Uid=()),MemberStatus=ESessionMemberStatus.DSMS_Reserved,SecureAddress="",NickName="",Muted=false) + bHasPermission=false + } +}; + +struct native SessionUpdateInfo +{ + var const array MembersJoined; + var const array MembersLeft; + var const bool bHostDeviceTokenChanged; + var const bool bInitializationStateChanged; + var const bool bMatchmakingStatusChanged; + var const bool bMemberJoinedOrLeft; + var const bool bMemberStatusChanged; + var const bool bSessionJoinabilityChanged; + var const bool bCustomPropertyChange; + var const bool bMemberCustomPropertyChange; + + structdefaultproperties + { + MembersJoined=none + MembersLeft=none + bHostDeviceTokenChanged=false + bInitializationStateChanged=false + bMatchmakingStatusChanged=false + bMemberJoinedOrLeft=false + bMemberStatusChanged=false + bSessionJoinabilityChanged=false + bCustomPropertyChange=false + bMemberCustomPropertyChange=false + } +}; + +cpptext +{ +// FTickableObject interface + + /** + * Returns whether it is okay to tick this object. E.g. objects being loaded in the background shouldn't be ticked + * till they are finalized and unreachable objects cannot be ticked either. + * + * @return TRUE if tickable, FALSE otherwise + */ + virtual UBOOL IsTickable() const + { + // We cannot tick objects that are unreachable or are in the process of being loaded in the background. + return !HasAnyFlags( RF_Unreachable | RF_AsyncLoading ); + } + + /** + * Used to determine if an object should be ticked when the game is paused. + * + * @return always TRUE as networking needs to be ticked even when paused + */ + virtual UBOOL IsTickableWhenPaused() const + { + return TRUE; + } + + /** + * Here to complete the interface but needs to be overriden + * + * @param ignored + */ + virtual void Tick(FLOAT) + { + check(0 && "Must be overridden"); + } + + /** + * Generates a string representation of a UniqueNetId struct. + * + * @param IdToConvert the unique net id that should be converted to a string. + * + * @return the specified UniqueNetId represented as a string. + */ + static FString UniqueNetIdToString( const FUniqueNetId& IdToConvert ); + + /** + * Converts a string representing a UniqueNetId into a UniqueNetId struct. + * + * @param UniqueNetIdString the string containing the text representation of the unique id. + * @param out_UniqueId will receive the UniqueNetId generated from the string. + * + * @return TRUE if the string was successfully converted into a UniqueNetId; FALSE if the string was not a valid UniqueNetId. + */ + static UBOOL StringToUniqueNetId( const FString& UniqueNetIdString, FUniqueNetId& out_UniqueId ); + + /** + * Searches the named session array for the specified session + * + * @param SessionName the name to search for + * + * @return pointer to the struct if found, NULL otherwise + */ + inline FNamedSession* GetNamedSession(FName SessionName) + { + for (INT SearchIndex = 0; SearchIndex < Sessions.Num(); SearchIndex++) + { + if (Sessions(SearchIndex).SessionName == SessionName) + { + return &Sessions(SearchIndex); + } + } + return NULL; + } + + /** + * Searches the named session array for the specified session + * + * @param SessionName the name to search for + * + * @return TRUE if found, FALSE otherwise + */ + inline UBOOL HasNamedSession(FName SessionName) + { + return GetNamedSession(SessionName) != NULL; + } + + /** + * Adds a new named session to the list + * + * @param SessionName the name to search for + * @param GameSettings the game settings to add + * + * @return a pointer to the struct that was added + */ + inline FNamedSession* AddNamedSession(FName SessionName,UOnlineGameSettings* GameSettings) + { + INT AddIndex = Sessions.AddZeroed(); + Sessions(AddIndex).SessionName = SessionName; + Sessions(AddIndex).GameSettings = GameSettings; + return &Sessions(AddIndex); + } + + /** + * Searches the named session array for the specified session and removes it + * + * @param SessionName the name to search for + */ + virtual void RemoveNamedSession(FName SessionName) + { + for (INT SearchIndex = 0; SearchIndex < Sessions.Num(); SearchIndex++) + { + if (Sessions(SearchIndex).SessionName == SessionName) + { + Sessions.Remove(SearchIndex); + return; + } + } + } + + /** + * @return platform specific id for a session + */ + virtual QWORD GetSessionId(FName SessionName) + { + return 0; + } + + /** + * @return platform specific id for a session from a search result + */ + virtual QWORD GetSearchResultSessionId(const struct FOnlineGameSearchResult* SearchResult) + { + return 0; + } + + /** + * Notification sent to OnlineSubsystem that pre-travel cleanup is occuring + * + * @param bSessionEnded whether or not the game session has ended + */ + virtual void NotifyCleanupWorld(UBOOL bSessionEnded) + { + } +} + +/** + * Called from engine start up code to allow the subsystem to initialize + * + * @return TRUE if the initialization was successful, FALSE otherwise + */ +native event bool Init(); + +/** + * Used to trigger any automated tasks that need to happen just after startup + */ +event bool PostInit() +{ + local class IniLocPatcherClass; + + // Now that the subsystem is setup, try to download any config/loc updates + if (IniLocPatcherClassName != "") + { + `Log("Loading "$IniLocPatcherClassName$" for INI/Loc patching",,'DevMCP'); + IniLocPatcherClass = class(DynamicLoadObject(IniLocPatcherClassName,class'Class')); + Patcher = new IniLocPatcherClass; + if (Patcher != None) + { + Patcher.Init(); + } + else + { + return false; + } + } + return true; +} + +/** + * Called from the engine shutdown code to allow the subsystem to release any + * resources that may have been allocated + */ +event Exit(); + +/** + * Called from native code to assign the account interface + * + * @param NewInterface the object to assign as providing the account interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetAccountInterface(Object NewInterface) +{ + AccountInterface = OnlineAccountInterface(NewInterface); + // This will return false, if the interface wasn't supported + return AccountInterface != None; +} + +/** + * Called from native code to assign the player interface + * + * @param NewInterface the object to assign as providing the player interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetPlayerInterface(Object NewInterface) +{ + PlayerInterface = OnlinePlayerInterface(NewInterface); + // This will return false, if the interface wasn't supported + return PlayerInterface != None; +} + +/** + * Called from native code to assign the extended player interface + * + * @param NewInterface the object to assign as providing the player interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetPlayerInterfaceEx(Object NewInterface) +{ + PlayerInterfaceEx = OnlinePlayerInterfaceEx(NewInterface); + // This will return false, if the interface wasn't supported + return PlayerInterfaceEx != None; +} + +/** + * Called from native code to assign the system interface + * + * @param NewInterface the object to assign as providing the system interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetSystemInterface(Object NewInterface) +{ + SystemInterface = OnlineSystemInterface(NewInterface); + // This will return false, if the interface wasn't supported + return SystemInterface != None; +} + +/** + * Called from native code to assign the game interface + * + * @param NewInterface the object to assign as providing the game interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetGameInterface(Object NewInterface) +{ + GameInterface = OnlineGameInterface(NewInterface); + // This will return false, if the interface wasn't supported + return GameInterface != None; +} + +/** + * Called from native code to assign the content interface + * + * @param NewInterface the object to assign as providing the content interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetContentInterface(Object NewInterface) +{ + ContentInterface = OnlineContentInterface(NewInterface); + // This will return false, if the interface wasn't supported + return ContentInterface != None; +} + +/** + * Called from native code to assign the voice interface + * + * @param NewInterface the object to assign as providing the voice interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetVoiceInterface(Object NewInterface) +{ + VoiceInterface = OnlineVoiceInterface(NewInterface); + // This will return false, if the interface wasn't supported + return VoiceInterface != None; +} + +/** + * Called from native code to assign the stats interface + * + * @param NewInterface the object to assign as providing the stats interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetStatsInterface(Object NewInterface) +{ + StatsInterface = OnlineStatsInterface(NewInterface); + // This will return false, if the interface wasn't supported + return StatsInterface != None; +} + +/** + * Called from native code to assign the news interface + * + * @param NewInterface the object to assign as providing the news interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetNewsInterface(Object NewInterface) +{ + NewsInterface = OnlineNewsInterface(NewInterface); + // This will return false, if the interface wasn't supported + return NewsInterface != None; +} + +/** + * Called from native code to assign the party chat interface + * + * @param NewInterface the object to assign as providing the party chat interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetPartyChatInterface(Object NewInterface) +{ + PartyChatInterface = OnlinePartyChatInterface(NewInterface); + // This will return false, if the interface wasn't supported + return PartyChatInterface != None; +} + +/** + * Called from native code to assign the title file interface + * + * @param NewInterface the object to assign as providing the file downloading interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetTitleFileInterface(Object NewInterface) +{ + TitleFileInterface = OnlineTitleFileInterface(NewInterface); + // This will return false, if the interface wasn't supported + return TitleFileInterface != None; +} + +/** + * Called from native code to assign the title file caching interface + * + * @param NewInterface the object to assign as providing the file caching interface + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetTitleFileCacheInterface(Object NewInterface) +{ + TitleFileCacheInterface = OnlineTitleFileCacheInterface(NewInterface); + // This will return false, if the interface wasn't supported + return TitleFileCacheInterface != None; +} + +/** + * Called from native code to assign the social interface + * + * @param SocialInterface the object to assign as providing the interface for posting to social networks + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetSocialInterface(Object InSocialInterface) +{ + SocialInterface = OnlineSocialInterface(InSocialInterface); + // This will return false, if the interface wasn't supported + return SocialInterface != None; +} + +/** + * Called from native code to assign the auth interface + * + * @param AuthInterface the object to assign as providing the interface for multiplayer authentication + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetAuthInterface(Object InAuthInterface) +{ + AuthInterface = OnlineAuthInterface(InAuthInterface); + // This will return false, if the interface wasn't supported + return AuthInterface != None; +} + +/** + * Called from native code to assign the user cloud interface + * + * @param InCloudInterface the object to assign as providing the interface for user cloud access + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetUserCloudInterface(Object InCloudInterface) +{ + UserCloudInterface = UserCloudFileInterface(InCloudInterface); + // This will return false, if the interface wasn't supported + return UserCloudInterface != None; +} + +/** + * Called from native code to assign the shared cloud interface + * + * @param InCloudInterface the object to assign as providing the interface for shared cloud access + * + * @return TRUE if the interface is valid, FALSE otherwise + */ +event bool SetSharedCloudInterface(Object InCloudInterface) +{ + SharedCloudInterface = SharedCloudFileInterface(InCloudInterface); + // This will return false, if the interface wasn't supported + return SharedCloudInterface != None; +} + +/** + * Adds the interface object to the named interface list with the specified name + * + * @param InterfaceName the name of the interface to add it as + * @param NewInterface the object/interface that is being cached + */ +event SetNamedInterface(name InterfaceName,Object NewInterface) +{ + local int InterfaceIndex; + + // Determine whether to add or replace + InterfaceIndex = NamedInterfaces.Find('InterfaceName',InterfaceName); + if (InterfaceIndex == INDEX_NONE) + { + // We are adding to the list + InterfaceIndex = NamedInterfaces.Length; + NamedInterfaces.Length = NamedInterfaces.Length + 1; + NamedInterfaces[InterfaceIndex].InterfaceName = InterfaceName; + } + // Replace whatever pointer was previously there + NamedInterfaces[InterfaceIndex].InterfaceObject = NewInterface; +} + +/** + * Returns the interface object associated with the specified name + * + * @param InterfaceName the name of the interface to retrieve + * + * @return The object that matches the interface name if found + */ +event Object GetNamedInterface(name InterfaceName) +{ + local int InterfaceIndex; + + // Find the index in the array for this interface + InterfaceIndex = NamedInterfaces.Find('InterfaceName',InterfaceName); + if (InterfaceIndex != INDEX_NONE) + { + return NamedInterfaces[InterfaceIndex].InterfaceObject; + } + return None; +} + +/** + * Generates a string representation of a UniqueNetId struct. + * + * @param IdToConvert the unique net id that should be converted to a string. + * + * @return the specified UniqueNetId represented as a string. + */ +static final native noexportheader function string UniqueNetIdToString(const out UniqueNetId IdToConvert); + +/** + * Converts a string representing a UniqueNetId into a UniqueNetId struct. + * + * @param UniqueNetIdString the string containing the text representation of the unique id. + * @param out_UniqueId will receive the UniqueNetId generated from the string. + * + * @return TRUE if the string was successfully converted into a UniqueNetId; FALSE if the string was not a valid UniqueNetId. + */ +static final native noexportheader function bool StringToUniqueNetId(string UniqueNetIdString,out UniqueNetId out_UniqueId); + +/** + * Returns the unique id of the player for the specified index + * + * @param UserIndex the user to return the id of + * + * @return the unique id of the player at the specified index + */ +event UniqueNetId GetPlayerUniqueNetIdFromIndex(int UserIndex) +{ + local UniqueNetId ReturnVal, NullId; + + if (PlayerInterface == none || !PlayerInterface.GetUniquePlayerId(UserIndex, ReturnVal)) + { + ReturnVal = NullId; + } + + return ReturnVal; +} + +/** + * Generates a unique number based off of the current script compilation + * + * @return the unique number from the current script compilation + */ +native function int GetBuildUniqueId(); + +/** + * Returns the number of players that can be signed in on this platform + */ +static final native function int GetNumSupportedLogins(); + +/** + * Logs the game settings object + * + * @param GameSettings settings to dump + */ +static function DumpGameSettings(const OnlineGameSettings GameSettings) +{ + `Log(" OnlineGameSettings: "$GameSettings); + `Log(" OwningPlayerName: "$GameSettings.OwningPlayerName); + `Log(" OwningPlayerId: "$UniqueNetIdToString(GameSettings.OwningPlayerId)); + `Log(" PingInMs: "$GameSettings.PingInMs); + `Log(" NumPublicConnections: "$GameSettings.NumPublicConnections); + `Log(" NumOpenPublicConnections: "$GameSettings.NumOpenPublicConnections); + `Log(" NumPrivateConnections: "$GameSettings.NumPrivateConnections); + `Log(" NumOpenPrivateConnections: "$GameSettings.NumOpenPrivateConnections); + `Log(" bIsLanMatch: "$GameSettings.bIsLanMatch); + `Log(" bIsDedicated: "$GameSettings.bIsDedicated); + `Log(" bUsesStats: "$GameSettings.bUsesStats); + `Log(" bUsesArbitration: "$GameSettings.bUsesArbitration); + `Log(" bAntiCheatProtected: "$GameSettings.bAntiCheatProtected); + `Log(" bShouldAdvertise: "$GameSettings.bShouldAdvertise); + `Log(" bAllowJoinInProgress: "$GameSettings.bAllowJoinInProgress); + `Log(" bAllowInvites: "$GameSettings.bAllowInvites); + `Log(" bUsesPresence: "$GameSettings.bUsesPresence); + `Log(" bWasFromInvite: "$GameSettings.bWasFromInvite); + `Log(" bAllowJoinViaPresence: "$GameSettings.bAllowJoinViaPresence); + `Log(" bAllowJoinViaPresenceFriendsOnly: "$GameSettings.bAllowJoinViaPresenceFriendsOnly); + `Log(" GameState: "$GameSettings.GameState); +} + +/** + * Logs the session state for all sessions present + */ +function DumpSessionState() +{ + local int Index; + local int PlayerIndex; + local UniqueNetId NetId; + local UniqueNetId ZeroId; + + // To make the dumb warning go away even though it is used + NetId = ZeroId; + ZeroId = NetId; + + `Log("Unreal online session state"); + `Log("-------------------------------------------------------------"); + `Log(""); + `Log("Number of sessions: "$Sessions.Length); + + // Iterate through the sessions listing the session plus the registrants + for (Index = 0; Index < Sessions.Length; Index++) + { + `Log(" Session: "$Sessions[Index].SessionName); + DumpGameSettings(Sessions[Index].GameSettings); + `Log(""); + + `Log(" Number of players: "$Sessions[Index].Registrants.Length); + // List each player in the session + for (PlayerIndex = 0; PlayerIndex < Sessions[Index].Registrants.Length; PlayerIndex++) + { + NetId = Sessions[Index].Registrants[PlayerIndex].PlayerNetId; + `Log(" Player: "$UniqueNetIdToString(NetId)); + } + `Log(" Number of arbitrated players: "$Sessions[Index].ArbitrationRegistrants.Length); + // List each arbitrated player in the session + for (PlayerIndex = 0; PlayerIndex < Sessions[Index].ArbitrationRegistrants.Length; PlayerIndex++) + { + NetId = Sessions[Index].ArbitrationRegistrants[PlayerIndex].PlayerNetId; + `Log(" Player: "$UniqueNetIdToString(NetId)); + } + } +} + +`if(`notdefined(FINAL_RELEASE)) + /** + * Log list of players' netids for debugging + */ + static function DumpNetIds(const out array Players, string DebugLabel) + { + local int PlayerIdx; + local UniqueNetId NetId; + for (PlayerIdx=0; PlayerIdx Emitters; + +/** The component used to preview the particle system in Cascade */ +var transient ParticleSystemComponent PreviewComponent; + +/** The angle to use when rendering the thumbnail image */ +var editoronly rotator ThumbnailAngle; + +/** The distance to place the system when rendering the thumbnail image */ +var editoronly float ThumbnailDistance; + +/** The time to warm-up the system for the thumbnail image */ +var(Thumbnail) editoronly float ThumbnailWarmup; + +/** Deprecated, ParticleSystemLOD::bLit is used instead. */ +var deprecated const bool bLit; + +/** Used for curve editor to remember curve-editing setup. */ +var export InterpCurveEdSetup CurveEdSetup; + +/** If true, the system's Z axis will be oriented toward the camera */ +var() bool bOrientZAxisTowardCamera; + +// +// LOD +// +/** + * How often (in seconds) the system should perform the LOD distance check. + */ +var(LOD) float LODDistanceCheckTime; + +/** + * ParticleSystemLODMethod + */ +enum ParticleSystemLODMethod +{ + PARTICLESYSTEMLODMETHOD_Automatic, + PARTICLESYSTEMLODMETHOD_DirectSet, + PARTICLESYSTEMLODMETHOD_ActivateAutomatic +}; + +/** + * The method of LOD level determination to utilize for this particle system + * PARTICLESYSTEMLODMETHOD_Automatic - Automatically set the LOD level, checking every LODDistanceCheckTime seconds. + * PARTICLESYSTEMLODMETHOD_DirectSet - LOD level is directly set by the game code. + * PARTICLESYSTEMLODMETHOD_ActivateAutomatic - LOD level is determined at Activation time, then left alone unless directly set by game code. + */ +var(LOD) ParticleSystemLODMethod LODMethod; + +/** + * The array of distances for each LOD level in the system. + * Used when LODMethod is set to PARTICLESYSTEMLODMETHOD_Automatic. + * + * Example: System with 3 LOD levels + * LODDistances(0) = 0.0 + * LODDistances(1) = 2500.0 + * LODDistances(2) = 5000.0 + * + * In this case, when the system is [ 0.0 .. 2499.9] from the camera, LOD level 0 will be used. + * [2500.0 .. 4999.9] from the camera, LOD level 1 will be used. + * [5000.0 .. INFINITY] from the camera, LOD level 2 will be used. + * + */ +var(LOD) editfixedsize array LODDistances; + +/** LOD setting for intepolation (set by Cascade) Range [0..100] */ +var editoronly int EditorLODSetting; + +/** + * Internal value that tracks the regenerate LOD levels preference. + * If TRUE, when autoregenerating LOD levels in code, the low level will + * be a duplicate of the high. + */ +var bool bRegenerateLODDuplicate; + +/** Structure containing per-LOD settings that pertain to the entire UParticleSystem. */ +struct native ParticleSystemLOD +{ + /** + * Boolean to indicate whether the particle system accepts lights or not. + * This must not be changed in-game, it can only be changed safely in the editor through Cascade. + */ + var() bool bLit; + +structcpptext +{ + static FParticleSystemLOD CreateParticleSystemLOD() + { + FParticleSystemLOD NewLOD; + NewLOD.bLit = FALSE; + return NewLOD; + } +} +}; +var(LOD) array LODSettings; + +/** Whether to use the fixed relative bounding box or calculate it every frame. */ +var(Bounds) bool bUseFixedRelativeBoundingBox; +/** Fixed relative bounding box for particle system. */ +var(Bounds) box FixedRelativeBoundingBox; +/** + * Number of seconds of emitter not being rendered that need to pass before it + * no longer gets ticked/ becomes inactive. + */ +var() float SecondsBeforeInactive; + +// +// Cascade 'floor' mesh information +// +var editoronly string FloorMesh; +var editoronly vector FloorPosition; +var editoronly rotator FloorRotation; +var editoronly float FloorScale; +var editoronly vector FloorScale3D; + +/** The background color to display in Cascade */ +var editoronly color BackgroundColor; + +/** EDITOR ONLY: Indicates that Cascade would like to have the PeakActiveParticles count reset */ +var bool bShouldResetPeakCounts; + +/** Set during load time to indicate that physics is used... */ +var transient bool bHasPhysics; + +/** Inidicates the old 'real-time' thumbnail rendering should be used */ +var(Thumbnail) bool bUseRealtimeThumbnail; +/** Internal: Indicates the PSys thumbnail image is out of date */ +var bool ThumbnailImageOutOfDate; +/** Internal: The PSys thumbnail image */ +var editoronly Texture2D ThumbnailImage; + +/** + * When TRUE, do NOT perform the spawning limiter check. + * Intended for effects used in pre-rendered cinematics. + */ +var() bool bSkipSpawnCountCheck; + +/** How long this Particle system should delay when ActivateSystem is called on it. */ +var(Delay) float Delay; +/** The low end of the emitter delay if using a range. */ +var(Delay) float DelayLow; +/** + * If TRUE, select the emitter delay from the range + * [DelayLow..Delay] + */ +var(Delay) bool bUseDelayRange; + +/** Local space position that UVs generated with the ParticleMacroUV material node will be centered on. */ +var(MacroUV) vector MacroUVPosition; + +/** World space radius that UVs generated with the ParticleMacroUV material node will tile based on. */ +var(MacroUV) float MacroUVRadius; + +/** Occlusion method enumeration */ +enum EParticleSystemOcclusionBoundsMethod +{ + /** Don't determine occlusion on this particle system */ + EPSOBM_None, + /** Use the bounds of the particle system component when determining occlusion */ + EPSOBM_ParticleBounds, + /** Use the custom occlusion bounds when determining occlusion */ + EPSOBM_CustomBounds +}; + +/** + * Which occlusion bounds method to use for this particle system. + * EPSOBM_None - Don't determine occlusion for this system. + * EPSOBM_ParticleBounds - Use the bounds of the component when determining occlusion. + */ +var(Occlusion) EParticleSystemOcclusionBoundsMethod OcclusionBoundsMethod; + +/** The occlusion bounds to use if OcclusionBoundsMethod is set to EPSOBM_CustomBounds */ +var(Occlusion) Box CustomOcclusionBounds; + +/** + * Temporary array for tracking 'solo' emitter mode. + * Entry will be true if emitter was enabled + */ +struct native LODSoloTrack +{ + var transient array SoloEnableSetting; +}; + +struct ParticleChannelContainer +{ + var bool bInitialized; + var(Channel) bool Default; + var(Channel) bool Friendly; + var(Channel) bool Enemy; + var(Channel) bool LocalOwner; + var bool Channel5; + var bool Channel6; + var bool Channel7; + var bool Channel8; + var(Filter) bool VerticalTargeter; + var bool Filter2; + var(Filter) bool NotLocalOwner; + var(Filter) bool CustomFilter1; + var(Filter) bool CustomFilter2; + var(Filter) bool CustomFilter3; + var(Filter) bool CustomFilter4; + var(Filter) bool CustomFilter5; + var(Filter) bool CustomFilter6; + var(Filter) bool CustomFilter7; + + structdefaultproperties + { + bInitialized=true + Default=true + Friendly=false + Enemy=false + LocalOwner=false + Channel5=false + Channel6=false + Channel7=false + Channel8=false + VerticalTargeter=false + Filter2=false + NotLocalOwner=false + CustomFilter1=false + CustomFilter2=false + CustomFilter3=false + CustomFilter4=false + CustomFilter5=false + CustomFilter6=false + CustomFilter7=false + } +}; +var transient array SoloTracking; + +// +/** Return the currently set LOD method */ +native function ParticleSystemLODMethod GetCurrentLODMethod(); +/** Return the number of LOD levels for this particle system */ +native function int GetLODLevelCount(); +/** Return the distance for the given LOD level */ +native function float GetLODDistance(int LODLevelIndex); +/** Set the LOD method */ +native function SetCurrentLODMethod(ParticleSystemLODMethod InMethod); +/** Set the distance for the given LOD index */ +native function bool SetLODDistance(int LODLevelIndex, float InDistance); + +/** + * Get the longest possible lifespan for this particle system. + * + * @param InComponentDelay The delay from the component using the emitter + * + * @return FLOAT The longest lifespan this PSys could have; 0.0f if infinite. + */ +native function float GetMaxLifespan(float InComponentDelay); + +// +cpptext +{ + // UObject interface. + virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent); + virtual void PreSave(); + virtual void PostLoad(); + + /** + * Returns the size of the object/ resource for display to artists/ LDs in the Editor. + * + * @return size of resource as to be displayed to artists/ LDs in the Editor. + */ + virtual INT GetResourceSize(); + + void UpdateColorModuleClampAlpha(class UParticleModuleColorBase* ColorModule); + + /** + * CalculateMaxActiveParticleCounts + * Determine the maximum active particles that could occur with each emitter. + * This is to avoid reallocation during the life of the emitter. + * + * @return TRUE if the numbers were determined for each emitter + * FALSE if not be determined + */ + virtual UBOOL CalculateMaxActiveParticleCounts(); + + /** + * Retrieve the parameters associated with this particle system. + * + * @param ParticleSysParamList The list of FParticleSysParams used in the system + * @param ParticleParameterList The list of ParticleParameter distributions used in the system + */ + void GetParametersUtilized(TArray >& ParticleSysParamList, + TArray >& ParticleParameterList); + + /** + * Setup the soloing information... Obliterates all current soloing. + */ + void SetupSoloing(); + + /** + * Toggle the bIsSoloing flag on the given emitter. + * + * @param InEmitter The emitter to toggle. + * + * @return UBOOL TRUE if ANY emitters are set to soloing, FALSE if none are. + */ + UBOOL ToggleSoloing(class UParticleEmitter* InEmitter); + + /** + * Turn soloing off completely - on every emitter + * + * @return UBOOL TRUE if successful, FALSE if not. + */ + UBOOL TurnOffSoloing(); + + /** + * Editor helper function for setting the LOD validity flags used in Cascade. + */ + void SetupLODValidity(); + +#if WITH_EDITOR + /** + * Convert the given module to its randon seed variant. + * + * @param InEmitter The emitter to convert + * @param InModuleIdx The index of the module to convert + * @param InSeededClass The seeded variant class + * @param bInUpdateModuleLists If TRUE, update the module lists after the conversion + * + * @return UBOOL TRUE if successful, FALSE if not + */ + UBOOL ConvertModuleToSeeded(UParticleEmitter* InEmitter, INT InModuleIdx, UClass* InSeededClass, UBOOL bInUpdateModuleLists); + + /** + * Convert all the modules in this particle system to their random seed variant if available + * + * @return UBOOL TRUE if successful, FALSE if not + */ + UBOOL ConvertAllModulesToSeeded(); + + /** + * Remove all duplicate modules. + * + * @param bInMarkForCooker If TRUE, mark removed objects to not cook out. + * @param OutRemovedModules Optional map to fill in w/ removed modules... + * + * @return UBOOL TRUE if successful, FALSE if not + */ + UBOOL RemoveAllDuplicateModules(UBOOL bInMarkForCooker, TMap* OutRemovedModules); + + /** + * Update all emitter module lists + */ + void UpdateAllModuleLists(); +#endif +} + +// +defaultproperties +{ + //bOrientZAxisTowardCamera=TRUE + + ThumbnailDistance=200.0 + ThumbnailWarmup=1.0 + + UpdateTime_FPS=60.0 + UpdateTime_Delta=1.0/60.0 + WarmupTime=0.0 + WarmupTickRate=0.0 + + bLit=true + + EditorLODSetting=0 + FixedRelativeBoundingBox=(Min=(X=-1,Y=-1,Z=-1),Max=(X=1,Y=1,Z=1)) + + LODMethod=PARTICLESYSTEMLODMETHOD_Automatic + LODDistanceCheckTime=0.25 + + bRegenerateLODDuplicate=false + ThumbnailImageOutOfDate=true + + FloorMesh="EditorMeshes.AnimTreeEd_PreviewFloor" + FloorPosition=(X=0.000000,Y=0.000000,Z=0.000000) + FloorRotation=(Pitch=0,Yaw=0,Roll=0) + FloorScale=1.000000 + FloorScale3D=(X=1.000000,Y=1.000000,Z=1.000000) + + MacroUVPosition=(X=0.000000,Y=0.000000,Z=0.000000) + MacroUVRadius=200 +} diff --git a/Development/Src/Engine/Classes/ParticleSystemComponent.uc b/Development/Src/Engine/Classes/ParticleSystemComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ParticleSystemReplay.uc b/Development/Src/Engine/Classes/ParticleSystemReplay.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathBlockingVolume.uc b/Development/Src/Engine/Classes/PathBlockingVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathConstraint.uc b/Development/Src/Engine/Classes/PathConstraint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathGoalEvaluator.uc b/Development/Src/Engine/Classes/PathGoalEvaluator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathNode.uc b/Development/Src/Engine/Classes/PathNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathNode_Dynamic.uc b/Development/Src/Engine/Classes/PathNode_Dynamic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathRenderingComponent.uc b/Development/Src/Engine/Classes/PathRenderingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PathTargetPoint.uc b/Development/Src/Engine/Classes/PathTargetPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_AlongLine.uc b/Development/Src/Engine/Classes/Path_AlongLine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_AvoidInEscapableNodes.uc b/Development/Src/Engine/Classes/Path_AvoidInEscapableNodes.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_MinDistBetweenSpecsOfType.uc b/Development/Src/Engine/Classes/Path_MinDistBetweenSpecsOfType.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_TowardGoal.uc b/Development/Src/Engine/Classes/Path_TowardGoal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_TowardPoint.uc b/Development/Src/Engine/Classes/Path_TowardPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_WithinDistanceEnvelope.uc b/Development/Src/Engine/Classes/Path_WithinDistanceEnvelope.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Path_WithinTraversalDist.uc b/Development/Src/Engine/Classes/Path_WithinTraversalDist.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Pawn.uc b/Development/Src/Engine/Classes/Pawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysXParticleSystem.uc b/Development/Src/Engine/Classes/PhysXParticleSystem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysicalMaterial.uc b/Development/Src/Engine/Classes/PhysicalMaterial.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysicalMaterialPropertyBase.uc b/Development/Src/Engine/Classes/PhysicalMaterialPropertyBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysicsAsset.uc b/Development/Src/Engine/Classes/PhysicsAsset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysicsAssetInstance.uc b/Development/Src/Engine/Classes/PhysicsAssetInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysicsLODVerticalEmitter.uc b/Development/Src/Engine/Classes/PhysicsLODVerticalEmitter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PhysicsVolume.uc b/Development/Src/Engine/Classes/PhysicsVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PickupFactory.uc b/Development/Src/Engine/Classes/PickupFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PixelFormatEnum.uci b/Development/Src/Engine/Classes/PixelFormatEnum.uci old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlatformInterfaceBase.uc b/Development/Src/Engine/Classes/PlatformInterfaceBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlatformInterfaceWebResponse.uc b/Development/Src/Engine/Classes/PlatformInterfaceWebResponse.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Player.uc b/Development/Src/Engine/Classes/Player.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlayerController.uc b/Development/Src/Engine/Classes/PlayerController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlayerInput.uc b/Development/Src/Engine/Classes/PlayerInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlayerManagerInteraction.uc b/Development/Src/Engine/Classes/PlayerManagerInteraction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlayerReplicationInfo.uc b/Development/Src/Engine/Classes/PlayerReplicationInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PlayerStart.uc b/Development/Src/Engine/Classes/PlayerStart.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PointLight.uc b/Development/Src/Engine/Classes/PointLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PointLightComponent.uc b/Development/Src/Engine/Classes/PointLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PointLightMovable.uc b/Development/Src/Engine/Classes/PointLightMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PointLightToggleable.uc b/Development/Src/Engine/Classes/PointLightToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Portal.uc b/Development/Src/Engine/Classes/Portal.uc new file mode 100644 index 0000000..99efd31 --- /dev/null +++ b/Development/Src/Engine/Classes/Portal.uc @@ -0,0 +1,20 @@ +class Portal extends TriggerVolume + native + placeable + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () Actor Destination; +var (NavigationEdge) Rotator SourceEdgeRotation; +var (NavigationEdge) Vector SourceEdgeTranslation; +var (NavigationEdge) float fEdgeWidth; +var (NavigationEdge) bool bForceParallelEdges; + +native function bool IsValidPortal(); // Export UPortal::execIsValidPortal(FFrame&, void* const) + +native function GetSourceEdge(out Vector EdgeStart, out Vector EdgeEnd); // Export UPortal::execGetSourceEdge(FFrame&, void* const) + +native function GetDestinationEdge(out Vector EdgeStart, out Vector EdgeEnd); // Export UPortal::execGetDestinationEdge(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/Engine/Classes/PortalMarker.uc b/Development/Src/Engine/Classes/PortalMarker.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PortalRenderingComponent.uc b/Development/Src/Engine/Classes/PortalRenderingComponent.uc new file mode 100644 index 0000000..08d6c24 --- /dev/null +++ b/Development/Src/Engine/Classes/PortalRenderingComponent.uc @@ -0,0 +1,10 @@ +class PortalRenderingComponent extends PrimitiveComponent + native + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ReplacementPrimitive=none +} diff --git a/Development/Src/Engine/Classes/PortalTeleporter.uc b/Development/Src/Engine/Classes/PortalTeleporter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PortalVolume.uc b/Development/Src/Engine/Classes/PortalVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PostProcessChain.uc b/Development/Src/Engine/Classes/PostProcessChain.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PostProcessEffect.uc b/Development/Src/Engine/Classes/PostProcessEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PostProcessVolume.uc b/Development/Src/Engine/Classes/PostProcessVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PotentialClimbWatcher.uc b/Development/Src/Engine/Classes/PotentialClimbWatcher.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrecomputedVisibilityOverrideVolume.uc b/Development/Src/Engine/Classes/PrecomputedVisibilityOverrideVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrecomputedVisibilityVolume.uc b/Development/Src/Engine/Classes/PrecomputedVisibilityVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Prefab.uc b/Development/Src/Engine/Classes/Prefab.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrefabInstance.uc b/Development/Src/Engine/Classes/PrefabInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrefabSequence.uc b/Development/Src/Engine/Classes/PrefabSequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrefabSequenceContainer.uc b/Development/Src/Engine/Classes/PrefabSequenceContainer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrimitiveComponent.uc b/Development/Src/Engine/Classes/PrimitiveComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PrimitiveComponentFactory.uc b/Development/Src/Engine/Classes/PrimitiveComponentFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ProcBuilding.uc b/Development/Src/Engine/Classes/ProcBuilding.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ProcBuildingRuleset.uc b/Development/Src/Engine/Classes/ProcBuildingRuleset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ProcBuilding_SimpleLODActor.uc b/Development/Src/Engine/Classes/ProcBuilding_SimpleLODActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Projectile.uc b/Development/Src/Engine/Classes/Projectile.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ProscribedReachSpec.uc b/Development/Src/Engine/Classes/ProscribedReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ProxyStaticMeshComponent.uc b/Development/Src/Engine/Classes/ProxyStaticMeshComponent.uc new file mode 100644 index 0000000..dc04e51 --- /dev/null +++ b/Development/Src/Engine/Classes/ProxyStaticMeshComponent.uc @@ -0,0 +1,11 @@ +class ProxyStaticMeshComponent extends StaticMeshComponent + native(Mesh) + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ReplacementPrimitive=none + bIgnoreNearPlaneIntersection=true +} diff --git a/Development/Src/Engine/Classes/Pylon.uc b/Development/Src/Engine/Classes/Pylon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/PylonSeed.uc b/Development/Src/Engine/Classes/PylonSeed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_BSJointActor.uc b/Development/Src/Engine/Classes/RB_BSJointActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_BSJointSetup.uc b/Development/Src/Engine/Classes/RB_BSJointSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_BodyInstance.uc b/Development/Src/Engine/Classes/RB_BodyInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_BodySetup.uc b/Development/Src/Engine/Classes/RB_BodySetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_ConstraintActor.uc b/Development/Src/Engine/Classes/RB_ConstraintActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_ConstraintActorSpawnable.uc b/Development/Src/Engine/Classes/RB_ConstraintActorSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_ConstraintDrawComponent.uc b/Development/Src/Engine/Classes/RB_ConstraintDrawComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_ConstraintInstance.uc b/Development/Src/Engine/Classes/RB_ConstraintInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_ConstraintSetup.uc b/Development/Src/Engine/Classes/RB_ConstraintSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_CylindricalForceActor.uc b/Development/Src/Engine/Classes/RB_CylindricalForceActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_DistanceJointSetup.uc b/Development/Src/Engine/Classes/RB_DistanceJointSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_ForceFieldExcludeVolume.uc b/Development/Src/Engine/Classes/RB_ForceFieldExcludeVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_Handle.uc b/Development/Src/Engine/Classes/RB_Handle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_HingeActor.uc b/Development/Src/Engine/Classes/RB_HingeActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_HingeSetup.uc b/Development/Src/Engine/Classes/RB_HingeSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_LineImpulseActor.uc b/Development/Src/Engine/Classes/RB_LineImpulseActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_PrismaticActor.uc b/Development/Src/Engine/Classes/RB_PrismaticActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_PrismaticSetup.uc b/Development/Src/Engine/Classes/RB_PrismaticSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_PulleyJointActor.uc b/Development/Src/Engine/Classes/RB_PulleyJointActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_PulleyJointSetup.uc b/Development/Src/Engine/Classes/RB_PulleyJointSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_RadialForceActor.uc b/Development/Src/Engine/Classes/RB_RadialForceActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_RadialImpulseActor.uc b/Development/Src/Engine/Classes/RB_RadialImpulseActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_RadialImpulseComponent.uc b/Development/Src/Engine/Classes/RB_RadialImpulseComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_SkelJointSetup.uc b/Development/Src/Engine/Classes/RB_SkelJointSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_Spring.uc b/Development/Src/Engine/Classes/RB_Spring.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_StayUprightSetup.uc b/Development/Src/Engine/Classes/RB_StayUprightSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RB_Thruster.uc b/Development/Src/Engine/Classes/RB_Thruster.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RadialBlurActor.uc b/Development/Src/Engine/Classes/RadialBlurActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RadialBlurComponent.uc b/Development/Src/Engine/Classes/RadialBlurComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ReachSpec.uc b/Development/Src/Engine/Classes/ReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ReplicationInfo.uc b/Development/Src/Engine/Classes/ReplicationInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ReverbVolume.uc b/Development/Src/Engine/Classes/ReverbVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ReverbVolumeToggleable.uc b/Development/Src/Engine/Classes/ReverbVolumeToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RigidBodyBase.uc b/Development/Src/Engine/Classes/RigidBodyBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Route.uc b/Development/Src/Engine/Classes/Route.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/RouteRenderingComponent.uc b/Development/Src/Engine/Classes/RouteRenderingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SVehicle.uc b/Development/Src/Engine/Classes/SVehicle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SVehicleSimBase.uc b/Development/Src/Engine/Classes/SVehicleSimBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SVehicleSimCar.uc b/Development/Src/Engine/Classes/SVehicleSimCar.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SVehicleSimTank.uc b/Development/Src/Engine/Classes/SVehicleSimTank.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SVehicleWheel.uc b/Development/Src/Engine/Classes/SVehicleWheel.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SaveGameSummary.uc b/Development/Src/Engine/Classes/SaveGameSummary.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SavedMove.uc b/Development/Src/Engine/Classes/SavedMove.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Scene.uc b/Development/Src/Engine/Classes/Scene.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCapture2DActor.uc b/Development/Src/Engine/Classes/SceneCapture2DActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCapture2DComponent.uc b/Development/Src/Engine/Classes/SceneCapture2DComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCapture2DHitMaskComponent.uc b/Development/Src/Engine/Classes/SceneCapture2DHitMaskComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCaptureActor.uc b/Development/Src/Engine/Classes/SceneCaptureActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCaptureComponent.uc b/Development/Src/Engine/Classes/SceneCaptureComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCaptureCubeMapActor.uc b/Development/Src/Engine/Classes/SceneCaptureCubeMapActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCaptureCubeMapComponent.uc b/Development/Src/Engine/Classes/SceneCaptureCubeMapComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCapturePortalActor.uc b/Development/Src/Engine/Classes/SceneCapturePortalActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCapturePortalComponent.uc b/Development/Src/Engine/Classes/SceneCapturePortalComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCaptureReflectActor.uc b/Development/Src/Engine/Classes/SceneCaptureReflectActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SceneCaptureReflectComponent.uc b/Development/Src/Engine/Classes/SceneCaptureReflectComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Scout.uc b/Development/Src/Engine/Classes/Scout.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ScriptViewportClient.uc b/Development/Src/Engine/Classes/ScriptViewportClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ScriptedTexture.uc b/Development/Src/Engine/Classes/ScriptedTexture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AIAbortMoveToActor.uc b/Development/Src/Engine/Classes/SeqAct_AIAbortMoveToActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AIMoveToActor.uc b/Development/Src/Engine/Classes/SeqAct_AIMoveToActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AccessObjectList.uc b/Development/Src/Engine/Classes/SeqAct_AccessObjectList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ActivateRemoteEvent.uc b/Development/Src/Engine/Classes/SeqAct_ActivateRemoteEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ActorFactory.uc b/Development/Src/Engine/Classes/SeqAct_ActorFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ActorFactoryEx.uc b/Development/Src/Engine/Classes/SeqAct_ActorFactoryEx.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AddFloat.uc b/Development/Src/Engine/Classes/SeqAct_AddFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AddInt.uc b/Development/Src/Engine/Classes/SeqAct_AddInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AddRemoveFaceFXAnimSet.uc b/Development/Src/Engine/Classes/SeqAct_AddRemoveFaceFXAnimSet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AndGate.uc b/Development/Src/Engine/Classes/SeqAct_AndGate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ApplySoundNode.uc b/Development/Src/Engine/Classes/SeqAct_ApplySoundNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AssignController.uc b/Development/Src/Engine/Classes/SeqAct_AssignController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AttachToActor.uc b/Development/Src/Engine/Classes/SeqAct_AttachToActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_AttachToEvent.uc b/Development/Src/Engine/Classes/SeqAct_AttachToEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_CameraFade.uc b/Development/Src/Engine/Classes/SeqAct_CameraFade.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_CameraLookAt.uc b/Development/Src/Engine/Classes/SeqAct_CameraLookAt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_CameraShake.uc b/Development/Src/Engine/Classes/SeqAct_CameraShake.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_CastToFloat.uc b/Development/Src/Engine/Classes/SeqAct_CastToFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_CastToInt.uc b/Development/Src/Engine/Classes/SeqAct_CastToInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ChangeCollision.uc b/Development/Src/Engine/Classes/SeqAct_ChangeCollision.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_CommitMapChange.uc b/Development/Src/Engine/Classes/SeqAct_CommitMapChange.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ConcatenateStrings.uc b/Development/Src/Engine/Classes/SeqAct_ConcatenateStrings.uc new file mode 100644 index 0000000..3c470db --- /dev/null +++ b/Development/Src/Engine/Classes/SeqAct_ConcatenateStrings.uc @@ -0,0 +1,18 @@ +class SeqAct_ConcatenateStrings extends SequenceAction + hidecategories(Object) + config(Engine); + +var () string StrA; +var () string StrB; +var () bool ConcatenateWithSpace; +var string StrResult; + +event Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="First String",LinkVar="None",PropertyName="StrA",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="Second String",LinkVar="None",PropertyName="StrB",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="Result",LinkVar="None",PropertyName="StrResult",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Concatenate Strings" +} diff --git a/Development/Src/Engine/Classes/SeqAct_ConsoleCommand.uc b/Development/Src/Engine/Classes/SeqAct_ConsoleCommand.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ControlMovieTexture.uc b/Development/Src/Engine/Classes/SeqAct_ControlMovieTexture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ConvertToString.uc b/Development/Src/Engine/Classes/SeqAct_ConvertToString.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Delay.uc b/Development/Src/Engine/Classes/SeqAct_Delay.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_DelaySwitch.uc b/Development/Src/Engine/Classes/SeqAct_DelaySwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Destroy.uc b/Development/Src/Engine/Classes/SeqAct_Destroy.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_DivideFloat.uc b/Development/Src/Engine/Classes/SeqAct_DivideFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_DivideInt.uc b/Development/Src/Engine/Classes/SeqAct_DivideInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_DrawText.uc b/Development/Src/Engine/Classes/SeqAct_DrawText.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_FeatureTest.uc b/Development/Src/Engine/Classes/SeqAct_FeatureTest.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_FinishSequence.uc b/Development/Src/Engine/Classes/SeqAct_FinishSequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_FlyThroughHasEnded.uc b/Development/Src/Engine/Classes/SeqAct_FlyThroughHasEnded.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ForceFeedback.uc b/Development/Src/Engine/Classes/SeqAct_ForceFeedback.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ForceGarbageCollection.uc b/Development/Src/Engine/Classes/SeqAct_ForceGarbageCollection.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Gate.uc b/Development/Src/Engine/Classes/SeqAct_Gate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_GetDistance.uc b/Development/Src/Engine/Classes/SeqAct_GetDistance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_GetLocationAndRotation.uc b/Development/Src/Engine/Classes/SeqAct_GetLocationAndRotation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_GetProperty.uc b/Development/Src/Engine/Classes/SeqAct_GetProperty.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_GetVectorComponents.uc b/Development/Src/Engine/Classes/SeqAct_GetVectorComponents.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_GetVelocity.uc b/Development/Src/Engine/Classes/SeqAct_GetVelocity.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_GiveInventory.uc b/Development/Src/Engine/Classes/SeqAct_GiveInventory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_HeadTrackingControl.uc b/Development/Src/Engine/Classes/SeqAct_HeadTrackingControl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Interp.uc b/Development/Src/Engine/Classes/SeqAct_Interp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_IsInObjectList.uc b/Development/Src/Engine/Classes/SeqAct_IsInObjectList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Latent.uc b/Development/Src/Engine/Classes/SeqAct_Latent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_LevelStreaming.uc b/Development/Src/Engine/Classes/SeqAct_LevelStreaming.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_LevelStreamingBase.uc b/Development/Src/Engine/Classes/SeqAct_LevelStreamingBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_LevelVisibility.uc b/Development/Src/Engine/Classes/SeqAct_LevelVisibility.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Log.uc b/Development/Src/Engine/Classes/SeqAct_Log.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_MITV_Activate.uc b/Development/Src/Engine/Classes/SeqAct_MITV_Activate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ModifyCover.uc b/Development/Src/Engine/Classes/SeqAct_ModifyCover.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ModifyHealth.uc b/Development/Src/Engine/Classes/SeqAct_ModifyHealth.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ModifyObjectList.uc b/Development/Src/Engine/Classes/SeqAct_ModifyObjectList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_MultiLevelStreaming.uc b/Development/Src/Engine/Classes/SeqAct_MultiLevelStreaming.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_MultiplyFloat.uc b/Development/Src/Engine/Classes/SeqAct_MultiplyFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_MultiplyInt.uc b/Development/Src/Engine/Classes/SeqAct_MultiplyInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ParticleEventGenerator.uc b/Development/Src/Engine/Classes/SeqAct_ParticleEventGenerator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_PlayCameraAnim.uc b/Development/Src/Engine/Classes/SeqAct_PlayCameraAnim.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_PlayFaceFXAnim.uc b/Development/Src/Engine/Classes/SeqAct_PlayFaceFXAnim.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_PlayMusicTrack.uc b/Development/Src/Engine/Classes/SeqAct_PlayMusicTrack.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_PlaySound.uc b/Development/Src/Engine/Classes/SeqAct_PlaySound.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Possess.uc b/Development/Src/Engine/Classes/SeqAct_Possess.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_PrepareMapChange.uc b/Development/Src/Engine/Classes/SeqAct_PrepareMapChange.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ProjectileFactory.uc b/Development/Src/Engine/Classes/SeqAct_ProjectileFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_RandomSwitch.uc b/Development/Src/Engine/Classes/SeqAct_RandomSwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_RangeSwitch.uc b/Development/Src/Engine/Classes/SeqAct_RangeSwitch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetActiveAnimChild.uc b/Development/Src/Engine/Classes/SeqAct_SetActiveAnimChild.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetApexClothingParam.uc b/Development/Src/Engine/Classes/SeqAct_SetApexClothingParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetBlockRigidBody.uc b/Development/Src/Engine/Classes/SeqAct_SetBlockRigidBody.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetBool.uc b/Development/Src/Engine/Classes/SeqAct_SetBool.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetCameraTarget.uc b/Development/Src/Engine/Classes/SeqAct_SetCameraTarget.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetDOFParams.uc b/Development/Src/Engine/Classes/SeqAct_SetDOFParams.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetDamageInstigator.uc b/Development/Src/Engine/Classes/SeqAct_SetDamageInstigator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetFloat.uc b/Development/Src/Engine/Classes/SeqAct_SetFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetInt.uc b/Development/Src/Engine/Classes/SeqAct_SetInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetLocation.uc b/Development/Src/Engine/Classes/SeqAct_SetLocation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetMatInstScalarParam.uc b/Development/Src/Engine/Classes/SeqAct_SetMatInstScalarParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetMatInstTexParam.uc b/Development/Src/Engine/Classes/SeqAct_SetMatInstTexParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetMatInstVectorParam.uc b/Development/Src/Engine/Classes/SeqAct_SetMatInstVectorParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetMaterial.uc b/Development/Src/Engine/Classes/SeqAct_SetMaterial.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetMesh.uc b/Development/Src/Engine/Classes/SeqAct_SetMesh.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetMotionBlurParams.uc b/Development/Src/Engine/Classes/SeqAct_SetMotionBlurParams.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetObject.uc b/Development/Src/Engine/Classes/SeqAct_SetObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetParticleSysParam.uc b/Development/Src/Engine/Classes/SeqAct_SetParticleSysParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetPhysics.uc b/Development/Src/Engine/Classes/SeqAct_SetPhysics.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetRigidBodyIgnoreVehicles.uc b/Development/Src/Engine/Classes/SeqAct_SetRigidBodyIgnoreVehicles.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetSequenceVariable.uc b/Development/Src/Engine/Classes/SeqAct_SetSequenceVariable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetSkelControlTarget.uc b/Development/Src/Engine/Classes/SeqAct_SetSkelControlTarget.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetSoundMode.uc b/Development/Src/Engine/Classes/SeqAct_SetSoundMode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetString.uc b/Development/Src/Engine/Classes/SeqAct_SetString.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetVector.uc b/Development/Src/Engine/Classes/SeqAct_SetVector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetVectorComponents.uc b/Development/Src/Engine/Classes/SeqAct_SetVectorComponents.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetVelocity.uc b/Development/Src/Engine/Classes/SeqAct_SetVelocity.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SetWorldAttractorParam.uc b/Development/Src/Engine/Classes/SeqAct_SetWorldAttractorParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_StreamInTextures.uc b/Development/Src/Engine/Classes/SeqAct_StreamInTextures.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SubtractFloat.uc b/Development/Src/Engine/Classes/SeqAct_SubtractFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_SubtractInt.uc b/Development/Src/Engine/Classes/SeqAct_SubtractInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Switch.uc b/Development/Src/Engine/Classes/SeqAct_Switch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Teleport.uc b/Development/Src/Engine/Classes/SeqAct_Teleport.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Timer.uc b/Development/Src/Engine/Classes/SeqAct_Timer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Toggle.uc b/Development/Src/Engine/Classes/SeqAct_Toggle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleAffectedByHitEffects.uc b/Development/Src/Engine/Classes/SeqAct_ToggleAffectedByHitEffects.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleCinematicMode.uc b/Development/Src/Engine/Classes/SeqAct_ToggleCinematicMode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleConstraintDrive.uc b/Development/Src/Engine/Classes/SeqAct_ToggleConstraintDrive.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleGodMode.uc b/Development/Src/Engine/Classes/SeqAct_ToggleGodMode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleHUD.uc b/Development/Src/Engine/Classes/SeqAct_ToggleHUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleHidden.uc b/Development/Src/Engine/Classes/SeqAct_ToggleHidden.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_ToggleInput.uc b/Development/Src/Engine/Classes/SeqAct_ToggleInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_Trace.uc b/Development/Src/Engine/Classes/SeqAct_Trace.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_UpdatePhysBonesFromAnim.uc b/Development/Src/Engine/Classes/SeqAct_UpdatePhysBonesFromAnim.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqAct_WaitForLevelsVisible.uc b/Development/Src/Engine/Classes/SeqAct_WaitForLevelsVisible.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_CompareBool.uc b/Development/Src/Engine/Classes/SeqCond_CompareBool.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_CompareFloat.uc b/Development/Src/Engine/Classes/SeqCond_CompareFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_CompareInt.uc b/Development/Src/Engine/Classes/SeqCond_CompareInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_CompareObject.uc b/Development/Src/Engine/Classes/SeqCond_CompareObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_GetServerType.uc b/Development/Src/Engine/Classes/SeqCond_GetServerType.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_Increment.uc b/Development/Src/Engine/Classes/SeqCond_Increment.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IncrementFloat.uc b/Development/Src/Engine/Classes/SeqCond_IncrementFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsAlive.uc b/Development/Src/Engine/Classes/SeqCond_IsAlive.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsBenchmarking.uc b/Development/Src/Engine/Classes/SeqCond_IsBenchmarking.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsConsole.uc b/Development/Src/Engine/Classes/SeqCond_IsConsole.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsInCombat.uc b/Development/Src/Engine/Classes/SeqCond_IsInCombat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsLoggedIn.uc b/Development/Src/Engine/Classes/SeqCond_IsLoggedIn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsPIE.uc b/Development/Src/Engine/Classes/SeqCond_IsPIE.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_IsSameTeam.uc b/Development/Src/Engine/Classes/SeqCond_IsSameTeam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_MatureLanguage.uc b/Development/Src/Engine/Classes/SeqCond_MatureLanguage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_ShowGore.uc b/Development/Src/Engine/Classes/SeqCond_ShowGore.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_SwitchBase.uc b/Development/Src/Engine/Classes/SeqCond_SwitchBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_SwitchClass.uc b/Development/Src/Engine/Classes/SeqCond_SwitchClass.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_SwitchObject.uc b/Development/Src/Engine/Classes/SeqCond_SwitchObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqCond_SwitchPlatform.uc b/Development/Src/Engine/Classes/SeqCond_SwitchPlatform.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_AIReachedRouteActor.uc b/Development/Src/Engine/Classes/SeqEvent_AIReachedRouteActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_AISeeEnemy.uc b/Development/Src/Engine/Classes/SeqEvent_AISeeEnemy.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_AnalogInput.uc b/Development/Src/Engine/Classes/SeqEvent_AnalogInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_AnimNotify.uc b/Development/Src/Engine/Classes/SeqEvent_AnimNotify.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Console.uc b/Development/Src/Engine/Classes/SeqEvent_Console.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_ConstraintBroken.uc b/Development/Src/Engine/Classes/SeqEvent_ConstraintBroken.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Death.uc b/Development/Src/Engine/Classes/SeqEvent_Death.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Destroyed.uc b/Development/Src/Engine/Classes/SeqEvent_Destroyed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_GetInventory.uc b/Development/Src/Engine/Classes/SeqEvent_GetInventory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_HitWall.uc b/Development/Src/Engine/Classes/SeqEvent_HitWall.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Input.uc b/Development/Src/Engine/Classes/SeqEvent_Input.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_LOS.uc b/Development/Src/Engine/Classes/SeqEvent_LOS.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_LevelBeginning.uc b/Development/Src/Engine/Classes/SeqEvent_LevelBeginning.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_LevelLoaded.uc b/Development/Src/Engine/Classes/SeqEvent_LevelLoaded.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_LevelStartup.uc b/Development/Src/Engine/Classes/SeqEvent_LevelStartup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_MobileTouch.uc b/Development/Src/Engine/Classes/SeqEvent_MobileTouch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Mover.uc b/Development/Src/Engine/Classes/SeqEvent_Mover.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_ParticleEvent.uc b/Development/Src/Engine/Classes/SeqEvent_ParticleEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_PickupStatusChange.uc b/Development/Src/Engine/Classes/SeqEvent_PickupStatusChange.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_PlayerSpawned.uc b/Development/Src/Engine/Classes/SeqEvent_PlayerSpawned.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_ProjectileLanded.uc b/Development/Src/Engine/Classes/SeqEvent_ProjectileLanded.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_RemoteEvent.uc b/Development/Src/Engine/Classes/SeqEvent_RemoteEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_RigidBodyCollision.uc b/Development/Src/Engine/Classes/SeqEvent_RigidBodyCollision.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_SeeDeath.uc b/Development/Src/Engine/Classes/SeqEvent_SeeDeath.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_SequenceActivated.uc b/Development/Src/Engine/Classes/SeqEvent_SequenceActivated.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_TakeDamage.uc b/Development/Src/Engine/Classes/SeqEvent_TakeDamage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Touch.uc b/Development/Src/Engine/Classes/SeqEvent_Touch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_TouchInput.uc b/Development/Src/Engine/Classes/SeqEvent_TouchInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqEvent_Used.uc b/Development/Src/Engine/Classes/SeqEvent_Used.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Bool.uc b/Development/Src/Engine/Classes/SeqVar_Bool.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Byte.uc b/Development/Src/Engine/Classes/SeqVar_Byte.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Character.uc b/Development/Src/Engine/Classes/SeqVar_Character.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_External.uc b/Development/Src/Engine/Classes/SeqVar_External.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Float.uc b/Development/Src/Engine/Classes/SeqVar_Float.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Group.uc b/Development/Src/Engine/Classes/SeqVar_Group.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Int.uc b/Development/Src/Engine/Classes/SeqVar_Int.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Name.uc b/Development/Src/Engine/Classes/SeqVar_Name.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Named.uc b/Development/Src/Engine/Classes/SeqVar_Named.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Object.uc b/Development/Src/Engine/Classes/SeqVar_Object.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_ObjectList.uc b/Development/Src/Engine/Classes/SeqVar_ObjectList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_ObjectVolume.uc b/Development/Src/Engine/Classes/SeqVar_ObjectVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Player.uc b/Development/Src/Engine/Classes/SeqVar_Player.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_RandomFloat.uc b/Development/Src/Engine/Classes/SeqVar_RandomFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_RandomInt.uc b/Development/Src/Engine/Classes/SeqVar_RandomInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_String.uc b/Development/Src/Engine/Classes/SeqVar_String.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Union.uc b/Development/Src/Engine/Classes/SeqVar_Union.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SeqVar_Vector.uc b/Development/Src/Engine/Classes/SeqVar_Vector.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Sequence.uc b/Development/Src/Engine/Classes/Sequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceAction.uc b/Development/Src/Engine/Classes/SequenceAction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceCondition.uc b/Development/Src/Engine/Classes/SequenceCondition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceEvent.uc b/Development/Src/Engine/Classes/SequenceEvent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceFrame.uc b/Development/Src/Engine/Classes/SequenceFrame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceFrameWrapped.uc b/Development/Src/Engine/Classes/SequenceFrameWrapped.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceObject.uc b/Development/Src/Engine/Classes/SequenceObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceOp.uc b/Development/Src/Engine/Classes/SequenceOp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SequenceVariable.uc b/Development/Src/Engine/Classes/SequenceVariable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Settings.uc b/Development/Src/Engine/Classes/Settings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ShadowMap2D.uc b/Development/Src/Engine/Classes/ShadowMap2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/ShadowMapTexture2D.uc b/Development/Src/Engine/Classes/ShadowMapTexture2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SharedCloudFileInterface.uc b/Development/Src/Engine/Classes/SharedCloudFileInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SimpleSplineAudioComponent.uc b/Development/Src/Engine/Classes/SimpleSplineAudioComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SimpleSplineNonLoopAudioComponent.uc b/Development/Src/Engine/Classes/SimpleSplineNonLoopAudioComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlBase.uc b/Development/Src/Engine/Classes/SkelControlBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlFootPlacement.uc b/Development/Src/Engine/Classes/SkelControlFootPlacement.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlHandlebars.uc b/Development/Src/Engine/Classes/SkelControlHandlebars.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlLimb.uc b/Development/Src/Engine/Classes/SkelControlLimb.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlLookAt.uc b/Development/Src/Engine/Classes/SkelControlLookAt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlSingleBone.uc b/Development/Src/Engine/Classes/SkelControlSingleBone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlSpline.uc b/Development/Src/Engine/Classes/SkelControlSpline.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlTrail.uc b/Development/Src/Engine/Classes/SkelControlTrail.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControlWheel.uc b/Development/Src/Engine/Classes/SkelControlWheel.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControl_CCD_IK.uc b/Development/Src/Engine/Classes/SkelControl_CCD_IK.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControl_Multiply.uc b/Development/Src/Engine/Classes/SkelControl_Multiply.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkelControl_TwistBone.uc b/Development/Src/Engine/Classes/SkelControl_TwistBone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMesh.uc b/Development/Src/Engine/Classes/SkeletalMesh.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshActor.uc b/Development/Src/Engine/Classes/SkeletalMeshActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshActorBasedOnExtremeContent.uc b/Development/Src/Engine/Classes/SkeletalMeshActorBasedOnExtremeContent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshActorMAT.uc b/Development/Src/Engine/Classes/SkeletalMeshActorMAT.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshActorMATSpawnable.uc b/Development/Src/Engine/Classes/SkeletalMeshActorMATSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshActorMATWalkable.uc b/Development/Src/Engine/Classes/SkeletalMeshActorMATWalkable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshActorSpawnable.uc b/Development/Src/Engine/Classes/SkeletalMeshActorSpawnable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshCinematicActor.uc b/Development/Src/Engine/Classes/SkeletalMeshCinematicActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshComponent.uc b/Development/Src/Engine/Classes/SkeletalMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkeletalMeshSocket.uc b/Development/Src/Engine/Classes/SkeletalMeshSocket.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkyLight.uc b/Development/Src/Engine/Classes/SkyLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkyLightComponent.uc b/Development/Src/Engine/Classes/SkyLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SkyLightToggleable.uc b/Development/Src/Engine/Classes/SkyLightToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SlotToSlotReachSpec.uc b/Development/Src/Engine/Classes/SlotToSlotReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundClass.uc b/Development/Src/Engine/Classes/SoundClass.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundCue.uc b/Development/Src/Engine/Classes/SoundCue.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundMode.uc b/Development/Src/Engine/Classes/SoundMode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNode.uc b/Development/Src/Engine/Classes/SoundNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeAmbient.uc b/Development/Src/Engine/Classes/SoundNodeAmbient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeAmbientNonLoop.uc b/Development/Src/Engine/Classes/SoundNodeAmbientNonLoop.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeAmbientNonLoopToggle.uc b/Development/Src/Engine/Classes/SoundNodeAmbientNonLoopToggle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeAttenuation.uc b/Development/Src/Engine/Classes/SoundNodeAttenuation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeAttenuationAndGain.uc b/Development/Src/Engine/Classes/SoundNodeAttenuationAndGain.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeConcatenator.uc b/Development/Src/Engine/Classes/SoundNodeConcatenator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeConcatenatorRadio.uc b/Development/Src/Engine/Classes/SoundNodeConcatenatorRadio.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeDelay.uc b/Development/Src/Engine/Classes/SoundNodeDelay.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeDistanceCrossFade.uc b/Development/Src/Engine/Classes/SoundNodeDistanceCrossFade.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeDoppler.uc b/Development/Src/Engine/Classes/SoundNodeDoppler.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeEnveloper.uc b/Development/Src/Engine/Classes/SoundNodeEnveloper.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeLooping.uc b/Development/Src/Engine/Classes/SoundNodeLooping.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeMature.uc b/Development/Src/Engine/Classes/SoundNodeMature.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeMixer.uc b/Development/Src/Engine/Classes/SoundNodeMixer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeModulator.uc b/Development/Src/Engine/Classes/SoundNodeModulator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeModulatorContinuous.uc b/Development/Src/Engine/Classes/SoundNodeModulatorContinuous.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeOscillator.uc b/Development/Src/Engine/Classes/SoundNodeOscillator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeRandom.uc b/Development/Src/Engine/Classes/SoundNodeRandom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeWave.uc b/Development/Src/Engine/Classes/SoundNodeWave.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeWaveParam.uc b/Development/Src/Engine/Classes/SoundNodeWaveParam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SoundNodeWaveStreaming.uc b/Development/Src/Engine/Classes/SoundNodeWaveStreaming.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpeechRecognition.uc b/Development/Src/Engine/Classes/SpeechRecognition.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpeedTree.uc b/Development/Src/Engine/Classes/SpeedTree.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpeedTreeActor.uc b/Development/Src/Engine/Classes/SpeedTreeActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpeedTreeActorFactory.uc b/Development/Src/Engine/Classes/SpeedTreeActorFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpeedTreeComponent.uc b/Development/Src/Engine/Classes/SpeedTreeComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpeedTreeComponentFactory.uc b/Development/Src/Engine/Classes/SpeedTreeComponentFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SphericalHarmonicLightComponent.uc b/Development/Src/Engine/Classes/SphericalHarmonicLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineActor.uc b/Development/Src/Engine/Classes/SplineActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineAudioComponent.uc b/Development/Src/Engine/Classes/SplineAudioComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineComponent.uc b/Development/Src/Engine/Classes/SplineComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineComponentSimplified.uc b/Development/Src/Engine/Classes/SplineComponentSimplified.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineLoftActor.uc b/Development/Src/Engine/Classes/SplineLoftActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineLoftActorMovable.uc b/Development/Src/Engine/Classes/SplineLoftActorMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SplineMeshComponent.uc b/Development/Src/Engine/Classes/SplineMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpotLight.uc b/Development/Src/Engine/Classes/SpotLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpotLightComponent.uc b/Development/Src/Engine/Classes/SpotLightComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpotLightMovable.uc b/Development/Src/Engine/Classes/SpotLightMovable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpotLightToggleable.uc b/Development/Src/Engine/Classes/SpotLightToggleable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SpriteComponent.uc b/Development/Src/Engine/Classes/SpriteComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticLightCollectionActor.uc b/Development/Src/Engine/Classes/StaticLightCollectionActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticMeshActor.uc b/Development/Src/Engine/Classes/StaticMeshActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticMeshActorBase.uc b/Development/Src/Engine/Classes/StaticMeshActorBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticMeshActorBasedOnExtremeContent.uc b/Development/Src/Engine/Classes/StaticMeshActorBasedOnExtremeContent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticMeshCollectionActor.uc b/Development/Src/Engine/Classes/StaticMeshCollectionActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticMeshComponent.uc b/Development/Src/Engine/Classes/StaticMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StaticMeshComponentFactory.uc b/Development/Src/Engine/Classes/StaticMeshComponentFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/StringsTag.uc b/Development/Src/Engine/Classes/StringsTag.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Surface.uc b/Development/Src/Engine/Classes/Surface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/SwatTurnReachSpec.uc b/Development/Src/Engine/Classes/SwatTurnReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TargetPoint.uc b/Development/Src/Engine/Classes/TargetPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TeamInfo.uc b/Development/Src/Engine/Classes/TeamInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TeleportReachSpec.uc b/Development/Src/Engine/Classes/TeleportReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Teleporter.uc b/Development/Src/Engine/Classes/Teleporter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Terrain.uc b/Development/Src/Engine/Classes/Terrain.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TerrainComponent.uc b/Development/Src/Engine/Classes/TerrainComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TerrainLayerSetup.uc b/Development/Src/Engine/Classes/TerrainLayerSetup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TerrainMaterial.uc b/Development/Src/Engine/Classes/TerrainMaterial.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TerrainWeightMapTexture.uc b/Development/Src/Engine/Classes/TerrainWeightMapTexture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TestSplittingVolume.uc b/Development/Src/Engine/Classes/TestSplittingVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Texture.uc b/Development/Src/Engine/Classes/Texture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Texture2D.uc b/Development/Src/Engine/Classes/Texture2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Texture2DComposite.uc b/Development/Src/Engine/Classes/Texture2DComposite.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Texture2DDynamic.uc b/Development/Src/Engine/Classes/Texture2DDynamic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TextureCube.uc b/Development/Src/Engine/Classes/TextureCube.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TextureFlipBook.uc b/Development/Src/Engine/Classes/TextureFlipBook.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TextureMovie.uc b/Development/Src/Engine/Classes/TextureMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TextureRenderTarget.uc b/Development/Src/Engine/Classes/TextureRenderTarget.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TextureRenderTarget2D.uc b/Development/Src/Engine/Classes/TextureRenderTarget2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TextureRenderTargetCube.uc b/Development/Src/Engine/Classes/TextureRenderTargetCube.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TgAnimTreeComment.uc b/Development/Src/Engine/Classes/TgAnimTreeComment.uc new file mode 100644 index 0000000..b3166a1 --- /dev/null +++ b/Development/Src/Engine/Classes/TgAnimTreeComment.uc @@ -0,0 +1,6 @@ +class TgAnimTreeComment extends AnimObject + native(Anim) + hidecategories(Object) + config(Engine); + +var () editoronly bool m_bDrawBox; diff --git a/Development/Src/Engine/Classes/TgSilhouetteComponent.uc b/Development/Src/Engine/Classes/TgSilhouetteComponent.uc new file mode 100644 index 0000000..ed6501a --- /dev/null +++ b/Development/Src/Engine/Classes/TgSilhouetteComponent.uc @@ -0,0 +1,42 @@ +class TgSilhouetteComponent extends PrimitiveComponent + native + hidecategories(Object) + config(Engine); + +var () bool bEnabled; +var bool bUseFadeOutAlpha; +var () bool bNegativeSilhouette; +var bool bUseThicknessMultiplier; +var () LinearColor SilhouetteColor; +var () float NearThickness; +var () float FarThickness; +var () float NearDistance; +var () float FarDistance; +var export editinline MeshComponent MeshComponent; +var float NearDistanceSq; +var float FarDistanceSq; +var () float FadeOutTime; +var float RemainingFadeOutTime; +var () int PrimitiveSceneInfoId; +var float ThicknessMultiplier; +var native const Pointer ReleaseResourcesFence; + +native function SetEnabled(bool bInEnabled); // Export UTgSilhouetteComponent::execSetEnabled(FFrame&, void* const) + +native function SetNegative(bool bNegative); // Export UTgSilhouetteComponent::execSetNegative(FFrame&, void* const) + +native function SetDistance(float InNearDistance, float InFarDistance); // Export UTgSilhouetteComponent::execSetDistance(FFrame&, void* const) + +defaultproperties +{ + bUseFadeOutAlpha=true + SilhouetteColor=(R=0.8100000,G=0.0500000,B=0.0500000,A=1.0000000) + NearThickness=0.1000000 + FarThickness=0.2000000 + NearDistance=240.0000000 + FarDistance=1600.0000000 + FadeOutTime=0.3500000 + PrimitiveSceneInfoId=-1 + ReplacementPrimitive=none + DepthPriorityGroup=SDPG_Middleground +} diff --git a/Development/Src/Engine/Classes/TranslationContext.uc b/Development/Src/Engine/Classes/TranslationContext.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TranslatorTag.uc b/Development/Src/Engine/Classes/TranslatorTag.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Trigger.uc b/Development/Src/Engine/Classes/Trigger.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TriggerStreamingLevel.uc b/Development/Src/Engine/Classes/TriggerStreamingLevel.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TriggerVolume.uc b/Development/Src/Engine/Classes/TriggerVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Trigger_Dynamic.uc b/Development/Src/Engine/Classes/Trigger_Dynamic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Trigger_LOS.uc b/Development/Src/Engine/Classes/Trigger_LOS.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Trigger_PawnsOnly.uc b/Development/Src/Engine/Classes/Trigger_PawnsOnly.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TriggeredPath.uc b/Development/Src/Engine/Classes/TriggeredPath.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/TwitterIntegrationBase.uc b/Development/Src/Engine/Classes/TwitterIntegrationBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UICharacterSummary.uc b/Development/Src/Engine/Classes/UICharacterSummary.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider.uc b/Development/Src/Engine/Classes/UIDataProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_MenuItem.uc b/Development/Src/Engine/Classes/UIDataProvider_MenuItem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlineFriendMessages.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlineFriendMessages.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlineFriends.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlineFriends.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlinePartyChatList.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlinePartyChatList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlinePlayerDataBase.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlinePlayerDataBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlinePlayerStorage.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlinePlayerStorage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlinePlayerStorageArray.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlinePlayerStorageArray.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_OnlineProfileSettings.uc b/Development/Src/Engine/Classes/UIDataProvider_OnlineProfileSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_PlayerAchievements.uc b/Development/Src/Engine/Classes/UIDataProvider_PlayerAchievements.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_Settings.uc b/Development/Src/Engine/Classes/UIDataProvider_Settings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataProvider_SettingsArray.uc b/Development/Src/Engine/Classes/UIDataProvider_SettingsArray.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore.uc b/Development/Src/Engine/Classes/UIDataStore.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStorePublisher.uc b/Development/Src/Engine/Classes/UIDataStorePublisher.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStoreSubscriber.uc b/Development/Src/Engine/Classes/UIDataStoreSubscriber.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_DynamicResource.uc b/Development/Src/Engine/Classes/UIDataStore_DynamicResource.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_Fonts.uc b/Development/Src/Engine/Classes/UIDataStore_Fonts.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_GameResource.uc b/Development/Src/Engine/Classes/UIDataStore_GameResource.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_GameState.uc b/Development/Src/Engine/Classes/UIDataStore_GameState.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_InputAlias.uc b/Development/Src/Engine/Classes/UIDataStore_InputAlias.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_MenuItems.uc b/Development/Src/Engine/Classes/UIDataStore_MenuItems.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_OnlineGameSearch.uc b/Development/Src/Engine/Classes/UIDataStore_OnlineGameSearch.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_OnlineGameSettings.uc b/Development/Src/Engine/Classes/UIDataStore_OnlineGameSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_OnlinePlayerData.uc b/Development/Src/Engine/Classes/UIDataStore_OnlinePlayerData.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_OnlineStats.uc b/Development/Src/Engine/Classes/UIDataStore_OnlineStats.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_Registry.uc b/Development/Src/Engine/Classes/UIDataStore_Registry.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_Remote.uc b/Development/Src/Engine/Classes/UIDataStore_Remote.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_Settings.uc b/Development/Src/Engine/Classes/UIDataStore_Settings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_StringAliasMap.uc b/Development/Src/Engine/Classes/UIDataStore_StringAliasMap.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDataStore_StringBase.uc b/Development/Src/Engine/Classes/UIDataStore_StringBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIDev.uci b/Development/Src/Engine/Classes/UIDev.uci old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIGameInfoSummary.uc b/Development/Src/Engine/Classes/UIGameInfoSummary.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIInteraction.uc b/Development/Src/Engine/Classes/UIInteraction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIManager.uc b/Development/Src/Engine/Classes/UIManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIMapSummary.uc b/Development/Src/Engine/Classes/UIMapSummary.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIPropertyDataProvider.uc b/Development/Src/Engine/Classes/UIPropertyDataProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIResourceCombinationProvider.uc b/Development/Src/Engine/Classes/UIResourceCombinationProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIResourceDataProvider.uc b/Development/Src/Engine/Classes/UIResourceDataProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIRoot.uc b/Development/Src/Engine/Classes/UIRoot.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UISceneClient.uc b/Development/Src/Engine/Classes/UISceneClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UISoundTheme.uc b/Development/Src/Engine/Classes/UISoundTheme.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UIWeaponSummary.uc b/Development/Src/Engine/Classes/UIWeaponSummary.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UberPostProcessEffect.uc b/Development/Src/Engine/Classes/UberPostProcessEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UserCloudFileCloudSaveSystemDataBlobStore.uc b/Development/Src/Engine/Classes/UserCloudFileCloudSaveSystemDataBlobStore.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/UserCloudFileInterface.uc b/Development/Src/Engine/Classes/UserCloudFileInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Vehicle.uc b/Development/Src/Engine/Classes/Vehicle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Volume.uc b/Development/Src/Engine/Classes/Volume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/VolumePathNode.uc b/Development/Src/Engine/Classes/VolumePathNode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/VolumeTimer.uc b/Development/Src/Engine/Classes/VolumeTimer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WallTransReachSpec.uc b/Development/Src/Engine/Classes/WallTransReachSpec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WaterVolume.uc b/Development/Src/Engine/Classes/WaterVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WaveFormBase.uc b/Development/Src/Engine/Classes/WaveFormBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/Weapon.uc b/Development/Src/Engine/Classes/Weapon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WindDirectionalSource.uc b/Development/Src/Engine/Classes/WindDirectionalSource.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WindDirectionalSourceComponent.uc b/Development/Src/Engine/Classes/WindDirectionalSourceComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WindPointSource.uc b/Development/Src/Engine/Classes/WindPointSource.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WindPointSourceComponent.uc b/Development/Src/Engine/Classes/WindPointSourceComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WorldAttractor.uc b/Development/Src/Engine/Classes/WorldAttractor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/Engine/Classes/WorldInfo.uc b/Development/Src/Engine/Classes/WorldInfo.uc old mode 100755 new mode 100644 index a8c3dc8..5d34106 --- a/Development/Src/Engine/Classes/WorldInfo.uc +++ b/Development/Src/Engine/Classes/WorldInfo.uc @@ -73,7 +73,7 @@ var const noimport transient array PortalVolumes; var const noimport transient array EnvironmentVolumes; /** Level collection. ULevels are referenced by FName (Package name) to avoid serialized references. Also contains offsets in world units */ -var(WorldInfo) editinline array StreamingLevels; // HACK: un-const'd for paladins +var(WorldInfo) const editconst editinline array StreamingLevels; /** * This is a bool on the level which is set when a light that needs to have lighting rebuilt @@ -992,6 +992,15 @@ cpptext //----------------------------------------------------------------------------- // Functions. +// Export UWorldInfo::execIsPlayingTimelapse(FFrame&, void* const) +native final function bool IsPlayingTimelapse(); + +// Export UWorldInfo::execIsTimelapsePlayOfTheGame(FFrame&, void* const) +native final function bool IsTimelapsePlayOfTheGame(); + +// Export UWorldInfo::execIsRecordingTimelapse(FFrame&, void* const) +native final function bool IsRecordingTimelapse(); + /** ==== NAV MESH PATH CONSTRAINT/GOAL EVALUATOR POOLING ==== */ /** * will go through all the pools for each constraint/evaluator class that has been added so far and reset @@ -1471,15 +1480,6 @@ simulated event NotifyHostMigrationStateChanged(EHostMigrationProgress NewState, } } -// Export UWorldInfo::execIsPlayingTimelapse(FFrame&, void* const) -native final function bool IsPlayingTimelapse(); - -// Export UWorldInfo::execIsTimelapsePlayOfTheGame(FFrame&, void* const) -native final function bool IsTimelapsePlayOfTheGame(); - -// Export UWorldInfo::execIsRecordingTimelapse(FFrame&, void* const) -native final function bool IsRecordingTimelapse(); - /** * Enable or disable host migration. * diff --git a/Development/Src/Engine/Classes/ZoneInfo.uc b/Development/Src/Engine/Classes/ZoneInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/FlashMovie.uc b/Development/Src/GFxUI/Classes/FlashMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxAction_CloseMovie.uc b/Development/Src/GFxUI/Classes/GFxAction_CloseMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxAction_GetVariable.uc b/Development/Src/GFxUI/Classes/GFxAction_GetVariable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxAction_Invoke.uc b/Development/Src/GFxUI/Classes/GFxAction_Invoke.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxAction_OpenMovie.uc b/Development/Src/GFxUI/Classes/GFxAction_OpenMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxAction_SetCaptureKeys.uc b/Development/Src/GFxUI/Classes/GFxAction_SetCaptureKeys.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxAction_SetVariable.uc b/Development/Src/GFxUI/Classes/GFxAction_SetVariable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxClikWidget.uc b/Development/Src/GFxUI/Classes/GFxClikWidget.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxEngine.uc b/Development/Src/GFxUI/Classes/GFxEngine.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxEvent_FsCommand.uc b/Development/Src/GFxUI/Classes/GFxEvent_FsCommand.uc old mode 100755 new mode 100644 index 561afb6..a76d648 --- a/Development/Src/GFxUI/Classes/GFxEvent_FsCommand.uc +++ b/Development/Src/GFxUI/Classes/GFxEvent_FsCommand.uc @@ -1,51 +1,17 @@ -/********************************************************************** - -Copyright : (c) 2006-2007 Scaleform Corp. All Rights Reserved. - -Portions of the integration code is from Epic Games as identified by Perforce annotations. -Copyright 2010 Epic Games, Inc. All rights reserved. - -Licensees may use this file in accordance with the valid Scaleform -Commercial License Agreement provided with the software. - -This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING -THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. - -**********************************************************************/ -class GFxEvent_FSCommand extends SequenceEvent - dependson(GFxFSCmdHandler_Kismet) - native(UISequence); - -/** Swf Movie data to use. */ -var() SwfMovie Movie; - -// name of fscommand to trigger on -var() string FsCommand; - -/**Command handler to route events through*/ -var GFxFSCmdHandler_Kismet Handler; - -cpptext -{ - virtual void FinishDestroy(); - virtual UBOOL RegisterEvent(); - - /** - * Adds an error message to the map check dialog if this SequenceEvent's EventActivator is bStatic - */ -#if WITH_EDITOR - virtual void CheckForErrors(); -#endif -} - -defaultproperties -{ - ObjName="FsCommand" - ObjCategory="GFx UI" - - VariableLinks.Empty - VariableLinks(0)=(ExpectedType=class'SeqVar_String',LinkDesc="Argument",bWriteable=false) - - bPlayerOnly=false - MaxTriggerCount=0 -} +class GFxEvent_FSCommand extends SequenceEvent + native(UISequence) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () SwfMovie Movie; +var () string FSCommand; +var GFxFSCmdHandler_Kismet Handler; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + VariableLinks[0]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="Argument",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="FsCommand" +} diff --git a/Development/Src/GFxUI/Classes/GFxFSCmdHandler.uc b/Development/Src/GFxUI/Classes/GFxFSCmdHandler.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxFSCmdHandler_Kismet.uc b/Development/Src/GFxUI/Classes/GFxFSCmdHandler_Kismet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxInteraction.uc b/Development/Src/GFxUI/Classes/GFxInteraction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxMoviePlayer.uc b/Development/Src/GFxUI/Classes/GFxMoviePlayer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/GFxObject.uc b/Development/Src/GFxUI/Classes/GFxObject.uc old mode 100755 new mode 100644 index 8683a3a..db8c3a2 --- a/Development/Src/GFxUI/Classes/GFxObject.uc +++ b/Development/Src/GFxUI/Classes/GFxObject.uc @@ -248,6 +248,9 @@ native final function GFxObject CreateEmptyMovieClip(string instancename, option /** Attaches a symbol to specified movie instance. If no instance is found in this object's scope with the InstanceName, a new instance is created and returned */ native final function GFxObject AttachMovie(string symbolname, string instancename, optional int depth = -1, optional class type = class'GFxObject'); +// Export UGFxObject::execRemoveMovieClip(FFrame&, void* const) +native final function RemoveMovieClip(string PathName); + /** * Callback when a child widget is initialized within the path bound to this widget via GFxMoviePlayer::SetWidgetPathBinding(). Allows for GFxObject subclasses that encapsulate * functionality to handle their own initialization for child widgets, instead of the GFxMoviePlayer. Returns TRUE if the widget was handled, FALSE if not. @@ -259,3 +262,73 @@ event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) * Returns TRUE if the widget was handled, FALSE if not. */ event bool WidgetUnloaded(name WidgetName, name WidgetPath, GFxObject Widget); + + +// Export UGFxObject::execSetX(FFrame&, void* const) +native final function SetX(float fValue); + +// Export UGFxObject::execSetY(FFrame&, void* const) +native final function SetY(float fValue); + +// Export UGFxObject::execSetAlpha(FFrame&, void* const) +native final function SetAlpha(float fValue); + +// Export UGFxObject::execSetWidth(FFrame&, void* const) +native final function SetWidth(float fValue); + +// Export UGFxObject::execSetHeight(FFrame&, void* const) +native final function SetHeight(float fValue); + +// Export UGFxObject::execSetXScale(FFrame&, void* const) +native final function SetXScale(float fValue); + +// Export UGFxObject::execSetYScale(FFrame&, void* const) +native final function SetYScale(float fValue); + +// Export UGFxObject::execSetDisabled(FFrame&, void* const) +native final function SetDisabled(bool bValue); + +// Export UGFxObject::execSetRotation(FFrame&, void* const) +native final function SetRotation(float fValue); + +// Export UGFxObject::execSetXRotation(FFrame&, void* const) +native final function SetXRotation(float fValue); + +// Export UGFxObject::execSetYRotation(FFrame&, void* const) +native final function SetYRotation(float fValue); + +// Export UGFxObject::execGetX(FFrame&, void* const) +native final function float GetX(); + +// Export UGFxObject::execGetY(FFrame&, void* const) +native final function float GetY(); + +// Export UGFxObject::execGetAlpha(FFrame&, void* const) +native final function float GetAlpha(); + +// Export UGFxObject::execGetWidth(FFrame&, void* const) +native final function float GetWidth(); + +// Export UGFxObject::execGetHeight(FFrame&, void* const) +native final function float GetHeight(); + +// Export UGFxObject::execGetXScale(FFrame&, void* const) +native final function float GetXScale(); + +// Export UGFxObject::execGetYScale(FFrame&, void* const) +native final function float GetYScale(); + +// Export UGFxObject::execGetRotation(FFrame&, void* const) +native final function float GetRotation(); + +// Export UGFxObject::execGetXRotation(FFrame&, void* const) +native final function float GetXRotation(); + +// Export UGFxObject::execGetYRotation(FFrame&, void* const) +native final function float GetYRotation(); + +// Export UGFxObject::execGetTextWidth(FFrame&, void* const) +native final function float GetTextWidth(); + +// Export UGFxObject::execGetTextHeight(FFrame&, void* const) +native final function float GetTextHeight(); diff --git a/Development/Src/GFxUI/Classes/GFxRawData.uc b/Development/Src/GFxUI/Classes/GFxRawData.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUI/Classes/SwfMovie.uc b/Development/Src/GFxUI/Classes/SwfMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUIEditor/Classes/GFxImportCommandlet.uc b/Development/Src/GFxUIEditor/Classes/GFxImportCommandlet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUIEditor/Classes/GFxMovieFactory.uc b/Development/Src/GFxUIEditor/Classes/GFxMovieFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUIEditor/Classes/GFxReimportCommandlet.uc b/Development/Src/GFxUIEditor/Classes/GFxReimportCommandlet.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GFxUIEditor/Classes/GenericBrowserType_GFxMovie.uc b/Development/Src/GFxUIEditor/Classes/GenericBrowserType_GFxMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/DebugCameraController.uc b/Development/Src/GameFramework/Classes/DebugCameraController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/DebugCameraHUD.uc b/Development/Src/GameFramework/Classes/DebugCameraHUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/DebugCameraInput.uc b/Development/Src/GameFramework/Classes/DebugCameraInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/DynamicGameCrowdDestination.uc b/Development/Src/GameFramework/Classes/DynamicGameCrowdDestination.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/DynamicSpriteComponent.uc b/Development/Src/GameFramework/Classes/DynamicSpriteComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/FrameworkGame.uc b/Development/Src/GameFramework/Classes/FrameworkGame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameAICmd_Hover_MoveToGoal.uc b/Development/Src/GameFramework/Classes/GameAICmd_Hover_MoveToGoal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameAICmd_Hover_MoveToGoal_Mesh.uc b/Development/Src/GameFramework/Classes/GameAICmd_Hover_MoveToGoal_Mesh.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameAICommand.uc b/Development/Src/GameFramework/Classes/GameAICommand.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameAIController.uc b/Development/Src/GameFramework/Classes/GameAIController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCameraBase.uc b/Development/Src/GameFramework/Classes/GameCameraBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCameraBlockingVolume.uc b/Development/Src/GameFramework/Classes/GameCameraBlockingVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCheatManager.uc b/Development/Src/GameFramework/Classes/GameCheatManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdAgent.uc b/Development/Src/GameFramework/Classes/GameCrowdAgent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdAgentBehavior.uc b/Development/Src/GameFramework/Classes/GameCrowdAgentBehavior.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdAgentSM.uc b/Development/Src/GameFramework/Classes/GameCrowdAgentSM.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdAgentSkeletal.uc b/Development/Src/GameFramework/Classes/GameCrowdAgentSkeletal.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdBehaviorPoint.uc b/Development/Src/GameFramework/Classes/GameCrowdBehaviorPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdBehavior_PlayAnimation.uc b/Development/Src/GameFramework/Classes/GameCrowdBehavior_PlayAnimation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdBehavior_RunFromPanic.uc b/Development/Src/GameFramework/Classes/GameCrowdBehavior_RunFromPanic.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdBehavior_WaitForGroup.uc b/Development/Src/GameFramework/Classes/GameCrowdBehavior_WaitForGroup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdBehavior_WaitInQueue.uc b/Development/Src/GameFramework/Classes/GameCrowdBehavior_WaitInQueue.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdDestination.uc b/Development/Src/GameFramework/Classes/GameCrowdDestination.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdDestinationQueuePoint.uc b/Development/Src/GameFramework/Classes/GameCrowdDestinationQueuePoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdGroup.uc b/Development/Src/GameFramework/Classes/GameCrowdGroup.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdInfoVolume.uc b/Development/Src/GameFramework/Classes/GameCrowdInfoVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdInteractionDestination.uc b/Development/Src/GameFramework/Classes/GameCrowdInteractionDestination.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdInteractionPoint.uc b/Development/Src/GameFramework/Classes/GameCrowdInteractionPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdPopulationManager.uc b/Development/Src/GameFramework/Classes/GameCrowdPopulationManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdReplicationActor.uc b/Development/Src/GameFramework/Classes/GameCrowdReplicationActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdSpawnInterface.uc b/Development/Src/GameFramework/Classes/GameCrowdSpawnInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdSpawnRelativeActor.uc b/Development/Src/GameFramework/Classes/GameCrowdSpawnRelativeActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowdSpawnerInterface.uc b/Development/Src/GameFramework/Classes/GameCrowdSpawnerInterface.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameCrowd_ListOfAgents.uc b/Development/Src/GameFramework/Classes/GameCrowd_ListOfAgents.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameDestinationConnRenderingComponent.uc b/Development/Src/GameFramework/Classes/GameDestinationConnRenderingComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameExplosion.uc b/Development/Src/GameFramework/Classes/GameExplosion.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameExplosionActor.uc b/Development/Src/GameFramework/Classes/GameExplosionActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameExplosionContent.uc b/Development/Src/GameFramework/Classes/GameExplosionContent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameFixedCamera.uc b/Development/Src/GameFramework/Classes/GameFixedCamera.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameKActorSpawnableEffect.uc b/Development/Src/GameFramework/Classes/GameKActorSpawnableEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GamePawn.uc b/Development/Src/GameFramework/Classes/GamePawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GamePlayerCamera.uc b/Development/Src/GameFramework/Classes/GamePlayerCamera.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GamePlayerController.uc b/Development/Src/GameFramework/Classes/GamePlayerController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameSkelCtrl_Recoil.uc b/Development/Src/GameFramework/Classes/GameSkelCtrl_Recoil.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameSpecialMove.uc b/Development/Src/GameFramework/Classes/GameSpecialMove.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameStateObject.uc b/Development/Src/GameFramework/Classes/GameStateObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameStatsAggregator.uc b/Development/Src/GameFramework/Classes/GameStatsAggregator.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameThirdPersonCamera.uc b/Development/Src/GameFramework/Classes/GameThirdPersonCamera.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameThirdPersonCameraMode.uc b/Development/Src/GameFramework/Classes/GameThirdPersonCameraMode.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameThirdPersonCameraMode_Default.uc b/Development/Src/GameFramework/Classes/GameThirdPersonCameraMode_Default.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameTypes.uc b/Development/Src/GameFramework/Classes/GameTypes.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/GameWaveForms.uc b/Development/Src/GameFramework/Classes/GameWaveForms.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileDebugCameraController.uc b/Development/Src/GameFramework/Classes/MobileDebugCameraController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileDebugCameraHUD.uc b/Development/Src/GameFramework/Classes/MobileDebugCameraHUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileDebugCameraInput.uc b/Development/Src/GameFramework/Classes/MobileDebugCameraInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileHUD.uc b/Development/Src/GameFramework/Classes/MobileHUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileInputZone.uc b/Development/Src/GameFramework/Classes/MobileInputZone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuBar.uc b/Development/Src/GameFramework/Classes/MobileMenuBar.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuBarItem.uc b/Development/Src/GameFramework/Classes/MobileMenuBarItem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuButton.uc b/Development/Src/GameFramework/Classes/MobileMenuButton.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuElement.uc b/Development/Src/GameFramework/Classes/MobileMenuElement.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuGame.uc b/Development/Src/GameFramework/Classes/MobileMenuGame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuImage.uc b/Development/Src/GameFramework/Classes/MobileMenuImage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuInventory.uc b/Development/Src/GameFramework/Classes/MobileMenuInventory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuLabel.uc b/Development/Src/GameFramework/Classes/MobileMenuLabel.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuList.uc b/Development/Src/GameFramework/Classes/MobileMenuList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuListItem.uc b/Development/Src/GameFramework/Classes/MobileMenuListItem.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuObject.uc b/Development/Src/GameFramework/Classes/MobileMenuObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuObjectProxy.uc b/Development/Src/GameFramework/Classes/MobileMenuObjectProxy.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuPlayerController.uc b/Development/Src/GameFramework/Classes/MobileMenuPlayerController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileMenuScene.uc b/Development/Src/GameFramework/Classes/MobileMenuScene.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobilePlayerInput.uc b/Development/Src/GameFramework/Classes/MobilePlayerInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileSecondaryViewportClient.uc b/Development/Src/GameFramework/Classes/MobileSecondaryViewportClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/MobileTouchInputVolume.uc b/Development/Src/GameFramework/Classes/MobileTouchInputVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/NavMeshGoal_OutOfViewFrom.uc b/Development/Src/GameFramework/Classes/NavMeshGoal_OutOfViewFrom.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/NavMeshPath_BiasAgainstPolysWithinDistanceOfLocations.uc b/Development/Src/GameFramework/Classes/NavMeshPath_BiasAgainstPolysWithinDistanceOfLocations.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/PMESTG_LeaveADecalBase.uc b/Development/Src/GameFramework/Classes/PMESTG_LeaveADecalBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/PlayerCollectorGame.uc b/Development/Src/GameFramework/Classes/PlayerCollectorGame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SecondaryViewportClient.uc b/Development/Src/GameFramework/Classes/SecondaryViewportClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_ControlGameMovie.uc b/Development/Src/GameFramework/Classes/SeqAct_ControlGameMovie.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_Deproject.uc b/Development/Src/GameFramework/Classes/SeqAct_Deproject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_GameCrowdPopulationManagerToggle.uc b/Development/Src/GameFramework/Classes/SeqAct_GameCrowdPopulationManagerToggle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_GameCrowdSpawner.uc b/Development/Src/GameFramework/Classes/SeqAct_GameCrowdSpawner.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_MobileAddInputZones.uc b/Development/Src/GameFramework/Classes/SeqAct_MobileAddInputZones.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_MobileClearInputZones.uc b/Development/Src/GameFramework/Classes/SeqAct_MobileClearInputZones.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_MobileRemoveInputZone.uc b/Development/Src/GameFramework/Classes/SeqAct_MobileRemoveInputZone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_MobileSaveLoadValue.uc b/Development/Src/GameFramework/Classes/SeqAct_MobileSaveLoadValue.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_ModifyProperty.uc b/Development/Src/GameFramework/Classes/SeqAct_ModifyProperty.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_PlayAgentAnimation.uc b/Development/Src/GameFramework/Classes/SeqAct_PlayAgentAnimation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqAct_ToggleMouseCursor.uc b/Development/Src/GameFramework/Classes/SeqAct_ToggleMouseCursor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_CrowdAgentReachedDestination.uc b/Development/Src/GameFramework/Classes/SeqEvent_CrowdAgentReachedDestination.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_HudRender.uc b/Development/Src/GameFramework/Classes/SeqEvent_HudRender.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_HudRenderImage.uc b/Development/Src/GameFramework/Classes/SeqEvent_HudRenderImage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_HudRenderText.uc b/Development/Src/GameFramework/Classes/SeqEvent_HudRenderText.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileBase.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileButton.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileButton.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileInput.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileLook.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileLook.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileMotion.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileMotion.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileObjectPicker.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileObjectPicker.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileRawInput.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileRawInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileSwipe.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileSwipe.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileTouchInputVolume.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileTouchInputVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/SeqEvent_MobileZoneBase.uc b/Development/Src/GameFramework/Classes/SeqEvent_MobileZoneBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Classes/TouchableElement3D.uc b/Development/Src/GameFramework/Classes/TouchableElement3D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/GameFramework/Globals.uci b/Development/Src/GameFramework/Globals.uci old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/ClientBeaconAddressResolver.uc b/Development/Src/IpDrv/Classes/ClientBeaconAddressResolver.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/HelloWeb.uc b/Development/Src/IpDrv/Classes/HelloWeb.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/ImageServer.uc b/Development/Src/IpDrv/Classes/ImageServer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/InternetLink.uc b/Development/Src/IpDrv/Classes/InternetLink.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/MCPBase.uc b/Development/Src/IpDrv/Classes/MCPBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpClashMobBase.uc b/Development/Src/IpDrv/Classes/McpClashMobBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpClashMobFileDownload.uc b/Development/Src/IpDrv/Classes/McpClashMobFileDownload.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpClashMobManager.uc b/Development/Src/IpDrv/Classes/McpClashMobManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpGroupsBase.uc b/Development/Src/IpDrv/Classes/McpGroupsBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpGroupsManager.uc b/Development/Src/IpDrv/Classes/McpGroupsManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpIdMappingBase.uc b/Development/Src/IpDrv/Classes/McpIdMappingBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpIdMappingManager.uc b/Development/Src/IpDrv/Classes/McpIdMappingManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpManagedValueManager.uc b/Development/Src/IpDrv/Classes/McpManagedValueManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpManagedValueManagerBase.uc b/Development/Src/IpDrv/Classes/McpManagedValueManagerBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpMessageBase.uc b/Development/Src/IpDrv/Classes/McpMessageBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpMessageManager.uc b/Development/Src/IpDrv/Classes/McpMessageManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpServerTimeBase.uc b/Development/Src/IpDrv/Classes/McpServerTimeBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpServerTimeManager.uc b/Development/Src/IpDrv/Classes/McpServerTimeManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpServiceBase.uc b/Development/Src/IpDrv/Classes/McpServiceBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpServiceConfig.uc b/Development/Src/IpDrv/Classes/McpServiceConfig.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpUserCloudFileDownload.uc b/Development/Src/IpDrv/Classes/McpUserCloudFileDownload.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpUserInventoryBase.uc b/Development/Src/IpDrv/Classes/McpUserInventoryBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpUserInventoryManager.uc b/Development/Src/IpDrv/Classes/McpUserInventoryManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpUserManager.uc b/Development/Src/IpDrv/Classes/McpUserManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/McpUserManagerBase.uc b/Development/Src/IpDrv/Classes/McpUserManagerBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/MeshBeacon.uc b/Development/Src/IpDrv/Classes/MeshBeacon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/MeshBeaconClient.uc b/Development/Src/IpDrv/Classes/MeshBeaconClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/MeshBeaconHost.uc b/Development/Src/IpDrv/Classes/MeshBeaconHost.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineAuthInterfaceImpl.uc b/Development/Src/IpDrv/Classes/OnlineAuthInterfaceImpl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineEventsInterfaceMcp.uc b/Development/Src/IpDrv/Classes/OnlineEventsInterfaceMcp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineGameInterfaceImpl.uc b/Development/Src/IpDrv/Classes/OnlineGameInterfaceImpl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineImageDownloaderWeb.uc b/Development/Src/IpDrv/Classes/OnlineImageDownloaderWeb.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineImageDownloaderWebHelper.uc b/Development/Src/IpDrv/Classes/OnlineImageDownloaderWebHelper.uc new file mode 100644 index 0000000..16e766d --- /dev/null +++ b/Development/Src/IpDrv/Classes/OnlineImageDownloaderWebHelper.uc @@ -0,0 +1,7 @@ +class OnlineImageDownloaderWebHelper extends Object + native + config(Engine); + +native function bool LoadImageFromTempDir(const string Filename, out array ImageData); // Export UOnlineImageDownloaderWebHelper::execLoadImageFromTempDir(FFrame&, void* const) + +native function bool SaveImageToTempDir(const string Filename, const array ImageData); // Export UOnlineImageDownloaderWebHelper::execSaveImageToTempDir(FFrame&, void* const) diff --git a/Development/Src/IpDrv/Classes/OnlineNewsInterfaceMcp.uc b/Development/Src/IpDrv/Classes/OnlineNewsInterfaceMcp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlinePlaylistManager.uc b/Development/Src/IpDrv/Classes/OnlinePlaylistManager.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlinePlaylistProvider.uc b/Development/Src/IpDrv/Classes/OnlinePlaylistProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineSubsystemCommonImpl.uc b/Development/Src/IpDrv/Classes/OnlineSubsystemCommonImpl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineTitleFileDownloadBase.uc b/Development/Src/IpDrv/Classes/OnlineTitleFileDownloadBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineTitleFileDownloadMcp.uc b/Development/Src/IpDrv/Classes/OnlineTitleFileDownloadMcp.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/OnlineTitleFileDownloadWeb.uc b/Development/Src/IpDrv/Classes/OnlineTitleFileDownloadWeb.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/PartyBeacon.uc b/Development/Src/IpDrv/Classes/PartyBeacon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/PartyBeaconClient.uc b/Development/Src/IpDrv/Classes/PartyBeaconClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/PartyBeaconHost.uc b/Development/Src/IpDrv/Classes/PartyBeaconHost.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/TcpLink.uc b/Development/Src/IpDrv/Classes/TcpLink.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/TitleFileDownloadCache.uc b/Development/Src/IpDrv/Classes/TitleFileDownloadCache.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/UIDataStore_OnlinePlaylists.uc b/Development/Src/IpDrv/Classes/UIDataStore_OnlinePlaylists.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/WebApplication.uc b/Development/Src/IpDrv/Classes/WebApplication.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/WebConnection.uc b/Development/Src/IpDrv/Classes/WebConnection.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/WebRequest.uc b/Development/Src/IpDrv/Classes/WebRequest.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/WebResponse.uc b/Development/Src/IpDrv/Classes/WebResponse.uc old mode 100755 new mode 100644 diff --git a/Development/Src/IpDrv/Classes/WebServer.uc b/Development/Src/IpDrv/Classes/WebServer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/MyMod/Classes/DO_NOT_DELETE.TXT b/Development/Src/MyMod/Classes/DO_NOT_DELETE.TXT new file mode 100644 index 0000000..e69de29 diff --git a/Development/Src/OnlineSubsystemGameCenter/Classes/OnlineSubsystemGameCenter.uc b/Development/Src/OnlineSubsystemGameCenter/Classes/OnlineSubsystemGameCenter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemGameCenter/Classes/OnlineSuppliedUIGameCenter.uc b/Development/Src/OnlineSubsystemGameCenter/Classes/OnlineSuppliedUIGameCenter.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemMcts/Classes/MctsOnlineSettings.uc b/Development/Src/OnlineSubsystemMcts/Classes/MctsOnlineSettings.uc new file mode 100644 index 0000000..e038b9a --- /dev/null +++ b/Development/Src/OnlineSubsystemMcts/Classes/MctsOnlineSettings.uc @@ -0,0 +1,3 @@ +class MctsOnlineSettings extends OnlineGameSettings + native + config(Engine); diff --git a/Development/Src/OnlineSubsystemMcts/Classes/OnlineGameInterfaceMcts.uc b/Development/Src/OnlineSubsystemMcts/Classes/OnlineGameInterfaceMcts.uc new file mode 100644 index 0000000..6afd4fe --- /dev/null +++ b/Development/Src/OnlineSubsystemMcts/Classes/OnlineGameInterfaceMcts.uc @@ -0,0 +1,46 @@ +class OnlineGameInterfaceMcts extends OnlineGameInterfaceImpl within OnlineSubsystemCommonImpl + native + config(Engine); + +enum EMctsMatchmakingType { + SMT_Invalid, // 0 + SMT_LAN, // 1 + SMT_Internet, // 2 +}; + +var MctsOnlineSettings MctsSettings; +var const OnlineVoiceInterfaceMcts MctsVoiceInt; +var array< delegate > GameInviteAcceptedDelegates; +var private const OnlineGameSearch InviteGameSearch; +var array< delegate > RegisterPlayerCompleteDelegates; +var array< delegate > UnregisterPlayerCompleteDelegates; + +native function bool UpdateOnlineGame(name SessionName, OnlineGameSettings UpdatedGameSettings, optional bool bShouldRefreshOnlineData=false); // Export UOnlineGameInterfaceMcts::execUpdateOnlineGame(FFrame&, void* const) + +function OnlineGameSettings GetGameSettings(name SessionName) { } + +function AddGameInviteAcceptedDelegate(byte LocalUserNum, delegate GameInviteAcceptedDelegate) { } + +function ClearGameInviteAcceptedDelegate(byte LocalUserNum, delegate GameInviteAcceptedDelegate) { } + +delegate OnGameInviteAccepted(const out OnlineGameSearchResult InviteResult); + +native function bool AcceptGameInvite(byte LocalUserNum, name SessionName); // Export UOnlineGameInterfaceMcts::execAcceptGameInvite(FFrame&, void* const) + +native function bool RegisterPlayer(name SessionName, UniqueNetId PlayerID, bool bWasInvited); // Export UOnlineGameInterfaceMcts::execRegisterPlayer(FFrame&, void* const) + +delegate OnRegisterPlayerComplete(name SessionName, UniqueNetId PlayerID, bool bWasSuccessful); + +function AddRegisterPlayerCompleteDelegate(delegate RegisterPlayerCompleteDelegate) { } + +function ClearRegisterPlayerCompleteDelegate(delegate RegisterPlayerCompleteDelegate) { } + +native function bool UnregisterPlayer(name SessionName, UniqueNetId PlayerID); // Export UOnlineGameInterfaceMcts::execUnregisterPlayer(FFrame&, void* const) + +delegate OnUnregisterPlayerComplete(name SessionName, UniqueNetId PlayerID, bool bWasSuccessful); + +function AddUnregisterPlayerCompleteDelegate(delegate UnregisterPlayerCompleteDelegate) { } + +function ClearUnregisterPlayerCompleteDelegate(delegate UnregisterPlayerCompleteDelegate) { } + +function bool QueryNonAdvertisedData(int StartAt, int NumberToQuery) { } diff --git a/Development/Src/OnlineSubsystemMcts/Classes/OnlineSubsystemMcts.uc b/Development/Src/OnlineSubsystemMcts/Classes/OnlineSubsystemMcts.uc new file mode 100644 index 0000000..087836f --- /dev/null +++ b/Development/Src/OnlineSubsystemMcts/Classes/OnlineSubsystemMcts.uc @@ -0,0 +1,414 @@ +class OnlineSubsystemMcts extends OnlineSubsystemCommonImpl + native + config(Engine) + implements(OnlinePlayerInterface,OnlineSystemInterface,OnlineChatInterface); + +struct ControllerConnectionState { + var const int bIsControllerConnected; + var const int bLastIsControllerConnected; + structdefaultproperties {} +}; + +var const OnlineGameInterfaceMcts MctsGameInt; +var const OnlineVoiceInterfaceMcts MctsVoiceInt; +var const localized string LocalProfileName; +var const string LoggedInPlayerName; +var const string LoggedInPlayerClanTag; +var const UniqueNetId LoggedInPlayerId; +var const int LoggedInPlayerNum; +var const OnlineSubsystem.ELoginStatus LoggedInStatus; +var const byte bWasKeyboardInputCanceled; +var config OnlineSubsystem.ENetworkNotificationPosition CurrentNotificationPosition; +var config string ProfileDataDirectory; +var config string ProfileDataExtension; +var const UniqueNetId LocalTeamChatId; +var const UniqueNetId InstanceChatId; +var array< delegate > ConnectionStatusChangeDelegates; +var array< delegate > LoginChangeDelegates; +var array< delegate > LoginFailedDelegates; +var array< delegate > LogoutCompletedDelegates; +var array< delegate > LinkStatusDelegates; +var array< delegate > ChatMessageDelegates; +var const string KeyboardResultsString; +var const bool bNeedsKeyboardTicking; +var bool bLastHasConnection; +var const config bool bShouldUseMcp; +var array< delegate > KeyboardInputDelegates; +var ControllerConnectionState ControllerStates[4]; +var float ConnectionPresenceTimeInterval; +var float ConnectionPresenceElapsedTime; + +native event bool Init(); // Export UOnlineSubsystemMcts::execInit(FFrame&, void* const) + +delegate OnLoginChange(byte LocalUserNum); + +native function bool Login(byte LocalUserNum, string LoginName, string Password, optional bool bWantsLocalOnly); // Export UOnlineSubsystemMcts::execLogin(FFrame&, void* const) + +native function bool RequestNewPlayer(byte LocalUserNum, string LoginName, string Password, string DesiredPlayerName); // Export UOnlineSubsystemMcts::execRequestNewPlayer(FFrame&, void* const) + +native function bool AutoLogin(); // Export UOnlineSubsystemMcts::execAutoLogin(FFrame&, void* const) + +delegate OnLoginFailed(byte LocalUserNum, EOnlineServerConnectionStatus ErrorCode); + +function AddLoginFailedDelegate(byte LocalUserNum, delegate LoginFailedDelegate) { } + +function ClearLoginFailedDelegate(byte LocalUserNum, delegate LoginFailedDelegate) { } + +native function bool Logout(byte LocalUserNum); // Export UOnlineSubsystemMcts::execLogout(FFrame&, void* const) + +delegate OnLogoutCompleted(bool bWasSuccessful); + +function AddLogoutCompletedDelegate(byte LocalUserNum, delegate LogoutDelegate) { } + +function ClearLogoutCompletedDelegate(byte LocalUserNum, delegate LogoutDelegate) { } + +native function ELoginStatus GetLoginStatus(byte LocalUserNum); // Export UOnlineSubsystemMcts::execGetLoginStatus(FFrame&, void* const) + +function bool IsGuestLogin(byte LocalUserNum) { } + +function bool IsLocalLogin(byte LocalUserNum) { } + +function bool GetUniquePlayerId(byte LocalUserNum, out UniqueNetId PlayerID) { } + +function bool GetControllerIdFromNetId(UniqueNetId PlayerID, out int ControllerId) { } + +function CacheLoggedInGamepad() { } + +function string GetPlayerNickname(byte LocalUserNum) { } + +native function EFeaturePrivilegeLevel CanPlayOnline(byte LocalUserNum); // Export UOnlineSubsystemMcts::execCanPlayOnline(FFrame&, void* const) + +function EFeaturePrivilegeLevel CanDownloadUserContent(byte LocalUserNum) { } + +function EFeaturePrivilegeLevel CanPurchaseContent(byte LocalUserNum) { } + +function EFeaturePrivilegeLevel CanViewPlayerProfiles(byte LocalUserNum) { } + +function EFeaturePrivilegeLevel CanShowPresenceInformation(byte LocalUserNum) { } + +native function bool IsFriend(byte LocalUserNum, UniqueNetId PlayerID); // Export UOnlineSubsystemMcts::execIsFriend(FFrame&, void* const) + +native function bool AreAnyFriends(byte LocalUserNum, out array Query); // Export UOnlineSubsystemMcts::execAreAnyFriends(FFrame&, void* const) + +native function string GetPlayerMctsName(); // Export UOnlineSubsystemMcts::execGetPlayerMctsName(FFrame&, void* const) + +function AddLoginChangeDelegate(delegate LoginDelegate) { } + +function ClearLoginChangeDelegate(delegate LoginDelegate) { } + +native function bool NeedEULA(); // Export UOnlineSubsystemMcts::execNeedEULA(FFrame&, void* const) + +event string GetPlayerNicknameFromIndex(int UserIndex) { } + +event UniqueNetId GetPlayerUniqueNetIdFromIndex(int UserIndex) { } + +native function bool HasLinkConnection(); // Export UOnlineSubsystemMcts::execHasLinkConnection(FFrame&, void* const) + +delegate OnLinkStatusChange(bool bIsConnected); + +function AddLinkStatusChangeDelegate(delegate LinkStatusDelegate) { } + +function ClearLinkStatusChangeDelegate(delegate LinkStatusDelegate) { } + +delegate OnExternalUIChange(bool bIsOpening); + +function AddExternalUIChangeDelegate(delegate ExternalUIDelegate) { } + +function ClearExternalUIChangeDelegate(delegate ExternalUIDelegate) { } + +function ENetworkNotificationPosition GetNetworkNotificationPosition() { } + +delegate OnControllerChange(int ControllerId, bool bIsConnected); + +function AddControllerChangeDelegate(delegate ControllerChangeDelegate) { } + +function ClearControllerChangeDelegate(delegate ControllerChangeDelegate) { } + +native function bool IsControllerConnected(int ControllerId); // Export UOnlineSubsystemMcts::execIsControllerConnected(FFrame&, void* const) + +delegate OnConnectionStatusChange(EOnlineServerConnectionStatus ConnectionStatus); + +function AddConnectionStatusChangeDelegate(delegate ConnectionStatusDelegate) { } + +function ClearConnectionStatusChangeDelegate(delegate ConnectionStatusDelegate) { } + +native function ENATType GetNATType(); // Export UOnlineSubsystemMcts::execGetNATType(FFrame&, void* const) + +delegate OnStorageDeviceChange(); + +function AddStorageDeviceChangeDelegate(delegate StorageDeviceChangeDelegate) { } + +function ClearStorageDeviceChangeDelegate(delegate StorageDeviceChangeDelegate) { } + +delegate OnChatMessage(int Channel, string Sender, string Message); + +function AddChatMessageDelegate(delegate ChatDelegate) { } + +function ClearChatMessageDelegate(delegate ChatDelegate) { } + +native function SendChatMessage(int Channel, string Message); // Export UOnlineSubsystemMcts::execSendChatMessage(FFrame&, void* const) + +native function SendPrivateChatMessage(string PlayerName, string Message); // Export UOnlineSubsystemMcts::execSendPrivateChatMessage(FFrame&, void* const) + +native function NotifyTeamChange(QWord PlayerUID, byte TeamID); // Export UOnlineSubsystemMcts::execNotifyTeamChange(FFrame&, void* const) + +function bool IsMuted(byte LocalUserNum, UniqueNetId PlayerID) { } + +native function EFeaturePrivilegeLevel CanCommunicate(byte LocalUserNum); // Export UOnlineSubsystemMcts::execCanCommunicate(FFrame&, void* const) + +delegate OnLoginStatusChange(ELoginStatus NewStatus, UniqueNetId NewId); + +function AddLoginStatusChangeDelegate(delegate LoginStatusDelegate, byte LocalUserNum) { } + +function ClearLoginStatusChangeDelegate(delegate LoginStatusDelegate, byte LocalUserNum) { } + +delegate OnLoginCancelled(); + +function AddLoginCancelledDelegate(delegate CancelledDelegate) { } + +function ClearLoginCancelledDelegate(delegate CancelledDelegate) { } + +function bool ReadProfileSettings(byte LocalUserNum, OnlineProfileSettings ProfileSettings) { } + +function bool WriteProfileSettings(byte LocalUserNum, OnlineProfileSettings ProfileSettings) { } + +function OnlineProfileSettings GetProfileSettings(byte LocalUserNum) { } + +delegate OnMutingChange(); + +function AddMutingChangeDelegate(delegate MutingDelegate) { } + +function ClearMutingChangeDelegate(delegate MutingDelegate) { } + +delegate OnReadProfileSettingsComplete(byte LocalUserNum, bool bWasSuccessful); + +function AddReadProfileSettingsCompleteDelegate(byte LocalUserNum, delegate ReadProfileSettingsCompleteDelegate) { } + +function ClearReadProfileSettingsCompleteDelegate(byte LocalUserNum, delegate ReadProfileSettingsCompleteDelegate) { } + +delegate OnWriteProfileSettingsComplete(byte LocalUserNum, bool bWasSuccessful); + +function AddWriteProfileSettingsCompleteDelegate(byte LocalUserNum, delegate WriteProfileSettingsCompleteDelegate) { } + +function ClearWriteProfileSettingsCompleteDelegate(byte LocalUserNum, delegate WriteProfileSettingsCompleteDelegate) { } + +function bool ReadPlayerStorage(byte LocalUserNum, OnlinePlayerStorage PlayerStorage, optional int DeviceID=-1) { } + +delegate OnReadPlayerStorageComplete(byte LocalUserNum, bool bWasSuccessful); + +function AddReadPlayerStorageCompleteDelegate(byte LocalUserNum, delegate ReadPlayerStorageCompleteDelegate) { } + +function ClearReadPlayerStorageCompleteDelegate(byte LocalUserNum, delegate ReadPlayerStorageCompleteDelegate) { } + +function bool ReadPlayerStorageForNetId(byte LocalUserNum, UniqueNetId NetId, OnlinePlayerStorage PlayerStorage) { } + +delegate OnReadPlayerStorageForNetIdComplete(UniqueNetId NetId, bool bWasSuccessful); + +function AddReadPlayerStorageForNetIdCompleteDelegate(UniqueNetId NetId, delegate ReadPlayerStorageForNetIdCompleteDelegate) { } + +function ClearReadPlayerStorageForNetIdCompleteDelegate(UniqueNetId NetId, delegate ReadPlayerStorageForNetIdCompleteDelegate) { } + +function OnlinePlayerStorage GetPlayerStorage(byte LocalUserNum) { } + +function bool WritePlayerStorage(byte LocalUserNum, OnlinePlayerStorage PlayerStorage, optional int DeviceID=-1) { } + +delegate OnWritePlayerStorageComplete(byte LocalUserNum, bool bWasSuccessful); + +function AddWritePlayerStorageCompleteDelegate(byte LocalUserNum, delegate WritePlayerStorageCompleteDelegate) { } + +function ClearWritePlayerStorageCompleteDelegate(byte LocalUserNum, delegate WritePlayerStorageCompleteDelegate) { } + +delegate OnFriendsChange(); + +function AddFriendsChangeDelegate(byte LocalUserNum, delegate FriendsDelegate) { } + +function ClearFriendsChangeDelegate(byte LocalUserNum, delegate FriendsDelegate) { } + +function bool ReadFriendsList(byte LocalUserNum, optional int Count, optional int StartingAt) { } + +delegate OnReadFriendsComplete(bool bWasSuccessful); + +function AddReadFriendsCompleteDelegate(byte LocalUserNum, delegate ReadFriendsCompleteDelegate) { } + +function ClearReadFriendsCompleteDelegate(byte LocalUserNum, delegate ReadFriendsCompleteDelegate) { } + +function EOnlineEnumerationReadState GetFriendsList(byte LocalUserNum, out array Friends, optional int Count, optional int StartingAt) { } + +function SetOnlineStatus(byte LocalUserNum, int StatusId, const out array LocalizedStringSettings, const out array Properties) { } + +function bool ShowKeyboardUI(byte LocalUserNum, string TitleText, string DescriptionText, optional bool bIsPassword=false, optional bool bShouldValidate=true, optional string DefaultText, optional int MaxResultLength=256) { } + +delegate OnKeyboardInputComplete(bool bWasSuccessful); + +function AddKeyboardInputDoneDelegate(delegate InputDelegate) { } + +function ClearKeyboardInputDoneDelegate(delegate InputDelegate) { } + +function string GetKeyboardInputResults(out byte bWasCanceled) { } + +function bool AddFriend(byte LocalUserNum, UniqueNetId NewFriend, optional string Message) { } + +function bool AddFriendByName(byte LocalUserNum, string FriendName, optional string Message) { } + +delegate OnAddFriendByNameComplete(bool bWasSuccessful); + +function AddAddFriendByNameCompleteDelegate(byte LocalUserNum, delegate FriendDelegate) { } + +function ClearAddFriendByNameCompleteDelegate(byte LocalUserNum, delegate FriendDelegate) { } + +function bool AcceptFriendInvite(byte LocalUserNum, UniqueNetId RequestingPlayer) { } + +function bool DenyFriendInvite(byte LocalUserNum, UniqueNetId RequestingPlayer) { } + +function bool RemoveFriend(byte LocalUserNum, UniqueNetId FormerFriend) { } + +delegate OnFriendInviteReceived(byte LocalUserNum, UniqueNetId RequestingPlayer, string RequestingNick, string Message); + +function AddFriendInviteReceivedDelegate(byte LocalUserNum, delegate InviteDelegate) { } + +function ClearFriendInviteReceivedDelegate(byte LocalUserNum, delegate InviteDelegate) { } + +function bool SendMessageToFriend(byte LocalUserNum, UniqueNetId Friend, string Message) { } + +function bool SendGameInviteToFriend(byte LocalUserNum, UniqueNetId Friend, optional string Text) { } + +function bool SendGameInviteToFriends(byte LocalUserNum, array Friends, optional string Text) { } + +delegate OnReceivedGameInvite(byte LocalUserNum, string InviterName); + +function AddReceivedGameInviteDelegate(byte LocalUserNum, delegate ReceivedGameInviteDelegate) { } + +function ClearReceivedGameInviteDelegate(byte LocalUserNum, delegate ReceivedGameInviteDelegate) { } + +function CheckForGameInviteOnLaunch() { } + +function bool JoinFriendGame(byte LocalUserNum, UniqueNetId Friend) { } + +delegate OnJoinFriendGameComplete(bool bWasSuccessful); + +function AddJoinFriendGameCompleteDelegate(delegate JoinFriendGameCompleteDelegate) { } + +function ClearJoinFriendGameCompleteDelegate(delegate JoinFriendGameCompleteDelegate) { } + +function GetFriendMessages(byte LocalUserNum, out array FriendMessages) { } + +delegate OnFriendMessageReceived(byte LocalUserNum, UniqueNetId SendingPlayer, string SendingNick, string Message); + +function AddFriendMessageReceivedDelegate(byte LocalUserNum, delegate MessageDelegate) { } + +function ClearFriendMessageReceivedDelegate(byte LocalUserNum, delegate MessageDelegate) { } + +function bool UnlockAchievement(byte LocalUserNum, int AchievementId, optional float PercentComplete=100.0000000) { } + +function bool ReadAchievements(byte LocalUserNum, optional int TitleId=0, optional bool bShouldReadText=true, optional bool bShouldReadImages=false) { } + +function EOnlineEnumerationReadState GetAchievements(byte LocalUserNum, out array Achievements, optional int TitleId = 0) { } + +delegate OnUnlockAchievementComplete(bool bWasSuccessful); + +function AddUnlockAchievementCompleteDelegate(byte LocalUserNum, delegate UnlockAchievementCompleteDelegate) { } + +function ClearUnlockAchievementCompleteDelegate(byte LocalUserNum, delegate UnlockAchievementCompleteDelegate) { } + +delegate OnReadAchievementsComplete(int TitleId); + +function AddReadAchievementsCompleteDelegate(byte LocalUserNum, delegate ReadAchievementsCompleteDelegate) { } + +function ClearReadAchievementsCompleteDelegate(byte LocalUserNum, delegate ReadAchievementsCompleteDelegate) { } + +function bool DeleteMessage(byte LocalUserNum, int MessageIndex) { } + +function bool ShowFriendsUI(byte LocalUserNum) { } + +delegate OnAccountPickerComplete(bool bForceLogin); + +function AddAccountPickerCompleteDelegate(delegate InDelegate) { } + +function RemoveAccountPickerCompleteDelegate(delegate InDelegate) { } + +function bool ShowLoginUI(optional bool bShowOnlineOnly = false) { } + +function SetNetworkNotificationPosition(ENetworkNotificationPosition NewPos) { } + +function int GetLocale() { } + +function ClearAchievements(byte LocalUserNum, optional int TitleId=0) { } + +function bool HideKeyboardUI(byte LocalUserNum) { } + +delegate OnCurrentUserChanged(byte LocalUserNum, string CurrentUser, string LoggedInUser); + +function AddCurrentUserChangedDelegate(delegate CurrentUserDelegate) { } + +function ClearCurrentUserChangedDelegate(delegate CurrentUserDelegate) { } + +delegate OnPrivilegeLevelChecked(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint); + +function AddPrivilegeLevelCheckedDelegate(delegate PrivilegeDelegate) { } + +function ClearPrivilegeLevelCheckedDelegate(delegate PrivilegeDelegate) { } + +delegate OnPrivilegeCheckedForUsers(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, array Results); + +function AddPrivilegeCheckedForUsersDelegate(delegate PrivilegeDelegate) { } + +function ClearPrivilegeCheckedForUsersDelegate(delegate PrivilegeDelegate) { } + +function bool CanCommunicateText(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanCommunicateVideo(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanCommunicateVoice(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanCommunicateVoiceWithUsers(byte LocalUserNum, array Users) { } + +function bool CanShareUserCreatedContent(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanRecordDVRClips(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanUseCloudStorage(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanAccessPremiumContent(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanAccessPremiumVideoContent(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanBrowseInternet(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanShareWithSocialNetwork(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanShareKinectContent(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +function bool CanUploadFitnessData(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve=false, optional string Reason="") { } + +delegate OnSystemUserControllerPairingChanged(int NewLocalUserNum, int PreviousLocalUserNum); + +function AddSystemUserContrllerPairingChangedDelegate(delegate PairingChangeDelegate) { } + +function ClearSystemUserContrllerPairingChangedDelegate(delegate PairingChangeDelegate) { } + +function bool PairUserAndControllerAtIndex(byte PlayerIndex, byte ControllerIndex, int PairIndex) { } + +function OnlineSubsystem.EOnlineServerConnectionStatus GetCurrentConnectionStatus() { } + +delegate OnTokenAndSignatureRetrieved(byte LocalUserNum, string URL, string Token, string Signature); + +function GetTokenAndSignatureForURL(byte LocalUserNum, string URL) { } + +function AddURLTokenRetrievedDelegate(byte LocalUserNum, delegate tsrDelegate) { } + +function ClearURLTokenRetrievedDelegate(byte LocalUserNum, delegate tsrDelegate) { } + +delegate OnUserAccountInfoRetrieved(bool bSuccessful, UserAccountInfo AccountInfo); + +function bool GetUserAccountInfo(byte LocalUserNum) { } + +function AddGetUserAccountInfoDelegate(delegate InDelegate) { } + +function ClearGetUserAccountInfoDelegate(delegate InDelegate) { } + +defaultproperties +{ + LoggedInPlayerName="Local Profile" + CurrentNotificationPosition=NNP_BottomRight + ConnectionPresenceTimeInterval=0.5000000 +} diff --git a/Development/Src/OnlineSubsystemMcts/Classes/OnlineVoiceInterfaceMcts.uc b/Development/Src/OnlineSubsystemMcts/Classes/OnlineVoiceInterfaceMcts.uc new file mode 100644 index 0000000..f40ea49 --- /dev/null +++ b/Development/Src/OnlineSubsystemMcts/Classes/OnlineVoiceInterfaceMcts.uc @@ -0,0 +1,83 @@ +class OnlineVoiceInterfaceMcts extends Object within OnlineSubsystemMcts + native + implements(OnlineVoiceInterface) + config(Engine); + +enum EMuteType { + MUTE_None, // 0 + MUTE_AllButFriends, // 1 + MUTE_All, // 2 +}; + +struct LocalTalkerMcts { + var bool bHasVoice; + var bool bHasNetworkedVoice; + var bool bIsRecognizingSpeech; + var bool bWasTalking; + var bool bIsTalking; + var bool bIsRegistered; + var OnlineVoiceInterfaceMcts.EMuteType MuteType; + structdefaultproperties {} +}; + +var native const transient Pointer MctsSubsystem; +var native const transient Pointer VoiceEnginePtr; +var LocalTalkerMcts CurrentLocalTalker; +var array RemoteTalkers; +var const array MuteList; +var array< delegate > SpeechRecognitionCompleteDelegates; +var array< delegate > TalkingDelegates; + +native function bool RegisterLocalTalker(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execRegisterLocalTalker(FFrame&, void* const) + +native function bool UnregisterLocalTalker(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execUnregisterLocalTalker(FFrame&, void* const) + +native function bool RegisterRemoteTalker(UniqueNetId PlayerID); // Export UOnlineVoiceInterfaceMcts::execRegisterRemoteTalker(FFrame&, void* const) + +native function bool UnregisterRemoteTalker(UniqueNetId PlayerID); // Export UOnlineVoiceInterfaceMcts::execUnregisterRemoteTalker(FFrame&, void* const) + +native function bool IsLocalPlayerTalking(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execIsLocalPlayerTalking(FFrame&, void* const) + +native function bool IsRemotePlayerTalking(UniqueNetId PlayerID); // Export UOnlineVoiceInterfaceMcts::execIsRemotePlayerTalking(FFrame&, void* const) + +native function bool IsHeadsetPresent(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execIsHeadsetPresent(FFrame&, void* const) + +native function bool SetRemoteTalkerPriority(byte LocalUserNum, UniqueNetId PlayerID, int Priority); // Export UOnlineVoiceInterfaceMcts::execSetRemoteTalkerPriority(FFrame&, void* const) + +function bool UpdatePlayerMuteSetting(bool PlayerMuteSetting) { } + +native function bool MuteRemoteTalker(byte LocalUserNum, UniqueNetId PlayerID, optional bool bIsSystemWide); // Export UOnlineVoiceInterfaceMcts::execMuteRemoteTalker(FFrame&, void* const) + +native function bool UnmuteRemoteTalker(byte LocalUserNum, UniqueNetId PlayerID, optional bool bIsSystemWide); // Export UOnlineVoiceInterfaceMcts::execUnmuteRemoteTalker(FFrame&, void* const) + +function bool IsTalkerMuted(UniqueNetId ConsoleId) { } + +delegate OnPlayerTalkingStateChange(UniqueNetId Player, bool bIsTalking); + +function AddPlayerTalkingDelegate(delegate TalkerDelegate) { } + +function ClearPlayerTalkingDelegate(delegate TalkerDelegate) { } + +native function StartNetworkedVoice(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execStartNetworkedVoice(FFrame&, void* const) + +native function StopNetworkedVoice(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execStopNetworkedVoice(FFrame&, void* const) + +native function bool StartSpeechRecognition(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execStartSpeechRecognition(FFrame&, void* const) + +native function bool StopSpeechRecognition(byte LocalUserNum); // Export UOnlineVoiceInterfaceMcts::execStopSpeechRecognition(FFrame&, void* const) + +native function bool GetRecognitionResults(byte LocalUserNum, out array Words); // Export UOnlineVoiceInterfaceMcts::execGetRecognitionResults(FFrame&, void* const) + +delegate OnRecognitionComplete(); + +function AddRecognitionCompleteDelegate(byte LocalUserNum, delegate RecognitionDelegate) { } + +function ClearRecognitionCompleteDelegate(byte LocalUserNum, delegate RecognitionDelegate) { } + +native function bool SelectVocabulary(byte LocalUserNum, int VocabularyId); // Export UOnlineVoiceInterfaceMcts::execSelectVocabulary(FFrame&, void* const) + +native function bool SetSpeechRecognitionObject(byte LocalUserNum, SpeechRecognition SpeechRecogObj); // Export UOnlineVoiceInterfaceMcts::execSetSpeechRecognitionObject(FFrame&, void* const) + +function bool MuteAll(byte LocalUserNum, bool bAllowFriends) { } + +function bool UnmuteAll(byte LocalUserNum) { } diff --git a/Development/Src/OnlineSubsystemPC/Classes/OnlineSubsystemPC.uc b/Development/Src/OnlineSubsystemPC/Classes/OnlineSubsystemPC.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineAuthInterfaceSteamworks.uc b/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineAuthInterfaceSteamworks.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineGameInterfaceSteamworks.uc b/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineGameInterfaceSteamworks.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineLobbyInterfaceSteamworks.uc b/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineLobbyInterfaceSteamworks.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineSubsystemSteamworks.uc b/Development/Src/OnlineSubsystemSteamworks/Classes/OnlineSubsystemSteamworks.uc old mode 100755 new mode 100644 diff --git a/Development/Src/OnlineSubsystemSteamworks/Globals.uci b/Development/Src/OnlineSubsystemSteamworks/Globals.uci old mode 100755 new mode 100644 diff --git a/Development/Src/PlatformCommon/Classes/PComBrowserInteraction.uc b/Development/Src/PlatformCommon/Classes/PComBrowserInteraction.uc old mode 100755 new mode 100644 index 416b29c..b1de87f --- a/Development/Src/PlatformCommon/Classes/PComBrowserInteraction.uc +++ b/Development/Src/PlatformCommon/Classes/PComBrowserInteraction.uc @@ -1,7 +1,5 @@ -class PComBrowserInteraction extends Interaction - transient - native - config(Engine) - hidecategories(Object,UIRoot); - -var private native const noexport Pointer VfTable_FCallbackEventDevice; +class PComBrowserInteraction extends Interaction + transient + native + config(Engine) + hidecategories(Object,UIRoot); diff --git a/Development/Src/PlatformCommon/Classes/PComBrowserManager.uc b/Development/Src/PlatformCommon/Classes/PComBrowserManager.uc deleted file mode 100755 index 19bdfe3..0000000 --- a/Development/Src/PlatformCommon/Classes/PComBrowserManager.uc +++ /dev/null @@ -1,7 +0,0 @@ -class PComBrowserManager extends Object - native; - -const BROWSER_SURFACE_ID = 1; - -// Export UPComBrowserManager::execOpenURL(FFrame&, void* const) -native function OpenURL(string URL, optional bool bShowNavButtons = true, optional bool bSetFocus = false); diff --git a/Development/Src/PlatformCommon/Classes/PComCheatManager.uc b/Development/Src/PlatformCommon/Classes/PComCheatManager.uc old mode 100755 new mode 100644 index f321c8a..ad1e4fb --- a/Development/Src/PlatformCommon/Classes/PComCheatManager.uc +++ b/Development/Src/PlatformCommon/Classes/PComCheatManager.uc @@ -1,3 +1,3 @@ -class PComCheatManager extends GameCheatManager within GamePlayerController - native - config(Game); +class PComCheatManager extends GameCheatManager within GamePlayerController + native + config(Game); diff --git a/Development/Src/PlatformCommon/Classes/PComDataDogUploader.uc b/Development/Src/PlatformCommon/Classes/PComDataDogUploader.uc deleted file mode 100755 index 22f5082..0000000 --- a/Development/Src/PlatformCommon/Classes/PComDataDogUploader.uc +++ /dev/null @@ -1,65 +0,0 @@ -class PComDataDogUploader extends Object - native; - -enum METRIC_TYPE -{ - DD_COUNT, - DD_GAUGE, - DD_RATE -}; - -struct native DataDogMetricsConfig -{ - var init string DD_API_TOKEN; - var init string serverLink; - var init string URL; - var init string hostnameTag; - var init string baseSeriesName; - var int sendIntervalSeconds; - var int writeIntervalTicks; - var init array tags; - - structdefaultproperties - { - DD_API_TOKEN="" - serverLink="" - URL="" - hostnameTag="" - baseSeriesName="" - sendIntervalSeconds=0 - writeIntervalTicks=0 - tags=() - } -}; - -struct native MetricPoint -{ - var QWord unixUTCTimestamp; - var float Value; - - structdefaultproperties - { - unixUTCTimestamp=() - Value=0.0000000 - } -}; - -struct native Metric -{ - var PComDataDogUploader.METRIC_TYPE Type; - var init array Points; - - structdefaultproperties - { - Type=DD_COUNT - Points=() - } -}; - -var private native const noexport Pointer VfTable_FTickableObject; -var float m_NextUpdateInSeconds; -var int m_nNextWrite; -var string m_fsBaseSeriesName; -var DataDogMetricsConfig m_Config; -var init native map{VOID,VOID} m_Metrics; -var Pointer DDUploadSyncObject; diff --git a/Development/Src/PlatformCommon/Classes/PComGameEngine.uc b/Development/Src/PlatformCommon/Classes/PComGameEngine.uc old mode 100755 new mode 100644 index ab33b5c..01ee05e --- a/Development/Src/PlatformCommon/Classes/PComGameEngine.uc +++ b/Development/Src/PlatformCommon/Classes/PComGameEngine.uc @@ -1,33 +1,52 @@ -class PComGameEngine extends GameEngine - transient - native - config(Engine); - -var native const Pointer pOutgoingMarshal; - -// Export UPComGameEngine::execSetFunction(FFrame&, void* const) -native function bool SetFunction(int nFunction); - -// Export UPComGameEngine::execSetFieldInt(FFrame&, void* const) -native function bool SetFieldInt(int nToken, int IntValue); - -// Export UPComGameEngine::execSetFieldFloat(FFrame&, void* const) -native function bool SetFieldFloat(int nToken, float FloatValue); - -// Export UPComGameEngine::execSetFieldString(FFrame&, void* const) -native function bool SetFieldString(int nToken, string StrValue); - -// Export UPComGameEngine::execClearMarshal(FFrame&, void* const) -native function ClearMarshal(); - -// Export UPComGameEngine::execSendMarshal(FFrame&, void* const) -native function SendMarshal(UniqueNetId qwPlayerId, bool bLowPriority); - -// Export UPComGameEngine::execSendMarshalAll(FFrame&, void* const) -native function SendMarshalAll(bool bLowPriority); - -// Export UPComGameEngine::execSendCtrlRequest(FFrame&, void* const) -native function SendCtrlRequest(string fsRequest); - -// Export UPComGameEngine::execSendGameRequest(FFrame&, void* const) -native function SendGameRequest(string fsRequest); +class PComGameEngine extends GameEngine + transient + native + config(Engine); + +struct MAR_EVENT { + var bool bSuccess; + var int nFunction; + var QWord qwId; + var QWord qwInfo; + var int nStmMsgId; + var int nEventFlags; + var string fsMessage; + var const Pointer pMarshal; + structdefaultproperties {} +}; + +var array< delegate > MarshalEventDelegates; +var native const Pointer pOutgoingMarshal; +var native const Pointer pEventMarshal; + +native function bool SetFunction(int nFunction); // Export UPComGameEngine::execSetFunction(FFrame&, void* const) + +native function bool SetFieldInt(int nToken, int IntValue); // Export UPComGameEngine::execSetFieldInt(FFrame&, void* const) + +native function bool SetFieldFloat(int nToken, float FloatValue); // Export UPComGameEngine::execSetFieldFloat(FFrame&, void* const) + +native function bool SetFieldString(int nToken, string StrValue); // Export UPComGameEngine::execSetFieldString(FFrame&, void* const) + +native function ClearMarshal(); // Export UPComGameEngine::execClearMarshal(FFrame&, void* const) + +native function SendMarshal(UniqueNetId qwPlayerId, bool bLowPriority); // Export UPComGameEngine::execSendMarshal(FFrame&, void* const) + +native function SendMarshalAll(bool bLowPriority); // Export UPComGameEngine::execSendMarshalAll(FFrame&, void* const) + +native function bool GetFieldInt(int nToken, out int IntValue); // Export UPComGameEngine::execGetFieldInt(FFrame&, void* const) + +native function bool GetFieldFloat(int nToken, out float FloatValue); // Export UPComGameEngine::execGetFieldFloat(FFrame&, void* const) + +native function bool GetFieldString(int nToken, out string StrValue); // Export UPComGameEngine::execGetFieldString(FFrame&, void* const) + +delegate OnMarshalEvent(Pointer pMarEvent); + +native function AddMarshalEventDelegate(delegate MarshalEventDelegate); // Export UPComGameEngine::execAddMarshalEventDelegate(FFrame&, void* const) + +native function ClearMarshalEventDelegate(delegate MarshalEventDelegate); // Export UPComGameEngine::execClearMarshalEventDelegate(FFrame&, void* const) + +native function SendCtrlRequest(string fsRequest); // Export UPComGameEngine::execSendCtrlRequest(FFrame&, void* const) + +native function SendGameRequest(string fsRequest); // Export UPComGameEngine::execSendGameRequest(FFrame&, void* const) + +native function bool HandlePlayerCommandInput(string FSCommand, optional PlayerController PC); // Export UPComGameEngine::execHandlePlayerCommandInput(FFrame&, void* const) diff --git a/Development/Src/PlatformCommon/Classes/PComGameViewportClient.uc b/Development/Src/PlatformCommon/Classes/PComGameViewportClient.uc old mode 100755 new mode 100644 index 85805e3..4aa772e --- a/Development/Src/PlatformCommon/Classes/PComGameViewportClient.uc +++ b/Development/Src/PlatformCommon/Classes/PComGameViewportClient.uc @@ -1,51 +1,27 @@ -class PComGameViewportClient extends GameViewportClient within Engine - transient - native - config(Engine); - -var transient PComOpenBroadcaster OpenBroadcaster; -var transient PComInputLightingEffect InputLightingEffect; -var config bool bUseDynamicResolutionScaler; -var native transient Pointer DynamicResolutionScaler; - -// Export UPComGameViewportClient::execInitDynamicResolutionScaler(FFrame&, void* const) -native final function InitDynamicResolutionScaler(); - -// Export UPComGameViewportClient::execGetCurrentGameSettingsVersion(FFrame&, void* const) -native function int GetCurrentGameSettingsVersion(); - -// Export UPComGameViewportClient::execHandleGameSettingsMigration(FFrame&, void* const) -native function HandleGameSettingsMigration(int OldGameSettingsVersion); - -// Export UPComGameViewportClient::execCheckGameSettingsVersion(FFrame&, void* const) -native final function CheckGameSettingsVersion(); - -exec function SetRTMPSettings(bool bAllowWebcam, bool bAllowMicrophone, bool bAllowDesktopAudio) -{ - //return; -} - -exec function StartRTMPStreaming(string InServer, string InKey) -{ - //return; -} - -exec function StopRTMPStreaming() -{ - //return; -} - -exec function StartFacebookStreaming() -{ - //return; -} - -event bool Init(out string OutError) -{ - CheckGameSettingsVersion(); - OpenBroadcaster = new (self) Class'PComOpenBroadcaster'; - InputLightingEffect = new (self) Class'PComInputLightingEffect'; - InitDynamicResolutionScaler(); - return super.Init(OutError); - //return ReturnValue; -} +class PComGameViewportClient extends GameViewportClient within Engine + transient + native + config(Engine); + +var transient PComOpenBroadcaster OpenBroadcaster; +var transient PComInputLightingEffect InputLightingEffect; +var config bool bUseDynamicResolutionScaler; +var native transient Pointer DynamicResolutionScaler; + +native function InitDynamicResolutionScaler(); // Export UPComGameViewportClient::execInitDynamicResolutionScaler(FFrame&, void* const) + +native function int GetCurrentGameSettingsVersion(); // Export UPComGameViewportClient::execGetCurrentGameSettingsVersion(FFrame&, void* const) + +native function HandleGameSettingsMigration(int OldGameSettingsVersion); // Export UPComGameViewportClient::execHandleGameSettingsMigration(FFrame&, void* const) + +native function CheckGameSettingsVersion(); // Export UPComGameViewportClient::execCheckGameSettingsVersion(FFrame&, void* const) + +exec function SetRTMPSettings(bool bAllowWebcam, bool bAllowMicrophone, bool bAllowDesktopAudio) { } + +exec function StartRTMPStreaming(string InServer, string InKey) { } + +exec function StopRTMPStreaming() { } + +exec function StartFacebookStreaming() { } + +event bool Init(out string OutError) { } diff --git a/Development/Src/PlatformCommon/Classes/PComImageDownloader.uc b/Development/Src/PlatformCommon/Classes/PComImageDownloader.uc old mode 100755 new mode 100644 index 89774c8..a77f2f2 --- a/Development/Src/PlatformCommon/Classes/PComImageDownloader.uc +++ b/Development/Src/PlatformCommon/Classes/PComImageDownloader.uc @@ -1,45 +1,30 @@ -class PComImageDownloader extends Object - native; - -const MAX_SIMULTANEOUS_DOWNLOADS = 8; -const TIME_OUT = 30.f; - -enum EPComImageDownloadState -{ - TIDS_NotStarted, - TIDS_Downloading, - TIDS_Succeeded, - TIDS_Failed -}; - -struct native PComImageDownload -{ - var init string URL; - var init string FilePath; - var private native const Pointer HttpDownloader; - var OnlineImageDownloaderWeb.EOnlineImageDownloadState State; - var init array Data; - var bool bPendingRemoval; - - structdefaultproperties - { - URL="" - FilePath="" - State=PIDS_NotStarted - Data=() - bPendingRemoval=false - } -}; - -var init array DownloadImages; -//var delegate __OnPComImageDownloaded__Delegate; - -delegate OnPComImageDownloaded(PComImageDownload CachedEntry) -{ - //return; -} - -function SetPComImageDownloadedDelegate(delegate PComImageDownloadedDelegate) -{ - //return; -} +class PComImageDownloader extends Object + native + config(Engine); + +const MAX_SIMULTANEOUS_DOWNLOADS = 8; + +const TIME_OUT = 30.f; + +enum EPComImageDownloadState { + TIDS_NotStarted, // 0 + TIDS_Downloading, // 1 + TIDS_Succeeded, // 2 + TIDS_Failed, // 3 +}; + +struct PComImageDownload { + var init string URL; + var init string FilePath; + var private const Pointer HttpDownloader; + var OnlineImageDownloaderWeb.EOnlineImageDownloadState State; + var init array Data; + var bool bPendingRemoval; + structdefaultproperties {} +}; + +var init array DownloadImages; + +delegate OnPComImageDownloaded(PComImageDownload CachedEntry); + +function SetPComImageDownloadedDelegate(delegate PComImageDownloadedDelegate) { } diff --git a/Development/Src/PlatformCommon/Classes/PComInputLightingEffect.uc b/Development/Src/PlatformCommon/Classes/PComInputLightingEffect.uc old mode 100755 new mode 100644 index d02be06..ec3f918 --- a/Development/Src/PlatformCommon/Classes/PComInputLightingEffect.uc +++ b/Development/Src/PlatformCommon/Classes/PComInputLightingEffect.uc @@ -1,71 +1,47 @@ -class PComInputLightingEffect extends Object - native - config(Game); - -struct native PComInputLightingPreset -{ - var() name PresetName; - var() InterpCurveLinearColor Curve; - var() LinearColor ColorTint; - var() int LoopCount; - var() float PlaybackRate; - var() float BlendInTime; - var() int Priority; - - structdefaultproperties - { - PresetName="None" - Curve=(Points=(),InterpMethod=IMT_UseFixedTangentEvalAndNewAutoTangents) - ColorTint=(R=1.0000000,G=1.0000000,B=1.0000000,A=1.0000000) - LoopCount=0 - PlaybackRate=1.0000000 - BlendInTime=0.0000000 - Priority=0 - } -}; - -struct native PComActiveInputLightingPreset -{ - var int LoopCount; - var float CurrentTime; - var float PlaybackRate; - - structdefaultproperties - { - LoopCount=0 - CurrentTime=0.0000000 - PlaybackRate=0.0000000 - } -}; - -var config bool bAllowLogitechSdk; -var transient bool bLogitechSdkInitialized; -var transient bool bLatchedSystemSettingsSdkAllowed; -var config array Presets; -var native transient Map_Mirror PresetsMap; -var transient array ActivePresets; -var transient LinearColor BlendFromColor; -var transient float BlendPercent; - -// Export UPComInputLightingEffect::execTryEnableSystem(FFrame&, void* const) -native function TryEnableSystem(); - -// Export UPComInputLightingEffect::execDisableSystem(FFrame&, void* const) -native function DisableSystem(); - -// Export UPComInputLightingEffect::execPlayPreset(FFrame&, void* const) -native function PlayPreset(name InPresetName, optional bool bUseOverrideStartTime = false, optional float OverrideStartTime = 0.0000000); - -// Export UPComInputLightingEffect::execStopPreset(FFrame&, void* const) -native function StopPreset(name InPresetName); - -// Export UPComInputLightingEffect::execSetCurrentTime(FFrame&, void* const) -native function SetCurrentTime(name InPresetName, float CurrentTime); - -// Export UPComInputLightingEffect::execIsLogitechSdkVersionValid(FFrame&, void* const) -native function bool IsLogitechSdkVersionValid(); - -defaultproperties -{ - BlendFromColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) -} \ No newline at end of file +class PComInputLightingEffect extends Object + native + config(Game); + +struct PComInputLightingPreset { + var () name PresetName; + var () InterpCurveLinearColor Curve; + var () LinearColor ColorTint; + var () int LoopCount; + var () float PlaybackRate; + var () float BlendInTime; + var () int Priority; + structdefaultproperties {} +}; + +struct PComActiveInputLightingPreset { + var int LoopCount; + var float CurrentTime; + var float PlaybackRate; + structdefaultproperties {} +}; + +var config bool bAllowLogitechSdk; +var transient bool bLogitechSdkInitialized; +var transient bool bLatchedSystemSettingsSdkAllowed; +var config array Presets; +var native transient Map_Mirror PresetsMap; +var transient array ActivePresets; +var transient LinearColor BlendFromColor; +var transient float BlendPercent; + +native function TryEnableSystem(); // Export UPComInputLightingEffect::execTryEnableSystem(FFrame&, void* const) + +native function DisableSystem(); // Export UPComInputLightingEffect::execDisableSystem(FFrame&, void* const) + +native function PlayPreset(name InPresetName, optional bool bUseOverrideStartTime=false, optional float OverrideStartTime=0.0000000); // Export UPComInputLightingEffect::execPlayPreset(FFrame&, void* const) + +native function StopPreset(name InPresetName); // Export UPComInputLightingEffect::execStopPreset(FFrame&, void* const) + +native function SetCurrentTime(name InPresetName, float CurrentTime); // Export UPComInputLightingEffect::execSetCurrentTime(FFrame&, void* const) + +native function bool IsLogitechSdkVersionValid(); // Export UPComInputLightingEffect::execIsLogitechSdkVersionValid(FFrame&, void* const) + +defaultproperties +{ + BlendFromColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) +} diff --git a/Development/Src/PlatformCommon/Classes/PComJsonHandler.uc b/Development/Src/PlatformCommon/Classes/PComJsonHandler.uc old mode 100755 new mode 100644 index 97f6799..2f1fb16 --- a/Development/Src/PlatformCommon/Classes/PComJsonHandler.uc +++ b/Development/Src/PlatformCommon/Classes/PComJsonHandler.uc @@ -1,14 +1,14 @@ -class PComJsonHandler extends Object - native; - -var PComImageDownloader m_pImageDownloader; -var native Pointer m_pCallbackObject; -var init string m_strUrl; -var init string m_strDownloadDir; -var init string m_strLocalDir; -var init string m_strJson; -var init string m_strName; -var native const Pointer m_pHttp; - -// Export UPComJsonHandler::execOnImageDownloaded(FFrame&, void* const) -native function OnImageDownloaded(PComImageDownload CachedEntry); +class PComJsonHandler extends Object + native + config(Engine) + dependson(PComImageDownloader); + +var PComImageDownloader m_pImageDownloader; +var native Pointer m_pCallbackObject; +var init string m_strUrl; +var init string m_strLocalDir; +var init string m_strJson; +var init string m_strName; +var native const Pointer m_pHttp; + +native function OnImageDownloaded(PComImageDownload CachedEntry); // Export UPComJsonHandler::execOnImageDownloaded(FFrame&, void* const) diff --git a/Development/Src/PlatformCommon/Classes/PComMusicTheme.uc b/Development/Src/PlatformCommon/Classes/PComMusicTheme.uc old mode 100755 new mode 100644 index de9db23..4f0ba7c --- a/Development/Src/PlatformCommon/Classes/PComMusicTheme.uc +++ b/Development/Src/PlatformCommon/Classes/PComMusicTheme.uc @@ -1,25 +1,19 @@ -class PComMusicTheme extends Object - native(Audio) - hidecategories(Object); - -struct native MusicEvent -{ - var() name EventName; - var() MusicTrackStruct EventTrack; - var() float EventDuration; - - structdefaultproperties - { - EventName="None" - EventTrack=(TheSoundCue=none,bAutoPlay=false,bPersistentAcrossLevels=false,FadeInTime=5.0000000,FadeInVolumeLevel=1.0000000,FadeOutTime=5.0000000,FadeOutVolumeLevel=0.0000000,MP3Filename="") - EventDuration=0.0000000 - } -}; - -var() MusicTrackStruct DefaultTrack; -var() array MusicEvents; - -defaultproperties -{ - DefaultTrack=(TheSoundCue=none,bAutoPlay=false,bPersistentAcrossLevels=false,FadeInTime=5.0000000,FadeInVolumeLevel=1.0000000,FadeOutTime=5.0000000,FadeOutVolumeLevel=0.0000000,MP3Filename="") -} \ No newline at end of file +class PComMusicTheme extends Object + native(Audio) + hidecategories(Object) + config(Engine); + +struct MusicEvent { + var () name EventName; + var () MusicTrackStruct EventTrack; + var () float EventDuration; + structdefaultproperties {} +}; + +var () MusicTrackStruct DefaultTrack; +var () array MusicEvents; + +defaultproperties +{ + DefaultTrack=(TheSoundCue=none,bAutoPlay=false,bPersistentAcrossLevels=false,FadeInTime=5.0000000,FadeInVolumeLevel=1.0000000,FadeOutTime=5.0000000,FadeOutVolumeLevel=0.0000000,MP3Filename="") +} diff --git a/Development/Src/PlatformCommon/Classes/PComMusicThemeFactory.uc b/Development/Src/PlatformCommon/Classes/PComMusicThemeFactory.uc old mode 100755 new mode 100644 index 0d72954..47a1434 --- a/Development/Src/PlatformCommon/Classes/PComMusicThemeFactory.uc +++ b/Development/Src/PlatformCommon/Classes/PComMusicThemeFactory.uc @@ -1,11 +1,12 @@ -class PComMusicThemeFactory extends Factory - transient - native(Audio); - -defaultproperties -{ - SupportedClass=Class'PComMusicTheme' - Description="Music Theme" - bCreateNew=true - bEditAfterNew=true -} \ No newline at end of file +class PComMusicThemeFactory extends Factory + transient + native(Audio) + config(Engine); + +defaultproperties +{ + SupportedClass=Class'PComMusicTheme' + Description="Music Theme" + bCreateNew=true + bEditAfterNew=true +} diff --git a/Development/Src/PlatformCommon/Classes/PComMusicThemePlayer.uc b/Development/Src/PlatformCommon/Classes/PComMusicThemePlayer.uc old mode 100755 new mode 100644 index c70afb1..9dc6ec9 --- a/Development/Src/PlatformCommon/Classes/PComMusicThemePlayer.uc +++ b/Development/Src/PlatformCommon/Classes/PComMusicThemePlayer.uc @@ -1,47 +1,37 @@ -class PComMusicThemePlayer extends Object - native(Audio); - -var private native const noexport Pointer VfTable_FTickableObject; -var transient string MusicThemePath; -var transient PComMusicTheme MusicTheme; -var export editinline transient AudioComponent MusicComp; -var PComMusicThemeSyncActor MusicSyncActor; -var transient name LastMusicEvent; -var transient MusicTrackStruct CurrentMusicTrack; -var transient float CurrentMusicTrackStartTime; -var transient float CurrentMusicTrackDuration; - -// Export UPComMusicThemePlayer::execInit(FFrame&, void* const) -native function Init(); - -// Export UPComMusicThemePlayer::execLoadDefaultTheme(FFrame&, void* const) -native function LoadDefaultTheme(); - -// Export UPComMusicThemePlayer::execGetDefaultThemePath(FFrame&, void* const) -native function string GetDefaultThemePath(); - -// Export UPComMusicThemePlayer::execLoadTheme(FFrame&, void* const) -native function LoadTheme(const string themepath); - -// Export UPComMusicThemePlayer::execOnThemeLoaded(FFrame&, void* const) -native function OnThemeLoaded(); - -// Export UPComMusicThemePlayer::execPlayDefaultMusic(FFrame&, void* const) -native function PlayDefaultMusic(); - -// Export UPComMusicThemePlayer::execPlayMusicEvent(FFrame&, void* const) -native function PlayMusicEvent(const name EventName); - -// Export UPComMusicThemePlayer::execStopMusic(FFrame&, void* const) -native function StopMusic(); - -// Export UPComMusicThemePlayer::execUpdateMusicTrack(FFrame&, void* const) -native function UpdateMusicTrack(const MusicTrackStruct NewMusicTrack, const optional float fDuration = 0.0000000); - -// Export UPComMusicThemePlayer::execUpdateReplicatedMusicEvent(FFrame&, void* const) -native function UpdateReplicatedMusicEvent(const name EventName); - -defaultproperties -{ - CurrentMusicTrack=(TheSoundCue=none,bAutoPlay=false,bPersistentAcrossLevels=false,FadeInTime=5.0000000,FadeInVolumeLevel=1.0000000,FadeOutTime=5.0000000,FadeOutVolumeLevel=0.0000000,MP3Filename="") -} \ No newline at end of file +class PComMusicThemePlayer extends Object + native(Audio) + config(Engine); + +var transient string MusicThemePath; +var transient PComMusicTheme MusicTheme; +var export editinline transient AudioComponent MusicComp; +var PComMusicThemeSyncActor MusicSyncActor; +var transient name LastMusicEvent; +var transient MusicTrackStruct CurrentMusicTrack; +var transient float CurrentMusicTrackStartTime; +var transient float CurrentMusicTrackDuration; + +native function Init(); // Export UPComMusicThemePlayer::execInit(FFrame&, void* const) + +native function LoadDefaultTheme(); // Export UPComMusicThemePlayer::execLoadDefaultTheme(FFrame&, void* const) + +native function string GetDefaultThemePath(); // Export UPComMusicThemePlayer::execGetDefaultThemePath(FFrame&, void* const) + +native function LoadTheme(const string themepath); // Export UPComMusicThemePlayer::execLoadTheme(FFrame&, void* const) + +native function OnThemeLoaded(); // Export UPComMusicThemePlayer::execOnThemeLoaded(FFrame&, void* const) + +native function PlayDefaultMusic(); // Export UPComMusicThemePlayer::execPlayDefaultMusic(FFrame&, void* const) + +native function PlayMusicEvent(const name EventName); // Export UPComMusicThemePlayer::execPlayMusicEvent(FFrame&, void* const) + +native function StopMusic(); // Export UPComMusicThemePlayer::execStopMusic(FFrame&, void* const) + +native function UpdateMusicTrack(const MusicTrackStruct NewMusicTrack, const optional float fDuration=0.0000000); // Export UPComMusicThemePlayer::execUpdateMusicTrack(FFrame&, void* const) + +native function UpdateReplicatedMusicEvent(const name EventName); // Export UPComMusicThemePlayer::execUpdateReplicatedMusicEvent(FFrame&, void* const) + +defaultproperties +{ + CurrentMusicTrack=(TheSoundCue=none,bAutoPlay=false,bPersistentAcrossLevels=false,FadeInTime=5.0000000,FadeInVolumeLevel=1.0000000,FadeOutTime=5.0000000,FadeOutVolumeLevel=0.0000000,MP3Filename="") +} diff --git a/Development/Src/PlatformCommon/Classes/PComMusicThemeSyncActor.uc b/Development/Src/PlatformCommon/Classes/PComMusicThemeSyncActor.uc old mode 100755 new mode 100644 index eedfac6..5a6c3ac --- a/Development/Src/PlatformCommon/Classes/PComMusicThemeSyncActor.uc +++ b/Development/Src/PlatformCommon/Classes/PComMusicThemeSyncActor.uc @@ -1,36 +1,29 @@ -class PComMusicThemeSyncActor extends Actor - native(Audio) - notplaceable - hidecategories(Navigation); - -var repnotify name m_ReplicatedMusicEvent; - -replication -{ - // Pos:0x000 - if(Role == ROLE_Authority) - m_ReplicatedMusicEvent; -} - -// Export UPComMusicThemeSyncActor::execUpdateMusicEvent(FFrame&, void* const) -native function UpdateMusicEvent(name EventName); - -// Export UPComMusicThemeSyncActor::execUpdateMusicEventClient(FFrame&, void* const) -native function UpdateMusicEventClient(name EventName); - -simulated event ReplicatedEvent(name VarName) -{ - //return; -} - -defaultproperties -{ - RemoteRole=ROLE_SimulatedProxy - //bServerTickIsDisabled=true - bAlwaysRelevant=true - bReplicateMovement=false - bSkipActorPropertyReplication=true - bOnlyDirtyReplication=true - NetUpdateFrequency=1.0000000 - NetPriority=2.7000000 -} \ No newline at end of file +class PComMusicThemeSyncActor extends Actor + native(Audio) + notplaceable + hidecategories(Navigation) + config(Engine); + +var repnotify name m_ReplicatedMusicEvent; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) m_ReplicatedMusicEvent; +} + +native function UpdateMusicEvent(name EventName); // Export UPComMusicThemeSyncActor::execUpdateMusicEvent(FFrame&, void* const) + +native function UpdateMusicEventClient(name EventName); // Export UPComMusicThemeSyncActor::execUpdateMusicEventClient(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +defaultproperties +{ + RemoteRole=ROLE_SimulatedProxy + bServerTickIsDisabled=true + bAlwaysRelevant=true + bReplicateMovement=false + bSkipActorPropertyReplication=true + bOnlyDirtyReplication=true + NetUpdateFrequency=1.0000000 + NetPriority=2.7000000 +} diff --git a/Development/Src/PlatformCommon/Classes/PComOpenBroadcaster.uc b/Development/Src/PlatformCommon/Classes/PComOpenBroadcaster.uc old mode 100755 new mode 100644 index 0cb10f4..fa999d5 --- a/Development/Src/PlatformCommon/Classes/PComOpenBroadcaster.uc +++ b/Development/Src/PlatformCommon/Classes/PComOpenBroadcaster.uc @@ -1,98 +1,62 @@ -class PComOpenBroadcaster extends Object - native - config(Game); - -enum EPComOpenBroadcasterState -{ - POBS_Idle, - POBS_WaitingForFacebookWebBrowserLoaded, - POBS_WaitingForFacebookNewPublishFlow, - POBS_FacebookNewPublishError, - POBS_WaitingForFacebookLogin, - POBS_WaitingForFacebookPublish, - POBS_FacebookPublishFinished, - POBS_Streaming, - POBS_Quitting -}; - -struct native PComOpenBroadcasterSettings -{ - var() bool bAllowWebcam; - var() bool bAllowMicrophone; - var() bool bAllowDesktopAudio; - - structdefaultproperties - { - bAllowWebcam=false - bAllowMicrophone=false - bAllowDesktopAudio=true - } -}; - -var private native const noexport Pointer VfTable_FCallbackEventDevice; -var config string FacebookAppId; -var config string FacebookApprovedDomain; -var config string FacebookLiveUrl; -var transient PComOpenBroadcaster.EPComOpenBroadcasterState CurrentState; -var transient PComOpenBroadcasterSettings CurrentSettings; -var transient Pointer StreamerProcessHandle; -var delegate __PreloadWebBrowser__Delegate; -var delegate __IsWebBrowserLoaded__Delegate; -var delegate __OpenWebBrowser__Delegate; -var delegate __CloseWebBrowser__Delegate; - -delegate PreloadWebBrowser() -{ - //return; -} - -delegate bool IsWebBrowserLoaded() -{ - //return ReturnValue; -} - -delegate OpenWebBrowser(string URL) -{ - //return; -} - -delegate CloseWebBrowser() -{ - //return; -} - -// Export UPComOpenBroadcaster::execIsStreaming(FFrame&, void* const) -native function bool IsStreaming(); - -// Export UPComOpenBroadcaster::execSetStreamSettings(FFrame&, void* const) -native function SetStreamSettings(const out PComOpenBroadcasterSettings InSettings); - -// Export UPComOpenBroadcaster::execQueueFacebookStreaming(FFrame&, void* const) -native function QueueFacebookStreaming(); - -// Export UPComOpenBroadcaster::execStartFacebookStreaming(FFrame&, void* const) -native function StartFacebookStreaming(); - -// Export UPComOpenBroadcaster::execStartRTMPStreaming(FFrame&, void* const) -native function StartRTMPStreaming(string InServer, string InKey); - -// Export UPComOpenBroadcaster::execStopStreaming(FFrame&, void* const) -native function StopStreaming(); - -// Export UPComOpenBroadcaster::execForceStopStreaming(FFrame&, void* const) -native function ForceStopStreaming(); - -// Export UPComOpenBroadcaster::execTick(FFrame&, void* const) -native final function Tick(); - -simulated event WebRequest DecodeFacebookRTMPUrl(string InRequest) -{ - //return ReturnValue; -} - -defaultproperties -{ - // FacebookAppId="958422817557131" - // FacebookApprovedDomain="www.smitegame.com" - // CurrentSettings=(bAllowWebcam=false,bAllowMicrophone=false,bAllowDesktopAudio=true) -} \ No newline at end of file +class PComOpenBroadcaster extends Object + native + config(Game); + +enum EPComOpenBroadcasterState { + POBS_Idle, // 0 + POBS_WaitingForFacebookWebBrowserLoaded, // 1 + POBS_WaitingForFacebookNewPublishFlow, // 2 + POBS_FacebookNewPublishError, // 3 + POBS_WaitingForFacebookLogin, // 4 + POBS_WaitingForFacebookPublish, // 5 + POBS_FacebookPublishFinished, // 6 + POBS_Streaming, // 7 + POBS_Quitting, // 8 +}; + +struct PComOpenBroadcasterSettings { + var () bool bAllowWebcam; + var () bool bAllowMicrophone; + var () bool bAllowDesktopAudio; + structdefaultproperties {} +}; + +var config string FacebookAppId; +var config string FacebookApprovedDomain; +var config string FacebookLiveUrl; +var transient PComOpenBroadcaster.EPComOpenBroadcasterState CurrentState; +var transient PComOpenBroadcasterSettings CurrentSettings; +var transient Pointer StreamerProcessHandle; + +delegate PreloadWebBrowser(); + +delegate bool IsWebBrowserLoaded(); + +delegate OpenWebBrowser(string URL); + +delegate CloseWebBrowser(); + +native function bool IsStreaming(); // Export UPComOpenBroadcaster::execIsStreaming(FFrame&, void* const) + +native function SetStreamSettings(const out PComOpenBroadcasterSettings InSettings); // Export UPComOpenBroadcaster::execSetStreamSettings(FFrame&, void* const) + +native function QueueFacebookStreaming(); // Export UPComOpenBroadcaster::execQueueFacebookStreaming(FFrame&, void* const) + +native function StartFacebookStreaming(); // Export UPComOpenBroadcaster::execStartFacebookStreaming(FFrame&, void* const) + +native function StartRTMPStreaming(string InServer, string InKey); // Export UPComOpenBroadcaster::execStartRTMPStreaming(FFrame&, void* const) + +native function StopStreaming(); // Export UPComOpenBroadcaster::execStopStreaming(FFrame&, void* const) + +native function ForceStopStreaming(); // Export UPComOpenBroadcaster::execForceStopStreaming(FFrame&, void* const) + +native function Tick(); // Export UPComOpenBroadcaster::execTick(FFrame&, void* const) + +simulated event WebRequest DecodeFacebookRTMPUrl(string InRequest) { } + +defaultproperties +{ + FacebookAppId="1871049266456588" + FacebookApprovedDomain="www.hirezstudios.com" + CurrentSettings=(bAllowWebcam=false,bAllowMicrophone=false,bAllowDesktopAudio=true) +} diff --git a/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureBase.uc b/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureBase.uc old mode 100755 new mode 100644 index 90c0ba3..329a057 --- a/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureBase.uc +++ b/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureBase.uc @@ -1,167 +1,115 @@ -class PComPerformanceCaptureBase extends Object - native - config(Game); - -enum EPComPerformanceCaptureState -{ - PPCS_WaitingToStart, - PPCS_MoveToNode, - PPCS_StartBasicStats, - PPCS_StopBasicStats, - PPCS_StartCycleStats, - PPCS_StopCycleStats, - PPCS_SaveAndExit, - PPCS_LoadCharacters, - PPCS_LoadCharactersOnly, - PPCS_DestroyPawns -}; - -struct native PComPerformanceCaptureProfile -{ - var() name ProfileName; - var() int ScalabilityBucket; - var() int ResolutionX; - var() int ResolutionY; - var() int VsyncInterval; - var() bool bFullScreen; - - structdefaultproperties - { - ProfileName="Default" - ScalabilityBucket=5 - ResolutionX=1920 - ResolutionY=1080 - VsyncInterval=0 - bFullScreen=false - } -}; - -struct native PComPerformanceCaptureStat -{ - var name StatName; - var Double StatValue; - - structdefaultproperties - { - StatName="None" - StatValue=() - } -}; - -struct native PComPerformanceCaptureStatsPerNode -{ - var Actor Node; - var array Stats; - - structdefaultproperties - { - Node=none - Stats=() - } -}; - -struct native PComPerformanceCaptureStatsPerSkin -{ - var string CharacterName; - var string SkinName; - var string SkeletalMeshPathName; - var string SkeletalMeshPathNameHead; - var string SkeletalMeshPathNameBody; - var string SkeletalMeshPathNameWeapon; - var array Stats; - - structdefaultproperties - { - CharacterName="" - SkinName="" - SkeletalMeshPathName="" - SkeletalMeshPathNameHead="" - SkeletalMeshPathNameBody="" - SkeletalMeshPathNameWeapon="" - Stats=() - } -}; - -var config array StatsToCollect; -var native transient Array_Mirror StatIds; -var transient array StatTypes; -var config float FOV; -var config array Profiles; -var config PComPerformanceCaptureProfile FallbackProfile; -var transient PComPerformanceCaptureProfile ActiveProfile; - -// Export UPComPerformanceCaptureBase::execInitializePerformanceCaptureSettings(FFrame&, void* const) -native final function InitializePerformanceCaptureSettings(); - -// Export UPComPerformanceCaptureBase::execMoveCamera(FFrame&, void* const) -native final function MoveCamera(PlayerController PlayerController, Actor Node); - -// Export UPComPerformanceCaptureBase::execEnableNonCycleStats(FFrame&, void* const) -native final function EnableNonCycleStats(); - -// Export UPComPerformanceCaptureBase::execEnableStatNotify(FFrame&, void* const) -native final function EnableStatNotify(); - -// Export UPComPerformanceCaptureBase::execGetPerformanceData(FFrame&, void* const) -native final function GetPerformanceData(out array PerfStats); - -// Export UPComPerformanceCaptureBase::execStopCycleStats(FFrame&, void* const) -native final function StopCycleStats(out array PerfStats); - -// Export UPComPerformanceCaptureBase::execGetMapNameAndTime(FFrame&, void* const) -native final function GetMapNameAndTime(out string MapNameStr, out string FormattedDate, out string FormattedTime); - -// Export UPComPerformanceCaptureBase::execGetStatsToCollect(FFrame&, void* const) -native final function GetStatsToCollect(out string FileContents); - -// Export UPComPerformanceCaptureBase::execGetPerfStats(FFrame&, void* const) -native final function GetPerfStats(const array PerfStats, out string FileContents); - -// Export UPComPerformanceCaptureBase::execCreateFileAndExit(FFrame&, void* const) -native final function CreateFileAndExit(string FileNameWithExtension, string FileContents, string SubfolderName); - -defaultproperties -{ - // StatsToCollect(0)="STAT_MeshDrawCalls" - // StatsToCollect(1)="STAT_StaticDrawListMeshDrawCalls" - // StatsToCollect(2)="STAT_InitViewsTime" - // StatsToCollect(3)="STAT_TotalSceneRenderingTime" - // StatsToCollect(4)="STAT_VirtualAllocSize" - // StatsToCollect(5)="STAT_StaticMeshTotalMemory" - // StatsToCollect(6)="STAT_StaticMeshVertexMemory" - // StatsToCollect(7)="STAT_StaticMeshIndexMemory" - // StatsToCollect(8)="STAT_AnimationMemory" - // StatsToCollect(9)="STAT_PixelShaderMemory" - // StatsToCollect(10)="STAT_VertexShaderMemory" - // StatsToCollect(11)="STAT_VertexLightingAndShadowingMemory" - // StatsToCollect(12)="STAT_TextureMemory" - // StatsToCollect(13)="STAT_TextureLightmapMemory" - // StatsToCollect(14)="STAT_DepthDrawTime" - // StatsToCollect(15)="STAT_BasePassDrawTime" - // StatsToCollect(16)="STAT_TranslucencyDrawTime" - // StatsToCollect(17)="STAT_ProjectedShadowDrawTime" - // StatsToCollect(18)="STAT_GameEngineTick" - // StatsToCollect(19)="STAT_TickTime" - // StatsToCollect(20)="STAT_ParticleManagerUpdateData" - // StatsToCollect(21)="STAT_UnrealScriptTime" - // StatsToCollect(22)="STAT_KismetTime" - // StatsToCollect(23)="STAT_RedrawViewports" - // StatsToCollect(24)="STAT_AudioMemory" - // StatsToCollect(25)="STAT_SkeletalMeshVertexMemory" - // StatsToCollect(26)="STAT_SkeletalMeshIndexMemory" - // StatsToCollect(27)="STAT_ProcessedPrimitives" - // StatsToCollect(28)="STAT_DynamicPathMeshDrawCalls" - // FOV=100.0000000 - // Profiles(0)=(ProfileName="Min0",ScalabilityBucket=1,ResolutionX=1366,ResolutionY=768,VsyncInterval=0,bFullScreen=false) - // Profiles(1)=(ProfileName="Min1",ScalabilityBucket=1,ResolutionX=1366,ResolutionY=768,VsyncInterval=0,bFullScreen=false) - // Profiles(2)=(ProfileName="Med2",ScalabilityBucket=3,ResolutionX=1600,ResolutionY=900,VsyncInterval=0,bFullScreen=false) - // Profiles(3)=(ProfileName="Med3",ScalabilityBucket=3,ResolutionX=1600,ResolutionY=900,VsyncInterval=0,bFullScreen=false) - // Profiles(4)=(ProfileName="Med4",ScalabilityBucket=3,ResolutionX=1600,ResolutionY=900,VsyncInterval=0,bFullScreen=false) - // Profiles(5)=(ProfileName="Max5",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) - // Profiles(6)=(ProfileName="Max6",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1200,VsyncInterval=0,bFullScreen=false) - // Profiles(7)=(ProfileName="Console",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) - // Profiles(8)=(ProfileName="XBox",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) - // Profiles(9)=(ProfileName="Switch",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) - //FallbackProfile=(ProfileName="Default",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) - ActiveProfile=(ProfileName="Default",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) -} \ No newline at end of file +class PComPerformanceCaptureBase extends Object + native + config(Game); + +enum EPComPerformanceCaptureState { + PPCS_WaitingToStart, // 0 + PPCS_MoveToNode, // 1 + PPCS_StartBasicStats, // 2 + PPCS_StopBasicStats, // 3 + PPCS_StartCycleStats, // 4 + PPCS_StopCycleStats, // 5 + PPCS_SaveAndExit, // 6 + PPCS_LoadCharacters, // 7 + PPCS_LoadCharactersOnly, // 8 + PPCS_DestroyPawns, // 9 +}; + +struct PComPerformanceCaptureProfile { + var () name ProfileName; + var () int ScalabilityBucket; + var () int ResolutionX; + var () int ResolutionY; + var () int VsyncInterval; + var () bool bFullScreen; + structdefaultproperties {} +}; + +struct PComPerformanceCaptureStat { + var name StatName; + var Double StatValue; + structdefaultproperties {} +}; + +struct PComPerformanceCaptureStatsPerNode { + var Actor Node; + var array Stats; + structdefaultproperties {} +}; + +struct PComPerformanceCaptureStatsPerSkin { + var string CharacterName; + var string SkinName; + var string SkeletalMeshPathName; + var array Stats; + structdefaultproperties {} +}; + +var config array StatsToCollect; +var native transient Array_Mirror StatIds; +var transient array StatTypes; +var config float FOV; +var config array Profiles; +var config PComPerformanceCaptureProfile FallbackProfile; +var transient PComPerformanceCaptureProfile ActiveProfile; + +native function InitializePerformanceCaptureSettings(); // Export UPComPerformanceCaptureBase::execInitializePerformanceCaptureSettings(FFrame&, void* const) + +native function MoveCamera(PlayerController PlayerController, Actor Node); // Export UPComPerformanceCaptureBase::execMoveCamera(FFrame&, void* const) + +native function EnableNonCycleStats(); // Export UPComPerformanceCaptureBase::execEnableNonCycleStats(FFrame&, void* const) + +native function EnableStatNotify(); // Export UPComPerformanceCaptureBase::execEnableStatNotify(FFrame&, void* const) + +native function GetPerformanceData(out array PerfStats); // Export UPComPerformanceCaptureBase::execGetPerformanceData(FFrame&, void* const) + +native function StopCycleStats(out array PerfStats); // Export UPComPerformanceCaptureBase::execStopCycleStats(FFrame&, void* const) + +native function GetMapNameAndTime(out string MapNameStr, out string FormattedDate, out string FormattedTime); // Export UPComPerformanceCaptureBase::execGetMapNameAndTime(FFrame&, void* const) + +native function GetStatsToCollect(out string FileContents); // Export UPComPerformanceCaptureBase::execGetStatsToCollect(FFrame&, void* const) + +native function GetPerfStats(const array PerfStats, out string FileContents); // Export UPComPerformanceCaptureBase::execGetPerfStats(FFrame&, void* const) + +native function CreateFileAndExit(string FileNameWithExtension, string FileContents, string SubfolderName); // Export UPComPerformanceCaptureBase::execCreateFileAndExit(FFrame&, void* const) + +defaultproperties +{ + StatsToCollect[0]="STAT_MeshDrawCalls" + StatsToCollect[1]="STAT_StaticDrawListMeshDrawCalls" + StatsToCollect[2]="STAT_InitViewsTime" + StatsToCollect[3]="STAT_TotalSceneRenderingTime" + StatsToCollect[4]="STAT_VirtualAllocSize" + StatsToCollect[5]="STAT_StaticMeshTotalMemory" + StatsToCollect[6]="STAT_StaticMeshVertexMemory" + StatsToCollect[7]="STAT_StaticMeshIndexMemory" + StatsToCollect[8]="STAT_AnimationMemory" + StatsToCollect[9]="STAT_PixelShaderMemory" + StatsToCollect[10]="STAT_VertexShaderMemory" + StatsToCollect[11]="STAT_VertexLightingAndShadowingMemory" + StatsToCollect[12]="STAT_TextureMemory" + StatsToCollect[13]="STAT_TextureLightmapMemory" + StatsToCollect[14]="STAT_DepthDrawTime" + StatsToCollect[15]="STAT_BasePassDrawTime" + StatsToCollect[16]="STAT_TranslucencyDrawTime" + StatsToCollect[17]="STAT_ProjectedShadowDrawTime" + StatsToCollect[18]="STAT_GameEngineTick" + StatsToCollect[19]="STAT_TickTime" + StatsToCollect[20]="STAT_ParticleManagerUpdateData" + StatsToCollect[21]="STAT_UnrealScriptTime" + StatsToCollect[22]="STAT_KismetTime" + StatsToCollect[23]="STAT_RedrawViewports" + StatsToCollect[24]="STAT_AudioMemory" + StatsToCollect[25]="STAT_SkeletalMeshVertexMemory" + StatsToCollect[26]="STAT_SkeletalMeshIndexMemory" + FOV=100.0000000 + Profiles[0]=(ProfileName="Min0",ScalabilityBucket=1,ResolutionX=1366,ResolutionY=768,VsyncInterval=0,bFullScreen=false) + Profiles[1]=(ProfileName="Min1",ScalabilityBucket=1,ResolutionX=1366,ResolutionY=768,VsyncInterval=0,bFullScreen=false) + Profiles[2]=(ProfileName="Med2",ScalabilityBucket=3,ResolutionX=1600,ResolutionY=900,VsyncInterval=0,bFullScreen=false) + Profiles[3]=(ProfileName="Med3",ScalabilityBucket=3,ResolutionX=1600,ResolutionY=900,VsyncInterval=0,bFullScreen=false) + Profiles[4]=(ProfileName="Med4",ScalabilityBucket=3,ResolutionX=1600,ResolutionY=900,VsyncInterval=0,bFullScreen=false) + Profiles[5]=(ProfileName="Max5",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) + Profiles[6]=(ProfileName="Console",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) + FallbackProfile=(ProfileName="Default",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) + ActiveProfile=(ProfileName="Default",ScalabilityBucket=5,ResolutionX=1920,ResolutionY=1080,VsyncInterval=0,bFullScreen=false) +} diff --git a/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureGame.uc b/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureGame.uc old mode 100755 new mode 100644 index ff36a3f..ee15b7b --- a/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureGame.uc +++ b/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureGame.uc @@ -1,37 +1,25 @@ -class PComPerformanceCaptureGame extends GameInfo - native - config(Game) - hidecategories(Navigation,Movement,Collision); - -struct native PComPerformanceCaptureStatCollection -{ - var name ProfileName; - var array Stats; - - structdefaultproperties - { - ProfileName="None" - Stats=() - } -}; - -var transient PComPerformanceCaptureBase BasePerformanceCapture; -var PComPerformanceCaptureBase.EPComPerformanceCaptureState CurrentCaptureState; -var transient array NodesToCapture; -var transient array StatsPerNode; - -event PostBeginPlay() -{ - //return; -} - -// Export UPComPerformanceCaptureGame::execCollectNodes(FFrame&, void* const) -native final function CollectNodes(); - -// Export UPComPerformanceCaptureGame::execDoNextAction(FFrame&, void* const) -native final function DoNextAction(); - -defaultproperties -{ - BasePerformanceCapture=none//PComPerformanceCaptureBase'Default__PComPerformanceCaptureGame.MyPerformanceBase' -} \ No newline at end of file +class PComPerformanceCaptureGame extends GameInfo + native + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(PComPerformanceCaptureBase); + +struct PComPerformanceCaptureStatCollection { + var name ProfileName; + var array Stats; + structdefaultproperties {} +}; + +var transient PComPerformanceCaptureBase BasePerformanceCapture; +var PComPerformanceCaptureBase.EPComPerformanceCaptureState CurrentCaptureState; +var transient array NodesToCapture; +var transient array StatsPerNode; + +event PostBeginPlay() { } + +native function CollectNodes(); // Export UPComPerformanceCaptureGame::execCollectNodes(FFrame&, void* const) + +native function DoNextAction(); // Export UPComPerformanceCaptureGame::execDoNextAction(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureNode.uc b/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureNode.uc old mode 100755 new mode 100644 index 27d68ad..2f139cc --- a/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureNode.uc +++ b/Development/Src/PlatformCommon/Classes/PComPerformanceCaptureNode.uc @@ -1,14 +1,15 @@ -class PComPerformanceCaptureNode extends Actor - native - placeable - hidecategories(Navigation); - -var(PerformanceNode) string ExecCommand; -var(PerformanceNode) float DelayBeforeCapture; - -defaultproperties -{ - DelayBeforeCapture=2.0000000 - Components(0)=none - Components(1)=none -} \ No newline at end of file +class PComPerformanceCaptureNode extends Actor + native + placeable + hidecategories(Navigation) + config(Engine); + +var (PerformanceNode) string ExecCommand; +var (PerformanceNode) float DelayBeforeCapture; + +defaultproperties +{ + DelayBeforeCapture=2.0000000 + Components[0]=none + Components[1]=none +} diff --git a/Development/Src/PlatformCommon/Classes/PComPictureInPicture.uc b/Development/Src/PlatformCommon/Classes/PComPictureInPicture.uc old mode 100755 new mode 100644 index 9b16810..f908f48 --- a/Development/Src/PlatformCommon/Classes/PComPictureInPicture.uc +++ b/Development/Src/PlatformCommon/Classes/PComPictureInPicture.uc @@ -1,73 +1,49 @@ -class PComPictureInPicture extends Object - native; - -const PICTURE_IN_PICTURE_BASE_WIDTH = 1920.0f; -const PICTURE_IN_PICTURE_BASE_HEIGHT = 1080.0f; - -struct native PComPipViewDesc -{ - var name ViewName; - var Vector ViewLocation; - var Rotator ViewRotation; - var Box Viewport; - var PostProcessChain PostProcessChain; - var PostProcessSettings PostProcessSettings; - var float FOV; - var Color ClearColor; - var bool bDebugRenderTranslucent; - var bool bAlwaysRender; - var Double RequestRenderTime; - var Double LastRenderedTime; - var int NumFramesSinceRender; - - structdefaultproperties - { - ViewName="None" - ViewLocation=(X=0.0000000,Y=0.0000000,Z=0.0000000) - ViewRotation=(Pitch=0,Yaw=0,Roll=0) - Viewport=(Min=(X=0.0000000,Y=0.0000000,Z=0.0000000),Max=(X=0.0000000,Y=0.0000000,Z=0.0000000),IsValid=0) - PostProcessChain=none - PostProcessSettings=()//(bOverride_EnableBloom=true,bOverride_EnableDOF=true,bOverride_EnableMotionBlur=true,bOverride_EnableSceneEffect=true,bOverride_AllowAmbientOcclusion=true,bOverride_OverrideRimShaderColor=true,bOverride_Bloom_Scale=true,bOverride_Bloom_Threshold=true,bOverride_Bloom_Tint=true,bOverride_Bloom_ScreenBlendThreshold=true,bOverride_Bloom_InterpolationDuration=true,bOverride_DOF_FalloffExponent=true,bOverride_DOF_BlurKernelSize=true,bOverride_DOF_BlurBloomKernelSize=true,bOverride_DOF_MaxNearBlurAmount=true,bOverride_DOF_MinBlurAmount=false,bOverride_DOF_MaxFarBlurAmount=true,bOverride_DOF_FocusType=true,bOverride_DOF_FocusInnerRadius=true,bOverride_DOF_FocusDistance=true,bOverride_DOF_FocusPosition=true,bOverride_DOF_InterpolationDuration=true,bOverride_DOF_BokehTexture=false,bOverride_MotionBlur_MaxVelocity=false,bOverride_MotionBlur_Amount=false,bOverride_MotionBlur_FullMotionBlur=false,bOverride_MotionBlur_CameraRotationThreshold=false,bOverride_MotionBlur_CameraTranslationThreshold=false,bOverride_MotionBlur_InterpolationDuration=false,bOverride_Scene_Desaturation=true,bOverride_Scene_Colorize=false,bOverride_Scene_TonemapperScale=false,bOverride_Scene_ImageGrainScale=false,bOverride_Scene_HighLights=true,bOverride_Scene_MidTones=true,bOverride_Scene_Shadows=true,bOverride_Scene_InterpolationDuration=true,bOverride_Scene_ColorGradingLUT=false,bOverride_RimShader_Color=true,bOverride_RimShader_InterpolationDuration=true,bOverride_MobileColorGrading=false,bEnableBloom=true,bEnableDOF=false,bEnableMotionBlur=true,bEnableSceneEffect=true,bAllowAmbientOcclusion=true,bOverrideRimShaderColor=false,Bloom_Scale=1.0000000,Bloom_Threshold=1.0000000,Bloom_Tint=(R=255,G=255,B=255,A=0),Bloom_ScreenBlendThreshold=10.0000000,Bloom_InterpolationDuration=1.0000000,DOF_BlurBloomKernelSize=16.0000000,DOF_FalloffExponent=4.0000000,DOF_BlurKernelSize=16.0000000,DOF_MaxNearBlurAmount=1.0000000,DOF_MinBlurAmount=0.0000000,DOF_MaxFarBlurAmount=1.0000000,DOF_FocusType=FOCUS_Distance,DOF_FocusInnerRadius=2000.0000000,DOF_FocusDistance=0.0000000,DOF_FocusPosition=(X=0.0000000,Y=0.0000000,Z=0.0000000),DOF_InterpolationDuration=1.0000000,DOF_BokehTexture=none,MotionBlur_MaxVelocity=1.0000000,MotionBlur_Amount=0.5000000,MotionBlur_FullMotionBlur=true,MotionBlur_CameraRotationThreshold=45.0000000,MotionBlur_CameraTranslationThreshold=10000.0000000,MotionBlur_InterpolationDuration=1.0000000,Scene_Desaturation=0.0000000,Scene_Colorize=(X=1.0000000,Y=1.0000000,Z=1.0000000),Scene_TonemapperScale=1.0000000,Scene_ImageGrainScale=0.0000000,Scene_HighLights=(X=1.0000000,Y=1.0000000,Z=1.0000000),Scene_MidTones=(X=1.0000000,Y=1.0000000,Z=1.0000000),Scene_Shadows=(X=0.0000000,Y=0.0000000,Z=0.0000000),Scene_InterpolationDuration=1.0000000,RimShader_Color=(R=0.4704400,G=0.5859730,B=0.8277260,A=1.0000000),RimShader_InterpolationDuration=1.0000000,ColorGrading_LookupTable=none,ColorGradingLUT=(LUTTextures=(),LUTWeights=()),MobileColorGrading=(TransitionTime=1.0000000,Blend=0.0000000,Desaturation=0.0000000,HighLights=(R=0.7000000,G=0.7000000,B=0.7000000,A=1.0000000),MidTones=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000),Shadows=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000)),MobilePostProcess=(bOverride_Mobile_BlurAmount=false,bOverride_Mobile_TransitionTime=false,bOverride_Mobile_Bloom_Scale=false,bOverride_Mobile_Bloom_Threshold=false,bOverride_Mobile_Bloom_Tint=false,bOverride_Mobile_DOF_Distance=false,bOverride_Mobile_DOF_MinRange=false,bOverride_Mobile_DOF_MaxRange=false,bOverride_Mobile_DOF_NearBlurFactor=false,bOverride_Mobile_DOF_FarBlurFactor=false,Mobile_BlurAmount=16.0000000,Mobile_TransitionTime=1.0000000,Mobile_Bloom_Scale=6.0000000,Mobile_Bloom_Threshold=0.5000000,Mobile_Bloom_Tint=(R=1.0000000,G=1.0000000,B=1.0000000,A=1.0000000),Mobile_DOF_Distance=1500.0000000,Mobile_DOF_MinRange=600.0000000,Mobile_DOF_MaxRange=1200.0000000,Mobile_DOF_NearBlurFactor=1.0000000,Mobile_DOF_FarBlurFactor=1.0000000),Death_Enable=false,Death_DesatAlpha=0.0000000,Hit_Enable=false,Hit_FadeAlpha=0.0000000,ColorBlind_Enable=false,ColorBlind_Mode=0,ColorBlind_Intensity=1.0000000) - FOV=90.0000000 - ClearColor=(R=0,G=0,B=0,A=0) - bDebugRenderTranslucent=false - bAlwaysRender=false - RequestRenderTime=() - LastRenderedTime=() - NumFramesSinceRender=0 - } -}; - -var private native const noexport Pointer VfTable_FCallbackEventDevice; -var PComPictureInPictureScene Scene; -var TextureRenderTarget2D RenderTargetToUse; -var init native array ViewDescs; -var bool bEnableDebugRendering; -var Vector2D CurrentOffset; -var Vector2D CurrentScaling; - -// Export UPComPictureInPicture::execInitializeRenderTarget(FFrame&, void* const) -native final function InitializeRenderTarget(); - -// Export UPComPictureInPicture::execAddView(FFrame&, void* const) -native final function AddView(const out PComPipViewDesc InViewDesc); - -// Export UPComPictureInPicture::execRemoveView(FFrame&, void* const) -native final function RemoveView(name ViewName); - -// Export UPComPictureInPicture::execRequestRender(FFrame&, void* const) -native final function RequestRender(name ViewName); - -// Export UPComPictureInPicture::execIsViewReady(FFrame&, void* const) -native final function bool IsViewReady(name ViewName); - -// Export UPComPictureInPicture::execIsViewDescReady(FFrame&, void* const) -native final function bool IsViewDescReady(const out PComPipViewDesc ViewDesc); - -// Export UPComPictureInPicture::execDebugRender(FFrame&, void* const) -native final function DebugRender(Canvas Canvas); - -function TestPictureInPicture() -{ - //return; -} +class PComPictureInPicture extends Object + native + config(Engine); + +const PICTURE_IN_PICTURE_BASE_WIDTH = 1920.0f; + +const PICTURE_IN_PICTURE_BASE_HEIGHT = 1080.0f; + +struct PComPipViewDesc { + var name ViewName; + var Vector ViewLocation; + var Rotator ViewRotation; + var Box Viewport; + var PostProcessChain PostProcessChain; + var PostProcessSettings PostProcessSettings; + var float FOV; + var Color ClearColor; + var bool bDebugRenderTranslucent; + var bool bAlwaysRender; + var Double RequestRenderTime; + var Double LastRenderedTime; + var int NumFramesSinceRender; + structdefaultproperties {} +}; + +var PComPictureInPictureScene Scene; +var TextureRenderTarget2D RenderTargetToUse; +var init native array ViewDescs; +var bool bEnableDebugRendering; +var Vector2D CurrentOffset; +var Vector2D CurrentScaling; + +native function InitializeRenderTarget(); // Export UPComPictureInPicture::execInitializeRenderTarget(FFrame&, void* const) + +native function Tick(); // Export UPComPictureInPicture::execTick(FFrame&, void* const) + +native function AddView(const out PComPipViewDesc InViewDesc); // Export UPComPictureInPicture::execAddView(FFrame&, void* const) + +native function RemoveView(name ViewName); // Export UPComPictureInPicture::execRemoveView(FFrame&, void* const) + +native function RequestRender(name ViewName); // Export UPComPictureInPicture::execRequestRender(FFrame&, void* const) + +native function bool IsViewReady(name ViewName); // Export UPComPictureInPicture::execIsViewReady(FFrame&, void* const) + +native function bool IsViewDescReady(const out PComPipViewDesc ViewDesc); // Export UPComPictureInPicture::execIsViewDescReady(FFrame&, void* const) + +native function DebugRender(Canvas Canvas); // Export UPComPictureInPicture::execDebugRender(FFrame&, void* const) + +function TestPictureInPicture() { } diff --git a/Development/Src/PlatformCommon/Classes/PComPictureInPictureScene.uc b/Development/Src/PlatformCommon/Classes/PComPictureInPictureScene.uc old mode 100755 new mode 100644 index 7565fac..67cfe94 --- a/Development/Src/PlatformCommon/Classes/PComPictureInPictureScene.uc +++ b/Development/Src/PlatformCommon/Classes/PComPictureInPictureScene.uc @@ -1,61 +1,49 @@ -class PComPictureInPictureScene extends Object - native; - -var() float SkyBrightness; -var() Color SkyColor; -var() float LightBrightness; -var() bool bAlwaysAllowAudioPlayback; -var() bool bForceAllUsedMipsResident; -var native transient Pointer Scene; -var export editinline array Components; -var export editinline DirectionalLightComponent DirectionalLight; -var export editinline DirectionalLightComponent DirectionalBounceLight; -var export editinline SkyLightComponent SkyLight; -var export editinline LineBatchComponent LineBatcher; - -// Export UPComPictureInPictureScene::execInitScene(FFrame&, void* const) -native function InitScene(); - -// Export UPComPictureInPictureScene::execAddComponent(FFrame&, void* const) -native function AddComponent(ActorComponent Component, const out Matrix LocalToWorld); - -// Export UPComPictureInPictureScene::execRemoveComponent(FFrame&, void* const) -native function RemoveComponent(ActorComponent Component); - -// Export UPComPictureInPictureScene::execGetLightDirection(FFrame&, void* const) -native function Rotator GetLightDirection(); - -// Export UPComPictureInPictureScene::execSetLightDirection(FFrame&, void* const) -native function SetLightDirection(const out Rotator InLightDir); - -// Export UPComPictureInPictureScene::execSetLightBrightness(FFrame&, void* const) -native function SetLightBrightness(float InLightBrightness); - -// Export UPComPictureInPictureScene::execSetLightColor(FFrame&, void* const) -native function SetLightColor(const out Color LightColor); - -// Export UPComPictureInPictureScene::execEnableDirectionalBounceLight(FFrame&, void* const) -native function EnableDirectionalBounceLight(bool bInEnableBoundLight, optional float InBounceLightBrightness = 0.0000000, optional Rotator BounceLightDir); - -// Export UPComPictureInPictureScene::execSetBounceLightDirection(FFrame&, void* const) -native function SetBounceLightDirection(const out Rotator InLightDir); - -// Export UPComPictureInPictureScene::execSetBounceLightBrightness(FFrame&, void* const) -native function SetBounceLightBrightness(float InLightBrightness); - -// Export UPComPictureInPictureScene::execSetBounceLightColor(FFrame&, void* const) -native function SetBounceLightColor(const out Color LightColor); - -// Export UPComPictureInPictureScene::execSetSkyBrightness(FFrame&, void* const) -native function SetSkyBrightness(float InSkyBrightness); - -// Export UPComPictureInPictureScene::execSetSkyColor(FFrame&, void* const) -native function SetSkyColor(const out Color InSkyColor); - -defaultproperties -{ - SkyBrightness=0.2500000 - SkyColor=(R=255,G=255,B=255,A=255) - LightBrightness=1.0000000 - bForceAllUsedMipsResident=true -} \ No newline at end of file +class PComPictureInPictureScene extends Object + native + config(Engine); + +var () float SkyBrightness; +var () Color SkyColor; +var () float LightBrightness; +var () bool bAlwaysAllowAudioPlayback; +var () bool bForceAllUsedMipsResident; +var native transient Pointer Scene; +var export editinline array Components; +var export editinline DirectionalLightComponent DirectionalLight; +var export editinline DirectionalLightComponent DirectionalBounceLight; +var export editinline SkyLightComponent SkyLight; +var export editinline LineBatchComponent LineBatcher; + +native function InitScene(); // Export UPComPictureInPictureScene::execInitScene(FFrame&, void* const) + +native function AddComponent(ActorComponent Component, const out Matrix LocalToWorld); // Export UPComPictureInPictureScene::execAddComponent(FFrame&, void* const) + +native function RemoveComponent(ActorComponent Component); // Export UPComPictureInPictureScene::execRemoveComponent(FFrame&, void* const) + +native function Rotator GetLightDirection(); // Export UPComPictureInPictureScene::execGetLightDirection(FFrame&, void* const) + +native function SetLightDirection(const out Rotator InLightDir); // Export UPComPictureInPictureScene::execSetLightDirection(FFrame&, void* const) + +native function SetLightBrightness(float InLightBrightness); // Export UPComPictureInPictureScene::execSetLightBrightness(FFrame&, void* const) + +native function SetLightColor(const out Color LightColor); // Export UPComPictureInPictureScene::execSetLightColor(FFrame&, void* const) + +native function EnableDirectionalBounceLight(bool bInEnableBoundLight, optional float InBounceLightBrightness=0.0000000, optional Rotator BounceLightDir); // Export UPComPictureInPictureScene::execEnableDirectionalBounceLight(FFrame&, void* const) + +native function SetBounceLightDirection(const out Rotator InLightDir); // Export UPComPictureInPictureScene::execSetBounceLightDirection(FFrame&, void* const) + +native function SetBounceLightBrightness(float InLightBrightness); // Export UPComPictureInPictureScene::execSetBounceLightBrightness(FFrame&, void* const) + +native function SetBounceLightColor(const out Color LightColor); // Export UPComPictureInPictureScene::execSetBounceLightColor(FFrame&, void* const) + +native function SetSkyBrightness(float InSkyBrightness); // Export UPComPictureInPictureScene::execSetSkyBrightness(FFrame&, void* const) + +native function SetSkyColor(const out Color InSkyColor); // Export UPComPictureInPictureScene::execSetSkyColor(FFrame&, void* const) + +defaultproperties +{ + SkyBrightness=0.2500000 + SkyColor=(R=255,G=255,B=255,A=255) + LightBrightness=1.0000000 + bForceAllUsedMipsResident=true +} diff --git a/Development/Src/PlatformCommon/Classes/PComPlayerController.uc b/Development/Src/PlatformCommon/Classes/PComPlayerController.uc old mode 100755 new mode 100644 index 1dc1433..531778f --- a/Development/Src/PlatformCommon/Classes/PComPlayerController.uc +++ b/Development/Src/PlatformCommon/Classes/PComPlayerController.uc @@ -1,570 +1,249 @@ -class PComPlayerController extends GamePlayerController - native - config(Game) - hidecategories(Navigation); - -var UniqueNetId m_LastPendingPartyInviteId; -var bool m_bPartySessionJoinInProgress; -var bool m_bPartySessionCreateInProgress; -var bool m_bPartyDestroyInProgress; -var transient bool m_bQuittingToMainMenu; -var transient bool m_bHasAcknowledgedPawn; -var transient bool m_bLastClientTokenRequestFailed; -var globalconfig bool m_bKeepLoggedIn; -var dword m_dwPendingPartyId; -var config int m_nMaxPartyPublicConnections; -var OnlineGameSearchResult m_PendingInviteResult; -var const name PartySessionName; -var const name GameSessionName; -var globalconfig dword m_dwLastLoginPortalId; -var globalconfig dword m_dwLastLoginAccountId; -var globalconfig string m_sLastLoginAccessToken; -var globalconfig string m_sLastLoginAccessTokenExpiration; - -// Export UPComPlayerController::execClientAddCheats(FFrame&, void* const) -native function ClientAddCheats(); - -// xiloe: added bFore to stop UDK from bitching -simulated function AddCheats(optional bool bForce) -{ - ClientAddCheats(); - //return; -} - -exec function TestVideoPlayer() -{ - //return; -} - -// Export UPComPlayerController::execUpdateDatacenterPing(FFrame&, void* const) -native function UpdateDatacenterPing(); - -// Export UPComPlayerController::execChallengeCreate(FFrame&, void* const) -native exec function ChallengeCreate(int nQueue, string fsName, optional string fsPassword); - -// Export UPComPlayerController::execChallengeJoin(FFrame&, void* const) -native exec function ChallengeJoin(int nMatchId, string fsName, optional string fsPassword); - -// Export UPComPlayerController::execUpdateClientToken(FFrame&, void* const) -native function UpdateClientToken(string Token); - -// Export UPComPlayerController::execUpdateClientAuthToken(FFrame&, void* const) -native function UpdateClientAuthToken(string Token); - -// Export UPComPlayerController::execValidateCreatedPartySession(FFrame&, void* const) -native function ValidateCreatedPartySession(); - -// Export UPComPlayerController::execPlayerRetrievedOSSInventory(FFrame&, void* const) -//native function PlayerRetrievedOSSInventory(out array Items); - -// Export UPComPlayerController::execBeginLogin(FFrame&, void* const) -native exec function BeginLogin(); - -// Export UPComPlayerController::execGetTokenURL(FFrame&, void* const) -native function string GetTokenURL(); - -event GetOSSTokenAndSignatureForLogin() -{ - //return; -} - -function PlayerReceivedURLTokenAndSignatureForLogin(bool bSuccess, byte LocalUserNum, string URL, string Token, string AuthToken, string Signature) -{ - //return; -} - -// Export UPComPlayerController::execPlayerReceivedTokenForLogin(FFrame&, void* const) -native function PlayerReceivedTokenForLogin(bool bSuccess); - -event CacheLoggedInGamepad() -{ - //return; -} - -event bool ShowConsoleLoginUI(int ControllerId, optional bool bForceLoginAfter) -{ - //return ReturnValue; -} - -event bool IsLoggedIntoOSS() -{ - //return ReturnValue; -} - -event RefreshStoreData() -{ - //return; -} - -//function OnReadAvailableProductsComplete(OnlineSubsystem.EMediaItemType MediaType) -//{ - //return; -//} - -//function OnReadDetailsForProductIdListComplete(out array ProductList) -//{ - //return; -//} - -//function OnReadAdditionalProductDetailsComplete(OnlineSubsystem.EMediaItemType MediaType) -//{ - //return; -//} - -exec function DumpGameProducts() -{ - //return; -} - -exec function DumpDurables() -{ - //return; -} - -exec function DumpConumables() -{ - //return; -} - -//exec function DumpStoreCatalog(OnlineSubsystem.EMediaItemType MediaType) -//{ - //return; -//} - -event ProcessPortalInventoryWithAuthToken() -{ - //return; -} - -function PlayerReceivedURLTokenAndSignatureForPortalInventory(bool bSuccess, byte LocalUserNum, string URL, string Token, string AuthToken, string Signature) -{ - //return; -} - -function OnReadPlayerMarketplaceInventoryComplete() -{ - //return; -} - -event OnlineSubsystem.EOnlineEnumerationReadState GetPlayerDLCLicenses(out array ContentList) -{ - //return ReturnValue; -} - -simulated function OnMarketplaceItemPurchased() -{ - //return; -} - -// Export UPComPlayerController::execOnLoginStatusChange(FFrame&, void* const) -native function OnLoginStatusChange(OnlineSubsystem.ELoginStatus NewStatus, UniqueNetId NewId); - -// Export UPComPlayerController::execOnConnectionStatusChange(FFrame&, void* const) -native function OnConnectionStatusChange(OnlineSubsystem.EOnlineServerConnectionStatus ConnectionStatus); - -// Export UPComPlayerController::execOnCurrentUserChanged(FFrame&, void* const) -native function OnCurrentUserChanged(byte LocalUserNum, string CurrentUser, string LoggedInUser); - -// Export UPComPlayerController::execOnRemoteTalkerStatusChange(FFrame&, void* const) -native function OnRemoteTalkerStatusChange(UniqueNetId RemoteNetId, bool bIsTalking); - -// Export UPComPlayerController::execSendSessionStart(FFrame&, void* const) -native function SendSessionStart(int GameModeId); - -// Export UPComPlayerController::execSendSessionEnd(FFrame&, void* const) -native function SendSessionEnd(); - -// Export UPComPlayerController::execIsInCustomMatch(FFrame&, void* const) -native simulated function bool IsInCustomMatch(); - -// Export UPComPlayerController::execMCTSSetSessionId(FFrame&, void* const) -native function MCTSSetSessionId(byte PlatformSpecificInfo[80]); - -// Export UPComPlayerController::execTryJoinSession(FFrame&, void* const) -native function TryJoinSession(); - -// Export UPComPlayerController::execConnectToPeers(FFrame&, void* const) -//native simulated function ConnectToPeers(out array SessionListInfo); - -// Export UPComPlayerController::execShowPrivilegeMessageAndDeclineInvite(FFrame&, void* const) -native simulated function ShowPrivilegeMessageAndDeclineInvite(); - -// Export UPComPlayerController::execFilterFriendListForPeoplePicker(FFrame&, void* const) -//native simulated function FilterFriendListForPeoplePicker(out array FriendList, out array SessionMemberList); - -// Export UPComPlayerController::execBlockPartySceneInput(FFrame&, void* const) -native function BlockPartySceneInput(bool bBlockInput); - -// Export UPComPlayerController::execUpdateMCTSSession(FFrame&, void* const) -native simulated function UpdateMCTSSession(string SessionGuid, bool bIsHost); - -// Export UPComPlayerController::execArePartySessionInvitesAllowed(FFrame&, void* const) -native function bool ArePartySessionInvitesAllowed(); - -// Export UPComPlayerController::execCreateOrJoinPartySession(FFrame&, void* const) -native function CreateOrJoinPartySession(); - -function bool ShouldPartySessionsBePublic() -{ - //return ReturnValue; -} - -// Export UPComPlayerController::execShowControllerDisconnectedWarning(FFrame&, void* const) -native function ShowControllerDisconnectedWarning(); - -// Export UPComPlayerController::execShowNoFriendsForPartyInviteWarning(FFrame&, void* const) -native function ShowNoFriendsForPartyInviteWarning(); - -// Export UPComPlayerController::execShowUnableToReadFriendsListWarning(FFrame&, void* const) -native function ShowUnableToReadFriendsListWarning(); - -// Export UPComPlayerController::execShowPartyFullWarning(FFrame&, void* const) -native function ShowPartyFullWarning(bool bPartySession); - -// Export UPComPlayerController::execShowPartyNoLongerAvailableWarning(FFrame&, void* const) -native function ShowPartyNoLongerAvailableWarning(); - -// Export UPComPlayerController::execShowPackageNotInstalledForPartyInviteWarning(FFrame&, void* const) -native function ShowPackageNotInstalledForPartyInviteWarning(); - -// Export UPComPlayerController::execShowCustomGameDisallowedPopup(FFrame&, void* const) -native function ShowCustomGameDisallowedPopup(); - -// Export UPComPlayerController::execTryOpenPartyUI(FFrame&, void* const) -native function TryOpenPartyUI(); - -// Export UPComPlayerController::execUpdatePartyUI(FFrame&, void* const) -native function UpdatePartyUI(); - -// Export UPComPlayerController::execLeaveMatchQueue(FFrame&, void* const) -native function LeaveMatchQueue(); - -// Export UPComPlayerController::execOnAllMarketplaceProductDetailsRead(FFrame&, void* const) -native function OnAllMarketplaceProductDetailsRead(); - -function AcknowledgePossession(Pawn P) -{ - //return; -} - -reliable server event ServerAcknowledgePossession(Pawn P) -{ - //return; -} - -simulated event QuitToMainMenu() -{ - //return; -} - -function bool CleanupOnlineSubsystemSession(bool bWasFromMenu) -{ - //return ReturnValue; -} - -function FinishQuitToMainMenu() -{ - //return; -} - -function OnEndOnlineGameComplete(name SessionName, bool bWasSuccessful) -{ - //return; -} - -function OnDestroyOnlineGameComplete(name SessionName, bool bWasSuccessful) -{ - //return; -} - -exec event ChooseThisControllerForSessionScout(bool bCustomMatch, int MaxPlayers, bool bPrivate, optional out array ReservedMembers) -{ - //return; -} - -simulated function OnCreateOnlineGameComplete(name SessionName, bool bWasSuccessful) -{ - //return; -} - -reliable client simulated event ReceiveSessionInfo(byte PlatformSpecificInfo[80], WorldInfo.EConsoleType ConsoleType) -{ - //return; -} - -simulated function OnJoinOnlineGameCompleteForReceivedSessionInfo(name SessionName, bool bWasSuccessful) -{ - //return; -} - -simulated event RestablishVoiceForReconnect() -{ - //return; -} - -// Export UPComPlayerController::execIsReconnect(FFrame&, void* const) -native simulated function bool IsReconnect(); - -reliable server function ServerReEstablishP2PConnections() -{ - //return; -} - -reliable client simulated function ClientRestablishP2PConnections() -{ - //return; -} - -event RegisterOnlineDelegates() -{ - //return; -} - -event ClearOnlineDelegates() -{ - //return; -} - -// Export UPComPlayerController::execOnPrivilegeLevelChecked(FFrame&, void* const) -//native function OnPrivilegeLevelChecked(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint); - -// Export UPComPlayerController::execOnPrivilegeCheckedForUsersByUniqueNetIds(FFrame&, void* const) -//native function OnPrivilegeCheckedForUsersByUniqueNetIds(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, array Results); - -// Export UPComPlayerController::execOnContentPurchaseResponse(FFrame&, void* const) -native function OnContentPurchaseResponse(bool bAuthorized, QWord qwOrderId); - -// Export UPComPlayerController::execUpdateMctsWithFriends(FFrame&, void* const) -native function UpdateMctsWithFriends(bool bWasSuccessful); - -// Export UPComPlayerController::execRequestUpdateFriendsList(FFrame&, void* const) -native function RequestUpdateFriendsList(optional bool bForceRequest = false); - -// Export UPComPlayerController::execOnTextFilterApplied(FFrame&, void* const) -native function OnTextFilterApplied(string OriginalText, string FilteredText, bool bCensorCompletely); - -event bool CanCommunicateText(byte LocalUserNum, out OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevelHint, optional bool bAttemptToResolve = false, optional string Reason = "") -{ - //return ReturnValue; -} - -event bool CanCommunicateTextWithUsersByUniqueNetIds(byte LocalUserNum, array Users) -{ - //return ReturnValue; -} - -event bool CheckFilterText(string Text) -{ - //return ReturnValue; -} - -//function OnMultiplayerSessionChange(name SessionName, SessionUpdateInfo SessionChanges) -//{ - //return; -//} - -// Export UPComPlayerController::execIsPackageInstalled(FFrame&, void* const) -native function bool IsPackageInstalled(); - -// Export UPComPlayerController::execIsInGame(FFrame&, void* const) -native function bool IsInGame(); - -event PairLoggedInUserAndCurrentController() -{ - //return; -} - -event GetControllerIdFromNetId(UniqueNetId PlayerID, out int ControllerId) -{ - //return; -} - -simulated event LostP2PConnection(UniqueNetId UniqueId) -{ - //return; -} - -simulated exec event EstablishPeers() -{ - //return; -} - -// Export UPComPlayerController::execCloseConnectionsToInvalidPeers(FFrame&, void* const) -//native simulated function CloseConnectionsToInvalidPeers(array SessionListInfo); - -// Export UPComPlayerController::execGetUserNamesForPS4P2PConnections(FFrame&, void* const) -native simulated function array GetUserNamesForPS4P2PConnections(); - -//simulated function OnGetUserConnectionInfoComplete(array SessionListInfo, bool bWasSuccessful) -//{ - //return; -//} - -//simulated function OnGetSessionMemberInfoComplete(array SessionListInfo, bool bWasSuccessful) -//{ - //return; -//} - -//simulated function OnGetVoicePermissionsForUsersComplete(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, array Results) -//{ - //return; -//} - -event UnregisterP2PEnemiesForCustomMatch(array EnemyIds) -{ - //return; -} - -simulated exec event CreatePartySession() -{ - //return; -} - -simulated function OnCreatePartySessionComplete(name SessionName, bool bSuccessful) -{ - //return; -} - -event bool InvitePlayerToPartyByName(string InPlayerName) -{ - //return ReturnValue; -} - -event bool InvitePlayerToParty(UniqueNetId InPlayerId) -{ - //return ReturnValue; -} - -simulated exec event DestroyPartySession() -{ - //return; -} - -simulated event OnPartySessionDestroyed(name SessionName, bool bWasSuccessful) -{ - //return; -} - -event JoinPartySession(byte PartySessionGuid[80]) -{ - //return; -} - -simulated function OnGameInviteAccepted(const out OnlineGameSearchResult InviteResult) -{ - //return; -} - -//simulated function OnAlternatePrivilegeLevelCheckedComplete(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) -//{ - //return; -//} - -simulated function OnGameDestroyedForPartyJoin(name SessionName, bool bWasSuccessful) -{ - //return; -} - -//simulated function OnPrivilegeLevelCheckedCompleteForPartyJoin(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) -//{ - //return; -//} - -//simulated function OnPrivilegeCheckForGameSessionJoin(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) -//{ - //return; -//} - -simulated function OnJoinSessionForReceivedInviteComplete(name SessionName, bool bWasSuccessful) -{ - //return; -} - -event JoinCustomMatchFromInvite() -{ - //return; -} - -function JoinCustomMatchForInviteDelay() -{ - //return; -} - -simulated exec event bool ShowPeoplePickerUI() -{ - //return ReturnValue; -} - -function OnReadFriendsListComplete(bool bWasSuccessful) -{ - //return; -} - -function OnPeoplePickerComplete(bool bWasSuccessful, array PeoplePicked) -{ - //return; -} - -simulated event bool IsHostOfParty() -{ - //return ReturnValue; -} - -simulated event UpdateMCTSWithNewPartyInfo() -{ - //return; -} - -simulated event TogglePartySessionInvitesAllowed(bool bAllowed) -{ - //return; -} - -simulated event ToggleGameSessionInvitesAllowed(bool bAllowed) -{ - //return; -} - -simulated event SetAsNewPartyHost() -{ - //return; -} - -event TryAutoLoginDelayed() -{ - //return; -} - -// Export UPComPlayerController::execTryAutoLogin(FFrame&, void* const) -native function bool TryAutoLogin(); - -reliable client simulated event ClientPlayInputLightingEffect(name InPresetName, optional bool bUseOverrideStartTime = false, optional float OverrideStartTime = 0.0000000) -{ - //return; -} - -// Export UPComPlayerController::execPlayInputLightingEffect(FFrame&, void* const) -native function PlayInputLightingEffect(name InPresetName, optional bool bUseOverrideStartTime = false, optional float OverrideStartTime = 0.0000000); - -// Export UPComPlayerController::execStopInputLightingEffect(FFrame&, void* const) -native function StopInputLightingEffect(name InPresetName); - -// Export UPComPlayerController::execSetCurrentTimeForInputLightingEffect(FFrame&, void* const) -native function SetCurrentTimeForInputLightingEffect(name InPresetName, float InCurrentTime); - -exec event PlayTestInputLightingEffect(name InPresetName) -{ - //return; -} - -defaultproperties -{ - PartySessionName="Party" - GameSessionName="Game" - InputClass=Class'PComPlayerInput' - - // remove? - CylinderComponent=CollisionCylinder - Components(0)=CollisionCylinder - CollisionComponent=CollisionCylinder -} \ No newline at end of file +class PComPlayerController extends GamePlayerController + native + config(Game) + hidecategories(Navigation); + +var UniqueNetId m_LastPendingPartyInviteId; +var bool m_bPartySessionJoinInProgress; +var bool m_bPartySessionCreateInProgress; +var bool m_bPartyDestroyInProgress; +var transient bool m_bQuittingToMainMenu; +var config int m_nMaxPartyPublicConnections; +var OnlineGameSearchResult m_PendingInviteResult; +var const name PartySessionName; +var const name GameSessionName; + +native function ClientAddCheats(); // Export UPComPlayerController::execClientAddCheats(FFrame&, void* const) + +simulated function AddCheats(optional bool bForce) { } + +exec function TestVideoPlayer() { } + +native exec function DumpConfig(); // Export UPComPlayerController::execDumpConfig(FFrame&, void* const) + +native exec function string GetConfig(string Key); // Export UPComPlayerController::execGetConfig(FFrame&, void* const) + +native exec function int GetConfigInt(string Key); // Export UPComPlayerController::execGetConfigInt(FFrame&, void* const) + +native exec function bool GetConfigBool(string Key); // Export UPComPlayerController::execGetConfigBool(FFrame&, void* const) + +native exec function SetConfig(string Key, string Value); // Export UPComPlayerController::execSetConfig(FFrame&, void* const) + +native exec function TeamInvite(string fsName); // Export UPComPlayerController::execTeamInvite(FFrame&, void* const) + +native exec function TeamAccept(bool bAccepted); // Export UPComPlayerController::execTeamAccept(FFrame&, void* const) + +native exec function TeamLeave(); // Export UPComPlayerController::execTeamLeave(FFrame&, void* const) + +native exec function TeamSetLeader(string fsLeader); // Export UPComPlayerController::execTeamSetLeader(FFrame&, void* const) + +native exec function ChallengeCreate(int nQueue, string fsName, optional string fsPassword); // Export UPComPlayerController::execChallengeCreate(FFrame&, void* const) + +native exec function ChallengeJoin(int nQueue, string fsName, optional string fsPassword); // Export UPComPlayerController::execChallengeJoin(FFrame&, void* const) + +native function PlayerRetrievedOSSInventory(out array Items); // Export UPComPlayerController::execPlayerRetrievedOSSInventory(FFrame&, void* const) + +native function SendPlayerDLCLicensesToServer(); // Export UPComPlayerController::execSendPlayerDLCLicensesToServer(FFrame&, void* const) + +native function PlayerReceivedURLTokenAndSignature(byte LocalUserNum, string URL, string Token, string Signature); // Export UPComPlayerController::execPlayerReceivedURLTokenAndSignature(FFrame&, void* const) + +event RefreshStoreData() { } + +function OnReadAvailableProductsComplete(OnlineSubsystem.EMediaItemType MediaType) { } + +function OnReadAdditionalProductDetailsComplete(OnlineSubsystem.EMediaItemType MediaType) { } + +exec function DumpGameProducts() { } + +exec function DumpDurables() { } + +exec function DumpConumables() { } + +exec function DumpStoreCatalog(OnlineSubsystem.EMediaItemType MediaType) { } + +event GetOSSTokenAndSignature(string URL) { } + +event GetMarketplaceInventory() { } + +function OnReadPlayerMarketplaceInventoryComplete() { } + +event OnlineSubsystem.EOnlineEnumerationReadState GetPlayerDLCLicenses(out array ContentList) { } + +simulated function OnMarketplaceItemPurchased() { } + +native function OnLoginStatusChange(OnlineSubsystem.ELoginStatus NewStatus, UniqueNetId NewId); // Export UPComPlayerController::execOnLoginStatusChange(FFrame&, void* const) + +native function OnConnectionStatusChange(OnlineSubsystem.EOnlineServerConnectionStatus ConnectionStatus); // Export UPComPlayerController::execOnConnectionStatusChange(FFrame&, void* const) + +native function OnCurrentUserChanged(byte LocalUserNum, string CurrentUser, string LoggedInUser); // Export UPComPlayerController::execOnCurrentUserChanged(FFrame&, void* const) + +native function OnRemoteTalkerStatusChange(UniqueNetId RemoteNetId, bool bIsTalking); // Export UPComPlayerController::execOnRemoteTalkerStatusChange(FFrame&, void* const) + +native function SendSessionStart(int GameModeId); // Export UPComPlayerController::execSendSessionStart(FFrame&, void* const) + +native function SendSessionEnd(); // Export UPComPlayerController::execSendSessionEnd(FFrame&, void* const) + +native simulated function bool IsInCustomMatch(); // Export UPComPlayerController::execIsInCustomMatch(FFrame&, void* const) + +native function MCTSSetSessionId(byte PlatformSpecificInfo[80]); // Export UPComPlayerController::execMCTSSetSessionId(FFrame&, void* const) + +native function TryJoinSession(); // Export UPComPlayerController::execTryJoinSession(FFrame&, void* const) + +native simulated function ConnectToPeers(out array SessionListInfo); // Export UPComPlayerController::execConnectToPeers(FFrame&, void* const) + +native simulated function AcceptPartyInvite(string InviterName); // Export UPComPlayerController::execAcceptPartyInvite(FFrame&, void* const) + +native simulated function ShowPrivilegeMessageAndDeclineInvite(); // Export UPComPlayerController::execShowPrivilegeMessageAndDeclineInvite(FFrame&, void* const) + +native simulated function FilterFriendListForPeoplePicker(out array FriendList, out array SessionMemberList); // Export UPComPlayerController::execFilterFriendListForPeoplePicker(FFrame&, void* const) + +native function BlockPartySceneInput(bool bBlockInput); // Export UPComPlayerController::execBlockPartySceneInput(FFrame&, void* const) + +native simulated function UpdateMCTSSession(string SessionGuid, bool bIsHost); // Export UPComPlayerController::execUpdateMCTSSession(FFrame&, void* const) + +native function bool ArePartySessionInvitesAllowed(); // Export UPComPlayerController::execArePartySessionInvitesAllowed(FFrame&, void* const) + +function bool ShouldPartySessionsBePublic() { } + +native function ShowControllerDisconnectedWarning(); // Export UPComPlayerController::execShowControllerDisconnectedWarning(FFrame&, void* const) + +native function ShowNoFriendsForPartyInviteWarning(); // Export UPComPlayerController::execShowNoFriendsForPartyInviteWarning(FFrame&, void* const) + +native function ShowUnableToReadFriendsListWarning(); // Export UPComPlayerController::execShowUnableToReadFriendsListWarning(FFrame&, void* const) + +native function ShowPartyFullWarning(bool bPartySession); // Export UPComPlayerController::execShowPartyFullWarning(FFrame&, void* const) + +native function ShowPartyNoLongerAvailableWarning(); // Export UPComPlayerController::execShowPartyNoLongerAvailableWarning(FFrame&, void* const) + +native function ShowPackageNotInstalledForPartyInviteWarning(); // Export UPComPlayerController::execShowPackageNotInstalledForPartyInviteWarning(FFrame&, void* const) + +native function ShowCustomGameDisallowedPopup(); // Export UPComPlayerController::execShowCustomGameDisallowedPopup(FFrame&, void* const) + +native function TryOpenPartyUI(); // Export UPComPlayerController::execTryOpenPartyUI(FFrame&, void* const) + +native function UpdatePartyUI(); // Export UPComPlayerController::execUpdatePartyUI(FFrame&, void* const) + +native function LeaveMatchQueue(); // Export UPComPlayerController::execLeaveMatchQueue(FFrame&, void* const) + +native function OnAllMarketplaceProductDetailsRead(); // Export UPComPlayerController::execOnAllMarketplaceProductDetailsRead(FFrame&, void* const) + +function AcknowledgePossession(Pawn P) { } + +simulated event QuitToMainMenu() { } + +function bool CleanupOnlineSubsystemSession(bool bWasFromMenu) { } + +function FinishQuitToMainMenu() { } + +function OnEndOnlineGameComplete(name SessionName, bool bWasSuccessful) { } + +function OnDestroyOnlineGameComplete(name SessionName, bool bWasSuccessful) { } + +exec event ChooseThisControllerForSessionScout(bool bCustomMatch, int MaxPlayers, bool bPrivate, optional out array ReservedMembers) { } + +simulated function OnCreateOnlineGameComplete(name SessionName, bool bWasSuccessful) { } + +reliable client simulated event ReceiveSessionInfo(byte PlatformSpecificInfo[80], WorldInfo.EConsoleType ConsoleType) { } + +simulated function OnJoinOnlineGameCompleteForReceivedSessionInfo(name SessionName, bool bWasSuccessful) { } + +simulated event RestablishVoiceForReconnect() { } + +native simulated function bool IsReconnect(); // Export UPComPlayerController::execIsReconnect(FFrame&, void* const) + +reliable server function ServerReEstablishP2PConnections() { } + +reliable client simulated function ClientRestablishP2PConnections() { } + +event RegisterOnlineDelegates() { } + +event ClearOnlineDelegates() { } + +function OnMultiplayerSessionChange(name SessionName, SessionUpdateInfo SessionChanges) { } + +native function bool IsPackageInstalled(); // Export UPComPlayerController::execIsPackageInstalled(FFrame&, void* const) + +native function bool IsInGame(); // Export UPComPlayerController::execIsInGame(FFrame&, void* const) + +native function LogoutPlayer(); // Export UPComPlayerController::execLogoutPlayer(FFrame&, void* const) + +event PairLoggedInUserAndCurrentController() { } + +event GetControllerIdFromNetId(UniqueNetId PlayerID, out int ControllerId) { } + +simulated event LostP2PConnection(UniqueNetId UniqueId) { } + +simulated exec event EstablishPeers() { } + +native simulated function CloseConnectionsToInvalidPeers(array SessionListInfo); // Export UPComPlayerController::execCloseConnectionsToInvalidPeers(FFrame&, void* const) + +native simulated function array GetUserNamesForPS4P2PConnections(); // Export UPComPlayerController::execGetUserNamesForPS4P2PConnections(FFrame&, void* const) + +simulated function OnGetUserConnectionInfoComplete(array SessionListInfo, bool bWasSuccessful) { } + +simulated function OnGetSessionMemberInfoComplete(array SessionListInfo, bool bWasSuccessful) { } + +simulated function OnGetVoicePermissionsForUsersComplete(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, array Results) { } + +event UnregisterP2PEnemiesForCustomMatch(array EnemyIds) { } + +simulated exec event CreatePartySession() { } + +simulated function OnCreatePartySessionComplete(name SessionName, bool bSuccessful) { } + +event InvitePlayerToPartyByName(string InPlayerName) { } + +event InvitePlayerToParty(UniqueNetId InPlayerId) { } + +simulated exec event DestroyPartySession() { } + +simulated function OnPartySessionDestroyed(name SessionName, bool bWasSuccessful) { } + +simulated function OnGameInviteAccepted(const out OnlineGameSearchResult InviteResult) { } + +simulated function OnAlternatePrivilegeLevelCheckedComplete(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) { } + +simulated function OnGameDestroyedForPartyJoin(name SessionName, bool bWasSuccessful) { } + +simulated function OnPrivilegeLevelCheckedCompleteForPartyJoin(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) { } + +simulated function OnPrivilegeCheckForGameSessionJoin(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) { } + +simulated function OnJoinSessionForReceivedInviteComplete(name SessionName, bool bWasSuccessful) { } + +event JoinCustomMatchFromInvite() { } + +function JoinCustomMatchForInviteDelay() { } + +simulated exec event bool ShowPeoplePickerUI() { } + +function OnReadFriendsListComplete(bool bWasSuccessful) { } + +function OnPeoplePickerComplete(bool bWasSuccessful, array PeoplePicked) { } + +simulated event bool IsHostOfParty() { } + +simulated event UpdateMCTSWithNewPartyInfo() { } + +simulated event TogglePartySessionInvitesAllowed(bool bAllowed) { } + +simulated event ToggleGameSessionInvitesAllowed(bool bAllowed) { } + +simulated event SetAsNewPartyHost() { } + +event TryAutoLoginDelayed() { } + +native function bool TryAutoLogin(); // Export UPComPlayerController::execTryAutoLogin(FFrame&, void* const) + +reliable client simulated event ClientPlayInputLightingEffect(name InPresetName, optional bool bUseOverrideStartTime=false, optional float OverrideStartTime=0.0000000) { } + +native function PlayInputLightingEffect(name InPresetName, optional bool bUseOverrideStartTime=false, optional float OverrideStartTime=0.0000000); // Export UPComPlayerController::execPlayInputLightingEffect(FFrame&, void* const) + +native function StopInputLightingEffect(name InPresetName); // Export UPComPlayerController::execStopInputLightingEffect(FFrame&, void* const) + +native function SetCurrentTimeForInputLightingEffect(name InPresetName, float InCurrentTime); // Export UPComPlayerController::execSetCurrentTimeForInputLightingEffect(FFrame&, void* const) + +exec event PlayTestInputLightingEffect(name InPresetName) { } + +defaultproperties +{} diff --git a/Development/Src/PlatformCommon/Classes/PComPlayerInput.uc b/Development/Src/PlatformCommon/Classes/PComPlayerInput.uc old mode 100755 new mode 100644 index 1cfe26b..98d2dd3 --- a/Development/Src/PlatformCommon/Classes/PComPlayerInput.uc +++ b/Development/Src/PlatformCommon/Classes/PComPlayerInput.uc @@ -1,113 +1,66 @@ -class PComPlayerInput extends PlayerInput within PlayerController - transient - native - config(Input) - hidecategories(Object,UIRoot); - -const m_nMinDisplayLookSensitivity = 1.0; -const m_nMaxDisplayLookSensitivity = 100.0; - -var bool c_bDirty; -var config bool c_bUseServerBindings; -var config bool c_bJumpEnabled; -var config string c_sCurrentProfile; -var int m_nKeybindConfigSet; -var float m_nMinLookSensitivity; -var float m_nMaxLookSensitivity; -var int m_RecCastMode; - -// Export UPComPlayerInput::execResetKeysToDefault(FFrame&, void* const) -native function ResetKeysToDefault(); - -// Export UPComPlayerInput::execGetBindExtended(FFrame&, void* const) -native function bool GetBindExtended(string Str, out KeyBind Bind, optional bool bExactMatch = false); - -// Export UPComPlayerInput::execGetBindFromCommand(FFrame&, void* const) -native function KeyBind GetBindFromCommand(string Cmd, bool bGamepad, optional int nAlternate = 0); - -// Export UPComPlayerInput::execExtendedStringToKeybind(FFrame&, void* const) -native function KeyBind ExtendedStringToKeybind(string Str, string Cmd); - -// Export UPComPlayerInput::execKeybindToExtendedString(FFrame&, void* const) -native function string KeybindToExtendedString(const out KeyBind Bind); - -// xiloe: UDK is bitching again, I don't think we need this anyways -// Export UPComPlayerInput::execGetBind(FFrame&, void* const) -//native function string GetBind(const out name Key, const optional out KeyBind ModifierKeyBind); - -// Export UPComPlayerInput::execGetKeybindWithCurrentModifiers(FFrame&, void* const) -native function KeyBind GetKeybindWithCurrentModifiers(const out name Key); - -// Export UPComPlayerInput::execStoreMouseSettings(FFrame&, void* const) -native function StoreMouseSettings(); - -// Export UPComPlayerInput::execReadMouseSettings(FFrame&, void* const) -native function ReadMouseSettings(); - -simulated function SetDirty() -{ - //return; -} - -exec function SetMouseInput(bool bInvert, bool bSmooth, float fSensitivity) -{ - //return; -} - -exec function SetLookSensitivity(float fSensitivity, optional float fSensitivityY = 0.0000000) -{ - //return; -} - -exec function SetAimAcceleration(float fLookAccel) -{ - //return; -} - -event float GetDisplayLookSensitivity() -{ - //return ReturnValue; -} - -event float GetDisplayLookSensitivityY() -{ - //return ReturnValue; -} - -exec function SetBindExtended(const string ExtendedBinding, string Command) -{ - //return; -} - -event SetCommandBind(string Command, bool bGamepad, int nAlternate, const string ExtendedBinding) -{ - //return; -} - -exec function UnbindKey(const out name BindName) -{ - //return; -} - -exec event UnbindCommandAll(string Command) -{ - //return; -} - -exec function UnbindCommand(string Command, bool bGamepad, optional int nAlternate = 0) -{ - //return; -} - -exec function Jump() -{ - //return; -} - -defaultproperties -{ - //c_bUseServerBindings=true - m_nKeybindConfigSet=1 - m_nMinLookSensitivity=0.1500000 - m_nMaxLookSensitivity=6.5000000 -} \ No newline at end of file +class PComPlayerInput extends PlayerInput within PlayerController + transient + native + config(Input) + hidecategories(Object,UIRoot); + +const m_nMinDisplayLookSensitivity = 1.0; + +const m_nMaxDisplayLookSensitivity = 100.0; + +var bool c_bDirty; +var config bool c_bUseServerBindings; +var config bool c_bJumpEnabled; +var config string c_sCurrentProfile; +var int m_nKeybindConfigSet; +var float m_nMinLookSensitivity; +var float m_nMaxLookSensitivity; +var int m_RecCastMode; + +native function ResetKeysToDefault(); // Export UPComPlayerInput::execResetKeysToDefault(FFrame&, void* const) + +native function bool GetBindExtended(string Str, out KeyBind Bind, optional bool bExactMatch=false); // Export UPComPlayerInput::execGetBindExtended(FFrame&, void* const) + +native function KeyBind GetBindFromCommand(string Cmd, optional int nAlternate=0); // Export UPComPlayerInput::execGetBindFromCommand(FFrame&, void* const) + +native function KeyBind ExtendedStringToKeybind(string Str, string Cmd); // Export UPComPlayerInput::execExtendedStringToKeybind(FFrame&, void* const) + +native function string KeybindToExtendedString(const out KeyBind Bind); // Export UPComPlayerInput::execKeybindToExtendedString(FFrame&, void* const) + +native function string GetBind(const out Name Key); // Export UPComPlayerInput::execGetBind(FFrame&, void* const) + +native function KeyBind GetKeybindWithCurrentModifiers(const out name Key); // Export UPComPlayerInput::execGetKeybindWithCurrentModifiers(FFrame&, void* const) + +native function StoreMouseSettings(); // Export UPComPlayerInput::execStoreMouseSettings(FFrame&, void* const) + +native function ReadMouseSettings(); // Export UPComPlayerInput::execReadMouseSettings(FFrame&, void* const) + +simulated function SetDirty() { } + +exec function SetMouseInput(bool bInvert, bool bSmooth, float fSensitivity) { } + +exec function SetLookSensitivity(float fSensitivity, optional float fSensitivityY=0.0000000) { } + +event float GetDisplayLookSensitivity() { } + +event float GetDisplayLookSensitivityY() { } + +exec function SetBindExtended(const string ExtendedBinding, string Command) { } + +event SetCommandBind(string Command, int nAlternate, const string ExtendedBinding) { } + +exec function UnbindKey(const out name BindName) { } + +exec event UnbindCommandAll(string Command) { } + +exec function UnbindCommand(string Command, optional int nAlternate=0) { } + +exec function Jump() { } + +defaultproperties +{ + c_bUseServerBindings=true + m_nKeybindConfigSet=1 + m_nMinLookSensitivity=0.1500000 + m_nMaxLookSensitivity=6.5000000 +} diff --git a/Development/Src/PlatformCommon/Classes/PComPlayerProfile.uc b/Development/Src/PlatformCommon/Classes/PComPlayerProfile.uc old mode 100755 new mode 100644 index 7f0735d..76448fb --- a/Development/Src/PlatformCommon/Classes/PComPlayerProfile.uc +++ b/Development/Src/PlatformCommon/Classes/PComPlayerProfile.uc @@ -1,83 +1,57 @@ -class PComPlayerProfile extends OnlinePlayerStorage - native; - -struct native PropertyPair -{ - var int PropertyId; - var int Value; - - structdefaultproperties - { - PropertyId=0 - Value=0 - } -}; - -struct native AccoladeStruct -{ - var int AccoladeId; - var int ActivityId; - var int Type; - var int Value; - - structdefaultproperties - { - AccoladeId=0 - ActivityId=0 - Type=0 - Value=0 - } -}; - -struct native BadgeStruct -{ - var int BadgeId; - var int ActivityId; - var int Icon; - var int Tier; - var int Progress; - var int MaxValue; - var int Category; - var init string Title; - var init string Description; - - structdefaultproperties - { - BadgeId=0 - ActivityId=0 - Icon=0 - Tier=0 - Progress=0 - MaxValue=0 - Category=0 - Title="" - Description="" - } -}; - -var int Rank; -var int Kills; -var int Deaths; -var int Assists; -var int XpLevel; -var int HZPoints; -var int XPPoints; -var int AssistPoints; -var int AverageScore; -var int BoostHoursRemaining; -var int InfoMask; -var int TimePlayed; -var int TotalAccolades; -var int FastestSki; -var int FlagGrabs; -var int FlagCaps; -var int GensDestroyed; -var int ObjsDestroyed; -var bool bVIP; -var bool bBoost; -var int PlayerID; -var init string PlayerName; -var array Badges; -var array TopBadges; -var array ClassTimePlayed; -var array Accolades; +class PComPlayerProfile extends OnlinePlayerStorage + native + config(Engine); + +struct PropertyPair { + var int PropertyId; + var int Value; + structdefaultproperties {} +}; + +struct AccoladeStruct { + var int AccoladeId; + var int ActivityId; + var int Type; + var int Value; + structdefaultproperties {} +}; + +struct BadgeStruct { + var int BadgeId; + var int ActivityId; + var int Icon; + var int Tier; + var int Progress; + var int MaxValue; + var int Category; + var init string Title; + var init string Description; + structdefaultproperties {} +}; + +var int Rank; +var int Kills; +var int Deaths; +var int Assists; +var int XpLevel; +var int HZPoints; +var int XPPoints; +var int AssistPoints; +var int AverageScore; +var int BoostHoursRemaining; +var int InfoMask; +var int TimePlayed; +var int TotalAccolades; +var int FastestSki; +var int FlagGrabs; +var int FlagCaps; +var int GensDestroyed; +var int ObjsDestroyed; +var bool bVIP; +var bool bBoost; +var int PlayerID; +var init string PlayerName; +var array Badges; +var array TopBadges; +var array ClassTimePlayed; +var array Accolades; diff --git a/Development/Src/PlatformCommon/Classes/PComPositionHistoryComponent.uc b/Development/Src/PlatformCommon/Classes/PComPositionHistoryComponent.uc old mode 100755 new mode 100644 index a36579f..1273033 --- a/Development/Src/PlatformCommon/Classes/PComPositionHistoryComponent.uc +++ b/Development/Src/PlatformCommon/Classes/PComPositionHistoryComponent.uc @@ -1,2 +1,3 @@ -class PComPositionHistoryComponent extends ActorComponent - native; +class PComPositionHistoryComponent extends ActorComponent + native + config(Engine); diff --git a/Development/Src/PlatformCommon/Classes/PComPositionHistoryServerComponent.uc b/Development/Src/PlatformCommon/Classes/PComPositionHistoryServerComponent.uc old mode 100755 new mode 100644 index 9552191..c87d04d --- a/Development/Src/PlatformCommon/Classes/PComPositionHistoryServerComponent.uc +++ b/Development/Src/PlatformCommon/Classes/PComPositionHistoryServerComponent.uc @@ -1,55 +1,41 @@ -class PComPositionHistoryServerComponent extends ActorComponent - native; - -const MAX_POSITION_HISTORY_FRAMES = 30; - -struct native PComPositionHistoryData -{ - var Vector Location; - var Rotator Rotation; - var Vector Velocity; - var Actor.EPhysics Physics; - var bool bWasFalling; - var bool bCollideActors; - var bool bBlockActors; - - structdefaultproperties - { - Location=(X=0.0000000,Y=0.0000000,Z=0.0000000) - Rotation=(Pitch=0,Yaw=0,Roll=0) - Velocity=(X=0.0000000,Y=0.0000000,Z=0.0000000) - Physics=PHYS_None - bWasFalling=false - bCollideActors=false - bBlockActors=false - } -}; - -var int CurrentIndex; -var float ServerTimeStamps[30]; -var float ClientTimeStamps[30]; -var Vector Positions[30]; -var Vector Velocities[30]; -var Rotator Rotations[30]; -var byte bJustTeleported[30]; -var byte bCollideActors[30]; -var byte bBlockActors[30]; -var Actor.EPhysics Physics[30]; - -// Export UPComPositionHistoryServerComponent::execRecordData(FFrame&, void* const) -native final function RecordData(); - -// Export UPComPositionHistoryServerComponent::execGetPastData(FFrame&, void* const) -native final function PComPositionHistoryData GetPastData(float RewindTime, optional bool bUseClientTimeStamps = false); - -// Export UPComPositionHistoryServerComponent::execIsOverlapping(FFrame&, void* const) -native final function bool IsOverlapping(float RewindTime, Vector LocationToCheck, float RadiusToCheck, out PComPositionHistoryData PastDataUsed); - -// Export UPComPositionHistoryServerComponent::execIsInSphere(FFrame&, void* const) -native final function bool IsInSphere(float RewindTime, Vector LocationToCheck, float RadiusToCheck, out PComPositionHistoryData PastDataUsed); - -defaultproperties -{ - CurrentIndex=-1 - TickGroup=TG_PostUpdateWork -} \ No newline at end of file +class PComPositionHistoryServerComponent extends ActorComponent + native + config(Engine); + +const MAX_POSITION_HISTORY_FRAMES = 30; + +struct PComPositionHistoryData { + var Vector Location; + var Rotator Rotation; + var Vector Velocity; + var Actor.EPhysics Physics; + var bool bWasFalling; + var bool bCollideActors; + var bool bBlockActors; + structdefaultproperties {} +}; + +var int CurrentIndex; +var float ServerTimeStamps[30]; +var float ClientTimeStamps[30]; +var Vector Positions[30]; +var Vector Velocities[30]; +var Rotator Rotations[30]; +var byte bJustTeleported[30]; +var byte bCollideActors[30]; +var byte bBlockActors[30]; +var Actor.EPhysics Physics[30]; + +native function RecordData(); // Export UPComPositionHistoryServerComponent::execRecordData(FFrame&, void* const) + +native function PComPositionHistoryData GetPastData(float RewindTime, optional bool bUseClientTimeStamps=false); // Export UPComPositionHistoryServerComponent::execGetPastData(FFrame&, void* const) + +native function bool IsOverlapping(float RewindTime, Vector LocationToCheck, float RadiusToCheck, out PComPositionHistoryData PastDataUsed); // Export UPComPositionHistoryServerComponent::execIsOverlapping(FFrame&, void* const) + +native function bool IsInSphere(float RewindTime, Vector LocationToCheck, float RadiusToCheck, out PComPositionHistoryData PastDataUsed); // Export UPComPositionHistoryServerComponent::execIsInSphere(FFrame&, void* const) + +defaultproperties +{ + CurrentIndex=-1 + TickGroup=TG_PostUpdateWork +} diff --git a/Development/Src/PlatformCommon/Classes/PComRepInfo_Game.uc b/Development/Src/PlatformCommon/Classes/PComRepInfo_Game.uc old mode 100755 new mode 100644 index 7d844db..e68e86f --- a/Development/Src/PlatformCommon/Classes/PComRepInfo_Game.uc +++ b/Development/Src/PlatformCommon/Classes/PComRepInfo_Game.uc @@ -1,26 +1,19 @@ -class PComRepInfo_Game extends GameReplicationInfo - native - config(Game) - hidecategories(Navigation,Movement,Collision); - -var PComMusicThemePlayer m_MusicThemePlayer; -var class m_MusicThemePlayerClass; -var globalconfig string m_MusicThemePlayerClassName; - -// Export UPComRepInfo_Game::execPlayMusicEvent(FFrame&, void* const) -native function PlayMusicEvent(const name EventName); - -simulated function PostBeginPlay() -{ - //return; -} - -simulated function CreateMusicThemePlayer() -{ - //return; -} - -defaultproperties -{ - m_MusicThemePlayerClass=Class'PComMusicThemePlayer' -} \ No newline at end of file +class PComRepInfo_Game extends GameReplicationInfo + native + config(Game) + hidecategories(Navigation,Movement,Collision); + +var PComMusicThemePlayer m_MusicThemePlayer; +var Class m_MusicThemePlayerClass; +var globalconfig string m_MusicThemePlayerClassName; + +native function PlayMusicEvent(const name EventName); // Export UPComRepInfo_Game::execPlayMusicEvent(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function CreateMusicThemePlayer() { } + +defaultproperties +{ + m_MusicThemePlayerClass=Class'PComMusicThemePlayer' +} diff --git a/Development/Src/PlatformCommon/Classes/PComSeqAct_PlayMusicEvent.uc b/Development/Src/PlatformCommon/Classes/PComSeqAct_PlayMusicEvent.uc old mode 100755 new mode 100644 index 636e639..d80ba9b --- a/Development/Src/PlatformCommon/Classes/PComSeqAct_PlayMusicEvent.uc +++ b/Development/Src/PlatformCommon/Classes/PComSeqAct_PlayMusicEvent.uc @@ -1,12 +1,13 @@ -class PComSeqAct_PlayMusicEvent extends SequenceAction - native(Audio) - forcescriptorder(true) - hidecategories(Object); - -var() name EventName; - -defaultproperties -{ - //VariableLinks=none - ObjName="Play Music Event" -} \ No newline at end of file +class PComSeqAct_PlayMusicEvent extends SequenceAction + native(Audio) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () name EventName; + +defaultproperties +{ + VariableLinks=none + ObjName="Play Music Event" +} diff --git a/Development/Src/PlatformCommon/Classes/PComStructures.uc b/Development/Src/PlatformCommon/Classes/PComStructures.uc old mode 100755 new mode 100644 index 8c3de21..cb737fb --- a/Development/Src/PlatformCommon/Classes/PComStructures.uc +++ b/Development/Src/PlatformCommon/Classes/PComStructures.uc @@ -1,50 +1,28 @@ -class PComStructures extends Object - native; - -enum CMTargetType -{ - CMTT_Pawn, - CMTT_Deployable, - CMTT_Destructible, - CMTT_Projectile -}; - -struct native CombatMessageInfo -{ - var int nMsgId; - var int nSourceId; - var PComStructures.CMTargetType eSourceType; - var int nSourceOwnerId; - var int nTargetId; - var int nTargetOwnerId; - var PComStructures.CMTargetType eTargetType; - var int nAmount1; - var int nAmount2; - var int nSourceItemId; - var int nDamageTypeId; - var byte nFireModeIndex; - var int nLocationId; - var int nEventIndex; - var int nLocationX; - var int nLocationY; - - structdefaultproperties - { - nMsgId=0 - nSourceId=0 - eSourceType=CMTT_Pawn - nSourceOwnerId=0 - nTargetId=0 - nTargetOwnerId=0 - eTargetType=CMTT_Pawn - nAmount1=0 - nAmount2=0 - nSourceItemId=0 - nDamageTypeId=0 - nFireModeIndex=0 - nLocationId=0 - nEventIndex=0 - nLocationX=0 - nLocationY=0 - } -}; +class PComStructures extends Object + native + config(Engine); + +enum CMTargetType { + CMTT_Pawn, // 0 + CMTT_Deployable, // 1 + CMTT_Destructible, // 2 + CMTT_Projectile, // 3 +}; + +struct CombatMessageInfo { + var int nMsgId; + var int nSourceId; + var PComStructures.CMTargetType eSourceType; + var int nSourceOwnerId; + var int nTargetId; + var PComStructures.CMTargetType eTargetType; + var int nAmount1; + var int nAmount2; + var int nSourceItemId; + var int nDamageTypeId; + var int nLocationId; + var int nEventIndex; + var int nLocationX; + var int nLocationY; + structdefaultproperties {} +}; diff --git a/Development/Src/PlatformCommon/Classes/PComSupportCommands.uc b/Development/Src/PlatformCommon/Classes/PComSupportCommands.uc old mode 100755 new mode 100644 index 7b96925..c297d3f --- a/Development/Src/PlatformCommon/Classes/PComSupportCommands.uc +++ b/Development/Src/PlatformCommon/Classes/PComSupportCommands.uc @@ -1,192 +1,121 @@ -class PComSupportCommands extends Object - native; - -const GC_OS_TYPE_BELOW_XP = 10300; -const GC_OS_TYPE_XP = 10301; -const GC_OS_TYPE_VISTA = 10303; -const GC_OS_TYPE_WIN7 = 10305; -const GC_OS_TYPE_WIN8 = 10307; - -enum GC_ALERT_PRIORITY -{ - GC_APT_MINIMAL, - GC_APT_NORMAL, - GC_APT_HIGH, - GC_APT_CRITICAL -}; - -enum GC_CHAT_CHANNEL -{ - GC_CC_GLOBAL, - GC_CC_CLAN, - GC_CC_INSTANCE, - GC_CC_LOCAL_TEAM, - GC_CC_PARTY, - GC_CC_CITY, - GC_CC_PERSONAL, - GC_CC_PRIVATE_1, - GC_CC_EOM_LOBBY, - GC_CC_SYSTEM, - GC_CC_TRADE, - GC_CC_LFG, - GC_CC_LFG_2, - GC_CC_HELP, - GC_CC_VOIP_NEWS, - GC_CC_GM, - GC_CC_VIP, - GC_CC_LFG_3, - GC_CC_COUNT, - GC_CC_VOIP_ECHO, - GC_CC_VOIP_CONF, - GC_CC_COMBAT, - GC_CC_EMOTE, - GC_CC_INVALID, - GC_CC_LAST -}; - -enum GC_STEAM_TXN_TYPES -{ - GC_STT_INVALID, - GC_STT_GETUSERINFO, - GC_STT_INIT, - GC_STT_FINALIZE, - GC_STT_DECLINE -}; - -var const transient PComPlayerController PC; -var const transient WorldInfo WorldInfo; - -// Export UPComSupportCommands::execgmMatchForce(FFrame&, void* const) -native exec function gmMatchForce(optional int nQueueId = 0); - -// Export UPComSupportCommands::execgmMatchNext(FFrame&, void* const) -native exec function gmMatchNext(int nMapId); - -// Export UPComSupportCommands::execgmMatchLobbyPause(FFrame&, void* const) -native exec function gmMatchLobbyPause(); - -// Export UPComSupportCommands::execgmMatchLobbyResume(FFrame&, void* const) -native exec function gmMatchLobbyResume(); - -// Export UPComSupportCommands::execgmCommand(FFrame&, void* const) -native exec function gmCommand(string sCommand); - -// Export UPComSupportCommands::execgmC(FFrame&, void* const) -native exec function gmC(string sCommand); - -// Export UPComSupportCommands::execgmDiag(FFrame&, void* const) -native exec function gmDiag(int Code, int Route); - -// Export UPComSupportCommands::execGPerfDebugFeet(FFrame&, void* const) -native function GPerfDebugFeet(int feet); - -// Export UPComSupportCommands::execGPerfDebugSkips(FFrame&, void* const) -native function GPerfDebugSkips(int skips); - -// Export UPComSupportCommands::execGPerfDebugRelevMode(FFrame&, void* const) -native function GPerfDebugRelevMode(int Mode); - -// Export UPComSupportCommands::execGPerfServerFlags(FFrame&, void* const) -native function GPerfServerFlags(int Flags, int alternate1, int alternate2); - -// Export UPComSupportCommands::execGPerfAllRelevantLimit(FFrame&, void* const) -native function GPerfAllRelevantLimit(int feet); - -// Export UPComSupportCommands::execGPerfDebugTickRate(FFrame&, void* const) -native function GPerfDebugTickRate(int tickHz, int altTickHz); - -// Export UPComSupportCommands::execGPerfDebugPhysicsThreshold(FFrame&, void* const) -native function GPerfDebugPhysicsThreshold(float fThresh1, float fThresh2); - -// Export UPComSupportCommands::execSetLogServerTickStatsFlags(FFrame&, void* const) -native function SetLogServerTickStatsFlags(int Flags, bool bSet); - -exec function gmmf() -{ - //return; -} - -exec function scLog(string LogName, optional bool bEnabled = true) -{ - //return; -} - -exec function scLogMark(string Comment) -{ - //return; -} - -exec function scStartGame(optional string Reason = "Admin") -{ - //return; -} - -exec function scEndGame(optional string Reason = "Admin") -{ - //return; -} - -exec function scScore(int nTeam, optional int nCount = 1) -{ - //return; -} - -exec function scTime(int nSeconds) -{ - //return; -} - -exec function scTimer(string sCommand) -{ - //return; -} - -exec function scDemoRec(string sCommand) -{ - //return; -} - -exec function scDemoStop() -{ - //return; -} - -exec function scPerfDebugFeet(int feet) -{ - //return; -} - -exec function scPerfDebugSkip(int skips) -{ - //return; -} - -exec function scPerfDebugRelevMode(int Mode) -{ - //return; -} - -exec function scPerfTickRate(int tickHz, int altTickHz) -{ - //return; -} - -exec function scPerfPhysThreshold(float thresh1, float thesh2) -{ - //return; -} - -exec function scGPerfServerFlags(int Flags, int alternate1, int alternate2) -{ - //return; -} - -exec function scPerfAlwaysRelevantLimit(int feet) -{ - //return; -} - -exec function scLogTickFlags(int nFlags, optional bool bSet = true) -{ - //return; -} +class PComSupportCommands extends Object + native + config(Engine); + +const GC_OS_TYPE_BELOW_XP = 10300; + +const GC_OS_TYPE_XP = 10301; + +const GC_OS_TYPE_VISTA = 10303; + +const GC_OS_TYPE_WIN7 = 10305; + +const GC_OS_TYPE_WIN8 = 10307; + +enum GC_ALERT_PRIORITY { + GC_APT_MINIMAL, // 0 + GC_APT_NORMAL, // 1 + GC_APT_HIGH, // 2 + GC_APT_CRITICAL, // 3 +}; + +enum GC_CHAT_CHANNEL { + GC_CC_GLOBAL, // 0 + GC_CC_CLAN, // 1 + GC_CC_INSTANCE, // 2 + GC_CC_LOCAL_TEAM, // 3 + GC_CC_PARTY, // 4 + GC_CC_CITY, // 5 + GC_CC_PERSONAL, // 6 + GC_CC_PRIVATE_1, // 7 + GC_CC_EOM_LOBBY, // 8 + GC_CC_SYSTEM, // 9 + GC_CC_TRADE, // 10 + GC_CC_LFG, // 11 + GC_CC_LFG_2, // 12 + GC_CC_HELP, // 13 + GC_CC_VOIP_NEWS, // 14 + GC_CC_GM, // 15 + GC_CC_VIP, // 16 + GC_CC_LFG_3, // 17 + GC_CC_COUNT, // 18 + GC_CC_VOIP_ECHO, // 19 + GC_CC_VOIP_CONF, // 20 + GC_CC_COMBAT, // 21 + GC_CC_EMOTE, // 22 + GC_CC_INVALID, // 23 + GC_CC_LAST, // 24 +}; + +enum GC_STEAM_TXN_TYPES { + GC_STT_INVALID, // 0 + GC_STT_GETUSERINFO, // 1 + GC_STT_INIT, // 2 + GC_STT_FINALIZE, // 3 + GC_STT_DECLINE, // 4 +}; + +var const transient PComPlayerController PC; +var const transient WorldInfo WorldInfo; + +native exec function gmMatchForce(optional int nQueueId=0); // Export UPComSupportCommands::execgmMatchForce(FFrame&, void* const) + +native exec function gmMatchNext(int nMapId); // Export UPComSupportCommands::execgmMatchNext(FFrame&, void* const) + +native exec function gmCommand(string sCommand); // Export UPComSupportCommands::execgmCommand(FFrame&, void* const) + +native exec function gmC(string sCommand); // Export UPComSupportCommands::execgmC(FFrame&, void* const) + +native exec function gmDiag(int Code, int Route); // Export UPComSupportCommands::execgmDiag(FFrame&, void* const) + +native function GPerfDebugFeet(int feet); // Export UPComSupportCommands::execGPerfDebugFeet(FFrame&, void* const) + +native function GPerfDebugSkips(int skips); // Export UPComSupportCommands::execGPerfDebugSkips(FFrame&, void* const) + +native function GPerfDebugRelevMode(int Mode); // Export UPComSupportCommands::execGPerfDebugRelevMode(FFrame&, void* const) + +native function GPerfServerFlags(int Flags, int alternate1, int alternate2); // Export UPComSupportCommands::execGPerfServerFlags(FFrame&, void* const) + +native function GPerfAllRelevantLimit(int feet); // Export UPComSupportCommands::execGPerfAllRelevantLimit(FFrame&, void* const) + +native function GPerfDebugTickRate(int tickHz, int altTickHz); // Export UPComSupportCommands::execGPerfDebugTickRate(FFrame&, void* const) + +native function GPerfDebugPhysicsThreshold(float fThresh1, float fThresh2); // Export UPComSupportCommands::execGPerfDebugPhysicsThreshold(FFrame&, void* const) + +native function SetLogServerTickStatsFlags(int Flags, bool bSet); // Export UPComSupportCommands::execSetLogServerTickStatsFlags(FFrame&, void* const) + +exec function gmmf() { } + +exec function scLog(string LogName, optional bool bEnabled=true) { } + +exec function scLogMark(string Comment) { } + +exec function scStartGame(optional string Reason="Admin") { } + +exec function scEndGame(optional string Reason="Admin") { } + +exec function scScore(int nTeam, optional int nCount=1) { } + +exec function scTime(int nSeconds) { } + +exec function scTimer(string sCommand) { } + +exec function scDemoRec(string sCommand) { } + +exec function scDemoStop() { } + +exec function scPerfDebugFeet(int feet) { } + +exec function scPerfDebugSkip(int skips) { } + +exec function scPerfDebugRelevMode(int Mode) { } + +exec function scPerfTickRate(int tickHz, int altTickHz) { } + +exec function scPerfPhysThreshold(float thresh1, float thesh2) { } + +exec function scGPerfServerFlags(int Flags, int alternate1, int alternate2) { } + +exec function scPerfAlwaysRelevantLimit(int feet) { } + +exec function scLogTickFlags(int nFlags, optional bool bSet=true) { } diff --git a/Development/Src/PlatformCommon/Classes/PComUIManagerBase.uc b/Development/Src/PlatformCommon/Classes/PComUIManagerBase.uc old mode 100755 new mode 100644 index 2e7ae09..ba49e14 --- a/Development/Src/PlatformCommon/Classes/PComUIManagerBase.uc +++ b/Development/Src/PlatformCommon/Classes/PComUIManagerBase.uc @@ -1,25 +1,16 @@ -class PComUIManagerBase extends Object - abstract - native; - -struct native ManagerImage -{ - var init string strImageName; - var Texture2DDynamic pTexture; - - structdefaultproperties - { - strImageName="" - pTexture=none - } -}; - -var bool m_bDebugDraw; -var bool m_bLocalLoad; -var init array m_cachedImages; -var init string m_strJson; - -event DebugDraw(Canvas Canvas) -{ - //return; -} +class PComUIManagerBase extends Object + abstract + native + config(Engine); + +struct ManagerImage { + var init string strImageName; + var Texture2DDynamic pTexture; + structdefaultproperties {} +}; + +var bool m_bDebugDraw; +var init array m_cachedImages; +var init string m_strJson; + +event DebugDraw(Canvas Canvas) { } diff --git a/Development/Src/PlatformCommon/Classes/PComUtilityFunctions.uc b/Development/Src/PlatformCommon/Classes/PComUtilityFunctions.uc old mode 100755 new mode 100644 index 4c178c5..bb7e177 --- a/Development/Src/PlatformCommon/Classes/PComUtilityFunctions.uc +++ b/Development/Src/PlatformCommon/Classes/PComUtilityFunctions.uc @@ -1,11 +1,9 @@ -class PComUtilityFunctions extends Object - native; - -// Export UPComUtilityFunctions::execFakeNetSerialize(FFrame&, void* const) -native static function Vector FakeNetSerialize(const out Vector InVector); - -// Export UPComUtilityFunctions::execIsAWithStop(FFrame&, void* const) -native static function bool IsAWithStop(Object InObject, const Class SomeBase, const Class StopAtBase); - -// Export UPComUtilityFunctions::execGetGDeltaTime(FFrame&, void* const) -native static function float GetGDeltaTime(); +class PComUtilityFunctions extends Object + native + config(Engine); + +native function Vector FakeNetSerialize(const out Vector InVector); // Export UPComUtilityFunctions::execFakeNetSerialize(FFrame&, void* const) + +native function bool IsAWithStop(Object InObject, const Class SomeBase, const Class StopAtBase); // Export UPComUtilityFunctions::execIsAWithStop(FFrame&, void* const) + +native function float GetGDeltaTime(); // Export UPComUtilityFunctions::execGetGDeltaTime(FFrame&, void* const) diff --git a/Development/Src/PlatformCommon/Classes/PComVideoPlayer.uc b/Development/Src/PlatformCommon/Classes/PComVideoPlayer.uc old mode 100755 new mode 100644 index 2a57043..b3bec80 --- a/Development/Src/PlatformCommon/Classes/PComVideoPlayer.uc +++ b/Development/Src/PlatformCommon/Classes/PComVideoPlayer.uc @@ -1,94 +1,27 @@ -class PComVideoPlayer extends Actor - native - notplaceable - hidecategories(Navigation); - -enum EPComVideoPlayerError -{ - PVPE_NoError, - PVPE_CannotOpenVideo, - PVPE_StreamingProblem, - PVPE_Unknown -}; - -var() string VideoURL; -var() int Width; -var() int Height; -var() float Volume; -var() bool bAutoResize; -var() bool bConstrainAspectRatio; -var() bool bDebugRender; -var transient bool bVideoFinished; -var transient bool bOnVideoFinishedIssued; -var transient bool bHasMinorStreamingProblem; -var() float ConstrainedAspectRatio; -var native transient Pointer Resource; -var transient TextureRenderTarget2D RenderTargetToUse; -var transient TextureRenderTarget2D TextureCopyForStreamingProblem; -var transient float TimeSinceMinorStreamingProblem; -var transient Material StreamingProblemMaterial; -var transient PComVideoPlayer.EPComVideoPlayerError CurrentErrorState; -var transient PComVideoPlayer.EPComVideoPlayerError RenderThreadErrorState; -var transient Texture2D BlackTexture; -//var delegate __OnVideoFinished__Delegate; -//var delegate __OnVideoError__Delegate; - -delegate OnVideoFinished() -{ - //return; -} - -delegate OnVideoError(PComVideoPlayer VideoPlayer, PComVideoPlayer.EPComVideoPlayerError ErrorCode) -{ - //return; -} - -// Export UPComVideoPlayer::execNativePostRenderFor(FFrame&, void* const) -native simulated function NativePostRenderFor(PlayerController PC, Canvas Canvas, Vector CameraPosition, Vector CameraDir); - -// Export UPComVideoPlayer::execInitialize(FFrame&, void* const) -native simulated function Initialize(); - -// Export UPComVideoPlayer::execStopVideoSession(FFrame&, void* const) -native simulated function StopVideoSession(); - -static function TestVideoPlayer(Actor SpawningActor, optional string InURL = "http://sceerd.dl.playstation.net/sceerd/sceavplayer/streaming02.mp4") -{ - //return; -} - -function TestOnVideoError(PComVideoPlayer VideoPlayer, PComVideoPlayer.EPComVideoPlayerError ErrorCode) -{ - //return; -} - -function DestroyMe() -{ - //return; -} - -defaultproperties -{ - Width=1920 - Height=1080 - Volume=1.0000000 - bAutoResize=true - bConstrainAspectRatio=true - ConstrainedAspectRatio=1.7777800 - begin object name=MyRenderTarget class=TextureRenderTarget2D - ClearColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) - bNeedsTwoCopies=false - SRGB=false - end object - // Reference: TextureRenderTarget2D'Default__PComVideoPlayer.MyRenderTarget' - RenderTargetToUse=MyRenderTarget - begin object name=MyRenderTargetCopy class=TextureRenderTarget2D - ClearColor=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) - bNeedsTwoCopies=false - SRGB=false - end object - // Reference: TextureRenderTarget2D'Default__PComVideoPlayer.MyRenderTargetCopy' - TextureCopyForStreamingProblem=MyRenderTargetCopy - StreamingProblemMaterial=Material'EngineResources.M_StreamingPause' - BlackTexture=Texture2D'EngineResources.Black' -} \ No newline at end of file +class PComVideoPlayer extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var () string VideoURL; +var () int Width; +var () int Height; +var () bool bConstrainAspectRatio; +var () bool bDebugRender; +var transient bool bVideoFinished; +var transient bool bOnVideoFinishedIssued; +var () float ConstrainedAspectRatio; +var native transient Pointer Resource; +var transient TextureRenderTarget2D RenderTargetToUse; + +delegate OnVideoFinished(); + +native simulated function NativePostRenderFor(PlayerController PC, Canvas Canvas, vector CameraPosition, vector CameraDir); // Export UPComVideoPlayer::execNativePostRenderFor(FFrame&, void* const) + +function TestVideoPlayer(Actor SpawningActor, optional string InURL="http://sceerd.dl.playstation.net/sceerd/sceavplayer/streaming02.mp4") { } + +function DestroyMe() { } + +defaultproperties +{} diff --git a/Development/Src/PlatformCommon/Classes/PComVoiceInterfaceCurseConfig.uc b/Development/Src/PlatformCommon/Classes/PComVoiceInterfaceCurseConfig.uc new file mode 100644 index 0000000..01714ac --- /dev/null +++ b/Development/Src/PlatformCommon/Classes/PComVoiceInterfaceCurseConfig.uc @@ -0,0 +1,11 @@ +class PComVoiceInterfaceCurseConfig extends Object + native + config(Game); + +struct PComCursePromo { + var () string PromoName; + var () int ActivityId; + structdefaultproperties {} +}; + +var config array Promos; diff --git a/Development/Src/PlatformCommon/Classes/SearFiles.uc b/Development/Src/PlatformCommon/Classes/SearFiles.uc old mode 100755 new mode 100644 index 3f584fd..76acdf6 --- a/Development/Src/PlatformCommon/Classes/SearFiles.uc +++ b/Development/Src/PlatformCommon/Classes/SearFiles.uc @@ -1,3 +1,4 @@ -class SearFiles extends Commandlet - transient - native; +class SearFiles extends Commandlet + transient + native + config(Engine); diff --git a/Development/Src/SubstanceAir/Classes/InterpTrackInstSubstanceInput.uc b/Development/Src/SubstanceAir/Classes/InterpTrackInstSubstanceInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/InterpTrackSubstanceInput.uc b/Development/Src/SubstanceAir/Classes/InterpTrackSubstanceInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceRender.uc b/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceRender.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceSetInputFloat.uc b/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceSetInputFloat.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceSetInputImg.uc b/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceSetInputImg.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceSetInputInt.uc b/Development/Src/SubstanceAir/Classes/SeqAct_SubstanceSetInputInt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SubstanceAirGraphActor.uc b/Development/Src/SubstanceAir/Classes/SubstanceAirGraphActor.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SubstanceAirGraphInstance.uc b/Development/Src/SubstanceAir/Classes/SubstanceAirGraphInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SubstanceAirImageInput.uc b/Development/Src/SubstanceAir/Classes/SubstanceAirImageInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SubstanceAirInstanceFactory.uc b/Development/Src/SubstanceAir/Classes/SubstanceAirInstanceFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAir/Classes/SubstanceAirTexture2D.uc b/Development/Src/SubstanceAir/Classes/SubstanceAirTexture2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirGraphInstance.uc b/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirGraphInstance.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirImageInput.uc b/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirImageInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirInstanceFactory.uc b/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirInstanceFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirTexture2D.uc b/Development/Src/SubstanceAirEd/Classes/GenericBrowserType_SubstanceAirTexture2D.uc old mode 100755 new mode 100644 diff --git a/Development/Src/SubstanceAirEd/Classes/ImageInputThumbnailRenderer.uc b/Development/Src/SubstanceAirEd/Classes/ImageInputThumbnailRenderer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/TempestMp/Classes/APlayerConfigData.uc b/Development/Src/TempestMp/Classes/APlayerConfigData.uc deleted file mode 100755 index db0990e..0000000 --- a/Development/Src/TempestMp/Classes/APlayerConfigData.uc +++ /dev/null @@ -1,72 +0,0 @@ -class APlayerConfigData extends Object - config(PlayerData); - -struct PlayerInfo -{ - var string PlayerName; - var string ChampionName; - var string Team; - var string Password; - var string Horse; - var string NetAddress; - var bool bProcessed; -}; - -var config array SavedPlayers; -var config int MaxStoredPlayers; - -function InitializeConfig() -{ - if (MaxStoredPlayers <= 0) - { - MaxStoredPlayers = 100; // TODO: Rename this so it actually makes sense lmao - SaveConfig(); - } -} - - -function PlayerInfo FindPlayerByAddress(string Address) -{ - local PlayerInfo EmptyInfo; - local int i; - - for (i = 0; i < SavedPlayers.Length; i++) - { - if (SavedPlayers[i].NetAddress == Address) - { - return SavedPlayers[i]; - } - } - - return EmptyInfo; -} - -function SavePlayerInfo(PlayerInfo Info) -{ - local int i; - local bool bFound; - - for (i = 0; i < SavedPlayers.Length; i++) - { - if (SavedPlayers[i].NetAddress == Info.NetAddress) - { - SavedPlayers[i] = Info; - bFound = true; - break; - } - } - - if (!bFound) - { - SavedPlayers.AddItem(Info); - } - - SaveConfig(); -} - - -function ClearAllPlayers() -{ - SavedPlayers.Length = 0; - SaveConfig(); -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/AServerConfigData.uc b/Development/Src/TempestMp/Classes/AServerConfigData.uc deleted file mode 100755 index 9853430..0000000 --- a/Development/Src/TempestMp/Classes/AServerConfigData.uc +++ /dev/null @@ -1,260 +0,0 @@ -class AServerConfigData extends Object - config(ServerConfig); - - -var config bool flag; - -struct ChampionData -{ - var string name; - var array aliases; - var int BotId; - var int SkinId; - var int DeviceSkinId; - var int HeadId; - var int sprayId; - var int mountId; - var string Talent; - var string card1; - var string card2; - var string card3; - var string card4; - var string card5; -}; - -var config array Champion; - -function InitializeConfig() -{ - local ChampionData TempChamp; - if(!flag) { - TempChamp.sprayId = 15587; - TempChamp.mountId = 12616; - - // Androxus - TempChamp.name = "androxus"; - TempChamp.aliases.AddItem("andro"); - TempChamp.BotId = 2205; TempChamp.SkinId = 15292; TempChamp.DeviceSkinId = 13168;TempChamp.HeadId = 15160; - TempChamp.Talent = "Dark Stalker"; TempChamp.card1 = "Power of the Abyss iv"; TempChamp.card2 = "Sleight of Hand i"; TempChamp.card3 = "Buying Time i"; TempChamp.card4 = "elusive iv" ; TempChamp.card5 = "Seething Hatred ii"; - Champion.AddItem(TempChamp); - - // Ash - TempChamp.name = "ash"; - TempChamp.aliases.RemoveItem("andro"); - TempChamp.BotId = 2404; TempChamp.SkinId = 16977; TempChamp.DeviceSkinId = 16981; TempChamp.HeadId = 18859; - TempChamp.Talent = "Battering Ram"; TempChamp.card1 = "Heavy Metal iv"; TempChamp.card2 = "Percussion ii"; TempChamp.card3 = "Trebuchet i"; TempChamp.card4 = "Gate Crasher iv"; TempChamp.card5 = "Watchtower i"; - Champion.AddItem(TempChamp); - - // Barik - TempChamp.name = "barik"; - TempChamp.BotId = 2073; TempChamp.SkinId = 12200; TempChamp.DeviceSkinId = 13169; TempChamp.HeadId = 15217; - TempChamp.Talent = "Tinkerin"; TempChamp.card1 = "Healing Station iv"; TempChamp.card2 = "Bowling Ball iv"; TempChamp.card3 = "Failsafe ii"; TempChamp.card4 = "Double Time i"; TempChamp.card5 = "Field Deploy i"; - Champion.AddItem(TempChamp); - - // Bomb King - TempChamp.name = "bombking"; - TempChamp.aliases.AddItem("bk"); - TempChamp.BotId = 2281; TempChamp.SkinId = 15294; TempChamp.DeviceSkinId = 13380; TempChamp.HeadId = 14960; - TempChamp.Talent = "Chain Reaction"; TempChamp.card1 = "Air Blast ii"; TempChamp.card2 = "Backdraft ii"; TempChamp.card3 = "King's New Cloak ii"; TempChamp.card4 = "Royal Decree iv"; TempChamp.card5 = "King's Court ii"; - Champion.AddItem(TempChamp); - - // Buck - TempChamp.name = "buck"; - TempChamp.aliases.RemoveItem("bk"); - TempChamp.BotId = 2147; TempChamp.SkinId = 15295; TempChamp.DeviceSkinId = 13170; TempChamp.HeadId = 15572; - TempChamp.Talent = "Bounce House"; TempChamp.card1 = "Leg Day iv"; TempChamp.card2 = "Stomping Ground ii"; TempChamp.card3 = "Seismic Wave iv"; TempChamp.card4 = "Rapid Sustain i"; TempChamp.card5 = "Giga Siphon i"; - Champion.AddItem(TempChamp); - - // Cassie - TempChamp.name = "cassie"; - TempChamp.BotId = 2092; TempChamp.SkinId = 12201; TempChamp.DeviceSkinId = 13171; TempChamp.HeadId = 15926; - TempChamp.Talent = "Exaction"; TempChamp.card1 = "Incitement iv"; TempChamp.card2 = "Somersault ii"; TempChamp.card3 = "Onslaught iii"; TempChamp.card4 = "Lunge ii"; TempChamp.card5 = "Megaton i"; - Champion.AddItem(TempChamp); - - // Drogoz - TempChamp.name = "drogoz"; - TempChamp.BotId = 2277; TempChamp.SkinId = 13404; TempChamp.DeviceSkinId = 13379; TempChamp.HeadId = 15274; - TempChamp.Talent = "W.Y.R.M. Jets"; TempChamp.card1 = "Propel iv"; TempChamp.card2 = "Fuel Tank iii"; TempChamp.card3 = "Survival ii"; TempChamp.card4 = "Follow the Scent i"; TempChamp.card5 = "Lung Capacity i"; - Champion.AddItem(TempChamp); - - // Evie - TempChamp.name = "evie"; - TempChamp.BotId = 2094; TempChamp.SkinId = 15298; TempChamp.DeviceSkinId = 13172; TempChamp.HeadId = 15204; - TempChamp.Talent = "Over the Moon"; TempChamp.card1 = "Swift Witch iii"; TempChamp.card2 = "Killing Frost iv"; TempChamp.card3 = "Cantrip i"; TempChamp.card4 = "Teleport ii"; TempChamp.card5 = "Great Distance ii"; - Champion.AddItem(TempChamp); - - // Fernando - TempChamp.name = "fernando"; - TempChamp.aliases.AddItem("nando"); - TempChamp.BotId = 2071; TempChamp.SkinId = 15299; TempChamp.DeviceSkinId = 13173; TempChamp.HeadId = 15257; - TempChamp.Talent = "Scorch"; TempChamp.card1 = "Hot Pursuit iv"; TempChamp.card2 = "Incinerate iv"; TempChamp.card3 = "Heat Transfer i"; TempChamp.card4 = "Last Stand ii"; TempChamp.card5 = "Launch i"; - Champion.AddItem(TempChamp); - - // Grohk - TempChamp.name = "grohk"; - TempChamp.aliases.RemoveItem("nando"); - TempChamp.BotId = 2093; TempChamp.SkinId = 15300; TempChamp.DeviceSkinId = 13174; TempChamp.HeadId = 15243; - TempChamp.Talent = "Totemic Ward"; TempChamp.card1 = "Gale iv"; TempChamp.card2 = "Shamanic Might i"; TempChamp.card3 = "Outreach iv"; TempChamp.card4 = "Crackle ii"; TempChamp.card5 = "Astral Traveler i"; - Champion.AddItem(TempChamp); - - // Grover - TempChamp.name = "grover"; - TempChamp.BotId = 2254; TempChamp.SkinId = 15301; TempChamp.DeviceSkinId = 13175; TempChamp.HeadId = 15588; - TempChamp.Talent = "Ferocity"; TempChamp.card1 = "Verdant Expanse iv"; TempChamp.card2 = "Gentle Breeze iv"; TempChamp.card3 = "Adrenaline i"; TempChamp.card4 = "Vine Grasp i"; TempChamp.card5 = "Over growth ii"; - Champion.AddItem(TempChamp); - - // Inara - TempChamp.name = "inara"; - TempChamp.aliases.AddItem("nara"); - TempChamp.BotId = 2348; TempChamp.SkinId = 16245; TempChamp.DeviceSkinId = 16290; TempChamp.HeadId = 16287; - TempChamp.Talent = "Mothers Grace"; TempChamp.card1 = "Geomancer iv"; TempChamp.card2 = "Steadfast ii"; TempChamp.card3 = "Shear i"; TempChamp.card4 = "Lodestone i"; TempChamp.card5 = "Stone Bulwark iv"; - Champion.AddItem(TempChamp); - - // Jenos - TempChamp.name = "jenos"; - TempChamp.aliases.RemoveItem("nara"); - TempChamp.BotId = 2431; TempChamp.SkinId = 19034; TempChamp.DeviceSkinId = 19035; TempChamp.HeadId = 19224; - TempChamp.Talent = "Luminary"; TempChamp.card1 = "Star Seeker iv"; TempChamp.card2 = "Space Jam iv"; TempChamp.card3 = "Relativity ii"; TempChamp.card4 = "Lightyears i"; TempChamp.card5 = "Heavenly Pull i"; - Champion.AddItem(TempChamp); - - // Kinessa - TempChamp.name = "kinessa"; - TempChamp.aliases.AddItem("nessa"); - TempChamp.BotId = 2249; TempChamp.SkinId = 12941; TempChamp.DeviceSkinId = 13176; TempChamp.HeadId = 15235; - TempChamp.Talent = "Steady Aim"; TempChamp.card1 = "Prodigy iv"; TempChamp.card2 = "Beam Me Up iv"; TempChamp.card3 = "Open Season i"; TempChamp.card4 = "Quick Scope ii"; TempChamp.card5 = "True Grit i"; - Champion.AddItem(TempChamp); - - // Lex - TempChamp.name = "lex"; - TempChamp.aliases.RemoveItem("nessa"); - TempChamp.BotId = 2362; TempChamp.SkinId = 16531; TempChamp.DeviceSkinId = 16532; TempChamp.HeadId = 16958; - TempChamp.Talent = "Death Hastens"; TempChamp.card1 = "Warrants Out iv"; TempChamp.card2 = "Requip ii"; TempChamp.card3 = "Wicked Dont Rest iv"; TempChamp.card4 = "Conditioned i"; TempChamp.card5 = "Compel i"; - Champion.AddItem(TempChamp); - - // Lian - TempChamp.name = "lian"; - TempChamp.BotId = 2417; TempChamp.SkinId = 19032; TempChamp.DeviceSkinId = 19033; TempChamp.HeadId = 19321; - TempChamp.Talent = "Eminence"; TempChamp.card1 = "Heraldry iv"; TempChamp.card2 = "Manifest Destiny ii"; TempChamp.card3 = "Highborn ii"; TempChamp.card4 = "Superiority i"; TempChamp.card5 = "Inheritance iii"; - Champion.AddItem(TempChamp); - - // Maeve - TempChamp.name = "maeve"; - TempChamp.BotId = 2338; TempChamp.SkinId = 16216; TempChamp.DeviceSkinId = 16221; TempChamp.HeadId = 16217; - TempChamp.Talent = "Cat Burglar"; TempChamp.card1 = "Street Cred ii"; TempChamp.card2 = "Chase iv"; TempChamp.card3 = "Scamper iv"; TempChamp.card4 = "featherlite i"; TempChamp.card5 = "walk it off i"; - Champion.AddItem(TempChamp); - - // Makoa - TempChamp.name = "makoa"; - TempChamp.aliases.AddItem("koa"); - TempChamp.BotId = 2288; TempChamp.SkinId = 14465; TempChamp.DeviceSkinId = 14466; TempChamp.HeadId = 15124; - TempChamp.Talent = "Pluck"; TempChamp.card1 = "Rampage iv"; TempChamp.card2 = "Strongarm ii"; TempChamp.card3 = "Surf iv"; TempChamp.card4 = "Salvage i"; TempChamp.card5 = "Ebb And Flow i"; - Champion.AddItem(TempChamp); - - // Mal'Damba - TempChamp.name = "maldamba"; - TempChamp.aliases.RemoveItem("koa"); - TempChamp.aliases.AddItem("damba"); - TempChamp.BotId = 2303; TempChamp.SkinId = 14587; TempChamp.DeviceSkinId = 14593; TempChamp.HeadId = 15194; - TempChamp.Talent = "Ripened Gourd"; TempChamp.card1 = "Possession iv"; TempChamp.card2 = "Swift Spirits iv"; TempChamp.card3 = "Eerie Presence ii"; TempChamp.card4 = "Ritual Magic i"; TempChamp.card5 = "Lighter Gourd i"; - Champion.AddItem(TempChamp); - - // Pip - TempChamp.name = "pip"; - TempChamp.aliases.RemoveItem("damba"); - TempChamp.BotId = 2056; TempChamp.SkinId = 15303; TempChamp.DeviceSkinId = 13177; TempChamp.HeadId = 14954; - TempChamp.Talent = "Catalyst"; TempChamp.card1 = "Moxie iii"; TempChamp.card2 = "Acumen iii"; TempChamp.card3 = "Side Tanks ii"; TempChamp.card4 = "Escape Artist iii"; TempChamp.card5 = "Smithereens i"; - Champion.AddItem(TempChamp); - - // Ruckus - TempChamp.name = "ruckus"; - TempChamp.BotId = 2149; TempChamp.SkinId = 15304; TempChamp.DeviceSkinId = 13178; TempChamp.HeadId = 15795; - TempChamp.Talent = "Aerial Assault"; TempChamp.card1 = "Fuel Reserves iv"; TempChamp.card2 = "Dampener ii"; TempChamp.card3 = "Crystal Capacitor iv"; TempChamp.card4 = "Refraction i"; TempChamp.card5 = "E.M.P i"; - Champion.AddItem(TempChamp); - - // Seris - TempChamp.name = "seris"; - TempChamp.BotId = 2372; TempChamp.SkinId = 16584; TempChamp.DeviceSkinId = 16585; TempChamp.HeadId = 16586; - TempChamp.Talent = "Mortal Reach"; TempChamp.card1 = "Veil iv"; TempChamp.card2 = "Blood Pact ii"; TempChamp.card3 = "Dark Sight i"; TempChamp.card4 = "Spirit Leech i"; TempChamp.card5 = "Umbral Gait iv"; - Champion.AddItem(TempChamp); - - // Sha Lin - TempChamp.name = "shalin"; - TempChamp.aliases.AddItem("sha"); - TempChamp.BotId = 2307; TempChamp.SkinId = 14890; TempChamp.DeviceSkinId = 14892; TempChamp.HeadId = 15642; - TempChamp.Talent = "Desert Shadow"; TempChamp.card1 = "Wanderlust iv"; TempChamp.card2 = "Swagger ii"; TempChamp.card3 = "Run Them Down iv"; TempChamp.card4 = "Mirage i"; TempChamp.card5 = "Run like the Wind i"; - Champion.AddItem(TempChamp); - - // Skye - TempChamp.name = "skye"; - TempChamp.aliases.RemoveItem("sha"); - TempChamp.BotId = 2057; TempChamp.SkinId = 12207; TempChamp.DeviceSkinId = 13179; TempChamp.HeadId = 15407; - TempChamp.Talent = "Surprise Attack"; TempChamp.card1 = "Victory Rush iv"; TempChamp.card2 = "Poisoner ii"; TempChamp.card3 = "Ninja iv"; TempChamp.card4 = "Dissipate i"; TempChamp.card5 = "Nimble Fingers i"; - Champion.AddItem(TempChamp); - - // Strix - TempChamp.name = "strix"; - TempChamp.BotId = 2438; TempChamp.SkinId = 19112; TempChamp.DeviceSkinId = 19136; TempChamp.HeadId = 19642; - TempChamp.Talent = "Crack Shot"; TempChamp.card1 = "Bushwack iii"; TempChamp.card2 = "Dexterous iii"; TempChamp.card3 = "Tactical Retreat iii"; TempChamp.card4 = "Relentless ii"; TempChamp.card5 = "Cooled Mags i"; - Champion.AddItem(TempChamp); - - // Torvald - TempChamp.name = "torvald"; - TempChamp.aliases.AddItem("torv"); - TempChamp.BotId = 2322; TempChamp.SkinId = 16485; TempChamp.DeviceSkinId = 15809; TempChamp.HeadId = 16236; - TempChamp.Talent = "Field Study"; TempChamp.card1 = "Winddancer iii"; TempChamp.card2 = "Glyph of Health ii"; TempChamp.card3 = "Eldritch Speed iv"; TempChamp.card4 = "Timeshaper ii"; TempChamp.card5 = "Scribe's Wit i"; - Champion.AddItem(TempChamp); - - // Tyra - TempChamp.name = "tyra"; - TempChamp.aliases.RemoveItem("torv"); - TempChamp.BotId = 2314; TempChamp.SkinId = 15822; TempChamp.DeviceSkinId = 15821; TempChamp.HeadId = 16068; - TempChamp.Talent = "Mercy Kill"; TempChamp.card1 = "Locked and Loaded ii"; TempChamp.card2 = "Bandolier iv"; TempChamp.card3 = "Tracker ii"; TempChamp.card4 = "Ranger i"; TempChamp.card5 = "Incensed iii"; - Champion.AddItem(TempChamp); - - // Viktor - TempChamp.name = "viktor"; - TempChamp.aliases.AddItem("vik"); - TempChamp.BotId = 2285; TempChamp.SkinId = 14173; TempChamp.DeviceSkinId = 14174; TempChamp.HeadId = 15154; - TempChamp.Talent = "Cardio"; TempChamp.card1 = "Scramble iv"; TempChamp.card2 = "Compensator ii"; TempChamp.card3 = "Firing Stance iv"; TempChamp.card4 = "Flak Jacket i"; TempChamp.card5 = "Second Wind i"; - Champion.AddItem(TempChamp); - - // Willo - TempChamp.name = "willo"; - TempChamp.aliases.RemoveItem("vik"); - TempChamp.BotId = 2393; TempChamp.SkinId = 16810; TempChamp.DeviceSkinId = 16811; TempChamp.HeadId = 18307; - TempChamp.Talent = "Blastflower"; TempChamp.card1 = "Hummingbird i"; TempChamp.card2 = "Flora iv"; TempChamp.card3 = "Just Believe! ii"; TempChamp.card4 = "Flitter iv"; TempChamp.card5 = "Germination i"; - Champion.AddItem(TempChamp); - - // Ying - TempChamp.name = "ying"; - TempChamp.aliases.AddItem("bestwaifu"); - TempChamp.BotId = 2267; TempChamp.SkinId = 13212; TempChamp.DeviceSkinId = 13221; TempChamp.HeadId = 15418; - TempChamp.Talent = "Lifelike"; TempChamp.card1 = "Spring Bloom iv"; TempChamp.card2 = "Spring Forward iii"; TempChamp.card3 = "Rewind i"; TempChamp.card4 = "Shuffle iii"; TempChamp.card5 = "Efficiency i"; - Champion.AddItem(TempChamp); - - // Zhin - TempChamp.name = "zhin"; - TempChamp.aliases.RemoveItem("bestwaifu"); - TempChamp.BotId = 2420; TempChamp.SkinId = 18231; TempChamp.DeviceSkinId = 18300; TempChamp.HeadId = 18232; - TempChamp.Talent = "Retaliation"; TempChamp.card1 = "Blade Dance ii"; TempChamp.card2 = "Master Stance iv"; TempChamp.card3 = "Perfect Block ii"; TempChamp.card4 = "Hideout ii"; TempChamp.card5 = "Up in Smoke ii"; - Champion.AddItem(TempChamp); - - // Churchill (Vivian) - TempChamp.name = "churchill"; - TempChamp.aliases.AddItem("vivian"); - TempChamp.BotId = 2478; TempChamp.SkinId = 15810; TempChamp.DeviceSkinId = 16236; TempChamp.HeadId = 14174; - TempChamp.Talent = ""; TempChamp.card1 = ""; TempChamp.card2 = ""; TempChamp.card3 = ""; - Champion.AddItem(TempChamp); - - // Lazarus (Terminus) - TempChamp.name = "lazarus"; - TempChamp.aliases.RemoveItem("vivian"); - TempChamp.aliases.AddItem("terminus"); - TempChamp.BotId = 2477; TempChamp.SkinId = 19431; TempChamp.DeviceSkinId = 19434; TempChamp.HeadId = 19750; - TempChamp.Talent = ""; TempChamp.card1 = ""; TempChamp.card2 = ""; TempChamp.card3 = ""; - Champion.AddItem(TempChamp); - - flag = true; // if this gets touched, the entire thing is fucked, but nobody will be dumb enough to touch it - SaveConfig(); - } -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/ATempestLib.uc b/Development/Src/TempestMp/Classes/ATempestLib.uc deleted file mode 100755 index c2cb609..0000000 --- a/Development/Src/TempestMp/Classes/ATempestLib.uc +++ /dev/null @@ -1,148 +0,0 @@ -class ATempestLib extends Actor; -// A collection of useful functions - -var int lastWorldTime; -var string OriginalPlayerName; -var string AnimatedPlayerName; -var float NameAnimStartTime; -var bool bNameAnimActive; - -public function initTimer() { - lastWorldTime = WorldInfo.TimeSeconds; -} - -public function bool hasTimeElapsed(int seconds, bool reset) { - if((WorldInfo.TimeSeconds - lastWorldTime) > seconds) { - if(reset) { - lastWorldTime = WorldInfo.TimeSeconds; - } - return true; - } - return false; -} - -public function int toInt(coerce int strNb) { - return strNb; -} - -public function string decodeURLParam(string encodedParam) -{ - local string decodedParam; - decodedParam = encodedParam; - - // Decode common URL entities - decodedParam = Repl(decodedParam, "%spc", " "); - decodedParam = Repl(decodedParam, "%qtm", "?"); - decodedParam = Repl(decodedParam, "%amp", "&"); - decodedParam = Repl(decodedParam, "%eql", "="); - decodedParam = Repl(decodedParam, "%hsh", "#"); - decodedParam = Repl(decodedParam, "%prc", "%"); - - return decodedParam; -} - -function string UpdateAnimatedName(string PlayerName) -{ - local string TargetName; - local int MaxSteps; - local float ElapsedTime; - local int CurrentStep; - local float CycleTime; - local int CharPos; - local int VisibleChars; - - // Initialize if needed - if (OriginalPlayerName != PlayerName || !bNameAnimActive) - { - OriginalPlayerName = PlayerName; - NameAnimStartTime = WorldInfo.TimeSeconds; - bNameAnimActive = true; - } - - // Build target string - TargetName = "<3 " $ OriginalPlayerName $ " <3"; - MaxSteps = Len(TargetName); - - // Calculate elapsed time since animation started - ElapsedTime = WorldInfo.TimeSeconds - NameAnimStartTime; - - // Total cycle time: animation + 2 second pause - CycleTime = (MaxSteps + 2) * 1; // 4 extra steps for 2 second pause - - // Get position within current cycle - ElapsedTime = ElapsedTime - (int(ElapsedTime / CycleTime) * CycleTime); - - // Calculate current step (0.5 seconds per step, but skip spaces) - CurrentStep = int(ElapsedTime / 1); - - // Build display string - if (CurrentStep == 0) - { - AnimatedPlayerName = ""; - } - else if (CurrentStep <= MaxSteps) - { - // Find the actual character position, skipping spaces in timing - - VisibleChars = 0; - for (CharPos = 1; CharPos <= MaxSteps && VisibleChars < CurrentStep; CharPos++) - { - if (Mid(TargetName, CharPos - 1, 1) != " ") - { - VisibleChars++; - } - if (VisibleChars >= CurrentStep) - { - AnimatedPlayerName = Left(TargetName, CharPos); - break; - } - } - - // If we've processed all characters, show the full string - if (CharPos > MaxSteps) - { - AnimatedPlayerName = TargetName; - } - } - else - { - // Show complete name during pause - AnimatedPlayerName = TargetName; - } - - return AnimatedPlayerName; -} - -/* -public function setNextMap() { - local TgPlayerController TgPC; - local int rmap; - local array ValidMaps; - local int i; - local string Gamemode; - Gamemode = "Siege"; - for(i = 0; i < allMaps.MapDatabase.Length; i++) { - if(allMaps.MapDatabase[i].MapGamemodes.Find(Gamemode) != INDEX_NONE) { - ValidMaps.AddItem(allMaps.MapDatabase[i]); - } - } - - if(ValidMaps.Length > 0) { - rmap = rand(ValidMaps.Length); - nextMap = ValidMaps[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ ValidMaps[rmap].MapReadableName, , 15); - } - } else { - rmap = rand(allMaps.MapDatabase.Length); - nextMap = allMaps.MapDatabase[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ allMaps.MapDatabase[rmap].MapReadableName, , 15); - } - } -} - */ \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/Maps.uc b/Development/Src/TempestMp/Classes/Maps.uc deleted file mode 100755 index 3d5c646..0000000 --- a/Development/Src/TempestMp/Classes/Maps.uc +++ /dev/null @@ -1,60 +0,0 @@ -class Maps extends Object; - -struct MapData -{ - var string MapName; - var array MapGamemodes; - var string MapReadableName; -}; - -var array MapDatabase; - -public function loadMaps() -{ - local MapData TempMap; - TempMap.MapGamemodes.AddItem("Siege"); - TempMap.MapGamemodes.AddItem("TDM"); - - - TempMap.MapName = "IMM_Mines_P_v04"; TempMap.MapReadableName = "Ice Mines"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "BMM_P_v01"; TempMap.MapReadableName = "Brightmarsh"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "TMM_Beach_P_v04"; TempMap.MapReadableName = "Serpent Beach"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "TMM_Falls_P_v04"; TempMap.MapReadableName = "Jaguar Falls"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "TMM_P_Isle_v02"; TempMap.MapReadableName = "Frog Isle"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "QMM_P_v01"; TempMap.MapReadableName = "Splitstone Quarry"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "KMM_P_v01"; TempMap.MapReadableName = "Stone Keep"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "FMM_Mill_P_v04"; TempMap.MapReadableName = "Timber Mill"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "IMM_P_Igloo_v02"; TempMap.MapReadableName = "Frozen Guard"; MapDatabase.AddItem(TempMap); - - TempMap.MapGamemodes.RemoveItem("Siege"); - TempMap.MapGamemodes.AddItem("Onslaught"); - - TempMap.MapName = "BMO_P_v01"; TempMap.MapReadableName = "Brightmarsh"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "IOM_P_v01"; TempMap.MapReadableName = "Snowfall Junction"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "TOM_P_v01"; TempMap.MapReadableName = "Primal Court"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "TMO_Falls_P_v04"; TempMap.MapReadableName = "Jaguar Falls"; MapDatabase.AddItem(TempMap); - - TempMap.MapGamemodes.RemoveItem("Onslaught"); - TempMap.MapGamemodes.AddItem("Payload"); - - TempMap.MapName = "FPM_P_v01"; TempMap.MapReadableName = "Greenwood Outpost"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "IPM_P_v01"; TempMap.MapReadableName = "Frostbite Cavern"; MapDatabase.AddItem(TempMap); - TempMap.MapName = "TPM_P_v01"; TempMap.MapReadableName = "Hidden Temple"; MapDatabase.AddItem(TempMap); - - TempMap.MapGamemodes.RemoveItem("Payload"); - TempMap.MapGamemodes.AddItem("ShootingRange"); - - TempMap.MapName = "ShootingRange_P"; TempMap.MapReadableName = "Shooting Range"; MapDatabase.AddItem(TempMap); - - // BMO_P_v01 brightmarsh onslaught - // IOM_P_v01 snowfall junction onslaught - // TOM_P_v01 primal court onslaught - // TMO_Falls_P_v04 jagual falls onslaught - - // FPM_P_v01 greenwood outpost payload - // IPM_P_v01 frostbite cavern payload - // TPM_P_v01 hidden temple payload - - // ShootingRange_P shooting range - // FT_P_v01 tutorial -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/MatchData.uc b/Development/Src/TempestMp/Classes/MatchData.uc new file mode 100644 index 0000000..32dcfb0 --- /dev/null +++ b/Development/Src/TempestMp/Classes/MatchData.uc @@ -0,0 +1,6 @@ +class MatchData extends Object; + +var transient int PlayerCount; +var transient array Players; +var transient array ProxyActors; +var transient string Map; \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/Onslaught.uc b/Development/Src/TempestMp/Classes/Onslaught.uc deleted file mode 100755 index 18cefb6..0000000 --- a/Development/Src/TempestMp/Classes/Onslaught.uc +++ /dev/null @@ -1,598 +0,0 @@ -class Onslaught extends TgGame_Paladins_Onslaught; - -var TgGame m_TgG; -var TgRepInfo_Game GRI; - -var int m_nPlayerCount; -var array m_Players; -var array pendingMountPawns; - -var array m_ProxyActors; - -var ATempestLib TempestLib; - -var Maps allMaps; -var string nextMap; -var bool isTravelling; - -var AServerConfigData ServerConfig; - -struct PendingLoginData -{ - var string netAddress; - var int uniqueAddressId; - var string playerName; - var string championName; - var string team; - var string password; - var string horse; -}; - -var array pendingLogins; - -struct ServerParameters { - var int maxPlayers; - var string password; - var string mapName; - var array allowedChampions; - var bool allowSpectators; - var bool totalMayhem; -}; - -var ServerParameters sOptions; - -var TgRepInfo_Player shouldAnimateYourNamePRI; -var PendingLoginData shouldAnimateYourNameData; - -public event InitGame(String Options, out String ErrorMessage) -{ - super.InitGame(Options, ErrorMessage); - - TempestLib = self.Spawn(Class'ATempestLib', self); - TempestLib.SetOwner(self); - TempestLib.initTimer(); - - sOptions.maxPlayers = TempestLib.toInt(ParseOption(Options, "maxplayers")); - sOptions.password = ParseOption(Options, "serverpassword"); - sOptions.allowSpectators = HasOption(Options, "allowSpectators"); - sOptions.totalMayhem = HasOption(Options, "totalMayhem"); - if(sOptions.maxPlayers == 0) - sOptions.maxPlayers = 10; - - ParseStringIntoArray(ParseOption(Options, "allowedChampions"), sOptions.allowedChampions, ",", true); -} - -event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) -{ - local PendingLoginData Data; - local int i, uniqueAddressId; - - super.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage); - - Address = Repl(Address, ".", ""); - - uniqueAddressId = (((TempestLib.toInt(Address) % 1000000) + ((int(WorldInfo.TimeSeconds * 10000) % 10000000) * 1000)) / (Len(Address) * 10)) + Rand(10000); - uniqueAddressId = int(Abs(uniqueAddressId)); - `log(uniqueAddressId); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - pendingLogins.Remove(i, 1); - } - } - - Data.NetAddress = Address; - Data.uniqueAddressId = uniqueAddressId; - Data.PlayerName = TempestLib.decodeURLParam(ParseOption(Options, "name")); - Data.ChampionName = ParseOption(Options, "class"); - Data.Team = ParseOption(Options, "team"); - Data.password = ParseOption(Options, "password"); - Data.horse = ParseOption(Options, "horse"); - - pendingLogins.AddItem(Data); -} - -public event PostLogin(PlayerController NewPlayer) -{ - local TgPlayerController TgPC; - local TempestSpectatorController TgSpec; - local TgPawn_Character TgP; - local TempestProxyActor ProxyActor; - local TempestProxyActor ProxyActorS; - local TgRepInfo_Player TgRPI; - local TgInventoryManager InvMgr; - local PendingLoginData Data; - local ChampionData SelectedChampion; - local TgDevice_Mount MountDevice; - local string Address; - local int i; - super.PostLogin(NewPlayer); - - Address = Repl(NewPlayer.GetPlayerNetworkAddress(), ".", ""); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - Data = pendingLogins[i]; - } - } - - TgPC = TgPlayerController(NewPlayer); - TgRPI = TgRepInfo_Player(NewPlayer.PlayerReplicationInfo); - - ProxyActor = Class'TempestUtils'.static.SetupProxy(TgPC); - ProxyActor.ServerAddCheats(); - - TgPC.CheatClass = Class'TgGame.TgBattleCheatManager'; - // End:0x34A - if(TgPC.CheatManager == none) - { - TgPC.CheatManager = new (TgPC) Class'TgGame.TgBattleCheatManager'; - // End:0x314 - if(TgPC.CheatManager != none) - { - TgPC.CheatManager.InitCheatManager(); - LogInternal((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } - else - { - LogInternal("TempestProxyActor: Failed to create CheatManager!"); - } - } - - m_nPlayerCount++; - - if (hasLoginBeenRejected(NewPlayer, Data)) - return; - - m_ProxyActors.AddItem(ProxyActor); - - for (i = 0; i < sOptions.allowedChampions.Length; i++) { - ProxyActor.ClientPrecacheClass(sOptions.allowedChampions[i]); - } - - // the horse - ProxyActor.ClientTestPrecache(2236, 12612, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 12616, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 16526, 0, 0, true); - - ProxyActor.ClientTestPrecache(2267, 18656, 18655, 18657, true); - - SelectedChampion = setChampion(Data); - SelectedChampion.mountId = getHorse(Data); - SelectedChampion.sprayId = getSpray(Data); - - SelectedChampion = setBelgianYing(Data, SelectedChampion); - - checkShouldAnimateYourName(Data, TgRPI); - - Class'TempestUtils'.static.SetupPRI(m_TgG, TgRPI, Data.uniqueAddressId, Data.playerName, getTeam(Data), SelectedChampion.mountId, getTitle(Data)); - - Class'TempestUtils'.static.SpawnPawn(self, TgPC, SelectedChampion.BotId, SelectedChampion.SkinId, SelectedChampion.DeviceSkinId, SelectedChampion.HeadId, SelectedChampion.mountId); - - //NewPlayer.Player.SwitchController(TgPC); - TgP = TgPawn_Character(TgPC.Pawn); - - if (Role == Role_Authority) { - TgP.m_bAirAccuracyPenalty = false; - InvMgr = TgInventoryManager(TgP.InvManager); - - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card1), 19, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card2), 20, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card3), 21, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card4), 22, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card5), 5, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.Talent), 25, , true, ); - - InvMgr.AddDevice(SelectedChampion.sprayId, 17, , true, ); - } - - TgP.PostPawnSetupServer(); - if(sOptions.TotalMayhem) { - TgRPI.UpdateHealth(TgP.Health, TgP.GetMaxHealth() * 2); - } - - MountDevice = TgDevice_Mount(TgP.GetDeviceByEqPoint(23)); - // End:0x190 - if(MountDevice != none) - { - MountDevice.SetAllowMountServerTimer(); - MountDevice.ClientStartMount(); - } - - ProxyActor.ClientConsoleCommand("setreadytoplay"); -} - -public function Logout(Controller Exiting) { - local int i; - super.Logout(Exiting); - - m_nPlayerCount--; - if(!isTravelling) { - for (i = 0; i < m_ProxyActors.Length; i++) { - if (m_ProxyActors[i].Owner == Exiting) { - m_ProxyActors.Remove(i, 1); - } - } - setTimer(0.25, false, 'removeBots'); - } -} - -public event PreBeginPlay() { - super.PreBeginPlay(); - m_TgG = TgGame(WorldInfo.Game); - - allMaps = new class'Maps'; - allMaps.loadMaps(); - - m_nPlayerCount = 0; -} - -private function debugKillcam() { - local TgPlayerController TgPC; - local TgPawn Pawn; - GRI.r_bAttackersKillCamEnabled = true; - GRI.r_bDefendersKillCamEnabled = true; - `log(string(WorldInfo.IsRecordingTimelapse()) @ string(WorldInfo.IsPlayingTimelapse())); - `log(GameplayEventsWriter); - foreach AllActors(class'TgPlayerController', TgPC) { - if(TgPC.Pawn != none) { - Pawn = TgPawn(TgPC.Pawn); - `log("CHECK FOR" @ Pawn.Name); - TgPC.bForcedTimelapseRequested = true; - `log(string(TgPC.CanPlayKillCam(false))); - if((TgPC.r_fServerTimeStamp - Pawn.r_fReconnectTime) < 30.0) { - `log("TIMESTAMP < 30 IS CAUSING THE FALSE"); - } - if(GRI == none) { - `log("GRI NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bKillCamEnabled) { - `log("KILLCAMENABLED IS CAUSING THE FALSE"); - } - if(GRI.r_bBlockKillCam) { - `log("BLOCKKILLCAM IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce == none) { - `log("GRI ATTACKING TASKFORCE NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bAttackersKillCamEnabled) { - `log("GRI ATTACKERS KILLCAM IS CAUSING THE FALSE"); - } - if(!GRI.r_bDefendersKillCamEnabled) { - `log("GRI DEFENDERS KILLCAM IS CAUSING THE FALSE"); - } - if(!(TgPC.m_nKillCamTargetId >= 0)) { - `log("KILLCAM TARGET ID IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce.GetTeamNum() != TgPC.GetTaskForceNumber()) { - `log("GET TEAM NUM NONE IS CAUSING THE FALSE"); - } - `log(""); - `log(""); - `log(""); - } - } -} - -public function ScoreKill(Controller Killer, Controller Other) -{ - local TgPlayerController TgPCKiller; - local TgPlayerController TgPCKilled; - local TgPawn killerPawn; - local TgPawn killedPawn; - super.ScoreKill(Killer, Other); - - TgPCKiller = TgPlayerController(Killer); - TgPCKilled = TgPlayerController(Other); - - killerPawn = TgPawn(TgPCKiller.Pawn); - KilledPawn = TgPawn(TgPCKilled.Pawn); - - `log("FIRED SCOREKILL" @ killerPawn.Name); - `log("KILLER PAWNID" @ killerPawn.r_nPawnId); - `log("KILLER OWNER" @ killerPawn.r_Owner.Name); - TgPCKilled.SetKillCamTarget(KillerPawn); - TgPCKilled.ClientSetKillCamTarget(killerPawn.r_nPawnId, killerPawn.r_nPawnId); - `log("TG PC KILLED" @ TgPCKilled.m_nKillCamTargetId @ TgPCKilled.m_nKillCamTargetBackupId); - `log("TG PC KILLER" @ TgPCKiller.m_nKillCamTargetId @ TgPCKiller.m_nKillCamTargetBackupId); - `log("KillCamViewTarget" @ TgPCKilled.GetBestKillCamTarget().Name); - //TgPCKilled.StartTimelapsePlayback(-7.5000000, -3.0000000, false); - //TgPCKilled.ControllerPreTimeLapse(); - TgPCKilled.StartTimelapse(); - //KilledPawn.PreTimeLapse(false); -} - -public event PostBeginPlay() { - super.PostBeginPlay(); - - m_TgG = TgGame(WorldInfo.Game); - GRI = TgRepInfo_Game(WorldInfo.GRI); - isTravelling = false; - - if(Role == Role_Authority) { - ServerConfig = new class'AServerConfigData'; - ServerConfig.InitializeConfig(); - } - if(sOptions.TotalMayhem) { - SetTimer(1, true, 'runTotalMayhem'); - m_fBaseRespawnTime = 1; - m_fDefenseRespawnIncrease = 0; - m_fAttackRespawnIncrease = 0; - m_bCanPurchaseItemsAnywhere = true; - } - -} - -private function killcontroller() { - local TgPlayerController TgPC; - local TempestSpectatorController TgSC; - local TgRepInfo_Player TgRPI; - local Vector CamLoc; - local Rotator CamRot; - - foreach AllActors(class'TempestSpectatorController', TgSC) { - TgRPI = TgRepInfo_Player(TgSC.PlayerReplicationInfo); - LogInternal("Found spectator: " @ TgRPI.PlayerName); - - TgRPI.UpdateSpectatorUI(); - - // Destroy old controller — PRI already transferred via SwitchController - //TgPC.Destroy(); - - break; - } -} - -private function removeBots() { - local TgAIController_BehaviorGod TgAI; - foreach AllActors(class'TgAIController_BehaviorGod', TgAI) { - if(TgAI != none) { - TgAI.Pawn.Suicide(); - TgAI.Pawn.Destroy(); - TgAI.PlayerReplicationInfo.Destroy(); - TgAI.Destroy(); - } - } -} - -public function TaskforceWin(Int nTaskForce, EVictoryType VictoryType) { - local TgPlayerController TgPC; - local int rmap; - local array ValidMaps; - local int i; - local string Gamemode; - Gamemode = "Onslaught"; - - super.TaskforceWin(nTaskForce, VictoryType); - - isTravelling = true; - - SetTimer(6, false, 'proceedEndGame'); -} - -private event proceedEndGame() { - local TempestProxyActor ProxyActor; - foreach m_ProxyActors(ProxyActor) { - ProxyActor.ClientConsoleCommand("quit"); - } - if(Role == ROLE_Authority) { - foreach m_ProxyActors(ProxyActor) { - m_ProxyActors.RemoveItem(ProxyActor); - } - //switchMap(); - } -} - -private event runTotalMayhem() { - local TgPlayerController TgPC; - local TgPawn_Character Pawn; - foreach AllActors(class'TgPlayerController', TgPC) { - Pawn = TgPawn_Character(TgPC.Pawn); - if(TgPC != none && Pawn != none) { - reduceCooldownAndBoostUltCharge(Pawn); - } - } -} - -private function reduceCooldownAndBoostUltCharge(TgPawn_Character Pawn) { - local float ultChargeMount, cdRatio, CD, NewCD, BaseCD; - ultChargeMount = 2.5f; - cdRatio = 0.2f; - if(Pawn.MySpawnGatesAreOpen() && Pawn.ShouldRecharge()) Pawn.SetProperty(2, Pawn.GetEnergy() + ultChargeMount); - - if(Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(3).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(3).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(4).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(4).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(16).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(16).ResetCooldown(0, NewCD); - } -} - -private function bool hasLoginBeenRejected(PlayerController NewPlayer, PendingLoginData data) { - if(isTravelling) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is restarting."); - return true; - } - - if(sOptions.password != "") { - if(Data.password != sOptions.password) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: Wrong password."); - return true; - } - } - /* - if(!sOptions.allowSpectators && (Data.team == "spec" || Data.team == "spectator")) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server doesn't allow spectators."); - return true; - } -*/ - if(m_nPlayerCount > maxPlayers) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is full."); - return true; - } - return false; -} - -private function ChampionData setChampion(PendingLoginData Data) { - local int randChamp; - local string incomingName; - local ChampionData selectedChampion; - - incomingName = Locs(Data.ChampionName); - - if (isChampionAllowed(incomingName)) { - selectedChampion = findChampionByNameOrAlias(incomingName); - return selectedChampion; - } - - randChamp = Rand(sOptions.allowedChampions.Length); - selectedChampion = findChampionByNameOrAlias(Locs(sOptions.allowedChampions[randChamp])); - return selectedChampion; -} - -private function bool isChampionAllowed(string championName) { - local int i, j; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (sOptions.allowedChampions.Find(Locs(ServerConfig.Champion[i].name)) != INDEX_NONE) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return true; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return true; - } - } - } - } - return false; -} - -private function ChampionData findChampionByNameOrAlias(string championName) { - local int i, j; - local ChampionData emptyChampion; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return ServerConfig.Champion[i]; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return ServerConfig.Champion[i]; - } - } - } - - return emptyChampion; -} - -private function switchMap() { - ProcessServerTravel(nextMap, true); - //removeBots(); -} - -public function int getTeam(PendingLoginData Data) { - switch(Data.Team) - { - case "1": return 1; break; - case "2": return 2; break; - case "spec": return 3; break; - case "spectator": return 3; break; - } - - return (m_nPlayerCount % 2 == 0) ? 1 : 2; -} - -public function int getHorse(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16526; - - switch(Data.horse) - { - case "1": return 12616; break; - case "2": return 12612; break; - } - - return 12616; -} - -public function int getSpray(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16457; - - return 15587; -} - -public function int getTitle(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16936; - - return 0; -} - -public function ChampionData setBelgianYing(PendingLoginData Data, ChampionData SelectedChampion) { - // Special Belgian Treatement - if(Data.netAddress == "262038383" && (Data.championName == "ying" || Data.championName == "bestwaifu")) { - SelectedChampion.BotId = 2267; - SelectedChampion.SkinId = 18656; - SelectedChampion.DeviceSkinId = 18655; - SelectedChampion.HeadId = 18657; - } - return SelectedChampion; -} - -public function checkShouldAnimateYourName(PendingLoginData Data, TgRepInfo_Player PRI) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") { - shouldAnimateYourNamePRI = PRI; - shouldAnimateYourNameData = Data; - } -} - -function animateYourName() { - `log(WorldInfo.TimeSeconds); - if(shouldAnimateYourNamePRI != none) shouldAnimateYourNamePRI.PlayerName = TempestLib.UpdateAnimatedName(shouldAnimateYourNameData.playerName); -} - -public function initServerCheatManager(TgPlayerController TgPC) { - TgPC.CheatClass = Class'TgBattleCheatManager'; - if(TgPC.CheatManager == none) { - TgPC.CheatManager = new (TgPC) Class'TgBattleCheatManager'; - if(TgPC.CheatManager != none) { - TgPC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/Payload.uc b/Development/Src/TempestMp/Classes/Payload.uc deleted file mode 100755 index c8248da..0000000 --- a/Development/Src/TempestMp/Classes/Payload.uc +++ /dev/null @@ -1,558 +0,0 @@ -class Payload extends TgGame_Paladins_Payload - config(Game); - -var TgGame m_TgG; -var TgRepInfo_Game GRI; - -var int m_nPlayerCount; -var array m_Players; -var array pendingMountPawns; - -var array m_ProxyActors; - -var ATempestLib TempestLib; - - -var Maps allMaps; -var string nextMap; -var bool isTravelling; - -var AServerConfigData ServerConfig; - -struct PendingLoginData -{ - var string netAddress; - var int uniqueAddressId; - var string playerName; - var string championName; - var string team; - var string password; - var string horse; -}; - -var array pendingLogins; - -struct ServerParameters { - var int maxPlayers; - var string password; - var string mapName; - var array allowedChampions; - var bool allowSpectators; - var bool totalMayhem; -}; - -var ServerParameters sOptions; - -var TgRepInfo_Player shouldAnimateYourNamePRI; -var PendingLoginData shouldAnimateYourNameData; - -public event InitGame(String Options, out String ErrorMessage) -{ - super.InitGame(Options, ErrorMessage); - - TempestLib = self.Spawn(Class'ATempestLib', self); - TempestLib.SetOwner(self); - TempestLib.initTimer(); - - sOptions.maxPlayers = TempestLib.toInt(ParseOption(Options, "maxplayers")); - sOptions.password = ParseOption(Options, "serverpassword"); - sOptions.allowSpectators = HasOption(Options, "allowSpectators"); - sOptions.totalMayhem = HasOption(Options, "totalMayhem"); - if(sOptions.maxPlayers == 0) - sOptions.maxPlayers = 10; - - ParseStringIntoArray(ParseOption(Options, "allowedChampions"), sOptions.allowedChampions, ",", true); -} - -event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) -{ - local PendingLoginData Data; - local int i, uniqueAddressId; - - super.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage); - - Address = Repl(Address, ".", ""); - - uniqueAddressId = (((TempestLib.toInt(Address) % 1000000) + ((int(WorldInfo.TimeSeconds * 10000) % 10000000) * 1000)) / (Len(Address) * 10)) + Rand(10000); - uniqueAddressId = int(Abs(uniqueAddressId)); - `log(uniqueAddressId); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - pendingLogins.Remove(i, 1); - } - } - - - Data.NetAddress = Address; - Data.uniqueAddressId = uniqueAddressId; - Data.PlayerName = TempestLib.decodeURLParam(ParseOption(Options, "name")); - Data.ChampionName = ParseOption(Options, "class"); - Data.Team = ParseOption(Options, "team"); - Data.password = ParseOption(Options, "password"); - Data.horse = ParseOption(Options, "horse"); - - pendingLogins.AddItem(Data); -} - -public event PostLogin(PlayerController NewPlayer) -{ - local TgPlayerController TgPC; - local TempestProxyActor ProxyActor; - local TgRepInfo_Player TgRPI; - local TgInventoryManager InvMgr; - local PendingLoginData Data; - local ChampionData SelectedChampion; - local string Address; - local int i; - super.PostLogin(NewPlayer); - - Address = Repl(NewPlayer.GetPlayerNetworkAddress(), ".", ""); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - Data = pendingLogins[i]; - } - } - - TgPC = TgPlayerController(NewPlayer); - TgRPI = TgRepInfo_Player(NewPlayer.PlayerReplicationInfo); - ProxyActor = Class'TempestUtils'.static.SetupProxy(TgPC); - ProxyActor.ServerAddCheats(); - - m_nPlayerCount++; - - if (hasLoginBeenRejected(NewPlayer, Data)) - return; - - m_ProxyActors.AddItem(ProxyActor); - - for (i = 0; i < sOptions.allowedChampions.Length; i++) { - ProxyActor.ClientPrecacheClass(sOptions.allowedChampions[i]); - } - - // the horse - ProxyActor.ClientTestPrecache(2236, 12612, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 12616, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 16526, 0, 0, true); - - ProxyActor.ClientTestPrecache(2273, 18656, 18655, 18657, true); - - SelectedChampion = setChampion(Data); - SelectedChampion.mountId = getHorse(Data); - SelectedChampion.sprayId = getSpray(Data); - - SelectedChampion = setBelgianYing(Data, SelectedChampion); - - checkShouldAnimateYourName(Data, TgRPI); - - Class'TempestUtils'.static.SetupPRI(m_TgG, TgRPI, Data.uniqueAddressId, Data.playerName, getTeam(Data), SelectedChampion.mountId, getTitle(Data)); - Class'TempestUtils'.static.SpawnPawn(self, TgPC, SelectedChampion.BotId, SelectedChampion.SkinId, SelectedChampion.DeviceSkinId, SelectedChampion.HeadId, SelectedChampion.mountId); - - if (Role == Role_Authority) { - TgPawn(TgPC.Pawn).m_bAirAccuracyPenalty = false; - InvMgr = TgInventoryManager(TgPawn(TgPC.Pawn).InvManager); - - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card1), 19, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card2), 20, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card3), 21, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card4), 22, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card5), 5, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.Talent), 25, , true, ); - - InvMgr.AddDevice(SelectedChampion.sprayId, 17, , true, ); - - } - - ProxyActor.ClientConsoleCommand("setreadytoplay"); -} - -public function Logout(Controller Exiting) { - local int i; - super.Logout(Exiting); - - m_nPlayerCount--; - if(!isTravelling) { - for (i = 0; i < m_ProxyActors.Length; i++) { - if (m_ProxyActors[i].Owner == Exiting) { - m_ProxyActors.Remove(i, 1); - } - } - setTimer(0.25, false, 'removeBots'); - } -} - -public event PreBeginPlay() { - super.PreBeginPlay(); - m_TgG = TgGame(WorldInfo.Game); - - allMaps = new class'Maps'; - allMaps.loadMaps(); - - m_nPlayerCount = 0; -} - -public event PostBeginPlay() { - super.PostBeginPlay(); - - m_TgG = TgGame(WorldInfo.Game); - GRI = TgRepInfo_Game(WorldInfo.GRI); - isTravelling = false; - - if(Role == Role_Authority) { - ServerConfig = new class'AServerConfigData'; - ServerConfig.InitializeConfig(); - } - if(sOptions.TotalMayhem) { - SetTimer(1, true, 'runTotalMayhem'); - m_fBaseRespawnTime = 1; - m_fDefenseRespawnIncrease = 0; - m_fAttackRespawnIncrease = 0; - } - - setTimer(1, true, 'animateYourName'); -} - -private function removeBots() { - local TgAIController_BehaviorGod TgAI; - foreach AllActors(class'TgAIController_BehaviorGod', TgAI) { - if(TgAI != none) { - TgAI.Pawn.Suicide(); - TgAI.Pawn.Destroy(); - TgAI.PlayerReplicationInfo.Destroy(); - TgAI.Destroy(); - } - } -} - -public function TaskforceWin(Int nTaskForce, EVictoryType VictoryType) { - local TgPlayerController TgPC; - local int rmap; - local array ValidMaps; - local int i; - local string Gamemode; - Gamemode = "Payload"; - - super.TaskforceWin(nTaskForce, VictoryType); - - isTravelling = true; - - for(i = 0; i < allMaps.MapDatabase.Length; i++) { - if(allMaps.MapDatabase[i].MapGamemodes.Find(Gamemode) != INDEX_NONE) { - ValidMaps.AddItem(allMaps.MapDatabase[i]); - } - } - - if(ValidMaps.Length > 0) { - rmap = rand(ValidMaps.Length); - nextMap = ValidMaps[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ ValidMaps[rmap].MapReadableName, , 15); - } - } else { - rmap = rand(allMaps.MapDatabase.Length); - nextMap = allMaps.MapDatabase[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ allMaps.MapDatabase[rmap].MapReadableName, , 15); - } - } - - SetTimer(6, false, 'proceedEndGame'); -} - -private event proceedEndGame() { - local TempestProxyActor ProxyActor; - foreach m_ProxyActors(ProxyActor) { - ProxyActor.ClientConsoleCommand("quit"); - } - if(Role == ROLE_Authority) { - foreach m_ProxyActors(ProxyActor) { - m_ProxyActors.RemoveItem(ProxyActor); - } - switchMap(); - } -} - -private event runTotalMayhem() { - local TgPlayerController TgPC; - local TgPawn Pawn; - foreach AllActors(class'TgPlayerController', TgPC) { - Pawn = TgPawn(TgPC.Pawn); - if(TgPC != none && Pawn != none) { - reduceCooldownAndBoostUltCharge(Pawn); - } - } -} - -private function reduceCooldownAndBoostUltCharge(TgPawn Pawn) { - local float ultChargeMount, cdRatio, CD, NewCD; - ultChargeMount = 2.5f; - cdRatio = 0.2f; - if(Pawn.MySpawnGatesAreOpen() && Pawn.ShouldRecharge()) Pawn.SetProperty(2, Pawn.GetEnergy() + ultChargeMount); - - if(Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining() > 0) { - CD = Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining(); - - NewCD = CD - (Pawn.GetDeviceByEqPoint(3).GetCooldownTime() * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(3).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining() > 0) { - CD = Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining(); - NewCD = CD - (Pawn.GetDeviceByEqPoint(4).GetCooldownTime() * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(4).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining() > 0) { - CD = Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining(); - NewCD = CD - (Pawn.GetDeviceByEqPoint(16).GetCooldownTime() * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(16).ResetCooldown(0, NewCD); - } -} - -private function bool hasLoginBeenRejected(PlayerController NewPlayer, PendingLoginData data) { - if(isTravelling) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is restarting."); - return true; - } - - if(sOptions.password != "") { - if(Data.password != sOptions.password) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: Wrong password."); - return true; - } - } - - if(!sOptions.allowSpectators && (Data.team == "spec" || Data.team == "spectator")) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server doesn't allow spectators."); - return true; - } - - if(m_nPlayerCount > maxPlayers) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is full."); - return true; - } - return false; -} - -private function ChampionData setChampion(PendingLoginData Data) { - local int randChamp; - local string incomingName; - local ChampionData selectedChampion; - - incomingName = Locs(Data.ChampionName); - - if (isChampionAllowed(incomingName)) { - selectedChampion = findChampionByNameOrAlias(incomingName); - return selectedChampion; - } - - randChamp = Rand(sOptions.allowedChampions.Length); - selectedChampion = findChampionByNameOrAlias(Locs(sOptions.allowedChampions[randChamp])); - return selectedChampion; -} - -private function bool isChampionAllowed(string championName) { - local int i, j; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (sOptions.allowedChampions.Find(Locs(ServerConfig.Champion[i].name)) != INDEX_NONE) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return true; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return true; - } - } - } - } - return false; -} - -private function ChampionData findChampionByNameOrAlias(string championName) { - local int i, j; - local ChampionData emptyChampion; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return ServerConfig.Champion[i]; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return ServerConfig.Champion[i]; - } - } - } - - return emptyChampion; -} - -private function switchMap() { - ProcessServerTravel(nextMap, true); - //removeBots(); -} - -public function int getTeam(PendingLoginData Data) { - switch(Data.Team) - { - case "1": return 1; break; - case "2": return 2; break; - } - - return (m_nPlayerCount % 2 == 0) ? 1 : 2; -} - -public function int getHorse(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16526; - - switch(Data.horse) - { - case "1": return 12616; break; - case "2": return 12612; break; - } - - return 12616; -} - -public function int getSpray(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16457; - - return 15587; -} - -public function int getTitle(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16936; - - return 0; -} - -public function ChampionData setBelgianYing(PendingLoginData Data, ChampionData SelectedChampion) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168" && (Data.championName == "ying" || Data.championName == "bestwaifu")) { - SelectedChampion.BotId = 2267; - SelectedChampion.SkinId = 18656; - SelectedChampion.DeviceSkinId = 18655; - SelectedChampion.HeadId = 18657; - } - return SelectedChampion; -} - -public function checkShouldAnimateYourName(PendingLoginData Data, TgRepInfo_Player PRI) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") { - shouldAnimateYourNamePRI = PRI; - shouldAnimateYourNameData = Data; - } -} - -function animateYourName() { - if(shouldAnimateYourNamePRI != none) shouldAnimateYourNamePRI.PlayerName = TempestLib.UpdateAnimatedName(shouldAnimateYourNameData.playerName); // or use original name -} - -public function initServerCheatManager(TgPlayerController TgPC) { - TgPC.CheatClass = Class'TgBattleCheatManager'; - if(TgPC.CheatManager == none) { - TgPC.CheatManager = new (TgPC) Class'TgBattleCheatManager'; - if(TgPC.CheatManager != none) { - TgPC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } -} - -state GameRunning -{ - function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName) - { - tg(); - return super.FindPlayerStart(Player, InTeam, incomingName); - } - - function PointCaptured(int nTaskForce, optional bool bSuppressPointsForCapture) - { - super.PointCaptured(nTaskForce, bSuppressPointsForCapture); - } - - stop; -} - -state AttackDefend -{ - function BeginState(name PreviousStateName) - { - super.BeginState(PreviousStateName); - } - - function float GetPayloadStartingDuration() - { - return super.GetPayloadStartingDuration(); - } - - function float GetOvertimeDuration() - { - return super.GetOvertimeDuration(); - } - - function bool OvertimePreventsPayloadExpiring() - { - return super.OvertimePreventsPayloadExpiring(); - } - - function TgChaosCapturePoint GetCapturePointToSpawnSiegeEngineAt() - { - return super.GetCapturePointToSpawnSiegeEngineAt(); - } - - function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName) - { - tg1(); - return super.FindPlayerStart(Player, InTeam, incomingName); - } - - function Tick(float DeltaTime) - { - super.Tick(DeltaTime); - } - stop; -} - - -private function tg() { - local TgPlayerController TgPC; - foreach AllActors(class'TgPlayerController', TgPC ) { - TgPC.ClientMessage("The payload de bite pipi caca prout has spawned"); - `log(TgRepInfo_Player(TgPC.PlayerReplicationInfo).r_nPawnId @ TgRepInfo_Player(TgPC.PlayerReplicationInfo).r_nProfileId); - - } -} - -private function tg1() { - local TgPlayerController TgPC; - foreach AllActors(class'TgPlayerController', TgPC ) { - TgPC.ClientMessage("The payload de bite pipi caca prout has spawned 1"); - `log(TgRepInfo_Player(TgPC.PlayerReplicationInfo).r_nPawnId @ TgRepInfo_Player(TgPC.PlayerReplicationInfo).r_nProfileId); - } -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/Siege.uc b/Development/Src/TempestMp/Classes/Siege.uc old mode 100755 new mode 100644 index 506d463..39c4b52 --- a/Development/Src/TempestMp/Classes/Siege.uc +++ b/Development/Src/TempestMp/Classes/Siege.uc @@ -1,622 +1,361 @@ -class Siege extends TgGame_Paladins_Siege; - -var TgGame m_TgG; -var TgRepInfo_Game GRI; - -var int m_nPlayerCount; -var array m_Players; -var array pendingMountPawns; - -var array m_ProxyActors; - -var ATempestLib TempestLib; - -var Maps allMaps; -var string nextMap; -var bool isTravelling; - -var AServerConfigData ServerConfig; - -struct PendingLoginData -{ - var string netAddress; - var int uniqueAddressId; - var string playerName; - var string championName; - var string team; - var string password; - var string horse; -}; - -var array pendingLogins; - -struct ServerParameters { - var int maxPlayers; - var string password; - var string mapName; - var array allowedChampions; - var bool allowSpectators; - var bool totalMayhem; -}; - -var ServerParameters sOptions; - -var TgRepInfo_Player shouldAnimateYourNamePRI; -var PendingLoginData shouldAnimateYourNameData; - -public event InitGame(String Options, out String ErrorMessage) -{ - super.InitGame(Options, ErrorMessage); - - TempestLib = self.Spawn(Class'ATempestLib', self); - TempestLib.SetOwner(self); - TempestLib.initTimer(); - - sOptions.maxPlayers = TempestLib.toInt(ParseOption(Options, "maxplayers")); - sOptions.password = ParseOption(Options, "serverpassword"); - sOptions.allowSpectators = HasOption(Options, "allowSpectators"); - sOptions.totalMayhem = HasOption(Options, "totalMayhem"); - if(sOptions.maxPlayers == 0) - sOptions.maxPlayers = 10; - - ParseStringIntoArray(ParseOption(Options, "allowedChampions"), sOptions.allowedChampions, ",", true); -} - -event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) -{ - local PendingLoginData Data; - local int i, uniqueAddressId; - - super.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage); - - Address = Repl(Address, ".", ""); - - uniqueAddressId = (((TempestLib.toInt(Address) % 1000000) + ((int(WorldInfo.TimeSeconds * 10000) % 10000000) * 1000)) / (Len(Address) * 10)) + Rand(10000); - uniqueAddressId = int(Abs(uniqueAddressId)); - `log(uniqueAddressId); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - pendingLogins.Remove(i, 1); - } - } - - Data.NetAddress = Address; - Data.uniqueAddressId = uniqueAddressId; - Data.PlayerName = TempestLib.decodeURLParam(ParseOption(Options, "name")); - Data.ChampionName = ParseOption(Options, "class"); - Data.Team = ParseOption(Options, "team"); - Data.password = ParseOption(Options, "password"); - Data.horse = ParseOption(Options, "horse"); - - pendingLogins.AddItem(Data); -} - -public event PostLogin(PlayerController NewPlayer) -{ - local TgPlayerController TgPC; - local TempestSpectatorController TgSpec; - local TgPawn_Character TgP; - local TempestProxyActor ProxyActor; - local TempestProxyActor ProxyActorS; - local TgRepInfo_Player TgRPI; - local TgInventoryManager InvMgr; - local PendingLoginData Data; - local ChampionData SelectedChampion; - local TgDevice_Mount MountDevice; - local string Address; - local int i; - super.PostLogin(NewPlayer); - - Address = Repl(NewPlayer.GetPlayerNetworkAddress(), ".", ""); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - Data = pendingLogins[i]; - } - } - - TgPC = TgPlayerController(NewPlayer); - TgRPI = TgRepInfo_Player(NewPlayer.PlayerReplicationInfo); - - ProxyActor = Class'TempestUtils'.static.SetupProxy(TgPC); - ProxyActor.ServerAddCheats(); - - TgPC.CheatClass = Class'TgGame.TgBattleCheatManager'; - // End:0x34A - if(TgPC.CheatManager == none) - { - TgPC.CheatManager = new (TgPC) Class'TgGame.TgBattleCheatManager'; - // End:0x314 - if(TgPC.CheatManager != none) - { - TgPC.CheatManager.InitCheatManager(); - LogInternal((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } - else - { - LogInternal("TempestProxyActor: Failed to create CheatManager!"); - } - } - - m_nPlayerCount++; - - if (hasLoginBeenRejected(NewPlayer, Data)) - return; - - m_ProxyActors.AddItem(ProxyActor); - - for (i = 0; i < sOptions.allowedChampions.Length; i++) { - ProxyActor.ClientPrecacheClass(sOptions.allowedChampions[i]); - } - - // the horse - ProxyActor.ClientTestPrecache(2236, 12612, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 12616, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 16526, 0, 0, true); - - ProxyActor.ClientTestPrecache(2267, 18656, 18655, 18657, true); - - SelectedChampion = setChampion(Data); - SelectedChampion.mountId = getHorse(Data); - SelectedChampion.sprayId = getSpray(Data); - - SelectedChampion = setBelgianYing(Data, SelectedChampion); - - checkShouldAnimateYourName(Data, TgRPI); - - Class'TempestUtils'.static.SetupPRI(m_TgG, TgRPI, Data.uniqueAddressId, Data.playerName, getTeam(Data), SelectedChampion.mountId, getTitle(Data)); - - Class'TempestUtils'.static.SpawnPawn(self, TgPC, SelectedChampion.BotId, SelectedChampion.SkinId, SelectedChampion.DeviceSkinId, SelectedChampion.HeadId, SelectedChampion.mountId); - - //NewPlayer.Player.SwitchController(TgPC); - TgP = TgPawn_Character(TgPC.Pawn); - - if (Role == Role_Authority) { - TgP.m_bAirAccuracyPenalty = false; - InvMgr = TgInventoryManager(TgP.InvManager); - - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card1), 19, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card2), 20, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card3), 21, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card4), 22, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card5), 5, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.Talent), 25, , true, ); - - InvMgr.AddDevice(SelectedChampion.sprayId, 17, , true, ); - } - - TgP.PostPawnSetupServer(); - if(sOptions.TotalMayhem) { - TgRPI.UpdateHealth(TgP.Health, TgP.GetMaxHealth() * 2); - } - - MountDevice = TgDevice_Mount(TgP.GetDeviceByEqPoint(23)); - // End:0x190 - if(MountDevice != none) - { - MountDevice.SetAllowMountServerTimer(); - MountDevice.ClientStartMount(); - } - - ProxyActor.ClientConsoleCommand("setreadytoplay"); -} - -public function Logout(Controller Exiting) { - local int i; - super.Logout(Exiting); - - m_nPlayerCount--; - if(!isTravelling) { - for (i = 0; i < m_ProxyActors.Length; i++) { - if (m_ProxyActors[i].Owner == Exiting) { - m_ProxyActors.Remove(i, 1); - } - } - setTimer(0.25, false, 'removeBots'); - } -} - -public event PreBeginPlay() { - super.PreBeginPlay(); - m_TgG = TgGame(WorldInfo.Game); - - allMaps = new class'Maps'; - allMaps.loadMaps(); - - m_nPlayerCount = 0; -} - -private function debugKillcam() { - local TgPlayerController TgPC; - local TgPawn Pawn; - GRI.r_bAttackersKillCamEnabled = true; - GRI.r_bDefendersKillCamEnabled = true; - `log(string(WorldInfo.IsRecordingTimelapse()) @ string(WorldInfo.IsPlayingTimelapse())); - `log(GameplayEventsWriter); - foreach AllActors(class'TgPlayerController', TgPC) { - if(TgPC.Pawn != none) { - Pawn = TgPawn(TgPC.Pawn); - `log("CHECK FOR" @ Pawn.Name); - TgPC.bForcedTimelapseRequested = true; - `log(string(TgPC.CanPlayKillCam(false))); - if((TgPC.r_fServerTimeStamp - Pawn.r_fReconnectTime) < 30.0) { - `log("TIMESTAMP < 30 IS CAUSING THE FALSE"); - } - if(GRI == none) { - `log("GRI NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bKillCamEnabled) { - `log("KILLCAMENABLED IS CAUSING THE FALSE"); - } - if(GRI.r_bBlockKillCam) { - `log("BLOCKKILLCAM IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce == none) { - `log("GRI ATTACKING TASKFORCE NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bAttackersKillCamEnabled) { - `log("GRI ATTACKERS KILLCAM IS CAUSING THE FALSE"); - } - if(!GRI.r_bDefendersKillCamEnabled) { - `log("GRI DEFENDERS KILLCAM IS CAUSING THE FALSE"); - } - if(!(TgPC.m_nKillCamTargetId >= 0)) { - `log("KILLCAM TARGET ID IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce.GetTeamNum() != TgPC.GetTaskForceNumber()) { - `log("GET TEAM NUM NONE IS CAUSING THE FALSE"); - } - `log(""); - `log(""); - `log(""); - } - } -} - -public function ScoreKill(Controller Killer, Controller Other) -{ - local TgPlayerController TgPCKiller; - local TgPlayerController TgPCKilled; - local TgPawn killerPawn; - local TgPawn killedPawn; - super.ScoreKill(Killer, Other); - - TgPCKiller = TgPlayerController(Killer); - TgPCKilled = TgPlayerController(Other); - - killerPawn = TgPawn(TgPCKiller.Pawn); - KilledPawn = TgPawn(TgPCKilled.Pawn); - - `log("FIRED SCOREKILL" @ killerPawn.Name); - `log("KILLER PAWNID" @ killerPawn.r_nPawnId); - `log("KILLER OWNER" @ killerPawn.r_Owner.Name); - TgPCKilled.SetKillCamTarget(KillerPawn); - TgPCKilled.ClientSetKillCamTarget(killerPawn.r_nPawnId, killerPawn.r_nPawnId); - `log("TG PC KILLED" @ TgPCKilled.m_nKillCamTargetId @ TgPCKilled.m_nKillCamTargetBackupId); - `log("TG PC KILLER" @ TgPCKiller.m_nKillCamTargetId @ TgPCKiller.m_nKillCamTargetBackupId); - `log("KillCamViewTarget" @ TgPCKilled.GetBestKillCamTarget().Name); - //TgPCKilled.StartTimelapsePlayback(-7.5000000, -3.0000000, false); - //TgPCKilled.ControllerPreTimeLapse(); - TgPCKilled.StartTimelapse(); - //KilledPawn.PreTimeLapse(false); -} - -public event PostBeginPlay() { - super.PostBeginPlay(); - - m_TgG = TgGame(WorldInfo.Game); - GRI = TgRepInfo_Game(WorldInfo.GRI); - isTravelling = false; - - if(Role == Role_Authority) { - ServerConfig = new class'AServerConfigData'; - ServerConfig.InitializeConfig(); - } - if(sOptions.TotalMayhem) { - SetTimer(1, true, 'runTotalMayhem'); - m_fBaseRespawnTime = 1; - m_fDefenseRespawnIncrease = 0; - m_fAttackRespawnIncrease = 0; - m_bCanPurchaseItemsAnywhere = true; - } - -} - -private function killcontroller() { - local TgPlayerController TgPC; - local TempestSpectatorController TgSC; - local TgRepInfo_Player TgRPI; - local Vector CamLoc; - local Rotator CamRot; - - foreach AllActors(class'TempestSpectatorController', TgSC) { - TgRPI = TgRepInfo_Player(TgSC.PlayerReplicationInfo); - LogInternal("Found spectator: " @ TgRPI.PlayerName); - - TgRPI.UpdateSpectatorUI(); - - // Destroy old controller — PRI already transferred via SwitchController - //TgPC.Destroy(); - - break; - } -} - -private function removeBots() { - local TgAIController_BehaviorGod TgAI; - foreach AllActors(class'TgAIController_BehaviorGod', TgAI) { - if(TgAI != none) { - TgAI.Pawn.Suicide(); - TgAI.Pawn.Destroy(); - TgAI.PlayerReplicationInfo.Destroy(); - TgAI.Destroy(); - } - } -} - -public function TaskforceWin(Int nTaskForce, EVictoryType VictoryType) { - local TgPlayerController TgPC; - local int rmap; - local array ValidMaps; - local int i; - local string Gamemode; - Gamemode = "Siege"; - - super.TaskforceWin(nTaskForce, VictoryType); - - isTravelling = true; - - for(i = 0; i < allMaps.MapDatabase.Length; i++) { - if(allMaps.MapDatabase[i].MapGamemodes.Find(Gamemode) != INDEX_NONE) { - ValidMaps.AddItem(allMaps.MapDatabase[i]); - } - } - - if(ValidMaps.Length > 0) { - rmap = rand(ValidMaps.Length); - nextMap = ValidMaps[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ ValidMaps[rmap].MapReadableName, , 15); - } - } else { - rmap = rand(allMaps.MapDatabase.Length); - nextMap = allMaps.MapDatabase[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ allMaps.MapDatabase[rmap].MapReadableName, , 15); - } - } - - SetTimer(6, false, 'proceedEndGame'); -} - -private event proceedEndGame() { - local TempestProxyActor ProxyActor; - foreach m_ProxyActors(ProxyActor) { - ProxyActor.ClientConsoleCommand("quit"); - } - if(Role == ROLE_Authority) { - foreach m_ProxyActors(ProxyActor) { - m_ProxyActors.RemoveItem(ProxyActor); - } - //switchMap(); - } -} - -private event runTotalMayhem() { - local TgPlayerController TgPC; - local TgPawn_Character Pawn; - foreach AllActors(class'TgPlayerController', TgPC) { - Pawn = TgPawn_Character(TgPC.Pawn); - if(TgPC != none && Pawn != none) { - reduceCooldownAndBoostUltCharge(Pawn); - } - } -} - -private function reduceCooldownAndBoostUltCharge(TgPawn_Character Pawn) { - local float ultChargeMount, cdRatio, CD, NewCD, BaseCD; - ultChargeMount = 2.5f; - cdRatio = 0.2f; - if(Pawn.MySpawnGatesAreOpen() && Pawn.ShouldRecharge()) Pawn.SetProperty(2, Pawn.GetEnergy() + ultChargeMount); - - if(Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(3).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(3).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(4).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(4).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(16).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(16).ResetCooldown(0, NewCD); - } -} - -private function bool hasLoginBeenRejected(PlayerController NewPlayer, PendingLoginData data) { - if(isTravelling) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is restarting."); - return true; - } - - if(sOptions.password != "") { - if(Data.password != sOptions.password) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: Wrong password."); - return true; - } - } - /* - if(!sOptions.allowSpectators && (Data.team == "spec" || Data.team == "spectator")) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server doesn't allow spectators."); - return true; - } -*/ - if(m_nPlayerCount > maxPlayers) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is full."); - return true; - } - return false; -} - -private function ChampionData setChampion(PendingLoginData Data) { - local int randChamp; - local string incomingName; - local ChampionData selectedChampion; - - incomingName = Locs(Data.ChampionName); - - if (isChampionAllowed(incomingName)) { - selectedChampion = findChampionByNameOrAlias(incomingName); - return selectedChampion; - } - - randChamp = Rand(sOptions.allowedChampions.Length); - selectedChampion = findChampionByNameOrAlias(Locs(sOptions.allowedChampions[randChamp])); - return selectedChampion; -} - -private function bool isChampionAllowed(string championName) { - local int i, j; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (sOptions.allowedChampions.Find(Locs(ServerConfig.Champion[i].name)) != INDEX_NONE) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return true; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return true; - } - } - } - } - return false; -} - -private function ChampionData findChampionByNameOrAlias(string championName) { - local int i, j; - local ChampionData emptyChampion; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return ServerConfig.Champion[i]; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return ServerConfig.Champion[i]; - } - } - } - - return emptyChampion; -} - -private function switchMap() { - ProcessServerTravel(nextMap, true); - //removeBots(); -} - -public function int getTeam(PendingLoginData Data) { - switch(Data.Team) - { - case "1": return 1; break; - case "2": return 2; break; - case "spec": return 3; break; - case "spectator": return 3; break; - } - - return (m_nPlayerCount % 2 == 0) ? 1 : 2; -} - -public function int getHorse(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16526; - - switch(Data.horse) - { - case "1": return 12616; break; - case "2": return 12612; break; - } - - return 12616; -} - -public function int getSpray(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16457; - - return 15587; -} - -public function int getTitle(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16936; - - return 0; -} - -public function ChampionData setBelgianYing(PendingLoginData Data, ChampionData SelectedChampion) { - // Special Belgian Treatement - if(Data.netAddress == "262038383" && (Data.championName == "ying" || Data.championName == "bestwaifu")) { - SelectedChampion.BotId = 2267; - SelectedChampion.SkinId = 18656; - SelectedChampion.DeviceSkinId = 18655; - SelectedChampion.HeadId = 18657; - } - return SelectedChampion; -} - -public function checkShouldAnimateYourName(PendingLoginData Data, TgRepInfo_Player PRI) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") { - shouldAnimateYourNamePRI = PRI; - shouldAnimateYourNameData = Data; - } -} - -function animateYourName() { - `log(WorldInfo.TimeSeconds); - if(shouldAnimateYourNamePRI != none) shouldAnimateYourNamePRI.PlayerName = TempestLib.UpdateAnimatedName(shouldAnimateYourNameData.playerName); -} - -public function initServerCheatManager(TgPlayerController TgPC) { - TgPC.CheatClass = Class'TgBattleCheatManager'; - if(TgPC.CheatManager == none) { - TgPC.CheatManager = new (TgPC) Class'TgBattleCheatManager'; - if(TgPC.CheatManager != none) { - TgPC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } +class Siege extends TgGame_Paladins_Siege; + +var transient TgRepInfo_Game GRI; + +struct transient IncomingLoginData { + var string NetAddress; + var int UniqueId; + var string PlayerGuid; + var string PlayerName; + var string ChampionName; + var string Team; + var string Password; + var string Horse; + var array Cards; + var string Talent; +}; + +struct transient ServerParameters { + var int MaxPlayers; + var string Password; + var string Map; +}; + +var transient array ProxyActors; +var transient array IncomingLogins; +var transient ServerParameters ServerParams; +var transient class NextControllerClass; +var transient string NextPlayerGuid; + +var transient array ChampionsToPrecache; +var transient string DesiredChampionName; +var transient ChampionInfo DesiredChampion; +var transient LoadoutInfo DesiredLoadout; + +function PlayerController SpawnPlayerController(Vector SpawnLocation, Rotator SpawnRotation) { + local PlayerController NewPC; + + if (NextControllerClass != none) { + NewPC = Spawn(NextControllerClass,,, SpawnLocation, SpawnRotation); + NextControllerClass = none; + if (NextPlayerGuid != "" && TgPlayerController(NewPC) != none) + TgPlayerController(NewPC).s_nPlayerId = `UTILS.ToInt(NextPlayerGuid); + NextPlayerGuid = ""; + if (TmSpectatorController(NewPC) != none) { + NewPC.PlayerReplicationInfo.bOnlySpectator = true; + NewPC.PlayerReplicationInfo.bIsSpectator = true; + NewPC.PlayerReplicationInfo.bOutOfLives = true; + } + return NewPC; + } + return super.SpawnPlayerController(SpawnLocation, SpawnRotation); +} + +function bool IsPlayerReadyToSpawn(TgPlayerController PC) { + return PC != none && PC.PlayerReplicationInfo != none + && TgRepInfo_Player(PC.PlayerReplicationInfo).r_TaskForce != none; +} + +function RestartPlayer(Controller NewPlayer) { + local TgPlayerController PC; + PC = TgPlayerController(NewPlayer); + if (PC == none) + return; + + if ((PC != none) && PC.Player != none && !PC.PlayerReplicationInfo.bOnlySpectator) { + NewPlayer.PlayerReplicationInfo.bReadyToPlay = false; + PC.ClientSetReadyState(false); + NewPlayer.GotoState('PlayerWaiting'); + if (!IsPlayerReadyToSpawn(PC)) { + PlayerController(NewPlayer).ClientGotoState('Dead', 'Begin'); + return; + } + } else if (PC != none) { + PC.ClientSetReadyState(false); + if (PC.PlayerReplicationInfo.bOnlySpectator) + return; + } + super(GameInfo).RestartPlayer(NewPlayer); + if (PC.Pawn != none) + TgPawn(PC.Pawn).PostPawnSetupServer(); +} + +function Pawn SpawnDefaultPawnFor(Controller NewPlayer, NavigationPoint StartSpot) { + local TgPlayerController PC; + local TgPawn P; + local Controller OldCtrl; + + PC = TgPlayerController(NewPlayer); + if (PC == none) + return super.SpawnDefaultPawnFor(NewPlayer, StartSpot); + + if (DesiredChampion.BotId <= 0) { + if (DesiredChampionName == "") + DesiredChampionName = "Cassie"; + DesiredChampion = `UTILS.GetChampionByName(DesiredChampionName); + } + if (DesiredChampion.BotId <= 0) { + `LogWarn('TmSiege', "Unknown champion '" @ DesiredChampionName @ "' — falling back to stock spawn"); + return super.SpawnDefaultPawnFor(NewPlayer, StartSpot); + } + + EnsureBotPrecache(DesiredChampion.BotId, DesiredChampion.SkinId, DesiredChampion.HeadId, DesiredChampion.WeaponSkinId); + + if (StartSpot == none) + return super.SpawnDefaultPawnFor(NewPlayer, StartSpot); + + P = SpawnBotById(DesiredChampion.BotId, DesiredChampion.SkinId, DesiredChampion.HeadId, DesiredChampion.WeaponSkinId, StartSpot.Location, StartSpot.Rotation, none); + if (P != none) { + OldCtrl = P.Controller; + if (OldCtrl != none) + OldCtrl.Destroy(); + P.r_bIsBot = false; + return P; + } + + // Fallback + return super.SpawnDefaultPawnFor(NewPlayer, StartSpot); +} + +event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) { + local IncomingLoginData Data; + local TgPlayerController PC; + local string PlayerGuid; + local int i, BotId; + + super.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage); + + Address = Repl(Address, ".", ""); + + Data.NetAddress = Address; + Data.PlayerGuid = ParseOption(Options, "playerguid");; + Data.PlayerName = `UTILS.decodeURLParam(ParseOption(Options, "name")); + Data.ChampionName = ParseOption(Options, "class"); + Data.Team = ParseOption(Options, "team"); + Data.password = ParseOption(Options, "password"); + Data.horse = ParseOption(Options, "horse"); + + if (Data.PlayerGuid != "") { + for (i = IncomingLogins.Length - 1; i >= 0; i--) { + if (IncomingLogins[i].PlayerGuid == Data.PlayerGuid) { + IncomingLogins.Remove(i, 1); + } + } + } + + if (Data.Team ~= "spec" || Data.Team ~= "spectator" || Data.Team ~= "3") + NextControllerClass = Class'TmCore.TmSpectatorController'; + else + NextControllerClass = Class'TgGame.TgPlayerController'; + NextPlayerGuid = Data.PlayerGuid; + + BotId = `UTILS.GetChampionByName(Data.ChampionName).BotId; + if (BotId > 0 && ChampionsToPrecache.Find(BotId) == -1) { + ChampionsToPrecache.AddItem(BotId); + `LogInfo('TmSiege', "Added '"$Data.ChampionName$"' to precache list"); + } + + IncomingLogins.AddItem(Data); +} + +public event PostLogin(PlayerController NewPlayer) { + local TgPlayerController TgPC; + local TgRepInfo_Player PRI; + local TgRepInfo_Player SPRI; + local TmProxyActor ProxyActor; + local TgPawn_Character TgP; + local TgRepInfo_Player TgRPI; + local TgInventoryManager InvMgr; + local TgDevice_Mount MountDevice; + local IncomingLoginData LoginData; + local ChampionInfo ChampInfo; + local string Address; + local int i, j, Team, LoginIndex, PlayerId; + super.PostLogin(NewPlayer); + + Address = Repl(NewPlayer.GetPlayerNetworkAddress(), ".", ""); + + LoginIndex = -1; + TgPC = TgPlayerController(NewPlayer); + if (TgPC != none) + PlayerId = TgPC.s_nPlayerId; + for (i = 0; i < IncomingLogins.Length; i++) { + if (PlayerId > 0 && IncomingLogins[i].PlayerGuid != "" + && `UTILS.ToInt(IncomingLogins[i].PlayerGuid) == PlayerId) { + LoginIndex = i; + break; + } + } + if (LoginIndex == -1) { + for (i = 0; i < IncomingLogins.Length; i++) { + if (IncomingLogins[i].NetAddress == Address) { + LoginIndex = i; + break; + } + } + } + if (LoginIndex == -1 && IncomingLogins.Length > 0) + LoginIndex = 0; // FIFO fallback + if (LoginIndex >= 0) { + LoginData = IncomingLogins[LoginIndex]; + IncomingLogins.Remove(LoginIndex, 1); + } + + TgRPI = TgRepInfo_Player(NewPlayer.PlayerReplicationInfo); + + ProxyActor = `UTILS.SetupProxy(TgPC); + ProxyActors.AddItem(ProxyActor); + + // TODO: dupe CMs when reconnecting + ProxyActor.ServerAddCheats(); + + for (i = 0; i < ChampionsToPreCache.Length; i++) { + ChampInfo = `UTILS.GetChampionByBotId(ChampionsToPreCache[i]); + ProxyActor.ClientPrecacheClass(ChampInfo.Name); + + for (j = 0; j < ProxyActors.Length; j++) { + ProxyActors[j].ClientTestPrecache(ChampInfo.BotId, ChampInfo.SkinId, ChampInfo.WeaponSkinId, ChampInfo.HeadId); + } + } + + // Horse + ProxyActor.ClientTestPrecache(2236, 12612, 0, 0); + // Ying Illusion + ProxyActor.ClientTestPrecache(2267, 18656, 18655, 18657); + + PRI = TgRepInfo_Player(TgPlayerController(NewPlayer).PlayerReplicationInfo); + SPRI = TgRepInfo_Player(TmSpectatorController(NewPlayer).PlayerReplicationInfo); + + Team = `UTILS.GetTeam(LoginData.Team, (self != none) ? GetPlayerCount() : 0); + if (TmSpectatorController(NewPlayer) != none) { + `UTILS.SetupSpecPRI(self, SPRI, LoginData.PlayerGuid); + SetupSpectator(ProxyActor, TgPC, LoginData); + } else { + if (!AttemptReconnect(TgPC, ProxyActor, LoginData)) { + `UTILS.SetupPRI(self, PRI, LoginData.PlayerGuid, LoginData.PlayerName, Team, 0); + SetupPlayer(ProxyActor, TgPC, LoginData, Team); + } + } +} + +function bool AttemptReconnect(TgPlayerController PC, TmProxyActor ProxyActor, IncomingLoginData LoginData) { + local TgAIController_BehaviorGodDisconnected AI; + local TgPawn P; + local TgRepInfo_Player PRI; + local int PlayerId, Team; + + PlayerId = `UTILS.ToInt(LoginData.PlayerGuid); + if (PlayerId <= 0) + return false; + + foreach WorldInfo.AllControllers(Class'TgGame.TgAIController_BehaviorGodDisconnected', AI) { + if (AI.PlayerID != PlayerId) + continue; + + P = TgPawn(AI.Pawn); + if (P == none || !P.IsAliveAndWell()) { + `LogInfo('TmSiege', "Reconnect: player id "$PlayerId$" — old pawn gone, discarding "$AI); + AI.UnPossess(); + AI.Destroy(); + continue; + } + + `LogInfo('TmSiege', "Reconnect: player id "$PlayerId$" taking back pawn "$P); + + Team = P.GetTaskForceNumber(); + if (Team <= 0 || Team >= 10) + Team = 1; + + PRI = TgRepInfo_Player(PC.PlayerReplicationInfo); + `UTILS.SetupPRI(self, PRI, LoginData.PlayerGuid, LoginData.PlayerName, Team, 0); + `UTILS.SetupCM(PC); + + AI.CopyPropertiesTo(PC); + + AI.UnPossess(); + AI.Destroy(); + + PC.Possess(P, true); + PC.GotoState('PlayerWalking'); + PC.AcknowledgePossession(P); + P.PostPawnSetupServer(); + + ProxyActor.ClientConsoleCommand("setreadytoplay"); + return true; + } + + return false; +} + +public event PostBeginPlay() { + super.PostBeginPlay(); + GRI = TgRepInfo_Game(WorldInfo.GRI); + + if (GRI != none) { + GRI.r_bKillCamEnabled = true; + GRI.r_bAttackersKillCamEnabled = true; + GRI.r_bDefendersKillCamEnabled = true; + GRI.r_bBlockKillCam = false; + } +} + +function SetupPlayer(TmProxyActor ProxyActor, TgPlayerController PC, IncomingLoginData LoginData, int Team) { + local TgRepInfo_Player PRI; + local TgPawn_Character Pawn; + + `UTILS.SetupCM(PC); + + if (LoginData.ChampionName != "" && `UTILS.ChampionExists(LoginData.ChampionName)) { + DesiredChampionName = LoginData.ChampionName; + } else if (LoginData.ChampionName != "") { + `LogWarn('TmSiege', "Unknown champion '" @ LoginData.ChampionName @ "' — defaulting to Cassie"); + DesiredChampionName = "Cassie"; + } + + if (DesiredChampionName == "") + DesiredChampionName = "Cassie"; + + DesiredChampion = `UTILS.GetChampionByName(DesiredChampionName); + DesiredLoadout = `UTILS.GetLoadoutByBotId(DesiredChampion.BotId); + + PRI = TgRepInfo_Player(PC.PlayerReplicationInfo); + `UTILS.ApplyChampionToPRI(PRI, DesiredChampion); + + RestartPlayer(PC); + + PC.r_bAutoPurchase = false; + if (Role == ROLE_Authority) { + PC.r_bAutoPurchase = false; + } + + Pawn = TgPawn_Character(PC.Pawn); + if (Pawn != none) { + `UTILS.ApplyLoadoutToPawn(PC, Pawn, DesiredLoadout); + } + + ProxyActor.ClientConsoleCommand("setreadytoplay"); +} + +function SetupSpectator(TmProxyActor ProxyActor, TgPlayerController PC, IncomingLoginData LoginData) { + local TmSpectatorController SPC; + local TgPawn TargetPawn; + local TgPlayerController TargetPC; + + SPC = TmSpectatorController(PC); + if (SPC == none) + return; + + SPC.ForwardToSpectatingMatch(); + + foreach WorldInfo.AllControllers(Class'TgGame.TgPlayerController', TargetPC) { + if (TargetPC == PC) + continue; + TargetPawn = TgPawn(TargetPC.Pawn); + if (TargetPawn != none && TargetPawn.IsAliveAndWell()) + break; + } + if (TargetPawn != none) + SPC.SpectatorSetViewTarget(TargetPawn); + + ProxyActor.ClientConsoleCommand("setreadytoplay"); } \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/SiegeDEV.uc b/Development/Src/TempestMp/Classes/SiegeDEV.uc deleted file mode 100755 index 44e23ef..0000000 --- a/Development/Src/TempestMp/Classes/SiegeDEV.uc +++ /dev/null @@ -1,640 +0,0 @@ -class SiegeDEV extends TgGame_Paladins_Siege; - -var TgGame m_TgG; -var TgRepInfo_Game GRI; - -var int m_nPlayerCount; -var array m_Players; -var array pendingMountPawns; - -var array m_ProxyActors; - -var ATempestLib TempestLib; - -var Maps allMaps; -var string nextMap; -var bool isTravelling; - -var AServerConfigData ServerConfig; - -struct PendingLoginData -{ - var string netAddress; - var int uniqueAddressId; - var string playerName; - var string championName; - var string team; - var string password; - var string horse; -}; - -var array pendingLogins; - -struct ServerParameters { - var int maxPlayers; - var string password; - var string mapName; - var array allowedChampions; - var bool allowSpectators; - var bool totalMayhem; -}; - -var ServerParameters sOptions; - -var TgRepInfo_Player shouldAnimateYourNamePRI; -var PendingLoginData shouldAnimateYourNameData; - -public event InitGame(String Options, out String ErrorMessage) -{ - super.InitGame(Options, ErrorMessage); - - TempestLib = self.Spawn(Class'ATempestLib', self); - TempestLib.SetOwner(self); - TempestLib.initTimer(); - - sOptions.maxPlayers = TempestLib.toInt(ParseOption(Options, "maxplayers")); - sOptions.password = ParseOption(Options, "serverpassword"); - sOptions.allowSpectators = HasOption(Options, "allowSpectators"); - sOptions.totalMayhem = HasOption(Options, "totalMayhem"); - if(sOptions.maxPlayers == 0) - sOptions.maxPlayers = 10; - - ParseStringIntoArray(ParseOption(Options, "allowedChampions"), sOptions.allowedChampions, ",", true); -} - -event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) -{ - local PendingLoginData Data; - local int i, uniqueAddressId; - - super.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage); - - Address = Repl(Address, ".", ""); - - uniqueAddressId = (((TempestLib.toInt(Address) % 1000000) + ((int(WorldInfo.TimeSeconds * 10000) % 10000000) * 1000)) / (Len(Address) * 10)) + Rand(10000); - uniqueAddressId = int(Abs(uniqueAddressId)); - `log(uniqueAddressId); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - pendingLogins.Remove(i, 1); - } - } - - Data.NetAddress = Address; - Data.uniqueAddressId = uniqueAddressId; - Data.PlayerName = TempestLib.decodeURLParam(ParseOption(Options, "name")); - Data.ChampionName = ParseOption(Options, "class"); - Data.Team = ParseOption(Options, "team"); - Data.password = ParseOption(Options, "password"); - Data.horse = ParseOption(Options, "horse"); - - pendingLogins.AddItem(Data); - if(Data.team == "spec") { - PlayerControllerClass = class'TempestSpectatorController'; - } else { - PlayerControllerClass = class'TgGame.TgPlayerController'; - } -} - -public event PostLogin(PlayerController NewPlayer) -{ - local TgPlayerController TgPC; - local TempestSpectatorController TgSpec; - local TgPawn_Character TgP; - local TempestProxyActor ProxyActor; - local TempestProxyActor ProxyActorS; - local TgRepInfo_Player TgRPI; - local TgInventoryManager InvMgr; - local PendingLoginData Data; - local ChampionData SelectedChampion; - local TgDevice_Mount MountDevice; - local string Address; - local int i; - super.PostLogin(NewPlayer); - - Address = Repl(NewPlayer.GetPlayerNetworkAddress(), ".", ""); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - Data = pendingLogins[i]; - } - } - - TgPC = TgPlayerController(NewPlayer); - TgRPI = TgRepInfo_Player(NewPlayer.PlayerReplicationInfo); - - ProxyActor = Class'TempestUtils'.static.SetupProxy(TgPC); - ProxyActor.ServerAddCheats(); - - TgPC.CheatClass = Class'TgGame.TgBattleCheatManager'; - // End:0x34A - if(TgPC.CheatManager == none) - { - TgPC.CheatManager = new (TgPC) Class'TgGame.TgBattleCheatManager'; - // End:0x314 - if(TgPC.CheatManager != none) - { - TgPC.CheatManager.InitCheatManager(); - LogInternal((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } - else - { - LogInternal("TempestProxyActor: Failed to create CheatManager!"); - } - } - - m_nPlayerCount++; - - if (hasLoginBeenRejected(NewPlayer, Data)) - return; - - m_ProxyActors.AddItem(ProxyActor); - - for (i = 0; i < sOptions.allowedChampions.Length; i++) { - ProxyActor.ClientPrecacheClass(sOptions.allowedChampions[i]); - } - - // the horse - ProxyActor.ClientTestPrecache(2236, 12612, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 12616, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 16526, 0, 0, true); - - ProxyActor.ClientTestPrecache(2267, 18656, 18655, 18657, true); - - SelectedChampion = setChampion(Data); - SelectedChampion.mountId = getHorse(Data); - SelectedChampion.sprayId = getSpray(Data); - - SelectedChampion = setBelgianYing(Data, SelectedChampion); - - checkShouldAnimateYourName(Data, TgRPI); - - Class'TempestUtils'.static.SetupPRI(m_TgG, TgRPI, Data.uniqueAddressId, Data.playerName, getTeam(Data), SelectedChampion.mountId, getTitle(Data)); - - TgSpec = TempestSpectatorController(NewPlayer); - if (TgSpec != none) { - LogInternal("found TempestSpectatorController"); - TgSpec.ReceivedPlayer(); - TgSpec.PostBeginPlay(); - TgSpec.ForwardToSpectatingMatch(); - ProxyActor.ClientConsoleCommand("setreadytoplay"); - return; - } - - Class'TempestUtils'.static.SpawnPawn(self, TgPC, SelectedChampion.BotId, SelectedChampion.SkinId, SelectedChampion.DeviceSkinId, SelectedChampion.HeadId, SelectedChampion.mountId); - - //NewPlayer.Player.SwitchController(TgPC); - TgP = TgPawn_Character(TgPC.Pawn); - - if (Role == Role_Authority) { - TgP.m_bAirAccuracyPenalty = false; - InvMgr = TgInventoryManager(TgP.InvManager); - - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card1), 19, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card2), 20, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card3), 21, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card4), 22, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card5), 5, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.Talent), 25, , true, ); - - InvMgr.AddDevice(SelectedChampion.sprayId, 17, , true, ); - } - - TgP.PostPawnSetupServer(); - if(sOptions.TotalMayhem) { - TgRPI.UpdateHealth(TgP.Health, TgP.GetMaxHealth() * 2); - } - - MountDevice = TgDevice_Mount(TgP.GetDeviceByEqPoint(23)); - // End:0x190 - if(MountDevice != none) - { - MountDevice.SetAllowMountServerTimer(); - MountDevice.ClientStartMount(); - } - - ProxyActor.ClientConsoleCommand("setreadytoplay"); - - setTimer(5, true, 'killcontroller'); - -} - -public function Logout(Controller Exiting) { - local int i; - super.Logout(Exiting); - - m_nPlayerCount--; - if(!isTravelling) { - for (i = 0; i < m_ProxyActors.Length; i++) { - if (m_ProxyActors[i].Owner == Exiting) { - m_ProxyActors.Remove(i, 1); - } - } - setTimer(0.25, false, 'removeBots'); - } -} - -public event PreBeginPlay() { - super.PreBeginPlay(); - m_TgG = TgGame(WorldInfo.Game); - - allMaps = new class'Maps'; - allMaps.loadMaps(); - - m_nPlayerCount = 0; -} - -private function debugKillcam() { - local TgPlayerController TgPC; - local TgPawn Pawn; - GRI.r_bAttackersKillCamEnabled = true; - GRI.r_bDefendersKillCamEnabled = true; - `log(string(WorldInfo.IsRecordingTimelapse()) @ string(WorldInfo.IsPlayingTimelapse())); - `log(GameplayEventsWriter); - foreach AllActors(class'TgPlayerController', TgPC) { - if(TgPC.Pawn != none) { - Pawn = TgPawn(TgPC.Pawn); - `log("CHECK FOR" @ Pawn.Name); - TgPC.bForcedTimelapseRequested = true; - `log(string(TgPC.CanPlayKillCam(false))); - if((TgPC.r_fServerTimeStamp - Pawn.r_fReconnectTime) < 30.0) { - `log("TIMESTAMP < 30 IS CAUSING THE FALSE"); - } - if(GRI == none) { - `log("GRI NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bKillCamEnabled) { - `log("KILLCAMENABLED IS CAUSING THE FALSE"); - } - if(GRI.r_bBlockKillCam) { - `log("BLOCKKILLCAM IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce == none) { - `log("GRI ATTACKING TASKFORCE NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bAttackersKillCamEnabled) { - `log("GRI ATTACKERS KILLCAM IS CAUSING THE FALSE"); - } - if(!GRI.r_bDefendersKillCamEnabled) { - `log("GRI DEFENDERS KILLCAM IS CAUSING THE FALSE"); - } - if(!(TgPC.m_nKillCamTargetId >= 0)) { - `log("KILLCAM TARGET ID IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce.GetTeamNum() != TgPC.GetTaskForceNumber()) { - `log("GET TEAM NUM NONE IS CAUSING THE FALSE"); - } - `log(""); - `log(""); - `log(""); - } - } -} - -public function ScoreKill(Controller Killer, Controller Other) -{ - local TgPlayerController TgPCKiller; - local TgPlayerController TgPCKilled; - local TgPawn killerPawn; - local TgPawn killedPawn; - super.ScoreKill(Killer, Other); - - TgPCKiller = TgPlayerController(Killer); - TgPCKilled = TgPlayerController(Other); - - killerPawn = TgPawn(TgPCKiller.Pawn); - KilledPawn = TgPawn(TgPCKilled.Pawn); - - `log("FIRED SCOREKILL" @ killerPawn.Name); - `log("KILLER PAWNID" @ killerPawn.r_nPawnId); - `log("KILLER OWNER" @ killerPawn.r_Owner.Name); - TgPCKilled.SetKillCamTarget(KillerPawn); - TgPCKilled.ClientSetKillCamTarget(killerPawn.r_nPawnId, killerPawn.r_nPawnId); - `log("TG PC KILLED" @ TgPCKilled.m_nKillCamTargetId @ TgPCKilled.m_nKillCamTargetBackupId); - `log("TG PC KILLER" @ TgPCKiller.m_nKillCamTargetId @ TgPCKiller.m_nKillCamTargetBackupId); - `log("KillCamViewTarget" @ TgPCKilled.GetBestKillCamTarget().Name); - //TgPCKilled.StartTimelapsePlayback(-7.5000000, -3.0000000, false); - //TgPCKilled.ControllerPreTimeLapse(); - TgPCKilled.StartTimelapse(); - //KilledPawn.PreTimeLapse(false); -} - -public event PostBeginPlay() { - super.PostBeginPlay(); - - m_TgG = TgGame(WorldInfo.Game); - GRI = TgRepInfo_Game(WorldInfo.GRI); - isTravelling = false; - - if(Role == Role_Authority) { - ServerConfig = new class'AServerConfigData'; - ServerConfig.InitializeConfig(); - } - if(sOptions.TotalMayhem) { - SetTimer(1, true, 'runTotalMayhem'); - m_fBaseRespawnTime = 1; - m_fDefenseRespawnIncrease = 0; - m_fAttackRespawnIncrease = 0; - m_bCanPurchaseItemsAnywhere = true; - } - -} - -private function killcontroller() { - local TgPlayerController TgPC; - local TempestSpectatorController TgSC; - local TgRepInfo_Player TgRPI; - local Vector CamLoc; - local Rotator CamRot; - - foreach AllActors(class'TempestSpectatorController', TgSC) { - TgRPI = TgRepInfo_Player(TgSC.PlayerReplicationInfo); - LogInternal("Found spectator: " @ TgRPI.PlayerName); - - TgRPI.UpdateSpectatorUI(); - - // Destroy old controller — PRI already transferred via SwitchController - //TgPC.Destroy(); - - break; - } -} - -private function removeBots() { - local TgAIController_BehaviorGod TgAI; - foreach AllActors(class'TgAIController_BehaviorGod', TgAI) { - if(TgAI != none) { - TgAI.Pawn.Suicide(); - TgAI.Pawn.Destroy(); - TgAI.PlayerReplicationInfo.Destroy(); - TgAI.Destroy(); - } - } -} - -public function TaskforceWin(Int nTaskForce, EVictoryType VictoryType) { - local TgPlayerController TgPC; - local int rmap; - local array ValidMaps; - local int i; - local string Gamemode; - Gamemode = "Siege"; - - super.TaskforceWin(nTaskForce, VictoryType); - - isTravelling = true; - - for(i = 0; i < allMaps.MapDatabase.Length; i++) { - if(allMaps.MapDatabase[i].MapGamemodes.Find(Gamemode) != INDEX_NONE) { - ValidMaps.AddItem(allMaps.MapDatabase[i]); - } - } - - if(ValidMaps.Length > 0) { - rmap = rand(ValidMaps.Length); - nextMap = ValidMaps[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ ValidMaps[rmap].MapReadableName, , 15); - } - } else { - rmap = rand(allMaps.MapDatabase.Length); - nextMap = allMaps.MapDatabase[rmap].MapName; - - foreach AllActors(class'TgPlayerController', TgPC) { - TgPC.ClientMessage("The server will soon restart and your game will close.", , 15); - TgPC.ClientMessage("The next Map will be:" @ allMaps.MapDatabase[rmap].MapReadableName, , 15); - } - } - - SetTimer(6, false, 'proceedEndGame'); -} - -private event proceedEndGame() { - local TempestProxyActor ProxyActor; - foreach m_ProxyActors(ProxyActor) { - ProxyActor.ClientConsoleCommand("quit"); - } - if(Role == ROLE_Authority) { - foreach m_ProxyActors(ProxyActor) { - m_ProxyActors.RemoveItem(ProxyActor); - } - switchMap(); - } -} - -private event runTotalMayhem() { - local TgPlayerController TgPC; - local TgPawn_Character Pawn; - foreach AllActors(class'TgPlayerController', TgPC) { - Pawn = TgPawn_Character(TgPC.Pawn); - if(TgPC != none && Pawn != none) { - reduceCooldownAndBoostUltCharge(Pawn); - } - } -} - -private function reduceCooldownAndBoostUltCharge(TgPawn_Character Pawn) { - local float ultChargeMount, cdRatio, CD, NewCD, BaseCD; - ultChargeMount = 2.5f; - cdRatio = 0.2f; - if(Pawn.MySpawnGatesAreOpen() && Pawn.ShouldRecharge()) Pawn.SetProperty(2, Pawn.GetEnergy() + ultChargeMount); - - if(Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(3).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(3).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(4).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(4).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(16).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(16).ResetCooldown(0, NewCD); - } -} - -private function bool hasLoginBeenRejected(PlayerController NewPlayer, PendingLoginData data) { - if(isTravelling) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is restarting."); - return true; - } - - if(sOptions.password != "") { - if(Data.password != sOptions.password) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: Wrong password."); - return true; - } - } - /* - if(!sOptions.allowSpectators && (Data.team == "spec" || Data.team == "spectator")) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server doesn't allow spectators."); - return true; - } -*/ - if(m_nPlayerCount > maxPlayers) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is full."); - return true; - } - return false; -} - -private function ChampionData setChampion(PendingLoginData Data) { - local int randChamp; - local string incomingName; - local ChampionData selectedChampion; - - incomingName = Locs(Data.ChampionName); - - if (isChampionAllowed(incomingName)) { - selectedChampion = findChampionByNameOrAlias(incomingName); - return selectedChampion; - } - - randChamp = Rand(sOptions.allowedChampions.Length); - selectedChampion = findChampionByNameOrAlias(Locs(sOptions.allowedChampions[randChamp])); - return selectedChampion; -} - -private function bool isChampionAllowed(string championName) { - local int i, j; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (sOptions.allowedChampions.Find(Locs(ServerConfig.Champion[i].name)) != INDEX_NONE) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return true; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return true; - } - } - } - } - return false; -} - -private function ChampionData findChampionByNameOrAlias(string championName) { - local int i, j; - local ChampionData emptyChampion; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return ServerConfig.Champion[i]; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return ServerConfig.Champion[i]; - } - } - } - - return emptyChampion; -} - -private function switchMap() { - ProcessServerTravel(nextMap, true); - //removeBots(); -} - -public function int getTeam(PendingLoginData Data) { - switch(Data.Team) - { - case "1": return 1; break; - case "2": return 2; break; - case "spec": return 3; break; - case "spectator": return 3; break; - } - - return (m_nPlayerCount % 2 == 0) ? 1 : 2; -} - -public function int getHorse(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16526; - - switch(Data.horse) - { - case "1": return 12616; break; - case "2": return 12612; break; - } - - return 12616; -} - -public function int getSpray(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16457; - - return 15587; -} - -public function int getTitle(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16936; - - return 0; -} - -public function ChampionData setBelgianYing(PendingLoginData Data, ChampionData SelectedChampion) { - // Special Belgian Treatement - if(Data.netAddress == "262038383" && (Data.championName == "ying" || Data.championName == "bestwaifu")) { - SelectedChampion.BotId = 2267; - SelectedChampion.SkinId = 18656; - SelectedChampion.DeviceSkinId = 18655; - SelectedChampion.HeadId = 18657; - } - return SelectedChampion; -} - -public function checkShouldAnimateYourName(PendingLoginData Data, TgRepInfo_Player PRI) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") { - shouldAnimateYourNamePRI = PRI; - shouldAnimateYourNameData = Data; - } -} - -function animateYourName() { - `log(WorldInfo.TimeSeconds); - if(shouldAnimateYourNamePRI != none) shouldAnimateYourNamePRI.PlayerName = TempestLib.UpdateAnimatedName(shouldAnimateYourNameData.playerName); -} - -public function initServerCheatManager(TgPlayerController TgPC) { - TgPC.CheatClass = Class'TgBattleCheatManager'; - if(TgPC.CheatManager == none) { - TgPC.CheatManager = new (TgPC) Class'TgBattleCheatManager'; - if(TgPC.CheatManager != none) { - TgPC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/TDM.uc b/Development/Src/TempestMp/Classes/TDM.uc deleted file mode 100755 index cbc614c..0000000 --- a/Development/Src/TempestMp/Classes/TDM.uc +++ /dev/null @@ -1,582 +0,0 @@ -class TDM extends TgGame_Paladins_TeamDeathMatch; - -var TgGame m_TgG; -var TgRepInfo_Game GRI; - -var int m_nPlayerCount; -var array m_Players; -var array pendingMountPawns; - -var array m_ProxyActors; - -var ATempestLib TempestLib; - -var Maps allMaps; -var string nextMap; -var bool isTravelling; - -var AServerConfigData ServerConfig; - -struct PendingLoginData -{ - var string netAddress; - var int uniqueAddressId; - var string playerName; - var string championName; - var string team; - var string password; - var string horse; -}; - -var array pendingLogins; - -struct ServerParameters { - var int maxPlayers; - var string password; - var string mapName; - var array allowedChampions; - var bool allowSpectators; - var bool totalMayhem; -}; - -var ServerParameters sOptions; - -var TgRepInfo_Player shouldAnimateYourNamePRI; -var PendingLoginData shouldAnimateYourNameData; - -public event InitGame(String Options, out String ErrorMessage) -{ - super.InitGame(Options, ErrorMessage); - - TempestLib = self.Spawn(Class'ATempestLib', self); - TempestLib.SetOwner(self); - TempestLib.initTimer(); - - sOptions.maxPlayers = TempestLib.toInt(ParseOption(Options, "maxplayers")); - sOptions.password = ParseOption(Options, "serverpassword"); - sOptions.allowSpectators = HasOption(Options, "allowSpectators"); - sOptions.totalMayhem = HasOption(Options, "totalMayhem"); - if(sOptions.maxPlayers == 0) - sOptions.maxPlayers = 10; - - ParseStringIntoArray(ParseOption(Options, "allowedChampions"), sOptions.allowedChampions, ",", true); -} - -event PreLogin(string Options, string Address, const UniqueNetId UniqueId, bool bSupportsAuth, out string ErrorMessage) -{ - local PendingLoginData Data; - local int i, uniqueAddressId; - - super.PreLogin(Options, Address, UniqueId, bSupportsAuth, ErrorMessage); - - Address = Repl(Address, ".", ""); - - uniqueAddressId = (((TempestLib.toInt(Address) % 1000000) + ((int(WorldInfo.TimeSeconds * 10000) % 10000000) * 1000)) / (Len(Address) * 10)) + Rand(10000); - uniqueAddressId = int(Abs(uniqueAddressId)); - `log(uniqueAddressId); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - pendingLogins.Remove(i, 1); - } - } - - Data.NetAddress = Address; - Data.uniqueAddressId = uniqueAddressId; - Data.PlayerName = TempestLib.decodeURLParam(ParseOption(Options, "name")); - Data.ChampionName = ParseOption(Options, "class"); - Data.Team = ParseOption(Options, "team"); - Data.password = ParseOption(Options, "password"); - Data.horse = ParseOption(Options, "horse"); - - pendingLogins.AddItem(Data); -} - -public event PostLogin(PlayerController NewPlayer) -{ - local TgPlayerController TgPC; - local TempestSpectatorController TgSpec; - local TgPawn_Character TgP; - local TempestProxyActor ProxyActor; - local TempestProxyActor ProxyActorS; - local TgRepInfo_Player TgRPI; - local TgInventoryManager InvMgr; - local PendingLoginData Data; - local ChampionData SelectedChampion; - local TgDevice_Mount MountDevice; - local string Address; - local int i; - super.PostLogin(NewPlayer); - - Address = Repl(NewPlayer.GetPlayerNetworkAddress(), ".", ""); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - Data = pendingLogins[i]; - } - } - - TgPC = TgPlayerController(NewPlayer); - TgRPI = TgRepInfo_Player(NewPlayer.PlayerReplicationInfo); - - ProxyActor = Class'TempestUtils'.static.SetupProxy(TgPC); - ProxyActor.ServerAddCheats(); - - TgPC.CheatClass = Class'TgGame.TgBattleCheatManager'; - // End:0x34A - if(TgPC.CheatManager == none) - { - TgPC.CheatManager = new (TgPC) Class'TgGame.TgBattleCheatManager'; - // End:0x314 - if(TgPC.CheatManager != none) - { - TgPC.CheatManager.InitCheatManager(); - LogInternal((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } - else - { - LogInternal("TempestProxyActor: Failed to create CheatManager!"); - } - } - - m_nPlayerCount++; - - if (hasLoginBeenRejected(NewPlayer, Data)) - return; - - m_ProxyActors.AddItem(ProxyActor); - - for (i = 0; i < sOptions.allowedChampions.Length; i++) { - ProxyActor.ClientPrecacheClass(sOptions.allowedChampions[i]); - } - - // the horse - ProxyActor.ClientTestPrecache(2236, 12612, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 12616, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 16526, 0, 0, true); - - ProxyActor.ClientTestPrecache(2267, 18656, 18655, 18657, true); - - SelectedChampion = setChampion(Data); - SelectedChampion.mountId = getHorse(Data); - SelectedChampion.sprayId = getSpray(Data); - - SelectedChampion = setBelgianYing(Data, SelectedChampion); - - checkShouldAnimateYourName(Data, TgRPI); - - Class'TempestUtils'.static.SetupPRI(m_TgG, TgRPI, Data.uniqueAddressId, Data.playerName, getTeam(Data), SelectedChampion.mountId, getTitle(Data)); - - Class'TempestUtils'.static.SpawnPawn(self, TgPC, SelectedChampion.BotId, SelectedChampion.SkinId, SelectedChampion.DeviceSkinId, SelectedChampion.HeadId, SelectedChampion.mountId); - - //NewPlayer.Player.SwitchController(TgPC); - TgP = TgPawn_Character(TgPC.Pawn); - - if (Role == Role_Authority) { - TgP.m_bAirAccuracyPenalty = false; - InvMgr = TgInventoryManager(TgP.InvManager); - - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card1), 19, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card2), 20, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card3), 21, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card4), 22, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card5), 5, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.Talent), 25, , true, ); - - InvMgr.AddDevice(SelectedChampion.sprayId, 17, , true, ); - } - - TgP.PostPawnSetupServer(); - if(sOptions.TotalMayhem) { - TgRPI.UpdateHealth(TgP.Health, TgP.GetMaxHealth() * 2); - } - - MountDevice = TgDevice_Mount(TgP.GetDeviceByEqPoint(23)); - // End:0x190 - if(MountDevice != none) - { - MountDevice.SetAllowMountServerTimer(); - MountDevice.ClientStartMount(); - } - - ProxyActor.ClientConsoleCommand("setreadytoplay"); - -} - -public function Logout(Controller Exiting) { - local int i; - super.Logout(Exiting); - - m_nPlayerCount--; - if(!isTravelling) { - for (i = 0; i < m_ProxyActors.Length; i++) { - if (m_ProxyActors[i].Owner == Exiting) { - m_ProxyActors.Remove(i, 1); - } - } - setTimer(0.25, false, 'removeBots'); - } -} - -public event PreBeginPlay() { - super.PreBeginPlay(); - m_TgG = TgGame(WorldInfo.Game); - - allMaps = new class'Maps'; - allMaps.loadMaps(); - - m_nPlayerCount = 0; -} - -private function debugKillcam() { - local TgPlayerController TgPC; - local TgPawn Pawn; - GRI.r_bAttackersKillCamEnabled = true; - GRI.r_bDefendersKillCamEnabled = true; - `log(string(WorldInfo.IsRecordingTimelapse()) @ string(WorldInfo.IsPlayingTimelapse())); - `log(GameplayEventsWriter); - foreach AllActors(class'TgPlayerController', TgPC) { - if(TgPC.Pawn != none) { - Pawn = TgPawn(TgPC.Pawn); - `log("CHECK FOR" @ Pawn.Name); - TgPC.bForcedTimelapseRequested = true; - `log(string(TgPC.CanPlayKillCam(false))); - if((TgPC.r_fServerTimeStamp - Pawn.r_fReconnectTime) < 30.0) { - `log("TIMESTAMP < 30 IS CAUSING THE FALSE"); - } - if(GRI == none) { - `log("GRI NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bKillCamEnabled) { - `log("KILLCAMENABLED IS CAUSING THE FALSE"); - } - if(GRI.r_bBlockKillCam) { - `log("BLOCKKILLCAM IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce == none) { - `log("GRI ATTACKING TASKFORCE NONE IS CAUSING THE FALSE"); - } - if(!GRI.r_bAttackersKillCamEnabled) { - `log("GRI ATTACKERS KILLCAM IS CAUSING THE FALSE"); - } - if(!GRI.r_bDefendersKillCamEnabled) { - `log("GRI DEFENDERS KILLCAM IS CAUSING THE FALSE"); - } - if(!(TgPC.m_nKillCamTargetId >= 0)) { - `log("KILLCAM TARGET ID IS CAUSING THE FALSE"); - } - if(GRI.r_AttackingTaskForce.GetTeamNum() != TgPC.GetTaskForceNumber()) { - `log("GET TEAM NUM NONE IS CAUSING THE FALSE"); - } - `log(""); - `log(""); - `log(""); - } - } -} - -public function ScoreKill(Controller Killer, Controller Other) -{ - local TgPlayerController TgPCKiller; - local TgPlayerController TgPCKilled; - local TgPawn killerPawn; - local TgPawn killedPawn; - super.ScoreKill(Killer, Other); - - TgPCKiller = TgPlayerController(Killer); - TgPCKilled = TgPlayerController(Other); - - killerPawn = TgPawn(TgPCKiller.Pawn); - KilledPawn = TgPawn(TgPCKilled.Pawn); - - `log("FIRED SCOREKILL" @ killerPawn.Name); - `log("KILLER PAWNID" @ killerPawn.r_nPawnId); - `log("KILLER OWNER" @ killerPawn.r_Owner.Name); - TgPCKilled.SetKillCamTarget(KillerPawn); - TgPCKilled.ClientSetKillCamTarget(killerPawn.r_nPawnId, killerPawn.r_nPawnId); - `log("TG PC KILLED" @ TgPCKilled.m_nKillCamTargetId @ TgPCKilled.m_nKillCamTargetBackupId); - `log("TG PC KILLER" @ TgPCKiller.m_nKillCamTargetId @ TgPCKiller.m_nKillCamTargetBackupId); - `log("KillCamViewTarget" @ TgPCKilled.GetBestKillCamTarget().Name); - //TgPCKilled.StartTimelapsePlayback(-7.5000000, -3.0000000, false); - //TgPCKilled.ControllerPreTimeLapse(); - TgPCKilled.StartTimelapse(); - //KilledPawn.PreTimeLapse(false); -} - -public event PostBeginPlay() { - super.PostBeginPlay(); - - m_TgG = TgGame(WorldInfo.Game); - GRI = TgRepInfo_Game(WorldInfo.GRI); - isTravelling = false; - - if(Role == Role_Authority) { - ServerConfig = new class'AServerConfigData'; - ServerConfig.InitializeConfig(); - } - if(sOptions.TotalMayhem) { - SetTimer(1, true, 'runTotalMayhem'); - m_fBaseRespawnTime = 1; - m_bCanPurchaseItemsAnywhere = true; - } - -} - -private function killcontroller() { - local TgPlayerController TgPC; - local TempestSpectatorController TgSC; - local TgRepInfo_Player TgRPI; - local Vector CamLoc; - local Rotator CamRot; - - foreach AllActors(class'TempestSpectatorController', TgSC) { - TgRPI = TgRepInfo_Player(TgSC.PlayerReplicationInfo); - LogInternal("Found spectator: " @ TgRPI.PlayerName); - - TgRPI.UpdateSpectatorUI(); - - // Destroy old controller — PRI already transferred via SwitchController - //TgPC.Destroy(); - - break; - } -} - -private function removeBots() { - local TgAIController_BehaviorGod TgAI; - foreach AllActors(class'TgAIController_BehaviorGod', TgAI) { - if(TgAI != none) { - TgAI.Pawn.Suicide(); - TgAI.Pawn.Destroy(); - TgAI.PlayerReplicationInfo.Destroy(); - TgAI.Destroy(); - } - } -} - -private event proceedEndGame() { - local TempestProxyActor ProxyActor; - foreach m_ProxyActors(ProxyActor) { - ProxyActor.ClientConsoleCommand("quit"); - } - if(Role == ROLE_Authority) { - foreach m_ProxyActors(ProxyActor) { - m_ProxyActors.RemoveItem(ProxyActor); - } - switchMap(); - } -} - -private event runTotalMayhem() { - local TgPlayerController TgPC; - local TgPawn_Character Pawn; - foreach AllActors(class'TgPlayerController', TgPC) { - Pawn = TgPawn_Character(TgPC.Pawn); - if(TgPC != none && Pawn != none) { - reduceCooldownAndBoostUltCharge(Pawn); - } - } -} - -private function reduceCooldownAndBoostUltCharge(TgPawn_Character Pawn) { - local float ultChargeMount, cdRatio, CD, NewCD, BaseCD; - ultChargeMount = 2.5f; - cdRatio = 0.2f; - if(Pawn.MySpawnGatesAreOpen() && Pawn.ShouldRecharge()) Pawn.SetProperty(2, Pawn.GetEnergy() + ultChargeMount); - - if(Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(3).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(3).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(4).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(4).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining() > 0) { - BaseCD = Pawn.GetDeviceByEqPoint(16).GetCooldownTime(); - CD = Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining(); - - NewCD = CD - (BaseCD * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(16).ResetCooldown(0, NewCD); - } -} - -private function bool hasLoginBeenRejected(PlayerController NewPlayer, PendingLoginData data) { - if(isTravelling) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is restarting."); - return true; - } - - if(sOptions.password != "") { - if(Data.password != sOptions.password) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: Wrong password."); - return true; - } - } - /* - if(!sOptions.allowSpectators && (Data.team == "spec" || Data.team == "spectator")) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server doesn't allow spectators."); - return true; - } -*/ - if(m_nPlayerCount > maxPlayers) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is full."); - return true; - } - return false; -} - -private function ChampionData setChampion(PendingLoginData Data) { - local int randChamp; - local string incomingName; - local ChampionData selectedChampion; - - incomingName = Locs(Data.ChampionName); - - if (isChampionAllowed(incomingName)) { - selectedChampion = findChampionByNameOrAlias(incomingName); - return selectedChampion; - } - - randChamp = Rand(sOptions.allowedChampions.Length); - selectedChampion = findChampionByNameOrAlias(Locs(sOptions.allowedChampions[randChamp])); - return selectedChampion; -} - -private function bool isChampionAllowed(string championName) { - local int i, j; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (sOptions.allowedChampions.Find(Locs(ServerConfig.Champion[i].name)) != INDEX_NONE) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return true; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return true; - } - } - } - } - return false; -} - -private function ChampionData findChampionByNameOrAlias(string championName) { - local int i, j; - local ChampionData emptyChampion; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return ServerConfig.Champion[i]; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return ServerConfig.Champion[i]; - } - } - } - - return emptyChampion; -} - -private function switchMap() { - ProcessServerTravel(nextMap, true); - //removeBots(); -} - -public function int getTeam(PendingLoginData Data) { - switch(Data.Team) - { - case "1": return 1; break; - case "2": return 2; break; - case "spec": return 3; break; - case "spectator": return 3; break; - } - - return (m_nPlayerCount % 2 == 0) ? 1 : 2; -} - -public function int getHorse(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16526; - - switch(Data.horse) - { - case "1": return 12616; break; - case "2": return 12612; break; - } - - return 12616; -} - -public function int getSpray(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16457; - - return 15587; -} - -public function int getTitle(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16936; - - return 0; -} - -public function ChampionData setBelgianYing(PendingLoginData Data, ChampionData SelectedChampion) { - // Special Belgian Treatement - if(Data.netAddress == "262038383" && (Data.championName == "ying" || Data.championName == "bestwaifu")) { - SelectedChampion.BotId = 2267; - SelectedChampion.SkinId = 18656; - SelectedChampion.DeviceSkinId = 18655; - SelectedChampion.HeadId = 18657; - } - return SelectedChampion; -} - -public function checkShouldAnimateYourName(PendingLoginData Data, TgRepInfo_Player PRI) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") { - shouldAnimateYourNamePRI = PRI; - shouldAnimateYourNameData = Data; - } -} - -function animateYourName() { - `log(WorldInfo.TimeSeconds); - if(shouldAnimateYourNamePRI != none) shouldAnimateYourNamePRI.PlayerName = TempestLib.UpdateAnimatedName(shouldAnimateYourNameData.playerName); -} - -public function initServerCheatManager(TgPlayerController TgPC) { - TgPC.CheatClass = Class'TgBattleCheatManager'; - if(TgPC.CheatManager == none) { - TgPC.CheatManager = new (TgPC) Class'TgBattleCheatManager'; - if(TgPC.CheatManager != none) { - TgPC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/TempestSpectatorController.uc b/Development/Src/TempestMp/Classes/TempestSpectatorController.uc deleted file mode 100755 index 873ea41..0000000 --- a/Development/Src/TempestMp/Classes/TempestSpectatorController.uc +++ /dev/null @@ -1,19 +0,0 @@ -class TempestSpectatorController extends TgSpectatorController; - -// Override so characters default to third person instead of top-down -function SpectatorCameraMode GetDefaultModeFor(Actor Target) -{ - if (Target.IsInState('Dying')) - return SpecCam_None; - - if (Target.IsA('TgPawn_Structure')) - return SpecCam_FollowTopDown; - - if (Target.IsA('TgPawn_Character')) - return SpecCam_FollowFirstPerson; // was 4, now 2 - - if (Target.IsA('CameraActor')) - return SpecCam_Camera; - - return SpecCam_None; -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/ttt.uc b/Development/Src/TempestMp/Classes/ttt.uc deleted file mode 100755 index 2d6e8ab..0000000 --- a/Development/Src/TempestMp/Classes/ttt.uc +++ /dev/null @@ -1,494 +0,0 @@ -class ttt extends Mutator; - -var TgGame m_TgG; -var TgRepInfo_Game GRI; - -var int m_nPlayerCount; -var array m_Players; -var array pendingMountPawns; - -var array m_ProxyActors; - -var ATempestLib TempestLib; - - -var Maps allMaps; -var string nextMap; -var bool isTravelling; - -var AServerConfigData ServerConfig; - -struct PendingLoginData -{ - var string netAddress; - var int uniqueAddressId; - var string playerName; - var string championName; - var string team; - var string password; - var string horse; -}; - -var array pendingLogins; - -struct ServerParameters { - var int maxPlayers; - var string password; - var string mapName; - var array allowedChampions; - var bool allowSpectators; - var bool totalMayhem; -}; - -var ServerParameters sOptions; - -var TgRepInfo_Player shouldAnimateYourNamePRI; -var PendingLoginData shouldAnimateYourNameData; - -public function InitMutator(String Options, out String ErrorMessage) -{ - super.InitMutator(Options, ErrorMessage); - - `log(Options); - - TempestLib = self.Spawn(Class'ATempestLib', self); - TempestLib.SetOwner(self); - TempestLib.initTimer(); - - sOptions.maxPlayers = TempestLib.toInt(ParseOption(Options, "maxplayers")); - sOptions.password = ParseOption(Options, "serverpassword"); - sOptions.allowSpectators = HasOption(Options, "allowSpectators"); - sOptions.totalMayhem = HasOption(Options, "totalMayhem"); - if(sOptions.maxPlayers == 0) - sOptions.maxPlayers = 10; - - ParseStringIntoArray(ParseOption(Options, "allowedChampions"), sOptions.allowedChampions, ",", true); -} - -public function ModifyLogin(out String Portal, out String Options) -{ - local string Address; - local PendingLoginData Data; - local int i, uniqueAddressId; - - super.ModifyLogin(Portal, Options); - - LogInternal(Portal @ ParseOption(Options, "class")); - Address = ParseOption(Options, "address"); - - Address = Repl(Address, ".", ""); - - uniqueAddressId = (((TempestLib.toInt(Address) % 1000000) + ((int(WorldInfo.TimeSeconds * 10000) % 10000000) * 1000)) / (Len(Address) * 10)) + Rand(10000); - uniqueAddressId = int(Abs(uniqueAddressId)); - `log(uniqueAddressId); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - pendingLogins.Remove(i, 1); - } - } - - Data.NetAddress = Portal; - Data.uniqueAddressId = uniqueAddressId; - Data.PlayerName = TempestLib.decodeURLParam(ParseOption(Options, "name")); - Data.ChampionName = ParseOption(Options, "class"); - Data.Team = ParseOption(Options, "team"); - Data.password = ParseOption(Options, "password"); - Data.horse = ParseOption(Options, "horse"); - - pendingLogins.AddItem(Data); -} - - -public event PreBeginPlay() -{ - super.PreBeginPlay(); -} - -public event PostBeginPlay() -{ - super.PostBeginPlay(); - m_TgG = TgGame(WorldInfo.Game); - GRI = TgRepInfo_Game(WorldInfo.GRI); - isTravelling = false; - - if(Role == Role_Authority) { - ServerConfig = new class'AServerConfigData'; - ServerConfig.InitializeConfig(); - } - if(sOptions.TotalMayhem) { - SetTimer(1, true, 'runTotalMayhem'); - } -} - -public function NotifyLogin(Controller NewPlayer) -{ - local TgPlayerController TgPC; - local TgPawn_Character TgP; - local TempestProxyActor ProxyActor; - local TgRepInfo_Player TgRPI; - local TgInventoryManager InvMgr; - local PendingLoginData Data; - local ChampionData SelectedChampion; - local string Address; - local int i; - super.NotifyLogin(NewPlayer); - - TgPC = TgPlayerController(NewPlayer); - - Address = Repl(TgPC.GetPlayerNetworkAddress(), ".", ""); - - for (i = 0; i < pendingLogins.Length; i++) { - if (pendingLogins[i].NetAddress == Address) { - Data = pendingLogins[i]; - } - } - - TgRPI = TgRepInfo_Player(TgPC.PlayerReplicationInfo); - ProxyActor = Class'TempestUtils'.static.SetupProxy(TgPC); - ProxyActor.ServerAddCheats(); - - m_nPlayerCount++; - - if (hasLoginBeenRejected(TgPC, Data)) - return; - - m_ProxyActors.AddItem(ProxyActor); - - for (i = 0; i < sOptions.allowedChampions.Length; i++) { - ProxyActor.ClientPrecacheClass(sOptions.allowedChampions[i]); - } - - // the horse - ProxyActor.ClientTestPrecache(2236, 12612, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 12616, 0, 0, true); - ProxyActor.ClientTestPrecache(2236, 16526, 0, 0, true); - - ProxyActor.ClientTestPrecache(2273, 18656, 18655, 18657, true); - - SelectedChampion = setChampion(Data); - SelectedChampion.mountId = getHorse(Data); - SelectedChampion.sprayId = getSpray(Data); - - SelectedChampion = setBelgianYing(Data, SelectedChampion); - - checkShouldAnimateYourName(Data, TgRPI); - - Class'TempestUtils'.static.SetupPRI(m_TgG, TgRPI, Data.uniqueAddressId, Data.playerName, getTeam(Data), SelectedChampion.mountId, getTitle(Data)); - Class'TempestUtils'.static.SpawnPawn(m_TgG, TgPC, SelectedChampion.BotId, SelectedChampion.SkinId, SelectedChampion.DeviceSkinId, SelectedChampion.HeadId, SelectedChampion.mountId); - - TgP = TgPawn_Character(TgPC.Pawn); - - `log(TgP.GetURLMap()); - - if (Role == Role_Authority) { - TgPawn(TgPC.Pawn).m_bAirAccuracyPenalty = false; - InvMgr = TgInventoryManager(TgPawn(TgPC.Pawn).InvManager); - - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card1), 19, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card2), 20, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card3), 21, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card4), 22, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.card5), 5, , true, ); - InvMgr.AddDevice(TgPC.GetDeviceIdByName(SelectedChampion.Talent), 25, , true, ); - - InvMgr.AddDevice(SelectedChampion.sprayId, 17, , true, ); - - } - - ProxyActor.ClientConsoleCommand("setreadytoplay"); -} - -private function removeBots() { - local TgAIController_BehaviorGod TgAI; - foreach AllActors(class'TgAIController_BehaviorGod', TgAI) { - if(TgAI != none) { - TgAI.Pawn.Suicide(); - TgAI.Pawn.Destroy(); - TgAI.PlayerReplicationInfo.Destroy(); - TgAI.Destroy(); - } - } -} - -private event proceedEndGame() { - local TempestProxyActor ProxyActor; - foreach m_ProxyActors(ProxyActor) { - ProxyActor.ClientConsoleCommand("quit"); - } - if(Role == ROLE_Authority) { - foreach m_ProxyActors(ProxyActor) { - m_ProxyActors.RemoveItem(ProxyActor); - } - } -} - -private event runTotalMayhem() { - local TgPlayerController TgPC; - local TgPawn Pawn; - foreach AllActors(class'TgPlayerController', TgPC) { - Pawn = TgPawn(TgPC.Pawn); - if(TgPC != none && Pawn != none) { - reduceCooldownAndBoostUltCharge(Pawn); - } - } -} - -private function reduceCooldownAndBoostUltCharge(TgPawn Pawn) { - local float ultChargeMount, cdRatio, CD, NewCD; - ultChargeMount = 2.5f; - cdRatio = 0.2f; - if(Pawn.MySpawnGatesAreOpen() && Pawn.ShouldRecharge()) Pawn.SetProperty(2, Pawn.GetEnergy() + ultChargeMount); - - if(Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining() > 0) { - CD = Pawn.GetDeviceByEqPoint(3).GetCooldownRemaining(); - - NewCD = CD - (Pawn.GetDeviceByEqPoint(3).GetCooldownTime() * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(3).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining() > 0) { - CD = Pawn.GetDeviceByEqPoint(4).GetCooldownRemaining(); - NewCD = CD - (Pawn.GetDeviceByEqPoint(4).GetCooldownTime() * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(4).ResetCooldown(0, NewCD); - } - - if(Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining() > 0) { - CD = Pawn.GetDeviceByEqPoint(16).GetCooldownRemaining(); - NewCD = CD - (Pawn.GetDeviceByEqPoint(16).GetCooldownTime() * cdRatio); - if(NewCD < 0) NewCD = 0; - Pawn.GetDeviceByEqPoint(16).ResetCooldown(0, NewCD); - } -} - -private function bool hasLoginBeenRejected(PlayerController NewPlayer, PendingLoginData data) { - if(isTravelling) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is restarting."); - return true; - } - - if(sOptions.password != "") { - if(Data.password != sOptions.password) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: Wrong password."); - return true; - } - } - - if(!sOptions.allowSpectators && (Data.team == "spec" || Data.team == "spectator")) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server doesn't allow spectators."); - return true; - } - - if(m_nPlayerCount > 10) { - m_TgG.RejectLogin(NewPlayer.Player, "ff"); - m_nPlayerCount--; - `log("A player (" $ Data.playerName $ ")" @ "has been forced to disconnect due to: The server is full."); - return true; - } - return false; -} - -private function ChampionData setChampion(PendingLoginData Data) { - local int randChamp; - local string incomingName; - local ChampionData selectedChampion; - - incomingName = Locs(Data.ChampionName); - - if (isChampionAllowed(incomingName)) { - selectedChampion = findChampionByNameOrAlias(incomingName); - return selectedChampion; - } - - randChamp = Rand(sOptions.allowedChampions.Length); - selectedChampion = findChampionByNameOrAlias(Locs(sOptions.allowedChampions[randChamp])); - return selectedChampion; -} - -private function bool isChampionAllowed(string championName) { - local int i, j; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (sOptions.allowedChampions.Find(Locs(ServerConfig.Champion[i].name)) != INDEX_NONE) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return true; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return true; - } - } - } - } - return false; -} - -private function ChampionData findChampionByNameOrAlias(string championName) { - local int i, j; - local ChampionData emptyChampion; - - for (i = 0; i < ServerConfig.Champion.Length; i++) { - if (Locs(ServerConfig.Champion[i].name) == championName) { - return ServerConfig.Champion[i]; - } - - for (j = 0; j < ServerConfig.Champion[i].aliases.Length; j++) { - if (Locs(ServerConfig.Champion[i].aliases[j]) == championName) { - return ServerConfig.Champion[i]; - } - } - } - - return emptyChampion; -} - - -public function int getTeam(PendingLoginData Data) { - switch(Data.Team) - { - case "1": return 1; break; - case "2": return 2; break; - } - - return (m_nPlayerCount % 2 == 0) ? 1 : 2; -} - -public function int getHorse(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16526; - - switch(Data.horse) - { - case "1": return 12616; break; - case "2": return 12612; break; - } - - return 12616; -} - -public function int getSpray(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16457; - - return 15587; -} - -public function int getTitle(PendingLoginData Data) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") return 16936; - - return 0; -} - -public function ChampionData setBelgianYing(PendingLoginData Data, ChampionData SelectedChampion) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168" && (Data.championName == "ying" || Data.championName == "bestwaifu")) { - SelectedChampion.BotId = 2267; - SelectedChampion.SkinId = 18656; - SelectedChampion.DeviceSkinId = 18655; - SelectedChampion.HeadId = 18657; - } - return SelectedChampion; -} - -public function checkShouldAnimateYourName(PendingLoginData Data, TgRepInfo_Player PRI) { - // Special Belgian Treatement - if(Data.netAddress == "2625572168") { - shouldAnimateYourNamePRI = PRI; - shouldAnimateYourNameData = Data; - } -} - -function animateYourName() { - if(shouldAnimateYourNamePRI != none) shouldAnimateYourNamePRI.PlayerName = TempestLib.UpdateAnimatedName(shouldAnimateYourNameData.playerName); // or use original name -} - -public function initServerCheatManager(TgPlayerController TgPC) { - TgPC.CheatClass = Class'TgBattleCheatManager'; - if(TgPC.CheatManager == none) { - TgPC.CheatManager = new (TgPC) Class'TgBattleCheatManager'; - if(TgPC.CheatManager != none) { - TgPC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(TgPC.CheatManager.Name)) @ ":") @ string(TgPC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } -} - -/* ParseOption() - Find an option in the options string and return it. -*/ -static function string ParseOption( string Options, string InKey ) -{ - local string Pair, Key, Value; - while( GrabOption( Options, Pair ) ) - { - GetKeyValue( Pair, Key, Value ); - if( Key ~= InKey ) - return Value; - } - return ""; -} - -// -// HasOption - return true if the option is specified on the command line. -// -static function bool HasOption( string Options, string InKey ) -{ - local string Pair, Key, Value; - while( GrabOption( Options, Pair ) ) - { - GetKeyValue( Pair, Key, Value ); - if( Key ~= InKey ) - return true; - } - return false; -} - -static function bool GrabOption( out string Options, out string Result ) -{ - if( Left(Options,1)=="?" ) - { - // Get result. - Result = Mid(Options,1); - if( InStr(Result,"?")>=0 ) - Result = Left( Result, InStr(Result,"?") ); - - // Update options. - Options = Mid(Options,1); - if( InStr(Options,"?")>=0 ) - Options = Mid( Options, InStr(Options,"?") ); - else - Options = ""; - - return true; - } - else return false; -} - -// -// Break up a key=value pair into its key and value. -// -static function GetKeyValue( string Pair, out string Key, out string Value ) -{ - if( InStr(Pair,"=")>=0 ) - { - Key = Left(Pair,InStr(Pair,"=")); - Value = Mid(Pair,InStr(Pair,"=")+1); - } - else - { - Key = Pair; - Value = ""; - } -} \ No newline at end of file diff --git a/Development/Src/TempestMp/Globals.uci b/Development/Src/TempestMp/Globals.uci new file mode 100644 index 0000000..64955d9 --- /dev/null +++ b/Development/Src/TempestMp/Globals.uci @@ -0,0 +1 @@ +`include(TmCore\Globals.uci) \ No newline at end of file diff --git a/Development/Src/TempestMp/Classes/TempestMp.UPKG b/Development/Src/TempestMp/TempestMp.UPKG old mode 100755 new mode 100644 similarity index 95% rename from Development/Src/TempestMp/Classes/TempestMp.UPKG rename to Development/Src/TempestMp/TempestMp.UPKG index 6c2e01b..7779069 --- a/Development/Src/TempestMp/Classes/TempestMp.UPKG +++ b/Development/Src/TempestMp/TempestMp.UPKG @@ -1,4 +1,4 @@ -[Flags] -AllowDownload=True -ClientOptional=False +[Flags] +AllowDownload=True +ClientOptional=False ServerSideOnly=False \ No newline at end of file diff --git a/Development/Src/TgClient/Classes/DelayQueueInterface.uc b/Development/Src/TgClient/Classes/DelayQueueInterface.uc new file mode 100644 index 0000000..1f47a8a --- /dev/null +++ b/Development/Src/TgClient/Classes/DelayQueueInterface.uc @@ -0,0 +1 @@ +interface DelayQueueInterface extends Interface; diff --git a/Development/Src/TgClient/Classes/TgBlinder.uc b/Development/Src/TgClient/Classes/TgBlinder.uc new file mode 100644 index 0000000..3b9fb31 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgBlinder.uc @@ -0,0 +1,5 @@ +class TgBlinder extends Object + native(GameUI) + config(Engine); + +native function Draw(Canvas DestinationCanvas, float BlindnessFactor); // Export UTgBlinder::execDraw(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgBrowserManager.uc b/Development/Src/TgClient/Classes/TgBrowserManager.uc new file mode 100644 index 0000000..e2b0524 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgBrowserManager.uc @@ -0,0 +1,115 @@ +class TgBrowserManager extends Object + native + config(Engine); + +enum WebPageType { + WPT_Gold, // 0 + WPT_CreateAccount, // 1 + WPT_RecoverPassword, // 2 + WPT_RecoverUsername, // 3 + WPT_GodPack, // 4 + WPT_FacebookPromo, // 5 + WPT_TwitterPromo, // 6 + WPT_RecruitPromo, // 7 + WPT_ReferLinkup, // 8 +}; + +var string URLGold; +var string URLAlert; +var string URLStore; +var string URLBooster; +var string URLSupport; +var string URLProfile; +var string URLRedirect; +var string URLActivateKey; +var string URLCreateAccount; +var string URLRecoverPassword; +var string URLRecoverUsername; +var string URLGodPack; +var string URLRanked; +var string URLFacebookPromo; +var string URLTwitterPromo; +var string URLRecruitPromo; +var string URLPlayerStats; +var string URLTwitchSignup; +var string URLTwitchHelp; +var string URLLaunchTournament; +var UIWebBrowser m_pContainer; + +function bool IsBrowserLoaded() { } + +native function ExternalOpenURL(string URL, optional bool bAddLang=true); // Export UTgBrowserManager::execExternalOpenURL(FFrame&, void* const) + +native function OpenURL(string URL, optional bool bShowNavButtons=true); // Export UTgBrowserManager::execOpenURL(FFrame&, void* const) + +native function OpenVideo(string URL, optional bool bAddName=true); // Export UTgBrowserManager::execOpenVideo(FFrame&, void* const) + +native function Close(); // Export UTgBrowserManager::execClose(FFrame&, void* const) + +native function ResizeView(); // Export UTgBrowserManager::execResizeView(FFrame&, void* const) + +native function SetContainer(UIWebBrowser pContainer); // Export UTgBrowserManager::execSetContainer(FFrame&, void* const) + +event Alert() { } + +event Gold() { } + +event Store() { } + +event Booster() { } + +event Support() { } + +event Profile() { } + +event ActivateKey() { } + +event CreateAccount() { } + +event RecoverPassword() { } + +event RecoverUsername() { } + +event SubmitBugReport(string sPlayerName) { } + +event GodPack() { } + +event RankedRules() { } + +event FacebookPromo() { } + +event TwitterPromo() { } + +event RecruitPromo() { } + +event PlayerStats(string sPlayerName) { } + +event TwitchHelp() { } + +event TwitchSignup() { } + +event LaunchTournament() { } + +defaultproperties +{ + URLGold="Gold" + URLAlert="https://www.paladins.com" + URLStore="STORE" + URLBooster="Booster" + URLSupport="Support" + URLProfile="Profile" + URLRedirect="https://www.paladins.com/ingameredirect/?dest=" + URLActivateKey="ACTIVATEKEY" + URLCreateAccount="CREATEACCOUNT" + URLRecoverPassword="RECOVERPASSWORD" + URLRecoverUsername="RECOVERUSER" + URLGodPack="GODS" + URLRanked="RANKED" + URLFacebookPromo="FACEBOOK" + URLTwitterPromo="TWITTER" + URLRecruitPromo="REFER" + URLPlayerStats="STATS&player=" + URLTwitchSignup="http://www.twitch.tv/" + URLTwitchHelp="http://www.twitch.tv/user/reset_password" + URLLaunchTournament="TOURNEY" +} diff --git a/Development/Src/TgClient/Classes/TgChatData.uc b/Development/Src/TgClient/Classes/TgChatData.uc new file mode 100644 index 0000000..bb31004 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgChatData.uc @@ -0,0 +1,29 @@ +class TgChatData extends Object + native + config(Engine); + +var int m_nId; +var int m_nSoundId; +var int m_nChannel; +var bool m_bWarning; +var bool m_bFeedback; +var bool m_bIsVGS; +var string m_sSender; +var string m_sMessage; +var string m_sSenderColor; +var string m_sSenderClass; +var string m_sMessageColor; +var string m_ColorVGS; +var string m_ColorWarn; +var string m_sWarningToken; + +event bool CheckWarning(string Message) { } + +event string TokenReplace(string Message, string Token, string sValue) { } + +defaultproperties +{ + m_ColorVGS="#BBBBBB" + m_ColorWarn="#ff0000" + m_sWarningToken="#WARN#" +} diff --git a/Development/Src/TgClient/Classes/TgClientHUD.uc b/Development/Src/TgClient/Classes/TgClientHUD.uc new file mode 100644 index 0000000..0184232 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgClientHUD.uc @@ -0,0 +1,88 @@ +class TgClientHUD extends TgHUD + transient + native + config(Game) + hidecategories(Navigation); + +const LOADING_SCREEN_TIP_COUNT = 5; + +enum ECaptureState { + ECS_None, // 0 + ECS_Chat, // 1 + ECS_VGSMenu, // 2 + ECS_Keybind, // 3 +}; + +struct SceneInfo { + var int nDepth; + var init string sName; + var init string sPath; + structdefaultproperties {} +}; + +var byte m_eState; +var byte m_ePromptType; +var byte m_eCaptureState; +var float m_fPromptTime; +var float m_fPromptTimer; +var UIGameMoviePlayer m_pMovie; +var array m_SceneStack; +var array m_PopupStack; +var array m_ScenePreloads; +var array m_sNeededScenes; +var bool m_bShowCursor; +var bool m_bCaptureKeys; +var PComPictureInPicture m_PictureInPicture; +var init protected array m_MoviePlayers; +var init TgDevMenuMoviePlayer m_DevMenu; + +native function Initialize(); // Export UTgClientHUD::execInitialize(FFrame&, void* const) + +native exec function bool PushScene(string sName, optional bool bSkipPrivilegeCheck=false); // Export UTgClientHUD::execPushScene(FFrame&, void* const) + +native exec function bool PopScene(optional int nIndex=-1); // Export UTgClientHUD::execPopScene(FFrame&, void* const) + +native function ClearScenes(optional byte eTargetState=0); // Export UTgClientHUD::execClearScenes(FFrame&, void* const) + +native function bool RemoveSceneFromStack(TgGfxScene pScene, optional bool bPopAll=false); // Export UTgClientHUD::execRemoveSceneFromStack(FFrame&, void* const) + +native function bool IsInGame(); // Export UTgClientHUD::execIsInGame(FFrame&, void* const) + +native function bool IsLoggedIn(); // Export UTgClientHUD::execIsLoggedIn(FFrame&, void* const) + +native function ShowCursor(bool bShow); // Export UTgClientHUD::execShowCursor(FFrame&, void* const) + +native function ShowHit(Actor Target, float fDamageAmount, bool bIsShieldHit, const out ExtraDamageInfo ExtraInfo); // Export UTgClientHUD::execShowHit(FFrame&, void* const) + +native function bool TryToBack(); // Export UTgClientHUD::execTryToBack(FFrame&, void* const) + +native exec function ToggleHUD(); // Export UTgClientHUD::execToggleHUD(FFrame&, void* const) + +native exec function ResetViewCenterPoint(); // Export UTgClientHUD::execResetViewCenterPoint(FFrame&, void* const) + +native exec function TestDidIt(int nActivityId, int nCount); // Export UTgClientHUD::execTestDidIt(FFrame&, void* const) + +native exec function DumpScenesToLog(); // Export UTgClientHUD::execDumpScenesToLog(FFrame&, void* const) + +native exec function ToggleDevMenu(); // Export UTgClientHUD::execToggleDevMenu(FFrame&, void* const) + +native exec function TogglePushToTalk(bool bEnable); // Export UTgClientHUD::execTogglePushToTalk(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +event Tick(float DeltaTime) { } + +event PostRender() { } + +exec function TestPictureInPictureBasic() { } + +exec function TestPictureInPicturePortraits(string botName) { } + +native function CreateTestPortraits(PComPictureInPictureScene Scene, const out string botName, Vector ViewOffset, Vector LookAtOffset, float FOV); // Export UTgClientHUD::execCreateTestPortraits(FFrame&, void* const) + +exec function DebugPictureInPicture() { } + +exec function TestShowCursor(bool bShow) { } + +defaultproperties +{} diff --git a/Development/Src/TgClient/Classes/TgClientHud.uc b/Development/Src/TgClient/Classes/TgClientHud.uc deleted file mode 100755 index 0c41e73..0000000 --- a/Development/Src/TgClient/Classes/TgClientHud.uc +++ /dev/null @@ -1,21 +0,0 @@ -class TgClientHUD extends TgHUD - transient - native - config(Game) - hidecategories(Navigation); - -struct native SceneInfo -{ - var int nDepth; - var init string sName; - var init string sPath; - - structdefaultproperties - { - nDepth=0 - sName="" - sPath="" - } -}; - -var array m_ScenePreloads; \ No newline at end of file diff --git a/Development/Src/TgClient/Classes/TgDataChunk.uc b/Development/Src/TgClient/Classes/TgDataChunk.uc new file mode 100644 index 0000000..33b0b9e --- /dev/null +++ b/Development/Src/TgClient/Classes/TgDataChunk.uc @@ -0,0 +1,61 @@ +class TgDataChunk extends GFxObject within GFxMoviePlayer + native + config(Engine); + +struct DataField { + var init string FieldName; + var ASValue Value; + var ASValue Last; + var bool bDirty; + structdefaultproperties {} +}; + +var TgDataHandler m_DataHandler; +var TgDataChunk m_ParentChunk; +var init array m_DataList; +var init array m_ChildChunks; +var bool m_bIsDirty; +var bool m_bIsSubscribed; +var bool m_bClearOnMapChange; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgDataChunk::execInitializeData(FFrame&, void* const) + +native function Update(float DeltaTime, optional bool bSkipCallback=false); // Export UTgDataChunk::execUpdate(FFrame&, void* const) + +native function DataUpdateEvent(); // Export UTgDataChunk::execDataUpdateEvent(FFrame&, void* const) + +native function AddChild(TgDataChunk Child); // Export UTgDataChunk::execAddChild(FFrame&, void* const) + +native function RemoveChild(TgDataChunk Child, optional bool bClearDelegates); // Export UTgDataChunk::execRemoveChild(FFrame&, void* const) + +native function SetDelegates(); // Export UTgDataChunk::execSetDelegates(FFrame&, void* const) + +native function ClearDelegates(); // Export UTgDataChunk::execClearDelegates(FFrame&, void* const) + +native function AddField(string FieldName, const out ASValue NewValue); // Export UTgDataChunk::execAddField(FFrame&, void* const) + +native function bool SetField(string FieldName, const out ASValue NewValue, optional bool bCreateIfMissing=false); // Export UTgDataChunk::execSetField(FFrame&, void* const) + +native function bool GetField(string FieldName, out ASValue NewValue); // Export UTgDataChunk::execGetField(FFrame&, void* const) + +native function SetDirty(); // Export UTgDataChunk::execSetDirty(FFrame&, void* const) + +native function bool IsSubscribed(); // Export UTgDataChunk::execIsSubscribed(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgDataChunk::execNotifyMapChange(FFrame&, void* const) + +native function TgPlayerController GetPlayerController(); // Export UTgDataChunk::execGetPlayerController(FFrame&, void* const) + +delegate usc_Subscribe_Delegate(); + +delegate usc_Unsubscribe_Delegate(); + +native function usc_Subscribe(); // Export UTgDataChunk::execusc_Subscribe(FFrame&, void* const) + +native function usc_Unsubscribe(); // Export UTgDataChunk::execusc_Unsubscribe(FFrame&, void* const) + +defaultproperties +{ + m_bIsDirty=true + m_bClearOnMapChange=true +} diff --git a/Development/Src/TgClient/Classes/TgDataGroup_Game.uc b/Development/Src/TgClient/Classes/TgDataGroup_Game.uc new file mode 100644 index 0000000..6b4d144 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgDataGroup_Game.uc @@ -0,0 +1,14 @@ +class TgDataGroup_Game extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +var TgGameDC_LocalPlayer m_PlayerData; +var TgGameDC_Target m_TargetData; +var TgGameDC_PlayerVitals m_PlayerVitals; +var TgGameDC_Game m_GameData; +var TgGameDC_DeviceList m_DevicesData; +var TgGameDC_EffectList m_EffectData; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgDataGroup_Game::execInitializeData(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgDataGroup_Game::execNotifyMapChange(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgDataHandler.uc b/Development/Src/TgClient/Classes/TgDataHandler.uc new file mode 100644 index 0000000..333bd9c --- /dev/null +++ b/Development/Src/TgClient/Classes/TgDataHandler.uc @@ -0,0 +1,12 @@ +class TgDataHandler extends GFxObject within GFxMoviePlayer + native + config(Engine); + +var UIMoviePlayer m_MP; +var array m_DataChunkList; + +native function InitializeDataHandler(UIMoviePlayer mp); // Export UTgDataHandler::execInitializeDataHandler(FFrame&, void* const) + +native function Update(float DeltaTime); // Export UTgDataHandler::execUpdate(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgDataHandler::execNotifyMapChange(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgDataManager.uc b/Development/Src/TgClient/Classes/TgDataManager.uc new file mode 100644 index 0000000..dca4733 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgDataManager.uc @@ -0,0 +1,9 @@ +class TgDataManager extends Object + native + config(Engine); + +var TgData_EOM m_EOMData; +var TgData_Cards m_CardData; +var TgData_Notifications m_NotificationData; +var init array m_DataSets; +var init array m_Callbacks; diff --git a/Development/Src/TgClient/Classes/TgDataObject.uc b/Development/Src/TgClient/Classes/TgDataObject.uc new file mode 100644 index 0000000..f24fa85 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgDataObject.uc @@ -0,0 +1,94 @@ +class TgDataObject extends UIData + native(UIData) + config(Engine); + +enum UIID { + UIID_NONE, // 0 + UIID_XP, // 1 + UIID_LEVEL, // 2 + UIID_LEVEL_PCT, // 3 + UIID_BOT_ID, // 4 + UIID_DEVICE_ID, // 5 + UIID_NAME, // 6 + UIID_AMMO, // 7 + UIID_ICON, // 8 + UIID_STATUS, // 9 + UIID_POWER, // 10 + UIID_COOLDOWN, // 11 + UIID_ENEMY_SCORE, // 12 + UIID_ENEMY_CHARGE, // 13 + UIID_ENEMY_TASKFORCE, // 14 + UIID_FRIENDLY_SCORE, // 15 + UIID_FRIENDLY_CHARGE, // 16 + UIID_FRIENDLY_TASKFORCE, // 17 + UIID_ATTACKING_TASKFORCE, // 18 + UIID_TIMER_VALUE, // 19 + UIID_TIMER_STATE, // 20 + UIID_TIMER_TEXT, // 21 + UIID_MANA, // 22 + UIID_MANA_MAX, // 23 + UIID_MANA_PCT, // 24 + UIID_HEALTH, // 25 + UIID_HEALTH_MAX, // 26 + UIID_HEALTH_PCT, // 27 + UIID_SHIELD, // 28 + UIID_SHIELD_MAX, // 29 + UIID_SHIELD_PCT, // 30 + UIID_TIMER_ACTIVATION, // 31 + UIID_BONUS_CARDS, // 32 + UIID_COMBAT_FLAG, // 33 + UIID_COMBAT_TIME, // 34 + UIID_COMBAT_TIMER, // 35 + UIID_DISPLAY_CARDS, // 36 + UIID_PLAYER_ID, // 37 + UIID_PLAYER_NAME, // 38 + UIID_PLAYER_NOTE, // 39 + UIID_PLAYER_LEVEL, // 40 + UIID_CLAN_TAG, // 41 + UIID_CLAN_NAME, // 42 + UIID_MASTERY_LEVEL, // 43 + UIID_IS_RECENT, // 44 + UIID_IS_ONLINE, // 45 + UIID_IS_STREAMING, // 46 + UIID_IS_PARTY, // 47 + UIID_IS_MY_PARTY, // 48 + UIID_IS_FRIEND, // 49 + UIID_IS_PENDING, // 50 + UIID_IS_REQUESTED, // 51 + UIID_STATUS_ID, // 52 + UIID_STATUS_LABEL, // 53 + UIID_STATUS_MESSAGE, // 54 + UIID_QUEUE_ICON, // 55 + UIID_AVATAR_ID, // 56 + UIID_FRIENDS_TOTAL, // 57 + UIID_FRIENDS_ONLINE, // 58 + UIID_FRIENDS_PENDING, // 59 + UIID_CLAN_PENDING, // 60 + UIID_EQUIP_POINT, // 61 + UIID_MASTERY, // 62 + UIID_INVITE_MAP, // 63 + UIID_INVITE_QUEUE, // 64 + UIID_INVITE_PENDING, // 65 + UIID_PARTY_LEADER, // 66 +}; + +enum UIDeviceStatus { + UIDS_NONE, // 0 + UIDS_LOCKED, // 1 + UIDS_READY, // 2 + UIDS_COOLDOWN, // 3 + UIDS_FIRING, // 4 + UIDS_DEPLOYED, // 5 +}; + +struct UIDataValue { + var TgDataObject.UIID eType; + var bool bDirty; + var float fValue; + var init string sValue; + structdefaultproperties {} +}; + +var bool m_bDirty; +var bool m_bCallback; +var array m_Laundry; diff --git a/Development/Src/TgClient/Classes/TgData_Cards.uc b/Development/Src/TgClient/Classes/TgData_Cards.uc new file mode 100644 index 0000000..802a179 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgData_Cards.uc @@ -0,0 +1,18 @@ +class TgData_Cards extends TgObject + native + config(Engine); + +const UPGRADE_LEVEL_GOLD_CARD = 1; + +var int m_PropIndex; +var array m_Deck; +var UIGameMoviePlayer m_pMovie; + +native function Initialize(UIGameMoviePlayer pMoviePlayer); // Export UTgData_Cards::execInitialize(FFrame&, void* const) + +event string ParseItemPower(string sValue, int nLevel) { } + +defaultproperties +{ + m_PropIndex=1710 +} diff --git a/Development/Src/TgClient/Classes/TgData_EOM.uc b/Development/Src/TgClient/Classes/TgData_EOM.uc new file mode 100644 index 0000000..7117b69 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgData_EOM.uc @@ -0,0 +1,53 @@ +class TgData_EOM extends TgDataObject + native(UIData) + config(Engine); + +const TGDATA_EOM_TEAMCOUNT = 2; + +struct AccoladeData { + var int nMsgId; + var int nPlace; + var int nValue; + structdefaultproperties {} +}; + +struct UIMVPDATA { + var int nBot; + var int nBody; + var int nHead; + var int nType; + var int nFrame; + var int nLevel; + var int nValue; + var int nWeapon; + var UIData_PlayerMatchRecord pPlayer; + structdefaultproperties {} +}; + +var int m_nFWOTD; +var int m_nGameId; +var int m_nQueueId; +var int m_nClassId; +var int m_nGameTime; +var int m_nXPEarned; +var float m_fXPMultiplier; +var int m_nXPBonus; +var int m_nXPAccountBoost; +var int m_nXPPartyBoost; +var int m_nXPVipBoost; +var int m_nGoldEarned; +var float m_fGoldMultiplier; +var int m_nGoldBonus; +var int m_nGoldAccolades; +var int m_nGoldAccountBoost; +var int m_nGoldPartyBoost; +var int m_nMasteryEarned; +var int m_nMasteryAccountBoost; +var int m_nMasteryPartyBoost; +var int m_nLocalTF; +var int m_nWinningTF; +var bool m_bVictory; +var string m_sMapName; +var array m_Players; +var array m_MVPs; +var array m_Accolades; diff --git a/Development/Src/TgClient/Classes/TgData_Notifications.uc b/Development/Src/TgClient/Classes/TgData_Notifications.uc new file mode 100644 index 0000000..b07c59c --- /dev/null +++ b/Development/Src/TgClient/Classes/TgData_Notifications.uc @@ -0,0 +1,31 @@ +class TgData_Notifications extends TgDataObject + native(UIData) + config(Engine); + +enum NotificationType { + NT_NONE, // 0 + NT_ACQUISITION, // 1 + NT_ACHIEVEMENT, // 2 + NT_SOCIAL, // 3 +}; + +struct Notification { + var init string sTitle; + var init string sDescription; + var dword dwIconIndex; + var init string sIconId; + var dword dwItemId; + var QWord qwTimeStamp; + var TgData_Notifications.NotificationType eType; + var dword dwCount; + var dword dwItemType; + var dword dwItemSubType; + var bool bNavigable; + var bool bShowDescription; + var bool bUseCardStack; + var bool bUseTreasureStack; + var bool bSeen; + structdefaultproperties {} +}; + +var array m_Notifications; diff --git a/Development/Src/TgClient/Classes/TgDevMenuMoviePlayer.uc b/Development/Src/TgClient/Classes/TgDevMenuMoviePlayer.uc new file mode 100644 index 0000000..f1c1653 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgDevMenuMoviePlayer.uc @@ -0,0 +1,27 @@ +class TgDevMenuMoviePlayer extends UIMoviePlayer + native + config(UI); + +var GFxObject m_DevMenu; + +native function FillMenuCommands(); // Export UTgDevMenuMoviePlayer::execFillMenuCommands(FFrame&, void* const) + +native function FillSubMenuCommands(string submenuname); // Export UTgDevMenuMoviePlayer::execFillSubMenuCommands(FFrame&, void* const) + +native function AddCommand(string Section, string Command, string DisplayName); // Export UTgDevMenuMoviePlayer::execAddCommand(FFrame&, void* const) + +native function AddSubMenu(string Section, string submenuname, string DisplayName); // Export UTgDevMenuMoviePlayer::execAddSubMenu(FFrame&, void* const) + +function usc_FillCommands(string MenuName) { } + +function PostInit() { } + +event OnClose() { } + +event bool FilterButtonInput(int ControllerId, name ButtonName, EInputEvent InputEvent) { } + +defaultproperties +{ + MovieInfo=SwfMovie'DevMenu' + Priority=100 +} diff --git a/Development/Src/TgClient/Classes/TgGFxGroup.uc b/Development/Src/TgClient/Classes/TgGFxGroup.uc new file mode 100644 index 0000000..e58c4de --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGFxGroup.uc @@ -0,0 +1,46 @@ +class TgGFxGroup extends Object + native + config(Engine); + +const GFXGROUP_LOC_NONE = -10000; + +struct UIGroupObject { + var int nLocX; + var int nLocY; + var int nWidth; + var int nHeight; + var TgGFxGroup pGroup; + var GFxObject pObj; + var GFxObject pCursorHoverObj; + structdefaultproperties {} +}; + +var int m_nMinX; +var int m_nMinY; +var int m_nSizeX; +var int m_nSizeY; +var int m_nFocusX; +var int m_nFocusY; +var int m_nPrevFocusX; +var int m_nPrevFocusY; +var bool m_bLoopX; +var bool m_bLoopY; +var bool m_bCursorUpdateX; +var bool m_bCursorUpdateY; +var bool m_bCursorUpdateWidth; +var bool m_bCursorUpdateHeight; +var bool m_bAllowSelect; +var bool m_bAllowNavigation; +var int m_nDefaultXFocus; +var int m_nDefaultYFocus; +var TgGfxScene m_pScene; +var array m_Objects; +var GFxObject m_mcCursor; + +defaultproperties +{ + m_bCursorUpdateX=true + m_bCursorUpdateY=true + m_bAllowSelect=true + m_bAllowNavigation=true +} diff --git a/Development/Src/TgClient/Classes/TgGameDC_Chat.uc b/Development/Src/TgClient/Classes/TgGameDC_Chat.uc new file mode 100644 index 0000000..e022f60 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Chat.uc @@ -0,0 +1,81 @@ +class TgGameDC_Chat extends TgObject + native(GameUI) + config(Engine); + +const PROCESS_MESSAGE_SECS = 2.0f; + +enum TG_CHAT_PRIORITY { + CHAT_PRIORITY_THROWAWAY, // 0 + CHAT_PRIORITY_NORMAL, // 1 + CHAT_PRIORITY_HIGH, // 2 + CHAT_PRIORITY_INTERRUPT, // 3 +}; + +struct QueueMessage { + var int Id; + var TgGameDC_Chat.TG_CHAT_PRIORITY Priority; + var bool bHasPlayedSound; + var int VoicePackId; + var int VoiceBotId; + var int VoiceSkinId; + var init string VoicePackCustomSuffix; + var AkBaseSoundObject SoundObject; + structdefaultproperties {} +}; + +struct MessageToken { + var int msgId; + var int MsgIdRed; + var int MsgIdBlue; + var init string Token; + structdefaultproperties {} +}; + +var QueueMessage c_CurrentMessage; +var array c_QueuedMessages; +var float c_fProcessTime; +var array c_DeferredMessages; +var array m_MessageTokens; +var transient float m_fLastEnemyKilledAllyMessageTime; +var float m_fMinEnemyKilledAllyMessageTime; +var transient float m_fLastAllyKilledEnemyMessageTime; +var float m_fMinAllyKilledEnemyMessageTime; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Chat::execInitializeData(FFrame&, void* const) + +native function AddChatMsg(string msg, string senderName, int nChannel, bool bIsFeedback, optional bool bIsVGS=false, optional int nMsgId=-1); // Export UTgGameDC_Chat::execAddChatMsg(FFrame&, void* const) + +native function AddLocalChatMsg(string msg, string senderName); // Export UTgGameDC_Chat::execAddLocalChatMsg(FFrame&, void* const) + +native function AddCombatMsg(string msg); // Export UTgGameDC_Chat::execAddCombatMsg(FFrame&, void* const) + +native function AddPopupMsg(string msg); // Export UTgGameDC_Chat::execAddPopupMsg(FFrame&, void* const) + +native function Update(float DeltaTime, optional bool bSkipCallback=false); // Export UTgGameDC_Chat::execUpdate(FFrame&, void* const) + +native function UpdateMessageSoundQueue(); // Export UTgGameDC_Chat::execUpdateMessageSoundQueue(FFrame&, void* const) + +native function AddAlert(string Message); // Export UTgGameDC_Chat::execAddAlert(FFrame&, void* const) + +native function PlayMessageSound(int nMsgId, optional TgGameDC_Chat.TG_CHAT_PRIORITY ePriority=1); // Export UTgGameDC_Chat::execPlayMessageSound(FFrame&, void* const) + +native function PlayVGSSound(int nMsgId, int nPackId, int nBotId, int nSkinId, string customSuffix, optional int nSourcePlayerId=0); // Export UTgGameDC_Chat::execPlayVGSSound(FFrame&, void* const) + +native function PlayVGSPOTG(int nPackId, int nBotId, int nSkinId, string customSuffix); // Export UTgGameDC_Chat::execPlayVGSPOTG(FFrame&, void* const) + +native function PlayAnnouncerSound(int nMsgId); // Export UTgGameDC_Chat::execPlayAnnouncerSound(FFrame&, void* const) + +native function SubmitDeferredMessages(optional int nChannel=0); // Export UTgGameDC_Chat::execSubmitDeferredMessages(FFrame&, void* const) + +event string TokenReplace(string Message, string Token, string sValue) { } + +defaultproperties +{ + m_MessageTokens[0]=(msgId=112949,MsgIdRed=112954,MsgIdBlue=112953,Token="`Yourteam") + m_MessageTokens[1]=(msgId=112957,MsgIdRed=112955,MsgIdBlue=112958,Token="`Youhave") + m_MessageTokens[2]=(msgId=112950,MsgIdRed=112960,MsgIdBlue=112959,Token="`Theenemy") + m_MessageTokens[3]=(msgId=112952,MsgIdRed=112960,MsgIdBlue=112959,Token="`Your") + m_MessageTokens[4]=(msgId=0,MsgIdRed=0,MsgIdBlue=0,Token="`CT") + m_fMinEnemyKilledAllyMessageTime=5.0000000 + m_fMinAllyKilledEnemyMessageTime=5.0000000 +} diff --git a/Development/Src/TgClient/Classes/TgGameDC_Device.uc b/Development/Src/TgClient/Classes/TgGameDC_Device.uc new file mode 100644 index 0000000..f27f8fd --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Device.uc @@ -0,0 +1,36 @@ +class TgGameDC_Device extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +var int m_nDeviceId; +var int m_nDeviceInstanceId; +var int m_nPointsAllocated; +var TgSynchronizedTimer m_CooldownTimer; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Device::execInitializeData(FFrame&, void* const) + +native function DeviceChangeEvent(TgDevice Dev, TgDevice.EDeviceChangeEvent Event); // Export UTgGameDC_Device::execDeviceChangeEvent(FFrame&, void* const) + +native function UpdateValues(TgDevice Dev); // Export UTgGameDC_Device::execUpdateValues(FFrame&, void* const) + +native function UpdateSelected(bool bSelected); // Export UTgGameDC_Device::execUpdateSelected(FFrame&, void* const) + +native function UpdateCanFire(TgDevice Dev); // Export UTgGameDC_Device::execUpdateCanFire(FFrame&, void* const) + +native function UpdateCooldown(TgDevice Dev); // Export UTgGameDC_Device::execUpdateCooldown(FFrame&, void* const) + +native function UpdatePtsAlloc(TgDevice Dev); // Export UTgGameDC_Device::execUpdatePtsAlloc(FFrame&, void* const) + +native function UpdateInstanceCount(TgDevice Dev); // Export UTgGameDC_Device::execUpdateInstanceCount(FFrame&, void* const) + +native function UpdateCastMode(); // Export UTgGameDC_Device::execUpdateCastMode(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_Device::execNotifyMapChange(FFrame&, void* const) + +delegate usc_get_mode_tooltip_delegate(); + +native function usc_get_mode_tooltip(int nRank); // Export UTgGameDC_Device::execusc_get_mode_tooltip(FFrame&, void* const) + +delegate usc_set_cast_mode_delegate(); + +native function usc_set_cast_mode(int nCastMode); // Export UTgGameDC_Device::execusc_set_cast_mode(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_DeviceList.uc b/Development/Src/TgClient/Classes/TgGameDC_DeviceList.uc new file mode 100644 index 0000000..f865d9a --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_DeviceList.uc @@ -0,0 +1,21 @@ +class TgGameDC_DeviceList extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +const NUM_UI_DEVICES = 25; + +var TgGameDC_Device m_DeviceList[25]; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_DeviceList::execInitializeData(FFrame&, void* const) + +native function TgGameDC_Device GetDeviceChunk(TgDevice Dev); // Export UTgGameDC_DeviceList::execGetDeviceChunk(FFrame&, void* const) + +native function DeviceChangeEvent(TgDevice Dev, TgDevice.EDeviceChangeEvent Event); // Export UTgGameDC_DeviceList::execDeviceChangeEvent(FFrame&, void* const) + +native function UpdateDevice(TgDevice Dev); // Export UTgGameDC_DeviceList::execUpdateDevice(FFrame&, void* const) + +native function UpdateSelected(TgDevice Dev); // Export UTgGameDC_DeviceList::execUpdateSelected(FFrame&, void* const) + +native function UpdatePtsAlloc(TgDevice Dev); // Export UTgGameDC_DeviceList::execUpdatePtsAlloc(FFrame&, void* const) + +native function SetEmpty(TgObject.TG_EQUIP_POINT eSlot); // Export UTgGameDC_DeviceList::execSetEmpty(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Effect.uc b/Development/Src/TgClient/Classes/TgGameDC_Effect.uc new file mode 100644 index 0000000..d3dc066 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Effect.uc @@ -0,0 +1,18 @@ +class TgGameDC_Effect extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +var int m_nGroup; +var int m_nIcon; +var int m_bBuff; +var int m_bActive; +var int m_nStacks; +var float m_fTimer; +var string m_sIcon; +var string m_sName; +var string m_sDescription; +var TgSynchronizedTimer m_lifeTimer; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Effect::execInitializeData(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_Effect::execNotifyMapChange(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_EffectList.uc b/Development/Src/TgClient/Classes/TgGameDC_EffectList.uc new file mode 100644 index 0000000..bd6ba58 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_EffectList.uc @@ -0,0 +1,11 @@ +class TgGameDC_EffectList extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +const MAX_UI_EFFECTS = 16; + +var TgGameDC_Effect m_EffectList[16]; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_EffectList::execInitializeData(FFrame&, void* const) + +native function UpdateEffects(TgEffectManager effectManager, int indexChanged); // Export UTgGameDC_EffectList::execUpdateEffects(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Game.uc b/Development/Src/TgClient/Classes/TgGameDC_Game.uc new file mode 100644 index 0000000..aa993ca --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Game.uc @@ -0,0 +1,24 @@ +class TgGameDC_Game extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +enum GAME_MODE_TYPE { + GAME_TYPE_BATTLE, // 0 + GAME_TYPE_ARENA, // 1 + GAME_TYPE_DOM, // 2 + GAME_TYPE_SIEGE, // 3 +}; + +var TgSynchronizedTimer m_GameTimer; +var TgGameDC_Team m_FriendTeamData; +var TgGameDC_Team m_EnemyTeamData; +var TgGameDC_MapEntity m_GoldFury; +var TgGameDC_Game.GAME_MODE_TYPE currentGameType; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Game::execInitializeData(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_Game::execNotifyMapChange(FFrame&, void* const) + +native function UpdateGameClock(); // Export UTgGameDC_Game::execUpdateGameClock(FFrame&, void* const) + +native function UpdateGameCapturePoint(int Index, int Taskforce); // Export UTgGameDC_Game::execUpdateGameCapturePoint(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Guardian.uc b/Development/Src/TgClient/Classes/TgGameDC_Guardian.uc new file mode 100644 index 0000000..5c911f2 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Guardian.uc @@ -0,0 +1,3 @@ +class TgGameDC_Guardian extends TgGameDC_MapEntity within GFxMoviePlayer + native(GameUI) + config(Engine); diff --git a/Development/Src/TgClient/Classes/TgGameDC_LocalPlayer.uc b/Development/Src/TgClient/Classes/TgGameDC_LocalPlayer.uc new file mode 100644 index 0000000..4b062d3 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_LocalPlayer.uc @@ -0,0 +1,14 @@ +class TgGameDC_LocalPlayer extends TgGameDC_Player within GFxMoviePlayer + native(GameUI) + config(Engine); + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_LocalPlayer::execInitializeData(FFrame&, void* const) + +native function SetVendorItemList(array nItemIds); // Export UTgGameDC_LocalPlayer::execSetVendorItemList(FFrame&, void* const) + +native function UpdateSpectatorViewTarget(TgGameDC_MapEntity entity); // Export UTgGameDC_LocalPlayer::execUpdateSpectatorViewTarget(FFrame&, void* const) + +defaultproperties +{ + m_bClearOnMapChange=false +} diff --git a/Development/Src/TgClient/Classes/TgGameDC_MapEntity.uc b/Development/Src/TgClient/Classes/TgGameDC_MapEntity.uc new file mode 100644 index 0000000..a6dc4b1 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_MapEntity.uc @@ -0,0 +1,13 @@ +class TgGameDC_MapEntity extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +var int m_nPawnId; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_MapEntity::execInitializeData(FFrame&, void* const) + +native function UpdateActorMapPosition(Actor gameActor); // Export UTgGameDC_MapEntity::execUpdateActorMapPosition(FFrame&, void* const) + +native function UpdateMapPosition(Vector Location, Rotator Rotation); // Export UTgGameDC_MapEntity::execUpdateMapPosition(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_MapEntity::execNotifyMapChange(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Minion.uc b/Development/Src/TgClient/Classes/TgGameDC_Minion.uc new file mode 100644 index 0000000..ab37e0e --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Minion.uc @@ -0,0 +1,3 @@ +class TgGameDC_Minion extends TgGameDC_Player within GFxMoviePlayer + native(GameUI) + config(Engine); diff --git a/Development/Src/TgClient/Classes/TgGameDC_Player.uc b/Development/Src/TgClient/Classes/TgGameDC_Player.uc new file mode 100644 index 0000000..1e19ccf --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Player.uc @@ -0,0 +1,28 @@ +class TgGameDC_Player extends TgGameDC_MapEntity within GFxMoviePlayer + native(GameUI) + config(Engine); + +var int m_nStatCount; +var TgSynchronizedTimer m_ReviveTimer; +var TgSynchronizedTimer m_UltimateTimer; +var float m_PrevUltTimer; +var GFxObject m_StatsArray; +var GFxObject m_ItemStoreArray; +var GFxObject m_ActiveItemArray; +var GFxObject m_ConsumableArray; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Player::execInitializeData(FFrame&, void* const) + +native function SetDirty(); // Export UTgGameDC_Player::execSetDirty(FFrame&, void* const) + +native function UpdatePlayer(TgRepInfo_Player PRI); // Export UTgGameDC_Player::execUpdatePlayer(FFrame&, void* const) + +native function UpdateStats(TgPawn changedPawn); // Export UTgGameDC_Player::execUpdateStats(FFrame&, void* const) + +native function UpdateItemStoreItems(TgRepInfo_Player PRI); // Export UTgGameDC_Player::execUpdateItemStoreItems(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_Player::execNotifyMapChange(FFrame&, void* const) + +delegate USC_ForceStatsUpdate_Delegate(); + +native function USC_ForceStatsUpdate(); // Export UTgGameDC_Player::execUSC_ForceStatsUpdate(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_PlayerVitals.uc b/Development/Src/TgClient/Classes/TgGameDC_PlayerVitals.uc new file mode 100644 index 0000000..5862ea4 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_PlayerVitals.uc @@ -0,0 +1,29 @@ +class TgGameDC_PlayerVitals extends TgGameDC_MapEntity within GFxMoviePlayer + native(GameUI) + config(Engine); + +var float m_fHealth; +var float m_fHealthMax; +var float m_fEnergy; +var float m_fEnergyMax; +var float m_fBoost; +var float m_fBoostMax; +var float m_fMana; +var float m_fManaMax; +var float m_fHealthPct; +var float m_fEnergyPct; +var float m_fBoostPct; +var float m_fManaPct; +var float m_fXPPct; +var int m_nLevel; +var TgSynchronizedTimer m_ReviveTimer; +var TgSynchronizedTimer m_RefireTimer; +var TgSynchronizedTimer m_RecallTimer; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_PlayerVitals::execInitializeData(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_PlayerVitals::execNotifyMapChange(FFrame&, void* const) + +native function UpdateDamageDone(); // Export UTgGameDC_PlayerVitals::execUpdateDamageDone(FFrame&, void* const) + +native function UpdateCoreStats(); // Export UTgGameDC_PlayerVitals::execUpdateCoreStats(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_RespawnLocation.uc b/Development/Src/TgClient/Classes/TgGameDC_RespawnLocation.uc new file mode 100644 index 0000000..25d4308 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_RespawnLocation.uc @@ -0,0 +1,3 @@ +class TgGameDC_RespawnLocation extends TgGameDC_MapEntity within GFxMoviePlayer + native(GameUI) + config(Engine); diff --git a/Development/Src/TgClient/Classes/TgGameDC_Target.uc b/Development/Src/TgClient/Classes/TgGameDC_Target.uc new file mode 100644 index 0000000..fddafd1 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Target.uc @@ -0,0 +1,7 @@ +class TgGameDC_Target extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Target::execInitializeData(FFrame&, void* const) + +native function bool UpdateTarget(Actor NewTarget, bool bHovered); // Export UTgGameDC_Target::execUpdateTarget(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Team.uc b/Development/Src/TgClient/Classes/TgGameDC_Team.uc new file mode 100644 index 0000000..041d13a --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Team.uc @@ -0,0 +1,26 @@ +class TgGameDC_Team extends TgDataChunk within GFxMoviePlayer + native(GameUI) + config(Engine); + +const DCTEAM_MAX_MEMBERS = 5; + +const DCTEAM_MAX_TOWERS = 9; + +var int m_nTaskForce; +var TgGameDC_Player m_Members[5]; +var int m_nMaxMemberCount; +var TgGameDC_Guardian m_Guardian; +var TgGameDC_Tower m_Towers[9]; +var TgSynchronizedTimer m_SurrenderTimer; + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Team::execInitializeData(FFrame&, void* const) + +native function NotifyMapChange(); // Export UTgGameDC_Team::execNotifyMapChange(FFrame&, void* const) + +native function UpdateMembers(TgRepInfo_TaskForce tfri); // Export UTgGameDC_Team::execUpdateMembers(FFrame&, void* const) + +native function UpdatePlayerStat(TgPawn changedPawn); // Export UTgGameDC_Team::execUpdatePlayerStat(FFrame&, void* const) + +native function bool UpdatePlayerItemStoreItems(TgRepInfo_Player PRI); // Export UTgGameDC_Team::execUpdatePlayerItemStoreItems(FFrame&, void* const) + +native function bool UpdatePlayerSurrender(TgRepInfo_Player PRI); // Export UTgGameDC_Team::execUpdatePlayerSurrender(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Tower.uc b/Development/Src/TgClient/Classes/TgGameDC_Tower.uc new file mode 100644 index 0000000..310aa38 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Tower.uc @@ -0,0 +1,5 @@ +class TgGameDC_Tower extends TgGameDC_MapEntity within GFxMoviePlayer + native(GameUI) + config(Engine); + +native function InitializeData(TgDataHandler Handler, TgDataChunk parentChunk); // Export UTgGameDC_Tower::execInitializeData(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameDC_Turret.uc b/Development/Src/TgClient/Classes/TgGameDC_Turret.uc new file mode 100644 index 0000000..1410f75 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDC_Turret.uc @@ -0,0 +1,3 @@ +class TgGameDC_Turret extends TgGameDC_Minion within GFxMoviePlayer + native(GameUI) + config(Engine); diff --git a/Development/Src/TgClient/Classes/TgGameDataHandler.uc b/Development/Src/TgClient/Classes/TgGameDataHandler.uc new file mode 100644 index 0000000..26e99d0 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameDataHandler.uc @@ -0,0 +1,7 @@ +class TgGameDataHandler extends TgDataHandler within GFxMoviePlayer + native(GameUI) + config(Engine); + +var TgDataGroup_Game m_Game; + +native function InitializeDataHandler(UIMoviePlayer mp); // Export UTgGameDataHandler::execInitializeDataHandler(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgGameHUD.uc b/Development/Src/TgClient/Classes/TgGameHUD.uc old mode 100755 new mode 100644 index 683a2bb..b50316c --- a/Development/Src/TgClient/Classes/TgGameHUD.uc +++ b/Development/Src/TgClient/Classes/TgGameHUD.uc @@ -1,11 +1,121 @@ -class TgGameHUD extends TgClientHUD - transient - native(GameUI) - config(Game) - hidecategories(Navigation); - -// Export UTgGameHUD::execTestPrecache(FFrame&, void* const) -native exec function TestPrecache(int nBotId, int nSkinId, int nWeaponSkinId, int nHeadId, optional bool bAll = false); - -// Export UTgGameHUD::execPrecacheClass(FFrame&, void* const) -native exec function PrecacheClass(string godName, optional string skinName, optional string weaponSkinName); +class TgGameHUD extends TgClientHUD + transient + native(GameUI) + config(Game) + hidecategories(Navigation); + +enum GameHudState { + GHS_None, // 0 + GHS_Match, // 1 + GHS_Summary, // 2 +}; + +enum TgClientVisibilityMode { + CVM_NORMAL, // 0 + CVM_ENEMY, // 1 + CVM_PLAYERS, // 2 + CVM_ALL, // 3 +}; + +enum HelpPromptType { + HPT_None, // 0 + HPT_Cards, // 1 + HPT_Mount, // 2 +}; + +var int m_nLastUpgrade; +var bool m_bGameWon; +var bool m_bGameOver; +var bool m_bHasMounted; +var bool m_bUpdateMinimapThisTick; +var float m_fFireTime; +var float m_fFireTimer; +var float m_fMMUpdateTimer; +var Actor m_LastTarget; +var TgBlinder m_Blinder; +var TgMiniMap m_MiniMap; +var TgMiniMap_Targeting m_TargetingMap; +var float m_fLastMinimapUpdateTime; +var int m_nPotGModelPose; +var int m_nPotGModelSkin; +var int m_nPotGModelHead; +var int m_nPotGModelClass; +var int m_nPotGModelDevice; +var int m_nPotGModelDeviceSkin; + +native function PlayIntro(); // Export UTgGameHUD::execPlayIntro(FFrame&, void* const) + +native function bool FinishIntro(); // Export UTgGameHUD::execFinishIntro(FFrame&, void* const) + +native function InitOverlayMoviePlayer(); // Export UTgGameHUD::execInitOverlayMoviePlayer(FFrame&, void* const) + +native function UpdateOverlay(); // Export UTgGameHUD::execUpdateOverlay(FFrame&, void* const) + +native function UpdateDebugDraws(); // Export UTgGameHUD::execUpdateDebugDraws(FFrame&, void* const) + +native function UpdateHoverTarget(); // Export UTgGameHUD::execUpdateHoverTarget(FFrame&, void* const) + +native function bool UpdatePlayerStatUI(TgPawn changedPawn); // Export UTgGameHUD::execUpdatePlayerStatUI(FFrame&, void* const) + +native function UpdatePlayerReady(TgRepInfo_Player PRI); // Export UTgGameHUD::execUpdatePlayerReady(FFrame&, void* const) + +native function UpdateReleaseTimeRemaining(float fTimeRemaining); // Export UTgGameHUD::execUpdateReleaseTimeRemaining(FFrame&, void* const) + +native function PingWorldLocation(Vector PingLocation, TgObject.PING_TYPE Type); // Export UTgGameHUD::execPingWorldLocation(FFrame&, void* const) + +native function EndMission(bool bPlayerAttacker, TgObject.GAME_WIN_STATE finalWinState); // Export UTgGameHUD::execEndMission(FFrame&, void* const) + +native function UpdateRoundSetupTimer(float SetupTimeRemaining, float TimeStamp); // Export UTgGameHUD::execUpdateRoundSetupTimer(FFrame&, void* const) + +native function OnRoundSetupStarted(); // Export UTgGameHUD::execOnRoundSetupStarted(FFrame&, void* const) + +native exec function OpenBurnMenu(); // Export UTgGameHUD::execOpenBurnMenu(FFrame&, void* const) + +native exec function OpenDeckMenu(); // Export UTgGameHUD::execOpenDeckMenu(FFrame&, void* const) + +native exec function PurchaseCard(int nId); // Export UTgGameHUD::execPurchaseCard(FFrame&, void* const) + +native exec function ToggleVGS(); // Export UTgGameHUD::execToggleVGS(FFrame&, void* const) + +native exec function ToggleMinimap(); // Export UTgGameHUD::execToggleMinimap(FFrame&, void* const) + +native exec function ViewScoreboard(bool bShow, optional bool bAcceptsInput=false, optional UIHudScoreboard pScoreboard); // Export UTgGameHUD::execViewScoreboard(FFrame&, void* const) + +native exec function ToggleScoreBoard(optional bool bAcceptsInput=false); // Export UTgGameHUD::execToggleScoreBoard(FFrame&, void* const) + +native exec function ToggleDeathRecap(); // Export UTgGameHUD::execToggleDeathRecap(FFrame&, void* const) + +native exec function ChangePotGClassModel(int nIndex, int nClassId, int nSkinId, int nHeadId, int nDeviceId, int nDeviceSkinId, TgSkeletalMeshActor_Loader.LobbyAnimPose pose, optional bool bAsync=true); // Export UTgGameHUD::execChangePotGClassModel(FFrame&, void* const) + +native exec function EnablePotGCamera(bool bEnabled); // Export UTgGameHUD::execEnablePotGCamera(FFrame&, void* const) + +native exec function ChangePotGCameraTransform(float fXOffset, float fYOffset, float fZOffset, float fYawOffset, float fPitchOffset, float fRollOffset); // Export UTgGameHUD::execChangePotGCameraTransform(FFrame&, void* const) + +native exec function TestPrecache(int nBotId, int nSkinId, int nWeaponSkinId, int nHeadId, optional bool bAll=false); // Export UTgGameHUD::execTestPrecache(FFrame&, void* const) + +native exec function PrecacheClass(string godName, optional string skinName, optional string weaponSkinName); // Export UTgGameHUD::execPrecacheClass(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +event PostRender() { } + +simulated event PreDemoRewind() { } + +simulated function DrawMiniMap(Canvas theCanvas) { } + +exec function ToggleOverlay() { } + +exec function UpdateMMTimer(float fNew) { } + +function TgMiniMap GetMapByName(string MapName) { } + +exec function PingMap(float X, float Y, string Type, string MapName) { } + +exec function HoverMap(float X, float Y, string MapName) { } + +function ShowTargetingMap(bool bShow) { } + +function PlayDeviceFailResponse(TgObject.EDeviceFailType failType, bool IsAbility) { } + +defaultproperties +{} diff --git a/Development/Src/TgClient/Classes/TgGameLaunch.uc b/Development/Src/TgClient/Classes/TgGameLaunch.uc old mode 100755 new mode 100644 index 84e41b0..7f192fe --- a/Development/Src/TgClient/Classes/TgGameLaunch.uc +++ b/Development/Src/TgClient/Classes/TgGameLaunch.uc @@ -1,4 +1,15 @@ -class TgGameLaunch extends GameInfo - native - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file +class TgGameLaunch extends GameInfo + native + config(Game) + hidecategories(Navigation,Movement,Collision); + +var globalconfig string LoginName; +var globalconfig string LoginPwd; +var globalconfig bool SaveLoginName; + +defaultproperties +{ + DefaultPawnClass=Class'Pawn' + HUDType=Class'TgLobbyHUD' + PlayerControllerClass=Class'TgPlayerController' +} diff --git a/Development/Src/TgClient/Classes/TgGameSceneManager.uc b/Development/Src/TgClient/Classes/TgGameSceneManager.uc new file mode 100644 index 0000000..65f36b8 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGameSceneManager.uc @@ -0,0 +1,3 @@ +class TgGameSceneManager extends TgSceneManager within GFxMoviePlayer + native(GameUI) + config(Engine); diff --git a/Development/Src/TgClient/Classes/TgGameViewportClient.uc b/Development/Src/TgClient/Classes/TgGameViewportClient.uc old mode 100755 new mode 100644 index 6be73cd..5ff5d66 --- a/Development/Src/TgClient/Classes/TgGameViewportClient.uc +++ b/Development/Src/TgClient/Classes/TgGameViewportClient.uc @@ -1,8 +1,30 @@ -class TgGameViewportClient extends PComGameViewportClient within Engine - transient - native - config(Engine); - -event PostRender(Canvas Canvas) -{ -} \ No newline at end of file +class TgGameViewportClient extends PComGameViewportClient within Engine + transient + native + config(Engine); + +var array m_DeferredManifests; +var bool m_dragging; +var bool m_wasMaximized; +var transient bool bReadLeftStickAxis; +var transient bool bReadRightStickAxis; +var transient float fRawLeftStickAxis; +var transient float fRawRightStickAxis; + +function DrawTransition(Canvas Canvas) { } + +native function NativeGameSessionEnded(); // Export UTgGameViewportClient::execNativeGameSessionEnded(FFrame&, void* const) + +native function bool IsGfxMovieCapturingMouseInput(); // Export UTgGameViewportClient::execIsGfxMovieCapturingMouseInput(FFrame&, void* const) + +native function InitTgGameViewportClient(); // Export UTgGameViewportClient::execInitTgGameViewportClient(FFrame&, void* const) + +event GameSessionEnded() { } + +event PostRender(Canvas Canvas) { } + +event GetSubtitleRegion(out vector2D MinPos, out vector2D MaxPos) { } + +event LayoutPlayers() { } + +event bool Init(out string OutError) { } diff --git a/Development/Src/TgClient/Classes/TgGfxChatModal.uc b/Development/Src/TgClient/Classes/TgGfxChatModal.uc new file mode 100644 index 0000000..c2efd10 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGfxChatModal.uc @@ -0,0 +1,2 @@ +class TgGfxChatModal extends GFxObject within GFxMoviePlayer + config(Engine); diff --git a/Development/Src/TgClient/Classes/TgGfxCursor.uc b/Development/Src/TgClient/Classes/TgGfxCursor.uc new file mode 100644 index 0000000..b81ed3f --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGfxCursor.uc @@ -0,0 +1,10 @@ +class TgGfxCursor extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var GFxObject m_mcIcon; + +defaultproperties +{ + m_Name="Cursor" +} diff --git a/Development/Src/TgClient/Classes/TgGfxFriendManagement.uc b/Development/Src/TgClient/Classes/TgGfxFriendManagement.uc new file mode 100644 index 0000000..e5b24b0 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGfxFriendManagement.uc @@ -0,0 +1,133 @@ +class TgGfxFriendManagement extends GFxObject within GFxMoviePlayer + native + config(Engine); + +enum EFriendTabs { + FRT_CURRENT_FRIENDS, // 0 + FRT_REQUESTS, // 1 + FRT_RECENT, // 2 + FRT_CLAN, // 3 + FRT_BLOCKED, // 4 +}; + +var UIGameMoviePlayer m_Movie; +var init string m_LastErrorString; +var init string m_SelectedPlayerName; +var init string m_InvitedPlayerName; +var TgGfxFriendManagement.EFriendTabs m_tabId; + +delegate USC_GetFriendsData_Delegate(); + +delegate USC_RemoveFriend_Delegate(int nPlayerId); + +delegate USC_MessageFriend_Delegate(int nPlayerId, string sPlayerName); + +delegate USC_SearchByString_Delegate(string PlayerName); + +delegate USC_GetListData_Delegate(int nId); + +delegate USC_InviteFriend_Delegate(int nPlayerId); + +delegate USC_CancelInvite_Delegate(int nPlayerId); + +delegate USC_AcceptClanInvite_Delegate(int nClanId); + +delegate USC_CancelClanInvite_Delegate(int nClanId); + +delegate USC_AcceptFriendRequest_Delegate(int nPlayerId); + +delegate USC_AcceptAllFriendRequests_Delegate(); + +delegate USC_CancelFriendRequest_Delegate(int nPlayerId); + +delegate USC_CancelAllFriendRequests_Delegate(); + +delegate USC_ViewPlayerProfile_Delegate(string sPlayerName); + +delegate USC_ViewPlayerClan_Delegate(); + +delegate USC_SpectatePlayer_Delegate(int nPlayerId); + +delegate USC_WatchFriend_Delegate(int nPlayerId); + +delegate USC_PartyInvite_Delegate(int nPlayerId); + +delegate USC_PartyKick_Delegate(int nPlayerId); + +delegate USC_RemoveBlocked_Delegate(int nPlayerId); + +delegate USC_AddPlayerNote_Delegate(int nPlayerId, string sPlayerNote); + +delegate USC_InviteFriendByString_Delegate(string sPlayerName); + +delegate USC_BlockByString_Delegate(string sPlayerName); + +delegate USC_InviteToClan_Delegate(string sPlayerName); + +delegate USC_UpdateStatusMessage_Delegate(string sStatus); + +delegate USC_ToggleDND_Delegate(); + +delegate USC_Resize_Delegate(GFxObject pObj); + +native function USC_GetFriendsData(); // Export UTgGfxFriendManagement::execUSC_GetFriendsData(FFrame&, void* const) + +native function USC_RemoveFriend(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_RemoveFriend(FFrame&, void* const) + +native function USC_MessageFriend(int nPlayerId, string sPlayerName); // Export UTgGfxFriendManagement::execUSC_MessageFriend(FFrame&, void* const) + +native function USC_SearchByString(string PlayerName); // Export UTgGfxFriendManagement::execUSC_SearchByString(FFrame&, void* const) + +native function USC_GetListData(int nId); // Export UTgGfxFriendManagement::execUSC_GetListData(FFrame&, void* const) + +native function USC_InviteFriend(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_InviteFriend(FFrame&, void* const) + +native function USC_CancelInvite(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_CancelInvite(FFrame&, void* const) + +native function USC_AcceptClanInvite(int nClanId); // Export UTgGfxFriendManagement::execUSC_AcceptClanInvite(FFrame&, void* const) + +native function USC_CancelClanInvite(int nClanId); // Export UTgGfxFriendManagement::execUSC_CancelClanInvite(FFrame&, void* const) + +native function USC_AcceptFriendRequest(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_AcceptFriendRequest(FFrame&, void* const) + +native function USC_AcceptAllFriendRequests(); // Export UTgGfxFriendManagement::execUSC_AcceptAllFriendRequests(FFrame&, void* const) + +native function USC_CancelFriendRequest(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_CancelFriendRequest(FFrame&, void* const) + +native function USC_CancelAllFriendRequests(); // Export UTgGfxFriendManagement::execUSC_CancelAllFriendRequests(FFrame&, void* const) + +native function USC_ViewPlayerProfile(string sPlayerName); // Export UTgGfxFriendManagement::execUSC_ViewPlayerProfile(FFrame&, void* const) + +native function USC_ViewPlayerClan(); // Export UTgGfxFriendManagement::execUSC_ViewPlayerClan(FFrame&, void* const) + +native function USC_SpectatePlayer(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_SpectatePlayer(FFrame&, void* const) + +native function USC_WatchFriend(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_WatchFriend(FFrame&, void* const) + +native function USC_PartyInvite(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_PartyInvite(FFrame&, void* const) + +native function USC_PartyKick(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_PartyKick(FFrame&, void* const) + +native function USC_RemoveBlocked(int nPlayerId); // Export UTgGfxFriendManagement::execUSC_RemoveBlocked(FFrame&, void* const) + +native function USC_AddPlayerNote(int nPlayerId, string sPlayerNote); // Export UTgGfxFriendManagement::execUSC_AddPlayerNote(FFrame&, void* const) + +native function USC_InviteFriendByString(string sPlayerName); // Export UTgGfxFriendManagement::execUSC_InviteFriendByString(FFrame&, void* const) + +native function USC_BlockByString(string sPlayerName); // Export UTgGfxFriendManagement::execUSC_BlockByString(FFrame&, void* const) + +native function USC_InviteToClan(string sPlayerName); // Export UTgGfxFriendManagement::execUSC_InviteToClan(FFrame&, void* const) + +native function USC_UpdateStatusMessage(string sStatus); // Export UTgGfxFriendManagement::execUSC_UpdateStatusMessage(FFrame&, void* const) + +native function USC_ToggleDND(); // Export UTgGfxFriendManagement::execUSC_ToggleDND(FFrame&, void* const) + +native function USC_Resize(GFxObject pObj); // Export UTgGfxFriendManagement::execUSC_Resize(FFrame&, void* const) + +function ASC_ErrorFeedback(string ErrMsg) { } + +event ErrorFeedback(string ErrMsg) { } + +function ASC_Reinit() { } + +event Reinit() { } diff --git a/Development/Src/TgClient/Classes/TgGfxScene.uc b/Development/Src/TgClient/Classes/TgGfxScene.uc old mode 100755 new mode 100644 index 4061623..578ffeb --- a/Development/Src/TgClient/Classes/TgGfxScene.uc +++ b/Development/Src/TgClient/Classes/TgGfxScene.uc @@ -1,2 +1,416 @@ -class TgGfxScene extends GFxObject within GFxMoviePlayer - native(GFxScene); \ No newline at end of file +class TgGfxScene extends GFxObject within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UIComponent); + +const UISCENE_NATIVE_WIDTH = 1920; + +const UISCENE_NATIVE_HEIGHT = 1080; + +const UI_AUTHORED_WIDTH = 1920; + +const UI_AUTHORED_HEIGHT = 1080; + +enum GFXOPTION { + GFXOPTION_NONE, // 0 + GFXOPTION_BACK, // 1 + GFXOPTION_MENU, // 2 + GFXOPTION_APPLY, // 3 + GFXOPTION_LEAVEQUEUE, // 4 + GFXOPTION_SOCIAL, // 5 + GFXOPTION_SELECT, // 6 + GFXOPTION_ADDCARD, // 7 + GFXOPTION_REMOVECARD, // 8 + GFXOPTION_FILTER, // 9 + GFXOPTION_FILTERCHAMP, // 10 + GFXOPTION_ADDREMOVE, // 11 + GFXOPTION_CHAT, // 12 + GFXOPTION_CHANGEUSER, // 13 + GFXOPTION_CHANGETAB, // 14 + GFXOPTION_JOIN, // 15 + GFXOPTION_PREVIOUS, // 16 + GFXOPTION_NEXT, // 17 + GFXOPTION_ACCEPT, // 18 + GFXOPTION_CANCEL, // 19 + GFXOPTION_PURCHASE, // 20 + GFXOPTION_HOME, // 21 + GFXOPTION_PLAYAGAIN, // 22 + GFXOPTION_CREATEGAME, // 23 + GFXOPTION_LOGOUT, // 24 + GFXOPTION_UNLOCK, // 25 + GFXOPTION_LEADERBOARD, // 26 + GFXOPTION_TRADE, // 27 + GFXOPTION_PURCHASEGEMS, // 28 + GFXOPTION_MUTEPLAYER, // 29 + GFXOPTION_UNMUTEPLAYER, // 30 + GFXOPTION_REROLL_QUEST, // 31 + GFXOPTION_CLAIM_QUEST, // 32 + GFXOPTION_CHANGEEMAIL, // 33 + GFXOPTION_DECLINE, // 34 + GFXOPTION_VIEWPROFILE, // 35 + GFXOPTION_INVITE, // 36 + GFXOPTION_REGION, // 37 + GFXOPTION_CRAFT, // 38 + GFXOPTION_DISENCHANT, // 39 + GFXOPTION_REFRESH, // 40 + GFXOPTION_PLAYERS, // 41 + GFXOPTION_MASTERYDETAILS, // 42 + GFXOPTION_HOLDSELECT, // 43 + GFXOPTION_VIEWCHAMPIONS, // 44 + GFXOPTION_VIEWSKILLS, // 45 + GFXOPTION_PURCHASE_INGAME, // 46 + GFXOPTION_HOLDPURCHASE, // 47 + GFXOPTION_CLEAR, // 48 + GFXOPTION_PREVIEW, // 49 + GFXOPTION_UNLOCK_ANNPACK, // 50 + GFXOPTION_CHANGE_AUTOBUY, // 51 + GFXOPTION_DELETELOADOUT, // 52 + GFXOPTION_TOGGLETAB, // 53 + GFXOPTION_PLAY, // 54 + GFXOPTION_INFO, // 55 + GFXOPTION_CHANGE_TEAMS, // 56 + GFXOPTION_KICK, // 57 +}; + +enum GFXEVENT { + GFXEVENT_CLICK, // 0 + GFXEVENT_ROLLOVER, // 1 + GFXEVENT_ROLLOUT, // 2 +}; + +enum UIBACKGROUNDTYPE { + UIBT_NONE, // 0 + UIBT_MAIN, // 1 + UIBT_CHAMPION, // 2 + UIBT_DECKS, // 3 + UIBT_SOCIAL, // 4 + UIBT_PROFILE, // 5 + UIBT_LINE, // 6 + UIBT_PLAIN, // 7 +}; + +enum UISNAPPINGTYPE { + UISNAPPING_NONE, // 0 + UISNAPPING_TOP, // 1 + UISNAPPING_BOT, // 2 +}; + +enum UIALIGNINGTYPE { + UIALIGNING_NONE, // 0 + UIALIGNING_LEFT, // 1 + UIALIGNING_RIGHT, // 2 + UIALIGNING_CENTER, // 3 +}; + +enum UISCALINGTYPE { + UISCALING_FITWIDE, // 0 + UISCALING_FITTALL, // 1 + UISCALING_OVERSIZE, // 2 + UISCALING_NONE, // 3 +}; + +enum UIDISPLAYTYPE { + UIDISPLAY_ALWAYS, // 0 + UIDISPLAY_MOUSE, // 1 + UIDISPLAY_PCONLY, // 2 + UIDISPLAY_CONSOLE, // 3 + UIDISPLAY_GAMEPAD, // 4 +}; + +enum GFXFUNCTIONS { + GFXFUNC_NONE, // 0 + GFXFUNC_RESIZE, // 1 + GFXFUNC_CLASS, // 2 + GFXFUNC_ANIMATE, // 3 + GFXFUNC_SKIN, // 4 + GFXFUNC_INFO, // 5 + GFXFUNC_SKILL, // 6 + GFXFUNC_TOOLTIP_ITEM, // 7 + GFXFUNC_TOOLTIP_CLASS, // 8 + GFXFUNC_TOOLTIP_SKILL, // 9 + GFXFUNC_PURCHASE, // 10 + GFXFUNC_PREVIEW, // 11 + GFXFUNC_STAT, // 12 + GFXFUNC_RESET, // 13 + GFXFUNC_DETAILS, // 14 + GFXFUNC_JOIN, // 15 + GFXFUNC_LEAVE, // 16 + GFXFUNC_KIT, // 17 + GFXFUNC_ARMOR, // 18 + GFXFUNC_BACK, // 19 + GFXFUNC_EXIT, // 20 + GFXFUNC_SETTINGS, // 21 + GFXFUNC_MINIMIZE, // 22 + GFXFUNC_HOME, // 23 + GFXFUNC_PLAY, // 24 + GFXFUNC_STORE, // 25 + GFXFUNC_PROFILE, // 26 + GFXFUNC_MOUNT, // 27 + GFXFUNC_SPELL, // 28 + GFXFUNC_WEAPON, // 29 + GFXFUNC_ABILITY, // 30 + GFXFUNC_ENCHANT, // 31 + GFXFUNC_LEFT, // 32 + GFXFUNC_RIGHT, // 33 + GFXFUNC_SELECT, // 34 + GFXFUNC_GENERAL, // 35 + GFXFUNC_ADD, // 36 + GFXFUNC_SUB, // 37 + GFXFUNC_ADDSPELL, // 38 + GFXFUNC_ADDWEAPON, // 39 + GFXFUNC_ADDENCHANT, // 40 + GFXFUNC_CARD, // 41 + GFXFUNC_ADDCARD, // 42 + GFXFUNC_FRIEND, // 43 + GFXFUNC_ENEMY, // 44 + GFXFUNC_SAVE, // 45 + GFXFUNC_LOGIN, // 46 + GFXFUNC_ACCEPT, // 47 + GFXFUNC_DECLINE, // 48 + GFXFUNC_SUBMIT, // 49 + GFXFUNC_CANCEL, // 50 + GFXFUNC_TRAINING, // 51 + GFXFUNC_BATTLE, // 52 + GFXFUNC_GOLD, // 53 + GFXFUNC_SILVER, // 54 + GFXFUNC_FRIENDS, // 55 + GFXFUNC_ADD_FRIEND, // 56 + GFXFUNC_INVITE, // 57 + GFXFUNC_INVITE_ACCEPT, // 58 + GFXFUNC_INVITE_DECLINE, // 59 + GFXFUNC_PARTY, // 60 + GFXFUNC_REMOVE, // 61 + GFXFUNC_SCROLL, // 62 + GFXFUNC_OPTION, // 63 + GFXFUNC_KEY, // 64 + GFXFUNC_KEYALT, // 65 + GFXFUNC_KEYBIND, // 66 + GFXFUNC_CHAT, // 67 + GFXFUNC_BOOKNONE, // 68 + GFXFUNC_BOOKSLOT, // 69 + GFXFUNC_CARDSLOT, // 70 + GFXFUNC_PREVIOUS, // 71 + GFXFUNC_NEXT, // 72 + GFXFUNC_ITEM, // 73 + GFXFUNC_SELECT_REGION, // 74 + GFXFUNC_PLAYER, // 75 + GFXFUNC_SEARCH, // 76 + GFXFUNC_RESULT, // 77 + GFXFUNC_UPGRADE, // 78 + GFXFUNC_ADDENEMY, // 79 + GFXFUNC_ADDFRIEND, // 80 + GFXFUNC_REPORTENEMY, // 81 + GFXFUNC_REPORTFRIEND, // 82 + GFXFUNC_CHANGE, // 83 + GFXFUNC_CREATE, // 84 + GFXFUNC_CREATEGAME, // 85 + GFXFUNC_HEAD, // 86 + GFXFUNC_IMPORT, // 87 + GFXFUNC_CONFIRM, // 88 + GFXFUNC_INPUT, // 89 + GFXFUNC_ROTATE, // 90 + GFXFUNC_MAP, // 91 + GFXFUNC_TEAM, // 92 + GFXFUNC_CHANGETEAM, // 93 + GFXFUNC_REGION, // 94 + GFXFUNC_SPECTATE, // 95 + GFXFUNC_DRAFT, // 96 + GFXFUNC_BOOST, // 97 + GFXFUNC_EXCLUSIVE, // 98 + GFXFUNC_EXCLUSIVE_DETAILS, // 99 + GFXFUNC_CHEST, // 100 + GFXFUNC_CHESTSCROLL, // 101 + GFXFUNC_CHESTDETAILS, // 102 + GFXFUNC_CHESTPURCHASE, // 103 + GFXFUNC_CHESTBUYBOOSTER, // 104 + GFXFUNC_CHESTTOGGLEQUANTITY, // 105 + GFXFUNC_CHESTPICKQUANTITY, // 106 + GFXFUNC_PURCHASEGEMS, // 107 + GFXFUNC_VIEWGAMEPAD, // 108 + GFXFUNC_SHOWFILTER, // 109 + GFXFUNC_CLEARFILTER, // 110 + GFXFUNC_FILTER_RARITY, // 111 + GFXFUNC_FILTER_OPTIONS, // 112 + GFXFUNC_SELECT_PREVIOUS_SORT, // 113 + GFXFUNC_SELECT_NEXT_SORT, // 114 + GFXFUNC_SHOW_QUESTS, // 115 + GFXFUNC_DISCARD_QUEST_POPUP, // 116 + GFXFUNC_DISCARD_QUEST, // 117 + GFXFUNC_REROLL_QUEST, // 118 + GFXFUNC_HOVER, // 119 + GFXFUNC_CLAIM_QUEST, // 120 + GFXFUNC_REFER, // 121 + GFXFUNC_TOGGLEMUTE, // 122 + GFXFUNC_EQUIP, // 123 + GFXFUNC_INTERACTABLE, // 124 + GFXFUNC_INTERACTABLE_SCROLL, // 125 + GFXFUNC_TALENT, // 126 + GFXFUNC_SLIDER, // 127 + GFXFUNC_TAB, // 128 + GFXFUNC_CLEAR_ALL, // 129 + GFXFUNC_CLEAR_ITEM, // 130 + GFXFUNC_CLEAR_CATEGORY, // 131 + GFXFUNC_GOTO, // 132 + GFXFUNC_EQUIPALL, // 133 + GFXFUNC_CLOSE, // 134 +}; + +enum GamepadKeys { + GAMEPAD_NONE, // 0 + GAMEPAD_BUTTON_A, // 1 + GAMEPAD_BUTTON_B, // 2 + GAMEPAD_BUTTON_X, // 3 + GAMEPAD_BUTTON_Y, // 4 + GAMEPAD_BUTTON_MENU, // 5 + GAMEPAD_BUTTON_LB, // 6 + GAMEPAD_BUTTON_RB, // 7 + GAMEPAD_BUTTON_LT, // 8 + GAMEPAD_BUTTON_RT, // 9 + GAMEPAD_BUTTON_BUMPERS, // 10 + GAMEPAD_BUTTON_L_STICK, // 11 + GAMEPAD_BUTTON_R_STICK, // 12 + GAMEPAD_BUTTON_DPAD_UNPRESSED, // 13 + GAMEPAD_BUTTON_DPAD_DOWN, // 14 + GAMEPAD_BUTTON_DPAD_LEFT, // 15 + GAMEPAD_BUTTON_DPAD_RIGHT, // 16 + GAMEPAD_BUTTON_DPAD_UP, // 17 + GAMEPAD_BUTTON_VIEW, // 18 + GAMEPAD_BUTTON_L_STICK_ALL_AXIS, // 19 + GAMEPAD_BUTTON_L_STICK_X_AXIS, // 20 + GAMEPAD_BUTTON_L_STICK_Y_AXIS, // 21 + GAMEPAD_BUTTON_R_STICK_ALL_AXIS, // 22 + GAMEPAD_BUTTON_R_STICK_X_AXIS, // 23 + GAMEPAD_BUTTON_R_STICK_Y_AXIS, // 24 +}; + +enum LobbyEvent { + LOBBY_EVENT_ENTER_QUEUE, // 0 + LOBBY_EVENT_CHAMPION_LOCKED_IN, // 1 + LOBBY_EVENT_EVERYONE_LOCKED_IN, // 2 + LOBBY_EVENT_REENTER_LOBBY, // 3 +}; + +struct UIDisplayData { + var byte eType; + var GFxObject pObj; + structdefaultproperties {} +}; + +struct UIITEM_CLIP { + var GFxObject pObj; + var GFxObject pSelected; + var GFxObject pButton; + var GFxObject pSaleBanner; + structdefaultproperties {} +}; + +var Class m_UISceneClass; +var UIScene m_UIScene; +var array m_OptionList; +var array m_DisplayData; +var array m_Blockers; +var array m_Groups; +var array m_Prompts; +var TgGfxScene.UIALIGNINGTYPE m_ePromptAlignment; +var TgGfxScene.UISCALINGTYPE m_eScalingType; +var TgGfxScene.UISNAPPINGTYPE m_eSnappingType; +var TgGfxScene.UIALIGNINGTYPE m_eAligningType; +var float m_fPromptOffsetX; +var int m_nHighlight; +var int m_nSelectCount; +var int m_nBackground; +var bool m_bBlur; +var bool m_bBlurForeground; +var bool m_bReshow; +var bool m_bHidden; +var bool m_bDisable; +var bool m_bInitData; +var bool m_bVisibleOnLoad; +var bool m_bResetFocusOnShow; +var bool m_bResetHeaderFocusOnShow; +var bool m_bResize; +var bool m_bIsPopup; +var bool m_bDead; +var bool m_bAlwaysTick; +var bool m_bAcceptsInput; +var bool m_bAllowSpectatorClickThru; +var bool m_bShowCursor; +var bool m_bCaptureKeys; +var bool m_bIsOnline; +var bool m_bPushesSceneFromSubscenes; +var bool m_bCanShake; +var bool m_bShouldShake; +var bool m_bAlwaysKeepOpen; +var bool m_bAllowMultipleOnStack; +var bool m_bAllowLeaveQueueKey; +var float m_fScaling; +var float m_fScale; +var float m_fDeltaTime; +var Vector2D m_CachedPosition; +var string m_Name; +var AkBaseSoundObject m_scShown; +var AkBaseSoundObject m_scHighlight; +var int m_nEventFunc; +var int m_nEventType; +var int m_nEventIndex; +var GFxObject m_pFocus; +var TgGameDataHandler m_pData; +var UIGameMoviePlayer m_pMovie; +var UIDataManager m_pUIData; +var GFxObject m_mcHeaderBumper[2]; +var TgGFxGroup m_grHeader; +var array m_nFocusedGroupStack; + +delegate DelegateEvent(GFxObject pObj, int nEvent); + +native function ReceiveEvent(GFxObject pObj, int nEvent); // Export UTgGfxScene::execReceiveEvent(FFrame&, void* const) + +event Focus(GFxObject pObj) { } + +event Rollover(GFxObject pObj) { } + +event Rollout(GFxObject pObj) { } + +event Click(GFxObject pObj) { } + +native function Animate(GFxObject pObj, float fTime, UIComponent.UIANIMTYPE eType, float fValue, optional float fDelay=0.0000000, optional byte eQuad=1, optional bool bEndCurrentAnim=true); // Export UTgGfxScene::execAnimate(FFrame&, void* const) + +native function CancelAnim(GFxObject pObj); // Export UTgGfxScene::execCancelAnim(FFrame&, void* const) + +native function EndAnim(GFxObject pObj, UIComponent.UIANIMTYPE eType); // Export UTgGfxScene::execEndAnim(FFrame&, void* const) + +native function bool IsAnimating(GFxObject pObj); // Export UTgGfxScene::execIsAnimating(FFrame&, void* const) + +native function bool IsAnimatingType(GFxObject pObj, UIComponent.UIANIMTYPE eType); // Export UTgGfxScene::execIsAnimatingType(FFrame&, void* const) + +native function FadeIn(GFxObject pObj, optional float fTime=0.1000000, optional float fDelay=0.0000000); // Export UTgGfxScene::execFadeIn(FFrame&, void* const) + +native function FadeOut(GFxObject pObj, optional float fTime=0.1000000, optional float fDelay=0.0000000); // Export UTgGfxScene::execFadeOut(FFrame&, void* const) + +native function Highlight(GFxObject pObj, bool bShow, optional float fTime=0.1000000); // Export UTgGfxScene::execHighlight(FFrame&, void* const) + +native function SlamInAnim(GFxObject pObj, optional float fDelay=0.0000000); // Export UTgGfxScene::execSlamInAnim(FFrame&, void* const) + +native function SlamOutAnim(GFxObject pObj, optional float fDelay=0.0000000); // Export UTgGfxScene::execSlamOutAnim(FFrame&, void* const) + +event HandleAnimState(int nAnimState, optional int nAnimGroup=0) { } + +defaultproperties +{ + m_UISceneClass=Class'UIScene' + m_ePromptAlignment=UIALIGNING_CENTER + m_nHighlight=-1 + m_bInitData=true + m_bResetHeaderFocusOnShow=true + m_bResize=true + m_bAcceptsInput=true + m_bAllowSpectatorClickThru=true + m_bShowCursor=true + m_bCaptureKeys=true + m_bAllowMultipleOnStack=true + m_bAllowLeaveQueueKey=true + m_fScaling=1.0000000 + m_CachedPosition=(X=-1.0000000,Y=-1.0000000) + m_scShown=AkEvent'UI_Menu_Panel_SlideIn_Play' + m_scHighlight=AkEvent'UI_Menu_Checkbox_Off_Play' +} diff --git a/Development/Src/TgClient/Classes/TgGfxTeamInvite.uc b/Development/Src/TgClient/Classes/TgGfxTeamInvite.uc new file mode 100644 index 0000000..3946dd9 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgGfxTeamInvite.uc @@ -0,0 +1,26 @@ +class TgGfxTeamInvite extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIINVITE_BUTTONS = 2; + +const UIINVITE_INVITESPAM_PERIOD = 2.6; + +const UIINVITE_INVITECOUNTER_MAXLEN = 64; + +var int m_nQueue; +var float m_fTimerWidth; +var float m_fTimeoutTime; +var float m_fTimeoutTimer; +var GFxObject m_mcTimer; +var GFxObject m_mcSubtitle; +var GFxObject m_mcButton[2]; + +defaultproperties +{ + m_fTimeoutTime=30.0000000 + m_UISceneClass=Class'UIScene_SceneAsPopup' + m_bBlur=true + m_bIsPopup=true + m_Name="UITeamInvite" +} diff --git a/Development/Src/TgClient/Classes/TgLobbyHUD.uc b/Development/Src/TgClient/Classes/TgLobbyHUD.uc old mode 100755 new mode 100644 index 512b52b..2fd80d8 --- a/Development/Src/TgClient/Classes/TgLobbyHUD.uc +++ b/Development/Src/TgClient/Classes/TgLobbyHUD.uc @@ -1,8 +1,111 @@ -class TgLobbyHUD extends TgClientHUD - transient - native(LobbyUI) - config(Game) - hidecategories(Navigation); - -// Export UTgLobbyHUD::execTriggerLazyPrecache(FFrame&, void* const) -native function TriggerLazyPrecache(); \ No newline at end of file +class TgLobbyHUD extends TgClientHUD + transient + native(LobbyUI) + config(Game) + hidecategories(Navigation); + +const LOBBY_PLAYERS_PER_TEAM = 10; + +enum LobbyHudState { + LHS_None, // 0 + LHS_Offline, // 1 + LHS_Lobby, // 2 + LHS_Match, // 3 + LHS_Summary, // 4 +}; + +enum UIHeaderState { + UIHS_NONE, // 0 + UIHS_HOME, // 1 + UIHS_PLAY, // 2 + UIHS_SHOP, // 3 + UIHS_CARD, // 4 +}; + +enum UIMapFrame { + UIMF_NONE, // 0 + UIMF_ENCHANTED_FOREST, // 1 + UIMF_TEMPLE_RUINS, // 2 + UIMF_OUTPOST, // 3 + UIMF_GLACIER_KEEP, // 4 + UIMF_SERPENT_TEMPLE, // 5 + UIMF_SINISTRAL, // 6 + UIMF_ARENA, // 7 + UIMF_DEATHGATE, // 8 + UIMF_DISTRICT, // 9 + UIMF_GLACIER_KEEP_V2, // 10 +}; + +struct LobbyTransitionPlayer { + var int nClassId; + var init string sPlayerName; + var init string sClassName; + structdefaultproperties {} +}; + +struct LobbyTransitionData { + var LobbyTransitionPlayer FriendlyTeam[10]; + var LobbyTransitionPlayer EnemyTeam[10]; + structdefaultproperties {} +}; + +var int m_nQueue; +var int m_nQueueState; +var int m_nLobbyState; +var int m_nPlayerState; +var int m_nModelPose; +var int m_nModelSkin; +var int m_nModelHead; +var int m_nModelClass; +var int m_nModelDevice; +var int m_nModelDeviceSkin; +var bool m_bJoiningTraining; +var TgLobbyCamera c_CurrentCamera; +var array m_sAdditionalNeededScenes; +var globalconfig array m_CTAItemIds; +var globalconfig string m_PlayerCTAName; +var TgSkeletalMeshActor_Pedestal m_FrontLinePedestalMeshActor; +var TgSkeletalMeshActor_Pedestal m_FlankPedestalMeshActor; +var TgSkeletalMeshActor_Pedestal m_SupportPedestalMeshActor; +var TgSkeletalMeshActor_Pedestal m_DamagerPedestalMeshActor; + + +delegate OnMeshUpdated(); +native function bool IsEulaSigned(); // Export UTgLobbyHUD::execIsEulaSigned(FFrame&, void* const) + +native function bool HaveEOMLobbyData(); // Export UTgLobbyHUD::execHaveEOMLobbyData(FFrame&, void* const) + +native function SetUpEOMLobby(); // Export UTgLobbyHUD::execSetUpEOMLobby(FFrame&, void* const) + +native exec function ChangeClassModel(int nClassId, int nSkinId, int nHeadId, int nDeviceId, int nDeviceSkinId, int nPedestalSkinId, TgSkeletalMeshActor_Loader.LobbyAnimPose pose, optional TgCameraModifier_LobbyCameraTransition.CameraTransType camDirection=1, optional bool bAsync=true, optional TgObject.EModelHighlightType HighlightType=0, optional int MVPDeviceId); // Export UTgLobbyHUD::execChangeClassModel(FFrame&, void* const) + +native exec function bool RotateModel(float fValue); // Export UTgLobbyHUD::execRotateModel(FFrame&, void* const) + +native exec function ChangeTeamModel(bool bFriendly, int nIndex, int nClassId, int nSkinId, int nHeadId, int nDeviceId, int nDeviceSkinId, int nPedestalSkinId, TgSkeletalMeshActor_Loader.LobbyAnimPose pose, optional bool bAsync=true, optional TgObject.EModelHighlightType HighlightType=0, optional int MVPDeviceId, optional int nCharacterXP=-1, optional delegate MeshUpdatedDelegate); // Export UTgLobbyHUD::execChangeTeamModel(FFrame&, void* const) + +native exec function TgLobbyCamera SwitchToCamera(TgLobbyCamera.ELobbyCameraTag CamTag, optional TgCameraModifier_LobbyCameraTransition.CameraTransType camDirection=1, optional bool bForce=false, optional ViewTargetTransitionParams BlendParams); // Export UTgLobbyHUD::execSwitchToCamera(FFrame&, void* const) + +native function DisplayCharacter(); // Export UTgLobbyHUD::execDisplayCharacter(FFrame&, void* const) + +native function TriggerLazyPrecache(); // Export UTgLobbyHUD::execTriggerLazyPrecache(FFrame&, void* const) + +native function TryPushScene(string sName, optional bool bSkipPrivilegeCheck=false); // Export UTgLobbyHUD::execTryPushScene(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +exec function SwitchToCards(bool bEnabled) { } + +exec function ChangeModel(int BotId, int SkinId, int HeadId, int DeviceID, int DeviceSkinId, int PedestalSkinId, optional byte pose=0, optional TgLobbyCamera.ELobbyCameraTag CameraTag=1, optional float BlendTime, optional Camera.EViewTargetBlendFunction BlendFunction, optional float BlendExp, optional TgObject.EModelHighlightType HighlightType, optional int MVPDeviceId) { } + +exec function PlayEmote(int nDeviceId) { } + +exec function StopEmote() { } + +exec function PlayMVP(int nDeviceId) { } + +exec function StopMVP() { } + +native exec function ChangePedestalModel(TgObject.EPedestalType PedestalType, int BotId, int SkinId, int HeadId, int DeviceID, int DeviceSkinId, optional int MVPId, optional int CharacterMastery=-1); // Export UTgLobbyHUD::execChangePedestalModel(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgClient/Classes/TgMiniMap.uc b/Development/Src/TgClient/Classes/TgMiniMap.uc new file mode 100644 index 0000000..f197c1c --- /dev/null +++ b/Development/Src/TgClient/Classes/TgMiniMap.uc @@ -0,0 +1,204 @@ +class TgMiniMap extends Object + native(GameUI) + config(Engine) + dependson(TgGameHUD); + +const TG_MAX_TOTAL_PING = 10; + +enum TgMapOrientation { + TMO_NORMAL, // 0 + TMO_ROTATE_180, // 1 +}; + +enum MiniMapIconLayer { + MMap_Layer_Enemy_Deployable, // 0 + MMap_Layer_Friendly_Deployable, // 1 + MMap_Layer_Enemy_Bot, // 2 + MMap_Layer_Friendly_Bot, // 3 + MMap_Layer_Enemy_Player, // 4 + MMap_Layer_Friendly_Player, // 5 + MMap_Layer_Neutral_Factory, // 6 + MMap_Layer_Friendly_Factory, // 7 + MMap_Layer_Enemy_Factory, // 8 + MMap_Layer_Neutral_CapturePoint, // 9 + MMap_Layer_Enemy_CapturePoint, // 10 + MMap_Layer_Friendly_CapturePoint, // 11 + MMap_Layer_Targeting, // 12 + MMap_Layer_Local_Player_Pet, // 13 + MMap_Layer_Local_Player, // 14 +}; + +enum MiniMapPortalLayer { + MMap_Portal_Layer_Enemy, // 0 + MMap_Portal_Layer_Friendly, // 1 +}; + +enum MinimapDisplayType { + MDT_Friendly, // 0 + MDT_Enemy, // 1 + MDT_FriendlyCB, // 2 + MDT_EnemyCB, // 3 + MDT_Neutral, // 4 + MDT_Pending, // 5 +}; + +struct FogMaskData { + var int nSize; + var int nMapDrawLocationX; + var int nMapDrawLocationY; + var bool bLocationChanged; + var bool bVisionRangeChanged; + var const transient BitArray_Mirror m_MaskPoints; + structdefaultproperties {} +}; + +struct MiniMapEntity { + var Vector vLocation; + var TgObject.MiniMapEntityType eType; + var int nSubType; + var int nProfileId; + var TgObject.TgMapTeam Team; + var int nVisionRange; + var bool bIsDead; + var ReplicationInfo RepInfo; + var int GenericState; + var int nIdx; + var bool bMarked; + var bool bVisibleOnMap; + var bool bValidTarget; + var bool bHovered; + var bool bFlashHighlight; + var bool bVisible; + var float fAlpha; + var float fHealthPCT; + var MaterialInstanceConstant MIC; + var bool bHasNoIcon; + var int nDrawSize; + var int nHitSize; + var Vector vRect; + var FogMaskData FogMaskData; + structdefaultproperties {} +}; + +struct MiniMapPingInfo { + var float fServerStartTime; + var float fClientStartTime; + var TgRepInfo_Player pingedPri; + var Vector vPingedLoc; + var bool bIsPinging; + var TgObject.PING_TYPE eType; + var int nIconSize; + var MaterialInstanceConstant pingMIC; + var TgRepInfo_Player sourcePRI; + var int SourceIndex; + var Vector vSourceWorldLocation; + structdefaultproperties {} +}; + +struct BuffMonsterMIC { + var MaterialInstanceConstant SpawnedMIC; + var MaterialInstanceConstant DroppedMIC; + var MaterialInstanceConstant TimerMIC; + structdefaultproperties {} +}; + +struct LayerIndex { + var init array Entries; + structdefaultproperties {} +}; + +var int m_nMiniMapMode; +var bool m_bShouldDisplayMiniMap; +var bool m_bHasMiniMapTexture; +var bool m_bRequiresLOS; +var bool m_bUseFlashSizing; +var bool m_bSpectating; +var float m_fLastUpdateTime; +var MaterialInstanceConstant m_MiniMapBaseMIC; +var MaterialInstanceConstant m_MiniMapMIC; +var Texture2DDynamic m_DynamicMask; +var int m_nMaskSize; +var float m_fIconScale; +var Vector2D m_vMapLocation; +var int m_nMapSize; +var native const transient Pointer m_MiniMapRender; +var TgPlayerController m_OwnerPC; +var int m_nWorldMapSize; +var MaterialInstanceConstant m_MICPinging; +var MaterialInstanceConstant m_MICPingingEnemy; +var MaterialInstanceConstant m_MICRetreat; +var MaterialInstanceConstant m_MICRetreatEnemy; +var MaterialInstanceConstant m_MICAlert; +var MaterialInstanceConstant m_MICAlertEnemy; +var MaterialInstanceConstant m_MICAlertSilent; +var MaterialInstanceConstant m_MICLocalPlayer; +var MaterialInstanceConstant m_MICLocalSpectator; +var array m_TextureRefs; +var MaterialInstanceConstant m_MICPlayer[MinimapDisplayType]; +var MaterialInstanceConstant m_MICMinion[MinimapDisplayType]; +var MaterialInstanceConstant m_MICTower[MinimapDisplayType]; +var MaterialInstanceConstant m_MICTitan[MinimapDisplayType]; +var MaterialInstanceConstant m_MICPhoenix[MinimapDisplayType]; +var MaterialInstanceConstant m_MICCapturePoint[MinimapDisplayType]; +var MaterialInstanceConstant m_MICLanePusher[MinimapDisplayType]; +var MaterialInstanceConstant m_MICTowerOlympus[TgMapTeam]; +var MaterialInstanceConstant m_MICTitanOlympus[MinimapDisplayType]; +var MaterialInstanceConstant m_MICPhoenixOlympus[TgMapTeam]; +var MaterialInstanceConstant m_MICMonster; +var LinearColor m_PortalLinkColor[MinimapDisplayType]; +var BuffMonsterMIC m_MICBuffMonster[MinimapFactoryType]; +var MaterialInstanceConstant m_MICTowerDestroyed; +var MaterialInstanceConstant m_PlayerBackground[MinimapDisplayType]; +var MaterialInstanceConstant m_TowerAttackBackground[MinimapDisplayType]; +var private native const transient BitArray_Mirror m_MaskPoints; +var TgMiniMap.TgMapOrientation m_Orientation; +var TgObject.TgMapTeam m_LocalTeam; +var TgGameHUD.TgClientVisibilityMode m_VisibilityMode; +var byte bUpdateCapturePoint[5]; +var init array m_PortalLayeringIdx; +var init array m_LayeringIdx; +var array m_IndependentPings; + +native function Draw(Canvas theCanvas); // Export UTgMiniMap::execDraw(FFrame&, void* const) + +native function Init(TgPlayerController PC); // Export UTgMiniMap::execInit(FFrame&, void* const) + +native function PingWorldLocation(Vector PingLocation, TgObject.PING_TYPE Pt); // Export UTgMiniMap::execPingWorldLocation(FFrame&, void* const) + +native function bool ShouldRender(); // Export UTgMiniMap::execShouldRender(FFrame&, void* const) + +native function PingMap(float X, float Y, TgObject.PING_TYPE Pt); // Export UTgMiniMap::execPingMap(FFrame&, void* const) + +native function HoverMap(float X, float Y); // Export UTgMiniMap::execHoverMap(FFrame&, void* const) + +native function ClearHover(); // Export UTgMiniMap::execClearHover(FFrame&, void* const) + +native function Vector MapToWorld(Vector Loc); // Export UTgMiniMap::execMapToWorld(FFrame&, void* const) + +native function Vector WorldToMap(Vector Loc); // Export UTgMiniMap::execWorldToMap(FFrame&, void* const) + +native function GetRepInfosForLocation(Vector mapLoc, out array repInfos); // Export UTgMiniMap::execGetRepInfosForLocation(FFrame&, void* const) + +native function bool VerifyMapLocation(float X, float Y); // Export UTgMiniMap::execVerifyMapLocation(FFrame&, void* const) + +native function RemoveAllEntities(); // Export UTgMiniMap::execRemoveAllEntities(FFrame&, void* const) + +native function Clear(); // Export UTgMiniMap::execClear(FFrame&, void* const) + +simulated function CreateMiniMapTexture() { } + +simulated function UpdateMiniMapTexture() { } + +simulated function UpdateMapSize(int newX) { } + +simulated event bool CheckSpectatorState() { } + +defaultproperties +{ + m_PortalLinkColor[0]=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + m_PortalLinkColor[1]=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + m_PortalLinkColor[2]=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + m_PortalLinkColor[3]=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + m_PortalLinkColor[4]=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) + m_PortalLinkColor[5]=(R=0.0000000,G=0.0000000,B=0.0000000,A=1.0000000) +} diff --git a/Development/Src/TgClient/Classes/TgMiniMap_Targeting.uc b/Development/Src/TgClient/Classes/TgMiniMap_Targeting.uc new file mode 100644 index 0000000..978545f --- /dev/null +++ b/Development/Src/TgClient/Classes/TgMiniMap_Targeting.uc @@ -0,0 +1,12 @@ +class TgMiniMap_Targeting extends TgMiniMap + native(GameUI) + config(Engine); + +var MaterialInstanceConstant m_MICWardTarget[MinimapDisplayType]; + +defaultproperties +{ + m_bShouldDisplayMiniMap=true + m_nMaskSize=256 + m_fIconScale=1.5000000 +} diff --git a/Development/Src/TgClient/Classes/TgPartyManager.uc b/Development/Src/TgClient/Classes/TgPartyManager.uc new file mode 100644 index 0000000..45fcfa9 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgPartyManager.uc @@ -0,0 +1,9 @@ +class TgPartyManager extends Object + native + config(Engine); + +var bool m_bLeader; +var bool m_bMember; +var bool m_bLeaving; +var bool m_bDisbanding; +var bool m_bWaitingForLeader; diff --git a/Development/Src/TgClient/Classes/TgRewardCenterManager.uc b/Development/Src/TgClient/Classes/TgRewardCenterManager.uc new file mode 100644 index 0000000..6150048 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgRewardCenterManager.uc @@ -0,0 +1,169 @@ +class TgRewardCenterManager extends Object + native + config(Engine); + +enum QuestType { + EQT_Daily, // 0 + EQT_Collection, // 1 + EQT_Special, // 2 + EQT_Training, // 3 + EQT_ItemQuest, // 4 +}; + +enum QuestRewardDisplayType { + EQRDT_None, // 0 + EQRDT_Crystals, // 1 + EQRDT_Essence, // 2 + EQRDT_Gold, // 3 + EQRDT_Chest, // 4 + EQRDT_Card, // 5 + EQRDT_Item, // 6 + EQRDT_Texture, // 7 +}; + +struct GoalRewardItem { + var int nItemId; + var int nQuantity; + var bool bRental; + structdefaultproperties {} +}; + +struct ActivityGoal { + var int nTargetValue; + var int nProgressValue; + var init string sDescription; + var init string sName; + var bool bClaimed; + var int nGoalId; + var init array pLootItems; + structdefaultproperties {} +}; + +struct PlayerPartyBonus { + var int nPlayerCount; + var float fWorshipperBonus; + var float fXpBonus; + var float fFavorBonus; + structdefaultproperties {} +}; + +struct SeasonTicketGameData { + var int nGameMatchId; + var init string sTeamName1; + var init string sTeamName2; + var init string sTeamAbbr1; + var init string sTeamAbbr2; + var init string sTeamImage1; + var init string sTeamImage2; + var init string sDesc; + var int nTeamId1; + var int nTeamId2; + var init string sExternalLink; + var int nSelectedTeam; + var int nWinningTeam; + var int nStartTime; + var int nEventId; + var int nEventType; + var int nGroupId; + var int nRoundType; + var int nRoundTypeSortOrder; + var init string sRoundName; + var int nDisplayGrouping; + var init string sDisplayGroupingName; + var int nMatchCount; + var int nTeam1Wins; + var int nTeam2Wins; + var int nTeamMatchWinCount1; + var int nTeamMatchWinCount2; + var int nTeamMatchLossCount1; + var int nTeamMatchLossCount2; + var int NSTG_StartingWeek; + var int NSTG_StartYear; + var int NSTG_StartMonth; + var int NSTG_StartDate; + var int NSTG_StartHour; + var int NSTG_StartMin; + var int NSTG_StartDayOfWeek; + var bool bFeatured; + var bool bMatchOver; + structdefaultproperties {} +}; + +struct SeasonTicketTeamData { + var int nTeamId; + var int nEventTeamId; + var init string sName; + var int nSeedNumber; + structdefaultproperties {} +}; + +struct SeasonTicketEventData { + var int nEventId; + var int nStartTime; + var int nNewCount; + var init string sName; + var int nEventType; + var int nMaxPicks; + var init array m_PickedTeams; + var init array m_TeamData; + structdefaultproperties {} +}; + +struct QuestData { + var int nQuestId; + var int nActivityId; + var int nGoalId; + var int nLootTableId; + var int nReceivedTime; + var int nNameId; + var int nDescId; + var int nCompletionGoal; + var int nCurrentProgress; + var int nIconIndex; + var int nQuestType; + var int nEndTime; + var int nProgressEarned; + var int nDisplayOrder; + var bool bCanAbandon; + var bool bSkipped; + var bool bSeen; + var bool bNew; + var init array pLootItems; + structdefaultproperties {} +}; + +var UIGameMoviePlayer m_pMovie; +var bool m_bPlayerLoggedIn; +var bool m_bRewardClaimedToday; +var bool m_bDayHasRolledOver; +var bool m_bEsportsGameLive; +var bool m_bHasQuestProgress; +var bool m_bHasQuestActivities; +var bool m_bHasQuestRewards; +var bool m_bQuestsSeenToday; +var int m_nConsecutiveRewardDays; +var int m_nLengthOfDay; +var float m_fTimeTillNextDay; +var array m_pLevelUpGoals; +var int m_nPlayerLevel; +var array m_pReturningBonus; +var int m_nPartyBonusStartTime; +var int m_nPartyBonusEndTime; +var array m_pPartyBonuses; +var array m_GameDatas; +var array m_EventData; +var float m_fNextESportsEventUpdate; +var int m_nESportsGamesStartingSoon; +var float m_fTimeTillNextWeek; +var array m_QuestList; +var array m_TrainingQuestList; +var array m_ProgressedQuestList; + +native function Initialize(UIGameMoviePlayer pMoviePlayer); // Export UTgRewardCenterManager::execInitialize(FFrame&, void* const) + +defaultproperties +{ + m_bRewardClaimedToday=true + m_nConsecutiveRewardDays=-1 + m_nLengthOfDay=86400 +} diff --git a/Development/Src/TgClient/Classes/TgSceneManager.uc b/Development/Src/TgClient/Classes/TgSceneManager.uc new file mode 100644 index 0000000..2e92b01 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgSceneManager.uc @@ -0,0 +1,34 @@ +class TgSceneManager extends GFxObject within GFxMoviePlayer + native + config(Engine); + +var GFxObject m_loadedScenes; +var private bool bMouseCaptured; + +native function InitializeSceneManager(); // Export UTgSceneManager::execInitializeSceneManager(FFrame&, void* const) + +native function KillScene(string SceneName); // Export UTgSceneManager::execKillScene(FFrame&, void* const) + +native function LoadScene(string SceneName); // Export UTgSceneManager::execLoadScene(FFrame&, void* const) + +native function UnloadScene(string SceneName); // Export UTgSceneManager::execUnloadScene(FFrame&, void* const) + +native function ToggleScene(string SceneName); // Export UTgSceneManager::execToggleScene(FFrame&, void* const) + +native function UnloadAllScenes(array exclusionList); // Export UTgSceneManager::execUnloadAllScenes(FFrame&, void* const) + +native function ListOpenScenes(); // Export UTgSceneManager::execListOpenScenes(FFrame&, void* const) + +native function bool IsSceneLoaded(string SceneName); // Export UTgSceneManager::execIsSceneLoaded(FFrame&, void* const) + +native function PushMouseCapture(); // Export UTgSceneManager::execPushMouseCapture(FFrame&, void* const) + +native function PopMouseCapture(); // Export UTgSceneManager::execPopMouseCapture(FFrame&, void* const) + +native function PushKeyCapture(); // Export UTgSceneManager::execPushKeyCapture(FFrame&, void* const) + +native function PopKeyCapture(); // Export UTgSceneManager::execPopKeyCapture(FFrame&, void* const) + +native function ShowCharacterCard(int nClassId); // Export UTgSceneManager::execShowCharacterCard(FFrame&, void* const) + +native function ToggleTwitch(); // Export UTgSceneManager::execToggleTwitch(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/TgSetting.uc b/Development/Src/TgClient/Classes/TgSetting.uc new file mode 100644 index 0000000..57f3e98 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgSetting.uc @@ -0,0 +1,122 @@ +class TgSetting extends TgObject + native(SettingsUI) + config(Engine); + +enum SETTING_TYPE { + SET_RESOLUTION, // 0 + SET_ASPECTRATIO, // 1 + SET_SCREENTYPE, // 2 + SET_ANTIALIASING, // 3 + SET_VERTICALSYNC, // 4 + SET_DETAILWORLD, // 5 + SET_DETAILSHADOW, // 6 + SET_DETAILTEXTURE, // 7 + SET_DETAILPARTICLE, // 8 + SET_SHADERQUALITY, // 9 + SET_GAMMALEVEL, // 10 + SET_FOV, // 11 + SET_SAFEFRAME, // 12 + SET_HUDMINIMAP, // 13 + SET_HUDTEAMS, // 14 + SET_HUDDAMAGE, // 15 + SET_HUDCOMBATLOG, // 16 + SET_HUDAUTOLEVEL, // 17 + SET_HUDHEALTHBAR, // 18 + SET_HUDBLOOM, // 19 + SET_HUDCOLOR, // 20 + SET_HUDRETICLE, // 21 + SET_VOLUMEMASTER, // 22 + SET_VOLUMEEFFECTS, // 23 + SET_VOLUMEMUSIC, // 24 + SET_VOLUMEVOICE, // 25 + SET_VOLUMENOTIFY, // 26 + SET_MOUSEINVERT, // 27 + SET_MOUSESMOOTH, // 28 + SET_ALLOWGAMEPAD, // 29 + SET_MOUSESENSITIVITY, // 30 + SET_XAXISSENSITIVITY, // 31 + SET_YAXISSENSITIVITY, // 32 + SET_AIMACCELMODE, // 33 + SET_AIMACCELBOOST, // 34 + SET_GAMEPADINVERT, // 35 + SET_DEADZONEINNER, // 36 + SET_DEADZONEOUTER, // 37 + SET_SHOWGAMETIPS, // 38 + SET_SPECTATE, // 39 + SET_SPECTATORPLAYERICONS, // 40 + SET_SPECTATORSHOWITEMS, // 41 + SET_SPECTATORBLUETEAMSERIESSCORE, // 42 + SET_SPECTATORREDTEAMSERIESSCORE, // 43 + SET_CONTROLICONSTYLE, // 44 + SET_HAPTICFEEDBACK, // 45 + SET_HUDTEAMUI, // 46 + SET_VOLUMEVOICECHAT, // 47 + SET_VOLUMEVOICECHATMIC, // 48 + SET_ENABLEVOICECHAT, // 49 + SET_USEVOICECHATPUSHTOTALK, // 50 + SET_TOGGLEZOOM, // 51 + SET_AUDIOPANNING, // 52 + SET_SCOPESENSITIVITY, // 53 + SET_RETICLECHANGE, // 54 + SET_USEPROFANITYFILTER, // 55 +}; + +enum SETTING_BINARY { + SEB_DISABLED, // 0 + SEB_ENABLED, // 1 +}; + +enum SETTING_SCREENTYPE { + SST_WINDOWED, // 0 + SST_BORDERLESS, // 1 + SST_FULLSCREEN, // 2 +}; + +enum SETTING_ANTIALIASING { + SAA_OFF, // 0 + SAA_TWO, // 1 + SAA_FOUR, // 2 + SAA_EIGHT, // 3 +}; + +enum OPTION_DETAILLEVEL { + SDL_LOWEST, // 0 + SDL_LOW, // 1 + SDL_MEDIUM, // 2 + SDL_HIGH, // 3 +}; + +enum SETTING_AIMACCELMODE { + SAIM_DYNAMIC, // 0 + SAIM_CLASSIC, // 1 + SAIM_PRECISION, // 2 +}; + +enum SETTING_DEADZONESIZE { + SDZS_MINIMUM, // 0 + SDZS_SMALL, // 1 + SDZS_MEDIUM, // 2 + SDZS_LARGE, // 3 +}; + +enum SETTING_AUDIOPANNING { + SAP_SPEAKERS, // 0 + SAP_HEADPHONES, // 1 +}; + +struct OptionData { + var float fValue; + var float fOther; + var init string sName; + structdefaultproperties {} +}; + +var float m_fDefault; +var float m_fConfigDefault; +var float m_fOriginal; +var float m_fMax; +var float m_fMin; +var float m_fTemp; +var float m_fValue; +var TgSetting.SETTING_TYPE m_eType; +var array m_Options; diff --git a/Development/Src/TgClient/Classes/TgSettingsManager.uc b/Development/Src/TgClient/Classes/TgSettingsManager.uc new file mode 100644 index 0000000..d9cedbd --- /dev/null +++ b/Development/Src/TgClient/Classes/TgSettingsManager.uc @@ -0,0 +1,65 @@ +class TgSettingsManager extends TgObject + native(SettingsUI) + config(Engine); + +struct TgKeyCommand { + var bool bAllowGamepadAxis; + var int nPropId; + var init string sKeyCommand; + var init string sMirroredCommand; + var init array sDefaultKeys; + structdefaultproperties {} +}; + +struct TgKeyBind { + var Pointer pCommand; + var bool bOverrides; + var init array sKeys; + structdefaultproperties {} +}; + +struct TgSettingsSet { + var init array Keybinds; + var Pointer CaseSet; + structdefaultproperties {} +}; + +var int m_nSelectedChampion; +var array m_Settings; +var const array m_Commands; + +native exec function string GetKeybindExtended(string sCommand, int nAlt, optional int nBotId=-1); // Export UTgSettingsManager::execGetKeybindExtended(FFrame&, void* const) + +defaultproperties +{ + m_Commands[0]=(bAllowGamepadAxis=true,nPropId=1126,sKeyCommand="GBA_MoveForward",sMirroredCommand="",sDefaultKeys=none) + m_Commands[1]=(bAllowGamepadAxis=true,nPropId=1127,sKeyCommand="GBA_MoveBackward",sMirroredCommand="GBA_MoveForward",sDefaultKeys=none) + m_Commands[2]=(bAllowGamepadAxis=true,nPropId=1128,sKeyCommand="GBA_StrafeLeft",sMirroredCommand="GBA_StrafeRight",sDefaultKeys=none) + m_Commands[3]=(bAllowGamepadAxis=true,nPropId=1129,sKeyCommand="GBA_StrafeRight",sMirroredCommand="",sDefaultKeys=none) + m_Commands[4]=(bAllowGamepadAxis=true,nPropId=1300,sKeyCommand="GBA_TurnLeft",sMirroredCommand="GBA_TurnRight",sDefaultKeys=none) + m_Commands[5]=(bAllowGamepadAxis=true,nPropId=1301,sKeyCommand="GBA_TurnRight",sMirroredCommand="",sDefaultKeys=none) + m_Commands[6]=(bAllowGamepadAxis=true,nPropId=2010,sKeyCommand="GBA_LookUp",sMirroredCommand="",sDefaultKeys=none) + m_Commands[7]=(bAllowGamepadAxis=true,nPropId=2011,sKeyCommand="GBA_LookDown",sMirroredCommand="GBA_LookUp",sDefaultKeys=none) + m_Commands[8]=(bAllowGamepadAxis=false,nPropId=1304,sKeyCommand="GBA_AutoRun",sMirroredCommand="",sDefaultKeys=none) + m_Commands[9]=(bAllowGamepadAxis=false,nPropId=1131,sKeyCommand="GBA_Jump",sMirroredCommand="",sDefaultKeys=none) + m_Commands[10]=(bAllowGamepadAxis=false,nPropId=1137,sKeyCommand="GBA_Fire",sMirroredCommand="",sDefaultKeys=none) + m_Commands[11]=(bAllowGamepadAxis=false,nPropId=1305,sKeyCommand="GBA_CancelFire",sMirroredCommand="",sDefaultKeys=none) + m_Commands[12]=(bAllowGamepadAxis=false,nPropId=1138,sKeyCommand="GBA_Reload",sMirroredCommand="",sDefaultKeys=none) + m_Commands[13]=(bAllowGamepadAxis=false,nPropId=1306,sKeyCommand="GBA_Ability_1",sMirroredCommand="",sDefaultKeys=none) + m_Commands[14]=(bAllowGamepadAxis=false,nPropId=1307,sKeyCommand="GBA_Ability_2",sMirroredCommand="",sDefaultKeys=none) + m_Commands[15]=(bAllowGamepadAxis=false,nPropId=1308,sKeyCommand="GBA_Ability_3",sMirroredCommand="",sDefaultKeys=none) + m_Commands[16]=(bAllowGamepadAxis=false,nPropId=1965,sKeyCommand="GBA_Emote",sMirroredCommand="",sDefaultKeys=none) + m_Commands[17]=(bAllowGamepadAxis=false,nPropId=2032,sKeyCommand="GBA_Flourish",sMirroredCommand="",sDefaultKeys=none) + m_Commands[18]=(bAllowGamepadAxis=false,nPropId=2012,sKeyCommand="GBA_Spray",sMirroredCommand="",sDefaultKeys=none) + m_Commands[19]=(bAllowGamepadAxis=false,nPropId=1153,sKeyCommand="GBA_VGS",sMirroredCommand="",sDefaultKeys=none) + m_Commands[20]=(bAllowGamepadAxis=false,nPropId=1964,sKeyCommand="GBA_CommonCards",sMirroredCommand="",sDefaultKeys=none) + m_Commands[21]=(bAllowGamepadAxis=false,nPropId=1147,sKeyCommand="GBA_Scoreboard",sMirroredCommand="",sDefaultKeys=none) + m_Commands[22]=(bAllowGamepadAxis=false,nPropId=2015,sKeyCommand="GBA_ScoreBoardToggle",sMirroredCommand="",sDefaultKeys=none) + m_Commands[23]=(bAllowGamepadAxis=false,nPropId=2014,sKeyCommand="GBA_DeathRecap",sMirroredCommand="",sDefaultKeys=none) + m_Commands[24]=(bAllowGamepadAxis=false,nPropId=1323,sKeyCommand="GBA_DeathRecapToggle",sMirroredCommand="",sDefaultKeys=none) + m_Commands[25]=(bAllowGamepadAxis=false,nPropId=2016,sKeyCommand="GBA_SkillInfo",sMirroredCommand="",sDefaultKeys=none) + m_Commands[26]=(bAllowGamepadAxis=false,nPropId=2017,sKeyCommand="GBA_SkillInfoToggle",sMirroredCommand="",sDefaultKeys=none) + m_Commands[27]=(bAllowGamepadAxis=false,nPropId=2013,sKeyCommand="GBA_PerCharacterAlt",sMirroredCommand="",sDefaultKeys=none) + m_Commands[28]=(bAllowGamepadAxis=false,nPropId=2008,sKeyCommand="GBA_PushToTalk",sMirroredCommand="",sDefaultKeys=none) + m_Commands[29]=(bAllowGamepadAxis=false,nPropId=2022,sKeyCommand="GBA_UpgradeMenu",sMirroredCommand="",sDefaultKeys=none) +} diff --git a/Development/Src/TgClient/Classes/TgSpectatorHUD.uc b/Development/Src/TgClient/Classes/TgSpectatorHUD.uc new file mode 100644 index 0000000..65f4e14 --- /dev/null +++ b/Development/Src/TgClient/Classes/TgSpectatorHUD.uc @@ -0,0 +1,39 @@ +class TgSpectatorHUD extends TgGameHUD + transient + native(GameUI) + config(Game) + hidecategories(Navigation); + +var byte m_eClientVisibilityMode; +var Actor m_LastUIViewTarget; +var bool m_StatsSeeded; +var bool m_bIsBottomPanelHidden; + +native function UpdateSpectatorViewTarget(Actor Target); // Export UTgSpectatorHUD::execUpdateSpectatorViewTarget(FFrame&, void* const) + +native function UpdateSpectatorViewMode(byte Mode); // Export UTgSpectatorHUD::execUpdateSpectatorViewMode(FFrame&, void* const) + +native function EndMission(bool bPlayerAttacker, TgObject.GAME_WIN_STATE finalWinState); // Export UTgSpectatorHUD::execEndMission(FFrame&, void* const) + +native exec function ToggleBans(); // Export UTgSpectatorHUD::execToggleBans(FFrame&, void* const) + +native exec function SetSpectatorSkillsMode(int nNum); // Export UTgSpectatorHUD::execSetSpectatorSkillsMode(FFrame&, void* const) + +native exec function SetSpectatorTeamMode(int nNum); // Export UTgSpectatorHUD::execSetSpectatorTeamMode(FFrame&, void* const) + +native exec function SetSpectatorStatsMode(int nNum); // Export UTgSpectatorHUD::execSetSpectatorStatsMode(FFrame&, void* const) + +exec function ToggleVisibilityMode() { } + +exec function SetVisibilityMode(byte Mode) { } + +event Tick(float DeltaTime) { } + +native exec function ToggleHUD(); // Export UTgSpectatorHUD::execToggleHUD(FFrame&, void* const) + +function bool ValidateSceneForSpectate(string SceneName) { } + +exec function ToggleCursor(bool bEnabled) { } + +defaultproperties +{} diff --git a/Development/Src/TgClient/Classes/TgStreamManager.uc b/Development/Src/TgClient/Classes/TgStreamManager.uc new file mode 100644 index 0000000..4e4425e --- /dev/null +++ b/Development/Src/TgClient/Classes/TgStreamManager.uc @@ -0,0 +1,80 @@ +class TgStreamManager extends Object + native + config(Engine); + +enum STREAMTYPE { + VST_NONE, // 0 + VST_HIREZ, // 1 + VST_TWITCH, // 2 + VST_TRAINING, // 3 + VST_COMMUNITY, // 4 + VST_NEWS, // 5 +}; + +struct GameStream { + var bool bLive; + var bool bFeatured; + var bool bSpecial; + var TgStreamManager.STREAMTYPE Type; + var init string Title; + var init string StreamURL; + var init string ChannelName; + var init string Description; + var init string Viewers; + structdefaultproperties {} +}; + +var string WatchEnd; +var string m_CurrentChannel; +var int m_nNewsIndex; +var array Streams; +var bool m_hasReceivedStreams; +var bool m_hasAnySpecial; +var bool m_hasAnyFeatured; +var UIGameMoviePlayer m_Movie; + +native function LoadStreams(); // Export UTgStreamManager::execLoadStreams(FFrame&, void* const) + +native function bool OpenStream(int surfaceId, string URL, bool external, float X, float Y, float Width, float Height, float widthReal, float heightReal, optional bool joinChat=true); // Export UTgStreamManager::execOpenStream(FFrame&, void* const) + +native function bool OpenPlayerStream(int nPlayerId, bool external, float X, float Y, float Width, float Height, float widthReal, float heightReal); // Export UTgStreamManager::execOpenPlayerStream(FFrame&, void* const) + +native function bool HasSpecialStreams(); // Export UTgStreamManager::execHasSpecialStreams(FFrame&, void* const) + +event bool ViewStreamIndex(int surfaceId, int Index, optional bool external=false, optional float X=0.0000000, optional float Y=0.0000000, optional float Width=0.0000000, optional float Height=0.0000000, optional float widthReal=0.0000000, optional float heightReal=0.0000000, optional bool joinChat=true) { } + +event CompleteUpdate() { } + +event ResolveChannelName(string sChannel) { } + +delegate int ViewerSort(GameStream A, GameStream B); + +delegate int FeaturedSort(GameStream A, GameStream B); + +delegate int LiveSort(GameStream A, GameStream B); + +function int GetTypeCount(TgStreamManager.STREAMTYPE Type) { } + +function int GetTypeCountWatching(TgStreamManager.STREAMTYPE Type) { } + +function bool IsStream(int Index) { } + +function string GetTitleAtIndex(int Index) { } + +function string GetViewersAtIndex(int Index) { } + +function string GetDescriptionAtIndex(int Index) { } + +function bool IsLiveAtIndex(int Index) { } + +function bool HaveFeature() { } + +function string GetFeatureName(optional int Count=0) { } + +function string GetFeatureDescription(optional int Count=0) { } + +defaultproperties +{ + WatchEnd="/popout" + m_nNewsIndex=-1 +} diff --git a/Development/Src/TgClient/Classes/TgSynchronizedTimer.uc b/Development/Src/TgClient/Classes/TgSynchronizedTimer.uc old mode 100755 new mode 100644 index 278b13f..1d1560a --- a/Development/Src/TgClient/Classes/TgSynchronizedTimer.uc +++ b/Development/Src/TgClient/Classes/TgSynchronizedTimer.uc @@ -1,23 +1,27 @@ -class TgSynchronizedTimer extends GFxObject within GFxMoviePlayer - native; - -var bool m_bPausedByGame; -var bool m_bSuppressCallback; -var bool m_bRunning; -var bool m_bPaused; -var TgTimerManager m_TimerManager; - -// Export UTgSynchronizedTimer::execStartTimer(FFrame&, void* const) -native function StartTimer(float fSeconds); - -// Export UTgSynchronizedTimer::execUpdateTimer(FFrame&, void* const) -native function UpdateTimer(float fElapsed, float fTotal, optional bool bPaused = false, optional bool bFromCallback = false); - -// Export UTgSynchronizedTimer::execExpireTimer(FFrame&, void* const) -native function ExpireTimer(optional bool bFromCallback = false); - -// Export UTgSynchronizedTimer::execIsRunning(FFrame&, void* const) -native function bool IsRunning(); - -// Export UTgSynchronizedTimer::execIsPaused(FFrame&, void* const) -native function bool IsPaused(); \ No newline at end of file +class TgSynchronizedTimer extends GFxObject within GFxMoviePlayer + native + config(Engine); + +var bool m_bPausedByGame; +var bool m_bSuppressCallback; +var bool m_bRunning; +var bool m_bPaused; +var UIMoviePlayer m_MP; +var TgTimerManager m_TimerManager; + +native function StartTimer(float fSeconds); // Export UTgSynchronizedTimer::execStartTimer(FFrame&, void* const) + +native function UpdateTimer(float fElapsed, float fTotal, optional bool bPaused=false, optional bool bFromCallback=false); // Export UTgSynchronizedTimer::execUpdateTimer(FFrame&, void* const) + +native function ExpireTimer(optional bool bFromCallback=false); // Export UTgSynchronizedTimer::execExpireTimer(FFrame&, void* const) + +native function EventCallback(int nTimerId, TgTimerManager.TGT_EVENT eEvent); // Export UTgSynchronizedTimer::execEventCallback(FFrame&, void* const) + +native function bool IsRunning(); // Export UTgSynchronizedTimer::execIsRunning(FFrame&, void* const) + +native function bool IsPaused(); // Export UTgSynchronizedTimer::execIsPaused(FFrame&, void* const) + +defaultproperties +{ + m_nIndex=-1 +} diff --git a/Development/Src/TgClient/Classes/TgThreatModel.uc b/Development/Src/TgClient/Classes/TgThreatModel.uc new file mode 100644 index 0000000..6ef6d7d --- /dev/null +++ b/Development/Src/TgClient/Classes/TgThreatModel.uc @@ -0,0 +1,27 @@ +class TgThreatModel extends Object + native(ThreatModel) + config(Game); + +var array m_PawnsWithThreatLevels; +var bool m_bThreatSystemEnabled; +var bool m_bOcclusionSystemEnabled; +var bool m_bDebugThreatSystem; +var config float m_fThreatCoefficientProximity; +var config float m_fThreatCoefficientOcclusion; +var config float m_fThreatCoefficientBinnedOcclusion; +var config float m_fThreatCoefficientUlt; +var config float m_fThreatCoefficientShotAt; +var config float m_fThreatCoefficientSeenBy; +var config float m_fThreatCoefficientDamaged; +var config float m_fThreatCoefficientFocused; +var config float m_fThreatCoefficientFocusTarget; +var config float m_fThreatDecayCoefficientShotAt; +var config float m_fThreatDecayCoefficientSeenBy; +var config float m_fThreatDecayCoefficientUlt; +var string m_DebugThreatSystemChannel; + +defaultproperties +{ + m_bThreatSystemEnabled=true + m_bOcclusionSystemEnabled=true +} diff --git a/Development/Src/TgClient/Classes/UIAcademy.uc b/Development/Src/TgClient/Classes/UIAcademy.uc new file mode 100644 index 0000000..29f454b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIAcademy.uc @@ -0,0 +1,36 @@ +class UIAcademy extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIACADEMY_BUTTONS = 8; + +const UIACADEMY_VIDEOTYPE = 11427; + +struct AcademyVideoButton { + var string sImagePath; + var string sVideoURL; + var GFxObject pClip; + var GFxObject pImage; + var GFxObject pTitle; + var GFxObject pSubtitle; + structdefaultproperties {} +}; + +var AcademyVideoButton m_Buttons[8]; + +defaultproperties +{ + m_Buttons[0]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[1]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[2]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[3]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[4]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[5]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[6]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_Buttons[7]=(sImagePath="Achievements.Achievements_I75",sVideoURL="",pClip=none,pImage=none,pTitle=none,pSubtitle=none) + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_bBlur=true + m_Name="UIAcademy" +} diff --git a/Development/Src/TgClient/Classes/UIAccountLinkPopup.uc b/Development/Src/TgClient/Classes/UIAccountLinkPopup.uc new file mode 100644 index 0000000..b6fcd92 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIAccountLinkPopup.uc @@ -0,0 +1,17 @@ +class UIAccountLinkPopup extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var init string m_sUserEmail; + +event SetOSSRecordingEnabled(bool bEnabled) { } + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIAccountLink' + m_OptionList[0]=245 + m_OptionList[1]=3 + m_OptionList[2]=0 + m_bIsPopup=true + m_Name="UIAccountLinkPopup" +} diff --git a/Development/Src/TgClient/Classes/UIAchievementPopups.uc b/Development/Src/TgClient/Classes/UIAchievementPopups.uc new file mode 100644 index 0000000..19bed74 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIAchievementPopups.uc @@ -0,0 +1,49 @@ +class UIAchievementPopups extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIACHIEVEMENTPOPUPS_PROGRESS_PERCENT = 0.2; + +struct AchievementProgressData { + var bool hasBeenProcessed; + var bool isCompleted; + var int ActivityId; + var int goalId; + var int goalGroupType; + var int numGoalsInGroup; + var int descMsgId; + var int activityMsgId; + var int goalMsgId; + var int activationValueId; + var int countToComplete; + var int currentCount; + var int countDelta; + var int titleMsgId; + var int IconId; + var int pointValue; + structdefaultproperties {} +}; + +var bool m_bNewElementsQueued; +var array m_rawProgressList; +var array m_queuedProgressList; +var GFxObject m_pPopup; +var GFxObject m_pUnlockedTF; +var GFxObject m_pPointsTF; +var GFxObject m_pNameTF; +var GFxObject m_pDescriptionTF; +var GFxObject m_pIconLoader; +var GFxObject m_pProgressBar; +var GFxObject m_pProgressBarMask; +var GFxObject m_pProgressBarTF; +var GFxObject m_pProgressBarFill; +var float m_fDisplayTimer; +var float m_fDelayTimer; + +defaultproperties +{ + m_bBlur=true + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_Name="UIAchievementPopups" +} diff --git a/Development/Src/TgClient/Classes/UIAcquisition.uc b/Development/Src/TgClient/Classes/UIAcquisition.uc new file mode 100644 index 0000000..65e9154 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIAcquisition.uc @@ -0,0 +1,196 @@ +class UIAcquisition extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIACQUISITION_ITEMS = 4; + +const UIACQUISITION_LINES = 6; + +const UIACQUISITION_TABS = 2; + +const UIACQUISITION_CURRENCIES = 3; + +const UIACQUISITION_PURCHASE_OPTIONS = 2; + +const UIACQUISITION_RENTAL_OPTIONS = 3; + +enum UIPURCHASE_TYPE { + UIPT_NONE, // 0 + UIPT_ITEM, // 1 + UIPT_CARD, // 2 + UIPT_WEAP, // 3 + UIPT_BUNDLE, // 4 +}; + +struct UIPurchaseScreen { + var GFxObject mcScreen; + var GFxObject mcWait; + var GFxObject mcTitle; + var GFxObject mcCursor; + var GFxObject mcCancel; + var GFxObject mcDivider; + var GFxObject mcSpinner; + var GFxObject mcSubtitle; + var GFxObject mcOption[3]; + var GFxObject mcButton[3]; + var GFxObject mcCurrency[3]; + var GFxObject mcCurrencyIcon[3]; + var GFxObject mcControllerCost[3]; + var GFxObject mcControllerCurrencyIcon[3]; + var GFxObject mcControllerButton[3]; + var GFxObject mcPreviousCost[3]; + var GFxObject mcPreviousCostStrikethrough[3]; + var GFxObject mcTab[2]; + var GFxObject mcTabSelected[2]; + var GFxObject mcTabHighlight[2]; + var GFxObject mcRentalDivider0; + var GFxObject mcRentalDivider1; + var GFxObject mcRentalOption[3]; + var GFxObject mcRentalButton[3]; + var GFxObject mcRentalCurrencyIcon[3]; + var GFxObject mcRentalControllerCost[3]; + var GFxObject mcRentalControllerCurrencyIcon[3]; + var GFxObject mcRentalControllerButton[3]; + var GFxObject mcRentalPreviousCost[3]; + var GFxObject mcRentalPreviousCostStrikethrough[3]; + var GFxObject mcCouponSelect; + var GFxObject mcCouponSelectArrow0; + var GFxObject mcCouponSelectArrow1; + var GFxObject mcCouponSelectIcon; + var GFxObject mcCouponSelectTF; + var GFxObject mcCouponSelectHighlight; + var UIComponent_HoldPrompt Hold; + var TgGFxGroup grScreen; + var TgGFxGroup grRentalScreen; + structdefaultproperties {} +}; + +struct UIAcquiredItem { + var UIInteractable_Item Card; + var GFxObject mcEquipButton; + var GFxObject mcEquippedText; + var GFxObject mcEquipPrompt; + var GFxObject mcStoreItemContainer; + var GFxObject mcItemContainer; + var GFxObject mcBoostContainer; + var GFxObject mcChestContainer; + var GFxObject mcChampionIcon; + var GFxObject mcChampionImage; + var GFxObject mcChampionTitle; + var GFxObject mcItemIcon; + var GFxObject mcCardIcon; + var GFxObject mcCurrency; + var GFxObject mcRarityFrame; + var GFxObject mcRarityText; + var GFxObject mcItemTitle; + var GFxObject mcItemAudio; + var GFxObject mcItemChampion; + var GFxObject mcItemChampionIcon; + var GFxObject mcOwnedText; + var GFxObject mcOwnedCheckmark; + structdefaultproperties {} +}; + +struct UIAcquiredCoupon { + var GFxObject mcRoot; + var GFxObject mcAnimTitle; + var GFxObject mcTitle; + var GFxObject mcCouponDescrition; + var GFxObject mcCostPrev; + var GFxObject mcCostPrevIcon; + var GFxObject mcCostPrevStrikethrough; + var GFxObject mcCostCurrent; + var GFxObject mcCostCurrentIcon; + var GFxObject mcCouponExpires; + var GFxObject mcButton0; + var GFxObject mcButton1; + var GFxObject mcPrompt0; + var GFxObject mcPrompt1; + var GFxObject mcFrame; + var GFxObject mcFrameLine; + var GFxObject mcRarityFrame; + var GFxObject mcItemImageStack; + var GFxObject mcCardImageStack; + var GFxObject mcChestImageStack; + var GFxObject mcTexture; + structdefaultproperties {} +}; + +struct AcquiredItem { + var int eItemType; + var int nItemId; + var int nQuantity; + structdefaultproperties {} +}; + +var int m_nPurchaseBot; +var int m_nPurchaseItem; +var int m_nPurchaseType; +var int m_nPurchaseBundle; +var int m_nPurchaseVendor; +var int m_nPurchaseLootItem; +var int m_eCurrencyUsed; +var int m_nMultiItemIndex; +var int m_nCurrentItemId; +var int m_nCurrentTab; +var int m_nCurrentCoupon; +var bool m_bBoost; +var bool m_bPurchasing; +var bool m_bDisplayCard; +var bool m_bUseMultiItemDisplay; +var bool m_bAcquiredCard; +var float m_fRotation; +var float m_fAnimTimer; +var float m_fLineTimer; +var float m_fLockTimer; +var float m_fPurchaseTimer; +var GFxObject m_mcFrame; +var GFxObject m_mcFrameLine; +var GFxObject m_mcFrameGlow; +var GFxObject m_mcBlocker; +var UIComponent_AcquisitionCarousel m_Carousel; +var UIPurchaseScreen m_PurchaseScreen; +var UIPurchaseScreen m_BoostScreen; +var GFxObject m_mcAcquired; +var UIInteractable_Item m_mcAcquiredCard; +var GFxObject m_mcAcquiredGlow; +var GFxObject m_mcAcquiredItem; +var GFxObject m_mcAcquiredTitle; +var GFxObject m_mcAcquiredTitleTF; +var GFxObject m_mcAcquiredAnimTitle; +var GFxObject m_mcAcquiredAnimTitleTF; +var GFxObject m_mcAcquiredButtonOk; +var GFxObject m_mcAcquiredButtonMultiOk; +var GFxObject m_mcAcquiredButtonDismiss; +var GFxObject m_mcAcquiredPrompt; +var GFxObject m_mcAcquiredPromptDismiss; +var GFxObject m_mcAcquiredSubtitle; +var GFxObject m_mcAcquiredSubtitleTF; +var GFxObject m_mcAcquiredCountTF; +var GFxObject m_mcAcquiredButtonEquipAll; +var array m_Items; +var array m_PurchaseOptions; +var array m_PurchaseItems; +var UIAcquiredItem m_AcquiredItem; +var UIAcquiredCoupon m_AcquiredCoupon; +var AkBaseSoundObject m_scAcquireStart; +var AkBaseSoundObject m_scAcquireFinish; +var AkEvent m_akPurchaseItem; +var SoundCue m_scUnlocked; + +defaultproperties +{ + m_scAcquireStart=AkEvent'UI_Menu_CardCraft_Buildup_Play' + m_scAcquireFinish=AkEvent'UI_Menu_CardCraft_Finish_Play' + m_akPurchaseItem=AkEvent'UI_Menu_Purchase_Play' + m_scUnlocked=SoundCue'A_CUE_ChestOpen_Medium_Ending_Explosion_5' + m_UISceneClass=Class'UIScene_UIAcquisition' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=1 + m_bBlur=true + m_bResetFocusOnShow=true + m_bIsPopup=true + m_bPushesSceneFromSubscenes=true + m_Name="UIAcquisition" +} diff --git a/Development/Src/TgClient/Classes/UIBackground.uc b/Development/Src/TgClient/Classes/UIBackground.uc new file mode 100644 index 0000000..be18722 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIBackground.uc @@ -0,0 +1,18 @@ +class UIBackground extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIBACKGROUND_TYPES = 8; + +var byte m_eState; +var float m_fAnimationDelay; +var float m_fAnimationTimer; +var GFxObject m_mcAnimation; +var GFxObject m_mcImage[8]; + +defaultproperties +{ + m_fAnimationDelay=10.0000000 + m_bVisibleOnLoad=true + m_Name="UIBackground" +} diff --git a/Development/Src/TgClient/Classes/UIChampion.uc b/Development/Src/TgClient/Classes/UIChampion.uc new file mode 100644 index 0000000..38adb75 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIChampion.uc @@ -0,0 +1,315 @@ +class UIChampion extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UIScene_UIChampion); + +const UICHAMPION_SLOTS = 8; + +const UICHAMPION_ITEMS = 9; + +const UICHAMPION_CARDS = 5; + +const UICHAMPION_EQUIPS = 4; + +const UICHAMPION_SKILLS = 5; + +const UICHAMPION_ARROWS = 2; + +const UICHAMPION_HEADERS = 5; + +const UICHAMPION_TITLES = 4; + +const UICHAMPION_CHOICES = 16; + +const UICHAMPION_OPTIONS = 5; + +const UICHAMPION_ITEMTABS = 6; + +const UICHAMPION_LOADOUTS = 6; + +const UICHAMPION_SEARCHES = 3; + +const UICHAMPION_LIST_SIZE = 6; + +enum UIITEMTAB_STATE { + UIIT_HEADS, // 0 + UIIT_BODY, // 1 + UIIT_WEAPONS, // 2 + UIIT_EMOTES, // 3 + UIIT_VOICES, // 4 + UIIT_MVPPOSES, // 5 + UIIT_SPRAYS, // 6 +}; + +enum UISEARCH_STATE { + UISS_NONE, // 0 + UISS_TYPE, // 1 + UISS_NAME, // 2 + UISS_LIST, // 3 +}; + +struct UICustomItemData { + var GFxObject pButton; + var bool bUnlockable; + var bool bChest; + var bool bCollection; + structdefaultproperties {} +}; + +struct SearchListEntry { + var string PlayerName; + var UniqueNetId PlayerNetId; + structdefaultproperties {} +}; + +var int m_nCardIndex; +var int m_nLoadoutIndex; +var int m_nTempHeadId; +var int m_nTempSkinId; +var int m_nTempEmoteId; +var int m_nTempVoiceId; +var int m_nTempWeaponId; +var int m_nTempMVPPose; +var int m_nTempSpray; +var int m_nScrollIndex; +var int m_nSearchIndex; +var int m_nCollectionIndex; +var int m_nImportIndex; +var int m_nNavigateType; +var int m_nNavigateIndex; +var bool m_bScrolling; +var bool m_bImporting; +var bool m_bHovering; +var bool m_bRotating; +var bool m_bRenaming; +var bool m_bCardSelect; +var bool m_bErrorPopup; +var bool m_bPurchasing; +var bool m_bEditLoadout; +var bool m_bPromptRename; +var bool m_bResetCollection; +var bool m_bAllImportOwned; +var bool m_bIsMasteryRewards; +var float m_fPreviousPosX; +var float m_fUltimateTimeout; +var float m_fSearchTimeout; +var float m_fSlotLockFadeIn; +var float m_fSlotLockFadeOut; +var string m_sSearchName; +var array m_nCardChoices; +var array m_nIndexMappings; +var array m_SearchList; +var UIScene_UIChampion.UICHAMPION_STATE m_eState; +var UIChampion.UIITEMTAB_STATE m_eTabState; +var UIChampion.UISEARCH_STATE m_eSearchState; +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderFrame; +var GFxObject m_mcRotator; +var GFxObject m_mcScrollBar; +var GFxObject m_mcHeaderButton[5]; +var GFxObject m_mcHeaderButtonCTA[5]; +var GFxObject m_mcHeaderButtonLine[5]; +var GFxObject m_mcHeaderButtonGlow[5]; +var GFxObject m_mcHeaderButtonBounds[5]; +var GFxObject m_mcHeaderButtonShadow[5]; +var GFxObject m_mcHeaderButtonSelected[5]; +var GFxObject m_mcHeaderButtonHighlight[5]; +var GFxObject m_mcSkills; +var GFxObject m_mcSkill[5]; +var GFxObject m_mcSkillKey[5]; +var GFxObject m_mcSkillBase[5]; +var GFxObject m_mcSkillIcon[5]; +var GFxObject m_mcSkillTitle[5]; +var GFxObject m_mcSkillDamage[5]; +var GFxObject m_mcSkillSubtitle[5]; +var GFxObject m_mcSkillCooldown[5]; +var GFxObject m_mcSkillCooldownTF[5]; +var GFxObject m_mcError; +var GFxObject m_mcErrorTitle; +var GFxObject m_mcErrorButton; +var GFxObject m_mcErrorSubtitle; +var TgGFxGroup m_grError; +var GFxObject m_mcSearch; +var GFxObject m_mcSearchFrame; +var GFxObject m_mcSearchBlocker; +var GFxObject m_mcSearchType; +var GFxObject m_mcSearchTypeButton[3]; +var GFxObject m_mcSearchTypeClose; +var GFxObject m_mcSearchTypeTitle; +var GFxObject m_mcSearchList; +var GFxObject m_mcSearchListError; +var GFxObject m_mcSearchListTitle; +var GFxObject m_mcSearchListClose; +var GFxObject m_mcSearchListScrollBar; +var GFxObject m_mcSearchListRow[6]; +var GFxObject m_mcSearchListRowName[6]; +var GFxObject m_mcSearchListRowRank[6]; +var GFxObject m_mcSearchListRowImport[6]; +var GFxObject m_mcSearchName; +var GFxObject m_mcSearchNameDone; +var GFxObject m_mcSearchNameClose; +var GFxObject m_mcSearchNameError; +var GFxObject m_mcSearchNameInput; +var TgGFxGroup m_grSearch; +var TgGFxGroup m_grSearchName; +var TgGFxGroup m_grSearchList; +var GFxObject m_mcImport; +var GFxObject m_mcImportDone; +var GFxObject m_mcImportPage; +var GFxObject m_mcImportTitle; +var GFxObject m_mcImportClose; +var GFxObject m_mcImportError; +var GFxObject m_mcImportBumper[2]; +var GFxObject m_mcImportCard[5]; +var GFxObject m_mcImportCardInfo[5]; +var GFxObject m_mcImportCardPrice[5]; +var GFxObject m_mcImportArrow[2]; +var TgGFxGroup m_grImport; +var GFxObject m_mcRename; +var GFxObject m_mcRenameDone; +var GFxObject m_mcRenameDoneTF; +var GFxObject m_mcRenameTitle; +var GFxObject m_mcRenameInput; +var GFxObject m_mcRenameCancel; +var GFxObject m_mcRenameCancelTF; +var TgGFxGroup m_grRename; +var GFxObject m_mcCards; +var UIInteractable_Item m_mcCard[16]; +var GFxObject m_mcCardTitles[4]; +var GFxObject m_mcCardTitleIcons[4]; +var TgGFxGroup m_grCard; +var GFxObject m_mcSound; +var GFxObject m_mcCollection; +var UIComponent_Dropdown m_CollectionViewDropdown; +var UIComponent_Dropdown m_CollectionSortDropdown; +var GFxObject m_mcCollectionProgressOwned; +var GFxObject m_mcCollectionProgressTotal; +var GFxObject m_mcCollectionProgressMask; +var UIComponentPool m_CollectionPool; +var GFxObject m_mcCollectionScrollBar; +var array m_CollectionCards; +var float m_fCollectionCardWidth; +var float m_fCollectionCardHeight; +var float m_fCollectionCardXSpacing; +var float m_fCollectionCardYSpacing; +var float m_fCollectionXOffset; +var float m_fCollectionYOffset; +var UIDataItem m_CollectionDetailItem; +var GFxObject m_mcCollectionDetails; +var GFxObject m_mcCollectionDetailsTitle; +var GFxObject m_mcCollectionDetailsRarity; +var UIInteractable_Item m_CollectionDetailsCard; +var GFxObject m_mcCollectionDetailsCraftButton; +var GFxObject m_mcCollectionCraftPrompt; +var GFxObject m_mcCollectionDetailsDisenchantText; +var GFxObject m_mcCollectionDetailsDisenchantButton; +var GFxObject m_mcCollectionDisenchantPrompt; +var GFxObject m_mcCollectionDisenchantPromptCurrency; +var GFxObject m_mcCollectionDisenchantPromptText; +var TgGFxGroup m_grCollection; +var GFxObject m_mcLoadouts; +var GFxObject m_mcLoadoutImport; +var GFxObject m_mcLoadoutImportTitle; +var GFxObject m_mcLoadout[6]; +var GFxObject m_mcLoadoutTitle[6]; +var GFxObject m_mcLoadoutSubtitle[6]; +var UIInteractable_Button m_LoadoutEditButton[6]; +var UIInteractable_Button m_LoadoutDeleteButton[6]; +var TgGFxGroup m_grLoadouts; +var GFxObject m_mcEdit; +var UIComponent_AbilityPointsPool m_EditAbilityPointsPool; +var GFxObject m_mcEditTitle; +var GFxObject m_mcEditSubtitle; +var GFxObject m_mcEditPoints; +var GFxObject m_mcEditPointsTitle; +var GFxObject m_mcEditPointsProgress; +var GFxObject m_mcEditCard[5]; +var GFxObject m_mcEditInfo[5]; +var GFxObject m_mcEditSlot[5]; +var GFxObject m_mcEditPowerUp[5]; +var GFxObject m_mcEditPowerDown[5]; +var GFxObject m_mcEditSlotTitle[5]; +var GFxObject m_mcEditOption[5]; +var GFxObject m_mcEditOptionTitle[5]; +var TgGFxGroup m_grEdit; +var TgGFxGroup m_grEditButtons; +var GFxObject m_mcSlots; +var GFxObject m_mcSlot[8]; +var GFxObject m_mcSlotBack[8]; +var GFxObject m_mcSlotLock[8]; +var GFxObject m_mcSlotType[8]; +var GFxObject m_mcSlotIcon[8]; +var GFxObject m_mcSlotName[8]; +var GFxObject m_mcSlotFade[8]; +var GFxObject m_mcSlotChest[8]; +var GFxObject m_mcSlotEmpty[8]; +var GFxObject m_mcSlotFrame[8]; +var GFxObject m_mcSlotIcon_Icon[8]; +var GFxObject m_mcSlotIcon_CardIcon[8]; +var GFxObject m_mcSlotLocked[8]; +var GFxObject m_mcSlotPriceA[8]; +var GFxObject m_mcSlotPriceB[8]; +var GFxObject m_mcSlotRarity[8]; +var GFxObject m_mcSlotUnlock[8]; +var GFxObject m_mcSlotOptions[8]; +var GFxObject m_mcSlotIconFrame[8]; +var GFxObject m_mcSlotOwnership[8]; +var GFxObject m_mcSlotCTA[8]; +var TgGFxGroup m_grSlots; +var GFxObject m_mcItems; +var GFxObject m_mcItemHeader; +var GFxObject m_mcItemHeaderBack; +var GFxObject m_mcItemHeaderType; +var GFxObject m_mcItemHeaderName; +var GFxObject m_mcItemHeaderOwned; +var GFxObject m_mcItemHeaderTotal; +var GFxObject m_mcItemHeaderUnlocks; +var GFxObject m_mcItemHeaderProgress; +var GFxObject m_mcItemContainer; +var GFxObject m_mcItemScrollBar; +var GFxObject m_mcItemRentalText; +var GFxObject m_mcItemRentalTextLabel; +var GFxObject m_mcItemRentalTextDuration; +var TgGFxGroup m_grItems; +var GFxObject m_mcExclusiveBanner; +var GFxObject m_mcExclusiveLabel; +var GFxObject m_mcExclusiveDescription; +var GFxObject m_mcExclusiveIconQuests; +var array m_Items; +var array m_ItemData; +var init array m_CTACosmeticIds; +var init array m_CTACardIds; +var () int m_nItemXOffset; +var () int m_nItemYOffset; +var () int m_nItemWidth; +var () int m_nItemHeight; +var int m_nItemButtonHeight; +var int m_nItemButtonWidth; +var float m_fOriginalCollisionHeight; +var float m_fOriginalCollisionRadius; + +defaultproperties +{ + m_nNavigateType=-1 + m_fCollectionCardWidth=312.0000000 + m_fCollectionCardHeight=512.0000000 + m_fCollectionXOffset=120.0000000 + m_fCollectionYOffset=100.0000000 + m_nItemXOffset=120 + m_nItemYOffset=102 + m_nItemWidth=220 + m_nItemHeight=235 + m_nItemButtonHeight=32 + m_nItemButtonWidth=190 + m_UISceneClass=Class'UIScene_UIChampion' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=2 + m_bBlur=true + m_bResetFocusOnShow=true + m_bResetHeaderFocusOnShow=false + m_Name="UIChampion" +} diff --git a/Development/Src/TgClient/Classes/UIChampionSelect.uc b/Development/Src/TgClient/Classes/UIChampionSelect.uc new file mode 100644 index 0000000..7696d33 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIChampionSelect.uc @@ -0,0 +1,51 @@ +class UIChampionSelect extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UICHAMPIONSELECT_COUNT = 33; + +struct UIChamionFoundersPackPanel { + var GFxObject Obj; + var GFxObject Title; + var GFxObject SubTitle; + var GFxObject BuyNow; + var GFxObject Price; + var GFxObject SaleBanner; + structdefaultproperties {} +}; + +struct UICHAMP_CLIP { + var GFxObject pObj; + structdefaultproperties {} +}; + +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcHeader; +var GFxObject m_mcChampions; +var GFxObject m_mcChampionBack; +var GFxObject m_mcChampionTitle; +var GFxObject m_mcChampionScrollBar; +var GFxObject m_mcChampionSubtitle; +var GFxObject m_mcChampionClassIcon; +var TgGFxGroup m_grChampions; +var TgGFxGroup m_grpFounderPack; +var array m_ChampionClips; +var int m_nChampionScroll; +var float m_fChampWidth; +var float m_fChampHeight; +var string m_sCurrencyCode; +var string m_sFoundersPackTitle; +var string m_sFoundersPackSubtitle; +var UIChamionFoundersPackPanel m_FoundersPack; +var bool m_bShowFounderAdd; + +defaultproperties +{ + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=1 + m_bBlur=true + m_bAllowMultipleOnStack=false + m_Name="UIChampionSelect" +} diff --git a/Development/Src/TgClient/Classes/UIChatTab.uc b/Development/Src/TgClient/Classes/UIChatTab.uc new file mode 100644 index 0000000..7970e53 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIChatTab.uc @@ -0,0 +1,71 @@ +class UIChatTab extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const CHAT_OUTPUT_COUNT = 4; + +struct ChannelData { + var int nChannel; + var string sName; + structdefaultproperties {} +}; + +var int m_nScroll; +var int m_nChannel; +var int m_nIdentity; +var int m_nPrevIndex; +var int m_nLineNumber; +var int m_nOutputCount; +var bool m_bOpen; +var bool m_bCanChat; +var bool m_bCanScroll; +var bool m_bPrevInputState; +var float m_fBuffer; +var float m_fOutputWidth; +var string m_sRecipient; +var string m_sRemaining; +var string m_sLastInput; +var TgChatData m_pChatData; +var GFxObject m_mcClose; +var GFxObject m_mcMinimize; +var GFxObject m_mcOpen; +var GFxObject m_mcOpenTF; +var GFxObject m_mcOpenFrame; +var GFxObject m_mcOpenButton; +var GFxObject m_mcOpenButtonTF; +var GFxObject m_mcOpenButtonEdge; +var GFxObject m_mcOpenButtonMask; +var GFxObject m_mcBuffer; +var GFxObject m_mcButton; +var GFxObject m_mcButtonTF; +var GFxObject m_mcButtonEdge; +var GFxObject m_mcButtonMask; +var GFxObject m_mcButtonHighlight; +var GFxObject m_mcNotify; +var GFxObject m_mcScroll; +var GFxObject m_mcInput; +var GFxObject m_mcInputBtn; +var GFxObject m_mcOutput[4]; +var array m_Messages; +var array m_PrevChats; +var array m_Shortcuts; + +defaultproperties +{ + m_fOutputWidth=520.0000000 + m_Shortcuts[0]=(nChannel=0,sName="r") + m_Shortcuts[1]=(nChannel=0,sName="reply") + m_Shortcuts[2]=(nChannel=0,sName="w") + m_Shortcuts[3]=(nChannel=0,sName="whisper") + m_Shortcuts[4]=(nChannel=0,sName="c") + m_Shortcuts[5]=(nChannel=0,sName="clan") + m_Shortcuts[6]=(nChannel=0,sName="l") + m_Shortcuts[7]=(nChannel=0,sName="local") + m_Shortcuts[8]=(nChannel=0,sName="g") + m_Shortcuts[9]=(nChannel=0,sName="game") + m_Shortcuts[10]=(nChannel=0,sName="t") + m_Shortcuts[11]=(nChannel=0,sName="twitch") + m_bVisibleOnLoad=true + m_bResize=false + m_Name="ChatTab" +} diff --git a/Development/Src/TgClient/Classes/UIChests.uc b/Development/Src/TgClient/Classes/UIChests.uc new file mode 100644 index 0000000..40a83d7 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIChests.uc @@ -0,0 +1,137 @@ +class UIChests extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UICHESTS_MAX_BUNDLES = 4; + +const UICHESTS_BOOSTCHEST = 3; + +const UICHESTS_SKIP_LOCKOUT = 0.25f; + +enum UIChestState { + UICHESTS_NONE, // 0 + UICHESTS_WAITINGFORSERVER, // 1 + UICHESTS_WAITINGFORTIMEOUT, // 2 + UICHESTS_OPENING, // 3 + UICHESTS_OPENED, // 4 + UICHESTS_GOLDCARDDELAY, // 5 + UICHESTS_GOLDCARDSHOWN, // 6 + UICHESTS_DONE, // 7 +}; + +struct UIChestData { + var int nItemId; + var int nVendorId; + var int nSortOrder; + var int nRolls; + var int nBoostBonusRolls; + var int nCachedOwnedChests; + var int nBundleVendorId; + var int nBundleCount; + var int nBundleItemIds[4]; + var int nBundleItemCounts[4]; + structdefaultproperties {} +}; + +struct UIChestItem { + var GFxObject mcItem; + var GFxObject mcItemChampion; + var GFxObject mcItemChampionIcon; + var GFxObject mcItemIcon; + var GFxObject mcItemCardIcon; + var GFxObject mcItemGlow; + var GFxObject mcItemAudio; + var GFxObject mcItemTitle; + var GFxObject mcItemRarity; + var GFxObject mcItemRarityText; + var GFxObject mcItemCurrency; + var GFxObject mcItemSubtitle; + var GFxObject mcItemDuplicateLabel; + var GFxObject mcEquipButton; + var GFxObject mcEquippedText; + var GFxObject mcEquipPrompt; + var GFxObject mcEquipPromptButton; + var GFxObject mcInputFrame; + var UIInteractable_Item Card; + structdefaultproperties {} +}; + +var int m_nChestId; +var UIChests.UIChestState m_eState; +var float m_fStateTimer; +var bool m_bAutoLoot; +var bool m_bQueuedSkip; +var bool m_bShowingTreasureRoll; +var int m_nMissedItemId; +var int m_nMissedSecondaryItemId; +var array m_nRolledItems; +var array m_nRolledItemOverrides; +var float m_fOpeningTime; +var float m_fSprayPopupDelayTime; +var float m_fSprayPopupOpeningTime; +var float m_fSkipExitGuardTime; +var float m_fSkipExitGuardTimer; +var float m_fWaitingForServerDisplayTime; +var float m_fTimeoutTime; +var float m_fSkipLockoutTimer; +var dword m_scEpic; +var dword m_scRare; +var dword m_scLegendary; +var GFxObject m_mcChests; +var GFxObject m_mcBack; +var GFxObject m_mcCursor; +var GFxObject m_mcTitle; +var GFxObject m_mcHeader; +var GFxObject m_mcAcquired; +var GFxObject m_mcBoostIcon; +var GFxObject m_mcBoostBonusText; +var GFxObject m_mcBoosterButton; +var GFxObject m_mcBoosterButton_Title; +var GFxObject m_mcBoosterButtonConsole; +var Vector2D m_vBoostedObjectCenter; +var Vector2D m_vEquipButtonOffset; +var Vector2D m_vEquipPromptOffset; +var Vector2D m_vEquippedTextOffset; +var GFxObject m_mcSkipPrompt; +var GFxObject m_mcSkipPromptBG; +var array m_Items; +var array m_DuplicateItems; +var array m_nGoldCardIds; +var array m_nGoldSprayIds; +var TgGFxGroup m_grPopup; +var TgGFxGroup m_grItems; +var int m_nNavGroupX; +var GFxObject m_mcSprayPopup; +var GFxObject m_mcSprayPopupCardItem; +var GFxObject m_mcSprayPopupCardItemGlow; +var UIChestItem m_SprayPopupSprayItem; +var GFxObject m_mcSprayPopupButton; +var float m_fMissedCardAlpha; +var float m_fBaseCardPreDropTime; +var float m_fOverrideCardPreDropTime; +var GFxObject m_mcWaiting; +var GFxObject m_mcWaitingSpinner; +var float m_fWaitingSpinnerRotation; + +simulated event float QueueLootAnimations(array baseItems, array desiredScales, array desiredAlphas, array overrideItems, array duplicateLabelClips) { } + +defaultproperties +{ + m_fOpeningTime=3.5000000 + m_fSprayPopupDelayTime=0.7500000 + m_fSprayPopupOpeningTime=1.0000000 + m_fSkipExitGuardTime=0.5000000 + m_fWaitingForServerDisplayTime=5.0000000 + m_fTimeoutTime=20.0000000 + m_vEquipButtonOffset=(X=22.5000000,Y=165.2500000) + m_vEquipPromptOffset=(X=87.0000000,Y=166.4000000) + m_vEquippedTextOffset=(X=25.1500000,Y=166.5500000) + m_fMissedCardAlpha=75.0000000 + m_fBaseCardPreDropTime=0.2500000 + m_fOverrideCardPreDropTime=0.2500000 + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_bAlwaysTick=true + m_Name="UIChests" +} diff --git a/Development/Src/TgClient/Classes/UICompetitive.uc b/Development/Src/TgClient/Classes/UICompetitive.uc new file mode 100644 index 0000000..4728290 --- /dev/null +++ b/Development/Src/TgClient/Classes/UICompetitive.uc @@ -0,0 +1,11 @@ +class UICompetitive extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UICompetitive' + m_OptionList[0]=249 + m_nBackground=1 + m_Name="UICompetitive" +} diff --git a/Development/Src/TgClient/Classes/UICompetitivePopupWelcome.uc b/Development/Src/TgClient/Classes/UICompetitivePopupWelcome.uc new file mode 100644 index 0000000..dfee670 --- /dev/null +++ b/Development/Src/TgClient/Classes/UICompetitivePopupWelcome.uc @@ -0,0 +1,13 @@ +class UICompetitivePopupWelcome extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UICompetitivePopupWelcome' + m_OptionList[0]=245 + m_OptionList[1]=3 + m_nBackground=1 + m_bIsPopup=true + m_Name="UICompetitivePopupWelcome" +} diff --git a/Development/Src/TgClient/Classes/UICompetitiveRankChange.uc b/Development/Src/TgClient/Classes/UICompetitiveRankChange.uc new file mode 100644 index 0000000..b7ae8e5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UICompetitiveRankChange.uc @@ -0,0 +1,12 @@ +class UICompetitiveRankChange extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UICompetitiveRankChange' + m_OptionList[0]=245 + m_nBackground=1 + m_bIsPopup=true + m_Name="UICompetitiveRankChange" +} diff --git a/Development/Src/TgClient/Classes/UICompetitiveRankDecay.uc b/Development/Src/TgClient/Classes/UICompetitiveRankDecay.uc new file mode 100644 index 0000000..1cf767f --- /dev/null +++ b/Development/Src/TgClient/Classes/UICompetitiveRankDecay.uc @@ -0,0 +1,12 @@ +class UICompetitiveRankDecay extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UICompetitiveRankDecay' + m_OptionList[0]=245 + m_nBackground=1 + m_bIsPopup=true + m_Name="UICompetitiveRankDecay" +} diff --git a/Development/Src/TgClient/Classes/UIComponent.uc b/Development/Src/TgClient/Classes/UIComponent.uc new file mode 100644 index 0000000..54e05b1 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent.uc @@ -0,0 +1,53 @@ +class UIComponent extends Object + abstract + native(UIComponent) + implements(TgCallbackInterface) + config(Engine); + +enum UIANIMTYPE { + UIANIM_X, // 0 + UIANIM_Y, // 1 + UIANIM_ALPHA, // 2 + UIANIM_WIDTH, // 3 + UIANIM_HEIGHT, // 4 + UIANIM_XSCALE, // 5 + UIANIM_YSCALE, // 6 + UIANIM_VISIBLE, // 7 + UIANIM_ROTATION, // 8 +}; + +enum UICOMPONENTTYPE { + UICOMP_COMPONENT, // 0 + UICOMP_SCENE, // 1 +}; + +var UIComponent.UICOMPONENTTYPE m_ComponentType; +var UIComponent m_Owner; +var GFxObject m_mcRoot; +var string m_sLoadName; +var int m_nLoadIndex; +var string m_sConstructName; +var protected bool m_bConstructed; +var int m_nDeferredUpdateCallbackHandle; +var const array m_Components; +var native const MultiMap_Mirror m_ComponentMap; +var TgCallbackContainer m_CallbackContainer; + +native function FadeIn(GFxObject pObj, optional float fTime=0.0500000, optional float fDelay=0.0000000); // Export UUIComponent::execFadeIn(FFrame&, void* const) + +native function FadeOut(GFxObject pObj, optional float fTime=0.0500000, optional float fDelay=0.0000000); // Export UUIComponent::execFadeOut(FFrame&, void* const) + +native function Animate(GFxObject pObj, float fTime, UIComponent.UIANIMTYPE eType, float fValue, optional float fDelay=0.0000000, optional byte eQuad=1, optional bool bEndCurrentAnim=true); // Export UUIComponent::execAnimate(FFrame&, void* const) + +native function bool IsAnimating(GFxObject pObj, optional UIComponent.UIANIMTYPE eType=9); // Export UUIComponent::execIsAnimating(FFrame&, void* const) + +native function float GetAnimationTarget(GFxObject pObj, optional UIComponent.UIANIMTYPE eType=9); // Export UUIComponent::execGetAnimationTarget(FFrame&, void* const) + +native function EndAnim(GFxObject pObj, optional UIComponent.UIANIMTYPE eType=9); // Export UUIComponent::execEndAnim(FFrame&, void* const) + +event float HandleAnimEvent(int nEventType, optional array fExtraData) { } + +defaultproperties +{ + m_nLoadIndex=-1 +} diff --git a/Development/Src/TgClient/Classes/UIComponentPool.uc b/Development/Src/TgClient/Classes/UIComponentPool.uc new file mode 100644 index 0000000..62ec2e5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponentPool.uc @@ -0,0 +1,6 @@ +class UIComponentPool extends UIComponent + native(UIComponent) + config(Engine); + +var array m_ActivePooledItems; +var array m_InactivePooledItems; diff --git a/Development/Src/TgClient/Classes/UIComponent_AbilityPointsPool.uc b/Development/Src/TgClient/Classes/UIComponent_AbilityPointsPool.uc new file mode 100644 index 0000000..3eecbdf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_AbilityPointsPool.uc @@ -0,0 +1,17 @@ +class UIComponent_AbilityPointsPool extends UIComponent + native(UIComponent) + config(Engine) + dependson(UIDataItem); + +const NUM_ABILITYPOINTPOOL_SKILLS = 4; + +var bool m_bDirty; +var int m_nTickCallbackHandle; +var GFxObject m_mcAbilityPointsPool; +var GFxObject m_mcAbilityIcon[4]; +var GFxObject m_mcPointsFill[4]; +var GFxObject m_mcPointsText[4]; +var GFxObject m_mcTalentFocusFrame[4]; +var float m_fFillWidth; +var int m_nPoints[4]; +var UIDataItem.AbilityModifiedByDevice m_eFocusedAbility; diff --git a/Development/Src/TgClient/Classes/UIComponent_AcquisitionCarousel.uc b/Development/Src/TgClient/Classes/UIComponent_AcquisitionCarousel.uc new file mode 100644 index 0000000..6b73d26 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_AcquisitionCarousel.uc @@ -0,0 +1,39 @@ +class UIComponent_AcquisitionCarousel extends UIComponent_Interactable + native(UIComponent) + config(Engine) + dependson(UIAcquisition); + +struct AcquisitionCarouselItem { + var GFxObject mcPurchaseItem; + var GFxObject mcPurchaseChest; + var UIInteractable_Item mcPurchaseCard; + var GFxObject mcPurchaseItemDisplay; + var GFxObject mcPurchaseItemIcon; + var GFxObject mcPurchaseItemCardIcon; + var GFxObject mcPurchaseItemCurrency; + var GFxObject mcPurchaseItemRarityFrame; + var GFxObject mcPurchaseItemRarityText; + var GFxObject mcPurchaseItemTypeIcon; + var GFxObject mcPurchaseItemTitle; + var GFxObject mcPurchaseItemSubtitle; + var GFxObject mcPurchaseItemChampion; + var GFxObject mcPurchaseItemChampionIcon; + var GFxObject mcPurchaseItemChampionLarge; + var GFxObject mcPurchaseItemChampionTitle; + var GFxObject mcPurchaseItemChampionImage; + var GFxObject mcPurchaseItemAudio; + structdefaultproperties {} +}; + +var UIInteractable_Button m_mcLeftArrow; +var UIInteractable_Button m_mcRightArrow; +var GFxObject m_mcLeftButtonPrompt; +var GFxObject m_mcRightButtonPrompt; +var array m_CarouselItems; +var array m_mcNavDots; +var int m_nIndex; +var float m_fNavDotCenter; +var init array m_ItemIdList; +var float m_fDotPlacementX; +var float m_fDotWidth; +var float m_fDotPadding; diff --git a/Development/Src/TgClient/Classes/UIComponent_ChampionOverview.uc b/Development/Src/TgClient/Classes/UIComponent_ChampionOverview.uc new file mode 100644 index 0000000..506fa88 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ChampionOverview.uc @@ -0,0 +1,64 @@ +class UIComponent_ChampionOverview extends UIComponent + native(UIComponent) + config(Engine); + +const UICHAMPION_COLLECTS = 4; + +const UICHAMPION_SKILLS = 5; + +var GFxObject m_mcRating; +var GFxObject m_mcRatingProgress; +var GFxObject m_mcRatingProgressTip; +var GFxObject m_mcRatingProgressFill; +var GFxObject m_mcRatingRankSubtitle; +var GFxObject m_mcRatingAwardTitle; +var GFxObject m_mcRatingAwardSubtitle; +var GFxObject m_mcRatingNext; +var GFxObject m_mcRatingPrev; +var GFxObject m_mcRatingNextRank; +var GFxObject m_mcUnlock; +var GFxObject m_mcOverviewStats; +var GFxObject m_mcOverviewStatsProgress; +var GFxObject m_mcOverviewStatsExpSubtitle; +var GFxObject m_mcOverviewStatsWinsSubtitle; +var GFxObject m_mcOverviewStatsNextSubtitle; +var GFxObject m_mcOverviewStatsLevelSubtitle; +var GFxObject m_mcOverviewDetailsTitle; +var GFxObject m_mcOverviewDetailsSubtitle; +var GFxObject m_mcOverviewDetailsClassIcon; +var GFxObject m_mcOverviewChampionIcon; +var GFxObject m_mcOverviewChampionFrame; +var GFxObject m_mcOverviewSkill[5]; +var GFxObject m_mcOverviewSkillIcon[5]; +var GFxObject m_mcCollectionOverview; +var GFxObject m_mcOverviewCollection[4]; +var GFxObject m_mcOverviewCollectionProgress[4]; +var GFxObject m_mcOverviewCollectionOwnedTitle[4]; +var GFxObject m_mcOverviewCollectionOwnedSubtitle[4]; +var TgGFxGroup m_grUnlock; +var GFxObject m_mcRewardCurrency; +var GFxObject m_mcRewardFinePrint; +var GFxObject m_mcRewardName; +var GFxObject m_mcRentalText; +var GFxObject m_mcRentalTextLabel; +var GFxObject m_mcRentalTextDuration; +var GFxObject m_mcUnlockPanel; +var GFxObject m_mcUnlockPanelPurchase; +var GFxObject m_mcUnlockPanelPurchasePrice0; +var GFxObject m_mcUnlockPanelPurchasePrice0Currency; +var GFxObject m_mcUnlockPanelPurchasePrice1; +var GFxObject m_mcUnlockPanelPurchasePrice1Currency; +var GFxObject m_mcUnlockPanelRent; +var GFxObject m_mcUnlockPanelRentPrice0; +var GFxObject m_mcUnlockPanelRentPrice0Currency; +var GFxObject m_mcUnlockPanelFreeRotation; +var GFxObject m_mcUnlockPanelInputPrompt; +var GFxObject m_mcUnlockPanelUnlockButton; +var UIInteractable_Button_GamepadPrompt m_pLeaderboardButton; +var UIInteractable_Button_GamepadPrompt m_pDetailsButton; +var UIInteractable_Button_ChampUnlock m_pPurchaseButton; + +defaultproperties +{ + m_sLoadName="Overview" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_ChampionRankRow.uc b/Development/Src/TgClient/Classes/UIComponent_ChampionRankRow.uc new file mode 100644 index 0000000..6c72eb4 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ChampionRankRow.uc @@ -0,0 +1,13 @@ +class UIComponent_ChampionRankRow extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcName; +var GFxObject m_mcType; +var GFxObject m_mcWins; +var GFxObject m_mcLosses; +var GFxObject m_mcRank; +var GFxObject m_mcChampionIcon; +var GFxObject m_mcMasteryTitle; +var UIComponent_ProgressBarHorizontal m_MasteryProgress; +var UIInteractable_Button m_pDetailsButton; diff --git a/Development/Src/TgClient/Classes/UIComponent_ChampionSimple.uc b/Development/Src/TgClient/Classes/UIComponent_ChampionSimple.uc new file mode 100644 index 0000000..c681a74 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ChampionSimple.uc @@ -0,0 +1,7 @@ +class UIComponent_ChampionSimple extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcText; +var GFxObject m_mcChampionIconWrapper; +var GFxObject m_mcIconImage; diff --git a/Development/Src/TgClient/Classes/UIComponent_CompetitiveRankChange.uc b/Development/Src/TgClient/Classes/UIComponent_CompetitiveRankChange.uc new file mode 100644 index 0000000..81d157b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_CompetitiveRankChange.uc @@ -0,0 +1,7 @@ +class UIComponent_CompetitiveRankChange extends UIComponent + native(UIList) + config(Engine); + +var UIComponent_Interactable m_pButton; +var GFxObject m_mcRankIcon; +var GFxObject m_mcRankName; diff --git a/Development/Src/TgClient/Classes/UIComponent_CompetitiveRankedDecay.uc b/Development/Src/TgClient/Classes/UIComponent_CompetitiveRankedDecay.uc new file mode 100644 index 0000000..13c6b7b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_CompetitiveRankedDecay.uc @@ -0,0 +1,6 @@ +class UIComponent_CompetitiveRankedDecay extends UIComponent + native(UIList) + config(Engine); + +var UIComponent_Interactable m_pButton; +var GFxObject m_mcRankIcon; diff --git a/Development/Src/TgClient/Classes/UIComponent_CompetitiveWelcome.uc b/Development/Src/TgClient/Classes/UIComponent_CompetitiveWelcome.uc new file mode 100644 index 0000000..5757296 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_CompetitiveWelcome.uc @@ -0,0 +1,7 @@ +class UIComponent_CompetitiveWelcome extends UIComponent + native(UIList) + config(Engine); + +var UIComponent_List m_pRewards; +var UIComponent_Interactable m_pOkButton; +var UIComponent_Interactable m_pInfoButton; diff --git a/Development/Src/TgClient/Classes/UIComponent_DailyRewards.uc b/Development/Src/TgClient/Classes/UIComponent_DailyRewards.uc new file mode 100644 index 0000000..0ac733b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_DailyRewards.uc @@ -0,0 +1,42 @@ +class UIComponent_DailyRewards extends UIComponent + native(UIComponent) + config(Engine); + +const DAILYREWARD_DAYS = 7; + +var TgRewardCenterManager m_RewardCenter; +var TgGFxGroup m_grDailyReward; +var GFxObject m_mcBlocker; +var GFxObject m_mcTitle; +var GFxObject m_mcDescription; +var GFxObject m_mcMaxGold; +var GFxObject m_mcNextRewardTitle; +var GFxObject m_mcNextRewardText; +var UIInteractable_Button m_ClaimButton; +var UIInteractable_Button m_BoostButton; +var GFxObject m_mcDay[7]; +var GFxObject m_mcDayTitle[7]; +var GFxObject m_mcDayHighlight[7]; +var GFxObject m_mcDayReward[7]; +var GFxObject m_mcDayBackground[7]; +var GFxObject m_mcDayClaimedTF[7]; +var GFxObject m_mcBoost; +var GFxObject m_mcBoostCrystalsTF; +var GFxObject m_mcBoostGoldTF; +var GFxObject m_mcBoostBonusText; +var GFxObject m_mcBoostIcon; +var GFxObject m_mcBoostButtonConsole; +var GFxObject m_mcClaimButtonConsole; +var bool m_bBoosted; +var bool m_bWaitingForBoost; +var bool m_bHideConsolePrompts; +var int m_nBoostCrystals; +var int m_nBoostGold; +var AkBaseSoundObject m_scDailyReward; +var AkBaseSoundObject m_scDailyRewardAccept; + +defaultproperties +{ + m_scDailyReward=AkEvent'UI_Lobby_Alert_LevelUp_CharacterMastery_Play' + m_scDailyRewardAccept=AkEvent'UI_Menu_CardCraft_Finish_Play' +} diff --git a/Development/Src/TgClient/Classes/UIComponent_DemonTeleportTimer.uc b/Development/Src/TgClient/Classes/UIComponent_DemonTeleportTimer.uc new file mode 100644 index 0000000..75b0a36 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_DemonTeleportTimer.uc @@ -0,0 +1,8 @@ +class UIComponent_DemonTeleportTimer extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcTimerMask; +var TgPawn_Demon m_CachedViewedDemon; +var float m_fCurrentTimerPct; +var bool m_bVisible; diff --git a/Development/Src/TgClient/Classes/UIComponent_Dropdown.uc b/Development/Src/TgClient/Classes/UIComponent_Dropdown.uc new file mode 100644 index 0000000..0d5c77c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Dropdown.uc @@ -0,0 +1,9 @@ +class UIComponent_Dropdown extends UIComponent + native(UIList) + config(Engine) + dependson(UIComponent_List); + +var UIComponent_GamepadKey m_pGamepadKey; +var UIComponent_List m_pList; +var UIComponent_Interactable m_pBlocker; +var UICListEntry m_Button; diff --git a/Development/Src/TgClient/Classes/UIComponent_GamepadKey.uc b/Development/Src/TgClient/Classes/UIComponent_GamepadKey.uc new file mode 100644 index 0000000..d1bbc35 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_GamepadKey.uc @@ -0,0 +1,6 @@ +class UIComponent_GamepadKey extends UIComponent + native(UIList) + config(Engine) + dependson(TgGfxScene); + +var TgGfxScene.GamepadKeys m_eGamepadKey; diff --git a/Development/Src/TgClient/Classes/UIComponent_GenericTitleButtons.uc b/Development/Src/TgClient/Classes/UIComponent_GenericTitleButtons.uc new file mode 100644 index 0000000..56dd0ad --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_GenericTitleButtons.uc @@ -0,0 +1,14 @@ +class UIComponent_GenericTitleButtons extends UIComponent + native(UIComponent) + config(Engine); + +const UICOMPONENT_GENERICTITLEBUTTONS_TITLECOUNT = 2; + +const UICOMPONENT_GENERICTITLEBUTTONS_COLUMNSIZE = 4; + +const UICOMPONENT_GENERICTITLEBUTTONS_BUTTONCOUNT = 8; + +var GFxObject m_mcTitle[2]; +var UIInteractable_Button m_Buttons[8]; +var int m_ButtonClickHandles[8]; +var TgGFxGroup m_grButtons; diff --git a/Development/Src/TgClient/Classes/UIComponent_GenericTitleInputButtons.uc b/Development/Src/TgClient/Classes/UIComponent_GenericTitleInputButtons.uc new file mode 100644 index 0000000..6c7e179 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_GenericTitleInputButtons.uc @@ -0,0 +1,17 @@ +class UIComponent_GenericTitleInputButtons extends UIComponent + native(UIComponent) + config(Engine); + +const UICOMPONENT_GENERICTITLEINPUTBUTTONS_TITLECOUNT = 2; + +const UICOMPONENT_GENERICTITLEINPUTBUTTONS_BUTTONCOUNT = 2; + +var GFxObject m_mcTitle[2]; +var GFxObject m_mcError; +var UIInteractable_Button m_Buttons[2]; +var int m_ButtonClickHandles[2]; +var GFxObject m_mcInputTF; +var GFxObject m_mcInputFrame; +var GFxObject m_mcInputFrameHighlight; +var TgGFxGroup m_grButtons; +var UIData_PopupInput m_pData; diff --git a/Development/Src/TgClient/Classes/UIComponent_GoalReward.uc b/Development/Src/TgClient/Classes/UIComponent_GoalReward.uc new file mode 100644 index 0000000..f061b47 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_GoalReward.uc @@ -0,0 +1,13 @@ +class UIComponent_GoalReward extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcTitle; +var GFxObject m_mcItemName; +var GFxObject m_mcGoal; +var GFxObject m_mcOwned; +var GFxObject m_mcLock; +var GFxObject m_mcIconRarity; +var GFxObject m_mcIconIcon; +var GFxObject m_mcIconChestIcon; +var UIComponent_ProgressBarHorizontal m_Progress; diff --git a/Development/Src/TgClient/Classes/UIComponent_HeaderTab.uc b/Development/Src/TgClient/Classes/UIComponent_HeaderTab.uc new file mode 100644 index 0000000..df67c6d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HeaderTab.uc @@ -0,0 +1,3 @@ +class UIComponent_HeaderTab extends UIComponent + native(UIList) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIComponent_HeaderTabs.uc b/Development/Src/TgClient/Classes/UIComponent_HeaderTabs.uc new file mode 100644 index 0000000..3b13017 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HeaderTabs.uc @@ -0,0 +1,5 @@ +class UIComponent_HeaderTabs extends UIComponent_List + native(UIList) + config(Engine); + +var UIComponent_GamepadKey m_pBumpers[2]; diff --git a/Development/Src/TgClient/Classes/UIComponent_HealthBar.uc b/Development/Src/TgClient/Classes/UIComponent_HealthBar.uc new file mode 100644 index 0000000..35161ff --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HealthBar.uc @@ -0,0 +1,54 @@ +class UIComponent_HealthBar extends UIComponent + native(UIComponent) + config(Engine); + +enum EHealthTickType { + EHTT_Health, // 0 + EHTT_Shield, // 1 + EHTT_Shadow, // 2 + EHTT_Damage, // 3 +}; + +enum EHealthTickColor_Player { + EHTCP_Invalid, // 0 + EHTCP_Blue, // 1 + EHTCP_Red, // 2 + EHTCP_Purple, // 3 + EHTCP_Orange, // 4 + EHTCP_Yellow, // 5 + EHTCP_Shadow, // 6 +}; + +struct BarTickTypes { + var const string sMaskName; + var const string sContainerName; + var float fWidth; + var UIComponent_HealthBar.EHealthTickType eBorderTickType; + var GFxObject mcBorderTickMask; + var GFxObject mcLeftBorderTick; + var GFxObject mcRightBorderTick; + structdefaultproperties {} +}; + +var array m_mcHealthBarTicks; +var GFxObject m_mcHealthBarContainer; +var array m_BarTickTypes; +var int m_nLastUsedHealthTickColorFrame; +var float m_fDisplayedMaxHealth; +var float m_fDisplayedHealthPct; +var float m_fActualHealthPct; +var float m_fLastDisplayedHealthPct; +var float m_fDisplayedShieldPct; +var float m_fActualShieldPct; +var float m_fLastDisplayedShieldPct; +var float m_fHealthPerTick; +var float m_fBarWidth; +var float m_fTickPadding; + +defaultproperties +{ + m_BarTickTypes[0]=(sMaskName="HealthBorderTickMask",sContainerName="HealthBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Health,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_BarTickTypes[1]=(sMaskName="ShieldBorderTickMask",sContainerName="ShieldBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Shield,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_BarTickTypes[2]=(sMaskName="ShadowBorderTickMask",sContainerName="ShadowBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Shadow,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_fHealthPerTick=250.0000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_HealthBarDamageOverlay.uc b/Development/Src/TgClient/Classes/UIComponent_HealthBarDamageOverlay.uc new file mode 100644 index 0000000..ad20a8d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HealthBarDamageOverlay.uc @@ -0,0 +1,37 @@ +class UIComponent_HealthBarDamageOverlay extends UIComponent + native(UIComponent) + config(Engine); + +var UIComponent_HealthBar m_HealthbarOwner; +var bool m_bWidthDirty; +var int m_nDamageBarExtraWidth; +var int m_nLowHealthBarExtraWidth; +var GFxObject m_mcDamageOverlay; +var GFxObject m_mcLowHealthOverlay; +var float m_fOnDamageColorMaxThreshold; +var float m_fOnDamageColorMinThreshold; +var float m_fLowHealthPulseMaxThreshold; +var float m_fLowHealthPulseMinThreshold; +var float m_fLowHealthPulseInterp; +var float m_fLowHealthPulseMinInterpSpeed; +var float m_fLowHealthPulseMaxInterpSpeed; +var float m_fLowHealthInterpExp; +var float m_fOnDamageMaxAlpha; +var float m_fLowHealthMinAlpha; +var float m_fLowHealthMaxAlpha; + +defaultproperties +{ + m_bWidthDirty=true + m_nDamageBarExtraWidth=14 + m_nLowHealthBarExtraWidth=7 + m_fOnDamageColorMaxThreshold=100.0000000 + m_fLowHealthPulseMaxThreshold=0.5000000 + m_fLowHealthPulseMinThreshold=0.4000000 + m_fLowHealthPulseMinInterpSpeed=0.5000000 + m_fLowHealthPulseMaxInterpSpeed=2.0000000 + m_fLowHealthInterpExp=2.0000000 + m_fOnDamageMaxAlpha=0.3500000 + m_fLowHealthMinAlpha=0.5000000 + m_fLowHealthMaxAlpha=1.0000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay.uc b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay.uc new file mode 100644 index 0000000..42adaa4 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay.uc @@ -0,0 +1,37 @@ +class UIComponent_HealthBar_Overlay extends UIComponent_HealthBar + native(UIComponent) + config(Engine); + +enum EHealthTickColor_Overlay { + EHTCO_Invalid, // 0 + EHTCO_Blue, // 1 + EHTCO_Red, // 2 + EHTCO_Purple, // 3 + EHTCO_Orange, // 4 + EHTCO_Yellow, // 5 + EHTCO_White, // 6 + EHTCO_Green, // 7 + EHTCO_DarkYellow, // 8 + EHTCO_DarkGreen, // 9 + EHTCO_DarkBlue, // 10 + EHTCO_DarkRed, // 11 + EHTCO_DarkOrange, // 12 +}; + +var bool m_bFriendly; +var bool m_bInRange; +var bool m_bColorDirty; +var float m_fDisplayedDamagePct; +var float m_fDamageInterpSpeed; +var float m_fMinDamageInterpSpeed; + +defaultproperties +{ + m_fDamageInterpSpeed=4.5000000 + m_fMinDamageInterpSpeed=0.1000000 + m_BarTickTypes[0]=(sMaskName="HealthBorderTickMask",sContainerName="HealthBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Health,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_BarTickTypes[1]=(sMaskName="ShieldBorderTickMask",sContainerName="ShieldBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Shield,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_BarTickTypes[2]=(sMaskName="DamageBorderTickMask",sContainerName="DamageBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Damage,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_BarTickTypes[3]=(sMaskName="ShadowBorderTickMask",sContainerName="ShadowBorderTickContainer",fWidth=0.0000000,eBorderTickType=EHTT_Shadow,mcBorderTickMask=none,mcLeftBorderTick=none,mcRightBorderTick=none) + m_fTickPadding=1.0000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay_Deployable.uc b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay_Deployable.uc new file mode 100644 index 0000000..fb6a594 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay_Deployable.uc @@ -0,0 +1,5 @@ +class UIComponent_HealthBar_Overlay_Deployable extends UIComponent_HealthBar_Overlay + native(UIComponent) + config(Engine); + +var bool m_bOwned; diff --git a/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay_Player.uc b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay_Player.uc new file mode 100644 index 0000000..2d45850 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Overlay_Player.uc @@ -0,0 +1,9 @@ +class UIComponent_HealthBar_Overlay_Player extends UIComponent_HealthBar_Overlay + native(UIComponent) + config(Engine); + +var GFxObject m_mcImmortalBracketLeft; +var GFxObject m_mcImmortalBracketRight; +var GFxObject m_mcLexExecuteGuide; +var float m_fImmortal; +var bool m_bInParty; diff --git a/Development/Src/TgClient/Classes/UIComponent_HealthBar_Player.uc b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Player.uc new file mode 100644 index 0000000..8dc5a70 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HealthBar_Player.uc @@ -0,0 +1,26 @@ +class UIComponent_HealthBar_Player extends UIComponent_HealthBar + native(UIComponent) + config(Engine); + +var GFxObject m_mcCurrentHealthText; +var GFxObject m_mcMaxHealthText; +var GFxObject m_mcHealthTip; +var GFxObject m_mcHealthColor; +var UIComponent_HealthBarDamageOverlay m_DamageOverlay; +var UIComponent_TorvaldShieldText m_TorvaldShield; +var float m_fHealInterpSpeed; +var float m_fDamageInterpSpeed; +var float m_fMinHealInterpSpeed; +var float m_fMinDamageInterpSpeed; +var int m_nLastViewTargetId; +var TgPawn m_LastViewedPawn; +var int m_nLastCurrentHealthTextValue; +var int m_nLastMaxHealthTextValue; + +defaultproperties +{ + m_fHealInterpSpeed=5.0000000 + m_fDamageInterpSpeed=5.0000000 + m_fMinHealInterpSpeed=0.1000000 + m_fMinDamageInterpSpeed=0.1000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_HoldPrompt.uc b/Development/Src/TgClient/Classes/UIComponent_HoldPrompt.uc new file mode 100644 index 0000000..8c221cb --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HoldPrompt.uc @@ -0,0 +1,23 @@ +class UIComponent_HoldPrompt extends UIComponent + native(UIComponent) + config(Engine); + +const UICOMPONENT_HOLDPURCHASE_RADIALFRAMES = 360; + +var UIComponent_GamepadKey m_pGamepadKey; +var GFxObject m_mcRadialMask; +var GFxObject m_mcTF; +var float m_fHoldTimer; +var float m_fHoldDuration; +var float m_fFadeOutDelay; +var float m_fFadeOutDuration; +var float m_fFadeOutTimer; +var bool m_bListening; +var bool m_bHolding; +var bool m_bPrimed; + +defaultproperties +{ + m_fHoldDuration=1.0000000 + m_sLoadName="PressAndHold" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_HudScoreTDM.uc b/Development/Src/TgClient/Classes/UIComponent_HudScoreTDM.uc new file mode 100644 index 0000000..37d0ed2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HudScoreTDM.uc @@ -0,0 +1,38 @@ +class UIComponent_HudScoreTDM extends UIComponent + native(UIComponent) + config(Engine); + +var int m_nTimeRemaining; +var int m_nMaxScore; +var int m_nScoreA; +var int m_nScoreB; +var GFxObject m_mcTDMTitle; +var GFxObject m_mcTDMTime; +var GFxObject m_mcTDMSubtitle; +var GFxObject m_mcTDMScoreA; +var GFxObject m_mcTDMScoreAScore; +var GFxObject m_mcTDMScoreAScoreTextAnim; +var GFxObject m_mcTDMScoreAScoreTF; +var GFxObject m_mcTDMScoreAScoreAnim; +var GFxObject m_mcTDMScoreAProgress; +var GFxObject m_mcTDMScoreAProgressAnim; +var GFxObject m_mcTDMScoreAProgressAnimAnim; +var GFxObject m_mcTDMScoreB; +var GFxObject m_mcTDMScoreBScore; +var GFxObject m_mcTDMScoreBScoreTextAnim; +var GFxObject m_mcTDMScoreBScoreTF; +var GFxObject m_mcTDMScoreBScoreAnim; +var GFxObject m_mcTDMScoreBProgress; +var GFxObject m_mcTDMScoreBProgressAnim; +var GFxObject m_mcTDMScoreBProgressAnimAnim; +var float m_fTDMScoreATextAnchorX; +var float m_fTDMScoreBTextAnchorX; +var int m_nTaskForceAhead; +var bool m_bFriendlyTaskForceClose; +var bool m_bEnemyTaskForceClose; +var AkEvent m_MatchAlmostOverAkEvent; + +defaultproperties +{ + m_MatchAlmostOverAkEvent=AkEvent'UI_InGame_Alert_Onslaught_MatchAlmostOver_Play' +} diff --git a/Development/Src/TgClient/Classes/UIComponent_HudSkillIcon.uc b/Development/Src/TgClient/Classes/UIComponent_HudSkillIcon.uc new file mode 100644 index 0000000..cb2861e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HudSkillIcon.uc @@ -0,0 +1,27 @@ +class UIComponent_HudSkillIcon extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcSkill; +var GFxObject m_mcSkillBtn; +var GFxObject m_mcSkillKey; +var GFxObject m_mcSkillIcon; +var GFxObject m_mcSkillCDBot; +var GFxObject m_mcSkillCDTop; +var GFxObject m_mcSkillTimer; +var GFxObject m_mcSkillPulse; +var GFxObject m_mcSkillReady; +var GFxObject m_mcSkillActive; +var GFxObject m_mcSkillMouse; +var GFxObject m_mcSkillAmmo; +var GFxObject m_mcSkillShadow; +var bool m_bUsingIconOverride; +var int m_nSkillIconIndex; +var int m_nSkillId; +var int m_nSkillAmmo; +var int m_nSkillActive; +var int m_nSkillStatus; +var float m_fSkillCharge; +var float m_fSkillChargeTime; +var float m_fReadyTimer; +var string m_sSkillBind; diff --git a/Development/Src/TgClient/Classes/UIComponent_HudSkillIcon_Ult.uc b/Development/Src/TgClient/Classes/UIComponent_HudSkillIcon_Ult.uc new file mode 100644 index 0000000..94f9ac6 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_HudSkillIcon_Ult.uc @@ -0,0 +1,14 @@ +class UIComponent_HudSkillIcon_Ult extends UIComponent_HudSkillIcon + native(UIComponent) + config(Engine); + +var GFxObject m_mcUltimatePercent; +var GFxObject m_mcUltimateEffectBot; +var GFxObject m_mcUltimateEffectTop; +var AkBaseSoundObject m_scUltimateReady; +var float m_fPulseTimer; + +defaultproperties +{ + m_scUltimateReady=AkEvent'UI_InGame_Alert_UltimateReady_1P_Play' +} diff --git a/Development/Src/TgClient/Classes/UIComponent_IconTF.uc b/Development/Src/TgClient/Classes/UIComponent_IconTF.uc new file mode 100644 index 0000000..a9fa431 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_IconTF.uc @@ -0,0 +1,5 @@ +class UIComponent_IconTF extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcIcon; diff --git a/Development/Src/TgClient/Classes/UIComponent_Interactable.uc b/Development/Src/TgClient/Classes/UIComponent_Interactable.uc new file mode 100644 index 0000000..bdb0ae1 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Interactable.uc @@ -0,0 +1,6 @@ +class UIComponent_Interactable extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcInteractable; +var array m_mcRolloverObjects; diff --git a/Development/Src/TgClient/Classes/UIComponent_Interactable_LobbyEquipSlotItem.uc b/Development/Src/TgClient/Classes/UIComponent_Interactable_LobbyEquipSlotItem.uc new file mode 100644 index 0000000..512f704 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Interactable_LobbyEquipSlotItem.uc @@ -0,0 +1,12 @@ +class UIComponent_Interactable_LobbyEquipSlotItem extends UIComponent_Interactable + native(UIList) + config(Engine); + +var GFxObject m_mcSelected; +var GFxObject m_mcTypeIcon; +var GFxObject m_mcRarity; +var GFxObject m_mcAudio; +var GFxObject m_mcIcon; +var GFxObject m_mcCardIcon; +var bool m_bSelected; +var bool m_bHovered; diff --git a/Development/Src/TgClient/Classes/UIComponent_Interactable_LobbySlotItem.uc b/Development/Src/TgClient/Classes/UIComponent_Interactable_LobbySlotItem.uc new file mode 100644 index 0000000..c49fff5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Interactable_LobbySlotItem.uc @@ -0,0 +1,24 @@ +class UIComponent_Interactable_LobbySlotItem extends UIComponent_Interactable + native(UIList) + config(Engine); + +var GFxObject m_mcText; +var GFxObject m_mcLock; +var GFxObject m_mcRarity; +var GFxObject m_mcEquipped; +var GFxObject m_mcExclusive; +var GFxObject m_mcTypeIcon; +var GFxObject m_mcCardIcon; +var GFxObject m_mcIcon; +var GFxObject m_mcAudio; +var GFxObject m_mcRented; +var GFxObject m_mcRentalDuration; +var GFxObject m_mcPrice; +var GFxObject m_mcPriceA; +var GFxObject m_mcPriceB; +var GFxObject m_mcPrevPrice; +var GFxObject m_mcPrevPriceA; +var GFxObject m_mcPrevPriceAStrike; +var GFxObject m_mcPrevPriceB; +var GFxObject m_mcPrevPriceBStrike; +var bool m_bHovered; diff --git a/Development/Src/TgClient/Classes/UIComponent_Item.uc b/Development/Src/TgClient/Classes/UIComponent_Item.uc new file mode 100644 index 0000000..7508784 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Item.uc @@ -0,0 +1,24 @@ +class UIComponent_Item extends UIComponent + native(UIComponent) + config(Engine); + +var protected GFxObject m_mcName; +var protected GFxObject m_mcType; +var protected GFxObject m_mcDescription; +var protected GFxObject m_mcArtIcon; +var protected GFxObject m_mcFrame; +var protected UIDataItem m_Item; +var protected bool m_bCacheDirty; +var protected bool m_bDataDirty; +var protected bool m_bUseBaseName; +var protected string m_sDescription; +var protected string m_sType; +var protected const float m_fDescriptionCenterOffset; +var int m_nTickCallback; + +defaultproperties +{ + m_fDescriptionCenterOffset=135.0000000 + m_sLoadName="Card" + m_sConstructName="Card" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_ItemIcon.uc b/Development/Src/TgClient/Classes/UIComponent_ItemIcon.uc new file mode 100644 index 0000000..7807490 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ItemIcon.uc @@ -0,0 +1,8 @@ +class UIComponent_ItemIcon extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcRarityText; +var GFxObject m_mcRarity; +var GFxObject m_mcIcon; +var GFxObject m_mcChestIcon; diff --git a/Development/Src/TgClient/Classes/UIComponent_ItemMini.uc b/Development/Src/TgClient/Classes/UIComponent_ItemMini.uc new file mode 100644 index 0000000..0e8cb4c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ItemMini.uc @@ -0,0 +1,5 @@ +class UIComponent_ItemMini extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcIcon; diff --git a/Development/Src/TgClient/Classes/UIComponent_ItemObtainabilityBanner.uc b/Development/Src/TgClient/Classes/UIComponent_ItemObtainabilityBanner.uc new file mode 100644 index 0000000..046d653 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ItemObtainabilityBanner.uc @@ -0,0 +1,11 @@ +class UIComponent_ItemObtainabilityBanner extends UIComponent + native(UIComponent) + config(Engine) + dependson(UIDataItem); + +var protected UIDataItem.SimplifiedItemObtainabilityValue m_eObtainability; + +defaultproperties +{ + m_sLoadName="ExclusiveBanner" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_ItemTooltip.uc b/Development/Src/TgClient/Classes/UIComponent_ItemTooltip.uc new file mode 100644 index 0000000..516c604 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ItemTooltip.uc @@ -0,0 +1,13 @@ +class UIComponent_ItemTooltip extends UIComponent + native(UIComponent) + config(Engine); + +var protected GFxObject m_mcTitle; +var protected GFxObject m_mcSubtitle; +var protected GFxObject m_mcDescription; +var int m_nLastSetItemID; + +defaultproperties +{ + m_sLoadName="Tooltip" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Item_Card.uc b/Development/Src/TgClient/Classes/UIComponent_Item_Card.uc new file mode 100644 index 0000000..7b051a0 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Item_Card.uc @@ -0,0 +1,9 @@ +class UIComponent_Item_Card extends UIComponent_Item + native(UIComponent) + config(Engine); + +var protected GFxObject m_mcCooldown; +var protected GFxObject m_mcChampion; +var protected GFxObject m_mcChampionIcon; +var protected GFxObject m_mcRank; +var protected bool m_bShowChampion; diff --git a/Development/Src/TgClient/Classes/UIComponent_LeaderboardPlayer.uc b/Development/Src/TgClient/Classes/UIComponent_LeaderboardPlayer.uc new file mode 100644 index 0000000..1b2389e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_LeaderboardPlayer.uc @@ -0,0 +1,16 @@ +class UIComponent_LeaderboardPlayer extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcName; +var GFxObject m_mcTitle; +var GFxObject m_mcPosition; +var GFxObject m_mcWins; +var GFxObject m_mcLosses; +var GFxObject m_mcScore; +var GFxObject m_mcRegion; +var GFxObject m_mcChampion; +var GFxObject m_mcChampionIcon; +var GFxObject m_mcChampionFrame; +var UIComponent_Interactable m_FrameButton; +var UIData pCurrentData; diff --git a/Development/Src/TgClient/Classes/UIComponent_LeagueTierEntry.uc b/Development/Src/TgClient/Classes/UIComponent_LeagueTierEntry.uc new file mode 100644 index 0000000..503dc1b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_LeagueTierEntry.uc @@ -0,0 +1,8 @@ +class UIComponent_LeagueTierEntry extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcIcon; +var array m_mcLegendIcons; diff --git a/Development/Src/TgClient/Classes/UIComponent_LevelProgress.uc b/Development/Src/TgClient/Classes/UIComponent_LevelProgress.uc new file mode 100644 index 0000000..72fa3e2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_LevelProgress.uc @@ -0,0 +1,10 @@ +class UIComponent_LevelProgress extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcLevel; +var GFxObject m_mcNextLevelXP; +var GFxObject m_mcTimePlayed; +var GFxObject m_mcWins; +var GFxObject m_mcTotalXP; +var GFxObject m_mcProgress; diff --git a/Development/Src/TgClient/Classes/UIComponent_LexTarget.uc b/Development/Src/TgClient/Classes/UIComponent_LexTarget.uc new file mode 100644 index 0000000..0927897 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_LexTarget.uc @@ -0,0 +1,8 @@ +class UIComponent_LexTarget extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcFrame; +var GFxObject m_mcFrameTop; +var GFxObject m_mcFrameBottom; +var GFxObject m_mcIcon; diff --git a/Development/Src/TgClient/Classes/UIComponent_LexVengeance.uc b/Development/Src/TgClient/Classes/UIComponent_LexVengeance.uc new file mode 100644 index 0000000..d9f81c6 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_LexVengeance.uc @@ -0,0 +1,62 @@ +class UIComponent_LexVengeance extends UIComponent + native(UIComponent) + config(Engine); + +const EMBLEM_ALPHA_TIME = 0.17f; + +const EMBLEM_SCALEDOWN_TIME = 0.17f; + +const EMBLEM_SCALEUP_TIME = 0.04f; + +const EMBLEM_SCALEUP_DELAY = 0.2f; + +const EMBLEM_MOVE_TIME = 0.17f; + +const EMBLEM_MOVE_DELAY = 0.5f; + +const EMBLEM_SHIFTX_LEFT = 840.0f; + +const EMBLEM_SHIFTX_RIGHT = 860.0f; + +const EMBLEM_POSY = 885.0f; + +const EMBLEM_ROULETTE_POSX = 960.0f; + +const EMBLEM_ROULETTE_POSY = 747.20f; + +const EMBLEM_ROULETTE_SCALE_START = 90.0f; + +const BOUNTY_OFFSETX = 31.0f; + +const KILLSTREAK_OFFSETX = 32.9f; + +var UIComponent_LexTarget m_RouletteTarget; +var UIComponent_LexTarget m_Target; +var GFxObject m_mcBounty; +var GFxObject m_mcKillstreak; +var GFxObject m_mcKillstreakText; +var TgPawn_Lex m_Lex; +var UIDataManager m_pUIData; +var UIDataChampion m_CachedTargetChampion; +var array m_EnemyPawns; +var float m_Timer; +var float m_TimePerFrame; +var bool m_bRouletteSpinning; +var int m_nRouletteIndex; +var float m_fEmblemXPos; +var AkEvent m_FlipbookSound; +var AkEvent m_LockInSound; +var AkEvent m_SwooshSound; +var AkEvent m_FrontlineComment; +var AkEvent m_DamageComment; +var AkEvent m_SupportComment; +var AkEvent m_FlankComment; + +event AnimateEmblem() { } + +event AnimateEmblemAbilityActivated() { } + +defaultproperties +{ + m_TimePerFrame=0.1000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_List.uc b/Development/Src/TgClient/Classes/UIComponent_List.uc new file mode 100644 index 0000000..0dc8be6 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_List.uc @@ -0,0 +1,19 @@ +class UIComponent_List extends UIComponent + native(UIList) + config(Engine); + +struct UICListEntry { + var UIComponent_Interactable pInteractable; + var UIComponent pDisplay; + structdefaultproperties {} +}; + +var protected int m_nSelectedIndex; +var array m_ListItems; +var array m_ListData; +var protected TgGFxGroup m_grList; +var UIComponent_ScrollBar m_pScrollbarV; +var UIComponent_ScrollBar m_pScrollbarH; +var dword m_dwItemSize; +var dword m_dwDataSize; +var bool m_bExtendVertically; diff --git a/Development/Src/TgClient/Classes/UIComponent_MasteryRewardsEntry.uc b/Development/Src/TgClient/Classes/UIComponent_MasteryRewardsEntry.uc new file mode 100644 index 0000000..2967f2e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_MasteryRewardsEntry.uc @@ -0,0 +1,31 @@ +class UIComponent_MasteryRewardsEntry extends UIComponent + native(UIComponent) + config(Engine); + +var protected GFxObject m_mcLockIcon; +var protected GFxObject m_mcLevelText; +var protected GFxObject m_mcRewardType; +var protected GFxObject m_mcRewardName; +var protected GFxObject m_mcRewardTitle; +var protected GFxObject m_mcRewardCurrency; +var protected GFxObject m_mcRewardCurrencyTF; +var protected GFxObject m_mcCardIcon; +var protected GFxObject m_mcItemIcon; +var protected GFxObject m_mcTextureIcon; +var protected GFxObject m_mcRarity; +var protected GFxObject m_mcRadiantChest; +var protected GFxObject m_mcPreviewing; +var protected UIInteractable_Button m_pFrameButton; +var protected UIInteractable_Button_ItemPrice m_pPriceButton; +var protected bool m_bPendingSelected; +var protected bool m_bSelected; +var protected bool m_bReadyToUnlock; +var protected bool m_bAchieved; +var protected UIDataItem m_pItemReward; + +event UpdateEntryColor() { } + +defaultproperties +{ + m_sLoadName="Entry" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_MasteryRewardsPopup.uc b/Development/Src/TgClient/Classes/UIComponent_MasteryRewardsPopup.uc new file mode 100644 index 0000000..e185e9b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_MasteryRewardsPopup.uc @@ -0,0 +1,15 @@ +class UIComponent_MasteryRewardsPopup extends UIComponent_Popup + native(UIComponent) + config(Engine) + dependson(UIDataChampion); + +var protected TgGFxGroup m_grRewardsGroup; +var protected array m_pMasteryRewardsEntries; +var array m_MasteryRewardData; +var const int m_nNumEntries; + +defaultproperties +{ + m_nNumEntries=6 + m_sLoadName="MasteryDetails" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_MatchDisplay.uc b/Development/Src/TgClient/Classes/UIComponent_MatchDisplay.uc new file mode 100644 index 0000000..449eca7 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_MatchDisplay.uc @@ -0,0 +1,19 @@ +class UIComponent_MatchDisplay extends UIComponent + native(UIComponent) + config(Engine); + +const UICOMPONENT_MATCHDISPLAY_BUILDHEADERS_COUNT = 6; + +const UICOMPONENT_MATCHDISPLAY_STATSHEADERS_COUNT = 9; + +const UICOMPONENT_MATCHDISPLAY_PLAYERS_COUNT = 10; + +enum EUICMatchDisplayTabType { + EUICMDT_Stats, // 0 + EUICMDT_Build, // 1 +}; + +var GFxObject m_mcBuildHeader; +var GFxObject m_mcStatsHeader; +var UIComponent_List m_pList; +var UIComponent_MatchDisplay.EUICMatchDisplayTabType m_eDisplayMode; diff --git a/Development/Src/TgClient/Classes/UIComponent_MatchPlayerEntry.uc b/Development/Src/TgClient/Classes/UIComponent_MatchPlayerEntry.uc new file mode 100644 index 0000000..b119681 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_MatchPlayerEntry.uc @@ -0,0 +1,34 @@ +class UIComponent_MatchPlayerEntry extends UIComponent + native(UIList) + config(Engine); + +const UICOMPONENT_MATCHPLAYERENTRY_BUILD_STATCOUNT = 2; + +const UICOMPONENT_MATCHPLAYERENTRY_DETAILS_STATCOUNT = 7; + +const UICOMPONENT_MATCHPLAYERENTRY_BUILD_CARDCOUNT = 5; + +const UICOMPONENT_MATCHPLAYERENTRY_BUILD_ITEMCOUNT = 4; + +var GFxObject m_mcEndCap; +var GFxObject m_mcIcon; +var GFxObject m_mcName; +var GFxObject m_mcTitle; +var GFxObject m_mcBuild; +var GFxObject m_mcBuild_Stat[2]; +var GFxObject m_mcBuild_Talent; +var GFxObject m_mcBuild_TalentIcon; +var UIComponent_ItemMini m_Cards[5]; +var UIComponent_Interactable m_CardButtons[5]; +var UIComponent_ItemMini m_Items[4]; +var UIComponent_Interactable m_ItemButtons[4]; +var GFxObject m_mcStatsDetails; +var GFxObject m_mcStatsDetails_Stat[7]; +var UIComponent_Interactable m_TalentButton; +var UIComponent_Interactable m_FrameButton; +var UIComponent_Interactable m_ReportButton; +var UIComponent_Interactable m_ImportButton; +var UIComponent_Interactable m_AddButton; +var UIComponent_ItemTooltip m_pTooltip; +var UIData_PlayerMatchRecord m_pPlayerData; +var bool m_bCanReport; diff --git a/Development/Src/TgClient/Classes/UIComponent_OracleSoulCharges.uc b/Development/Src/TgClient/Classes/UIComponent_OracleSoulCharges.uc new file mode 100644 index 0000000..1149e90 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_OracleSoulCharges.uc @@ -0,0 +1,23 @@ +class UIComponent_OracleSoulCharges extends UIComponent + native(UIComponent) + config(Engine); + +enum SoulChargesAnimEvent { + SoulChargesAE_Show, // 0 + SoulChargesAE_Hide, // 1 + SoulChargesAE_Increase, // 2 + SoulChargesAE_Decrease, // 3 + SoulChargesAE_MaxStacks, // 4 +}; + +var TgPawn m_CurrentViewPawn; +var TgPawn m_CurrentTargetPawn; +var GFxObject m_mcText; +var GFxObject m_mcIcon; +var GFxObject m_mcAnim; +var GFxObject m_mcMaxStacks; +var bool m_bIsHiding; +var bool m_bEnabled; +var int m_nCurrentSoulCharges; + +event float HandleAnimEvent(int nEventType, optional array fExtraData) { } diff --git a/Development/Src/TgClient/Classes/UIComponent_OwlStealthBar.uc b/Development/Src/TgClient/Classes/UIComponent_OwlStealthBar.uc new file mode 100644 index 0000000..f56ff48 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_OwlStealthBar.uc @@ -0,0 +1,10 @@ +class UIComponent_OwlStealthBar extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcThreshold; +var GFxObject m_mcStealthBarMask; +var GFxObject m_mcTrailingStealthBarMask; +var GFxObject m_mcStealthActive; +var bool m_bStealthActive; +var float m_fActivationCost; diff --git a/Development/Src/TgClient/Classes/UIComponent_OwnershipProgress.uc b/Development/Src/TgClient/Classes/UIComponent_OwnershipProgress.uc new file mode 100644 index 0000000..e29ceb5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_OwnershipProgress.uc @@ -0,0 +1,8 @@ +class UIComponent_OwnershipProgress extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcTitle; +var GFxObject m_mcOwnedAmt; +var GFxObject m_mcTotalAmt; +var GFxObject m_mcProgress; diff --git a/Development/Src/TgClient/Classes/UIComponent_PlayPanel.uc b/Development/Src/TgClient/Classes/UIComponent_PlayPanel.uc new file mode 100644 index 0000000..df0d87f --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_PlayPanel.uc @@ -0,0 +1,30 @@ +class UIComponent_PlayPanel extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcFade; +var GFxObject m_mcIcon; +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcDelayText; +var GFxObject m_mcDelayTimeText; +var GFxObject m_mcModeCTA; +var GFxObject m_mcFWOTDIcon; +var GFxObject m_mcQuestCTA; +var GFxObject m_mcCheckbox; +var GFxObject m_mcModeTypeTF; +var GFxObject m_mcFWOTDText; +var GFxObject m_mcAchievements; +var GFxObject m_mcLock; +var GFxObject m_mcLockNew; +var GFxObject m_mcLockInfo; +var GFxObject m_mcLockInfoTF; +var GFxObject m_mcProgressMask; +var GFxObject m_mcInfoButtonIcon; +var GFxObject m_mcRankedProgress; +var GFxObject m_mcRankedProgressRankTF; +var GFxObject m_mcRankedProgressRankIcon; +var GFxObject m_mcRankedProgressProgressTF; +var UIComponent_Interactable m_pPanelButton; +var UIComponent_Interactable m_pInfoButton; +var UIComponent_GamepadKey m_pGamepadKey; diff --git a/Development/Src/TgClient/Classes/UIComponent_Popup.uc b/Development/Src/TgClient/Classes/UIComponent_Popup.uc new file mode 100644 index 0000000..e7e73f2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Popup.uc @@ -0,0 +1,15 @@ +class UIComponent_Popup extends UIComponent_Interactable + native(UIComponent) + config(Engine); + +var UIComponent m_pItem; +var TgGFxGroup m_grScene; +var int m_nCallbackOnBackHandle; +var bool m_bCanHidePopup; +var bool m_bFadeWithShowHide; + +defaultproperties +{ + m_bCanHidePopup=true + m_bFadeWithShowHide=true +} diff --git a/Development/Src/TgClient/Classes/UIComponent_PopupManager.uc b/Development/Src/TgClient/Classes/UIComponent_PopupManager.uc new file mode 100644 index 0000000..9c82b0b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_PopupManager.uc @@ -0,0 +1,18 @@ +class UIComponent_PopupManager extends UIComponent + native(UIComponent) + config(Engine); + +struct PopupInfo { + var UIComponent_Popup pPopup; + var UIData pPopupData; + structdefaultproperties {} +}; + +var init array m_PopupStack; +var int m_nCloseCurrentPopupHandle; +var bool m_bAllowPopups; + +defaultproperties +{ + m_bAllowPopups=true +} diff --git a/Development/Src/TgClient/Classes/UIComponent_PortraitBorder.uc b/Development/Src/TgClient/Classes/UIComponent_PortraitBorder.uc new file mode 100644 index 0000000..c092888 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_PortraitBorder.uc @@ -0,0 +1,7 @@ +class UIComponent_PortraitBorder extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcFrame; +var GFxObject m_mcLock; +var GFxObject m_mcEquippedCheckmark; diff --git a/Development/Src/TgClient/Classes/UIComponent_ProgressBarHorizontal.uc b/Development/Src/TgClient/Classes/UIComponent_ProgressBarHorizontal.uc new file mode 100644 index 0000000..574f3db --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ProgressBarHorizontal.uc @@ -0,0 +1,12 @@ +class UIComponent_ProgressBarHorizontal extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcBackground; +var GFxObject m_mcFill; +var GFxObject m_mcTip; + +defaultproperties +{ + m_sLoadName="ProgressBar" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Quest.uc b/Development/Src/TgClient/Classes/UIComponent_Quest.uc new file mode 100644 index 0000000..49bdccf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Quest.uc @@ -0,0 +1,33 @@ +class UIComponent_Quest extends UIComponent + native(UIList) + config(Engine); + +var int m_nIndex; +var UIQuests m_pParentQuestsScene; +var UIInteractable_Button m_pQuestPanelButton; +var UIInteractable_Button m_pQuestDiscardButton; +var GFxObject m_mcQuestPanelButton; +var GFxObject m_mcQuestReward; +var GFxObject m_mcQuestProgress; +var GFxObject m_mcQuestProgressBar; +var GFxObject m_mcQuestProgressMask; +var GFxObject m_mcQuestGlow; +var GFxObject m_mcQuestTitle; +var GFxObject m_mcQuestType; +var GFxObject m_mcQuestIconRendered; +var GFxObject m_mcQuestIcon; +var GFxObject m_mcQuestChestIcon; +var GFxObject m_mcRewardItem; +var GFxObject m_mcRewardItemIcon; +var GFxObject m_mcRewardItemImageStack; +var GFxObject m_mcRewardItemTexture; +var GFxObject m_mcQuestProgressText; +var GFxObject m_mcQuestDescription; +var GFxObject m_mcQuestRewardLabel; +var GFxObject m_mcQuestRewardAmount; +var GFxObject m_mcQuestDiscard; + +defaultproperties +{ + m_nIndex=-1 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_RankedEOMProgress.uc b/Development/Src/TgClient/Classes/UIComponent_RankedEOMProgress.uc new file mode 100644 index 0000000..e7b2f7e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_RankedEOMProgress.uc @@ -0,0 +1,10 @@ +class UIComponent_RankedEOMProgress extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcNetTP; +var GFxObject m_mcCurrentTP; +var GFxObject m_mcCurrentRank; +var GFxObject m_mcRankIconPrev; +var GFxObject m_mcRankIconNext; +var UIComponent_ProgressBarHorizontal m_pProgress; diff --git a/Development/Src/TgClient/Classes/UIComponent_RankedProgress.uc b/Development/Src/TgClient/Classes/UIComponent_RankedProgress.uc new file mode 100644 index 0000000..7ce262c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_RankedProgress.uc @@ -0,0 +1,12 @@ +class UIComponent_RankedProgress extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcName; +var GFxObject m_mcRank; +var GFxObject m_mcWins; +var GFxObject m_mcLosses; +var GFxObject m_mcTier; +var GFxObject m_mcTPLabel; +var GFxObject m_mcTP; +var UIComponent_ProgressBarHorizontal m_pProgress; diff --git a/Development/Src/TgClient/Classes/UIComponent_ScrollBar.uc b/Development/Src/TgClient/Classes/UIComponent_ScrollBar.uc new file mode 100644 index 0000000..acd3300 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_ScrollBar.uc @@ -0,0 +1,17 @@ +class UIComponent_ScrollBar extends UIComponent_Interactable + native(UIComponent) + config(Engine); + +var protected int m_nPageHeight; +var protected int m_nPageWidth; +var protected int m_nNumElements; +var protected float m_fScrollPos; +var protected int m_nNavScrollCBHandle1; +var protected int m_nNavScrollCBHandle2; +var protected TgGFxGroup m_grScroll; +var protected bool m_bScrollVertical; + +defaultproperties +{ + m_bScrollVertical=true +} diff --git a/Development/Src/TgClient/Classes/UIComponent_SocialPlayer.uc b/Development/Src/TgClient/Classes/UIComponent_SocialPlayer.uc new file mode 100644 index 0000000..3e58604 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_SocialPlayer.uc @@ -0,0 +1,7 @@ +class UIComponent_SocialPlayer extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcName; +var GFxObject m_mcStatus; +var GFxObject m_mcLevel; diff --git a/Development/Src/TgClient/Classes/UIComponent_String.uc b/Development/Src/TgClient/Classes/UIComponent_String.uc new file mode 100644 index 0000000..0f29df9 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_String.uc @@ -0,0 +1,5 @@ +class UIComponent_String extends UIComponent + native(UIList) + config(Engine); + +var GFxObject m_mcText; diff --git a/Development/Src/TgClient/Classes/UIComponent_StringWithCount.uc b/Development/Src/TgClient/Classes/UIComponent_StringWithCount.uc new file mode 100644 index 0000000..ab4186e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_StringWithCount.uc @@ -0,0 +1,5 @@ +class UIComponent_StringWithCount extends UIComponent_String + native(UIList) + config(Engine); + +var GFxObject m_mcCountTf; diff --git a/Development/Src/TgClient/Classes/UIComponent_TalentSelection.uc b/Development/Src/TgClient/Classes/UIComponent_TalentSelection.uc new file mode 100644 index 0000000..0baeddf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TalentSelection.uc @@ -0,0 +1,14 @@ +class UIComponent_TalentSelection extends UIComponent + native(UIComponent) + config(Engine); + +var TgGFxGroup m_grTalent; +var GFxObject m_mcTalentContainer; +var GFxObject m_mcEssenceQuantity; +var const float m_fCenteredCardSpacing; +var const float m_fTalentAnimSize; + +defaultproperties +{ + m_fTalentAnimSize=600.0000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter.uc new file mode 100644 index 0000000..fe8feb0 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter.uc @@ -0,0 +1,32 @@ +class UIComponent_Targeter extends UIComponent + native(UIComponent) + config(Engine); + +var TgPawn_Character m_Target; +var TgGfxScene m_mcOwningScene; +var GFxObject m_mcParent; +var GFxObject m_mcTargeter; +var GFxObject m_mcKey; +var GFxObject m_mcPrompt; +var const string m_sKeybind; +var bool m_bTargeted; +var bool m_bVisible; +var bool m_bShowKeybind; +var bool m_bLOSCheck; +var const bool m_bCenterTargeter; +var float m_fBaseTargeterHeight; +var float m_fScaleMultiplier; +var float m_fMinScale; +var float m_fMaxScale; +var float m_fFadeTime; +var const int m_nTargeterFrame; + +defaultproperties +{ + m_bLOSCheck=true + m_fScaleMultiplier=1.0000000 + m_fMinScale=0.5000000 + m_fMaxScale=2.0000000 + m_fFadeTime=0.2000000 + m_nTargeterFrame=1 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TargeterManager.uc b/Development/Src/TgClient/Classes/UIComponent_TargeterManager.uc new file mode 100644 index 0000000..ecb9112 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TargeterManager.uc @@ -0,0 +1,8 @@ +class UIComponent_TargeterManager extends UIComponent + native(UIComponent) + config(Engine); + +var TgGfxScene m_mcOwningScene; +var Class pTargeterClass; +var byte m_TargeterID; +var array m_Targeters; diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_AstralMark.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_AstralMark.uc new file mode 100644 index 0000000..438bfb4 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_AstralMark.uc @@ -0,0 +1,10 @@ +class UIComponent_Targeter_AstralMark extends UIComponent_Targeter_BracketTargeter + native(UIComponent) + config(Engine); + +defaultproperties +{ + m_sKeybind="GBA_Ability_2" + m_bShowKeybind=true + m_nTargeterFrame=5 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_BracketTargeter.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_BracketTargeter.uc new file mode 100644 index 0000000..fa79fc9 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_BracketTargeter.uc @@ -0,0 +1,12 @@ +class UIComponent_Targeter_BracketTargeter extends UIComponent_Targeter + native(UIComponent) + config(Engine); + +var GFxObject m_mcTargeterLeft; +var GFxObject m_mcTargeterRight; +var float m_fSideTargeterAspectRatio; + +defaultproperties +{ + m_bCenterTargeter=true +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_DimensionalLink.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_DimensionalLink.uc new file mode 100644 index 0000000..5e77a51 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_DimensionalLink.uc @@ -0,0 +1,11 @@ +class UIComponent_Targeter_DimensionalLink extends UIComponent_Targeter_PointTargeter + native(UIComponent) + config(Engine); + +defaultproperties +{ + m_sKeybind="GBA_Ability_3" + m_bShowKeybind=true + m_bCenterTargeter=true + m_nTargeterFrame=6 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_Headhunter.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_Headhunter.uc new file mode 100644 index 0000000..3797c45 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_Headhunter.uc @@ -0,0 +1,6 @@ +class UIComponent_Targeter_Headhunter extends UIComponent_Targeter_PointTargeter + native(UIComponent) + config(Engine); + +var GFxObject m_mcSpinner; +var float m_fSpinnerRotation; diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_HuntersMark.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_HuntersMark.uc new file mode 100644 index 0000000..8e958b2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_HuntersMark.uc @@ -0,0 +1,10 @@ +class UIComponent_Targeter_HuntersMark extends UIComponent_Targeter_BracketTargeter + native(UIComponent) + config(Engine); + +defaultproperties +{ + m_sKeybind="GBA_Ability_3" + m_bShowKeybind=true + m_nTargeterFrame=2 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_PointTargeter.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_PointTargeter.uc new file mode 100644 index 0000000..2dcf598 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_PointTargeter.uc @@ -0,0 +1,3 @@ +class UIComponent_Targeter_PointTargeter extends UIComponent_Targeter + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_Protection.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_Protection.uc new file mode 100644 index 0000000..2d6524a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_Protection.uc @@ -0,0 +1,10 @@ +class UIComponent_Targeter_Protection extends UIComponent_Targeter_BracketTargeter + native(UIComponent) + config(Engine); + +defaultproperties +{ + m_sKeybind="GBA_Ability_2" + m_bShowKeybind=true + m_nTargeterFrame=3 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Targeter_RestoreSoul.uc b/Development/Src/TgClient/Classes/UIComponent_Targeter_RestoreSoul.uc new file mode 100644 index 0000000..8dde6e9 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Targeter_RestoreSoul.uc @@ -0,0 +1,10 @@ +class UIComponent_Targeter_RestoreSoul extends UIComponent_Targeter_PointTargeter + native(UIComponent) + config(Engine); + +defaultproperties +{ + m_bLOSCheck=false + m_bCenterTargeter=true + m_nTargeterFrame=4 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TeamPortraits.uc b/Development/Src/TgClient/Classes/UIComponent_TeamPortraits.uc new file mode 100644 index 0000000..14ede57 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TeamPortraits.uc @@ -0,0 +1,11 @@ +class UIComponent_TeamPortraits extends UIComponent + native(UIComponent) + config(Engine); + +var bool m_bFriendly; + +defaultproperties +{ + m_bFriendly=true + m_sLoadName="Team" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TelepunchTarget.uc b/Development/Src/TgClient/Classes/UIComponent_TelepunchTarget.uc new file mode 100644 index 0000000..ecf0a9c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TelepunchTarget.uc @@ -0,0 +1,13 @@ +class UIComponent_TelepunchTarget extends UIComponent + native(UIComponent) + config(Engine); + +var TgPawn m_CurrentViewPawn; +var TgPawn m_CurrentTargetPawn; +var bool m_bIsHiding; +var bool m_bEnabled; + +defaultproperties +{ + m_sLoadName="DemonUlt" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TitleTooltip.uc b/Development/Src/TgClient/Classes/UIComponent_TitleTooltip.uc new file mode 100644 index 0000000..48a05b6 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TitleTooltip.uc @@ -0,0 +1,13 @@ +class UIComponent_TitleTooltip extends UIComponent + native(UIComponent) + config(Engine); + +var protected GFxObject m_mcIcon; +var protected GFxObject m_mcDescription; +var protected int m_nLastSetItemID; +var const float m_fTooltipShowDelay; + +defaultproperties +{ + m_fTooltipShowDelay=0.5000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TitlesView.uc b/Development/Src/TgClient/Classes/UIComponent_TitlesView.uc new file mode 100644 index 0000000..4ba1bcf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TitlesView.uc @@ -0,0 +1,26 @@ +class UIComponent_TitlesView extends UIComponent + native(UIComponent) + config(Engine); + +var protected array m_TitleEntries; +var protected TgGFxGroup m_grTitlesGroup; +var protected GFxObject m_mcTitle; +var protected GFxObject m_mcPlayerTitle; +var protected UIInteractable_Button m_pEquipButton; +var protected UIComponent_TitleTooltip m_pTooltipLeft; +var protected UIComponent_TitleTooltip m_pTooltipRight; +var protected UIComponent_ScrollBar m_pScrollbar; +var protected int m_nLastTooltipIndex; +var const int m_nNumTitlesRows; +var const int m_nNumTitlesCols; + +native function FadeIn(GFxObject pObj, optional float fTime=0.0500000, optional float fDelay=0.0000000); // Export UUIComponent_TitlesView::execFadeIn(FFrame&, void* const) + +native function FadeOut(GFxObject pObj, optional float fTime=0.0500000, optional float fDelay=0.0000000); // Export UUIComponent_TitlesView::execFadeOut(FFrame&, void* const) + +defaultproperties +{ + m_nNumTitlesRows=8 + m_nNumTitlesCols=2 + m_sLoadName="Titles" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TitlesViewEntry.uc b/Development/Src/TgClient/Classes/UIComponent_TitlesViewEntry.uc new file mode 100644 index 0000000..dd4d17e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TitlesViewEntry.uc @@ -0,0 +1,23 @@ +class UIComponent_TitlesViewEntry extends UIComponent_Interactable + native(UIComponent) + config(Engine); + +var int m_nTitleId; +var protected GFxObject m_mcRarityText; +var protected GFxObject m_mcColorBlock; +var protected GFxObject m_mcFade; +var protected GFxObject m_mcTitle; +var protected GFxObject m_mcLockIcon; +var protected GFxObject m_mcSelected; +var protected GFxObject m_mcEquipped; +var protected AkBaseSoundObject m_scEquip; +var protected AkBaseSoundObject m_scUnequip; +var protected AkBaseSoundObject m_scNotOwned; + +defaultproperties +{ + m_scEquip=AkEvent'UI_Menu_Main_OnClick_Positive_Play' + m_scUnequip=AkEvent'UI_Menu_Main_OnClick_Negative_Play' + m_scNotOwned=AkEvent'UI_Menu_Main_OnHover_Small_Play' + m_sLoadName="Entry" +} diff --git a/Development/Src/TgClient/Classes/UIComponent_Toggle.uc b/Development/Src/TgClient/Classes/UIComponent_Toggle.uc new file mode 100644 index 0000000..df443a4 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_Toggle.uc @@ -0,0 +1,6 @@ +class UIComponent_Toggle extends UIComponent_Interactable + native(UIComponent) + config(Engine); + +var bool m_bActive; +var GFxObject m_mcActive; diff --git a/Development/Src/TgClient/Classes/UIComponent_TorvaldShieldBar.uc b/Development/Src/TgClient/Classes/UIComponent_TorvaldShieldBar.uc new file mode 100644 index 0000000..c3feb47 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TorvaldShieldBar.uc @@ -0,0 +1,20 @@ +class UIComponent_TorvaldShieldBar extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcBarContainer; +var GFxObject m_mcShieldMask; +var GFxObject m_mcDamageMask; +var TgPawn_Gauntlet m_CachedViewedTorvald; +var TgPawn_Lazarus m_CachedLazarus; +var float m_fCurrentDamagePct; +var float m_fCurrentShieldPct; +var bool m_bVisible; +var float m_fDamageInterpSpeed; +var float m_fMinDamageInterpSpeed; + +defaultproperties +{ + m_fDamageInterpSpeed=4.5000000 + m_fMinDamageInterpSpeed=0.1000000 +} diff --git a/Development/Src/TgClient/Classes/UIComponent_TorvaldShieldText.uc b/Development/Src/TgClient/Classes/UIComponent_TorvaldShieldText.uc new file mode 100644 index 0000000..4f082dc --- /dev/null +++ b/Development/Src/TgClient/Classes/UIComponent_TorvaldShieldText.uc @@ -0,0 +1,10 @@ +class UIComponent_TorvaldShieldText extends UIComponent + native(UIComponent) + config(Engine); + +var GFxObject m_mcShieldTextContainer; +var GFxObject m_mcCurrentShieldText; +var GFxObject m_mcMaxShieldText; +var float m_fCurrentShield; +var float m_fMaxShield; +var bool m_bVisible; diff --git a/Development/Src/TgClient/Classes/UICustomGame.uc b/Development/Src/TgClient/Classes/UICustomGame.uc new file mode 100644 index 0000000..933a3f2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UICustomGame.uc @@ -0,0 +1,179 @@ +class UICustomGame extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + implements(DelayQueueInterface) + config(Engine); + +const UICUSTOM_MAPS = 9; + +const UICUSTOM_MODES = 3; + +const UICUSTOM_GAMES = 7; + +const UICUSTOM_SLOTS = 6; + +const UICUSTOM_ARROWS = 2; + +enum UICustomGameState { + UICGS_GAME_LIST, // 0 + UICGS_CREATING_MAP, // 1 + UICGS_CREATING_SETTINGS, // 2 + UICGS_JOINING, // 3 + UICGS_LOBBY, // 4 + UICGS_GAME_STARTING, // 5 +}; + +struct UICustomMapQueue { + var int nQueueId; + var int nMapId; + var int nName; + var init string sName; + var TgObject.TG_GAME_TYPE eGameType; + structdefaultproperties {} +}; + +struct UICustomGameData { + var int nId; + var int nName; + var int nDraft; + var int nTotal; + var int nPlayers; + var int nMaxPartySizeToJoin; + var dword dwRegion; + var bool bPrivate; + var init string sName; + var init string sMap; + var init string sGameMode; + var init string sOwner; + var init string sQueueName; + var TgObject.TG_GAME_TYPE eGameType; + structdefaultproperties {} +}; + +var int m_nMapIndex; +var int m_nTeamIndex; +var int m_nDraftIndex; +var int m_nQueueIndex; +var int m_nRegionIndex; +var int m_nScrollIndex; +var int m_nSpectateIndex; +var bool m_bValidJoin; +var bool m_bValidCreate; +var UICustomGame.UICustomGameState m_eState; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderBack; +var GFxObject m_mcHeaderTitle; +var GFxObject m_mcGames; +var GFxObject m_mcGamesCreate; +var GFxObject m_mcGamesCreateKey; +var GFxObject m_mcGamesRefresh; +var GFxObject m_mcGamesScrollBar; +var GFxObject m_mcGame[7]; +var GFxObject m_mcGameJoin[7]; +var GFxObject m_mcGameLock[7]; +var GFxObject m_mcGameName[7]; +var GFxObject m_mcGameDraft[7]; +var GFxObject m_mcGameOwner[7]; +var GFxObject m_mcGameMode[7]; +var GFxObject m_mcGameMap[7]; +var GFxObject m_mcGamePlayers[7]; +var TgGFxGroup m_grGames; +var GFxObject m_mcCreate; +var GFxObject m_mcCreateMapMode; +var GFxObject m_mcCreateSettings; +var GFxObject m_mcCreateDone; +var GFxObject m_mcCreateCancel; +var GFxObject m_mcCreateMap[9]; +var GFxObject m_mcCreateMapIcon[9]; +var GFxObject m_mcCreateMapName[9]; +var UIInteractable_Button m_mcCreateModeTab[3]; +var GFxObject m_mcCreateBumper[2]; +var GFxObject m_mcCreateScrollBar; +var GFxObject m_mcCreateSettingName; +var GFxObject m_mcCreateSettingNameHighlight; +var GFxObject m_mcCreateSettingPass; +var GFxObject m_mcCreateSettingPassHighlight; +var GFxObject m_mcCreateSettingDraft; +var GFxObject m_mcCreateSettingDraftHighlight; +var GFxObject m_mcCreateSettingDraftArrow[2]; +var GFxObject m_mcCreateSettingRegion; +var GFxObject m_mcCreateSettingRegionHighlight; +var GFxObject m_mcCreateSettingRegionArrow[2]; +var GFxObject m_mcCreateSettingSpectate; +var GFxObject m_mcCreateSettingSpectateHighlight; +var GFxObject m_mcCreateSettingSpectateArrow[2]; +var GFxObject m_mcCreateSettingTeamSize; +var GFxObject m_mcCreateSettingTeamSizeHighlight; +var GFxObject m_mcCreateSettingTeamSizeArrow[2]; +var GFxObject m_mcCreateSettingSpectatePass; +var GFxObject m_mcCreateSettingSpectatePassHighlight; +var GFxObject m_mcCreateSettingMap; +var GFxObject m_mcCreateSettingMapIcon; +var GFxObject m_mcCreateSettingMapName; +var GFxObject m_mcCreateSettingMapMode; +var TgGFxGroup m_grCreateMaps; +var TgGFxGroup m_grCreateSettings; +var GFxObject m_mcLobby; +var GFxObject m_mcLobbyName; +var GFxObject m_mcLobbyDone; +var GFxObject m_mcLobbyDraft; +var GFxObject m_mcLobbyCancel; +var GFxObject m_mcLobbyRegion; +var GFxObject m_mcLobbyMapIcon; +var GFxObject m_mcLobbyMapName; +var GFxObject m_mcLobbyMapMode; +var GFxObject m_mcLobbySpectate; +var GFxObject m_mcLobbyStarting; +var GFxObject m_mcLobbyTeamSize; +var GFxObject m_mcLobbyMapDetails; +var GFxObject m_mcLobbyRed[6]; +var GFxObject m_mcLobbyRedName[6]; +var GFxObject m_mcLobbyRedEquipableTitle[6]; +var GFxObject m_mcLobbyRedLevel[6]; +var GFxObject m_mcLobbyRedLeader[6]; +var UIInteractable_Button m_mcLobbyRedFrame[6]; +var UIInteractable_Button m_mcLobbyRedKick[6]; +var GFxObject m_mcLobbyRedSwap[6]; +var GFxObject m_mcLobbyBlue[6]; +var GFxObject m_mcLobbyBlueName[6]; +var GFxObject m_mcLobbyBlueEquipableTitle[6]; +var GFxObject m_mcLobbyBlueLevel[6]; +var GFxObject m_mcLobbyBlueLeader[6]; +var UIInteractable_Button m_mcLobbyBlueFrame[6]; +var UIInteractable_Button m_mcLobbyBlueKick[6]; +var GFxObject m_mcLobbyBlueSwap[6]; +var TgGFxGroup m_grLobby; +var GFxObject m_mcPopup; +var GFxObject m_mcPopupDone; +var GFxObject m_mcPopupTitle; +var GFxObject m_mcPopupCancel; +var GFxObject m_mcPopupSubtitle; +var GFxObject m_mcPopupInput; +var TgGFxGroup m_grPopup; +var array m_FilteredCustomMapQueues; +var array m_FilteredCustomGames; +var array m_RawCustomMapQueues; +var array m_RawCustomGames; +var int m_nCustomGamesListRegionIndex; +var UIComponent_Dropdown m_RegionDropdown; +var int m_nCurrentGameTypeIndex; +var int m_nHighlightedPlayerIndex; +var int m_nHighlightedPlayerTaskforce; +var dword m_dwPendingHighlightPlayerId; + +defaultproperties +{ + m_nCustomGamesListRegionIndex=-1 + m_UISceneClass=Class'UIScene_UICustomGame' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_OptionList[3]=0 + m_OptionList[4]=0 + m_OptionList[5]=0 + m_OptionList[6]=0 + m_nBackground=1 + m_bBlur=true + m_bIsOnline=true + m_bAllowLeaveQueueKey=false + m_Name="UICustomGame" +} diff --git a/Development/Src/TgClient/Classes/UIDailyReward.uc b/Development/Src/TgClient/Classes/UIDailyReward.uc new file mode 100644 index 0000000..0e30b4b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDailyReward.uc @@ -0,0 +1,12 @@ +class UIDailyReward extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIDailyReward' + m_nBackground=1 + m_bBlur=true + m_bIsPopup=true + m_Name="UIDailyReward" +} diff --git a/Development/Src/TgClient/Classes/UIData.uc b/Development/Src/TgClient/Classes/UIData.uc new file mode 100644 index 0000000..699b7cf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData.uc @@ -0,0 +1,3 @@ +class UIData extends Object + native(UIData) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIDataChampion.uc b/Development/Src/TgClient/Classes/UIDataChampion.uc new file mode 100644 index 0000000..df69d20 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataChampion.uc @@ -0,0 +1,70 @@ +class UIDataChampion extends UIDataItem + native(UIData) + config(Engine) + dependson(UIDataObject); + +const ALL_CHAMPIONS = 0; + +const OWNED_CHAMPIONS = -1; + +enum EArchetypes { + ARCHETYPE_TANK, // 0 + ARCHETYPE_DAMAGE, // 1 + ARCHETYPE_SUPPORT, // 2 + ARCHETYPE_FLANK, // 3 +}; + +enum SimplifiedCardType { + SCT_Card, // 0 + SCT_BurnCard, // 1 + SCT_Talent, // 2 +}; + +struct MasteryRewards { + var int nLevel; + var Pointer pItemInfo; + var int nCurrency; + var int nCurrencyType; + var int nChests; + var bool bEntitlement; + structdefaultproperties {} +}; + +var int m_nLevel; +var int m_nItemId; +var int m_nArchetype; +var int m_nItemsTotal; +var int m_nItemsOwned; +var int m_nXPProgress; +var int m_nXPRequired; +var int m_nActiveSet; +var int m_nActiveTalent; +var int m_nActiveDeck; +var int m_nActiveSkin; +var int m_nActiveHead; +var int m_nActiveEmote; +var int m_nActiveVoice; +var int m_nActiveWeapon; +var int m_nActiveSpray; +var int m_nActiveMVPPose; +var bool m_bCanUseMount; +var bool m_bIsOnRotation; +var float m_fIconOffsetX; +var float m_fIconOffsetY; +var float m_fXPPercent; +var float m_fItemsPercent; +var string m_sLore; +var string m_sDamage; +var string m_sSpecial; +var array m_Sets; +var array m_Cards; +var array m_Heads; +var array m_Skins; +var array m_Skills; +var array m_Weapons; +var array m_Emotes; +var array m_Sprays; +var array m_MVPPoses; +var array m_Voices; +var array m_Groups; +var array m_Decks; diff --git a/Development/Src/TgClient/Classes/UIDataChampions.uc b/Development/Src/TgClient/Classes/UIDataChampions.uc new file mode 100644 index 0000000..b2b8b8c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataChampions.uc @@ -0,0 +1,8 @@ +class UIDataChampions extends UIDataObject + native(UIData) + config(Engine); + +var UIDataChampion m_pActiveChampion; +var array m_Champions; +var array m_PvEChampions; +var array m_Collections; diff --git a/Development/Src/TgClient/Classes/UIDataCommon.uc b/Development/Src/TgClient/Classes/UIDataCommon.uc new file mode 100644 index 0000000..971effa --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataCommon.uc @@ -0,0 +1,29 @@ +class UIDataCommon extends UIDataObject + native(UIData) + config(Engine); + +const DEFAULT_ANNOUNCER_PACK = 18647; + +var int m_nLevel; +var int m_nItemsTotal; +var int m_nItemsOwned; +var int m_nXPProgress; +var int m_nXPRequired; +var int m_nActiveMount; +var float m_fXPPercent; +var float m_fItemsPercent; +var array m_BurnAll; +var array m_BurnA; +var array m_BurnB; +var array m_BurnC; +var array m_BurnD; +var array m_Mounts; +var array m_EquipableTitles; +var array m_AnnouncerPacks; +var array m_Chests; +var array m_MatchBoosters; + +defaultproperties +{ + m_nActiveMount=11512 +} diff --git a/Development/Src/TgClient/Classes/UIDataGoals.uc b/Development/Src/TgClient/Classes/UIDataGoals.uc new file mode 100644 index 0000000..21f9891 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataGoals.uc @@ -0,0 +1,6 @@ +class UIDataGoals extends UIDataObject + native(UIData) + config(Engine); + +var array m_Ranked; +var array m_GoalArray; diff --git a/Development/Src/TgClient/Classes/UIDataItem.uc b/Development/Src/TgClient/Classes/UIDataItem.uc new file mode 100644 index 0000000..c71e841 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataItem.uc @@ -0,0 +1,82 @@ +class UIDataItem extends UIDataObject + native(UIData) + config(Engine); + +enum ItemType { + CIT_Card, // 0 + CIT_Head, // 1 + CIT_Skin, // 2 + CIT_Skill, // 3 + CIT_Weapon, // 4 + CIT_Emote, // 5 + CIT_Spray, // 6 + CIT_MVPPose, // 7 + CIT_Voice, // 8 + CIT_Set, // 9 + CIT_Mount, // 10 + CIT_BurnCard, // 11 + CIT_Talent, // 12 + CIT_Title, // 13 + CIT_Collection, // 14 + CIT_AnnouncerPack, // 15 + CIT_Chest, // 16 + CIT_MatchBooster, // 17 +}; + +enum AbilityModifiedByDevice { + AMBD_Weapon, // 0 + AMBD_AltFire, // 1 + AMBD_Ability, // 2 + AMBD_Movement, // 3 +}; + +enum ItemRarity { + IRT_Default, // 0 + IRT_Common, // 1 + IRT_Uncommon, // 2 + IRT_Rare, // 3 + IRT_Epic, // 4 + IRT_Legendary, // 5 + IRT_Ancient, // 6 +}; + +enum SimplifiedItemObtainabilityValue { + SIOV_Normal, // 0 + SIOV_Limited, // 1 + SIOV_Exclusive, // 2 + SIOV_Mastery, // 3 + SIOV_Quest, // 4 +}; + +enum StoreItemsSortingType { + SIST_ByInGame, // 0 + SIST_ByRarityDescending, // 1 +}; + +var UIDataItem.ItemType m_eItemType; +var byte m_eRarity; +var dword m_dwPlayerInventoryId; +var dword m_dwCharInventoryId; +var int m_nBotId; +var int m_nObtainability; +var int m_nVendor; +var int m_nId; +var int m_nIcon; +var int m_nInGameCredits; +var int m_nRank; +var int m_nUpgradeLevel; +var int m_nCooldown; +var bool m_bPurchasable; +var bool m_bQuestExclusive; +var bool m_bDefault; +var init string m_sName; +var init string m_sDesc; +var init string m_sIcon; +var int m_nHintId; +var int nIndex; +var int m_nEntitlementId; +var UIDataItem m_pOwnershipItem; +var array m_SubItems; +var array m_PriceData; + +native function OnTeamModelUpdated(); // Export UUIDataItem::execOnTeamModelUpdated(FFrame&, void* const) diff --git a/Development/Src/TgClient/Classes/UIDataLeague.uc b/Development/Src/TgClient/Classes/UIDataLeague.uc new file mode 100644 index 0000000..7c802ad --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataLeague.uc @@ -0,0 +1,12 @@ +class UIDataLeague extends UIData + native(UIData) + config(Engine); + +var dword dwLeagueId; +var dword dwSeason; +var dword dwRound; +var dword dwPlayerCount; +var DateTimeWrapper dtSeasonEnd; +var DateTimeWrapper dtRoundEnd; +var init array m_TierArray; +var init array m_PlayerArray; diff --git a/Development/Src/TgClient/Classes/UIDataLeagueManager.uc b/Development/Src/TgClient/Classes/UIDataLeagueManager.uc new file mode 100644 index 0000000..2976220 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataLeagueManager.uc @@ -0,0 +1,7 @@ +class UIDataLeagueManager extends UIDataObject + native(UIData) + config(Engine); + +var array m_LeagueArray; +var UIData_LeagueEOM m_EOM; +var UIData_LeagueTierChange m_TierChange; diff --git a/Development/Src/TgClient/Classes/UIDataLeaguePlayer.uc b/Development/Src/TgClient/Classes/UIDataLeaguePlayer.uc new file mode 100644 index 0000000..5ad714d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataLeaguePlayer.uc @@ -0,0 +1,20 @@ +class UIDataLeaguePlayer extends UIData + native(UIData) + config(Engine); + +var UIDataPlayer pPlayer; +var UIDataLeague pLeague; +var UIDataLeagueTier pTier; +var UIDataLeagueTier pHighestTier; +var int nPointsEarned; +var int nPointsTrend; +var dword dwRank; +var dword dwRankPrev; +var dword dwWins; +var dword dwLosses; +var dword dwDodges; +var dword dwMatchesPlayedInTier; +var dword dwRegion; +var dword dwRecommendedTierId; +var dword dwTitleId; +var DateTimeWrapper dtLastPlayed; diff --git a/Development/Src/TgClient/Classes/UIDataLeagueTier.uc b/Development/Src/TgClient/Classes/UIDataLeagueTier.uc new file mode 100644 index 0000000..d56404b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataLeagueTier.uc @@ -0,0 +1,12 @@ +class UIDataLeagueTier extends UIData + native(UIData) + config(Engine); + +enum UIDLT_Tag { + UIDLT_Decays, // 0 + UIDLT_PlatinumQueue, // 1 + UIDLT_NoDivisions, // 2 +}; + +var UIDataLeague pLeague; +var dword dwTierId; diff --git a/Development/Src/TgClient/Classes/UIDataManager.uc b/Development/Src/TgClient/Classes/UIDataManager.uc new file mode 100644 index 0000000..7e5887a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataManager.uc @@ -0,0 +1,12 @@ +class UIDataManager extends UIDataObject + native(UIData) + config(Engine); + +var UIDataCommon m_CommonData; +var UIDataChampions m_ChampionData; +var UIDataSocial m_Social; +var UIDataLeagueManager m_LeagueMgr; +var UIDataGoals m_Goals; +var UIDataQueues m_Queues; +var array m_Data; +var array m_RestrictedClasses; diff --git a/Development/Src/TgClient/Classes/UIDataObject.uc b/Development/Src/TgClient/Classes/UIDataObject.uc new file mode 100644 index 0000000..d846acd --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataObject.uc @@ -0,0 +1,65 @@ +class UIDataObject extends UIData + native(UIData) + config(Engine); + +const UIDATA_DECKSET = 54; + +const UIDATA_CARDPROP = 1710; + +const UIDATA_DECKNAME = 1783; + +const UIDATA_DECKPROP = 1784; + +const UIDATA_DECKSIZE = 5; + +const UIDATA_ACTIVESET = 5; + +const UIDATA_NUMTEMPLATEDECKS = 1; + +const UIDATA_MAXCUSTOMDECKS = 5; + +const UIDATA_NUMTALENTS = 3; + +const UIDATA_GROUPSIZE = 4; + +const UIDATA_BURNSIZE = 3; + +const UIDATA_SETSIZE = 3; + +const ITEM_TENCENT_FILLER = 19094; + +enum UICardDeckType { + UIDT_OWNED, // 0 + UIDT_LOCKED, // 1 + UIDT_INDECK, // 2 + UIDT_POINTS, // 3 +}; + +struct ItemGroup { + var int nId[4]; + var UIDataItem pItem; + structdefaultproperties {} +}; + +struct UIDataDeck { + var int nId; + var bool bTemplate; + var init string sName; + var init string sDesc; + var int nDevice[5]; + structdefaultproperties {} +}; + +struct ProductInfo { + var string ProductID; + var string ProductName; + var string ProductDescription; + var string ProductImage; + var string DisplayListPrice; + var string DisplayPrice; + var float ListPrice; + var float Price; + var string CurrencyCode; + var string SignedOffer; + structdefaultproperties {} +}; diff --git a/Development/Src/TgClient/Classes/UIDataPlayer.uc b/Development/Src/TgClient/Classes/UIDataPlayer.uc new file mode 100644 index 0000000..94a6ff5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataPlayer.uc @@ -0,0 +1,29 @@ +class UIDataPlayer extends UIData + native(UIData) + config(Engine); + +enum SOCIAL_PlayerOnlineStatus { + UISPOS_None, // 0 + UISPOS_Offline, // 1 + UISPOS_Away, // 2 + UISPOS_FriendInviteSent, // 3 + UISPOS_FriendInvitedYou, // 4 + UISPOS_InMatch, // 5 + UISPOS_InParty, // 6 + UISPOS_InQueue, // 7 + UISPOS_InLobby, // 8 + UISPOS_Online, // 9 +}; + +var init string sName; +var init string sStatusString; +var UIDataPlayer.SOCIAL_PlayerOnlineStatus eStatus; +var int nLevel; +var int nHours; +var int nMasteryLevel; +var dword dwPlayerId; +var QWord qwUserId; +var bool bIsSelf; +var bool bIsLeader; +var bool bPartyInvitePending; +var init array pLeaguePlayers; diff --git a/Development/Src/TgClient/Classes/UIDataPrice.uc b/Development/Src/TgClient/Classes/UIDataPrice.uc new file mode 100644 index 0000000..3717733 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataPrice.uc @@ -0,0 +1,13 @@ +class UIDataPrice extends UIDataObject + native(UIData) + config(Engine); + +var int m_nVendorId; +var int m_nLootId; +var int m_nItemId; +var int m_nPurchaseType; +var int m_nCurrencyType; +var int m_nQuantity; +var int m_nPrice; +var int m_nDiscountPrice; +var int m_nOriginalPrice; diff --git a/Development/Src/TgClient/Classes/UIDataQueues.uc b/Development/Src/TgClient/Classes/UIDataQueues.uc new file mode 100644 index 0000000..b3cf2ad --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataQueues.uc @@ -0,0 +1,6 @@ +class UIDataQueues extends UIDataObject + native(UIData) + config(Engine); + +var UIData_List_TitleIcon m_QueueData; +var float m_fStatusTimer; diff --git a/Development/Src/TgClient/Classes/UIDataSocial.uc b/Development/Src/TgClient/Classes/UIDataSocial.uc new file mode 100644 index 0000000..1e56a11 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIDataSocial.uc @@ -0,0 +1,29 @@ +class UIDataSocial extends UIDataObject + native(UIData) + config(Engine); + +struct UISocialReferrer { + var dword dwReferralId; + var QWord qwPortalUserId; + var init string sName; + structdefaultproperties {} +}; + +var bool m_bIsPartyCompetitiveReady; +var bool m_bCompetitiveReadyDirty; +var bool m_bSelfIsPartyLeader; +var bool m_nPartyMembersInGame; +var int m_nOnlineFriendCount; +var int m_nConnectedFriendCount; +var int m_nPendingFriendInvites; +var int m_nReferralPeriodSeconds; +var private int m_nOldActivePartySize; +var init array m_Friends; +var init array m_Party; +var init array m_Referrers; +var init array m_PlayerArray; + +defaultproperties +{ + m_nReferralPeriodSeconds=864000 +} diff --git a/Development/Src/TgClient/Classes/UIData_Goal.uc b/Development/Src/TgClient/Classes/UIData_Goal.uc new file mode 100644 index 0000000..234fa4a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_Goal.uc @@ -0,0 +1,8 @@ +class UIData_Goal extends UIData + native(UIData) + config(Engine); + +var dword m_dwActivityId; +var dword m_dwGoalGroupId; +var dword m_dwGoalId; +var UIData m_pReward; diff --git a/Development/Src/TgClient/Classes/UIData_LeaderboardPlayer.uc b/Development/Src/TgClient/Classes/UIData_LeaderboardPlayer.uc new file mode 100644 index 0000000..0064f6f --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_LeaderboardPlayer.uc @@ -0,0 +1,15 @@ +class UIData_LeaderboardPlayer extends UIData + native(UIData) + config(Engine); + +var init string sName; +var QWord qwPortalUserId; +var float fRank; +var int nLevel; +var int nWins; +var int nLosses; +var int nPerk; +var int nRegion; +var int nTitle; +var int nPosition; +var UIDataChampion pChampion; diff --git a/Development/Src/TgClient/Classes/UIData_LeagueEOM.uc b/Development/Src/TgClient/Classes/UIData_LeagueEOM.uc new file mode 100644 index 0000000..a25a38a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_LeagueEOM.uc @@ -0,0 +1,12 @@ +class UIData_LeagueEOM extends UIData + native(UIData) + config(Engine); + +var UIDataLeague m_pLeague; +var UIDataLeagueTier m_pTier; +var int m_nPointChange; +var int m_nCurrentPoints; +var int m_nWins; +var int m_nLosses; +var int m_nMatchesPlayed; +var UIData_LeagueTierChange m_TierChange; diff --git a/Development/Src/TgClient/Classes/UIData_LeagueTierChange.uc b/Development/Src/TgClient/Classes/UIData_LeagueTierChange.uc new file mode 100644 index 0000000..1f47645 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_LeagueTierChange.uc @@ -0,0 +1,13 @@ +class UIData_LeagueTierChange extends UIData + native(UIData) + config(Engine); + +enum UIDLTC_PromotionType { + UIDLTC_Promoted, // 0 + UIDLTC_Demoted, // 1 +}; + +var UIDataLeague m_League; +var UIDataLeagueTier m_PrevTier; +var UIDataLeagueTier m_NextTier; +var UIData_LeagueTierChange.UIDLTC_PromotionType m_ePromotionType; diff --git a/Development/Src/TgClient/Classes/UIData_List.uc b/Development/Src/TgClient/Classes/UIData_List.uc new file mode 100644 index 0000000..20317ee --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_List.uc @@ -0,0 +1,5 @@ +class UIData_List extends UIData + native(UIData) + config(Engine); + +var init array pData; diff --git a/Development/Src/TgClient/Classes/UIData_List_TitleIcon.uc b/Development/Src/TgClient/Classes/UIData_List_TitleIcon.uc new file mode 100644 index 0000000..821ffe8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_List_TitleIcon.uc @@ -0,0 +1,6 @@ +class UIData_List_TitleIcon extends UIData_List + native(UIData) + config(Engine); + +var int nIcon; +var init array sTitles; diff --git a/Development/Src/TgClient/Classes/UIData_LobbySlotItem.uc b/Development/Src/TgClient/Classes/UIData_LobbySlotItem.uc new file mode 100644 index 0000000..c1dc66e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_LobbySlotItem.uc @@ -0,0 +1,19 @@ +class UIData_LobbySlotItem extends UIData + native(UIData) + config(Engine); + +enum UIChampionCustomizeState { + UICCS_Collections, // 0 + UICCS_HEAD, // 1 + UICCS_BODY, // 2 + UICCS_WEAPON, // 3 + UICCS_EMOTE, // 4 + UICCS_VOICE, // 5 + UICCS_MVPPOSE, // 6 + UICCS_MOUNT, // 7 + UICCS_Spray, // 8 +}; + +var UIData_LobbySlotItem.UIChampionCustomizeState eState; +var native Pointer pItemInfo; +var bool bActive; diff --git a/Development/Src/TgClient/Classes/UIData_MatchBoosterActivated.uc b/Development/Src/TgClient/Classes/UIData_MatchBoosterActivated.uc new file mode 100644 index 0000000..89399b2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_MatchBoosterActivated.uc @@ -0,0 +1,9 @@ +class UIData_MatchBoosterActivated extends UIData + native(UIData) + config(Engine); + +var dword dwSourcePlayerId; +var dword dwTaskForce; +var dword eItemBoosterSubtype; +var float fMultiplier; +var UIDataItem pBoosterItem; diff --git a/Development/Src/TgClient/Classes/UIData_MultiQueue.uc b/Development/Src/TgClient/Classes/UIData_MultiQueue.uc new file mode 100644 index 0000000..604eb88 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_MultiQueue.uc @@ -0,0 +1,7 @@ +class UIData_MultiQueue extends UIData + native(UIData) + config(Engine); + +var init string sName; +var init string sDesc; +var init array pQueues; diff --git a/Development/Src/TgClient/Classes/UIData_PlayerMatchRecord.uc b/Development/Src/TgClient/Classes/UIData_PlayerMatchRecord.uc new file mode 100644 index 0000000..8f3e6db --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_PlayerMatchRecord.uc @@ -0,0 +1,46 @@ +class UIData_PlayerMatchRecord extends UIData + native(UIData) + config(Engine); + +const UIDATA_PLAYERMATCHRECORD_DECKSIZE = 5; + +const UIDATA_PLAYERMATCHRECORD_ITEMCOUNT = 4; + +var int nBotId; +var int nPlayerId; +var int nLevel; +var int nKills; +var int nDeaths; +var int nAssists; +var int nEarnedCredits; +var int nHealingPlayer; +var int nHealingBot; +var int nHealingTotal; +var int nSelfHealing; +var int nDmgTaken; +var int nDmgPlayer; +var int nDmgBot; +var int nDmgTotal; +var int nSoloKills; +var int nFlankKills; +var int nMultikill; +var int nKillstreak; +var int nDmgStructure; +var int nDmgMitigated; +var int nObjectiveTime; +var int nCards[5]; +var int nLegendary; +var int nPurchasedItems[4]; +var int nPurchasedItemLevels[4]; +var int nMountItemId; +var int nEmoteItemId; +var int nMVPPoseItemId; +var int nSprayItemId; +var int nTitleItemId; +var int nTaskForce; +var bool bAlly; +var bool bLocal; +var bool bReported; +var init string sPlayer; +var init string sClass; +var UniqueNetId ConsoleUniqueId; diff --git a/Development/Src/TgClient/Classes/UIData_PopupGeneric.uc b/Development/Src/TgClient/Classes/UIData_PopupGeneric.uc new file mode 100644 index 0000000..42b2eb2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_PopupGeneric.uc @@ -0,0 +1,14 @@ +class UIData_PopupGeneric extends UIData + native(UIData) + implements(TgCallbackInterface) + config(Engine); + +const UIDATA_POPUPGENERIC_TITLECOUNT = 2; + +const UIDATA_POPUPGENERIC_BUTTONCOUNT = 8; + +var init string sTitle[2]; +var int nInitialIndex; +var bool bUserMustClose; +var init string sButtonName[8]; +var TgCallbackContainer m_CallbackContainer; diff --git a/Development/Src/TgClient/Classes/UIData_PopupInput.uc b/Development/Src/TgClient/Classes/UIData_PopupInput.uc new file mode 100644 index 0000000..97a8fb0 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_PopupInput.uc @@ -0,0 +1,13 @@ +class UIData_PopupInput extends UIData + native(UIData) + implements(TgCallbackInterface) + config(Engine); + +const UIDATA_POPUPINPUT_TITLECOUNT = 2; + +const UIDATA_POPUPINPUT_BUTTONCOUNT = 2; + +var init string sTitle[2]; +var init string sButtonName[2]; +var native Pointer pButtonValidate[2]; +var TgCallbackContainer m_CallbackContainer; diff --git a/Development/Src/TgClient/Classes/UIData_Quest.uc b/Development/Src/TgClient/Classes/UIData_Quest.uc new file mode 100644 index 0000000..fc27ee2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_Quest.uc @@ -0,0 +1,5 @@ +class UIData_Quest extends UIData + native(UIData) + config(Engine); + +var int m_nQuestDataIndex; diff --git a/Development/Src/TgClient/Classes/UIData_Queue.uc b/Development/Src/TgClient/Classes/UIData_Queue.uc new file mode 100644 index 0000000..6f24f94 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_Queue.uc @@ -0,0 +1,21 @@ +class UIData_Queue extends UIData + native(UIData) + config(Engine); + +enum EUIDQCallToAction { + EUIDQCTA_None, // 0 + EUIDQCTA_NewMode, // 1 + EUIDQCTA_NewMap, // 2 +}; + +var init array dwQueues; +var int nForcedBotId; +var UIData_Queue.EUIDQCallToAction eCTA; +var int nIcon; +var bool bSelected; +var bool bCompetitive; + +defaultproperties +{ + bSelected=true +} diff --git a/Development/Src/TgClient/Classes/UIData_String.uc b/Development/Src/TgClient/Classes/UIData_String.uc new file mode 100644 index 0000000..177a865 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_String.uc @@ -0,0 +1,5 @@ +class UIData_String extends UIData + native(UIData) + config(Engine); + +var string m_sValue; diff --git a/Development/Src/TgClient/Classes/UIData_StringList.uc b/Development/Src/TgClient/Classes/UIData_StringList.uc new file mode 100644 index 0000000..6cad005 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_StringList.uc @@ -0,0 +1,5 @@ +class UIData_StringList extends UIData + native(UIData) + config(Engine); + +var init array sValues; diff --git a/Development/Src/TgClient/Classes/UIData_StringWithCount.uc b/Development/Src/TgClient/Classes/UIData_StringWithCount.uc new file mode 100644 index 0000000..8be7ee6 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_StringWithCount.uc @@ -0,0 +1,5 @@ +class UIData_StringWithCount extends UIData_String + native(UIData) + config(Engine); + +var int m_nValue; diff --git a/Development/Src/TgClient/Classes/UIData_String_Localized.uc b/Development/Src/TgClient/Classes/UIData_String_Localized.uc new file mode 100644 index 0000000..83b0e82 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_String_Localized.uc @@ -0,0 +1,6 @@ +class UIData_String_Localized extends UIData + native(UIData) + config(Engine); + +var string m_sSection; +var string m_sKey; diff --git a/Development/Src/TgClient/Classes/UIData_TitleQuantity.uc b/Development/Src/TgClient/Classes/UIData_TitleQuantity.uc new file mode 100644 index 0000000..fdc1419 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIData_TitleQuantity.uc @@ -0,0 +1,7 @@ +class UIData_TitleQuantity extends UIData + native(UIData) + config(Engine); + +var string m_sTitle; +var int m_nQuantity; +var int m_nTotal; diff --git a/Development/Src/TgClient/Classes/UIEndOfMatchLobby.uc b/Development/Src/TgClient/Classes/UIEndOfMatchLobby.uc new file mode 100644 index 0000000..017f220 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIEndOfMatchLobby.uc @@ -0,0 +1,289 @@ +class UIEndOfMatchLobby extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIEOM_TABS = 4; + +const UIEOM_STATS = 10; + +const UIEOM_VALUES = 4; + +const UIEOM_PLAYERS = 5; + +const UIEOM_BUTTONS = 3; + +const UIEOM_REPORTS = 4; + +const UIEOM_ACCOLADES = 5; + +const UIEOM_MVPCOUNT = 4; + +const UIEOM_GOLDBOOSTS = 2; + +const UIEOM_XPBOOSTS = 3; + +const QUEST_PANEL_WIDTH = 357; + +const QUEST_PANEL_GAP = 20; + +const UIEOM_NUMREWARDPANELS = 2; + +const UIEOM_REWARDPANEL_NUMFIELDS = 7; + +const UIEOM_NUMSEGMENTS_BREAKDOWNBAR = 4; + +const UIEOM_REWARDPANEL_WIDGETPADDING = 0; + +enum UIEOM_REWARDFIELDQUALITY { + UIRFQ_NONE, // 0 + UIRFQ_BLUE, // 1 + UIRFQ_YELLOW, // 2 + UIRFQ_GREEN, // 3 + UIRFQ_GREY, // 4 +}; + +enum UIEOM_REWARDBOOSTICON { + UIRBI_NONE, // 0 + UIRBI_PARTYOFF, // 1 + UIRBI_PARTYON, // 2 + UIRBI_ACCOUNTOFF, // 3 + UIRBI_ACCOUNTON, // 4 + UIRBI_NETCAFE1, // 5 + UIRBI_NETCAFE2, // 6 + UIRBI_NETCAFE3, // 7 + UIRBI_FWOTD1, // 8 + UIRBI_FWOTD2, // 9 + UIRBI_FWOTD3, // 10 +}; + +enum UIEOM_PANELINDICES { + UIEOM_GOLD, // 0 + UIEOM_XP, // 1 +}; + +enum UIEOM_GOLDREWARDINDICES { + UIGLD_PERFORMANCE, // 0 + UIGLD_VICTORY, // 1 + UIGLD_FWOTD, // 2 + UIGLD_ACCOLADES, // 3 + UIGLD_TEAMBONUS, // 4 + UIGLD_ACCOUNTBOOST, // 5 + UIGLD_NETCAFEBOOST, // 6 +}; + +enum UIEOM_XPREWARDINDICES { + UIXP_PERFORMANCE, // 0 + UIXP_VICTORY, // 1 + UIXP_TEAMBONUS, // 2 + UIXP_ACCOUNTBOOST, // 3 + UIXP_NETCAFEBOOST, // 4 +}; + +struct RewardPanelBarSegment { + var GFxObject SegFrame; + var GFxObject SegTF; + var GFxObject SegBar; + structdefaultproperties {} +}; + +struct RewardPanelField { + var GFxObject FieldFrame; + var GFxObject FieldTitle; + var GFxObject FieldValue; + var GFxObject FieldIcon; + var GFxObject FieldMultiplier; + structdefaultproperties {} +}; + +struct RewardPanel { + var GFxObject PanelFrame; + var GFxObject PanelTitle; + var GFxObject PanelValueFieldFrame; + var GFxObject PanelSummary; + var GFxObject PanelBreakdownBar; + var GFxObject PanelBreakdownBarTop; + var GFxObject PanelBreakdownBarBG; + var GFxObject PanelXPIcon; + var GFxObject PanelGoldIcon; + var GFxObject PanelSummaryTF; + var array PanelValueFields; + var array PanelBarSegments; + structdefaultproperties {} +}; + +var int m_nLevel; +var int m_nMastery; +var int m_nAccoladeIndex; +var int m_nWIPMapQueueIndex; +var int m_nVipBoostLevel; +var int m_nHoursUntilCapReset; +var int m_nMinutesUntilCapReset; +var bool m_bAnimBack; +var bool m_bWasAccountBoosted; +var bool m_bWasPartyBoosted; +var bool m_bReachedGoldCap; +var bool m_bJustReachedGoldCap; +var bool m_bEndedGoldTick; +var bool m_bEndedXPTick; +var bool m_bShowingQuestPanel; +var float m_fMVPDuration; +var float m_fAnimation; +var float m_fXPDuration; +var float m_fGoldDuration; +var float m_fLevelDuration; +var float m_fMasteryDuration; +var float m_fShowFeedbackDelay; +var float m_fAccoladeTimer; +var float m_fShowFeedbackTimer; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderTitle; +var GFxObject m_mcHeaderSubtitle; +var GFxObject m_mcButtonPlay; +var GFxObject m_mcButtonHome; +var TgGFxGroup m_grButtons; +var GFxObject m_mcTabButtons[4]; +var GFxObject m_mcMVPs; +var GFxObject m_mcRewards; +var GFxObject m_mcMVP[4]; +var GFxObject m_mcMVPIcon[4]; +var GFxObject m_mcMVPName[4]; +var GFxObject m_mcMVPFrame[4]; +var GFxObject m_mcMVPTitle[4]; +var GFxObject m_mcMVPSubtitle[4]; +var GFxObject m_mcMVPEquipableTitle[4]; +var GFxObject m_mcAccolade[5]; +var GFxObject m_mcAccoladeIcon[5]; +var GFxObject m_mcAccoladeTitle[5]; +var GFxObject m_mcAccoladeValue[5]; +var string m_sRewardPanelNames[2]; +var RewardPanel m_GoldRewardPanel; +var RewardPanel m_XPRewardPanel; +var GFxObject m_mcGoldMaxGold; +var UIEndOfMatchLobby.UIEOM_REWARDFIELDQUALITY m_eGoldPanelFieldQualities[7]; +var UIEndOfMatchLobby.UIEOM_REWARDBOOSTICON m_eGoldPanelFieldIcons[7]; +var UIEndOfMatchLobby.UIEOM_REWARDFIELDQUALITY m_eXPPanelFieldQualities[7]; +var UIEndOfMatchLobby.UIEOM_REWARDBOOSTICON m_eXPPanelFieldIcons[7]; +var string m_sGoldPanelFieldNames[7]; +var string m_sXPPanelFieldNames[7]; +var int m_nCurrentTab; +var float m_fTabSwitchTimestamp; +var float m_fOnFirstRewardTabTimestamp; +var int m_nGoldTotal; +var int m_nXPTotal; +var GFxObject m_mcLevel; +var GFxObject m_mcLevelUp; +var GFxObject m_mcLevelTitle; +var GFxObject m_mcLevelValue; +var GFxObject m_mcLevelFrame; +var GFxObject m_mcLevelFrameRewardLegend; +var GFxObject m_mcLevelFrameRewardLegendTitle; +var GFxObject m_mcLevelFrameRewardLegendEarned; +var GFxObject m_mcLevelFrameRewardLegendUnearned; +var GFxObject m_mcLevelReward; +var GFxObject m_mcLevelRewardTF; +var GFxObject m_mcLevelProgress; +var GFxObject m_mcLevelIncrease; +var GFxObject m_mcLevelIncreaseEarnedBoost; +var GFxObject m_mcLevelIncreaseUnearnedBoost; +var GFxObject m_mcLevelSubtitle; +var GFxObject m_mcLevelNeeded; +var GFxObject m_mcMastery; +var GFxObject m_mcMasteryUp; +var GFxObject m_mcMasteryTitle; +var GFxObject m_mcMasteryValue; +var GFxObject m_mcMasteryFrame; +var GFxObject m_mcMasteryFrameRewardLegend; +var GFxObject m_mcMasteryFrameRewardLegendTitle; +var GFxObject m_mcMasteryFrameRewardLegendEarned; +var GFxObject m_mcMasteryFrameRewardLegendUnearned; +var GFxObject m_mcMasteryRewardEquippableTitle; +var GFxObject m_mcMasteryRewardEquippableTitleTF; +var GFxObject m_mcMasteryReward; +var GFxObject m_mcMasteryRewardTF; +var GFxObject m_mcMasteryRewardIcon; +var GFxObject m_mcMasteryRewardItem; +var GFxObject m_mcMasteryProgress; +var GFxObject m_mcMasteryIncrease; +var GFxObject m_mcMasteryIncreaseEarnedBoost; +var GFxObject m_mcMasteryIncreaseUnearnedBoost; +var GFxObject m_mcMasterySubtitle; +var GFxObject m_mcMasteryNeeded; +var GFxObject m_mcReport; +var GFxObject m_mcReportClose; +var GFxObject m_mcReportInput; +var GFxObject m_mcReportTitle; +var GFxObject m_mcReportButton[4]; +var GFxObject m_mcReportBlocker; +var GFxObject m_mcReportSubtitle; +var GFxObject m_mcQuestPanels; +var GFxObject m_mcClaimQuestButton; +var GFxObject m_mcPanels[10]; +var GFxObject m_mcFlash01[10]; +var GFxObject m_mcFlash02[10]; +var GFxObject m_mcFlash03[10]; +var GFxObject m_mcQuestPanelButton[10]; +var GFxObject m_mcQuestPanelButtonTitle[10]; +var GFxObject m_mcQuestPanelButtonType[10]; +var GFxObject m_mcQuestPanelButtonProgressText[10]; +var GFxObject m_mcQuestPanelButtonQuestDescription[10]; +var GFxObject m_mcQuestPanelButtonRewardLabelTF[10]; +var GFxObject m_mcQuestPanelButtonCurrency[10]; +var GFxObject m_mcQuestPanelButtonMaxGold[10]; +var GFxObject m_mcQuestPanelButtonRewardAmountTF[10]; +var GFxObject m_mcQuestPanelButtonQuestIconRendered[10]; +var GFxObject m_mcQuestPanelButtonChestIcon[10]; +var GFxObject m_mcQuestPanelButtonRewardItem[10]; +var GFxObject m_mcQuestPanelButtonRewardItemIcon[10]; +var GFxObject m_mcQuestPanelButtonRewardItemImageStack[10]; +var GFxObject m_mcQuestPanelButtonRewardItemTexture[10]; +var TgGFxGroup m_grQuestPanels; +var int m_nQuestIndices[10]; +var SoundCue m_scTick; +var SoundCue m_scTickEnd; +var AkBaseSoundObject m_akLevelUp; +var AkBaseSoundObject m_akAccolade; +var AkBaseSoundObject m_akMasteryUp; +var int m_nPlayerToReport; + +defaultproperties +{ + m_fMVPDuration=10.0000000 + m_fXPDuration=1.0000000 + m_fGoldDuration=1.0000000 + m_fLevelDuration=2.0000000 + m_fMasteryDuration=2.0000000 + m_fShowFeedbackDelay=1.0000000 + m_sRewardPanelNames[0]="Gold" + m_sRewardPanelNames[1]="XP" + m_eGoldPanelFieldIcons[2]=UIRBI_FWOTD1 + m_eGoldPanelFieldIcons[4]=UIRBI_PARTYOFF + m_eGoldPanelFieldIcons[5]=UIRBI_ACCOUNTOFF + m_eGoldPanelFieldIcons[6]=UIRBI_NETCAFE1 + m_eXPPanelFieldIcons[2]=UIRBI_PARTYOFF + m_eXPPanelFieldIcons[3]=UIRBI_ACCOUNTOFF + m_eXPPanelFieldIcons[4]=UIRBI_NETCAFE1 + m_sGoldPanelFieldNames[0]="m_lsRewardPerformance" + m_sGoldPanelFieldNames[1]="m_lsRewardVictory" + m_sGoldPanelFieldNames[2]="m_lsRewardFWOTD" + m_sGoldPanelFieldNames[3]="m_lsRewardAccolades" + m_sGoldPanelFieldNames[4]="m_lsRewardTeamBonus" + m_sGoldPanelFieldNames[5]="m_lsRewardAccountBoost" + m_sGoldPanelFieldNames[6]="m_lsRewardNetCafeBonus" + m_sXPPanelFieldNames[0]="m_lsRewardPerformance" + m_sXPPanelFieldNames[1]="m_lsRewardVictory" + m_sXPPanelFieldNames[2]="m_lsRewardTeamBonus" + m_sXPPanelFieldNames[3]="m_lsRewardAccountBoost" + m_sXPPanelFieldNames[4]="m_lsRewardNetCafeBonus" + m_scTick=SoundCue'A_CUE_UI_Notification_XPTick_Loop' + m_scTickEnd=SoundCue'A_CUE_UI_Notification_XPTick_End' + m_akLevelUp=AkEvent'UI_Lobby_Alert_LevelUp_AccountMastery_Play' + m_akAccolade=AkEvent'UI_Menu_CardCraft_Finish_Play' + m_akMasteryUp=AkEvent'UI_Lobby_Alert_LevelUp_CharacterMastery_Play' + m_nPlayerToReport=-1 + m_UISceneClass=Class'UIScene_UIEndOfMatchLobby' + m_OptionList[0]=9 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_bBlur=true + m_Name="UIEndOfMatchLobby" +} diff --git a/Development/Src/TgClient/Classes/UIFade.uc b/Development/Src/TgClient/Classes/UIFade.uc new file mode 100644 index 0000000..203e9b5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIFade.uc @@ -0,0 +1,11 @@ +class UIFade extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var GFxObject m_mcBlocker; +var GFxObject m_mcEndOfRoundText; + +defaultproperties +{ + m_Name="UIFade" +} diff --git a/Development/Src/TgClient/Classes/UIFooter.uc b/Development/Src/TgClient/Classes/UIFooter.uc new file mode 100644 index 0000000..c05498a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIFooter.uc @@ -0,0 +1,40 @@ +class UIFooter extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIFOOTER_OPTIONS = 8; + +const UIFOOTER_PLAYERS = 5; + +const UIFOOTER_OPTION_WIDTH = 1000; + +struct FooterOption { + var int nOption; + var GFxObject pObj; + var GFxObject pKey; + var GFxObject pKeyTF; + var GFxObject pGlow; + var GFxObject pGlowTF; + var GFxObject pTitle; + var GFxObject pTitleTF; + var GFxObject pFrame; + structdefaultproperties {} +}; + +var GFxObject m_mcFrame; +var GFxObject m_mcBack; +var GFxObject m_mcBackTitle; +var GFxObject m_mcSocial; +var GFxObject m_mcSocialTitle; +var GFxObject m_mcSocialCTA; +var GFxObject m_mcOptions; +var GFxObject m_mcOptionsTitle; +var GFxObject m_mcFriendsOnline; +var bool m_bOptionsEnabled; +var FooterOption m_Option[8]; + +defaultproperties +{ + m_eSnappingType=UISNAPPING_BOT + m_Name="UIFooter" +} diff --git a/Development/Src/TgClient/Classes/UIFullscreenPopup.uc b/Development/Src/TgClient/Classes/UIFullscreenPopup.uc new file mode 100644 index 0000000..5e6ecc8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIFullscreenPopup.uc @@ -0,0 +1,9 @@ +class UIFullscreenPopup extends UIPopup within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIPopupGenericFullscreen' + m_Name="UIFullscreenPopup" +} diff --git a/Development/Src/TgClient/Classes/UIGameMoviePlayer.uc b/Development/Src/TgClient/Classes/UIGameMoviePlayer.uc new file mode 100644 index 0000000..e335f9b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIGameMoviePlayer.uc @@ -0,0 +1,253 @@ +class UIGameMoviePlayer extends UIMoviePlayer + native(GameUI) + config(UI) + implements(TgCallbackInterface); + +enum EUpdateModelType { + UMT_All, // 0 + UMT_WeaponOnly, // 1 +}; + +var int m_nReplayId; +var int m_nResizeTicks; +var int m_nChosenQueue; +var int m_nActiveControllerId; +var int m_nClearTransitionTicks; +var bool m_bGamepad; +var bool m_bGameWon; +var bool m_bVisible; +var bool m_bTimedQueue; +var bool m_bHasNoPlayer; +var bool m_bInLoginQueue; +var bool m_bLobbyPlayback; +var bool m_bShowCardTutorialNextTick; +var bool m_bConfigManagerProcessed; +var bool m_bPlayAnnouncerSample; +var bool m_bHasAttemptedAutoReplayDemoRecording; +var float m_fQueueTimer; +var float m_fFadeKillTimer; +var float m_fLoginQueueTimer; +var float m_fTransitionTimer; +var float m_fLobbyPlaybackTime; +var float m_fLobbyNextFireTime; +var float m_fVideoCompletedTimer; +var init string m_sPass; +var init string m_sUserName; +var init string m_SpecTeamNameEnemy; +var init string m_SpecTeamNameFriendly; +var GFxObject m_mcMapFrame; +var GFxObject m_mcMapFrameLarge; +var GFxObject m_mcKeyboardFocus; +var TgGameDC_Chat m_Chat; +var UIDataManager m_UIDataManager; +var native Pointer m_ConfigManager; +var UILandingPanelManager m_LandingPanelManager; +var UINotificationCenterJsonManager m_NotificationCenterJsonManager; +var TgStreamManager m_StreamManager; +var TgRewardCenterManager m_RewardCenterManager; +var TgBrowserManager m_WebBrowser; +var UIHudSpectator m_mcSpectatorHUD; +var AlienFXManager m_AlienFX; +var array m_Scenes; +var init string m_sPendingOnlineScene; +var init string m_sDelayErrorTitle; +var init string m_sDelayErrorDesc; +var TextureRenderTarget2D m_RenderTarget; +var Texture m_BrowserTexture[4]; +var init string m_Team1Name; +var init string m_Team2Name; +var AkBaseSoundObject m_akJoinQueue; +var TgManifestGroup m_AnnouncerManifestGroup; +var int m_nAnnouncerItemId; +var AkEvent m_akEquippedAnnouncerSound; +var TgManifestGroup m_VoicePackManifestGroup; +var int m_nVoicePackItemId; +var UIData_PopupGeneric m_pQuitPromptData; +var TgCallbackContainer m_CallbackContainer; + +native function OnDemoReady(); // Export UUIGameMoviePlayer::execOnDemoReady(FFrame&, void* const) + +native exec function CancelPlayback(); // Export UUIGameMoviePlayer::execCancelPlayback(FFrame&, void* const) + +native exec function EndLobbyPlayback(); // Export UUIGameMoviePlayer::execEndLobbyPlayback(FFrame&, void* const) + +native exec function ToggleSkillScreen(optional int nBotId=0); // Export UUIGameMoviePlayer::execToggleSkillScreen(FFrame&, void* const) + +native exec function Replay(int nInstanceId, optional string sSpectatePassword); // Export UUIGameMoviePlayer::execReplay(FFrame&, void* const) + +native exec function WatchReplay(string sInstanceId, optional string sSpectatePassword); // Export UUIGameMoviePlayer::execWatchReplay(FFrame&, void* const) + +native exec function ViewStatsOnline(string sInstanceId); // Export UUIGameMoviePlayer::execViewStatsOnline(FFrame&, void* const) + +native exec function usc_toggle_player_mute(string sPlayerName); // Export UUIGameMoviePlayer::execusc_toggle_player_mute(FFrame&, void* const) + +native exec function usc_vgs_command(int nId, bool bSubMenu); // Export UUIGameMoviePlayer::execusc_vgs_command(FFrame&, void* const) + +native exec function usc_resend_private_messages(); // Export UUIGameMoviePlayer::execusc_resend_private_messages(FFrame&, void* const) + +native exec function usc_chat_close_tab(int nChannel, string Sender); // Export UUIGameMoviePlayer::execusc_chat_close_tab(FFrame&, void* const) + +native exec function usc_enable_browser_input(bool bEnable); // Export UUIGameMoviePlayer::execusc_enable_browser_input(FFrame&, void* const) + +native exec function bool usc_resize_browser(int surfaceId, float X, float Y, float Width, float Height, float widthReal, float heightReal); // Export UUIGameMoviePlayer::execusc_resize_browser(FFrame&, void* const) + +native exec function bool SetRenderTargetEnabled(bool bEnabled, int surfaceId); // Export UUIGameMoviePlayer::execSetRenderTargetEnabled(FFrame&, void* const) + +native function PromptToQuit(); // Export UUIGameMoviePlayer::execPromptToQuit(FFrame&, void* const) + +native function QuitGame(); // Export UUIGameMoviePlayer::execQuitGame(FFrame&, void* const) + +native function AttemptAutoLogin(); // Export UUIGameMoviePlayer::execAttemptAutoLogin(FFrame&, void* const) + +native function UpdateViewportForSafeAreas(); // Export UUIGameMoviePlayer::execUpdateViewportForSafeAreas(FFrame&, void* const) + +native function AttemptAutoReplayDemoRecording(); // Export UUIGameMoviePlayer::execAttemptAutoReplayDemoRecording(FFrame&, void* const) + +native function OpenChatTab(int nChannel, optional string sName, optional bool bOpenWindow); // Export UUIGameMoviePlayer::execOpenChatTab(FFrame&, void* const) + +native function CloseChatTab(int nChannel, optional string sSender); // Export UUIGameMoviePlayer::execCloseChatTab(FFrame&, void* const) + +native function AddInitialChatMessages(); // Export UUIGameMoviePlayer::execAddInitialChatMessages(FFrame&, void* const) + +native function CheckControllerDisconnected(); // Export UUIGameMoviePlayer::execCheckControllerDisconnected(FFrame&, void* const) + +native function UpdateGamepadIcons(); // Export UUIGameMoviePlayer::execUpdateGamepadIcons(FFrame&, void* const) + +native exec function int GetPortalType(); // Export UUIGameMoviePlayer::execGetPortalType(FFrame&, void* const) + +native exec function BeginLogin(optional string User, optional string pass, optional string PlayerName); // Export UUIGameMoviePlayer::execBeginLogin(FFrame&, void* const) + +native exec function SetLoginReady(); // Export UUIGameMoviePlayer::execSetLoginReady(FFrame&, void* const) + +native exec function string GetHUDTeamName(bool bEnemy); // Export UUIGameMoviePlayer::execGetHUDTeamName(FFrame&, void* const) + +native exec function SetSpecTeamName(bool bEnemy, optional string TeamName); // Export UUIGameMoviePlayer::execSetSpecTeamName(FFrame&, void* const) + +native exec function ShowCardTutorial(optional bool bForce=false, optional bool bReset=false); // Export UUIGameMoviePlayer::execShowCardTutorial(FFrame&, void* const) + +native function OnMarshalEvent(Pointer pMarEvent); // Export UUIGameMoviePlayer::execOnMarshalEvent(FFrame&, void* const) + +native function OnAnnouncerLoaded(); // Export UUIGameMoviePlayer::execOnAnnouncerLoaded(FFrame&, void* const) + +native function OnVoicePackLoaded(); // Export UUIGameMoviePlayer::execOnVoicePackLoaded(FFrame&, void* const) + +native function InitAnnouncer(); // Export UUIGameMoviePlayer::execInitAnnouncer(FFrame&, void* const) + +native function PostInit(); // Export UUIGameMoviePlayer::execPostInit(FFrame&, void* const) + +native exec function ForceDirty(); // Export UUIGameMoviePlayer::execForceDirty(FFrame&, void* const) + +native function NativeTick(float DeltaTime); // Export UUIGameMoviePlayer::execNativeTick(FFrame&, void* const) + +native function UIFade(bool bFade, optional float fTime=0.2500000, optional float fDelay=0.0000000, optional float fFailSafeTime); // Export UUIGameMoviePlayer::execUIFade(FFrame&, void* const) + +native function UIFadeEndOfRound(bool bFade, optional float fTime=0.2500000, optional float fDelay=0.0000000, optional float fFailSafeTime); // Export UUIGameMoviePlayer::execUIFadeEndOfRound(FFrame&, void* const) + +native function int GetGamepadValueForKeyBind(string KeyBind); // Export UUIGameMoviePlayer::execGetGamepadValueForKeyBind(FFrame&, void* const) + +native function string GetPlayerDisplayName(string PlayerName, string OnlineID); // Export UUIGameMoviePlayer::execGetPlayerDisplayName(FFrame&, void* const) + +native function bool HasPlayerDisplayName(string OnlineID); // Export UUIGameMoviePlayer::execHasPlayerDisplayName(FFrame&, void* const) + +native function OnReadOnlinePlayerDataComplete(bool bWasSuccessful, array PlayerIDs, array OnlineProfiles); // Export UUIGameMoviePlayer::execOnReadOnlinePlayerDataComplete(FFrame&, void* const) + +native function bool NativeWidgetUnloaded(name WidgetName, name WidgetPath, GFxObject Widget); // Export UUIGameMoviePlayer::execNativeWidgetUnloaded(FFrame&, void* const) + +native function bool NativeWidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget); // Export UUIGameMoviePlayer::execNativeWidgetInitialized(FFrame&, void* const) + +native function ShowSubtitle(string sValue, optional float fTime=0.0000000); // Export UUIGameMoviePlayer::execShowSubtitle(FFrame&, void* const) + +native function SwitchSubtitleText(string sValue); // Export UUIGameMoviePlayer::execSwitchSubtitleText(FFrame&, void* const) + +native function HideSubtitle(); // Export UUIGameMoviePlayer::execHideSubtitle(FFrame&, void* const) + +native function TgDataGroup_Game GetGameData(); // Export UUIGameMoviePlayer::execGetGameData(FFrame&, void* const) + +native function TgGameDataHandler GetDataHandler(); // Export UUIGameMoviePlayer::execGetDataHandler(FFrame&, void* const) + +native function bool IsItemOwned(int ItemId); // Export UUIGameMoviePlayer::execIsItemOwned(FFrame&, void* const) + +native function OnSuccessfulUserAccountInfoRetrieved(UserAccountInfo AccountInfo); // Export UUIGameMoviePlayer::execOnSuccessfulUserAccountInfoRetrieved(FFrame&, void* const) + +event LoadScene(string sName, string sPath, int nDepth) { } + +event UnloadScene(string sName) { } + +native function ShowPartyRequiresPremiumAccountWarning(); // Export UUIGameMoviePlayer::execShowPartyRequiresPremiumAccountWarning(FFrame&, void* const) + +native function ShowNoFriendsForProfileViewWarning(); // Export UUIGameMoviePlayer::execShowNoFriendsForProfileViewWarning(FFrame&, void* const) + +native function OnAccountPickerCancelled(); // Export UUIGameMoviePlayer::execOnAccountPickerCancelled(FFrame&, void* const) + +native function bool ShowErrorMessage(string sTitle, string sError); // Export UUIGameMoviePlayer::execShowErrorMessage(FFrame&, void* const) + +native function PlayerLoginError(int nError, string sMessage); // Export UUIGameMoviePlayer::execPlayerLoginError(FFrame&, void* const) + +event Init(optional LocalPlayer LocPlay) { } + +function InitOSSRef() { } + +event OnClose() { } + +function OnAccountPickerCancelledWrapper() { } + +event ShowKeyboardUI(GFxObject FocusedTextField, string TitleText, string DescriptionText, optional bool bIsPassword=false, optional bool bShouldValidate=true, optional string DefaultText, optional int MaxResultLength=256) { } + +event bool CheckControllerConnected() { } + +function OnKeyboardInputComplete(bool bWasSuccessful) { } + +event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) { } + +event bool WidgetUnloaded(name WidgetName, name WidgetPath, GFxObject Widget) { } + +exec function ToggleAlienFX() { } + +event bool ShowConsoleLoginUI(int ControllerId, optional bool bForceLoginAfter) { } + +event RegisterLocalTalker(byte LocalUserNum, optional byte ChannelIndex) { } + +event UnregisterLocalTalker(byte LocalUserNum, optional byte ChannelIndex) { } + +event MutePlayer(byte LocalUserNum, UniqueNetId ConsoleId) { } + +event UnmutePlayer(byte LocalUserNum, UniqueNetId ConsoleId) { } + +event bool IsPlayerMuted(UniqueNetId ConsoleId) { } + +event ShowGamerCardByUserName(string UserName) { } + +event ShowGamercard(UniqueNetId PlayerID) { } + +function updatePlayerMute(bool bWasSuccessful) { } + +event CacheLoggedInGamepad() { } + +exec event usc_ShowContentMarketPlaceUI(int ParentProductType, int RequestedProductTypes) { } + +exec event usc_ShowContentMarketPlaceUIForProduct(int ParentProductType, int RequestedProductTypes, string ProductID) { } + +exec event usc_ShowGameDetailsUI() { } + +exec event usc_ShowProductDetailsUI(string ProductID) { } + +exec event ShowContentPurchaseUI(string SingedOffer) { } + +exec event GetAccountInfo() { } + +function OnUserAccountInfoRetrieved(bool bSuccessful, UserAccountInfo AccountInfo) { } + +event ReadOnlinePlayerData(array PlayerIDs) { } + +function OnReadOnlinePlayerData(bool bWasSuccessful, array PlayerIDs, array OnlineProfiles) { } + +function OnAccountPickerCompleteForLogin(bool bForceLogin) { } + +event NativeOpenURL(string URL) { } + +function OnPermissionForOnlineScene(byte LocalUserNum, OnlineSubsystem.EFeaturePrivilege Privilege, OnlineSubsystem.EFeaturePrivilegeLevel PrivilegeLevel, bool bDiffersFromHint) { } + +event CheckPermissionForOnlineScene(string sScene, byte ControlledId, OnlineSubsystem.EFeaturePrivilegeLevel Hint, optional bool bAttemptToResolve=false) { } + +defaultproperties +{} diff --git a/Development/Src/TgClient/Classes/UIHeader.uc b/Development/Src/TgClient/Classes/UIHeader.uc new file mode 100644 index 0000000..d93935d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHeader.uc @@ -0,0 +1,9 @@ +class UIHeader extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_eSnappingType=UISNAPPING_TOP + m_Name="UIHeader" +} diff --git a/Development/Src/TgClient/Classes/UIHome.uc b/Development/Src/TgClient/Classes/UIHome.uc new file mode 100644 index 0000000..0ba43a0 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHome.uc @@ -0,0 +1,53 @@ +class UIHome extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UILandingPanelManager); + +const UIHOME_JSONPANELS = 4; + +const UIHOME_CAROUSEL_ASPECT_TOLERANCE = 0.1; + +const QUEST_PROGRESS_START = 45; + +const QUEST_PROGRESS_END = 316; + +struct UINavButton { + var GFxObject pObj; + var GFxObject pHighlight; + var GFxObject pCTA; + var GFxObject pIcon; + var GFxObject pTitle; + structdefaultproperties {} +}; + +var bool m_bQueued; +var bool m_bDeserter; +var bool m_bLoadingImages; +var float m_fQueuedTime; +var GFxObject m_mcPanels; +var UIInteractable_NavPanel_Play m_PlayPanel; +var UIInteractable_NavPanel_Queued m_QueuedPanel; +var UIInteractable_NavPanel m_StorePanel; +var UIInteractable_NavPanel m_ChampionsPanel; +var UIInteractable_NavPanel m_ChestsPanel; +var UIInteractable_NavPanel m_ActivityCenterPanel; +var UIInteractable_NavPanel m_ProfilePanel; +var UIInteractable_NavPanel_Quests m_QuestsPanel; +var UIInteractable_NavPanel_QuestsLocked m_QuestsLockedPanel; +var UIInteractable_JsonPanel_Carousel m_CarouselPanel; +var UIInteractable_JsonPanel m_JsonPanel[4]; +var TgGFxGroup m_grHome; +var init array m_FeatureData; + +defaultproperties +{ + m_bLoadingImages=true + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_OptionList[3]=0 + m_nBackground=1 + m_bBlur=true + m_bAlwaysTick=true + m_Name="UIHome" +} diff --git a/Development/Src/TgClient/Classes/UIHud.uc b/Development/Src/TgClient/Classes/UIHud.uc new file mode 100644 index 0000000..113f804 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHud.uc @@ -0,0 +1,37 @@ +class UIHud extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUD_SCENE_PARTY = 0; + +const UIHUD_SCENE_CHAT = 1; + +const UIHUD_SCENE_PLAYER = 2; + +const UIHUD_SCENE_CARDS = 3; + +const UIHUD_SCENE_LEVEL = 4; + +const UIHUD_SCENE_KILLINFO = 5; + +const UIHUD_SCENE_NOTIFY = 6; + +const UIHUD_SCENE_BUFFS = 7; + +const UIHUD_SCENE_COMBATLOG = 8; + +const UIHUD_SCENE_SKILLS = 9; + +const UIHUD_SCENE_COUNT = 10; + +var TgGfxScene m_mcSubscenes[10]; +var GFxObject m_mcPaused; + +defaultproperties +{ + m_bVisibleOnLoad=true + m_bResize=false + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHud" +} diff --git a/Development/Src/TgClient/Classes/UIHudBinoculars.uc b/Development/Src/TgClient/Classes/UIHudBinoculars.uc new file mode 100644 index 0000000..bbe5604 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudBinoculars.uc @@ -0,0 +1,56 @@ +class UIHudBinoculars extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDBINOCULARS_BARRAGES = 3; + +const UIHUDBINOCULARS_RETICULEARROWS = 4; + +struct UIBinocArrowPositions { + var Vector2D vInnerArrowStart; + var Vector2D vInnerArrowEnd; + var Vector2D vOuterArrowStart; + var Vector2D vOuterArrowEnd; + structdefaultproperties {} +}; + +var bool m_bWasVisible; +var bool m_bHadTarget; +var BinocularSettings m_PrevBinocsSettings; +var Vector2D m_vInnerGuideStartPos; +var Vector2D m_vOuterGuideStartPos; +var Vector2D m_vGuideOffset; +var GFxObject m_mcHeadingGraphic; +var GFxObject m_mcHeading; +var GFxObject m_mcRange; +var GFxObject m_mcTargets; +var GFxObject m_mcInnerGuides; +var GFxObject m_mcOuterGuides; +var GFxObject m_mcGuideFrame; +var GFxObject m_mcStatus; +var GFxObject m_mcStatusTF; +var GFxObject m_mcBarrageFrame[3]; +var GFxObject m_mcBarrageMeter[3]; +var GFxObject m_mcBarrageTime[3]; +var GFxObject m_mcBarrageTimeTF[3]; +var GFxObject m_mcReticule; +var GFxObject m_mcReticuleInnerArrows[4]; +var GFxObject m_mcReticuleOuterArrows[4]; +var UIBinocArrowPositions m_ReticuleArrowPositions[4]; +var GFxObject m_mcRefire; +var GFxObject m_mcRefireMask; +var GFxObject m_mcDurationMeter; +var GFxObject m_mcDurationMeterCap; + +defaultproperties +{ + m_ReticuleArrowPositions[0]=(vInnerArrowStart=(X=4.0000000,Y=4.0000000),vInnerArrowEnd=(X=40.0000000,Y=40.0000000),vOuterArrowStart=(X=0.0000000,Y=0.0000000),vOuterArrowEnd=(X=43.0000000,Y=43.0000000)) + m_ReticuleArrowPositions[1]=(vInnerArrowStart=(X=209.0000000,Y=4.0000000),vInnerArrowEnd=(X=173.0000000,Y=40.0000000),vOuterArrowStart=(X=213.0000000,Y=0.0000000),vOuterArrowEnd=(X=170.0000000,Y=43.0000000)) + m_ReticuleArrowPositions[2]=(vInnerArrowStart=(X=209.0000000,Y=209.0000000),vInnerArrowEnd=(X=173.0000000,Y=173.0000000),vOuterArrowStart=(X=213.0000000,Y=213.0000000),vOuterArrowEnd=(X=170.0000000,Y=170.0000000)) + m_ReticuleArrowPositions[3]=(vInnerArrowStart=(X=4.0000000,Y=209.0000000),vInnerArrowEnd=(X=40.0000000,Y=173.0000000),vOuterArrowStart=(X=0.0000000,Y=213.0000000),vOuterArrowEnd=(X=43.0000000,Y=170.0000000)) + m_eScalingType=UISCALING_FITTALL + m_eSnappingType=UISNAPPING_TOP + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudBinoculars" +} diff --git a/Development/Src/TgClient/Classes/UIHudBurns.uc b/Development/Src/TgClient/Classes/UIHudBurns.uc new file mode 100644 index 0000000..d6bf094 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudBurns.uc @@ -0,0 +1,78 @@ +class UIHudBurns extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDBURNS_ARROWS = 2; + +const UIHUDBURNS_GROUPS = 4; + +const UIHUDBURNS_OPTIONS = 5; + +const UIHUDBURNS_UPGRADES = 3; + +const UIHUDBURNS_DEFT_HANDS_ITEM_ID = 13235; + +struct UIITEMRANK { + var int nId; + var int nRank; + structdefaultproperties {} +}; + +struct UIITEMDATA { + var GFxObject Obj; + var GFxObject Icon; + var GFxObject frame; + var GFxObject Title; + var GFxObject Price; + var GFxObject Button; + var GFxObject Selected; + var GFxObject SubTitle; + structdefaultproperties {} +}; + +struct UIITEMGROUP { + var GFxObject Obj; + var GFxObject Title; + var GFxObject Items; + var GFxObject frame; + var UIITEMDATA Item[5]; + structdefaultproperties {} +}; + +var int m_nCredits; +var int m_nActiveItem; +var bool m_bOpenPostTimelapse; +var UIITEMRANK m_Items[4]; +var UIITEMRANK m_Temps[4]; +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcCredits; +var GFxObject m_mcInfo; +var GFxObject m_mcInfoFrame; +var GFxObject m_mcInfoTitle; +var GFxObject m_mcInfoSubtitle; +var GFxObject m_mcAutoBuyDialogue; +var GFxObject m_mcAutoBuyTitle; +var GFxObject m_mcAutoBuyDesc; +var GFxObject m_mcAutoBuyPrompt; +var UIITEMDATA m_mcInfoUpgrade[3]; +var GFxObject m_mcInfoUpgradeArrow[2]; +var UIInteractable_Button m_AutoBuyOffButton; +var UIITEMGROUP m_Group[4]; +var AkBaseSoundObject m_scPurchase; +var TgGFxGroup m_grItem; + +defaultproperties +{ + m_scPurchase=AkEvent'UI_InGame_Card_Select_Play' + m_OptionList[0]=137 + m_OptionList[1]=23 + m_OptionList[2]=0 + m_ePromptAlignment=UIALIGNING_LEFT + m_fPromptOffsetX=80.0000000 + m_bBlur=true + m_bAlwaysTick=true + m_Name="UIHudBurns" + m_scShown=AkEvent'UI_InGame_Card_Burn_Play' +} diff --git a/Development/Src/TgClient/Classes/UIHudCards.uc b/Development/Src/TgClient/Classes/UIHudCards.uc new file mode 100644 index 0000000..b82b16d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudCards.uc @@ -0,0 +1,44 @@ +class UIHudCards extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDCARD_SLOTS = 4; + +const UIHUDCARD_LOADOUTSIZE = 5; + +struct UICardDisplayEntry { + var GFxObject Obj; + var GFxObject Card; + var GFxObject Icon; + var GFxObject PowerLevel; + var int DeviceID; + structdefaultproperties {} +}; + +struct UICardDisplayGroup { + var UICardDisplayEntry Items[4]; + var UICardDisplayEntry Cards[5]; + var int LastCardsPawnId; + structdefaultproperties {} +}; + +var int m_nCredits; +var int m_nLoadout; +var bool m_bSpectateEnemy; +var float m_fCachedRotationY; +var GFxObject m_grScene; +var GFxObject m_mcCredits; +var GFxObject m_mcLoadout; +var GFxObject m_mcHighlight; +var UICardDisplayGroup m_CardDisplayGroup; + +defaultproperties +{ + m_nCredits=-1 + m_nLoadout=-1 + m_fCachedRotationY=-1.0000000 + m_eSnappingType=UISNAPPING_BOT + m_bVisibleOnLoad=true + m_bCanShake=true + m_Name="UIHudCards" +} diff --git a/Development/Src/TgClient/Classes/UIHudCenter.uc b/Development/Src/TgClient/Classes/UIHudCenter.uc new file mode 100644 index 0000000..4af467a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudCenter.uc @@ -0,0 +1,255 @@ +class UIHudCenter extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIAMMOCOUNT_ICE = 10; + +const UIAMMOCOUNT_CELL = 1; + +const UIAMMOCOUNT_DART = 25; + +const UIAMMOCOUNT_SHELL = 8; + +const UIAMMOCOUNT_ROCKET = 6; + +const UIAMMOCOUNT_ARROW = 20; + +const UIAMMOCOUNT_LARGE = 90; + +const UIAMMOCOUNT_SMALL = 20; + +const UIAMMOCOUNT_FLAME = 1; + +const UIAMMOCOUNT_POTION = 10; + +const UIAMMOCOUNT_BULLETS = 36; + +const UIRETICLES_PROJECTILES = 10; + +const UIHITMARKER_TICKS = 4; + +const UIDAMAGEINSTIGATOR_MAX = 5; + +const UIRETICLES_DAMAGE_LIGHT = 20; + +const UIRETICLES_DAMAGE_MEDIUM = 15; + +const UIRETICLES_DAMAGE_HEAVY = 10; + +const UIHITMARKER_ERRORTOLERANCE = 48.0; + +enum UIDamageSeverity { + UIDAMAGE_LIGHT, // 0 + UIDAMAGE_MEDIUM, // 1 + UIDAMAGE_HEAVY, // 2 +}; + +enum UIAmmoType { + UIAMMO_BULLET, // 0 + UIAMMO_ICE, // 1 + UIAMMO_CELL, // 2 + UIAMMO_DART, // 3 + UIAMMO_ARROW, // 4 + UIAMMO_LARGE, // 5 + UIAMMO_SMALL, // 6 + UIAMMO_FLAME, // 7 + UIAMMO_POTION, // 8 + UIAMMO_SHELL, // 9 + UIAMMO_ROCKET, // 10 +}; + +enum ECombatInfoType { + ECIT_All, // 0 + ECIT_Damage, // 1 + ECIT_Status, // 2 +}; + +struct MessageClip { + var int nIcon; + var int nType; + var int nValue; + var float fTimer; + var float fDuration; + var GFxObject pMovie; + var GFxObject pTimer; + var GFxObject pTimerBar; + structdefaultproperties {} +}; + +struct HudMarker { + var float fValue; + var float fTime; + var float fAngle; + var bool bActive; + var Vector vHitLoc; + var Vector vPawnLoc; + var GFxObject pObj; + var GFxObject pTop; + var GFxObject pBot; + structdefaultproperties {} +}; + +struct HudProjectile { + var int nId; + var bool bIsActive; + var bool bInRange; + var Vector vProjLoc; + var float fScaleMult; + var GFxObject pObj; + var GFxObject pPointer; + var GFxObject pIconTinted; + var GFxObject pIcon; + var GFxObject pArrow; + structdefaultproperties {} +}; + +struct CastingInfo { + var int nWidth; + var bool bActive; + var float fPercent; + var GFxObject pObj; + var GFxObject pText; + var GFxObject pAnim; + structdefaultproperties {} +}; + +struct HitMarkerInfo { + var bool bPlayed; + var float DamageAmount; + var float fMaxDamageAmount; + var array HitActors; + var bool bIsShieldHit; + var ExtraDamageInfo ExtraInfo; + var float fAccumulatedDamage; + structdefaultproperties {} +}; + +struct DamageInstance { + var float fDamage; + var float fTimestamp; + structdefaultproperties {} +}; + +var int m_nReticle; +var int m_nAccuracy; +var int m_nStuckCount; +var int m_nDmgAreaIndex; +var int m_nAmmoCurrent; +var int m_nAmmoClipSize; +var int m_nReticleColor; +var bool m_bChangeReticleOverEnemy; +var bool m_bChargeAmmo; +var bool m_bReticleBloom; +var bool m_bReticleVisible; +var bool m_bReticleAccessoryVisible; +var bool m_bDisableCombatLog; +var bool m_bRecharging; +var bool m_bOnEnemy; +var bool m_bOnFriendly; +var bool m_bWasMounted; +var bool m_bCanPurchase; +var bool m_bWasReloading; +var bool m_bShowFuel; +var float m_fRechargeTime; +var float m_fRechargeTimer; +var float m_fDmgFadeTime; +var float m_fReloadTime; +var float m_fReloadTimer; +var AkBaseSoundObject m_scHitMarker[5]; +var GFxObject m_mcReticle; +var GFxObject m_mcShaLinReticleDraw; +var GFxObject m_mcShaLinImpalerReticle; +var GFxObject m_mcMaevePounceLIRecticle; +var GFxObject m_mcMaevePounceLORecticle; +var GFxObject m_mcMaevePounceRIRecticle; +var GFxObject m_mcMaevePounceRORecticle; +var GFxObject m_mcReticleType; +var GFxObject m_mcReticleAnim; +var GFxObject m_mcTargeter; +var GFxObject m_mcHitMarker; +var GFxObject m_mcHitMarkerTicks[4]; +var GFxObject m_mcAccuracy; +var GFxObject m_mcRecharge; +var GFxObject m_mcRechargeCD; +var GFxObject m_mcClip; +var GFxObject m_mcBeacon; +var GFxObject m_mcBeaconTF; +var GFxObject m_mcBeaconButton; +var GFxObject m_mcBeaconBG; +var GFxObject m_mcStuck; +var GFxObject m_mcAmmoNew; +var GFxObject m_mcAmmoNewCharge; +var GFxObject m_mcAmmoNewCurrent; +var GFxObject m_mcAmmoNewClipSize; +var GFxObject m_mcAmmoNewChargeMask; +var GFxObject m_mcColorBack[4]; +var GFxObject m_mcColorFront[4]; +var GFxObject m_mcMakoaSmash; +var GFxObject m_mcMakoaSmashObj[3]; +var Vector2D m_vMakoaSmashStart[3]; +var Vector2D m_vMakoaSmashEnd[3]; +var TgRepInfo_Player m_pTargetPRI; +var int m_eCombatInfoType; +var float m_fGlobalChatTimer; +var GFxObject m_Reward; +var GFxObject m_RewardName; +var GFxObject m_RewardAmount; +var GFxObject m_mcGlobalChat; +var GFxObject m_mcGlobalChatTF; +var GFxObject m_mcKillingBlow; +var GFxObject m_mcDamage; +var GFxObject m_Projectiles; +var HudProjectile m_ProjectilePointers[10]; +var array m_DamageMarkersLight; +var array m_DamageMarkerFreelistLight; +var array m_DamageMarkersMedium; +var array m_DamageMarkerFreelistMedium; +var array m_DamageMarkersHeavy; +var array m_DamageMarkerFreelistHeavy; +var GFxObject m_mcFuel; +var GFxObject m_mcFuelBar; +var GFxObject m_mcFuelMask; +var GFxObject m_mcReload; +var GFxObject m_mcReloadTF; +var GFxObject m_mcReloadAnim; +var UIComponent_TorvaldShieldBar m_TorvaldShieldBar; +var UIComponent_DemonTeleportTimer m_DemonTeleportTimer; +var array m_Messages; +var HitMarkerInfo m_HitMarker; +var float m_fMaxDamageTimestamp; +var float m_fDamageDealtRTPCSustainDuration; +var float m_fChampionHitTimestamp; +var float m_fChampionCountRTPCSustainDuration; +var array m_AccumulatedDamageInstances; +var float m_fDamageAccumulationWindow; +var TgGameplayCurves m_GameplayCurves; + +simulated event TriggerPounceReticleAnim(bool bPounceReady) { } + +defaultproperties +{ + m_bReticleVisible=true + m_bReticleAccessoryVisible=true + m_fDmgFadeTime=2.0000000 + m_scHitMarker[0]=AkEvent'UI_HitMarker_Small_1P_Play' + m_scHitMarker[1]=AkEvent'UI_HitMarker_DoT_1P_Play' + m_scHitMarker[2]=AkEvent'UI_HitMarker_Shield_1P_Play' + m_scHitMarker[3]=AkEvent'UI_HitMarker_HeadShot_Play' + m_scHitMarker[4]=AkEvent'UI_HitMarker_Crit_Play' + m_vMakoaSmashStart[0]=(X=0.0000000,Y=-22.2000000) + m_vMakoaSmashStart[1]=(X=19.4500000,Y=11.3500000) + m_vMakoaSmashStart[2]=(X=-19.3500000,Y=11.4500000) + m_vMakoaSmashEnd[0]=(X=0.0000000,Y=-61.0000000) + m_vMakoaSmashEnd[1]=(X=53.0500000,Y=30.7500000) + m_vMakoaSmashEnd[2]=(X=-52.9500000,Y=30.8500000) + m_fDamageDealtRTPCSustainDuration=0.7500000 + m_fChampionCountRTPCSustainDuration=0.7500000 + m_fDamageAccumulationWindow=0.5000000 + m_GameplayCurves=TgGameplayCurves'HudCenterCurves' + m_UISceneClass=Class'UIScene_UIHudCenter' + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudCenter" +} diff --git a/Development/Src/TgClient/Classes/UIHudChampionSelect.uc b/Development/Src/TgClient/Classes/UIHudChampionSelect.uc new file mode 100644 index 0000000..4f3ca72 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudChampionSelect.uc @@ -0,0 +1,23 @@ +class UIHudChampionSelect extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDCHAMPIONSELECT_COUNT = 33; + +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcChampion[33]; +var GFxObject m_mcChampionIcon[33]; +var GFxObject m_mcChampionTitle[33]; +var GFxObject m_mcChampionSubtitle[33]; +var TgGFxGroup m_grChampions; + +event string GetBotSpawnName(string sValue) { } + +defaultproperties +{ + m_OptionList[0]=14 + m_OptionList[1]=4 + m_bBlur=true + m_Name="UIHudChampionSelect" +} diff --git a/Development/Src/TgClient/Classes/UIHudChat.uc b/Development/Src/TgClient/Classes/UIHudChat.uc new file mode 100644 index 0000000..64e62f2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudChat.uc @@ -0,0 +1,9 @@ +class UIHudChat extends UIHudChatBox within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_bHideInput=true + m_Name="UIHudChat" +} diff --git a/Development/Src/TgClient/Classes/UIHudChatBox.uc b/Development/Src/TgClient/Classes/UIHudChatBox.uc new file mode 100644 index 0000000..17df820 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudChatBox.uc @@ -0,0 +1,71 @@ +class UIHudChatBox extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UIChatTab); + +const CHAT_COUNT = 8; + +const CHAT_VGS_CALLOUT_COUNT = 5; + +const CHAT_VGS_CALLOUT_TOTAL_COUNT = 40; + +var int m_nScroll; +var int m_nLineNumber; +var bool m_bLobby; +var bool m_bFadeFrame; +var bool m_bHighlight; +var bool m_bHideInput; +var float m_fBuffer; +var float m_fOffset; +var float m_fInputPosY; +var float m_fInputWidth; +var float m_fOutputWidth; +var float m_fOutputTimer[8]; +var string m_sRemaining; +var string m_sLastInput; +var TgChatData m_pChatData; +var int m_nChannel; +var int m_nMaxWidth; +var int m_nPrevIndex; +var string m_sReplyName; +var string m_sRecipient; +var GFxObject m_Buffer; +var GFxObject m_Highlight; +var GFxObject m_Output; +var GFxObject m_OutputText[8]; +var GFxObject m_OutputVgsCallout[40]; +var GFxObject m_OutputFrame; +var GFxObject m_OutputScroll; +var GFxObject m_mcCloseBtn; +var GFxObject m_Input; +var GFxObject m_InputBtn; +var GFxObject m_InputHelp; +var GFxObject m_InputText; +var GFxObject m_InputChan; +var GFxObject m_InputFrame; +var array m_bVGSText; +var array m_Messages; +var array m_PrevChats; +var array m_Shortcuts; + +defaultproperties +{ + m_fBuffer=5.0000000 + m_fOffset=25.0000000 + m_fOutputWidth=470.0000000 + m_Shortcuts[0]=(nChannel=0,sName="r") + m_Shortcuts[1]=(nChannel=0,sName="reply") + m_Shortcuts[2]=(nChannel=0,sName="w") + m_Shortcuts[3]=(nChannel=0,sName="whisper") + m_Shortcuts[4]=(nChannel=0,sName="c") + m_Shortcuts[5]=(nChannel=0,sName="clan") + m_Shortcuts[6]=(nChannel=0,sName="l") + m_Shortcuts[7]=(nChannel=0,sName="local") + m_Shortcuts[8]=(nChannel=0,sName="g") + m_Shortcuts[9]=(nChannel=0,sName="game") + m_Shortcuts[10]=(nChannel=0,sName="t") + m_Shortcuts[11]=(nChannel=0,sName="twitch") + m_eSnappingType=UISNAPPING_BOT + m_bVisibleOnLoad=true + m_Name="UIHudChatBox" +} diff --git a/Development/Src/TgClient/Classes/UIHudCredits.uc b/Development/Src/TgClient/Classes/UIHudCredits.uc new file mode 100644 index 0000000..4148775 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudCredits.uc @@ -0,0 +1,30 @@ +class UIHudCredits extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +struct UIRewardInfo { + var float fAlpha; + var float fTimer; + var GFxObject pClip; + structdefaultproperties {} +}; + +var int m_nDepth; +var string m_sComboName; +var string m_sRewardName; +var AkBaseSoundObject m_scXP; +var AkBaseSoundObject m_scKill; +var array m_mcRewards; + +defaultproperties +{ + m_sComboName="ComboInfo" + m_sRewardName="RewardInfo" + m_scXP=AkEvent'UI_InGame_Alert_Score_1P_Play' + m_scKill=AkEvent'UI_InGame_Alert_EnemyKill_1P_Play' + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudCredits" +} diff --git a/Development/Src/TgClient/Classes/UIHudDebuff.uc b/Development/Src/TgClient/Classes/UIHudDebuff.uc new file mode 100644 index 0000000..a627878 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudDebuff.uc @@ -0,0 +1,20 @@ +class UIHudDebuff extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDBUFFS_COUNT = 3; + +var int m_nGroup[16]; +var GFxObject m_mcDebuff[3]; +var GFxObject m_mcDebuffTF[3]; +var GFxObject m_mcDebuffIcon[3]; +var GFxObject m_mcDebuffTimer[3]; +var GFxObject m_mcDebuffTimerBar[3]; + +defaultproperties +{ + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudDebuff" +} diff --git a/Development/Src/TgClient/Classes/UIHudDecks.uc b/Development/Src/TgClient/Classes/UIHudDecks.uc new file mode 100644 index 0000000..8665892 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudDecks.uc @@ -0,0 +1,38 @@ +class UIHudDecks extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDDECKS_COUNT = 6; + +const UIHUDDECKS_CARDS = 5; + +const UIHUDTALENTS_COUNT = 3; + +var bool m_bPresentCharacterCustomizationWhenReady; +var bool m_bPopup; +var int m_nTalent; +var int m_nLoadout; +var GFxObject m_mcPopup; +var GFxObject m_mcPopupEquip; +var GFxObject m_mcPopupTitle; +var GFxObject m_mcPopupCard[5]; +var GFxObject m_mcPopupShadow[5]; +var TgGFxGroup m_grLoadout; +var GFxObject m_mcLoadoutContainer; +var GFxObject m_mcLoadout[6]; +var GFxObject m_mcLoadoutTitle[6]; +var GFxObject m_mcBack; +var GFxObject m_mcBreadcrumbs[3]; +var GFxObject m_mcBreadcrumbLines[2]; +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var AkBaseSoundObject m_akEquip; + +defaultproperties +{ + m_akEquip=AkEvent'UI_Lobby_MatchSetUp_LockIn_Self_Play' + m_UISceneClass=Class'UIScene_UIHudDecks' + m_OptionList[0]=249 + m_bBlur=true + m_Name="UIHudDecks" +} diff --git a/Development/Src/TgClient/Classes/UIHudEnemy.uc b/Development/Src/TgClient/Classes/UIHudEnemy.uc new file mode 100644 index 0000000..7ffbf87 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudEnemy.uc @@ -0,0 +1,8 @@ +class UIHudEnemy extends UIHudTeam within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_Name="UIHudEnemy" +} diff --git a/Development/Src/TgClient/Classes/UIHudKillFeed.uc b/Development/Src/TgClient/Classes/UIHudKillFeed.uc new file mode 100644 index 0000000..a43322a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudKillFeed.uc @@ -0,0 +1,29 @@ +class UIHudKillFeed extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDKILLFEED_START_Y_POS = 800.0; + +const UIHUDKILLFEED_ALTERNATE_Y_POS = 700.0; + +const UIHUDKILLFEED_Y_SPACING = 50.0; + +struct UIKILLFEED_DATA { + var GFxObject pObj; + var float fTimer; + structdefaultproperties {} +}; + +var int m_nDepth; +var string m_sEntryName; +var array m_Entries; + +defaultproperties +{ + m_sEntryName="Entry" + m_eSnappingType=UISNAPPING_BOT + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudKillFeed" +} diff --git a/Development/Src/TgClient/Classes/UIHudMenu.uc b/Development/Src/TgClient/Classes/UIHudMenu.uc new file mode 100644 index 0000000..a490e3d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudMenu.uc @@ -0,0 +1,39 @@ +class UIHudMenu extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDMENU_COUNT = 8; + +enum HUDMENU_OPTIONS { + UIHM_RETURNTOGAME, // 0 + UIHM_EDITLOADOUT, // 1 + UIHM_SETTINGS, // 2 + UIHM_SCOREBOARD, // 3 + UIHM_CHANGECHAMPION, // 4 + UIHM_RETURNTOLOBBY, // 5 + UIHM_QUITGAME, // 6 +}; + +var bool m_bTutorialPopup; +var GFxObject m_mcFrame; +var GFxObject m_mcTitle; +var GFxObject m_mcBlocker; +var GFxObject m_mcSubtitle; +var GFxObject m_mcButton[8]; +var TgGFxGroup m_grButton; +var GFxObject m_mcTutorialPopup; +var GFxObject m_mcTutorialPopupTitle; +var GFxObject m_mcTutorialPopupAccept; +var GFxObject m_mcTutorialPopupCancel; +var GFxObject m_mcTutorialPopupBlocker; +var GFxObject m_mcTutorialPopupSubtitle; +var TgGFxGroup m_grTutorialPopup; +var array m_eOptions; + +defaultproperties +{ + m_OptionList[0]=249 + m_bBlur=true + m_bAllowSpectatorClickThru=false + m_Name="UIHudMenu" +} diff --git a/Development/Src/TgClient/Classes/UIHudMinimap.uc b/Development/Src/TgClient/Classes/UIHudMinimap.uc new file mode 100644 index 0000000..47ecad8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudMinimap.uc @@ -0,0 +1,66 @@ +class UIHudMinimap extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUD_MINIMAP_HALFSIZE = 300.0f; + +const UIHUD_MINIMAP_IMAGELOADERFRAME = 11; + +struct MinimapInfo { + var int nMapId; + var float fMapSize; + var float fOffsetX; + var float fOffsetY; + structdefaultproperties {} +}; + +var int m_nStaticMapIndex; +var int m_nStaticMapId; +var float m_fFogRotation; +var int m_nMapBoundsCount; +var bool m_bDynamicMapSet; +var float m_fMapSize; +var float m_fOffsetX; +var float m_fOffsetY; +var Vector m_vMapBoundsCenter; +var Vector m_vMapBoundsExtents; +var float m_fUpdateMiniMapTimer; +var GFxObject m_Map; +var GFxObject m_MinimapImageLoader; +var GFxObject m_LocalPlayer; +var GFxObject m_SiegeEngine; +var GFxObject m_SiegeBomb[2]; +var GFxObject m_CapturePoint; +var GFxObject m_EnemyGates[3]; +var GFxObject m_FriendGates[3]; +var GFxObject m_EnemyPlayer[5]; +var GFxObject m_EnemyPlayerIcon[5]; +var GFxObject m_FriendPlayer[5]; +var GFxObject m_FriendPlayerIcon[5]; +var GFxObject m_mcFog; +var GFxObject m_mcFogMask; +var GFxObject m_mcFogFrame; +var GFxObject m_mcFogSpinner; +var GFxObject m_mcFogSpinnerMask; +var GFxObject m_mcFogSpinnerAnim; +var array m_MinimapInfo; + +defaultproperties +{ + m_MinimapInfo[0]=(nMapId=0,fMapSize=9700.0000000,fOffsetX=-32.0000000,fOffsetY=4.0000000) + m_MinimapInfo[1]=(nMapId=1,fMapSize=10800.0000000,fOffsetX=105.0000000,fOffsetY=0.0000000) + m_MinimapInfo[2]=(nMapId=2,fMapSize=7000.0000000,fOffsetX=46.0000000,fOffsetY=148.0000000) + m_MinimapInfo[3]=(nMapId=3,fMapSize=9800.0000000,fOffsetX=20.0000000,fOffsetY=0.0000000) + m_MinimapInfo[4]=(nMapId=4,fMapSize=6800.0000000,fOffsetX=180.0000000,fOffsetY=-100.0000000) + m_MinimapInfo[5]=(nMapId=5,fMapSize=7300.0000000,fOffsetX=-40.0000000,fOffsetY=0.0000000) + m_MinimapInfo[6]=(nMapId=6,fMapSize=2800.0000000,fOffsetX=0.0000000,fOffsetY=0.0000000) + m_MinimapInfo[7]=(nMapId=7,fMapSize=6300.0000000,fOffsetX=160.0000000,fOffsetY=-70.0000000) + m_MinimapInfo[8]=(nMapId=8,fMapSize=5200.0000000,fOffsetX=0.0000000,fOffsetY=0.0000000) + m_MinimapInfo[9]=(nMapId=9,fMapSize=8800.0000000,fOffsetX=0.0000000,fOffsetY=0.0000000) + m_eSnappingType=UISNAPPING_TOP + m_eAligningType=UIALIGNING_RIGHT + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudMinimap" +} diff --git a/Development/Src/TgClient/Classes/UIHudNotify.uc b/Development/Src/TgClient/Classes/UIHudNotify.uc new file mode 100644 index 0000000..82230da --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudNotify.uc @@ -0,0 +1,51 @@ +class UIHudNotify extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +struct NotifyData { + var int nIcon; + var int nMsgId; + var int nSound; + var int nTaskForce; + var bool bLocal; + var bool bFriend; + var init string sSource; + var init string sTarget; + var init string sMessage; + structdefaultproperties {} +}; + +var float m_fDisplayTimer; +var float m_fKillTime; +var float m_fKillTimer; +var float m_fAlertTime; +var float m_fAlertTimer; +var float m_fAccoladeTime; +var float m_fAccoladeTimer; +var NotifyData m_NewData; +var GFxObject m_mcNotify; +var GFxObject m_mcNotifyTF; +var GFxObject m_mcTeamTF; +var bool m_bRejectMessages; +var AkBaseSoundObject m_scCaptured; +var AkBaseSoundObject m_scGateDestroyed; +var AkBaseSoundObject m_scSiegeDestroyed; +var AkBaseSoundObject m_scGettingCaptured; +var array m_Kills; +var array m_Alerts; +var array m_Accolades; + +defaultproperties +{ + m_fKillTime=2.0000000 + m_fAlertTime=2.0000000 + m_fAccoladeTime=2.0000000 + m_scCaptured=AkEvent'UI_InGame_Alert_Point_Captured_1P_Play' + m_scGateDestroyed=AkEvent'UI_InGame_Alert_Gate_Destroyed_1P_Play' + m_scSiegeDestroyed=AkEvent'UI_InGame_Alert_Siege_Destroyed_1P_Play' + m_scGettingCaptured=AkEvent'UI_InGame_Alert_Point_Getting_Captured_1P_Play' + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudNotify" +} diff --git a/Development/Src/TgClient/Classes/UIHudOverlays.uc b/Development/Src/TgClient/Classes/UIHudOverlays.uc new file mode 100644 index 0000000..d5675ab --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudOverlays.uc @@ -0,0 +1,12 @@ +class UIHudOverlays extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_bVisibleOnLoad=true + m_bResize=false + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudOverlays" +} diff --git a/Development/Src/TgClient/Classes/UIHudPlayer.uc b/Development/Src/TgClient/Classes/UIHudPlayer.uc new file mode 100644 index 0000000..ce8d611 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudPlayer.uc @@ -0,0 +1,41 @@ +class UIHudPlayer extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var int m_nStreak; +var int m_nProfile; +var bool m_bInCombat; +var bool m_bShowCombat; +var bool m_bSpectateEnemy; +var float m_fCombatTime; +var float m_fCombatPercent; +var float m_CachedRotation; +var GFxObject m_mcIcon; +var GFxObject m_grScene; +var UIComponent_HealthBar_Player m_HealthBar; +var GFxObject m_mcCombat; +var GFxObject m_mcCombatBar; +var GFxObject m_mcStreak; +var GFxObject m_mcStreakBack; +var GFxObject m_mcStreakTitle; +var GFxObject m_mcStreakSubtitle; +var GFxObject m_mcDebugText; +var init string m_sSpectatorName; +var init string m_sSpectatorTeam; +var GFxObject m_mcSpectatorGroup; +var GFxObject m_mcSpectatorNameTF; +var GFxObject m_mcSpectatorTeam; +var GFxObject m_mcSpectatorTeamAdd; +var GFxObject m_mcSpectatorBG; + +defaultproperties +{ + m_CachedRotation=-1.0000000 + m_eSnappingType=UISNAPPING_BOT + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_bShowCursor=false + m_bCaptureKeys=false + m_bCanShake=true + m_Name="UIHudPlayer" +} diff --git a/Development/Src/TgClient/Classes/UIHudRecap.uc b/Development/Src/TgClient/Classes/UIHudRecap.uc new file mode 100644 index 0000000..e51c1ad --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudRecap.uc @@ -0,0 +1,30 @@ +class UIHudRecap extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDRECAP_PLAYERS = 3; + +var int m_nRespawnTime; +var bool m_bRecap; +var bool m_bRespawning; +var bool m_bHaveDeathData; +var GFxObject m_mcSkipKillcamPrompt; +var GFxObject m_mcRecap; +var GFxObject m_mcRecapMask[3]; +var GFxObject m_mcRecapPlayer[3]; +var GFxObject m_mcTopBar; +var GFxObject m_mcBotBar; +var GFxObject m_mcTopShadow; +var GFxObject m_mcBotShadow; +var GFxObject m_mcViewRecapPrompt; +var GFxObject m_mcRespawn; +var GFxObject m_mcButtonTF; +var GFxObject m_mcRespawnTF; +var GFxObject m_mcPlayer[3]; + +defaultproperties +{ + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_Name="UIHudRecap" +} diff --git a/Development/Src/TgClient/Classes/UIHudResult.uc b/Development/Src/TgClient/Classes/UIHudResult.uc new file mode 100644 index 0000000..718e149 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudResult.uc @@ -0,0 +1,66 @@ +class UIHudResult extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +enum EPlayOfTheGameState { + EPOTGS_None, // 0 + EPOTGS_Setup, // 1 + EPOTGS_Intro, // 2 + EPOTGS_PlaybackRequested, // 3 + EPOTGS_PlaybackStarted, // 4 + EPOTGS_Outro, // 5 +}; + +var bool m_bRoundEnd; +var bool m_bLoadingModel; +var bool m_bMapOutroFinished; +var float m_fResultDisplayTime; +var float m_fPlayOfTheGameTimer; +var float m_fHomeTimer; +var float m_fRoundTime; +var float m_fRoundTimer; +var float m_fAnimTimer; +var float m_fAsyncMeshLoadTimeout; +var float m_fIntroDuration; +var float m_fPlayOfTheGameTimeoutDuration; +var GFxObject m_mcBlocker; +var GFxObject m_mcResult; +var GFxObject m_mcResultEOR; +var GFxObject m_mcResultTitle; +var GFxObject m_mcResultTitleAnim; +var GFxObject m_mcResultDefeat; +var GFxObject m_mcResultVictory; +var GFxObject m_mcResultVictorySpectator; +var GFxObject m_mcResultPlayOfTheGameContainer; +var GFxObject m_mcResultPlayOfTheGame; +var GFxObject m_mcResultPlayOfTheGameBackground; +var GFxObject m_mcResultPlayOfTheGamePlayerNameGroup; +var GFxObject m_mcResultPlayOfTheGamePlayerName; +var GFxObject m_mcResultPlayOfTheGamePlayerNameShadow; +var GFxObject m_mcResultPlayOfTheGamePlayerTitle; +var GFxObject m_mcResultPlayOfTheGamePlayerPortrait; +var GFxObject m_mcResultPlayOfTheGamePlayerPortraitFrame; +var GFxObject m_mcResultPlayOfTheGamePlayerPortraitIcon; +var GFxObject m_mcResultPlayOfTheGamePlayerPortraitIconTexture; +var GFxObject m_mcResultPlayOfTheGameChampionNameGroup; +var GFxObject m_mcResultPlayOfTheGameChampionName; +var GFxObject m_mcResultPlayOfTheGameChampionNameTF; +var GFxObject m_mcResultPlayOfTheGameText; +var GFxObject m_mcResultPlayOfTheGameTextAs; +var int m_nBasePotGXPos; +var UIHudResult.EPlayOfTheGameState m_ePlayOfTheGameState; +var float m_fPlayOfTheGameStateTime; + +event HandleAnimState(int nAnimState, optional int nAnimGroup=0) { } + +defaultproperties +{ + m_fAsyncMeshLoadTimeout=5.0000000 + m_fIntroDuration=5.0000000 + m_fPlayOfTheGameTimeoutDuration=1.5000000 + m_bAlwaysTick=true + m_bAllowSpectatorClickThru=false + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudResult" +} diff --git a/Development/Src/TgClient/Classes/UIHudScore.uc b/Development/Src/TgClient/Classes/UIHudScore.uc new file mode 100644 index 0000000..5b1ed72 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudScore.uc @@ -0,0 +1,128 @@ +class UIHudScore extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +struct PayloadStatus { + var GFxObject PayloadStatusCon; + var GFxObject Diamond; + var GFxObject DiamondTint; + var GFxObject DashForward; + var GFxObject DashBackward; + var float fTargetDashFAlpha; + var float fTargetDashBAlpha; + var float fTargetTintAlpha; + var int nTargetTintFrame; + var GFxObject PayloadContestedCon; + var GFxObject ContestedTF; + var GFxObject ContestedLeft; + var GFxObject ContestedRight; + var float fTargetContestedAlpha; + structdefaultproperties {} +}; + +var const float m_fPayloadProgressWidth; +var const float m_fPayloadProgressBuffer; +var int m_nTime; +var int m_nScoreA; +var int m_nScoreB; +var int m_nTicketsFriend; +var int m_nTicketsEnemy; +var int m_nOvertime; +var int m_nPushTime; +var int m_nSetupTime; +var int m_nCaptureA; +var int m_nCaptureB; +var int m_nCaptureTeam; +var int m_nCaptureCount; +var int m_nOvertimeState; +var int m_nTimeRemaining; +var bool m_bPushing; +var bool m_bOvertime; +var bool m_bStarting; +var bool m_bCapturing; +var bool m_bCaptureOvertime; +var bool m_bUseSubtitlePrompt; +var float m_fOvertime; +var float m_fPushTimer; +var float m_fSetupTimer; +var float m_fOvertimeDuration; +var array m_movieClips; +var GFxObject m_mcSiege; +var GFxObject m_mcSiegeTime; +var GFxObject m_mcSiegeMaxA; +var GFxObject m_mcSiegeMaxB; +var GFxObject m_mcSiegeScoreA; +var GFxObject m_mcSiegeScoreB; +var GFxObject m_mcTicketsFriend; +var GFxObject m_mcTicketsEnemy; +var GFxObject m_mcSiegeScoreFrame; +var GFxObject m_mcSiegePush; +var GFxObject m_mcSiegePushBar; +var GFxObject m_mcSiegePushTip; +var GFxObject m_mcSiegePushTime; +var GFxObject m_mcSiegePushOvertime; +var GFxObject m_mcSiegePushOvertimeBar; +var GFxObject m_mcSiegeCapture; +var GFxObject m_mcSiegeCaptureBarA; +var GFxObject m_mcSiegeCaptureBarB; +var GFxObject m_mcSiegeCaptureIcon; +var GFxObject m_mcSiegeCaptureCount; +var GFxObject m_mcSiegeCaptureScoreA; +var GFxObject m_mcSiegeCaptureScoreB; +var GFxObject m_mcSiegeCaptureOvertime; +var GFxObject m_mcSiegeCaptureOvertimeBar; +var PayloadStatus m_SiegePayloadStatus; +var GFxObject m_mcSiegePushContested; +var GFxObject m_mcSiegePushContestedTF; +var GFxObject m_mcPayload; +var GFxObject m_mcPayloadTime; +var GFxObject m_mcPayloadTitle; +var GFxObject m_mcPayloadScoreA; +var GFxObject m_mcPayloadScoreB; +var GFxObject m_mcPayloadScoreFrame; +var GFxObject m_mcPayloadPush; +var GFxObject m_mcPayloadPushBar; +var GFxObject m_mcPayloadPushTip; +var GFxObject m_mcPayloadPushTime; +var GFxObject m_mcPayloadPushMarker; +var GFxObject m_mcPayloadPushOvertime; +var GFxObject m_mcPayloadPushOvertimeBar; +var PayloadStatus m_PayloadPayloadStatus; +var GFxObject m_mcPayloadPushContested; +var GFxObject m_mcPayloadPushContestedTF; +var GFxObject m_mcActivation; +var GFxObject m_mcActivationTF; +var GFxObject m_mcActivationTitle; +var string m_szCurrentPersistentTitle; +var string m_szCurrentPersistentSubtitle; +var GFxObject m_mcPersistentTitle; +var GFxObject m_mcPersistentSubtitle; +var GFxObject m_mcPersistentSubtitlePrompt; +var GFxObject m_mcTutorialPrompt; +var GFxObject m_mcTutorialPromptBack; + +defaultproperties +{ + m_fPayloadProgressWidth=324.0000000 + m_fPayloadProgressBuffer=-162.0000000 + m_nTime=-1 + m_nScoreA=-1 + m_nScoreB=-1 + m_nOvertime=999 + m_nPushTime=999 + m_nSetupTime=-1 + m_nCaptureA=-1 + m_nCaptureB=-1 + m_nCaptureTeam=-1 + m_nCaptureCount=-1 + m_nOvertimeState=-1 + m_bStarting=true + m_fPushTimer=-1.0000000 + m_UISceneClass=Class'UIScene_UIHudScore' + m_eSnappingType=UISNAPPING_TOP + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudScore" +} diff --git a/Development/Src/TgClient/Classes/UIHudScoreboard.uc b/Development/Src/TgClient/Classes/UIHudScoreboard.uc new file mode 100644 index 0000000..2540078 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudScoreboard.uc @@ -0,0 +1,90 @@ +class UIHudScoreboard extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UISCOREBOARD_CARDS = 5; + +const UISCOREBOARD_ITEMS = 4; + +const UISCOREBOARD_STATS = 5; + +const UISCOREBOARD_PLAYERS = 5; + +const UISCOREBOARD_TABS = 3; + +enum ScoreboardTabs { + UIST_Items, // 0 + UIST_Loadouts, // 1 + UIST_Overview, // 2 +}; + +struct ScoreInfo { + var int nCard[5]; + var int nItem[4]; + var int nItemLevel[4]; + var int nTalent; + var int nTalentXPos; + var int nTalentYPos; + var int nPlayerId; + var UniqueNetId ConsoleUniqueId; + var GFxObject pObj; + var GFxObject Name; + var GFxObject EquipableTitle; + var GFxObject Icon; + var GFxObject Mute; + var GFxObject Bounds; + var GFxObject Charge; + var GFxObject Killstreak; + var GFxObject Respawn; + var GFxObject Champion; + var GFxObject TalentButton; + var GFxObject TalentIcon; + var GFxObject ItemBacks; + var GFxObject Card[5]; + var GFxObject CardIcon[5]; + var GFxObject Item[4]; + var GFxObject ItemBase[4]; + var GFxObject ItemIcon[4]; + var int nItemXPos[4]; + var int nItemYPos[4]; + var UIComponent_AbilityPointsPool AbilityPoints; + var GFxObject KDA; + var GFxObject MuteVoice; + structdefaultproperties {} +}; + +var const int m_nFirstRowIconHeight; +var const int m_nRowSpacing; +var const int m_nTalentXOffset; +var const int m_nFirstItemXOffset; +var const int m_nItemSpacing; +var int m_nBestStreak; +var ScoreInfo m_RedScore[5]; +var ScoreInfo m_BlueScore[5]; +var UIComponent_ItemTooltip m_ItemTooltip; +var GFxObject m_mcStats; +var GFxObject m_mcTitle; +var GFxObject m_mcTitles; +var GFxObject m_mcMuteVoiceGamepadPrompt; +var GFxObject m_mcViewProfilePrompt; +var GFxObject m_mcHighlight; +var GFxObject m_mcStat[5]; +var TgGFxGroup m_grPlayers; +var GFxObject m_mcTabs[3]; +var GFxObject m_mcTabKey[3]; +var GFxObject m_mcTabTitles[3]; +var UIHudScoreboard.ScoreboardTabs m_eCurrentTab; + +defaultproperties +{ + m_nFirstRowIconHeight=410 + m_nRowSpacing=70 + m_nTalentXOffset=196 + m_nFirstItemXOffset=636 + m_nItemSpacing=50 + m_OptionList[0]=249 + m_bBlur=true + m_bAlwaysTick=true + m_bCaptureKeys=false + m_Name="UIHudScoreboard" +} diff --git a/Development/Src/TgClient/Classes/UIHudSkills.uc b/Development/Src/TgClient/Classes/UIHudSkills.uc new file mode 100644 index 0000000..a209c98 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudSkills.uc @@ -0,0 +1,41 @@ +class UIHudSkills extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UIHudCards, UIHudCenter); + +const UIHUDSKILLS_BARS = 3; + +const UIHUDSKILLS_CARDS = 5; + +enum UIHudSkillsSpectatorMode { + SkillsSpecatorMode_Skills, // 0 + SkillsSpecatorMode_Items, // 1 + SkillsSpecatorMode_Cards, // 2 +}; + +var bool m_bPrompt; +var bool m_bShownBurn; +var bool m_bPromptK; +var bool m_bShownLoadout; +var CastingInfo m_MountBar; +var CastingInfo m_CastBar[3]; +var GFxObject m_mcPrompt; +var GFxObject m_mcPromptK; +var int m_nCredits; +var GFxObject m_mcSpectatorCredits; +var GFxObject m_mcSpectatorItemsGroup; +var GFxObject m_mcSpectatorCardsGroup; +var UICardDisplayGroup m_CardDisplayGroup; +var int m_nSpectatorMode; + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIHudSkills' + m_eSnappingType=UISNAPPING_BOT + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_bShowCursor=false + m_bCaptureKeys=false + m_bCanShake=true + m_Name="UIHudSkills" +} diff --git a/Development/Src/TgClient/Classes/UIHudSniper.uc b/Development/Src/TgClient/Classes/UIHudSniper.uc new file mode 100644 index 0000000..dafedeb --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudSniper.uc @@ -0,0 +1,32 @@ +class UIHudSniper extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDSNIPER_PINS = 4; + +const UIHUDSNIPER_SIDES = 2; + +const UIHUDSNIPER_CHARGES = 4; + +const UIHUDSNIPER_BULLETS = 5; + +var int m_nAmmo; +var float m_fCharge; +var GFxObject m_mcPins; +var GFxObject m_mcReady; +var GFxObject m_mcFrame; +var GFxObject m_mcAmmoBelt; +var GFxObject m_mcPin[4]; +var GFxObject m_mcAmmo[5]; +var GFxObject m_mcCharge[2]; +var GFxObject m_mcChargeLeft[4]; +var GFxObject m_mcChargeRight[4]; + +defaultproperties +{ + m_eScalingType=UISCALING_FITTALL + m_eSnappingType=UISNAPPING_TOP + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudSniper" +} diff --git a/Development/Src/TgClient/Classes/UIHudSpectator.uc b/Development/Src/TgClient/Classes/UIHudSpectator.uc new file mode 100644 index 0000000..45edfd5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudSpectator.uc @@ -0,0 +1,33 @@ +class UIHudSpectator extends GFxObject within GFxMoviePlayer + native + config(Engine); + +struct BotLifeData { + var bool bAlive; + var int nSpawnTime; + var int nRespawnTime; + var array m_DeathTimes; + structdefaultproperties {} +}; + +var int m_nIterations; +var int m_BannedIds[6]; +var bool m_bFindMatchDetails; +var float m_fUpdateWaitRT; +var float m_fUpdateWaitGT; +var GFxObject _global; +var BotLifeData m_BotLifeData[2]; +var UIGameMoviePlayer m_pMovie; + +native function Initialize(UIGameMoviePlayer pParentMovie); // Export UUIHudSpectator::execInitialize(FFrame&, void* const) + +native exec function UpdateGraph(); // Export UUIHudSpectator::execUpdateGraph(FFrame&, void* const) + +event SendGraphData(GFxObject Obj) { } + +defaultproperties +{ + m_bFindMatchDetails=true + m_BotLifeData[0]=(bAlive=false,nSpawnTime=10,nRespawnTime=300,m_DeathTimes=none) + m_BotLifeData[1]=(bAlive=false,nSpawnTime=600,nRespawnTime=300,m_DeathTimes=none) +} diff --git a/Development/Src/TgClient/Classes/UIHudStrix.uc b/Development/Src/TgClient/Classes/UIHudStrix.uc new file mode 100644 index 0000000..2ceaf28 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudStrix.uc @@ -0,0 +1,14 @@ +class UIHudStrix extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIHudStrix' + m_eScalingType=UISCALING_FITTALL + m_eSnappingType=UISNAPPING_TOP + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudStrix" +} diff --git a/Development/Src/TgClient/Classes/UIHudTarget.uc b/Development/Src/TgClient/Classes/UIHudTarget.uc new file mode 100644 index 0000000..6e66015 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudTarget.uc @@ -0,0 +1,15 @@ +class UIHudTarget extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var int m_nOwnerBotId; +var array m_TargetingManagers; + +defaultproperties +{ + m_eScalingType=UISCALING_FITTALL + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudTarget" +} diff --git a/Development/Src/TgClient/Classes/UIHudTeam.uc b/Development/Src/TgClient/Classes/UIHudTeam.uc new file mode 100644 index 0000000..a719861 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudTeam.uc @@ -0,0 +1,142 @@ +class UIHudTeam extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UIHudCards); + +const UIHUDTEAM_COUNT = 5; + +const UIHUDTEAM_STATS = 10; + +const UIHUDTEAM_LOADOUTSIZE = 5; + +const UIHUDTEAM_ITEMSLOTS = 4; + +const UIHUDTEAM_STREAK_MIN_STREAK = 5; + +const UIHUDTEAM_STREAK_FADE_CEILING = 20; + +enum UIHudTeamDisplayMode { + TeamDisplayMode_Top, // 0 + TeamDisplayMode_SidesWithItems, // 1 + TeamDisplayMode_SidesWithCards, // 2 + TeamDisplayMode_KDA, // 3 +}; + +enum UIHudTeamStatsMode { + TeamStatsMode_Credits, // 0 + TeamStatsMode_Damage, // 1 + TeamStatsMode_Shielding, // 2 + TeamStatsMode_Healing, // 3 + TeamStatsMode_ObjectiveTime, // 4 +}; + +enum UIHudTeamAnimGroup { + TeamAnimGroup_Team, // 0 + TeamAnimGroup_Stats, // 1 +}; + +struct TEAMPLAYER_INFO { + var int nRespawn; + var bool bHealth; + var bool bRespawn; + var bool bVisible; + var float fHealth; + var float fRespawn; + var int nUlt; + var bool bSelected; + var init string sIcon; + var float fUltIconScale; + var GFxObject pObj; + var GFxObject pIcon; + var GFxObject pIconDead; + var GFxObject pHealth; + var GFxObject pHealthTip; + var GFxObject pHealthBG; + var float fHealthBarWidth; + var GFxObject pRespawn; + var GFxObject pDeadX; + var GFxObject pUlt; + var GFxObject pUltReady; + var GFxObject pSelected; + var int nStreak; + var float fStreakAnimOffset; + var GFxObject pStreak; + var GFxObject pStreakAdd1; + var GFxObject pStreakAdd2; + var GFxObject pStreakCount; + structdefaultproperties {} +}; + +struct TEAMPLAYER_INFO_EXTENDED extends TEAMPLAYER_INFO { + var bool bItemsVisible; + var bool bCardsVisible; + var UICardDisplayGroup CardDisplayGroup; + var init string sPlayerName; + var GFxObject pPlayerName; + var int nCredits; + var GFxObject pCredits; + var int nKills; + var int nDeaths; + var int nAssists; + var GFxObject pKDA; +}; + +struct TEAMSTAT_INFO { + var GFxObject pObj; + var GFxObject pIcon; + var GFxObject pText; + var GFxObject pTip; + var GFxObject pBar; + var GFxObject pBackground; + var GFxObject pMask; + var init string sIcon; + var float fMaskBaseWidth; + structdefaultproperties {} +}; + +var bool m_bShowPlayers; +var string m_sSpectatingText; +var GFxObject m_mcSpectating; +var GFxObject m_mcSpectatingTF; +var GFxObject m_mcPlayers; +var TEAMPLAYER_INFO m_mcPlayerRed[5]; +var TEAMPLAYER_INFO m_mcPlayerBlue[5]; +var GFxObject m_mcTeamBlueName; +var GFxObject m_mcTeamBlueScore; +var GFxObject m_mcTeamRedName; +var GFxObject m_mcTeamRedScore; +var GFxObject m_mcTeamBlueTopBG; +var GFxObject m_mcTeamRedTopBG; +var GFxObject m_mcPlayersSide; +var GFxObject m_mcPlayersSideBlueBG; +var GFxObject m_mcPlayersSideRedBG; +var TEAMPLAYER_INFO_EXTENDED m_mcPlayerSideRed[5]; +var TEAMPLAYER_INFO_EXTENDED m_mcPlayerSideBlue[5]; +var GFxObject m_mcStats; +var GFxObject m_mcStatsTitle; +var TEAMSTAT_INFO m_mcStatsEntry[10]; +var GFxObject m_mcRespawn; +var TEAMPLAYER_INFO m_mcRespawnRed[5]; +var TEAMPLAYER_INFO m_mcRespawnBlue[5]; +var int m_nSpectatorMode; +var int m_nStatsMode; +var float m_fStatsUpdateTimer; + +event HandleAnimState(int nAnimState, optional int nAnimGroup=0) { } + +event TransitionTeamTop(bool bShow, float fAnimTime) { } + +event TransitionTeamSides(bool bShow, float fAnimTime) { } + +event TransitionStats(bool bShow, float fAnimTime) { } + +native function TransitionTeamSidesSizing(bool bSmall, optional float fAnimTime=0.2500000); // Export UUIHudTeam::execTransitionTeamSidesSizing(FFrame&, void* const) + +defaultproperties +{ + m_eSnappingType=UISNAPPING_TOP + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudTeam" +} diff --git a/Development/Src/TgClient/Classes/UIHudTip.uc b/Development/Src/TgClient/Classes/UIHudTip.uc new file mode 100644 index 0000000..e4d898c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudTip.uc @@ -0,0 +1,33 @@ +class UIHudTip extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var int m_nHudTipId; +var int m_nHudSpecialTipId; +var int m_nWorldTipId; +var float m_fPromptAnimTimer; +var GFxObject m_mcHudTip; +var GFxObject m_mcHudTipIcon; +var GFxObject m_mcHudTipName; +var GFxObject m_mcHudTipDesc; +var GFxObject m_mcHudSpecialTip; +var GFxObject m_mcHudSpecialTipText; +var GFxObject m_mcHudSpecialTipAnimA; +var GFxObject m_mcHudSpecialTipAnimB; +var GFxObject m_mcHudSpecialTipFrame; +var GFxObject m_mcHudSpecialTipPrompt; +var GFxObject m_mcWorldTip; +var GFxObject m_mcWorldTipIcon; +var GFxObject m_mcWorldTipName; +var GFxObject m_mcWorldTipDesc; + +event bool GetScreenCoordinates(Canvas pCanvas, Vector CameraLocation, Vector CameraRotation, Vector ObjectLocation, out Vector ScreenLocation) { } + +defaultproperties +{ + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_bCanShake=true + m_Name="UIHudTip" +} diff --git a/Development/Src/TgClient/Classes/UIHudVGS.uc b/Development/Src/TgClient/Classes/UIHudVGS.uc new file mode 100644 index 0000000..3fbb7e7 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudVGS.uc @@ -0,0 +1,42 @@ +class UIHudVGS extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const VGS_MAP_PC = 1; + +const VGS_MAP_CONSOLE = 4; + +const VGS_LIST_COUNT = 14; + +const VGS_GAMEPAD_COUNT = 6; + +enum VGS_GamepadItem { + VGSGP_L, // 0 + VGSGP_R, // 1 + VGSGP_Y, // 2 + VGSGP_X, // 3 + VGSGP_B, // 4 + VGSGP_A, // 5 +}; + +var GFxObject m_Label[14]; +var GFxObject m_Keybind[14]; +var GFxObject m_ListItem[14]; +var GFxObject m_GamepadItem[6]; +var GFxObject m_FramePC; +var GFxObject m_FrameConsole; +var UIHudVGSData m_pRootPC; +var UIHudVGSData m_pRootConsole; +var UIHudVGSData m_pCurrent; +var bool m_bIsGamepadSequence; + +delegate usc_ForceInput_Delegate(); + +native function usc_ForceInput(string Input); // Export UUIHudVGS::execusc_ForceInput(FFrame&, void* const) + +defaultproperties +{ + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudVGS" +} diff --git a/Development/Src/TgClient/Classes/UIHudVGSData.uc b/Development/Src/TgClient/Classes/UIHudVGSData.uc new file mode 100644 index 0000000..f39f90c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudVGSData.uc @@ -0,0 +1,11 @@ +class UIHudVGSData extends Object + native(GameUI) + config(Engine); + +var int m_nId; +var int m_nParentId; +var int m_nScopeVal; +var init string m_sLabel; +var init string m_sOutput; +var init string m_sKeybind; +var array m_Children; diff --git a/Development/Src/TgClient/Classes/UIHudVoiceChat.uc b/Development/Src/TgClient/Classes/UIHudVoiceChat.uc new file mode 100644 index 0000000..50e87a0 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudVoiceChat.uc @@ -0,0 +1,30 @@ +class UIHudVoiceChat extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIVOICECHAT_TEAMPLAYERS = 5; + +var float m_fAlphaSpeaking; +var float m_fAlphaNotSpeaking; +var float m_fAlphaMuted; +var float m_fFadeTime; +var GFxObject m_mcAllyPlayers[5]; +var GFxObject m_mcAllyPlayerLabels[5]; +var GFxObject m_mcAllyPlayerSpeakIcons[5]; +var GFxObject m_mcAllyPlayerIcons[5]; +var GFxObject m_mcEnemyPlayers[5]; +var GFxObject m_mcEnemyPlayerLabels[5]; +var GFxObject m_mcEnemyPlayerSpeakIcons[5]; +var GFxObject m_mcEnemyPlayerIcons[5]; +var string m_sAllyPlayerIcons[5]; +var string m_sEnemyPlayerIcons[5]; +var UniqueNetId m_LocalPlayerNetId; + +defaultproperties +{ + m_fAlphaSpeaking=100.0000000 + m_fFadeTime=0.5000000 + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudVoiceChat" +} diff --git a/Development/Src/TgClient/Classes/UIHudWaypoint.uc b/Development/Src/TgClient/Classes/UIHudWaypoint.uc new file mode 100644 index 0000000..3822e00 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIHudWaypoint.uc @@ -0,0 +1,42 @@ +class UIHudWaypoint extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIHUDWAYPOINT_PROJECTILES = 4; + +struct WaypointObjective { + var GFxObject pClip; + var GFxObject pIcon; + var GFxObject pDist; + var GFxObject pPulse; + var GFxObject pTitle; + var bool bVisible; + structdefaultproperties {} +}; + +var float m_fClipSize; +var float m_fPushTimer; +var float m_fPulseDelay; +var float m_fPulseTimer; +var array m_Captures; +var WaypointObjective m_Escort; +var WaypointObjective m_Attack; +var WaypointObjective m_Defend; +var WaypointObjective m_Beacon; +var WaypointObjective m_Projectile[4]; +var WaypointObjective m_KillCamYou; +var array m_DominationObjectives; +var Vector m_SnappedWaypointOffset; + +event bool GetScreenCoordinates(Canvas pCanvas, Vector CameraLocation, Vector CameraRotation, Vector ObjectLocation, out Vector ScreenLocation) { } + +defaultproperties +{ + m_fClipSize=180.0000000 + m_fPulseDelay=1.0000000 + m_eScalingType=UISCALING_FITTALL + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIHudWaypoint" +} diff --git a/Development/Src/TgClient/Classes/UIInputPopup.uc b/Development/Src/TgClient/Classes/UIInputPopup.uc new file mode 100644 index 0000000..997b328 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInputPopup.uc @@ -0,0 +1,12 @@ +class UIInputPopup extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIPopupInput' + m_bBlur=true + m_bIsPopup=true + m_bAllowSpectatorClickThru=false + m_Name="UIInputPopup" +} diff --git a/Development/Src/TgClient/Classes/UIInteractable_Button.uc b/Development/Src/TgClient/Classes/UIInteractable_Button.uc new file mode 100644 index 0000000..97cdf5f --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_Button.uc @@ -0,0 +1,3 @@ +class UIInteractable_Button extends UIComponent_Interactable + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIInteractable_Button_ChampUnlock.uc b/Development/Src/TgClient/Classes/UIInteractable_Button_ChampUnlock.uc new file mode 100644 index 0000000..50aeefe --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_Button_ChampUnlock.uc @@ -0,0 +1,10 @@ +class UIInteractable_Button_ChampUnlock extends UIInteractable_Button_Price + native(UIComponent) + config(Engine); + +defaultproperties +{ + m_sPriceLoadNames[0]="Price0" + m_sPriceLoadNames[1]="Price1" + m_sPriceLoadNames[2]="Price2" +} diff --git a/Development/Src/TgClient/Classes/UIInteractable_Button_GamepadPrompt.uc b/Development/Src/TgClient/Classes/UIInteractable_Button_GamepadPrompt.uc new file mode 100644 index 0000000..4bc9860 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_Button_GamepadPrompt.uc @@ -0,0 +1,6 @@ +class UIInteractable_Button_GamepadPrompt extends UIInteractable_Button + native(UIComponent) + config(Engine); + +var protected GFxObject m_mcPrompt; +var protected int m_nOptionCBHandle; diff --git a/Development/Src/TgClient/Classes/UIInteractable_Button_ItemPrice.uc b/Development/Src/TgClient/Classes/UIInteractable_Button_ItemPrice.uc new file mode 100644 index 0000000..b8d7a3d --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_Button_ItemPrice.uc @@ -0,0 +1,3 @@ +class UIInteractable_Button_ItemPrice extends UIInteractable_Button_Price + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIInteractable_Button_Price.uc b/Development/Src/TgClient/Classes/UIInteractable_Button_Price.uc new file mode 100644 index 0000000..e303975 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_Button_Price.uc @@ -0,0 +1,16 @@ +class UIInteractable_Button_Price extends UIInteractable_Button + native(UIComponent) + config(Engine); + +const BUTTON_PRICE_NUM_PRICES = 3; + +var protected GFxObject m_mcPrices[3]; +var protected string m_sPriceLoadNames[3]; +var private int m_nPriceIndex; + +defaultproperties +{ + m_sPriceLoadNames[0]="PriceA" + m_sPriceLoadNames[1]="PriceB" + m_sPriceLoadNames[2]="PriceC" +} diff --git a/Development/Src/TgClient/Classes/UIInteractable_Item.uc b/Development/Src/TgClient/Classes/UIInteractable_Item.uc new file mode 100644 index 0000000..3d5ee92 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_Item.uc @@ -0,0 +1,20 @@ +class UIInteractable_Item extends UIComponent_Interactable + native(UIComponent) + config(Engine); + +enum DisplayOverride { + eDO_None, // 0 + eDO_Owned, // 1 + eDO_Unowned, // 2 +}; + +var GFxObject m_mcPrice; +var GFxObject m_mcGlow; +var GFxObject m_mcCTA; +var protected bool m_bShowChampion; + +defaultproperties +{ + m_sLoadName="Talent" + m_sConstructName="Talent" +} diff --git a/Development/Src/TgClient/Classes/UIInteractable_JsonPanel.uc b/Development/Src/TgClient/Classes/UIInteractable_JsonPanel.uc new file mode 100644 index 0000000..7570fdc --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_JsonPanel.uc @@ -0,0 +1,11 @@ +class UIInteractable_JsonPanel extends UIComponent_Interactable + native(UIComponent) + config(Engine) + dependson(UILandingPanelManager); + +var GFxObject m_mcHighlight; +var GFxObject m_mcImage; +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcLiveBanner; +var JsonFeatureData m_JsonFeatureData; diff --git a/Development/Src/TgClient/Classes/UIInteractable_JsonPanel_Carousel.uc b/Development/Src/TgClient/Classes/UIInteractable_JsonPanel_Carousel.uc new file mode 100644 index 0000000..69d4abc --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_JsonPanel_Carousel.uc @@ -0,0 +1,30 @@ +class UIInteractable_JsonPanel_Carousel extends UIInteractable_JsonPanel + native(UIComponent) + config(Engine) + dependson(UILandingPanelManager); + +var GFxObject m_mcNavControlsRoot; +var UIInteractable_Button m_mcLeftArrow; +var UIInteractable_Button m_mcRightArrow; +var GFxObject m_mcLeftButtonPrompt; +var GFxObject m_mcRightButtonPrompt; +var GFxObject m_mcImage2; +var bool m_bOnImage2; +var bool m_bPauseAutoRotation; +var int m_nIndex; +var UIInteractable_Button m_mcActivate; +var array m_NavDots; +var float m_fNavDotCenter; +var init array m_CarouselJsonFeatureData; +var float m_fDotPlacementX; +var float m_fDotWidth; +var float m_fDotPadding; +var float m_fAutoRotationTime; +var float m_fAutoRotationDelay; +var name m_GamepadLeftKey; +var name m_GamepadRightKey; + +defaultproperties +{ + m_fAutoRotationDelay=5.0000000 +} diff --git a/Development/Src/TgClient/Classes/UIInteractable_NavPanel.uc b/Development/Src/TgClient/Classes/UIInteractable_NavPanel.uc new file mode 100644 index 0000000..5d42a37 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_NavPanel.uc @@ -0,0 +1,8 @@ +class UIInteractable_NavPanel extends UIComponent_Interactable + native(UIComponent) + config(Engine); + +var GFxObject m_mcHighlight; +var GFxObject m_mcTitle; +var GFxObject m_mcIcon; +var GFxObject m_mcCTA; diff --git a/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Play.uc b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Play.uc new file mode 100644 index 0000000..ecce303 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Play.uc @@ -0,0 +1,22 @@ +class UIInteractable_NavPanel_Play extends UIInteractable_NavPanel + native(UIComponent) + config(Engine); + +var float m_fFlareScaleTime[4]; +var float m_fFlareAlphaTime[5]; +var float m_fFlareScaleTimer[4]; +var float m_fFlareAlphaTimer[5]; +var GFxObject m_mcFlare; + +defaultproperties +{ + m_fFlareScaleTime[0]=3.0000000 + m_fFlareScaleTime[1]=0.5000000 + m_fFlareScaleTime[2]=1.2500000 + m_fFlareScaleTime[3]=0.2083330 + m_fFlareAlphaTime[0]=3.0000000 + m_fFlareAlphaTime[1]=0.0833330 + m_fFlareAlphaTime[2]=0.4166660 + m_fFlareAlphaTime[3]=1.2500000 + m_fFlareAlphaTime[4]=0.2083330 +} diff --git a/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Quests.uc b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Quests.uc new file mode 100644 index 0000000..9f124ad --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Quests.uc @@ -0,0 +1,6 @@ +class UIInteractable_NavPanel_Quests extends UIInteractable_NavPanel + native(UIComponent) + config(Engine); + +var GFxObject m_mcTextRoot; +var GFxObject m_mcCountdownTF; diff --git a/Development/Src/TgClient/Classes/UIInteractable_NavPanel_QuestsLocked.uc b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_QuestsLocked.uc new file mode 100644 index 0000000..924d006 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_QuestsLocked.uc @@ -0,0 +1,5 @@ +class UIInteractable_NavPanel_QuestsLocked extends UIInteractable_NavPanel + native(UIComponent) + config(Engine); + +var GFxObject m_mcQuestAccountLevelProgressMask; diff --git a/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Queued.uc b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Queued.uc new file mode 100644 index 0000000..764de21 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIInteractable_NavPanel_Queued.uc @@ -0,0 +1,7 @@ +class UIInteractable_NavPanel_Queued extends UIInteractable_NavPanel + native(UIComponent) + config(Engine); + +var GFxObject m_mcSubtitle; +var UIInteractable_Button_GamepadPrompt m_Cancel; +var GFxObject m_mcHighlightCancel; diff --git a/Development/Src/TgClient/Classes/UIItemLarge.uc b/Development/Src/TgClient/Classes/UIItemLarge.uc new file mode 100644 index 0000000..81370bf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIItemLarge.uc @@ -0,0 +1,9 @@ +class UIItemLarge extends Object + native + config(Engine); + +var GFxObject m_ItemLarge; +var GFxObject m_mcItemOwnedText; +var GFxObject m_mcItemRentedText; +var GFxObject m_mcItemRentedTextLabel; +var GFxObject m_mcItemRentedTextTime; diff --git a/Development/Src/TgClient/Classes/UILandingPanelManager.uc b/Development/Src/TgClient/Classes/UILandingPanelManager.uc new file mode 100644 index 0000000..50bea02 --- /dev/null +++ b/Development/Src/TgClient/Classes/UILandingPanelManager.uc @@ -0,0 +1,28 @@ +class UILandingPanelManager extends PComUIManagerBase + native + config(Engine); + +struct JsonFeatureData { + var init string sId; + var init string sHeader; + var init string sDesc; + var init string sData; + var int nProbability; + var int nType; + var int nXpos; + var int nYpos; + var int nWidth; + var int nHeight; + var bool bIsUsed; + var bool bIsLive; + var Texture2DDynamic Texture; + structdefaultproperties {} +}; + +struct JsonDiscountData { + var int nPackId; + var int nDiscountPct; + structdefaultproperties {} +}; + +var UIGameMoviePlayer m_pMovie; diff --git a/Development/Src/TgClient/Classes/UILeaderboard.uc b/Development/Src/TgClient/Classes/UILeaderboard.uc new file mode 100644 index 0000000..655e16c --- /dev/null +++ b/Development/Src/TgClient/Classes/UILeaderboard.uc @@ -0,0 +1,12 @@ +class UILeaderboard extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UILeaderboard' + m_OptionList[0]=249 + m_nBackground=1 + m_bAllowMultipleOnStack=false + m_Name="UILeaderboard" +} diff --git a/Development/Src/TgClient/Classes/UILobbyChat.uc b/Development/Src/TgClient/Classes/UILobbyChat.uc new file mode 100644 index 0000000..04472fc --- /dev/null +++ b/Development/Src/TgClient/Classes/UILobbyChat.uc @@ -0,0 +1,20 @@ +class UILobbyChat extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UILOBBYCHAT_ARROWS = 2; + +var int m_nDepth; +var int m_nPosition; +var int m_nOpenIdentity; +var string m_sLocalTabName; +var GFxObject m_mcArrow[2]; +var GFxObject m_mcArrowNotify[2]; +var array m_mcTabs; + +defaultproperties +{ + m_sLocalTabName="LocalChatTab" + m_eSnappingType=UISNAPPING_BOT + m_Name="UILobbyChat" +} diff --git a/Development/Src/TgClient/Classes/UILogin.uc b/Development/Src/TgClient/Classes/UILogin.uc new file mode 100644 index 0000000..130bbdd --- /dev/null +++ b/Development/Src/TgClient/Classes/UILogin.uc @@ -0,0 +1,68 @@ +class UILogin extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +enum UILoginState { + UILS_NONE, // 0 + UILS_INPUT, // 1 + UILS_WAITING, // 2 + UILS_LOADING, // 3 + UILS_EULA, // 4 + UILS_CREATE, // 5 + UILS_TRYCREATE, // 6 + UILS_LOGGEDIN, // 7 +}; + +var int m_nScroll; +var byte m_eState; +var bool m_bAnimLogo; +var bool m_bSaveName; +var bool m_bHaveInput; +var float m_fRotation; +var float m_fAnimTimer; +var float m_fLoginTimer; +var float m_fLoadingTimer; +var float m_fTextTimerIn; +var float m_fTextTimerOut; +var GFxObject m_mcFade; +var GFxObject m_mcLogo; +var GFxObject m_mcInput; +var GFxObject m_mcInputName; +var GFxObject m_mcInputPass; +var GFxObject m_mcInputSave; +var GFxObject m_mcInputCaps; +var GFxObject m_mcInputLogin; +var GFxObject m_mcInputMessage; +var GFxObject m_mcQueue; +var GFxObject m_mcVersion; +var GFxObject m_mcLoginMsg; +var GFxObject m_mcCreate; +var GFxObject m_mcCreateError; +var GFxObject m_mcCreateInput; +var GFxObject m_mcCreateSubmit; +var GFxObject m_mcCreateCancel; +var GFxObject m_mcLoading; +var GFxObject m_mcLoadingTF; +var GFxObject m_mcLoadingFrame; +var GFxObject m_mcLoadingAnimA; +var GFxObject m_mcLoadingAnimB; +var GFxObject m_mcEULA; +var GFxObject m_mcEULATF; +var GFxObject m_mcEULATitle; +var GFxObject m_mcEULAAccept; +var GFxObject m_mcEULADecline; +var GFxObject m_mcEULAGamepadBtns[2]; +var GFxObject m_mcConsoleLogin; +var GFxObject m_mcConsoleLoginPrompt; +var GFxObject m_mcConsoleLoginChangeUser; +var GFxObject m_mcConsoleLoginFeedback; +var array m_sEULA; + +defaultproperties +{ + m_bAnimLogo=true + m_OptionList[0]=14 + m_OptionList[1]=4 + m_bBlur=true + m_Name="UILogin" +} diff --git a/Development/Src/TgClient/Classes/UIMatchInvite.uc b/Development/Src/TgClient/Classes/UIMatchInvite.uc new file mode 100644 index 0000000..705698b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIMatchInvite.uc @@ -0,0 +1,68 @@ +class UIMatchInvite extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIMATCHINVITE_PLAYERS = 10; + +var int m_nAccepted; +var bool m_bFailed; +var bool m_bAccepted; +var float m_fTimerWidth; +var float m_fTimeoutTime; +var float m_fTimeoutTimer; +var float m_fFailedTime; +var float m_fFailedTimer; +var float m_fInviteGracePeriod; +var GFxObject m_mcStandard; +var GFxObject m_mcStandardFade; +var GFxObject m_mcStandardBacks; +var GFxObject m_mcStandardTimer; +var GFxObject m_mcStandardTimerBack; +var GFxObject m_mcStandardButton; +var GFxObject m_mcStandardBlocker; +var GFxObject m_mcStandardWaiting; +var GFxObject m_mcStandardJoining; +var GFxObject m_mcStandardSpinner; +var GFxObject m_mcStandardSubtitle; +var GFxObject m_mcStandardFailedTF; +var GFxObject m_mcStandardPrompt; +var GFxObject m_mcStandardPlayer[10]; +var GFxObject m_mcStandardFailed[10]; +var GFxObject m_mcVote; +var GFxObject m_mcVoteFade; +var GFxObject m_mcVoteTimer; +var GFxObject m_mcVoteTimerBack; +var GFxObject m_mcVoteTitle; +var GFxObject m_mcVoteButton[4]; +var GFxObject m_mcVoteBox[4]; +var GFxObject m_mcVoteBoxName[4]; +var GFxObject m_mcVoteBoxGame[4]; +var GFxObject m_mcVoteBoxShadow[4]; +var GFxObject m_mcVoteBlocker; +var GFxObject m_mcVoteWaiting; +var GFxObject m_mcVoteJoining; +var GFxObject m_mcVoteSpinner; +var GFxObject m_mcVoteSubtitle; +var GFxObject m_mcVoteFailedTF; +var GFxObject m_mcVotePlayer[10]; +var GFxObject m_mcVoteFailed[10]; +var TgGFxGroup m_grScene; +var AkBaseSoundObject m_akShown; +var AkBaseSoundObject m_akSelect; +var ForceFeedbackWaveform m_QueuePopWaveform; + +defaultproperties +{ + m_fTimeoutTime=30.0000000 + m_fFailedTime=5.0000000 + m_fInviteGracePeriod=1.0000000 + m_akShown=AkEvent'UI_Lobby_MatchFound_Play' + m_akSelect=AkEvent'UI_Lobby_MatchInvite_PlayerJoin_Play' + m_QueuePopWaveform=ForceFeedbackWaveform'QueuePopForceFeedback' + m_UISceneClass=Class'UIScene_SceneAsPopup' + m_OptionList[0]=1 + m_nBackground=1 + m_bBlur=true + m_bIsPopup=true + m_Name="UIMatchInvite" +} diff --git a/Development/Src/TgClient/Classes/UIMatchLobby.uc b/Development/Src/TgClient/Classes/UIMatchLobby.uc new file mode 100644 index 0000000..bff5c17 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIMatchLobby.uc @@ -0,0 +1,278 @@ +class UIMatchLobby extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Game); + +const UIMATCHLOBBY_TEAMS = 2; + +const UIMATCHLOBBY_PLAYERS = 5; + +const UIMATCHLOBBY_MAXPICKS = 2; + +const UIMATCHLOBBY_CHAMPIONS = 39; + +const UIMATCHLOBBY_CHAMPION_ROWS = 3; + +const UIMATCHLOBBY_ROLE_TABS = 5; + +const UIMATCHLOBBY_ARCHETYPES = 4; + +const UIMATCHLOBBY_ROLETYPES = 4; + +const UIMATCHLOBBY_CUSTOMIZES = 8; + +const UIMATCHLOBBY_SELECTIONS = 16; + +const UIMATCHLOBBY_TIMERSTATE = 4; + +const UIMATCHLOBBY_INDEXSTATE = 2; + +const UIMATCHLOBBY_BAN_COUNT = 3; + +const UIMATCHLOBBY_TEAM_TIPS = 2; + +enum UIMatchLobbyDisplayState { + UIMLS_Champions, // 0 + UIMLS_Choose_Champion_Me, // 1 + UIMLS_Chosen_Not_Locked, // 2 + UIMLS_LockIn, // 3 + UIMLS_Customize, // 4 + UIMLS_Banning_Me, // 5 + UIMLS_Banning_Team, // 6 + UIMLS_Banning_Enemy, // 7 +}; + +enum UIPLAYERMATCHSTATE { + UICPS_NONE, // 0 + UICPS_WAITING, // 1 + UICPS_PICKING, // 2 + UICPS_PICKED, // 3 +}; + +enum UITRADINGSTATE { + UITRS_NONE, // 0 + UITRS_WAITING, // 1 + UITRS_PENDING, // 2 +}; + +enum UICHAMPIONMATCHSTATE { + UICMS_NONE, // 0 + UICMS_LOCKED, // 1 + UICMS_AVAILABLE, // 2 + UICMS_CHOSEN, // 3 + UICMS_BANNED, // 4 +}; + +struct UICHAMPIONMATCHDATA { + var int nBotId; + var byte eState; + structdefaultproperties {} +}; + +struct UIMatchLobbyPlayerCustomize { + var int nBotId; + var int nSkinId; + var int nHeadId; + var int nWeaponDeviceId; + var int nWeaponSkinId; + var int nVoiceId; + var int nEmoteId; + var int nMVPPoseId; + var int nSprayId; + var int nPedestalSkinId; + structdefaultproperties {} +}; + +struct UIPLAYERMATCHDATA { + var int nPlayerId; + var int nIndex; + var byte eState; + var bool bLocal; + var bool bRed; + var float fArrowTimer; + var float fShowTimerA; + var float fShowTimerB; + var float fPlayerTimer[4]; + structdefaultproperties {} +}; + +struct UIMatchLobbyChampionDisplayData { + var Pointer ChampionData; + var GFxObject Champion; + var GFxObject ChampionIcon; + var GFxObject ChampionFrame; + var GFxObject ChampionRented; + var GFxObject ChampionRotation; + var GFxObject ChampionRecommended; + var GFxObject ChampionClassIcon; + structdefaultproperties {} +}; + +struct UIMatchLobbyTeam { + var GFxObject mcTeam; + var GFxObject mcPlayer[5]; + var GFxObject mcPlayerHighlight[5]; + var GFxObject mcPlayerGlow[5]; + var GFxObject mcPlayerName[5]; + var GFxObject mcPlayerIcon[5]; + var GFxObject mcPlayerFrame[5]; + var GFxObject mcPlayerClass[5]; + var GFxObject mcPlayerClassIcon[5]; + var GFxObject mcPlayerTitle[5]; + var GFxObject mcPlayerTrade[5]; + var GFxObject mcPlayerSelect[5]; + var GFxObject mcPlayerLocked[5]; + var GFxObject mcPlayerArrows[5]; + var GFxObject mcPlayerChampion[5]; + var GFxObject mcPlayerIconAnim[5]; + var GFxObject mcPlayerFrameAnim[5]; + var GFxObject mcPlayerChampionAnim[5]; + var GFxObject mcPlayerSpeakingIcon[5]; + var GFxObject mcPlayerMuteVoice[5]; + var TgGFxGroup grPlayers; + structdefaultproperties {} +}; + +var UIComponent_HoldPrompt m_HoldPrompt; +var UIMatchLobby.UIMatchLobbyDisplayState m_eMatchLobbyDisplayState; +var byte m_bFriendlyArchetypeSelected[4]; +var byte m_bEnemyArchetypeSelected[4]; +var byte m_eChampionFilterState; +var UIMatchLobby.UITRADINGSTATE m_eTradingState; +var int m_nPickRed[2]; +var int m_nPickBlue[2]; +var int m_nMatchTimer; +var int m_bCanTrade[5]; +var int m_nBanSelection; +var array m_nBannedChampionsAuto; +var array m_nBannedChampionsBlue; +var array m_nBannedChampionsRed; +var bool m_bFirstPick; +var bool m_bFirstShow; +var bool m_bCustomize; +var bool m_bCustomizeHide; +var bool m_bSelection; +var bool m_bShowTeams; +var bool m_bNextTeams; +var bool m_bShowChampions; +var bool m_bChoseClass; +var float m_fPickAnimTimer; +var float m_fChampOrigScaleX; +var float m_fChampOrigScaleY; +var float m_fRedTitleTimer[4]; +var float m_fRedSubtitleTimer[4]; +var float m_fBlueTitleTimer[4]; +var float m_fBlueSubtitleTimer[4]; +var float m_fChampionsTimer[4]; +var string m_sRedPickTitle[2]; +var string m_sBluePickTitle[2]; +var string m_sRedPickSubtitle; +var string m_sBluePickSubtitle; +var array m_vPlayerData; +var array m_vChampionData; +var UIMatchLobbyPlayerCustomize m_AllyCustomize[5]; +var UIInteractable_Button m_ChampionCustomizeButton; +var UIPopup_MatchLobbyCustomizeNew m_Customize; +var GFxObject m_mcFooter; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderTime; +var GFxObject m_mcHeaderTitle; +var GFxObject m_mcHeaderTeamCompBlue[4]; +var GFxObject m_mcHeaderTeamCompBlueWarning[4]; +var GFxObject m_mcHeaderTeamCompBlueClassInactive[4]; +var GFxObject m_mcHeaderTeamCompBlueClassActive[4]; +var GFxObject m_mcHeaderTeamCompRed[4]; +var GFxObject m_mcHeaderTeamCompRedClassInactive[4]; +var GFxObject m_mcHeaderTeamCompRedClassActive[4]; +var GFxObject m_mcHeaderTeamTip[2]; +var GFxObject m_mcHeaderTeamTipTF[2]; +var GFxObject m_mcHeaderTeamTipClassIcon[2]; +var GFxObject m_mcHeaderTeamTipClassIconFlash[2]; +var int m_nTeamTipArchetypePriorities[4]; +var GFxObject m_mcPickRed; +var GFxObject m_mcPickRedTitle[2]; +var GFxObject m_mcPickRedSubtitle; +var GFxObject m_mcPickBlue; +var GFxObject m_mcPickBlueTitle[2]; +var GFxObject m_mcPickBlueSubtitle; +var GFxObject m_mcTrade; +var GFxObject m_mcTradeTitle; +var GFxObject m_mcTradeCancel; +var GFxObject m_mcTradeAccept; +var GFxObject m_mcTradeBlocker; +var GFxObject m_mcTradeWaiting; +var GFxObject m_mcTradeIconA; +var GFxObject m_mcTradeIconB; +var GFxObject m_mcTradeFrameA; +var GFxObject m_mcTradeFrameB; +var GFxObject m_mcTradePlayerA; +var GFxObject m_mcTradePlayerB; +var TgGFxGroup m_grTradePopup; +var UIMatchLobbyTeam m_Team[2]; +var UIMatchLobbyTeam m_TeamNew[2]; +var GFxObject m_mcChampionName; +var GFxObject m_mcChampionTitle; +var GFxObject m_mcChampionClassIcon; +var GFxObject m_mcLockIn; +var GFxObject m_mcBack; +var GFxObject m_mcChampions; +var GFxObject m_mcChampionsNew; +var GFxObject m_mcChampionsPickNew; +var GFxObject m_mcChampionsGroupNew; +var GFxObject m_mcChampionsPickAnimANew; +var GFxObject m_mcChampionsPickAnimBNew; +var GFxObject m_mcChampionsDimmer; +var TgGFxGroup m_grChampion; +var GFxObject m_mcTeamBlueNew; +var GFxObject m_mcTeamRedNew; +var GFxObject m_mcBanRedTF; +var GFxObject m_mcBanBlueTF; +var GFxObject m_mcRedBans[3]; +var GFxObject m_mcRedBansPortrait[3]; +var GFxObject m_mcRedBansFrame[3]; +var GFxObject m_mcRedBansIcon[3]; +var GFxObject m_mcBlueBans[3]; +var GFxObject m_mcBlueBansPortrait[3]; +var GFxObject m_mcBlueBansFrame[3]; +var GFxObject m_mcBlueBansIcon[3]; +var GFxObject m_mcMap; +var GFxObject m_mcMapName; +var GFxObject m_mcMapMode; +var GFxObject m_mcMapIcon; +var GFxObject m_mcRoleTabs[5]; +var GFxObject m_mcRoleTabsClassIcon[5]; +var GFxObject m_mcRoleTabsSelected[5]; +var GFxObject m_mcRoleTabsTF[5]; +var GFxObject m_mcRoleTabsWarning[5]; +var GFxObject m_mcRoleTabsBumper[2]; +var UIMatchLobbyChampionDisplayData m_ChampionDisplays[39]; +var int m_nArchetypePedestalSkinIds[4]; +var AkBaseSoundObject m_akSelect; +var AkBaseSoundObject m_akRollover; +var AkBaseSoundObject m_akTabChange; +var AkBaseSoundObject m_akCountdown; +var AkBaseSoundObject m_akLockInSelf; +var AkBaseSoundObject m_akLockInEnemy; +var AkBaseSoundObject m_akLockInFriend; +var int m_PreviousLobbyState; +var int m_CurrentLobbyState; +var config array m_nTencentRecommendedChampions; + +defaultproperties +{ + m_nBanSelection=-1 + m_nTeamTipArchetypePriorities[1]=2 + m_nTeamTipArchetypePriorities[2]=1 + m_nTeamTipArchetypePriorities[3]=3 + m_akSelect=AkEvent'UI_Lobby_MatchSetUp_CharSelect_Play' + m_akRollover=AkEvent'UI_Lobby_MatchSetUp_CheckBox_Play' + m_akTabChange=AkEvent'UI_Lobby_MatchSetUp_Customize_SwitchTabs_Play' + m_akCountdown=AkEvent'UI_Lobby_MatchSetUp_Countdown_Play' + m_akLockInSelf=AkEvent'UI_Lobby_MatchSetUp_LockIn_Self_Play' + m_akLockInEnemy=AkEvent'UI_Lobby_MatchSetUp_LockIn_EnemyTeam_Play' + m_akLockInFriend=AkEvent'UI_Lobby_MatchSetUp_LockIn_Team_Play' + m_nTencentRecommendedChampions[0]=2249 + m_nTencentRecommendedChampions[1]=2277 + m_nTencentRecommendedChampions[2]=2071 + m_UISceneClass=Class'UIScene_UIMatchLobby' + m_Name="UIMatchLobby" +} diff --git a/Development/Src/TgClient/Classes/UIMenuManager.uc b/Development/Src/TgClient/Classes/UIMenuManager.uc new file mode 100644 index 0000000..bde5dac --- /dev/null +++ b/Development/Src/TgClient/Classes/UIMenuManager.uc @@ -0,0 +1,13 @@ +class UIMenuManager extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var UIComponent_PopupManager m_pPopupManager; + +defaultproperties +{ + m_bVisibleOnLoad=true + m_bResize=false + m_bAlwaysKeepOpen=true + m_Name="UIMenuManager" +} diff --git a/Development/Src/TgClient/Classes/UIMoviePlayer.uc b/Development/Src/TgClient/Classes/UIMoviePlayer.uc new file mode 100644 index 0000000..f9eacdc --- /dev/null +++ b/Development/Src/TgClient/Classes/UIMoviePlayer.uc @@ -0,0 +1,90 @@ +class UIMoviePlayer extends GFxMoviePlayer + native + config(UI); + +var int m_nLastTimerIndex; +var bool m_bInitialized; +var bool m_bInTransition; +var bool m_bResizeForSafeZones; +var GFxObject m_mcRoot; +var GFxObject m_mcGlobal; +var TgDataHandler m_DataHandler; +var TgTimerManager m_TimerManager; +var Class m_DataHandlerClass; +var native Pointer m_pTgCallbackDevice; +var native Pointer m_pKeybindLookup; +var OnlineSubsystem OnlineSub; +var OnlineGameInterface GameInterface; +var OnlineVoiceInterface VoiceInterface; +var OnlinePlayerInterface PlayerInterface; +var OnlineContentInterface ContentInterface; +var OnlinePlayerInterfaceEx PlayerInterfaceEx; +var OnlineMarketplaceInterface MarketplaceInterface; + +delegate DelegateOnMarshalEvent(Pointer pMarEvent); + +native function TgClientHUD GetHUD(); // Export UUIMoviePlayer::execGetHUD(FFrame&, void* const) + +native function TgPlayerController GetPlayerOwner(); // Export UUIMoviePlayer::execGetPlayerOwner(FFrame&, void* const) + +native event OnClose(); // Export UUIMoviePlayer::execOnClose(FFrame&, void* const) + +native function PostInit(); // Export UUIMoviePlayer::execPostInit(FFrame&, void* const) + +native function InitializeDataHandler(); // Export UUIMoviePlayer::execInitializeDataHandler(FFrame&, void* const) + +native function NativeTick(float DeltaTime); // Export UUIMoviePlayer::execNativeTick(FFrame&, void* const) + +native function bool RegisterMarshalCallback(); // Export UUIMoviePlayer::execRegisterMarshalCallback(FFrame&, void* const) + +native function UnregisterMarshalCallback(); // Export UUIMoviePlayer::execUnregisterMarshalCallback(FFrame&, void* const) + +native function OnMarshalEvent(Pointer pMarEvent); // Export UUIMoviePlayer::execOnMarshalEvent(FFrame&, void* const) + +native function UpdateViewportForSafeAreas(); // Export UUIMoviePlayer::execUpdateViewportForSafeAreas(FFrame&, void* const) + +native function string GetTranslatedKeyBind(string Command, optional int nAlternate=0, optional bool bLocalizeKB=true, optional bool bLocalizeMouse=true, optional bool bLocalizeGamepad=true); // Export UUIMoviePlayer::execGetTranslatedKeyBind(FFrame&, void* const) + +native function RegisterEngineCallbacks(); // Export UUIMoviePlayer::execRegisterEngineCallbacks(FFrame&, void* const) + +native function UnregisterEngineCallbacks(); // Export UUIMoviePlayer::execUnregisterEngineCallbacks(FFrame&, void* const) + +native function QuitGame(); // Export UUIMoviePlayer::execQuitGame(FFrame&, void* const) + +native function usc_Data_Handler_Created(); // Export UUIMoviePlayer::execusc_Data_Handler_Created(FFrame&, void* const) + +native function usc_Console_Command(string Cmd); // Export UUIMoviePlayer::execusc_Console_Command(FFrame&, void* const) + +native function usc_toggle_cursor(bool bShow); // Export UUIMoviePlayer::execusc_toggle_cursor(FFrame&, void* const) + +native function usc_toggle_key_capture(bool bCapture); // Export UUIMoviePlayer::execusc_toggle_key_capture(FFrame&, void* const) + +native exec function ShowTransitionScene(bool bShow); // Export UUIMoviePlayer::execShowTransitionScene(FFrame&, void* const) + +native exec function string usc_TranslateMsgId(int nId); // Export UUIMoviePlayer::execusc_TranslateMsgId(FFrame&, void* const) + +native exec function string usc_TranslateMsg(string Identifier, string SectionName); // Export UUIMoviePlayer::execusc_TranslateMsg(FFrame&, void* const) + +native exec function bool usc_IME_SetEnabled(bool bEnabled); // Export UUIMoviePlayer::execusc_IME_SetEnabled(FFrame&, void* const) + +native exec function bool usc_IME_Exists(); // Export UUIMoviePlayer::execusc_IME_Exists(FFrame&, void* const) + +event Tick(float DeltaTime) { } + +event Init(optional LocalPlayer LocPlay) { } + +function InitOSSRef() { } + +exec function string usc_ClipboardPaste() { } + +exec function usc_ClipboardCopy(string Str) { } + +event SetMarketplaceVisibility(bool Visible) { } + +defaultproperties +{ + m_nLastTimerIndex=1 + m_bResizeForSafeZones=true + m_DataHandlerClass=Class'TgDataHandler' + bAutoPlay=true +} diff --git a/Development/Src/TgClient/Classes/UINotificationCenter.uc b/Development/Src/TgClient/Classes/UINotificationCenter.uc new file mode 100644 index 0000000..eb65cc7 --- /dev/null +++ b/Development/Src/TgClient/Classes/UINotificationCenter.uc @@ -0,0 +1,99 @@ +class UINotificationCenter extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(TgData_Notifications); + +const MAX_TABS = 8; + +const MAX_ENTRIES = 6; + +const MAX_COUPON_ENTRIES = 4; + +struct Tab { + var GFxObject mcRoot; + var GFxObject mcTf; + var GFxObject mcSelected; + var GFxObject mcNewIcon; + var GFxObject mcNewCountTf; + var init string sUrl; + var int nCTACount; + structdefaultproperties {} +}; + +struct Entry { + var GFxObject mcRoot; + var GFxObject mcRootButton; + var GFxObject mcTitleTf; + var GFxObject mcDescTf; + var GFxObject mcTimestampTf; + var GFxObject mcCategoryTf; + var GFxObject mcClose; + var GFxObject mcButton; + var GFxObject mcNewIcon; + var GFxObject mcNewTf; + var GFxObject mcItemImageStack; + var GFxObject mcCardImageStack; + var GFxObject mcChestImageStack; + var GFxObject mcTexture; + structdefaultproperties {} +}; + +struct CouponEntry { + var GFxObject mcRoot; + var GFxObject mcRootButton; + var GFxObject mcTitle; + var GFxObject mcExpiration; + var GFxObject mcCostCurrent; + var GFxObject mcCostCurrentIcon; + var GFxObject mcCostPrev; + var GFxObject mcCostPrevIcon; + var GFxObject mcCostPrevStrike; + var GFxObject mcCTA; + var GFxObject mcCTAText; + var GFxObject mcButton; + var GFxObject mcItemImageStack; + var GFxObject mcCardImageStack; + var GFxObject mcChestImageStack; + var GFxObject mcTexture; + structdefaultproperties {} +}; + +var array m_Tabs; +var array m_TabLabels; +var array m_Entries; +var array m_CouponEntries; +var int m_nCurrentTab; +var int m_nLastTab; +var int m_nScrollPos; +var GFxObject m_mcCloseButton; +var GFxObject m_mcClearButton; +var GFxObject m_mcRoot; +var GFxObject m_mcNotificationCenterPanel; +var GFxObject m_mcWebPanel; +var GFxObject m_mcScrollBar; +var GFxObject m_mcCouponPanel; +var GFxObject m_mcCouponTitle; +var GFxObject m_mcCouponScrollbar; +var TgData_Notifications.NotificationType m_eFilterByType; +var UIComponent_Dropdown m_FilterDropdown; +var init native array m_DropdownOptions; +var UIComponent_DailyRewards m_DailyRewards; +var TgGFxGroup m_grpTabs; +var TgGFxGroup m_grpEntries; +var TgGFxGroup m_grpCouponEntries; +var bool m_bInCouponPurchase; + +defaultproperties +{ + m_TabLabels[0]="m_lsTabNotifications" + m_TabLabels[1]="m_lsTabDailyRewards" + m_TabLabels[2]="m_lsTabCoupons" + m_nLastTab=-1 + m_UISceneClass=Class'UIScene_UINotificationCenter' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_bBlur=true + m_bIsPopup=true + m_bAllowMultipleOnStack=false + m_Name="UINotificationCenter" +} diff --git a/Development/Src/TgClient/Classes/UINotificationCenterJsonManager.uc b/Development/Src/TgClient/Classes/UINotificationCenterJsonManager.uc new file mode 100644 index 0000000..154ca8c --- /dev/null +++ b/Development/Src/TgClient/Classes/UINotificationCenterJsonManager.uc @@ -0,0 +1,12 @@ +class UINotificationCenterJsonManager extends PComUIManagerBase + native + config(Engine); + +struct TabInfo { + var init string sTitle; + var init string sUrl; + structdefaultproperties {} +}; + +var array m_WebPanelUrls; +var UIGameMoviePlayer m_pMovie; diff --git a/Development/Src/TgClient/Classes/UIObject.uc b/Development/Src/TgClient/Classes/UIObject.uc new file mode 100644 index 0000000..5242652 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIObject.uc @@ -0,0 +1,3 @@ +class UIObject extends GFxObject within GFxMoviePlayer + native + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIPlay.uc b/Development/Src/TgClient/Classes/UIPlay.uc new file mode 100644 index 0000000..b8251f5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPlay.uc @@ -0,0 +1,97 @@ +class UIPlay extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIPLAY_MAX_MODE_QUEUES = 10; + +const UIPLAY_EXTRAS = 32; + +const UIPLAY_BUTTONS = 6; + +const UIPLAY_WIP_REQUIRED_LEVEL = 15; + +const UIPLAY_PVE_REQUIRED_LEVEL = 15; + +const QUEST_PANEL_PROGRESS_BAR_EMPTY_FRAME = 43; + +const QUEST_PANEL_PROGRESS_BAR_FULL_FRAME = 315; + +const UIPLAY_DEFAULT_NUM_PANELS = 6; + +const UIPLAY_MAIN_PLAY_PANELS = 5; + +const UIPLAY_MULTIQUEUE_PLAY_PANELS = 5; + +const UIPLAY_TRAINING_PLAY_PANELS = 5; + +const UIPLAY_NUM_FWOTD_ICONS = 3; + +const UIPLAY_VISIBLE_REGION_ENTRIES = 6; + +const UIPLAY_MAX_REGION_ENTRIES = 12; + +enum UIPLAYSTATE { + UIPS_NONE, // 0 + UIPS_CASUAL, // 1 + UIPS_COMPETITIVE, // 2 + UIPS_TRAINING, // 3 +}; + +enum GameModeType { + GMT_SIEGE, // 0 + GMT_PAYLOAD, // 1 + GMT_WIP, // 2 + GMT_PVE, // 3 +}; + +var bool m_bPopup; +var array m_nExtras; +var int m_nWOTDCompleted; +var int m_bWOTDComplete[10]; +var GFxObject m_mcHiRezPanel; +var GFxObject m_mcBack; +var GFxObject m_mcIcon; +var GFxObject m_mcTitle; +var GFxObject m_mcHeader; +var GFxObject m_mcSubtitle; +var GFxObject m_mcPopup; +var GFxObject m_mcPopupCancel; +var GFxObject m_mcPopupCancelTitle; +var GFxObject m_mcPopupExtra[32]; +var GFxObject m_mcPopupExtraTitle[32]; +var TgGFxGroup m_grPopup; +var GFxObject m_mcCompetitive; +var GFxObject m_mcCompetitiveCancel; +var GFxObject m_mcCompetitiveCancelTitle; +var GFxObject m_mcCompetitiveTitle; +var GFxObject m_mcCompetitiveSubtitle; +var GFxObject m_mcDetails; +var GFxObject m_mcQueueButton; +var GFxObject m_mcMultiqueueDesc; +var GFxObject m_mcModesSelected; +var GFxObject m_mcMultiqueueCursor; +var GFxObject m_mcMultiqueueUpDownIndicator; +var GFxObject m_mcControllerPrompt; +var GFxObject m_mcFWOTD; +var GFxObject m_mcFWOTDGoldMaxTF; +var GFxObject m_mcFWOTDIcons[3]; +var UIComponent_Dropdown m_RegionDropdown; +var GFxObject m_DropButton; +var GFxObject m_mcInputListener; +var GFxObject m_mcWeeklyQuests; +var int m_nQuestIndices[10]; +var const int m_nNumDisplayableQuests; + +defaultproperties +{ + m_nNumDisplayableQuests=5 + m_UISceneClass=Class'UIScene_UIPlay' + m_OptionList[0]=245 + m_OptionList[1]=3 + m_OptionList[2]=0 + m_nBackground=1 + m_bBlur=true + m_bAlwaysTick=true + m_bIsOnline=true + m_Name="UIPlay" +} diff --git a/Development/Src/TgClient/Classes/UIPopup.uc b/Development/Src/TgClient/Classes/UIPopup.uc new file mode 100644 index 0000000..6ea5838 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPopup.uc @@ -0,0 +1,16 @@ +class UIPopup extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIPopupGeneric' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=1 + m_bBlur=true + m_bIsPopup=true + m_bAlwaysTick=true + m_bAllowSpectatorClickThru=false + m_Name="UIPopup" +} diff --git a/Development/Src/TgClient/Classes/UIPopupCrafting.uc b/Development/Src/TgClient/Classes/UIPopupCrafting.uc new file mode 100644 index 0000000..b0da53e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPopupCrafting.uc @@ -0,0 +1,11 @@ +class UIPopupCrafting extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIPopupCrafting' + m_nBackground=1 + m_bIsPopup=true + m_Name="UIPopupCrafting" +} diff --git a/Development/Src/TgClient/Classes/UIPopupPartyManager.uc b/Development/Src/TgClient/Classes/UIPopupPartyManager.uc new file mode 100644 index 0000000..9b28e9c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPopupPartyManager.uc @@ -0,0 +1,13 @@ +class UIPopupPartyManager extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +defaultproperties +{ + m_UISceneClass=Class'UIScene_UIPopupPartyManager' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_bIsPopup=true + m_Name="UIPopupPartyManager" +} diff --git a/Development/Src/TgClient/Classes/UIPopup_MatchLobbyCustomize.uc b/Development/Src/TgClient/Classes/UIPopup_MatchLobbyCustomize.uc new file mode 100644 index 0000000..bb33db3 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPopup_MatchLobbyCustomize.uc @@ -0,0 +1,24 @@ +class UIPopup_MatchLobbyCustomize extends UIComponent_Popup + native(UIComponent) + config(Engine) + dependson(UIData_LobbySlotItem); + +var float m_fStateTimerOut; +var float m_fStateTimerIn; +var int m_nPendingFocus; +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcClassIcon; +var GFxObject m_mcAutoBuyPrompt; +var UIComponent_Toggle m_AutoBuyToggle; +var UIInteractable_Button m_BackButton; +var UIInteractable_Button m_PrevButton; +var UIInteractable_Button m_NextButton; +var UIComponent_List m_ItemList; +var UIData_LobbySlotItem m_pPurchase; +var UIData_LobbySlotItem.UIChampionCustomizeState m_eState; + +defaultproperties +{ + m_sLoadName="Champion" +} diff --git a/Development/Src/TgClient/Classes/UIPopup_MatchLobbyCustomizeNew.uc b/Development/Src/TgClient/Classes/UIPopup_MatchLobbyCustomizeNew.uc new file mode 100644 index 0000000..2538831 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPopup_MatchLobbyCustomizeNew.uc @@ -0,0 +1,28 @@ +class UIPopup_MatchLobbyCustomizeNew extends UIComponent_Popup + native(UIComponent) + config(Engine) + dependson(UIData_LobbySlotItem); + +var float m_fStateTimerOut; +var float m_fStateTimerIn; +var bool m_bDimmedItemSlots; +var GFxObject m_mcChampionItemSelect; +var UIInteractable_Button m_BackButton; +var UIInteractable_Button m_CollectionsButton; +var UIInteractable_Button m_PreviousButton; +var UIInteractable_Button m_NextButton; +var GFxObject m_mcCollectionsButtonSelected; +var GFxObject m_mcNoCollectionsTF; +var TgGFxGroup m_grEquipSlots; +var UIComponent_List m_EquipSlotList; +var UIComponent_List m_ItemList; +var UIData_LobbySlotItem m_pPurchase; +var GFxObject m_mcAutoBuyPrompt; +var UIComponent_Toggle m_AutoBuyToggle; +var UIData_LobbySlotItem.UIChampionCustomizeState m_eState; +var UIData_LobbySlotItem.UIChampionCustomizeState m_eSelectedSlot; + +defaultproperties +{ + m_sLoadName="ChampionNew" +} diff --git a/Development/Src/TgClient/Classes/UIProfile.uc b/Development/Src/TgClient/Classes/UIProfile.uc new file mode 100644 index 0000000..22f64a6 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIProfile.uc @@ -0,0 +1,212 @@ +class UIProfile extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UIPROFILE_AWARD_ENTRIES = 8; + +const UIPROFILE_AWARD_ROWS = 4; + +const UIPROFILE_AWARD_COLS = 2; + +const UIPROFILE_AWARD_GOALS = 10; + +const UIPROFILE_COLLECTIONS = 4; + +const UIPROFILE_HEADER_COUNT = 6; + +const UIPROFILE_PLAYER_COUNT = 5; + +const UIPROFILE_HISTORY_DATA = 7; + +const UIPROFILE_HISTORY_ROWS = 8; + +const UIPROFILE_CHAMPION_DATA = 5; + +const UIPROFILE_CHAMPION_ROWS = 8; + +const UIPROFILE_DETAILS_COUNT = 12; + +const UIPROFILE_ACCOUNTBOOSTTOOLTIP_COUNT = 4; + +const UIPROFILE_ANNOUNCERPACK_SLOT_COUNT = 10; + +const UIPROFILE_ANNOUNCERPACK_SLOTS_PER_ROW = 2; + +const UIPROFILE_ANNOUNCERPACK_CONSOLE_PROMPT_COUNT = 2; + +enum PROFILESTATE { + EPS_OVERVIEW, // 0 + EPS_CHAMPIONS, // 1 + EPS_TITLES, // 2 + EPS_ANNOUNCERPACKS, // 3 + EPS_AWARDS, // 4 + EPS_HISTORY, // 5 +}; + +enum EHistoryResult { + EHR_WIN, // 0 + EHR_LOSS, // 1 + EHR_LEFT, // 2 +}; + +struct UIGoalData { + var int nDate; + var int nGoal; + var int nValue; + var int nProgress; + var int nDisplayId; + var int nGoalProgress; + var bool bCompleted; + var init string sDate; + var init string sDesc; + var init string sTier; + var init string sTitle; + var init string sSource; + structdefaultproperties {} +}; + +struct UIAwardData { + var int nType; + var int nActivity; + var int nGoalCount; + var int nGoalGroup; + var UIGoalData Goals[10]; + structdefaultproperties {} +}; + +struct UIHistoryData { + var int nId; + var int nClass; + var init string sDate; + var init string sMode; + var init string sScore; + var UIProfile.EHistoryResult eResult; + var init string sDuration; + var DateTimeWrapper dtEvent; + structdefaultproperties {} +}; + +var int m_nPlayer; +var int m_nAwardScrollIndex; +var int m_nHistoryScrollIndex; +var int m_nChampionScrollIndex; +var int m_nAwardTotal; +var int m_nAwardCurrent; +var int m_nSelectedVoicePackCurrent; +var bool m_bScrollAwards; +var bool m_bScrollHistory; +var bool m_bScrollChampions; +var bool m_bLoadedActivities; +var bool m_bAnnouncerPackGamepadAware; +var UIProfile.PROFILESTATE m_eState; +var array m_AwardData; +var array m_Matches; +var GFxObject m_mcOverview; +var GFxObject m_mcOverviewTitle; +var GFxObject m_mcOverviewPlayerEquippedTitle; +var GFxObject m_mcOverviewSubtitle; +var GFxObject m_mcOverviewRatingTitle; +var GFxObject m_mcOverviewRatingDetails; +var GFxObject m_mcOverviewRatingSubtitle; +var GFxObject m_mcOverviewBonus; +var GFxObject m_mcOverviewBonusBonusIcon; +var GFxObject m_mcOverviewBonusBonusIconIcon; +var GFxObject m_mcOverviewBonusBonusIconFrame; +var GFxObject m_mcOverviewBonusTitle; +var GFxObject m_mcOverviewBonusBoostActive; +var GFxObject m_mcOverviewBonusEntry[4]; +var TgGFxGroup m_grOverview; +var UIComponent_TitlesView m_pTitlesView; +var GFxObject m_mcAwards; +var GFxObject m_mcAwardScroll; +var GFxObject m_mcAwardTotalProgress; +var GFxObject m_mcAwardTotalProgressTip; +var GFxObject m_mcAwardTotalProgressFill; +var GFxObject m_mcAwardTotalProgressTitle; +var GFxObject m_mcAwardTotalProgressSubtitle; +var GFxObject m_mcAwardRow[8]; +var GFxObject m_mcAwardDate[8]; +var GFxObject m_mcAwardIcon[8]; +var GFxObject m_mcAwardTitle[8]; +var GFxObject m_mcAwardFrame[8]; +var GFxObject m_mcAwardPoints[8]; +var GFxObject m_mcAwardSubtitle[8]; +var GFxObject m_mcAwardHighlight[8]; +var GFxObject m_mcAwardProgressFill[8]; +var GFxObject m_mcAwardProgressText[8]; +var TgGFxGroup m_grAward; +var GFxObject m_mcHistory; +var GFxObject m_mcHistoryScroll; +var GFxObject m_mcHistoryRow[8]; +var GFxObject m_mcHistoryDate[8]; +var GFxObject m_mcHistoryName[8]; +var GFxObject m_mcHistoryType[8]; +var GFxObject m_mcHistoryIcon[8]; +var GFxObject m_mcHistoryMode[8]; +var GFxObject m_mcHistoryFrame[8]; +var GFxObject m_mcHistoryMatch[8]; +var GFxObject m_mcHistoryScore[8]; +var GFxObject m_mcHistoryResult[8]; +var GFxObject m_mcHistoryDetails[8]; +var GFxObject m_mcHistoryChampion[8]; +var GFxObject m_mcHistoryDuration[8]; +var TgGFxGroup m_grHistory; +var GFxObject m_mcChampions; +var GFxObject m_mcChampionScroll; +var GFxObject m_mcChampionRow[8]; +var GFxObject m_mcChampionName[8]; +var GFxObject m_mcChampionType[8]; +var GFxObject m_mcChampionIcon[8]; +var GFxObject m_mcChampionRank[8]; +var GFxObject m_mcChampionFrame[8]; +var GFxObject m_mcChampionScore[8]; +var GFxObject m_mcChampionDetails[8]; +var GFxObject m_mcChampionChampion[8]; +var GFxObject m_mcChampionMastery[8]; +var GFxObject m_mcChampionMasteryTip[8]; +var GFxObject m_mcChampionMasteryFill[8]; +var GFxObject m_mcChampionMasteryTitle[8]; +var GFxObject m_mcChampionRankProgress[8]; +var GFxObject m_mcChampionRankProgressTip[8]; +var GFxObject m_mcChampionRankProgressFill[8]; +var GFxObject m_mcChampionRankProgressTitle[8]; +var GFxObject m_mcChampionRankProgressSubtitle[8]; +var TgGFxGroup m_grChampion; +var GFxObject m_mcAnnouncerPacks; +var GFxObject m_mcAnnouncerPacksScroll; +var GFxObject m_mcAnnouncerPackHeader; +var GFxObject m_mcAnnouncerPackHeaderIconCon; +var GFxObject m_mcAnnouncerPackHeaderIcon; +var GFxObject m_mcAnnouncerPackHeaderLabel; +var GFxObject m_mcAnnouncerPackHeaderTitle; +var GFxObject m_mcAnnouncerPackHeaderRarityFrame; +var GFxObject m_mcAnnouncerPackSlot[10]; +var GFxObject m_mcAnnouncerPackSlotTF[10]; +var GFxObject m_mcAnnouncerPackSlotCostCrystalsCon[10]; +var GFxObject m_mcAnnouncerPackSlotCostCrystalsTF[10]; +var GFxObject m_mcAnnouncerPackSlotCostGoldCon[10]; +var GFxObject m_mcAnnouncerPackSlotCostGoldTF[10]; +var GFxObject m_mcAnnouncerPackSlotEquippedCon[10]; +var GFxObject m_mcAnnouncerPackSlotLockIcon[10]; +var GFxObject m_mcAnnouncerPackSlotAnnouncerIconCon[10]; +var GFxObject m_mcAnnouncerPackSlotAnnouncerIcon[10]; +var GFxObject m_mcAnnouncerPackSlotSelected[10]; +var GFxObject m_mcAnnouncerPackSlotFrameButton[10]; +var GFxObject m_mcAnnouncerPackSlotPlayButton[10]; +var GFxObject m_mcAnnouncerPackSlotRarityFrame[10]; +var TgGFxGroup m_grAnnouncerPacks; +var int m_nTitleToEquip; +var float m_fQueuedTitleEquipTimer; +var float m_fTitleEquipDelay; + +defaultproperties +{ + m_fTitleEquipDelay=2.0000000 + m_UISceneClass=Class'UIScene_UIProfile' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=1 + m_bResetHeaderFocusOnShow=false + m_bAllowMultipleOnStack=false + m_Name="UIProfile" +} diff --git a/Development/Src/TgClient/Classes/UIProfileMini.uc b/Development/Src/TgClient/Classes/UIProfileMini.uc new file mode 100644 index 0000000..82acdf7 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIProfileMini.uc @@ -0,0 +1,50 @@ +class UIProfileMini extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const MINIPROF_ACCOUNTBOOSTTOOLTIP_ENTRIES = 4; + +var bool m_bSearching; +var bool m_bShowMinimize; +var float m_fRotation; +var GFxObject m_mcExit; +var GFxObject m_mcSpinner; +var GFxObject m_mcMinimize; +var GFxObject m_mcSearching; +var GFxObject m_mcSearchingTitle; +var GFxObject m_mcSearchingSubtitle; +var GFxObject m_mcParty; +var GFxObject m_mcPartyCount; +var GFxObject m_mcPartyIcon; +var GFxObject m_mcPartyFrame; +var GFxObject m_mcPlayer; +var GFxObject m_mcPlayerGold; +var GFxObject m_mcPlayerName; +var GFxObject m_mcPlayerLevel; +var GFxObject m_mcPlayerCrystals; +var GFxObject m_mcPlayerDust; +var GFxObject m_mcPlayerEquipableTitle; +var GFxObject m_mcBoostAccount; +var GFxObject m_mcBoostAccountIcon; +var GFxObject m_mcBoostAccountFrame; +var GFxObject m_mcBoostAccountTooltip; +var GFxObject m_mcBoostAccountTooltipTitle; +var GFxObject m_mcBoostAccountTooltipTimer; +var GFxObject m_mcBoostAccountTooltipEntry[4]; +var GFxObject m_mcBoostParty; +var GFxObject m_mcBoostPartyIcon; +var GFxObject m_mcBoostPartyFrame; +var GFxObject m_mcBoostPartyTooltip; +var GFxObject m_mcBoostPartyTooltipTitle; +var GFxObject m_mcBoostPartyTooltipEntry0; +var GFxObject m_mcBoostPartyTooltipEntry1; +var GFxObject m_mcBoostPartyTooltipEntry2; +var GFxObject m_mcTencentNetcafeStatus; + +defaultproperties +{ + m_eSnappingType=UISNAPPING_TOP + m_eAligningType=UIALIGNING_RIGHT + m_bAlwaysTick=true + m_Name="UIProfileMini" +} diff --git a/Development/Src/TgClient/Classes/UIPurchaseGems.uc b/Development/Src/TgClient/Classes/UIPurchaseGems.uc new file mode 100644 index 0000000..3f7359a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIPurchaseGems.uc @@ -0,0 +1,61 @@ +class UIPurchaseGems extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UIDataObject); + +const UIPURCHASEGEMS_DURABLEPACKS = 2; + +const UIPURCHASEGEMS_CONSUMABLEPACKS = 7; + +const UIPURCHASEGEMS_DURABLE_DETAILS = 5; + +const UI_FOUNDERS_PACK_ID = 21371; + +enum UIPG_DurablePacks { + UIPG_Founders, // 0 + UIPG_Realm, // 1 +}; + +struct UIDurablePack { + var GFxObject Obj; + var GFxObject Price; + var GFxObject PurchaseButton; + var GFxObject Highlight; + var GFxObject Refund; + var GFxObject SaleBanner; + structdefaultproperties {} +}; + +struct UIConsumablePack { + var GFxObject Obj; + var GFxObject Title; + var GFxObject Icon; + var GFxObject Price; + var GFxObject PurchaseButton; + var GFxObject Highlight; + var GFxObject SaleBanner; + structdefaultproperties {} +}; + +var UIDurablePack m_DurablePack[2]; +var UIConsumablePack m_ConsumablePack[7]; +var GFxObject m_mcCancelButton; +var GFxObject m_mcOverlay; +var GFxObject m_mcFrame; +var GFxObject m_mcBlocker; +var array m_AllProducts; + +event GetAvailableProducts(OnlineSubsystem.EMediaItemType MediaType, out array AvailableProducts) { } + +event GetInventoryItems(out array InventoryItems) { } + +defaultproperties +{ + m_UISceneClass=Class'UIScene_SceneAsPopup' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=1 + m_bBlur=true + m_bIsPopup=true + m_Name="UIPurchaseGems" +} diff --git a/Development/Src/TgClient/Classes/UIQuestUtilities.uc b/Development/Src/TgClient/Classes/UIQuestUtilities.uc new file mode 100644 index 0000000..be3da27 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIQuestUtilities.uc @@ -0,0 +1,9 @@ +class UIQuestUtilities extends Object + native(UIQuestUtilities) + config(Engine); + +const WEEKLY_QUESTS_ACCOUNT_LEVEL = 7; + +const WEEKLY_QUESTS_COUNT = 3; + +const WEEKLY_QUESTS_TOTAL = 10; diff --git a/Development/Src/TgClient/Classes/UIQuests.uc b/Development/Src/TgClient/Classes/UIQuests.uc new file mode 100644 index 0000000..87a030c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIQuests.uc @@ -0,0 +1,66 @@ +class UIQuests extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const QUEST_PANEL_WIDTH = 357; + +const QUEST_PANEL_GAP = 20; + +const CURRENCY_GOLD = 13256; + +const CURRENCY_CRYSTALS = 12687; + +const QUEST_PANEL_PROGRESS_BAR_EMPTY_FRAME = 43; + +const QUEST_PANEL_PROGRESS_BAR_FULL_FRAME = 315; + +const VISIBLE_QUEST_PANELS = 5; + +var TgGFxGroup m_grQuestPanels; +var TgGFxGroup m_grQuestRerollPopup; +var GFxObject m_mcGoldMax; +var GFxObject m_mcHeader; +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcBonusQuest; +var GFxObject m_mcBonusQuestProgress; +var GFxObject m_mcBonusQuestProgressMask; +var GFxObject m_mcBonusQuestProgressText; +var GFxObject m_mcBonusQuestTitle; +var GFxObject m_mcBonusQuestDescription; +var UIComponent_List m_QuestList; +var UIComponent_Quest m_QuestPanels[10]; +var GFxObject m_mcPanels; +var UIInteractable_Button m_pPrevButton; +var UIInteractable_Button m_pNextButton; +var GFxObject m_mcActiveQuests; +var GFxObject m_mcNextQuestCountdown; +var int m_nQuestToDiscard; +var GFxObject m_mcDiscardQuestPopup; +var GFxObject m_mcDiscardQuestPopupCloseButton; +var GFxObject m_mcDiscardQuestPopupTitle; +var GFxObject m_mcDiscardQuestPopupQuestIcon; +var GFxObject m_mcDiscardQuestPopupQuestTitle; +var GFxObject m_mcDiscardQuestPopupRerollText; +var GFxObject m_mcDiscardQuestPopupRerollButton; +var GFxObject m_mcDiscardQuestPopupDiscardButton; +var int m_nCurrentlyFocusedQuestPanel; +var int m_nDesiredFocusedQuestPanelButton; +var int m_nCurrentlyFocusedQuestPanelButton; +var int m_nDesiredFocusedDiscardButton; +var int m_nCurrentlyFocusedDiscardButton; +var int m_nQuestIndices[10]; + +defaultproperties +{ + m_nCurrentlyFocusedQuestPanel=-1 + m_nDesiredFocusedQuestPanelButton=-1 + m_nCurrentlyFocusedQuestPanelButton=-1 + m_nDesiredFocusedDiscardButton=-1 + m_nCurrentlyFocusedDiscardButton=-1 + m_UISceneClass=Class'UIScene_UIQuests' + m_OptionList[0]=140 + m_OptionList[1]=23 + m_nBackground=1 + m_Name="UIQuests" +} diff --git a/Development/Src/TgClient/Classes/UISafeFrame.uc b/Development/Src/TgClient/Classes/UISafeFrame.uc new file mode 100644 index 0000000..e65e155 --- /dev/null +++ b/Development/Src/TgClient/Classes/UISafeFrame.uc @@ -0,0 +1,17 @@ +class UISafeFrame extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UISAFEFRAME_STEPCOUNT = 20; + +const UISAFEFRAME_MIN = 0.9f; + +const UISAFEFRAME_MAX = 1.f; + +var GFxObject m_mcAdjust; +var GFxObject m_mcAccept; + +defaultproperties +{ + m_Name="UISafeFrame" +} diff --git a/Development/Src/TgClient/Classes/UIScene.uc b/Development/Src/TgClient/Classes/UIScene.uc new file mode 100644 index 0000000..2b8d09a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene.uc @@ -0,0 +1,36 @@ +class UIScene extends UIComponent + native(UIComponent) + config(Engine); + +struct UIAnimData { + var byte eType; + var byte eQuad; + var float fOrig; + var float fDelay; + var float fTarget; + var float fDuration; + var float fTimeLeft; + var GFxObject mcObject; + structdefaultproperties {} +}; + +var array m_AnimObjects; +var array m_Interactables; +var bool m_bUninitializing; + +native function FadeIn(GFxObject pObj, optional float fTime=0.0500000, optional float fDelay=0.0000000); // Export UUIScene::execFadeIn(FFrame&, void* const) + +native function FadeOut(GFxObject pObj, optional float fTime=0.0500000, optional float fDelay=0.0000000); // Export UUIScene::execFadeOut(FFrame&, void* const) + +native function Animate(GFxObject pObj, float fTime, UIComponent.UIANIMTYPE eType, float fValue, optional float fDelay=0.0000000, optional byte eQuad=1, optional bool bEndCurrentAnim=true); // Export UUIScene::execAnimate(FFrame&, void* const) + +native function bool IsAnimating(GFxObject pObj, optional UIComponent.UIANIMTYPE eType=9); // Export UUIScene::execIsAnimating(FFrame&, void* const) + +native function float GetAnimationTarget(GFxObject pObj, optional UIComponent.UIANIMTYPE eType=9); // Export UUIScene::execGetAnimationTarget(FFrame&, void* const) + +native function EndAnim(GFxObject pObj, optional UIComponent.UIANIMTYPE eType=9); // Export UUIScene::execEndAnim(FFrame&, void* const) + +defaultproperties +{ + m_ComponentType=UICOMP_SCENE +} diff --git a/Development/Src/TgClient/Classes/UIScene_SceneAsPopup.uc b/Development/Src/TgClient/Classes/UIScene_SceneAsPopup.uc new file mode 100644 index 0000000..6779a0c --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_SceneAsPopup.uc @@ -0,0 +1,3 @@ +class UIScene_SceneAsPopup extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIAccountLink.uc b/Development/Src/TgClient/Classes/UIScene_UIAccountLink.uc new file mode 100644 index 0000000..9b56e5b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIAccountLink.uc @@ -0,0 +1,3 @@ +class UIScene_UIAccountLink extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIAcquisition.uc b/Development/Src/TgClient/Classes/UIScene_UIAcquisition.uc new file mode 100644 index 0000000..7d0e551 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIAcquisition.uc @@ -0,0 +1,3 @@ +class UIScene_UIAcquisition extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIChampion.uc b/Development/Src/TgClient/Classes/UIScene_UIChampion.uc new file mode 100644 index 0000000..23cc0e5 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIChampion.uc @@ -0,0 +1,13 @@ +class UIScene_UIChampion extends UIScene + native(UIComponent) + config(Engine); + +enum UICHAMPION_STATE { + UICS_OVERVIEW, // 0 + UICS_SLOTS, // 1 + UICS_COLLECTION, // 2 + UICS_LOADOUTS, // 3 + UICS_SKILLS, // 4 + UICS_ITEMS, // 5 + UICS_MASTERIES, // 6 +}; diff --git a/Development/Src/TgClient/Classes/UIScene_UICompetitive.uc b/Development/Src/TgClient/Classes/UIScene_UICompetitive.uc new file mode 100644 index 0000000..44a2938 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UICompetitive.uc @@ -0,0 +1,21 @@ +class UIScene_UICompetitive extends UIScene + native(UIComponent) + config(Engine); + +var UIComponent_Interactable m_pBack; +var UIComponent_HeaderTabs m_pTabs; +var GFxObject m_mcTiers; +var UIComponent_List m_TierTagList; +var UIComponent_List m_TierList; +var array m_TierListData; +var array m_TierTagData; +var GFxObject m_mcOverview; +var GFxObject m_mcOverviewTitle[4]; +var GFxObject m_mcOverviewRankIcon; +var UIComponent_RankedProgress m_pOverviewProgress; +var UIComponent_Interactable m_pButtonLeaderboard; +var UIComponent_Interactable m_pButtonPlay; +var GFxObject m_mcRewards; +var UIComponent_List m_RewardsList; +var UIComponent_List m_RewardsPortraitList; +var GFxObject m_mcRewardsTitle[4]; diff --git a/Development/Src/TgClient/Classes/UIScene_UICompetitivePopupWelcome.uc b/Development/Src/TgClient/Classes/UIScene_UICompetitivePopupWelcome.uc new file mode 100644 index 0000000..33f3315 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UICompetitivePopupWelcome.uc @@ -0,0 +1,5 @@ +class UIScene_UICompetitivePopupWelcome extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); + +var UIDataLeague pLeague; diff --git a/Development/Src/TgClient/Classes/UIScene_UICompetitiveRankChange.uc b/Development/Src/TgClient/Classes/UIScene_UICompetitiveRankChange.uc new file mode 100644 index 0000000..5bb8c97 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UICompetitiveRankChange.uc @@ -0,0 +1,3 @@ +class UIScene_UICompetitiveRankChange extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UICompetitiveRankDecay.uc b/Development/Src/TgClient/Classes/UIScene_UICompetitiveRankDecay.uc new file mode 100644 index 0000000..e5bb36a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UICompetitiveRankDecay.uc @@ -0,0 +1,3 @@ +class UIScene_UICompetitiveRankDecay extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UICustomGame.uc b/Development/Src/TgClient/Classes/UIScene_UICustomGame.uc new file mode 100644 index 0000000..4c180e8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UICustomGame.uc @@ -0,0 +1,3 @@ +class UIScene_UICustomGame extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIDailyReward.uc b/Development/Src/TgClient/Classes/UIScene_UIDailyReward.uc new file mode 100644 index 0000000..29b2c7f --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIDailyReward.uc @@ -0,0 +1,3 @@ +class UIScene_UIDailyReward extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIEndOfMatchLobby.uc b/Development/Src/TgClient/Classes/UIScene_UIEndOfMatchLobby.uc new file mode 100644 index 0000000..5f0ae9e --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIEndOfMatchLobby.uc @@ -0,0 +1,9 @@ +class UIScene_UIEndOfMatchLobby extends UIScene + native(UIComponent) + config(Engine); + +var UIComponent_RankedEOMProgress m_RankedProgress; +var UIComponent_MatchDisplay m_MatchStats; +var TgData_EOM m_EOMData; +var int m_nLocalTF; +var int m_nPlayerCount; diff --git a/Development/Src/TgClient/Classes/UIScene_UIHome.uc b/Development/Src/TgClient/Classes/UIScene_UIHome.uc new file mode 100644 index 0000000..5898801 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHome.uc @@ -0,0 +1,3 @@ +class UIScene_UIHome extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIHudBurns.uc b/Development/Src/TgClient/Classes/UIScene_UIHudBurns.uc new file mode 100644 index 0000000..a478025 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHudBurns.uc @@ -0,0 +1,3 @@ +class UIScene_UIHudBurns extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIHudCenter.uc b/Development/Src/TgClient/Classes/UIScene_UIHudCenter.uc new file mode 100644 index 0000000..f05abdf --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHudCenter.uc @@ -0,0 +1,3 @@ +class UIScene_UIHudCenter extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIHudDecks.uc b/Development/Src/TgClient/Classes/UIScene_UIHudDecks.uc new file mode 100644 index 0000000..5e226ee --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHudDecks.uc @@ -0,0 +1,9 @@ +class UIScene_UIHudDecks extends UIScene + native(UIComponent) + config(Engine); + +var float m_fSelectedTalentX; +var float m_fSelectedTalentY; +var UIComponent_TeamPortraits m_TeamPortraitsLeft; +var UIComponent_TeamPortraits m_TeamPortraitsRight; +var float m_fUpdateTalentsDelay; diff --git a/Development/Src/TgClient/Classes/UIScene_UIHudScore.uc b/Development/Src/TgClient/Classes/UIScene_UIHudScore.uc new file mode 100644 index 0000000..248332a --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHudScore.uc @@ -0,0 +1,3 @@ +class UIScene_UIHudScore extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIHudSkills.uc b/Development/Src/TgClient/Classes/UIScene_UIHudSkills.uc new file mode 100644 index 0000000..555ac2f --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHudSkills.uc @@ -0,0 +1,24 @@ +class UIScene_UIHudSkills extends UIScene + native(UIComponent) + config(Engine); + +const UIHUDSKILLS_COUNT = 5; + +var UIComponent_HudSkillIcon m_pSkillIcon[5]; +var UIComponent_HudSkillIcon m_pAltSkillIconA; +var UIComponent_HudSkillIcon m_pAltSkillIconB; +var float m_fSkillRotation; +var GFxObject m_mcGroupA; +var GFxObject m_mcGroupB; +var UIComponent_LexVengeance m_LexVengeance; +var UIComponent_OracleSoulCharges m_OracleSoulCharges; +var int m_nSpectatorMode; + +event AnimateWeaponSwap(float fSwapTime) { } + +event ApplyAltSkillOffsets() { } + +defaultproperties +{ + m_fSkillRotation=25.0000000 +} diff --git a/Development/Src/TgClient/Classes/UIScene_UIHudStrix.uc b/Development/Src/TgClient/Classes/UIScene_UIHudStrix.uc new file mode 100644 index 0000000..c7f8c54 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIHudStrix.uc @@ -0,0 +1,22 @@ +class UIScene_UIHudStrix extends UIScene + native(UIComponent) + config(Engine); + +const UIHUDSTRIX_BULLETS = 5; + +var int m_nAmmo; +var GFxObject m_mcAmmo[5]; +var GFxObject m_mcScope; +var GFxObject m_mcOuterScope; +var bool m_bViewTargetOwl; +var float m_fColorTransitionAmt; +var float m_fColorTransitionPerSec; +var const LinearColor m_ColorTransitionMultiplier; +var const LinearColor m_ColorTransitionAdditive; +var int m_nScopeColorTransitionCBHandle; + +defaultproperties +{ + m_ColorTransitionMultiplier=(R=0.2000000,G=0.0000000,B=1.0000000,A=1.0000000) + m_ColorTransitionAdditive=(R=0.1500000,G=0.0000000,B=0.4000000,A=0.0000000) +} diff --git a/Development/Src/TgClient/Classes/UIScene_UILeaderboard.uc b/Development/Src/TgClient/Classes/UIScene_UILeaderboard.uc new file mode 100644 index 0000000..d92eed1 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UILeaderboard.uc @@ -0,0 +1,12 @@ +class UIScene_UILeaderboard extends UIScene + native(UIComponent) + config(Engine); + +var bool m_bPendingLoad; +var UIDataChampion m_CurrentLeaderboard; +var UIComponent_List m_ChampionLeaderboard; +var UIComponent_List m_PlayerLeaderboard; +var UIComponent_Dropdown m_LeagueDropdown; +var UIComponent_RankedProgress m_RankedProgress; +var GFxObject m_mcHeader; +var GFxObject m_mcRankIcon; diff --git a/Development/Src/TgClient/Classes/UIScene_UIMatchLobby.uc b/Development/Src/TgClient/Classes/UIScene_UIMatchLobby.uc new file mode 100644 index 0000000..99be7fd --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIMatchLobby.uc @@ -0,0 +1,3 @@ +class UIScene_UIMatchLobby extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UINotificationCenter.uc b/Development/Src/TgClient/Classes/UIScene_UINotificationCenter.uc new file mode 100644 index 0000000..da154a4 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UINotificationCenter.uc @@ -0,0 +1,3 @@ +class UIScene_UINotificationCenter extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIPlay.uc b/Development/Src/TgClient/Classes/UIScene_UIPlay.uc new file mode 100644 index 0000000..9e967e8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIPlay.uc @@ -0,0 +1,13 @@ +class UIScene_UIPlay extends UIScene + native(UIComponent) + implements(DelayQueueInterface) + config(Engine); + +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderIcon; +var GFxObject m_mcMultiqueueCursor; +var GFxObject m_mcMultiqueueUpDownIndicator; +var UIInteractable_Button m_JoinMultiqueueButton; +var UIComponent_List m_Panels; +var UIComponent_List m_MultiqueuePanels; +var array m_PanelStack; diff --git a/Development/Src/TgClient/Classes/UIScene_UIPopupCrafting.uc b/Development/Src/TgClient/Classes/UIScene_UIPopupCrafting.uc new file mode 100644 index 0000000..77594ab --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIPopupCrafting.uc @@ -0,0 +1,48 @@ +class UIScene_UIPopupCrafting extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); + +var UIInteractable_Item m_CardContainer; +var UIInteractable_Item m_CardContainerAnim; +var GFxObject m_mcTitle; +var GFxObject m_mcRarity; +var GFxObject m_mcRemaining; +var GFxObject m_mcCardCraftText; +var GFxObject m_mcControllerPrompt; +var GFxObject m_mcControllerPromptLabel; +var GFxObject m_mcControllerPromptCurrencyTF; +var UIInteractable_Button m_AcceptButton; +var UIInteractable_Button m_CancelButton; +var UIInteractable_Button m_CloseButton; +var bool m_bWaiting; +var bool m_bPurchasing; +var GFxObject m_mcWait; +var GFxObject m_mcWaitSpinner; +var float m_fSpinnerRotation; +var float m_fAnimTimer; +var UIComponent_HoldPrompt m_HoldPrompt; +var float m_fTimeoutTime; +var float m_fTimeoutTimer; +var UIDataItem m_ItemInfo; +var int m_nPurchaseItem; +var int m_nPurchaseType; +var int m_nPurchaseVendor; +var float m_fAnimStartSoundTimer; +var float m_fAnimEndSoundTimer; +var AkBaseSoundObject m_akCraftAnimStart; +var AkBaseSoundObject m_akCraftAnimEnd; +var AkBaseSoundObject m_akDisenchantAnimStart; +var AkBaseSoundObject m_akDisenchantAnimEnd; + +event float TriggerCardCraftedAnimation() { } + +event float TriggerCardDisenchantedAnimation() { } + +defaultproperties +{ + m_fTimeoutTime=20.0000000 + m_akCraftAnimStart=AkEvent'UI_Menu_DailyLogin_RewardClaim' + m_akDisenchantAnimStart=AkEvent'UI_Menu_CardCraft_Buildup_Play' + m_akDisenchantAnimEnd=AkEvent'UI_Menu_CardCraft_Finish_Play' + m_sLoadName="CraftingPopup" +} diff --git a/Development/Src/TgClient/Classes/UIScene_UIPopupGeneric.uc b/Development/Src/TgClient/Classes/UIScene_UIPopupGeneric.uc new file mode 100644 index 0000000..407918b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIPopupGeneric.uc @@ -0,0 +1,5 @@ +class UIScene_UIPopupGeneric extends UIScene + native(UIComponent) + config(Engine); + +var UIData_PopupGeneric m_pData; diff --git a/Development/Src/TgClient/Classes/UIScene_UIPopupGenericFullscreen.uc b/Development/Src/TgClient/Classes/UIScene_UIPopupGenericFullscreen.uc new file mode 100644 index 0000000..5dcb936 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIPopupGenericFullscreen.uc @@ -0,0 +1,3 @@ +class UIScene_UIPopupGenericFullscreen extends UIScene_UIPopupGeneric + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIPopupInput.uc b/Development/Src/TgClient/Classes/UIScene_UIPopupInput.uc new file mode 100644 index 0000000..a2a78c2 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIPopupInput.uc @@ -0,0 +1,5 @@ +class UIScene_UIPopupInput extends UIScene + native(UIComponent) + config(Engine); + +var UIData_PopupInput m_pData; diff --git a/Development/Src/TgClient/Classes/UIScene_UIPopupPartyManager.uc b/Development/Src/TgClient/Classes/UIScene_UIPopupPartyManager.uc new file mode 100644 index 0000000..8e133a8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIPopupPartyManager.uc @@ -0,0 +1,25 @@ +class UIScene_UIPopupPartyManager extends UIScene_SceneAsPopup + native(UIComponent) + config(Engine); + +const UICOMPONENT_PARTYMANAGERLIST_TITLECOUNT = 2; + +const UICOMPONENT_PARTYMANAGERLIST_MEMBERCOUNT = 6; + +enum UIPPM_State { + UIPPM_NONE, // 0 + UIPPM_PARTYKICK, // 1 + UIPPM_FRIENDINVITE, // 2 +}; + +var UIComponent_Interactable m_pCloseButton; +var UIComponent_List m_pList; +var GFxObject m_mcTitle[2]; +var UIScene_UIPopupPartyManager.UIPPM_State m_eState; +var int m_nRequiredPartySize; +var Object m_pPostPartyKickResponse; + +defaultproperties +{ + m_nRequiredPartySize=-1 +} diff --git a/Development/Src/TgClient/Classes/UIScene_UIProfile.uc b/Development/Src/TgClient/Classes/UIScene_UIProfile.uc new file mode 100644 index 0000000..de95133 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIProfile.uc @@ -0,0 +1,22 @@ +class UIScene_UIProfile extends UIScene + native(UIComponent) + config(Engine); + +const UISCENE_UIPROFILE_MATCHSTATSPOPUP_TABS = 2; + +var UIComponent_Interactable m_pBack; +var UIComponent_HeaderTabs m_pTabs; +var UIComponent_Popup m_MatchStatsPopup; +var GFxObject m_mcMatchStatsTabSelected[2]; +var GFxObject m_mcOverview; +var TgGFxGroup m_grOverview; +var UIComponent_LevelProgress m_OverviewLevelProgress; +var GFxObject m_mcOverviewRankedIcon; +var GFxObject m_mcOverviewRankedSeason; +var GFxObject m_mcOverviewRankedRound; +var GFxObject m_mcOverviewRankedRoundRemaining; +var UIComponent_RankedProgress m_pOverviewRankedProgress; +var UIComponent_Interactable m_pOverviewRankedLeaderboardButton; +var UIComponent_List m_pOwnershipProgressList; +var UIComponent_Interactable m_pOverviewBoostButton; +var UIComponent_List m_ChampionList; diff --git a/Development/Src/TgClient/Classes/UIScene_UIQuests.uc b/Development/Src/TgClient/Classes/UIScene_UIQuests.uc new file mode 100644 index 0000000..43a642b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIQuests.uc @@ -0,0 +1,3 @@ +class UIScene_UIQuests extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UISettings.uc b/Development/Src/TgClient/Classes/UIScene_UISettings.uc new file mode 100644 index 0000000..23528f3 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UISettings.uc @@ -0,0 +1,3 @@ +class UIScene_UISettings extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIStore.uc b/Development/Src/TgClient/Classes/UIScene_UIStore.uc new file mode 100644 index 0000000..9ab3ec0 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIStore.uc @@ -0,0 +1,3 @@ +class UIScene_UIStore extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UIScene_UIStoreDetail.uc b/Development/Src/TgClient/Classes/UIScene_UIStoreDetail.uc new file mode 100644 index 0000000..78e4af8 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIScene_UIStoreDetail.uc @@ -0,0 +1,3 @@ +class UIScene_UIStoreDetail extends UIScene + native(UIComponent) + config(Engine); diff --git a/Development/Src/TgClient/Classes/UISettings.uc b/Development/Src/TgClient/Classes/UISettings.uc new file mode 100644 index 0000000..41f7d5d --- /dev/null +++ b/Development/Src/TgClient/Classes/UISettings.uc @@ -0,0 +1,177 @@ +class UISettings extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const GFXSETTINGS_BUTTONS = 7; + +const GFXSETTINGS_OPTIONS = 12; + +const GFXSETTINGS_KEYBINDS = 12; + +const GFXSETTINGS_KEYBINDS_COLUMNS = 2; + +enum UISETTINGS_CATEGORY { + UISC_VIDEO, // 0 + UISC_AUDIO, // 1 + UISC_HUD, // 2 + UISC_CONTROLS, // 3 + UISC_GAMEPAD, // 4 + UISC_KEYBINDS, // 5 + UISC_SPECTATOR, // 6 +}; + +enum UISETTINGS_APPLYCHANGESDIALOG { + UISA_DIALOG_NULL, // 0 + UISA_DIALOG_YES, // 1 + UISA_DIALOG_NO, // 2 +}; + +struct KeybindOption { + var GFxObject Obj; + var GFxObject Base; + var GFxObject Focus; + var GFxObject Command; + var GFxObject Key[2]; + var GFxObject KeyButton[2]; + structdefaultproperties {} +}; + +struct SettingOption { + var GFxObject Obj; + var GFxObject Base; + var GFxObject Type; + var GFxObject TypeTF; + var GFxObject Left; + var GFxObject Right; + var GFxObject Focus; + var GFxObject Color; + var GFxObject Slider; + var GFxObject SliderTF; + var GFxObject SliderTitle; + structdefaultproperties {} +}; + +var UIComponent_Dropdown m_ChampionDropdown; +var int m_eType; +var int m_nHighlightOption; +var int m_nOptionCount; +var int m_nCaptureAlt; +var int m_nScrollIndex; +var bool m_bOptionFocus; +var bool m_bKeybindFocus; +var bool m_bCaptureKeybind; +var bool m_bSettingsChanged; +var bool m_bIsInResetPrompt; +var float m_fDelayTimer; +var UISettings.UISETTINGS_APPLYCHANGESDIALOG m_eApplyChanges; +var int m_nCommandIndex; +var GFxObject m_Title; +var GFxObject m_Frame; +var GFxObject m_Reset; +var GFxObject m_mcBack; +var GFxObject m_Blocker; +var GFxObject m_mcIcon; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderGlow; +var GFxObject m_KeybindPopup; +var GFxObject m_KeybindPopupTF; +var GFxObject m_KeybindCancel; +var GFxObject m_KeybindBlocker; +var GFxObject m_ApplyChanges; +var GFxObject m_ApplyChangesYes; +var GFxObject m_ApplyChangesNo; +var GFxObject m_ApplyChangesBlocker; +var SettingOption m_Option[12]; +var KeybindOption m_Keybind[12]; +var GFxObject m_ExitButton; +var GFxObject m_AcceptButton; +var GFxObject m_mcScrollBar; +var GFxObject m_mcHeaderButton[7]; +var GFxObject m_mcHeaderButtonCTA[7]; +var GFxObject m_mcHeaderButtonLine[7]; +var GFxObject m_mcHeaderButtonGlow[7]; +var GFxObject m_mcHeaderButtonBounds[7]; +var GFxObject m_mcHeaderButtonShadow[7]; +var GFxObject m_mcHeaderButtonSelected[7]; +var GFxObject m_mcHeaderButtonHighlight[7]; +var TgGFxGroup m_grOptions; +var TgGFxGroup m_grKeybinds; +var TgGFxGroup m_grTeams; +var TgGFxGroup m_grButtons; +var TgGFxGroup m_grGamepadButtons; +var GFxObject m_mcGamepad; +var GFxObject m_mcGamepadButtons; +var GFxObject m_mcGamepadImage; +var GFxObject m_Spectator; +var GFxObject m_mcSpectatorTeamNameBlue; +var GFxObject m_mcSpectatorTeamNameRed; +var GFxObject m_mcSafeFrame; +var array m_DelayedUpdates; +var array m_VideoTypes; +var array m_HudTypes; +var array m_AudioTypes; +var array m_ControlTypes; +var array m_SpectatorTypes; + +defaultproperties +{ + m_VideoTypes[0]=0 + m_VideoTypes[1]=1 + m_VideoTypes[2]=2 + m_VideoTypes[3]=3 + m_VideoTypes[4]=4 + m_VideoTypes[5]=5 + m_VideoTypes[6]=6 + m_VideoTypes[7]=7 + m_VideoTypes[8]=8 + m_VideoTypes[9]=9 + m_VideoTypes[10]=10 + m_VideoTypes[11]=11 + m_VideoTypes[12]=12 + m_HudTypes[0]=38 + m_HudTypes[1]=15 + m_HudTypes[2]=16 + m_HudTypes[3]=18 + m_HudTypes[4]=46 + m_HudTypes[5]=17 + m_HudTypes[6]=19 + m_HudTypes[7]=54 + m_HudTypes[8]=20 + m_HudTypes[9]=21 + m_HudTypes[10]=44 + m_HudTypes[11]=51 + m_HudTypes[12]=55 + m_AudioTypes[0]=22 + m_AudioTypes[1]=23 + m_AudioTypes[2]=24 + m_AudioTypes[3]=25 + m_AudioTypes[4]=26 + m_AudioTypes[5]=52 + m_AudioTypes[6]=49 + m_AudioTypes[7]=50 + m_AudioTypes[8]=47 + m_AudioTypes[9]=48 + m_ControlTypes[0]=29 + m_ControlTypes[1]=45 + m_ControlTypes[2]=31 + m_ControlTypes[3]=32 + m_ControlTypes[4]=33 + m_ControlTypes[5]=34 + m_ControlTypes[6]=35 + m_ControlTypes[7]=36 + m_ControlTypes[8]=37 + m_ControlTypes[9]=27 + m_ControlTypes[10]=28 + m_ControlTypes[11]=30 + m_ControlTypes[12]=53 + m_SpectatorTypes[0]=40 + m_SpectatorTypes[1]=41 + m_SpectatorTypes[2]=42 + m_SpectatorTypes[3]=43 + m_UISceneClass=Class'UIScene_UISettings' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_bBlur=true + m_bAllowSpectatorClickThru=false + m_Name="UISettings" +} diff --git a/Development/Src/TgClient/Classes/UISkills.uc b/Development/Src/TgClient/Classes/UISkills.uc new file mode 100644 index 0000000..37f3f92 --- /dev/null +++ b/Development/Src/TgClient/Classes/UISkills.uc @@ -0,0 +1,26 @@ +class UISkills extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UISKILLS_COUNT = 5; + +var GFxObject m_mcTitle; +var GFxObject m_mcSubtitle; +var GFxObject m_mcSkill[5]; +var GFxObject m_mcSkillKey[5]; +var GFxObject m_mcSkillBase[5]; +var GFxObject m_mcSkillIcon[5]; +var GFxObject m_mcSkillTitle[5]; +var GFxObject m_mcSkillDamage[5]; +var GFxObject m_mcSkillSubtitle[5]; +var GFxObject m_mcSkillCooldown[5]; +var GFxObject m_mcSkillCooldownTF[5]; + +defaultproperties +{ + m_UISceneClass=Class'UIScene_SceneAsPopup' + m_OptionList[0]=249 + m_bBlur=true + m_bIsPopup=true + m_Name="UISkills" +} diff --git a/Development/Src/TgClient/Classes/UISocial.uc b/Development/Src/TgClient/Classes/UISocial.uc new file mode 100644 index 0000000..7bc0b17 --- /dev/null +++ b/Development/Src/TgClient/Classes/UISocial.uc @@ -0,0 +1,202 @@ +class UISocial extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UISOCIAL_HEADER_COUNT = 5; + +const UISOCIAL_REFER_LEVELS = 5; + +const UISOCIAL_REFER_BUTTONS = 3; + +const UISOCIAL_REFER_FRIENDS = 5; + +const UISOCIAL_REFER_REWARDS = 6; + +const UISOCIAL_REFER_LISTSIZE = 7; + +const UISOCIAL_FRIEND_COUNT = 7; + +const UISOCIAL_FRIEND_OPTIONS = 3; + +const UISOCIAL_PARTY_COUNT = 5; + +const UISOCIAL_PARTY_OPTIONS = 3; + +const UISOCIAL_FRIEND_INVITEPARTY_INDEX = 1; + +const UISOCIAL_TEAMINVITE_MAX_RECORDS = 64; + +const UISOCIAL_PARTY_MININVITEWAIT = 3.0; + +enum SOCIALSTATE { + ESS_PARTY, // 0 + ESS_FRIENDS, // 1 + ESS_REFERRAL, // 2 + ESS_REFERREDFRIENDS, // 3 + ESS_REFERREDREWARDS, // 4 + ESS_SENDREFERREDFRIENDS, // 5 +}; + +enum SOCIAL_ReferralError { + UISRE_None, // 0 + UISRE_AlreadyReferred, // 1 + UISRE_AlreadyHaveAccount, // 2 + UISRE_NoRemainingReferrals, // 3 + UISRE_ReferralsDisabled, // 4 + UISRE_LevelRequirementNotMet, // 5 + UISRE_AgeRequirementNotMet, // 6 +}; + +struct ReferralReward { + var int nItem; + var int nLevel; + var int nReward; + var bool bCurrency; + var GFxObject pObj; + var GFxObject pIcon; + var GFxObject pFrame; + var GFxObject pTitle; + var GFxObject pAmount; + var GFxObject pCurrency; + var GFxObject pAddition; + structdefaultproperties {} +}; + +var int m_nPlayerLevel; +var int m_nMemberDetail; +var int m_nMemberScrollIndex; +var int m_nFriendDetail; +var int m_nFriendScrollIndex; +var int m_nFriendsTotal; +var int m_nFriendsPending; +var int m_nReferredFriendsScrollIndex; +var int m_nSendReferralScrollIndex; +var int m_nReferralTier2Level; +var int m_nReferralReachedTier2; +var int m_nReferralHighestLevel; +var int m_nReferralLongestPlayed; +var int m_nHoursPlayedWithReferrer; +var bool m_bRewardDataLoaded; +var bool m_bInvitationSent; +var float m_fReferralTimeRemaining; +var UISocial.SOCIALSTATE m_eState; +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderGlow; +var GFxObject m_mcHeaderButton[5]; +var GFxObject m_mcHeaderButtonCTA[5]; +var GFxObject m_mcHeaderButtonLine[5]; +var GFxObject m_mcHeaderButtonGlow[5]; +var GFxObject m_mcHeaderButtonBounds[5]; +var GFxObject m_mcHeaderButtonShadow[5]; +var GFxObject m_mcHeaderButtonSelected[5]; +var GFxObject m_mcHeaderButtonHighlight[5]; +var GFxObject m_mcReferral; +var GFxObject m_mcReferralPanel; +var GFxObject m_mcReferralLevels; +var GFxObject m_mcReferralFriends; +var GFxObject m_mcReferralRewards; +var GFxObject m_mcReferralTimeTitle; +var GFxObject m_mcReferralTimeSubtitle; +var GFxObject m_mcReferralButton[3]; +var ReferralReward m_ReferralLevels[5]; +var ReferralReward m_ReferralRewards[6]; +var ReferralReward m_ReferralFriends[5]; +var ReferralReward m_ReferredLevels[5]; +var ReferralReward m_ReferredFriends[5]; +var GFxObject m_mcReferredRewardsPopup; +var GFxObject m_mcReferredRewardsPopupPanel; +var GFxObject m_mcReferredRewardsPopupLevels; +var GFxObject m_mcReferredRewardsPopupButton; +var GFxObject m_mcReferredRewardsPopupFriends; +var GFxObject m_mcReferredRewardsPopupTimeTitle; +var GFxObject m_mcReferredRewardsPopupTimeSubtitle; +var GFxObject m_mcReferredFriendsPopup; +var GFxObject m_mcReferredFriendsPopupList; +var GFxObject m_mcReferredFriendsPopupListScrollbar; +var GFxObject m_mcReferredFriendsPopupName[7]; +var GFxObject m_mcReferredFriendsPopupEntry[7]; +var GFxObject m_mcReferredFriendsPopupLevel[7]; +var GFxObject m_mcReferredFriendsPopupHours[7]; +var GFxObject m_mcSendReferralFriendsPopup; +var GFxObject m_mcSendReferralFriendsPopupList; +var GFxObject m_mcSendReferralFriendsPopupListScrollbar; +var GFxObject m_mcSendReferralFriendsPopupEntry[7]; +var GFxObject m_mcSendReferralFriendsPopupName[7]; +var TgGFxGroup m_grParty; +var TgGFxGroup m_grPartyDetail; +var TgGFxGroup m_grFriends; +var TgGFxGroup m_grFriendDetail; +var TgGFxGroup m_grReferrals; +var TgGFxGroup m_grReferredRewards; +var TgGFxGroup m_grReferredFriends; +var TgGFxGroup m_grSendReferralFriends; +var TgGFxGroup m_grRecentPlayers; +var TgGFxGroup m_grLookingForParty; +var array m_vReferredFriends; +var GFxObject m_mcFriends; +var GFxObject m_mcFriendsAdd; +var GFxObject m_mcFriendsTitle; +var GFxObject m_mcFriendsInput; +var GFxObject m_mcFriendsSubtitle; +var GFxObject m_mcFriendScrollbar; +var GFxObject m_mcFriend[7]; +var GFxObject m_mcFriendIcon[7]; +var GFxObject m_mcFriendName[7]; +var GFxObject m_mcFriendLevel[7]; +var GFxObject m_mcFriendStatus[7]; +var GFxObject m_mcFriendSelected[7]; +var GFxObject m_mcFriendRankedIndicator[7]; +var GFxObject m_mcFriendRankedIndicatorRankIcon[7]; +var GFxObject m_mcFriendDetail; +var GFxObject m_mcFriendDetailIcon; +var GFxObject m_mcFriendDetailName; +var GFxObject m_mcFriendDetailLevel; +var GFxObject m_mcFriendDetailStatus; +var GFxObject m_mcFriendDetailButton[3]; +var GFxObject m_mcParty; +var GFxObject m_mcPartyAdd; +var GFxObject m_mcPartyInput; +var GFxObject m_mcPartyLeave; +var GFxObject m_mcPartyTitle; +var GFxObject m_mcPartyScrollbar; +var GFxObject m_mcPartyBonus; +var GFxObject m_mcPartyBonusIcon; +var GFxObject m_mcPartyBonusIconIcon; +var GFxObject m_mcPartyBonusIconFrame; +var GFxObject m_mcPartyBonusTitle; +var GFxObject m_mcPartyBonusActive; +var GFxObject m_mcPartyBonusEntry0; +var GFxObject m_mcPartyBonusEntry1; +var GFxObject m_mcPartyBonusEntry2; +var GFxObject m_mcMember[5]; +var GFxObject m_mcMemberIcon[5]; +var GFxObject m_mcMemberName[5]; +var GFxObject m_mcMemberLevel[5]; +var GFxObject m_mcMemberStatus[5]; +var GFxObject m_mcMemberSelected[5]; +var GFxObject m_mcMemberRankedIndicator[7]; +var GFxObject m_mcMemberRankedIndicatorRankIcon[7]; +var GFxObject m_mcMemberInviteButton[5]; +var GFxObject m_mcMemberInviteButtonText[5]; +var GFxObject m_mcMemberDetail; +var GFxObject m_mcMemberDetailIcon; +var GFxObject m_mcMemberDetailName; +var GFxObject m_mcMemberDetailLevel; +var GFxObject m_mcMemberDetailStatus; +var GFxObject m_mcMemberDetailButton[3]; + +defaultproperties +{ + m_nMemberDetail=-1 + m_nReferralTier2Level=15 + m_OptionList[0]=14 + m_OptionList[1]=4 + m_nBackground=4 + m_bBlur=true + m_bResetHeaderFocusOnShow=false + m_bIsOnline=true + m_bAllowMultipleOnStack=false + m_Name="UISocial" +} diff --git a/Development/Src/TgClient/Classes/UIStore.uc b/Development/Src/TgClient/Classes/UIStore.uc new file mode 100644 index 0000000..e14fe6b --- /dev/null +++ b/Development/Src/TgClient/Classes/UIStore.uc @@ -0,0 +1,431 @@ +class UIStore extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine) + dependson(UILandingPanelManager); + +const UISTORE_TABS = 5; + +const UISTORE_ARROWS = 2; + +const UISTORE_CHESTS = 15; + +const UISTORE_FEATURES = 7; + +const UISTORE_INPUTCOUNT = 3; + +const UISTORE_EXCLUSIVES = 10; + +const UISTORE_ITEMTABS = 11; + +const FILTER_POPUP_OPTION_COUNT = 4; + +const FILTER_POPUP_RARITY_COUNT = 5; + +const UISTORE_CHEST_BUNDLE_DROPDOWN_COUNT = 5; + +const UICHESTS_MAX_BUNDLES = 4; + +const UISTORE_CAROUSEL_PANEL = 1; + +const UISTORE_CURRENCIES = 2; + +const UISTORE_ENCHANTEDKEYS = 2; + +enum UISTORE_STATE { + UISTS_FEATURES, // 0 + UISTS_CHAMPIONS, // 1 + UISTS_ITEMS, // 2 + UISTS_CHESTS, // 3 + UISTS_ACCOUNT, // 4 +}; + +enum UISTORETAB_STATE { + UISTT_COLLECTIONS, // 0 + UISTT_WEAPONS, // 1 + UISTT_SETS, // 2 + UISTT_HEADS, // 3 + UISTT_BODIES, // 4 + UISTT_EMOTES, // 5 + UISTT_VOICES, // 6 + UISTT_MVPPOSES, // 7 + UISTT_SPRAYS, // 8 + UISTT_MOUNTS, // 9 + UISTT_ANNOUNCERPACKS, // 10 +}; + +enum EStoreSort { + SSORT_Default, // 0 + SSORT_Newest, // 1 + SSORT_Champion, // 2 + SSORT_RarityDescending, // 3 + SSORT_RarityAscending, // 4 + SSORT_Name, // 5 +}; + +enum EChampionFilter { + CFILTER_All, // 0 + CFILTER_Owned, // 1 + CFILTER_Individual, // 2 +}; + +struct UIStoreFoundersPackPanel { + var GFxObject Obj; + var GFxObject Title; + var GFxObject SubTitle; + var GFxObject BuyNow; + var GFxObject Price; + var GFxObject SaleBanner; + structdefaultproperties {} +}; + +struct UISprayRentalData { + var int nSprayItemId; + var int nSprayVendorId; + var int nChestItemId; + var int nLootId; + var int nBundleVendorId; + var int nBundleCount; + var int nBundleItemIds[4]; + var int nBundleItemCounts[4]; + structdefaultproperties {} +}; + +struct UIEnchantKeyPanel { + var GFxObject Container; + var GFxObject PanelFrame; + var GFxObject Icon; + var GFxObject RarityText; + var GFxObject Desc; + var GFxObject Price; + var GFxObject PriceTF; + var GFxObject UnavailableTF; + structdefaultproperties {} +}; + +struct StoreFilter { + var UIStore.EStoreSort eCurrentSorting; + var UIStore.EChampionFilter eCurrentChampionFilter; + var int nIndividuallyFilteredBotId; + var bool bAvailable; + var bool bNotOwned; + var int nRarityFilter[5]; + structdefaultproperties {} +}; + +var bool m_bResetSkins; +var bool m_bResetChampions; +var bool m_bAnimatingItems; +var bool m_bAnimatingChampions; +var bool m_bRedeemCode; +var bool m_bEnchanting; +var bool m_bNameChange; +var bool m_bIsRenting; +var bool m_bUseCardIcon; +var bool m_bHovering; +var bool m_bRotating; +var bool m_bItemTotalsCalculated; +var bool m_bFilterEnabled; +var bool m_bDropdownOpen; +var bool m_bShowFounderAdd; +var int m_nRefocusNeeded; +var int m_nItemEmoteId; +var int m_nItemHeadId; +var int m_nItemSkinId; +var int m_nItemWeapon; +var int m_nItemVoiceId; +var int m_nWeaponDeviceId; +var int m_nItemMVPPose; +var int m_nItemSpray; +var int m_nItemMount; +var int m_nAnnouncerPack; +var int m_nActiveItem; +var int m_nActiveChampion; +var int m_nChestIndex; +var int m_nChestBundleIndex; +var int m_nItemScroll; +var int m_nChampionScroll; +var float m_fWaitTimer; +var byte m_eState; +var byte m_eTabState; +var float m_fGlowTimerA1; +var float m_fGlowTimerA2; +var float m_fGlowTimerA3; +var float m_fGlowTimerB1; +var float m_fGlowTimerB2; +var float m_fGlowTimerB3; +var int m_nChestIconFrame; +var int m_nSprayIconFrame; +var int m_nChestQuantity; +var int m_nSprayIconIndex; +var int m_nSprayRarityIndex; +var dword m_dwCrystalCost; +var dword m_dwGoldCost; +var dword m_dwOriginalCrystalCost; +var string m_sSprayName; +var string m_sChestName; +var int m_nOwnedItemCount; +var int m_nTotalItemCount; +var float m_fPreviousPosX; +var int m_nExclusiveCount; +var UIDataItem m_pExclusiveItems[10]; +var array m_StoreItems; +var init array m_FeatureData; +var int m_nItemCounts[11]; +var int m_nItemTotals[11]; +var GFxObject m_mcBack; +var GFxObject m_mcTitle; +var GFxObject m_mcHeader; +var GFxObject m_mcHeaderCrystals; +var GFxObject m_mcHeaderCrystalsConsole; +var GFxObject m_mcHeaderButton[5]; +var GFxObject m_mcHeaderButtonShadow[5]; +var GFxObject m_mcHeaderButtonSelected[5]; +var GFxObject m_mcHeaderButtonHighlight[5]; +var GFxObject m_mcHeaderButtonChestsCTA; +var GFxObject m_mcFeatures; +var UIInteractable_JsonPanel_Carousel m_CarouselPanel; +var UIInteractable_JsonPanel m_JsonPanel[7]; +var TgGFxGroup m_grFeatures; +var GFxObject m_mcItems; +var GFxObject m_mcItemContainer; +var GFxObject m_mcItemScrollBar; +var GFxObject m_mcItemTab[11]; +var GFxObject m_mcItemTabCount[11]; +var GFxObject m_mcItemTabSelected[11]; +var GFxObject m_mcRotator_Item; +var GFxObject m_mcExclusiveBanner; +var GFxObject m_mcExclusiveLabel; +var GFxObject m_mcExclusiveDescription; +var GFxObject m_mcNoItemResultsText; +var GFxObject m_mcItemRentalText; +var GFxObject m_mcItemRentalTextLabel; +var GFxObject m_mcItemRentalTextDuration; +var TgGFxGroup m_grItemTabs; +var TgGFxGroup m_grItems; +var GFxObject m_mcFilterBar; +var GFxObject m_mcButtonFilter; +var GFxObject m_mcFilterText; +var GFxObject m_mcClearFilterButton; +var GFxObject m_mcChampionFilterLabel; +var UIComponent_Dropdown m_ChampionFilterDropdown; +var GFxObject m_mcFilterGamepadPrompt; +var GFxObject m_mcFilterPopup; +var GFxObject m_mcFilterPopupMainPanel; +var GFxObject m_mcFilterPopupConfirmButton; +var GFxObject m_mcFilterPopupGamepadButtonLeft; +var GFxObject m_mcFilterPopupGamepadButtonRight; +var GFxObject m_mcFilterPopupCloseButton; +var GFxObject m_mcFilterPopupTitle; +var GFxObject m_mcFilterPopupSortOption; +var GFxObject m_mcFilterPopupSortOptionText; +var GFxObject m_mcFilterPopupSortOptionHighlight; +var GFxObject m_mcFilterPopupOptionCarouselLeftArrow; +var GFxObject m_mcFilterPopupOptionCarouselRightArrow; +var GFxObject m_mcFilterPopupItemNotOwnedOption; +var GFxObject m_mcFilterPopupItemNotOwnedOptionText; +var GFxObject m_mcFilterPopupItemNotOwnedOptionToggle; +var GFxObject m_mcFilterPopupAvailableOption; +var GFxObject m_mcFilterPopupAvailableOptionText; +var GFxObject m_mcFilterPopupAvailableOptionToggle; +var GFxObject m_mcFilterPopupRarity[5]; +var GFxObject m_mcFilterPopupRarityToggle[5]; +var GFxObject m_mcFilterPopupSortByText; +var GFxObject m_mcFilterPopupFilterText; +var GFxObject m_mcFilterPopupRarityText; +var TgGFxGroup m_grFilterPopup; +var GFxObject m_mcChampions; +var UIStoreFoundersPackPanel m_FoundersPack; +var GFxObject m_mcChampionContainer; +var GFxObject m_mcChampionScrollBar; +var GFxObject m_mcRotator_Champion; +var GFxObject m_mcChampionRentalText; +var GFxObject m_mcChampionRentalTextLabel; +var GFxObject m_mcChampionRentalTextDuration; +var TgGFxGroup m_grChampions; +var TgGFxGroup m_grpFounderPack; +var GFxObject m_mcChests; +var GFxObject m_mcChest[15]; +var GFxObject m_mcChestGlowA[15]; +var GFxObject m_mcChestGlowB[15]; +var GFxObject m_mcChestArrows[2]; +var GFxObject m_mcPrevChestPrompt; +var GFxObject m_mcNextChestPrompt; +var GFxObject m_mcChestName; +var GFxObject m_mcChestTime; +var GFxObject m_mcChestPanel; +var GFxObject m_mcChestPanelCTA; +var GFxObject m_mcChestPanelEnchantButton; +var GFxObject m_mcChestPanelEnchantButtonTF; +var GFxObject m_mcChestPanelIcon; +var GFxObject m_mcChestPanelName; +var GFxObject m_mcChestPanelType; +var GFxObject m_mcChestPanelDesc; +var GFxObject m_mcChestPanelCount; +var GFxObject m_mcChestPanelPriceContainer; +var GFxObject m_mcChestPanelDetails; +var GFxObject m_mcChestPanelPurchase; +var GFxObject m_mcChestPanelCursor; +var GFxObject m_mcChestSaleBanner; +var GFxObject m_mcChestSaleText; +var GFxObject m_mcChestCouponBanner; +var GFxObject m_mcChestCouponBannerText; +var GFxObject m_mcChestCouponBannerIcon; +var GFxObject m_mcChestPanelHidden; +var GFxObject m_mcChestPanelChestIcon; +var GFxObject m_mcChestPanelSprayIcon; +var GFxObject m_mcChestPanelSprayIconGfx; +var GFxObject m_mcChestPanelSprayIconCard; +var GFxObject m_mcChestPanelSprayIconRarity; +var GFxObject m_mcChestPanelRentalLabel; +var GFxObject m_mcChestPanelRentalTime; +var TgGFxGroup m_grRentSpray; +var GFxObject m_mcRentSprayPopup; +var GFxObject m_mcRentSprayPopupBlocker; +var GFxObject m_mcRentSprayPopupWindow; +var GFxObject m_mcRentSprayPopupWindowCursor; +var GFxObject m_mcRentSprayPopupWindowWait; +var GFxObject m_mcRentSprayPopupWindowSpinner; +var GFxObject m_mcRentSprayPopupName; +var GFxObject m_mcRentSprayPopupIcon; +var GFxObject m_mcRentSprayPopupIconGfx; +var GFxObject m_mcRentSprayPopupIconCard; +var GFxObject m_mcRentSprayPopupIconRarity; +var GFxObject m_mcRentSprayPopupTime; +var GFxObject m_mcRentSprayPopupChestIcon; +var GFxObject m_mcRentSprayPopupCancel; +var GFxObject m_mcRentSprayPopupOwnedCrystals; +var GFxObject m_mcRentSprayPopupOwnedGold; +var GFxObject m_mcRentSprayPopupOwnedEssence; +var GFxObject m_mcRentSprayPopupOption0; +var GFxObject m_mcRentSprayPopupOption0TF; +var GFxObject m_mcRentSprayPopupOption0CurrentCost; +var GFxObject m_mcRentSprayPopupOption0Purchase; +var GFxObject m_mcRentSprayPopupOption0PurchaseBG; +var GFxObject m_mcRentSprayPopupOption0PurchaseTF; +var GFxObject m_mcRentSprayPopupOption0PurchaseIcon; +var GFxObject m_mcRentSprayPopupOption1; +var GFxObject m_mcRentSprayPopupOption1TF; +var GFxObject m_mcRentSprayPopupOption1CurrentCost; +var GFxObject m_mcRentSprayPopupOption1Purchase; +var GFxObject m_mcRentSprayPopupOption1PurchaseBG; +var GFxObject m_mcRentSprayPopupOption1PurchaseTF; +var GFxObject m_mcRentSprayPopupOption1PurchaseIcon; +var GFxObject m_mcRentSprayPopupChestQuantity; +var GFxObject m_mcRentSprayPopupChestName; +var GFxObject m_mcRentSprayPopupPrice; +var GFxObject m_mcChestPanelQuantityDropdownToggle; +var GFxObject m_mcChestPanelQuantityDropdownPrompt; +var GFxObject m_mcChestPanelQuantityDropdownToggle_Inner; +var GFxObject m_mcChestPanelQuantityDropdownPrompt_Inner; +var GFxObject m_mcChestPanelPurchaseQuantity; +var GFxObject m_mcChestPanelDropdown; +var GFxObject m_mcChestPanelDropdownMask; +var GFxObject m_mcChestPanelDropdownFrame; +var GFxObject m_mcChestPanelDropdownOptions[5]; +var TgGFxGroup m_grChestPanelDropdown; +var GFxObject m_mcChestDetails; +var GFxObject m_mcChestDetailName; +var GFxObject m_mcChestDetailRarity; +var GFxObject m_mcChestExclusives; +var GFxObject m_mcChestExclusivesFrame; +var GFxObject m_mcChestExclusivesTitle; +var GFxObject m_mcChestExclusivesSubtitle; +var GFxObject m_mcChestExclusiveLabel; +var GFxObject m_mcChestExclusive[10]; +var GFxObject m_mcChestExclusiveIcon[10]; +var GFxObject m_mcChestExclusiveLock[10]; +var GFxObject m_mcChestExclusiveFrame[10]; +var GFxObject m_mcChestExclusiveShadow[10]; +var GFxObject m_mcChestExclusiveHighlight[10]; +var TgGFxGroup m_grChests; +var TgGFxGroup m_grBundledChest; +var UIComponent_HoldPrompt m_uiRentHold; +var TgGFxGroup m_grEnchantChest; +var GFxObject m_mcEnchantPopup; +var GFxObject m_mcEnchantPopupBlocker; +var GFxObject m_mcEnchantPopupBG; +var GFxObject m_mcEnchantPopupTitle; +var GFxObject m_mcEnchantPopupSubtitle; +var GFxObject m_mcEnchantPopupCancelButton; +var GFxObject m_mcEnchantPopupCancelButtonTF; +var GFxObject m_mcEnchantPopupCancelButtonBG; +var UIEnchantKeyPanel m_EnchantedKeyPanels[2]; +var string m_sEnchantedKeyNames[2]; +var string m_sEnchantedKeyDescriptions[2]; +var int m_nEnchantedKeyRarity[2]; +var int m_nEnchantedKeyItemId[2]; +var int m_nEnchantedKeyIconIndex[2]; +var GFxObject m_mcAccount; +var GFxObject m_mcAccountCode; +var GFxObject m_mcAccountBoost; +var GFxObject m_mcAccountName; +var TgGFxGroup m_grAccount; +var GFxObject m_mcPopup; +var GFxObject m_mcPopupWait; +var GFxObject m_mcPopupError; +var GFxObject m_mcPopupInput; +var GFxObject m_mcPopupTitle; +var GFxObject m_mcPopupSubtitle; +var GFxObject m_mcPopupInputFrame; +var GFxObject m_mcPopupButton[3]; +var GFxObject m_mcPopupButtonTitle[3]; +var TgGFxGroup m_grPopup; +var array m_Items; +var array m_ItemLinks; +var array m_Champions; +var array m_PvEChampions; +var array m_ChampionLinks; +var () int m_nItemXOffset; +var () int m_nItemYOffset; +var () int m_nItemWidth; +var () int m_nItemHeight; +var int m_nItemButtonHeight; +var int m_nItemButtonWidth; +var int m_nItemsShown; +var int m_nItemsTotal; +var dword m_dwChestOpenDelay; +var dword m_dwChestNextOpenTime; +var string m_sCurrencyCode; +var string m_sFoundersPackTitle; +var string m_sFoundersPackSubtitle; +var int m_nChampionDropdownIndex; +var float m_nEmptyItemTabAlpha; +var StoreFilter m_DefaultStoreFilter; +var StoreFilter m_CurrentStoreFilter; +var StoreFilter m_InProgressStoreFilter; +var float m_fOriginalCollisionHeight; +var float m_fOriginalCollisionRadius; + +native function OnTeamModelUpdated(); // Export UUIStore::execOnTeamModelUpdated(FFrame&, void* const) + +defaultproperties +{ + m_sEnchantedKeyNames[0]="m_lsEnchantedKey" + m_sEnchantedKeyNames[1]="m_lsLegendaryKey" + m_sEnchantedKeyDescriptions[0]="m_lsEnchantedKeyDesc" + m_sEnchantedKeyDescriptions[1]="m_lsLegendaryKeyDesc" + m_nEnchantedKeyRarity[0]=2 + m_nEnchantedKeyRarity[1]=5 + m_nItemXOffset=120 + m_nItemYOffset=143 + m_nItemWidth=220 + m_nItemHeight=235 + m_nItemButtonHeight=32 + m_nItemButtonWidth=190 + m_nEmptyItemTabAlpha=35.0000000 + m_DefaultStoreFilter=(eCurrentSorting=SSORT_Default,eCurrentChampionFilter=CFILTER_All,nIndividuallyFilteredBotId=2092,bAvailable=true,bNotOwned=true,nRarityFilter=1,nRarityFilter[1]=1,nRarityFilter[2]=1,nRarityFilter[3]=1,nRarityFilter[4]=1) + m_CurrentStoreFilter=(eCurrentSorting=SSORT_Default,eCurrentChampionFilter=CFILTER_All,nIndividuallyFilteredBotId=2092,bAvailable=true,bNotOwned=true,nRarityFilter=1,nRarityFilter[1]=1,nRarityFilter[2]=1,nRarityFilter[3]=1,nRarityFilter[4]=1) + m_InProgressStoreFilter=(eCurrentSorting=SSORT_Default,eCurrentChampionFilter=CFILTER_All,nIndividuallyFilteredBotId=2092,bAvailable=true,bNotOwned=true,nRarityFilter=1,nRarityFilter[1]=1,nRarityFilter[2]=1,nRarityFilter[3]=1,nRarityFilter[4]=1) + m_UISceneClass=Class'UIScene_UIStore' + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_OptionList[3]=0 + m_OptionList[4]=0 + m_OptionList[5]=0 + m_bBlur=true + m_bBlurForeground=true + m_bResetHeaderFocusOnShow=false + m_bAllowMultipleOnStack=false + m_Name="UIStore" +} diff --git a/Development/Src/TgClient/Classes/UIStoreDetail.uc b/Development/Src/TgClient/Classes/UIStoreDetail.uc new file mode 100644 index 0000000..b7e1ff3 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIStoreDetail.uc @@ -0,0 +1,87 @@ +class UIStoreDetail extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +const UISTOREDETAIL_COUNT = 6; + +var int m_nItemId; +var int m_nVendorId; +var int m_nScrollIndex; +var UIDataItem m_pCollection; +var bool m_bHovering; +var bool m_bRotating; +var float m_fPreviousPosX; +var GFxObject m_mcBack; +var GFxObject m_mcIcon; +var GFxObject m_mcChest; +var GFxObject m_mcTitle; +var GFxObject m_mcHeader; +var GFxObject m_mcSubtitle; +var GFxObject m_mcScrollBar; +var GFxObject m_mcDescriptionA; +var GFxObject m_mcDescriptionB; +var GFxObject m_mcDescriptionC; +var GFxObject m_mcRotator; +var GFxObject m_mcExclusiveBanner; +var GFxObject m_mcExclusiveLabel; +var GFxObject m_mcExclusiveDescription; +var GFxObject m_mcExclusiveIconQuests; +var GFxObject m_mcSlot[6]; +var GFxObject m_mcSlotBack[6]; +var GFxObject m_mcSlotLock[6]; +var GFxObject m_mcSlotOwnedText[6]; +var GFxObject m_mcSlotOwnedCheckmark[6]; +var GFxObject m_mcSlotQuestLock[6]; +var GFxObject m_mcSlotLockProgress[6]; +var GFxObject m_mcSlotLockProgressMask[6]; +var GFxObject m_mcSlotType[6]; +var GFxObject m_mcSlotIcon[6]; +var GFxObject m_mcSlotCardIcon[6]; +var GFxObject m_mcSlotName[6]; +var GFxObject m_mcSlotFade[6]; +var GFxObject m_mcSlotChest[6]; +var GFxObject m_mcSlotFrame[6]; +var GFxObject m_mcSlotIcon_Image[6]; +var GFxObject m_mcSlotCardIcon_Image[6]; +var GFxObject m_mcSlotPriceA[6]; +var GFxObject m_mcSlotPriceB[6]; +var GFxObject m_mcSlotRarity[6]; +var GFxObject m_mcSlotUnlock[6]; +var GFxObject m_mcSlotSelected[6]; +var GFxObject m_mcSlotExclusive[6]; +var UIComponent_ItemObtainabilityBanner m_pSlotBanner[6]; +var GFxObject m_mcSlotIconFrame[6]; +var GFxObject m_mcPurchaseCollection; +var GFxObject m_mcPurchaseCollectionTitle; +var GFxObject m_mcPurchaseCollectionPrice; +var GFxObject m_mcPurchaseCollectionPriceStrikethrough; +var GFxObject m_mcPurchaseCollectionNewPrice; +var GFxObject m_mcPurchaseCollectionPriceGold; +var GFxObject m_mcPurchaseCollectionPriceGoldStrikethrough; +var GFxObject m_mcPurchaseCollectionNewPriceGold; +var GFxObject m_mcPurchaseCollectionFrame; +var GFxObject m_mcPurchaseCollectionCouponBanner; +var UIInteractable_Button m_PurchaseCollectionButton; +var TgGFxGroup m_grStoreDetail; +var array m_Items; +var array m_ChestExclusiveItems; +var int m_nPreviewHeadId; +var int m_nPreviewSkinId; +var int m_nPreviewWeapon; +var int m_nPreviewWeaponId; +var int m_nPreviewVoice; +var int m_nPreviewEmote; +var int m_nPreviewMVPPose; +var int m_nPreviewSpray; +var int m_nPreviewMount; + +native function OnTeamModelUpdated(); // Export UUIStoreDetail::execOnTeamModelUpdated(FFrame&, void* const) + +defaultproperties +{ + m_OptionList[0]=14 + m_OptionList[1]=4 + m_OptionList[2]=0 + m_bBlur=true + m_Name="UIStoreDetail" +} diff --git a/Development/Src/TgClient/Classes/UISubtitle.uc b/Development/Src/TgClient/Classes/UISubtitle.uc new file mode 100644 index 0000000..37b4b84 --- /dev/null +++ b/Development/Src/TgClient/Classes/UISubtitle.uc @@ -0,0 +1,14 @@ +class UISubtitle extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var float m_fTimer; +var float m_fSwitchTimer; +var string m_sNewSubtitle; +var GFxObject m_mcText; +var GFxObject m_mcFrame; + +defaultproperties +{ + m_Name="UISubtitle" +} diff --git a/Development/Src/TgClient/Classes/UIWebBrowser.uc b/Development/Src/TgClient/Classes/UIWebBrowser.uc new file mode 100644 index 0000000..3543839 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIWebBrowser.uc @@ -0,0 +1,21 @@ +class UIWebBrowser extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Engine); + +var bool m_bAutoClose; +var bool m_bDrawBorder; +var GFxObject m_mcFrame; +var GFxObject m_mcBrowserShape; +var GFxObject m_mcBackButton; +var GFxObject m_mcForwardButton; +var GFxObject m_mcCloseButton; + +defaultproperties +{ + m_OptionList[0]=14 + m_OptionList[1]=4 + m_eScalingType=UISCALING_FITTALL + m_bBlur=true + m_bIsPopup=true + m_Name="UIWebBrowser" +} diff --git a/Development/Src/TgClient/Classes/UIWorldOverlay.uc b/Development/Src/TgClient/Classes/UIWorldOverlay.uc new file mode 100644 index 0000000..f6c9852 --- /dev/null +++ b/Development/Src/TgClient/Classes/UIWorldOverlay.uc @@ -0,0 +1,162 @@ +class UIWorldOverlay extends TgGfxScene within GFxMoviePlayer + native(GFxScene) + config(Game); + +const UIWORLDOVERLAY_MAXTICKS = 60; + +const UIWORLDOVERLAY_HEALTHPERTICK = 250; + +enum EDeployableOverlayType { + EDOT_Targetable, // 0 + EDOT_Player, // 1 + EDOT_Deployable, // 2 +}; + +enum EDeployableOverlayInternalState { + EDOIS_None, // 0 + EDOIS_Created, // 1 + EDOIS_Idle, // 2 + EDOIS_Active, // 3 + EDOIS_TimedOut, // 4 + EDOIS_Destroyed, // 5 + EDOIS_Inactive, // 6 +}; + +struct OverlayData { + var int nId; + var bool bInit; + var float fRoll; + var float fScale; + var float fTimer; + var float fAnimX; + var float fAnimY; + var float fStartX; + var float fStartY; + var Vector vWorldLoc; + var Vector vScreenLoc; + var GFxObject pClip; + structdefaultproperties {} +}; + +struct UITargetableOverlay { + var int nLastColorFrame; + var int nTargetId; + var bool bInit; + var bool bEnemy; + var bool bVisible; + var bool bOnEdge; + var bool bHighlight; + var bool bTraceResult; + var float fAlpha; + var float fScale; + var float fTraceTimer; + var float fHighlightTimer; + var Vector vWorldLoc; + var Vector vScreenLoc; + var string CachedName; + var GFxObject pClip; + var GFxObject pName; + var GFxObject pCarat; + var GFxObject pHealingIndicator; + var GFxObject pIcon; + var GFxObject pHealthBarParent; + var UIComponent_HealthBar_Overlay pHealthBar; + var UIWorldOverlay.EDeployableOverlayType eType; + structdefaultproperties {} +}; + +struct UIPlayerOverlay extends UITargetableOverlay { + var int nMarked; + var int nStreak; + var int nUltCharge; + var float fBarragePercent; + var GFxObject pMarked; + var GFxObject pStreak; + var GFxObject pUltimatePercent; + var GFxObject pBarrageFrame; + var GFxObject pBarrageMeter; + var GFxObject pHuntersMark; + var GFxObject pLexExecuteMark; + var GFxObject pLexTargetMark; + var GFxObject pLexVengeanceMark; + var GFxObject pLexExecuteGuide; + var GFxObject pAstroLotus; + var UIComponent_OracleSoulCharges pSoulCharges; + var UIComponent_TelepunchTarget pTelepunch; + var float fHideTimer; + var bool bInParty; + var bool bShowPlayerIcon; + var bool bShowPlayerName; +}; + +struct UIDeployableOverlay extends UITargetableOverlay { + var bool bMine; + var GFxObject pIconParent; + var GFxObject pLeftArc; + var GFxObject pRightArc; + var GFxObject pTopArc; + var GFxObject pPointer; + var GFxObject pBarrageFrame; + var GFxObject pBarrageMeter; + var float fAnimTime; + var UIWorldOverlay.EDeployableOverlayInternalState eState; + var float fDamagePulseTimer; +}; + +var config bool ShowAllTeamAsParty; +var bool m_bSpectatorShowPlayerIcons; +var int m_nDepth; +var int m_nCritCount; +var int m_nLastValue; +var int m_nLastTargetId; +var int m_nDamageNumberType; +var byte m_eLastTargetType; +var float m_fDelta; +var float m_fRange; +var float m_fInterp; +var float m_fCritSpeed; +var float m_fCritBloom; +var float m_fCritTimer; +var float m_fDamageSpeed; +var float m_fDamageBloom; +var float m_fDamageTimer; +var float m_fStatusTimer; +var float m_fStatusSpeed; +var float m_fStatusBloom; +var float m_fHealingSpeed; +var float m_fHealingBloom; +var float m_fHealingTimer; +var float m_fResolutionModX; +var float m_fResolutionModY; +var array m_CritData; +var array m_DamageData; +var array m_StatusData; +var array m_HealingData; +var array m_PlayerOverlays; +var array m_DeployableOverlays; + +event bool GetScreenCoordinates(float fClipSize, Canvas pCanvas, Vector CameraLocation, Vector CameraRotation, Vector ObjectLocation, out Vector ScreenLocation) { } + +defaultproperties +{ + m_fInterp=80.0000000 + m_fCritSpeed=12.0000000 + m_fCritBloom=400.0000000 + m_fCritTimer=1.0000000 + m_fDamageSpeed=12.0000000 + m_fDamageBloom=400.0000000 + m_fDamageTimer=1.0000000 + m_fStatusTimer=1.0000000 + m_fStatusSpeed=20.0000000 + m_fStatusBloom=400.0000000 + m_fHealingSpeed=12.0000000 + m_fHealingBloom=400.0000000 + m_fHealingTimer=1.0000000 + m_fResolutionModX=1.0000000 + m_fResolutionModY=1.0000000 + m_bVisibleOnLoad=true + m_bAlwaysTick=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UIWorldOverlay" +} diff --git a/Development/Src/TgGame/Classes/AlienFXManager.uc b/Development/Src/TgGame/Classes/AlienFXManager.uc new file mode 100644 index 0000000..e2b37e0 --- /dev/null +++ b/Development/Src/TgGame/Classes/AlienFXManager.uc @@ -0,0 +1,81 @@ +class AlienFXManager extends Object + native + config(Engine); + +const PALADINS_COLOR_CYAN = 0x000fff; + +const PALADINS_COLOR_BLUE = 0x195766; + +const PALADINS_COLOR_DARK = 0x243745; + +const PALADINS_COLOR_RED = 0xbe1e2d; + +enum FXOverlay { + FXO_NONE, // 0 + FXO_MENU, // 1 + FXO_CHESTOPENING, // 2 + FXO_CHESTREVEAL, // 3 + FXO_UNLOCKEDCHAMP, // 4 + FXO_MATCHLOBBY, // 5 + FXO_MATCHSETUP, // 6 + FXO_GAMEPLAY, // 7 + FXO_MATCHOVERTIME, // 8 + FXO_MATCHVICTORY, // 9 + FXO_MATCHDEFEAT, // 10 + FXO_POINTVICTORY, // 11 + FXO_POINTDEFEAT, // 12 + FXO_ULT, // 13 +}; + +var bool m_bGood; +var bool m_bLoaded; +var int m_nChestRevealRarity; +var float m_fTransitionTimestamp; +var float m_fTimespan; +var float m_fFrequency; +var dword m_dwPrimaryColor; +var float m_fDecayLambda; +var float c_fUltHalflife; +var AlienFXManager.FXOverlay ePrevOverlay; +var AlienFXManager.FXOverlay eCurrOverlay; + +native function Initialize(); // Export UAlienFXManager::execInitialize(FFrame&, void* const) + +native function Close(); // Export UAlienFXManager::execClose(FFrame&, void* const) + +native function OnChampionUnlocked(); // Export UAlienFXManager::execOnChampionUnlocked(FFrame&, void* const) + +native function OnChestOpening(); // Export UAlienFXManager::execOnChestOpening(FFrame&, void* const) + +native function OnMatchSoon(float fTimeLeft); // Export UAlienFXManager::execOnMatchSoon(FFrame&, void* const) + +native function OnMatchSetup(float fTimeLeft); // Export UAlienFXManager::execOnMatchSetup(FFrame&, void* const) + +native function OnMatchPoint(bool bWon); // Export UAlienFXManager::execOnMatchPoint(FFrame&, void* const) + +native function OnMatchOvertime(); // Export UAlienFXManager::execOnMatchOvertime(FFrame&, void* const) + +native function OnMatchConcluded(bool bVictorious); // Export UAlienFXManager::execOnMatchConcluded(FFrame&, void* const) + +native function OnChestOpened(int nRarity); // Export UAlienFXManager::execOnChestOpened(FFrame&, void* const) + +native function SetOverlay(byte Type, optional bool bAlwaysTimestamp); // Export UAlienFXManager::execSetOverlay(FFrame&, void* const) + +native function UpdateOverlay(float DeltaTime); // Export UAlienFXManager::execUpdateOverlay(FFrame&, void* const) + +native function Start(); // Export UAlienFXManager::execStart(FFrame&, void* const) + +native function Tick(float DeltaTime); // Export UAlienFXManager::execTick(FFrame&, void* const) + +native function float LongMorph(float fTime, float fFrequency); // Export UAlienFXManager::execLongMorph(FFrame&, void* const) + +native function float Breathe(float fTime, float fFrequency); // Export UAlienFXManager::execBreathe(FFrame&, void* const) + +native function float Decay(float fLevel, float fLambda); // Export UAlienFXManager::execDecay(FFrame&, void* const) + +native function Reset(); // Export UAlienFXManager::execReset(FFrame&, void* const) + +defaultproperties +{ + c_fUltHalflife=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/Interface_AIAnnotation.uc b/Development/Src/TgGame/Classes/Interface_AIAnnotation.uc new file mode 100644 index 0000000..4267152 --- /dev/null +++ b/Development/Src/TgGame/Classes/Interface_AIAnnotation.uc @@ -0,0 +1,3 @@ +interface Interface_AIAnnotation extends Interface; + +function GetAdjustedPosition(out Vector out_Position, Pawn AnnotationOwner, Actor Target); // Export UInterface_AIAnnotation::execGetAdjustedPosition(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAIAnnotation.uc b/Development/Src/TgGame/Classes/TgAIAnnotation.uc new file mode 100644 index 0000000..a6e6b63 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIAnnotation.uc @@ -0,0 +1,25 @@ +class TgAIAnnotation extends TgNavigationPoint + abstract + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + implements(Interface_AIAnnotation) + config(Engine) + dependson(TgAIController_Behavior); + +const DEFAULT_RANGE = 150; + +var TgAIController_Behavior.EAIAnnotationType AnnotationType; +var Pawn m_pClaimedBy; + +native function Pawn GetClaimedBy(); // Export UTgAIAnnotation::execGetClaimedBy(FFrame&, void* const) + +native function Claim(Pawn pClaimedBy); // Export UTgAIAnnotation::execClaim(FFrame&, void* const) + +native function Initialize(); // Export UTgAIAnnotation::execInitialize(FFrame&, void* const) + +native function GetAdjustedPosition(out Vector out_Position, Pawn AnnotationOwner, Actor Target); // Export UTgAIAnnotation::execGetAdjustedPosition(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction.uc new file mode 100644 index 0000000..d96d0bd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction.uc @@ -0,0 +1,5 @@ +class TgAIBehaviorAction extends TgAIBehaviorNode + abstract + native(AI) + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_AssignLane.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_AssignLane.uc new file mode 100644 index 0000000..57fa6a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_AssignLane.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_AssignLane extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () int LaneIndex; + +defaultproperties +{ + TitleName="AssignLane" + NodeToken=1048613 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_CancelFiring.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_CancelFiring.uc new file mode 100644 index 0000000..f6e5512 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_CancelFiring.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_CancelFiring extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CancelFiring" + NodeToken=1048617 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearCombatTarget.uc new file mode 100644 index 0000000..abae6ad --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearCombatTarget" + NodeToken=1048591 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLaneMoveTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLaneMoveTarget.uc new file mode 100644 index 0000000..7aa2d6a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLaneMoveTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearLaneMoveTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearLaneMoveTarget" + NodeToken=1048590 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLastAttacker.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLastAttacker.uc new file mode 100644 index 0000000..6a15a2f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLastAttacker.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearLastAttacker extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearLastAttacker" + NodeToken=1048603 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLookAtTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLookAtTarget.uc new file mode 100644 index 0000000..ef21405 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearLookAtTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearLookAtTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearLookAtTarget" + NodeToken=1048592 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearNavigationQueue.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearNavigationQueue.uc new file mode 100644 index 0000000..5f65834 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearNavigationQueue.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearNavigationQueue extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearNavigationQueue" + NodeToken=1048576 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearRallyPoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearRallyPoint.uc new file mode 100644 index 0000000..d7050ff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearRallyPoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearRallyPoint extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearRallyPoint" + NodeToken=1048616 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearSpreadLocation.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearSpreadLocation.uc new file mode 100644 index 0000000..35e0e85 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ClearSpreadLocation.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_ClearSpreadLocation extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="ClearSpreadLocation" + NodeToken=1048600 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowCombatTarget.uc new file mode 100644 index 0000000..658df93 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowCombatTarget.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_FollowCombatTarget extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="FollowCombatTarget" + NodeToken=1048579 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowLane.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowLane.uc new file mode 100644 index 0000000..4fd8d1f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowLane.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_FollowLane extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bUseReverseDirection; + +defaultproperties +{ + TitleName="FollowLane" + NodeToken=1048602 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowPatrol.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowPatrol.uc new file mode 100644 index 0000000..ac6d494 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_FollowPatrol.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_FollowPatrol extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="FollowPatrol" + NodeToken=1048609 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_GroupUp.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_GroupUp.uc new file mode 100644 index 0000000..b46b3f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_GroupUp.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_GroupUp extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () float MinDistance; +var () float MaxDistance; + +defaultproperties +{ + TitleName="GroupUp" + NodeToken=1048714 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_Juke.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Juke.uc new file mode 100644 index 0000000..39e3df7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Juke.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_Juke extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () float JukeDist; +var () float JukeProbability; + +defaultproperties +{ + JukeDist=1200.0000000 + JukeProbability=1.0000000 + TitleName="Juke" + NodeToken=1048606 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_Jump.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Jump.uc new file mode 100644 index 0000000..aee519b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Jump.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_Jump extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="Jump" + NodeToken=1048627 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_Leash.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Leash.uc new file mode 100644 index 0000000..bccab62 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Leash.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_Leash extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="Leash" + NodeToken=1048593 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtCapturePoint.uc new file mode 100644 index 0000000..41ca11d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtCapturePoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_LookAtCapturePoint extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="LookAtCapturePoint" + NodeToken=1048707 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtCombatTarget.uc new file mode 100644 index 0000000..8a8069b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtCombatTarget.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_LookAtCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bAllowAimNose; +var () bool bHeadShot; + +defaultproperties +{ + bAllowAimNose=true + bHeadShot=true + TitleName="LookAtCombatTarget" + NodeToken=1048580 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtFortress.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtFortress.uc new file mode 100644 index 0000000..e54209c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtFortress.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_LookAtFortress extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="LookAtFortress" + NodeToken=1048706 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtLanepusher.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtLanepusher.uc new file mode 100644 index 0000000..3a2ffb0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtLanepusher.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_LookAtLanepusher extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="LookAtLanepusher" + NodeToken=1048708 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtSpawnRotation.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtSpawnRotation.uc new file mode 100644 index 0000000..81467cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtSpawnRotation.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_LookAtSpawnRotation extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="LookAtSpawnRotation" + NodeToken=1048595 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtTargetLKL.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtTargetLKL.uc new file mode 100644 index 0000000..cb33437 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_LookAtTargetLKL.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_LookAtTargetLKL extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="LookAtTargetLastKnownLocation" + NodeToken=1048721 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveAroundLanePusher.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveAroundLanePusher.uc new file mode 100644 index 0000000..c9ed189 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveAroundLanePusher.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorAction_MoveAroundLanePusher extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () bool bMoveClockWise; + +defaultproperties +{ + TitleName="MoveAroundLanePusher" + NodeToken=1048713 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveBase.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveBase.uc new file mode 100644 index 0000000..67ffe29 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveBase.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorAction_MoveBase extends TgAIBehaviorAction + abstract + hidecategories(Object) + config(Engine); + +var () bool bSubtractPawnRadius; +var () bool bSubtractTargetPawnRadius; +var () bool bLookAtTarget; +var () bool bMustHaveLOS; +var () float MoveTolerance; diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToAssaultPosition.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToAssaultPosition.uc new file mode 100644 index 0000000..35ff390 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToAssaultPosition.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_MoveToAssaultPosition extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="MoveToAssaultPosition" + NodeToken=1048623 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToAvoidableProjectile.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToAvoidableProjectile.uc new file mode 100644 index 0000000..a03d88f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToAvoidableProjectile.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_MoveToAvoidableProjectile extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () bool bIgnoreInsideCollision; +var () bool bMoveAway; + +defaultproperties +{ + bMoveAway=true + TitleName="MoveToAvoidableProjectile" + NodeToken=1048712 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToCapturePoint.uc new file mode 100644 index 0000000..d132cc8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToCapturePoint.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorAction_MoveToCapturePoint extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ESelectionArbitrator Arbitrator; +var () bool bTeleport; + +defaultproperties +{ + bLookAtTarget=true + MoveTolerance=4.0000000 + TitleName="MoveToCapturePoint" + NodeToken=1048701 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToCover.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToCover.uc new file mode 100644 index 0000000..88c8285 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToCover.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_MoveToCover extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () bool bAllowPopout; + +defaultproperties +{ + bAllowPopout=true + TitleName="MoveToCover" + NodeToken=1048624 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToDamagingDeployable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToDamagingDeployable.uc new file mode 100644 index 0000000..1d5afa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToDamagingDeployable.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_MoveToDamagingDeployable extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () bool bIgnoreInsideCollision; +var () bool bMoveAway; + +defaultproperties +{ + bMoveAway=true + TitleName="MoveToDamagingDeployable" + NodeToken=1048711 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToDeployable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToDeployable.uc new file mode 100644 index 0000000..3ea8978 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToDeployable.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_MoveToDeployable extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () int DeployableId; +var () bool bMustBeEnemy; +var () bool bIgnoreInsideCollision; +var () bool bIgnoreTaskforce; + +defaultproperties +{ + TitleName="MoveToDeployable" + NodeToken=1048628 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLanePusher.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLanePusher.uc new file mode 100644 index 0000000..c2315aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLanePusher.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_MoveToLanePusher extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="MoveToLanePusher" + NodeToken=1048700 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLanePusherFront.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLanePusherFront.uc new file mode 100644 index 0000000..fa7a7f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLanePusherFront.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_MoveToLanePusherFront extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="MoveToLanePusherFront" + NodeToken=1048716 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLaneTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLaneTarget.uc new file mode 100644 index 0000000..34e3029 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLaneTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_MoveToLaneTarget extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="MoveToLaneTarget" + NodeToken=1048581 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLaneVolume.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLaneVolume.uc new file mode 100644 index 0000000..7eb8cbb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToLaneVolume.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_MoveToLaneVolume extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () bool bMustBeSameLane; + +defaultproperties +{ + TitleName="MoveToLaneVolume" + NodeToken=1048605 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToRallyPoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToRallyPoint.uc new file mode 100644 index 0000000..3064ffe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToRallyPoint.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_MoveToRallyPoint extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ESelectionArbitrator ArbitratorOnMultipleValid; +var () bool bMustBeSameLane; + +defaultproperties +{ + ArbitratorOnMultipleValid=ARBITRATE_RANDOM + TitleName="MoveToRallyPoint" + NodeToken=1048615 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToShield.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToShield.uc new file mode 100644 index 0000000..127ff04 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToShield.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_MoveToShield extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () bool bIgnoreInsideCollision; + +defaultproperties +{ + TitleName="MoveToShield" + NodeToken=1048710 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToTarget.uc new file mode 100644 index 0000000..7184fc6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_MoveToTarget.uc @@ -0,0 +1,8 @@ +class TgAIBehaviorAction_MoveToTarget extends TgAIBehaviorAction_MoveBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="MoveToScriptedTarget" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_PauseAI.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PauseAI.uc new file mode 100644 index 0000000..48b6f94 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PauseAI.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_PauseAI extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="Pause" + NodeToken=1048611 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_PlayEmote.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PlayEmote.uc new file mode 100644 index 0000000..160e38a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PlayEmote.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_PlayEmote extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgPawn); + +var () TgPawn.EEmote EmoteToPlay; + +defaultproperties +{ + TitleName="PlayEmote" + NodeToken=1048582 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_PlayVGS.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PlayVGS.uc new file mode 100644 index 0000000..63dc63c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PlayVGS.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorAction_PlayVGS extends TgAIBehaviorAction + native(AI) + hidecategories(Object) + config(Engine); + +var () int VoicePackId; +var int VgsId; + +defaultproperties +{ + TitleName="PlayVGS" + NodeToken=1048612 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseBurnCards.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseBurnCards.uc new file mode 100644 index 0000000..7ed4973 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseBurnCards.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorAction_PurchaseBurnCards extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () int BurnCardId; +var () int DesiredRank; +var () bool bDontPay; + +defaultproperties +{ + TitleName="PurchaseBurnCards" + NodeToken=1048709 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseItems.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseItems.uc new file mode 100644 index 0000000..7c554dd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseItems.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_PurchaseItems extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="PurchaseItems" + NodeToken=1048583 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseSkills.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseSkills.uc new file mode 100644 index 0000000..70b6a02 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_PurchaseSkills.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_PurchaseSkills extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="PurchaseSkills" + NodeToken=1048584 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_Regen.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Regen.uc new file mode 100644 index 0000000..66da037 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Regen.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_Regen extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="RegenHealth" + NodeToken=1048610 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_ReloadDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ReloadDevice.uc new file mode 100644 index 0000000..d8783f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_ReloadDevice.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_ReloadDevice extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceToUse; + +defaultproperties +{ + TitleName="ReloadDevice" + NodeToken=1048719 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToOwner.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToOwner.uc new file mode 100644 index 0000000..4db13d4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToOwner.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_RunToOwner extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bLookAtTarget=true + MoveTolerance=5.0000000 + TitleName="RunToOwner" + NodeToken=1048601 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToSpawn.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToSpawn.uc new file mode 100644 index 0000000..29f6c9f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToSpawn.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_RunToSpawn extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bLookAtTarget=true + MoveTolerance=5.0000000 + TitleName="RunToSpawn" + NodeToken=1048578 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToSpreadLocation.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToSpreadLocation.uc new file mode 100644 index 0000000..22088df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_RunToSpreadLocation.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_RunToSpreadLocation extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bLookAtTarget=true + MoveTolerance=5.0000000 + TitleName="RunToSpreadLocation" + NodeToken=1048597 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectAllyAttackerAsTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectAllyAttackerAsTarget.uc new file mode 100644 index 0000000..56fd2c5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectAllyAttackerAsTarget.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_SelectAllyAttackerAsTarget extends TgAIBehaviorAction_SelectLaneCombatTarget + hidecategories(Object) + config(Engine); + +var () float TimeThreshold; +var () float AllyDistanceThreshold; +var () float AttackerDistanceThreshold; + +defaultproperties +{ + TargetSelector=TargetSelect_Weakest + TitleName="SelectAllyAttackerAsTarget" + NodeToken=1048722 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_FortressObjective.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_FortressObjective.uc new file mode 100644 index 0000000..8c6caa3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_FortressObjective.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SelectCombatTarget_FortressObjective extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SelectFortressObjectiveCombatTarget" + NodeToken=1048705 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_LanepusherLastAttacker.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_LanepusherLastAttacker.uc new file mode 100644 index 0000000..8c6942d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_LanepusherLastAttacker.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SelectCombatTarget_LanepusherLastAttacker extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SelectLanepusherLastAttacker" + NodeToken=1048704 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_OwnerLastAttacker.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_OwnerLastAttacker.uc new file mode 100644 index 0000000..544193e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTarget_OwnerLastAttacker.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SelectCombatTarget_OwnerLastAttacker extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SelectOwnerLastAttacker" + NodeToken=1048625 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTargetsTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTargetsTarget.uc new file mode 100644 index 0000000..5556f70 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectCombatTargetsTarget.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_SelectCombatTargetsTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bGodsOnly; + +defaultproperties +{ + TitleName="SelectCombatTargetsTarget" + NodeToken=1048618 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget.uc new file mode 100644 index 0000000..77e9ace --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget.uc @@ -0,0 +1,28 @@ +class TgAIBehaviorAction_SelectLaneCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeEnemy; +var () bool bMustBeSameLane; +var () bool bMustHaveLineOfSight; +var () bool bMustHaveDamagedGod; +var () bool bMustNotBeImmune; +var () bool bMustBeInForwardCone; +var () bool bEffectGroupCategoryCheckInstigator; +var () bool bMustBeHittable; +var () bool bMustNotBeNearShield; +var () TgAIController_Behavior.ETargetSelector TargetSelector; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () TgAIController_Behavior.ECombatTargetType IgnoreTargetType; +var () int EffectCategoryId; +var () float DistanceThreshold; +var () float ForwardConeAngle; + +defaultproperties +{ + bMustBeEnemy=true + bMustBeHittable=true + TitleName="SelectLaneCombatTarget" + NodeToken=1048585 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget_Jungle.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget_Jungle.uc new file mode 100644 index 0000000..868695e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget_Jungle.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorAction_SelectLaneCombatTarget_Jungle extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeWeakest; +var () TgAIController_Behavior.EJungleTargetType TargetType; + +defaultproperties +{ + TitleName="SelectJungleCombatTarget" + NodeToken=1048614 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget_LastAttacker.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget_LastAttacker.uc new file mode 100644 index 0000000..dd8f05e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneCombatTarget_LastAttacker.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorAction_SelectLaneCombatTarget_LastAttacker extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bSkipPawnNotify; +var () bool bMustBeHittable; +var () TgAIController_Behavior.ECombatTargetType IgnoreTargetType; + +defaultproperties +{ + bMustBeHittable=true + TitleName="SelectLastAttacker" + NodeToken=1048586 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget.uc new file mode 100644 index 0000000..345fedd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorAction_SelectLaneMoveTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () bool bMustBePhoenix; +var () bool bMustBeSameLane; + +defaultproperties +{ + TitleName="SelectTowerMoveTarget" + NodeToken=1048587 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTargetAsCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTargetAsCombatTarget.uc new file mode 100644 index 0000000..9e4b7c6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTargetAsCombatTarget.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_SelectLaneMoveTargetAsCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bSkipPawnNotify; + +defaultproperties +{ + TitleName="SelectMoveTargetAsCombatTarget" + NodeToken=1048604 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget_Jungle.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget_Jungle.uc new file mode 100644 index 0000000..961e6f7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget_Jungle.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_SelectLaneMoveTarget_Jungle extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EJungleTargetType TargetType; + +defaultproperties +{ + TitleName="SelectJungleMoveTarget" + NodeToken=1048588 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget_Minotaur.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget_Minotaur.uc new file mode 100644 index 0000000..e8ef632 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLaneMoveTarget_Minotaur.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_SelectLaneMoveTarget_Minotaur extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="SelectGuardianMoveTarget" + NodeToken=1048589 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLanepusherCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLanepusherCombatTarget.uc new file mode 100644 index 0000000..01a459b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLanepusherCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SelectLanepusherCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SelectLanepusherCombatTarget" + NodeToken=1048702 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLeashCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLeashCombatTarget.uc new file mode 100644 index 0000000..1c02514 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectLeashCombatTarget.uc @@ -0,0 +1,23 @@ +class TgAIBehaviorAction_SelectLeashCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeEnemy; +var () bool bMustBeWeakest; +var () bool bMustHaveLineOfSight; +var () bool bMustHaveDamagedGod; +var () bool bMustNotBeImmune; +var () bool bEffectGroupCategoryCheckInstigator; +var () bool bMustBeHittable; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () int EffectCategoryId; + +defaultproperties +{ + bMustBeEnemy=true + bMustHaveLineOfSight=true + bMustBeHittable=true + TitleName="SelectLeashCombatTarget" + NodeToken=1048596 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectOwnerCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectOwnerCombatTarget.uc new file mode 100644 index 0000000..9bc9406 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectOwnerCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SelectOwnerCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SelectOwnersCombatTarget" + NodeToken=1048626 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectSquadCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectSquadCombatTarget.uc new file mode 100644 index 0000000..f1b3ee6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectSquadCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SelectSquadCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SelectSquadCombatTarget" + NodeToken=1048598 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectThreatCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectThreatCombatTarget.uc new file mode 100644 index 0000000..a28a81b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SelectThreatCombatTarget.uc @@ -0,0 +1,22 @@ +class TgAIBehaviorAction_SelectThreatCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeHighestThreat; +var () bool bMustBeInLeash; +var () bool bMustBeInSightRadius; +var () bool bEffectGroupCategoryCheckInstigator; +var () bool bMustBeHittable; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () int EffectCategoryId; + +defaultproperties +{ + bMustBeHighestThreat=true + bMustBeInLeash=true + bMustBeInSightRadius=true + bMustBeHittable=true + TitleName="SelectThreatCombatTarget" + NodeToken=1048594 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SetAimDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SetAimDevice.uc new file mode 100644 index 0000000..3507d92 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SetAimDevice.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_SetAimDevice extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceToUse; + +defaultproperties +{ + TitleName="SetAimDevice" + NodeToken=1048717 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SetBotBehaviorState.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SetBotBehaviorState.uc new file mode 100644 index 0000000..c4989d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SetBotBehaviorState.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_SetBotBehaviorState extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgPawn); + +var () TgPawn.EBotBehaviorState DesiredBehaviorState; + +defaultproperties +{ + TitleName="SetBotBehaviorState" + NodeToken=1048718 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SpreadFromSquad.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SpreadFromSquad.uc new file mode 100644 index 0000000..65cd8e2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SpreadFromSquad.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorAction_SpreadFromSquad extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () float SpreadDistance; + +defaultproperties +{ + TitleName="SpreadFromSquad" + NodeToken=1048622 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_StopDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_StopDevice.uc new file mode 100644 index 0000000..de308a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_StopDevice.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_StopDevice extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceToUse; + +defaultproperties +{ + TitleName="StopDevice" + NodeToken=1048620 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_Strafe.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Strafe.uc new file mode 100644 index 0000000..c18fb1e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Strafe.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorAction_Strafe extends TgAIBehaviorAction_MoveToTarget + hidecategories(Object) + config(Engine); + +var () float StrafeUpdateTime; +var () float DistanceMultiplier; + +defaultproperties +{ + StrafeUpdateTime=1.0000000 + DistanceMultiplier=1.0000000 + TitleName="Strafe" + NodeToken=1048621 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_SuggestSquadCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SuggestSquadCombatTarget.uc new file mode 100644 index 0000000..d9423a7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_SuggestSquadCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_SuggestSquadCombatTarget extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SuggestSquadCombatTarget" + NodeToken=1048599 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_UpdateTargetLastKnownLocation.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UpdateTargetLastKnownLocation.uc new file mode 100644 index 0000000..2d5d155 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UpdateTargetLastKnownLocation.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorAction_UpdateTargetLastKnownLocation extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="UpdateTargetLastKnownLocation" + NodeToken=1048720 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseActive.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseActive.uc new file mode 100644 index 0000000..d5a078f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseActive.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_UseActive extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EActiveType ActiveType; + +defaultproperties +{ + TitleName="UseActive" + NodeToken=1048608 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseConsumable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseConsumable.uc new file mode 100644 index 0000000..04a2732 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseConsumable.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_UseConsumable extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EConsumableType ConsumableType; + +defaultproperties +{ + TitleName="UseConsumable" + NodeToken=1048607 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseDevice.uc new file mode 100644 index 0000000..44523d3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_UseDevice.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorAction_UseDevice extends TgAIBehaviorAction + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior, TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceToUse; +var () TgAIController_Behavior.EUseDeviceAimType aimType; +var () bool bContinuousFire; +var () bool bPayNoEnergy; + +defaultproperties +{ + TitleName="UseDevice" + NodeToken=1048577 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorAction_Wiggle.uc b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Wiggle.uc new file mode 100644 index 0000000..4e90d2a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorAction_Wiggle.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorAction_Wiggle extends TgAIBehaviorAction + hidecategories(Object) + config(Engine); + +var () float WiggleIntensity; + +defaultproperties +{ + WiggleIntensity=1.0000000 + TitleName="Wiggle" + NodeToken=1048715 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComment.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComment.uc new file mode 100644 index 0000000..f8f9dc8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComment.uc @@ -0,0 +1,4 @@ +class TgAIBehaviorComment extends TgAIBehaviorObject + native(AI) + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite.uc new file mode 100644 index 0000000..4032313 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite.uc @@ -0,0 +1,17 @@ +class TgAIBehaviorComposite extends TgAIBehaviorNode + abstract + native(AI) + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +var init editfixedsize editinline array Children; +var init transient array ChildrenIndices; +var () const editconst bool bCompleteOnAll; +var () const editconst bool bFailsOnAll; +var () const editconst bool bRetryFailedChild; +var editoronly const editconst bool bFixedChildrenSize; + +defaultproperties +{ + bCompleteOnAll=true +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Gated.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Gated.uc new file mode 100644 index 0000000..91ceab7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Gated.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorComposite_Gated extends TgAIBehaviorComposite + native(AI) + hidecategories(Object,TgAIBehaviorComposite,TgAIBehaviorComposite) + config(Engine); + +defaultproperties +{ + TitleName="Gated" + NodeToken=4 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Parallel.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Parallel.uc new file mode 100644 index 0000000..e5fceae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Parallel.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorComposite_Parallel extends TgAIBehaviorComposite_Sequence + native(AI) + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +defaultproperties +{ + bStopOnRunningChild=false + bFailsOnAll=true + TitleName="Parallel" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Random.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Random.uc new file mode 100644 index 0000000..bdd0d4c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Random.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorComposite_Random extends TgAIBehaviorComposite + native(AI) + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +var () editfixedsize editinline array ChildWeights; +var () float ChildFreezeTime; +var () bool bRandomizeOnComplete; + +defaultproperties +{ + bCompleteOnAll=false + TitleName="Random" + NodeToken=3 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Sequence.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Sequence.uc new file mode 100644 index 0000000..df8974c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_Sequence.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorComposite_Sequence extends TgAIBehaviorComposite + native(AI) + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +var bool bStopOnRunningChild; + +defaultproperties +{ + bStopOnRunningChild=true + TitleName="Sequence" + NodeToken=1 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceAND.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceAND.uc new file mode 100644 index 0000000..6a8727d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceAND.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorComposite_SequenceAND extends TgAIBehaviorComposite_Sequence + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +defaultproperties +{ + TitleName="SequenceAND" + FriendlyName="AND" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceOR.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceOR.uc new file mode 100644 index 0000000..421c421 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceOR.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorComposite_SequenceOR extends TgAIBehaviorComposite_Sequence + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +defaultproperties +{ + bCompleteOnAll=false + bFailsOnAll=true + TitleName="SequenceOR" + FriendlyName="OR" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceScripted.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceScripted.uc new file mode 100644 index 0000000..ec6a286 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SequenceScripted.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorComposite_SequenceScripted extends TgAIBehaviorComposite + native(AI) + hidecategories(Object,TgAIBehaviorComposite) + config(Engine); + +var () bool bFreezeOnLast; +var () bool bIsLooping; +var (Reset) bool bFirstChildIsResetTest; +var (Reset) bool bResetSequenceOnFailure; + +defaultproperties +{ + TitleName="ScriptedSequence" + NodeToken=2 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SubTree.uc b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SubTree.uc new file mode 100644 index 0000000..12e6aee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorComposite_SubTree.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorComposite_SubTree extends TgAIBehaviorComposite + native(AI) + hidecategories(Object,TgAIBehaviorComposite,TgAIBehaviorComposite) + config(Engine); + +var () TgAIBehaviorTree ChildTree; + +defaultproperties +{ + TitleName="SubTree" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition.uc new file mode 100644 index 0000000..6b57df4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition.uc @@ -0,0 +1,7 @@ +class TgAIBehaviorCondition extends TgAIBehaviorNode + abstract + native(AI) + hidecategories(Object) + config(Engine); + +var () TgAIBehaviorNode.EBehaviorComparison ComparisonOperator; diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoAfterShot.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoAfterShot.uc new file mode 100644 index 0000000..8e805e4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoAfterShot.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_AmmoAfterShot extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () int AmmoThreshold; + +defaultproperties +{ + TitleName="AmmoCountAfterShot" + NodeToken=419 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoCostPerShot.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoCostPerShot.uc new file mode 100644 index 0000000..2907246 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoCostPerShot.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_AmmoCostPerShot extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () int AmmoThreshold; + +defaultproperties +{ + TitleName="AmmoCostPerShot" + NodeToken=418 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoCount.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoCount.uc new file mode 100644 index 0000000..9ce255f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_AmmoCount.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_AmmoCount extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () int AmmoThreshold; + +defaultproperties +{ + TitleName="AmmoCount" + NodeToken=417 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CanPurchaseItems.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CanPurchaseItems.uc new file mode 100644 index 0000000..49def84 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CanPurchaseItems.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CanPurchaseItems extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CanPurchaseItems" + NodeToken=259 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CanPurchaseSkills.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CanPurchaseSkills.uc new file mode 100644 index 0000000..26acbdb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CanPurchaseSkills.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CanPurchaseSkills extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CanPurchaseSkills" + NodeToken=260 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamageable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamageable.uc new file mode 100644 index 0000000..c3f3f46 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamageable.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CombatTargetDamageable extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetDamageable" + NodeToken=261 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamageableByDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamageableByDevice.uc new file mode 100644 index 0000000..924e5f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamageableByDevice.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_CombatTargetDamageableByDevice extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="CombatTargetDamageableByDevice" + NodeToken=262 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamagedFriendlyGod.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamagedFriendlyGod.uc new file mode 100644 index 0000000..4b40632 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDamagedFriendlyGod.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CombatTargetDamagedFriendlyGod extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetDamagedFriendlyGod" + NodeToken=304 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDistanceFromCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDistanceFromCapturePoint.uc new file mode 100644 index 0000000..67cf3b6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDistanceFromCapturePoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CombatTargetDistanceFromCapturePoint extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetDistanceFromCapturePoint" + NodeToken=411 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDistanceOwner.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDistanceOwner.uc new file mode 100644 index 0000000..533c706 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDistanceOwner.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CombatTargetDistanceOwner extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetDistanceFromOwner" + NodeToken=334 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDropped.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDropped.uc new file mode 100644 index 0000000..b4cdcf0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetDropped.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CombatTargetDropped extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetDropped" + NodeToken=322 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHasEffectCategory.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHasEffectCategory.uc new file mode 100644 index 0000000..f1f340e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHasEffectCategory.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_CombatTargetHasEffectCategory extends TgAIBehaviorCondition + native(AI) + hidecategories(Object) + config(Engine); + +var () bool bEffectGroupCategoryCheckInstigator; +var () int EffectCategoryId; +var () int EffectGroupId; + +defaultproperties +{ + TitleName="CombatTargetHasEffectCategory" + NodeToken=306 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHealthPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHealthPercent.uc new file mode 100644 index 0000000..d84300c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHealthPercent.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_CombatTargetHealthPercent extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float HealthPct; + +defaultproperties +{ + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="CombatTargetHealthPercentTest" + NodeToken=263 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHealthPercentAfterAttack.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHealthPercentAfterAttack.uc new file mode 100644 index 0000000..82c57eb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetHealthPercentAfterAttack.uc @@ -0,0 +1,16 @@ +class TgAIBehaviorCondition_CombatTargetHealthPercentAfterAttack extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () float HealthPct; + +defaultproperties +{ + DeviceSlot=EQP_AUTO + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="CombatTargetHealthPercentAfterAttackTest" + NodeToken=318 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetInDeviceVolume.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetInDeviceVolume.uc new file mode 100644 index 0000000..2539d63 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetInDeviceVolume.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_CombatTargetInDeviceVolume extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int DeviceID; +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="CombatTargetInsideDeviceVolume" + NodeToken=421 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsInMinotaurRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsInMinotaurRadius.uc new file mode 100644 index 0000000..a9f38aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsInMinotaurRadius.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_CombatTargetIsInMinotaurRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="CombatTargetIsInMinotaurRadius" + NodeToken=285 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsInTowerRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsInTowerRadius.uc new file mode 100644 index 0000000..5dfaea5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsInTowerRadius.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_CombatTargetIsInTowerRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="CombatTargetIsInTowerRadius" + NodeToken=286 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsTargetOfFriendlyTowerOrMinotaur.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsTargetOfFriendlyTowerOrMinotaur.uc new file mode 100644 index 0000000..dfecfa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetIsTargetOfFriendlyTowerOrMinotaur.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_CombatTargetIsTargetOfFriendlyTowerOrMinotaur extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetIsTargetOfFriendlyTowerOrMinotaur" + NodeToken=287 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetPhysicsState.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetPhysicsState.uc new file mode 100644 index 0000000..1eac353 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CombatTargetPhysicsState.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_CombatTargetPhysicsState extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var Actor.EPhysics PhysicsState; + +defaultproperties +{ + PhysicsState=PHYS_Walking + TitleName="CombatTargetPhysicsState" + NodeToken=327 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CurrentLevel.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CurrentLevel.uc new file mode 100644 index 0000000..63c7b54 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_CurrentLevel.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_CurrentLevel extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int LevelThreshold; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_GreaterThanOrEqual + TitleName="CurrentLevel" + NodeToken=264 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeltaGodsInCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeltaGodsInCapturePoint.uc new file mode 100644 index 0000000..5da014f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeltaGodsInCapturePoint.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_DeltaGodsInCapturePoint extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int GodThreshold; + +defaultproperties +{ + TitleName="GodsInCapturePointDelta" + NodeToken=425 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeviceIsFiring.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeviceIsFiring.uc new file mode 100644 index 0000000..ce38f52 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeviceIsFiring.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_DeviceIsFiring extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="DeviceIsFiring" + NodeToken=321 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeviceReadyToUse.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeviceReadyToUse.uc new file mode 100644 index 0000000..3a08aef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DeviceReadyToUse.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_DeviceReadyToUse extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="DeviceReadyToUse" + NodeToken=265 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DifficultyLevel.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DifficultyLevel.uc new file mode 100644 index 0000000..a970333 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DifficultyLevel.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_DifficultyLevel extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EBotDifficultyLevel Difficulty; + +defaultproperties +{ + TitleName="DifficultyLevel" + NodeToken=311 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceBase.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceBase.uc new file mode 100644 index 0000000..b263d5b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceBase.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_DistanceBase extends TgAIBehaviorCondition + abstract + hidecategories(Object) + config(Engine); + +var () float DistanceThreshold; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_GreaterThanOrEqual +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromAssaultPoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromAssaultPoint.uc new file mode 100644 index 0000000..0c8133e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromAssaultPoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromAssaultPoint extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromAssaultPoint" + NodeToken=445 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromAvoidableProjectile.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromAvoidableProjectile.uc new file mode 100644 index 0000000..5b5873e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromAvoidableProjectile.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_DistanceFromAvoidableProjectile extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="DistanceFromAvoidableProjectile" + NodeToken=437 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromCapturePoint.uc new file mode 100644 index 0000000..fe93161 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromCapturePoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromCapturePoint extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromCapturePoint" + NodeToken=409 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromCombatTarget.uc new file mode 100644 index 0000000..b8f2307 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromCombatTarget extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromCombatTarget" + NodeToken=291 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromDamagingDeployable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromDamagingDeployable.uc new file mode 100644 index 0000000..8a05d75 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromDamagingDeployable.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_DistanceFromDamagingDeployable extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="DistanceFromDamagingDeployable" + NodeToken=436 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromFortressObjective.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromFortressObjective.uc new file mode 100644 index 0000000..a56b95d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromFortressObjective.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromFortressObjective extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromFortressObjective" + NodeToken=410 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromLanePusher.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromLanePusher.uc new file mode 100644 index 0000000..77919e3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromLanePusher.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromLanePusher extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromLanePusher" + NodeToken=401 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromLaneTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromLaneTarget.uc new file mode 100644 index 0000000..c47a04c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromLaneTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromLaneTarget extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromLaneTarget" + NodeToken=315 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromNavigationDestination.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromNavigationDestination.uc new file mode 100644 index 0000000..c2b5676 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromNavigationDestination.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromNavigationDestination extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromNavigationDestination" + NodeToken=330 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromOwner.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromOwner.uc new file mode 100644 index 0000000..faf1442 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromOwner.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromOwner extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromOwner" + NodeToken=333 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSelectedTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSelectedTarget.uc new file mode 100644 index 0000000..76cbc46 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSelectedTarget.uc @@ -0,0 +1,17 @@ +class TgAIBehaviorCondition_DistanceFromSelectedTarget extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeEnemy; +var () bool bIgnoreTaskforce; +var () TgAIController_Behavior.ETargetSelector TargetSelector; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () int DeployableId; + +defaultproperties +{ + TargetType=AICombatTarget_God + TitleName="DistanceFromSelectedTarget" + NodeToken=288 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromShield.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromShield.uc new file mode 100644 index 0000000..202cddb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromShield.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_DistanceFromShield extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="DistanceFromShield" + NodeToken=433 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSpawn.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSpawn.uc new file mode 100644 index 0000000..63c3b6b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSpawn.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromSpawn extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromSpawn" + NodeToken=282 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSquadTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSquadTarget.uc new file mode 100644 index 0000000..1c3ac49 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_DistanceFromSquadTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_DistanceFromSquadTarget extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceFromSquadTarget" + NodeToken=428 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Energy.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Energy.uc new file mode 100644 index 0000000..fa11305 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Energy.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_Energy extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float energy; + +defaultproperties +{ + energy=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="EnergyTest" + NodeToken=303 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_GameType.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_GameType.uc new file mode 100644 index 0000000..245e431 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_GameType.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_GameType extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_GAME_TYPE GameType; + +defaultproperties +{ + TitleName="GameType" + NodeToken=309 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasActive.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasActive.uc new file mode 100644 index 0000000..5e1d730 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasActive.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_HasActive extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EActiveType ActiveType; + +defaultproperties +{ + TitleName="HasActive" + NodeToken=314 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasCombatTarget.uc new file mode 100644 index 0000000..de432db --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasCombatTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_HasCombatTarget extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="HasCombatTarget" + NodeToken=266 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasConsumable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasConsumable.uc new file mode 100644 index 0000000..fec1dda --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasConsumable.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_HasConsumable extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EConsumableType ConsumableType; + +defaultproperties +{ + TitleName="HasConsumable" + NodeToken=313 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasEffectCategory.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasEffectCategory.uc new file mode 100644 index 0000000..0bd0c40 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasEffectCategory.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_HasEffectCategory extends TgAIBehaviorCondition + native(AI) + hidecategories(Object) + config(Engine); + +var () int EffectCategoryId; +var () int EffectGroupId; + +defaultproperties +{ + TitleName="HasEffectCategory" + NodeToken=307 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasIncomingDamage.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasIncomingDamage.uc new file mode 100644 index 0000000..666a9af --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasIncomingDamage.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_HasIncomingDamage extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="HasIncomingDamage" + NodeToken=312 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasLaneTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasLaneTarget.uc new file mode 100644 index 0000000..a166382 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasLaneTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_HasLaneTarget extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="HasLaneTarget" + NodeToken=267 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasMoveTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasMoveTarget.uc new file mode 100644 index 0000000..67938d8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasMoveTarget.uc @@ -0,0 +1,8 @@ +class TgAIBehaviorCondition_HasMoveTarget extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="HasMoveTarget" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasNavigation.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasNavigation.uc new file mode 100644 index 0000000..b9f29f8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasNavigation.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_HasNavigation extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="HasNavigation" + NodeToken=332 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasSpreadLocation.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasSpreadLocation.uc new file mode 100644 index 0000000..4efac12 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HasSpreadLocation.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_HasSpreadLocation extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="HasSpreadLocation" + NodeToken=301 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HealthPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HealthPercent.uc new file mode 100644 index 0000000..095285a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_HealthPercent.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_HealthPercent extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float HealthPct; + +defaultproperties +{ + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="HealthPercentTest" + NodeToken=268 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_InsideDeviceVolume.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_InsideDeviceVolume.uc new file mode 100644 index 0000000..22db378 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_InsideDeviceVolume.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_InsideDeviceVolume extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int DeviceID; +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="IsInDeviceVolume" + NodeToken=420 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsActiveCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsActiveCapturePoint.uc new file mode 100644 index 0000000..fa83a89 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsActiveCapturePoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsActiveCapturePoint extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DoesActiveCapturePointExist" + NodeToken=416 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsActiveReady.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsActiveReady.uc new file mode 100644 index 0000000..9e411c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsActiveReady.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsActiveReady extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EActiveType ActiveType; + +defaultproperties +{ + TitleName="IsActiveReady" + NodeToken=316 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtCapturePoint.uc new file mode 100644 index 0000000..3c8435c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtCapturePoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsAtCapturePoint extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsAtCapturePoint" + NodeToken=402 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtRallyPoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtRallyPoint.uc new file mode 100644 index 0000000..8b268e9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtRallyPoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsAtRallyPoint extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsAtRallyPoint" + NodeToken=323 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtSpawn.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtSpawn.uc new file mode 100644 index 0000000..913aac5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAtSpawn.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsAtSpawn extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsAtSpawn" + NodeToken=256 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAttackingTaskForce.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAttackingTaskForce.uc new file mode 100644 index 0000000..3d19a9a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsAttackingTaskForce.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsAttackingTaskForce extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsAttackingTaskForce" + NodeToken=442 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsBotBehaviorState.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsBotBehaviorState.uc new file mode 100644 index 0000000..2f84c70 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsBotBehaviorState.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsBotBehaviorState extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgPawn); + +var () TgPawn.EBotBehaviorState TestBehaviorState; + +defaultproperties +{ + TitleName="IsBotBehaviorState" + NodeToken=444 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCapturePointVisible.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCapturePointVisible.uc new file mode 100644 index 0000000..190b55b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCapturePointVisible.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCapturePointVisible extends TgAIBehaviorCondition_VisibilityBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCapturePointVisible" + NodeToken=413 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetHittable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetHittable.uc new file mode 100644 index 0000000..2a229b4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetHittable.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetHittable extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetHittable" + NodeToken=336 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetHostile.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetHostile.uc new file mode 100644 index 0000000..a53daab --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetHostile.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetHostile extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetHostile" + NodeToken=269 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInFountain.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInFountain.uc new file mode 100644 index 0000000..f5d5432 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInFountain.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetInFountain extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetInFountain" + NodeToken=296 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInLeash.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInLeash.uc new file mode 100644 index 0000000..f99be64 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInLeash.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetInLeash extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetInLeash" + NodeToken=297 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInSightRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInSightRadius.uc new file mode 100644 index 0000000..b8766aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetInSightRadius.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetInSightRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetInSightRadius" + NodeToken=298 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetLastAttacker.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetLastAttacker.uc new file mode 100644 index 0000000..323005b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetLastAttacker.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetLastAttacker extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetLastAttacker" + NodeToken=310 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetOfType.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetOfType.uc new file mode 100644 index 0000000..bfcef9d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetOfType.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsCombatTargetOfType extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="IsCombatTargetOfType" + NodeToken=270 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetShielded.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetShielded.uc new file mode 100644 index 0000000..afddfff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetShielded.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetShielded extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetShielded" + NodeToken=431 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetSquadTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetSquadTarget.uc new file mode 100644 index 0000000..a4c1c93 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetSquadTarget.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetSquadTarget extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetSquadTarget" + NodeToken=448 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetStealthed.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetStealthed.uc new file mode 100644 index 0000000..2ce62ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetStealthed.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetStealthed extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetStealthed" + NodeToken=289 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetVisible.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetVisible.uc new file mode 100644 index 0000000..a541eb5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsCombatTargetVisible.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsCombatTargetVisible extends TgAIBehaviorCondition_VisibilityBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsCombatTargetVisible" + NodeToken=283 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsDecoyState.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsDecoyState.uc new file mode 100644 index 0000000..bc81a96 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsDecoyState.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsDecoyState extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgPawn_Illusion); + +var () TgPawn_Illusion.EDecoyAIState DecoyState; + +defaultproperties +{ + TitleName="IsDecoyState" + NodeToken=335 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsDesiredAimDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsDesiredAimDevice.uc new file mode 100644 index 0000000..ea672d3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsDesiredAimDevice.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsDesiredAimDevice extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + TitleName="IsDesiredAimDevice" + NodeToken=443 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsFortressObjectiveVulnerable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsFortressObjectiveVulnerable.uc new file mode 100644 index 0000000..7649cb7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsFortressObjectiveVulnerable.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsFortressObjectiveVulnerable extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsFortressObjectiveVulnerable" + NodeToken=408 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInFortress.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInFortress.uc new file mode 100644 index 0000000..851978b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInFortress.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_IsInFortress extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="IsInFortress" + NodeToken=405 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInHostileAbility.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInHostileAbility.uc new file mode 100644 index 0000000..46c16ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInHostileAbility.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsInHostileAbility extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsInHostileAbility" + NodeToken=258 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInMinotaurRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInMinotaurRadius.uc new file mode 100644 index 0000000..1c6f85e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInMinotaurRadius.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_IsInMinotaurRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="IsInMinotaurRadius" + NodeToken=271 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInTowerRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInTowerRadius.uc new file mode 100644 index 0000000..b4d2f1b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsInTowerRadius.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_IsInTowerRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="IsInTowerRadius" + NodeToken=272 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanePusherVisible.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanePusherVisible.uc new file mode 100644 index 0000000..5188cb6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanePusherVisible.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsLanePusherVisible extends TgAIBehaviorCondition_VisibilityBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsLanepusherVisible" + NodeToken=422 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherActive.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherActive.uc new file mode 100644 index 0000000..9e38866 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherActive.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsLanepusherActive extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsLanepusherActive" + NodeToken=426 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherHostile.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherHostile.uc new file mode 100644 index 0000000..0952469 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherHostile.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsLanepusherHostile extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsLanepusherHostile" + NodeToken=427 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherLastAttackerOfType.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherLastAttackerOfType.uc new file mode 100644 index 0000000..eb10a5a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLanepusherLastAttackerOfType.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsLanepusherLastAttackerOfType extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="IsLanepusherLastAttackerOfType" + NodeToken=407 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLastAttackerOfType.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLastAttackerOfType.uc new file mode 100644 index 0000000..1b33f5d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLastAttackerOfType.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsLastAttackerOfType extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="IsLastAttackerOfType" + NodeToken=292 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLookingAtCapturePoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLookingAtCapturePoint.uc new file mode 100644 index 0000000..3e0284d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLookingAtCapturePoint.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsLookingAtCapturePoint extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float VisibilityAngle; + +defaultproperties +{ + VisibilityAngle=15.0000000 + TitleName="IsLookingAtCapturePoint" + NodeToken=414 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLookingAtCombatTarget.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLookingAtCombatTarget.uc new file mode 100644 index 0000000..f3f2cda --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsLookingAtCombatTarget.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsLookingAtCombatTarget extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float VisibilityAngle; + +defaultproperties +{ + VisibilityAngle=15.0000000 + TitleName="IsLookingAtCombatTarget" + NodeToken=290 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsMetaGameState.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsMetaGameState.uc new file mode 100644 index 0000000..bb1020a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsMetaGameState.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsMetaGameState extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgPawn); + +var () TgPawn.EMetaGameState TestGameState; + +defaultproperties +{ + TitleName="IsMetaGameState" + NodeToken=400 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsOutsideLeash.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsOutsideLeash.uc new file mode 100644 index 0000000..7773028 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsOutsideLeash.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsOutsideLeash extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsOutsideLeash" + NodeToken=299 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSafeToRecall.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSafeToRecall.uc new file mode 100644 index 0000000..d5d550f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSafeToRecall.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsSafeToRecall extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsSafeToRecall" + NodeToken=257 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSpawnGateOpen.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSpawnGateOpen.uc new file mode 100644 index 0000000..edf328d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSpawnGateOpen.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsSpawnGateOpen extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsSpawnGateOpen" + NodeToken=423 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSquadTargetShielded.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSquadTargetShielded.uc new file mode 100644 index 0000000..0762bf5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSquadTargetShielded.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsSquadTargetShielded extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsSquadTargetShielded" + NodeToken=432 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSquadTargetVisible.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSquadTargetVisible.uc new file mode 100644 index 0000000..17a6389 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsSquadTargetVisible.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsSquadTargetVisible extends TgAIBehaviorCondition_VisibilityBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsSquadTargetVisible" + NodeToken=430 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTargetOfEnemyTowerOrMinotaur.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTargetOfEnemyTowerOrMinotaur.uc new file mode 100644 index 0000000..eb5912a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTargetOfEnemyTowerOrMinotaur.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_IsTargetOfEnemyTowerOrMinotaur extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="IsTargetOfEnemyTowerOrMinotaur" + NodeToken=273 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTargetTypeInLeash.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTargetTypeInLeash.uc new file mode 100644 index 0000000..fb9d510 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTargetTypeInLeash.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsTargetTypeInLeash extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="IsTargetTypeInLeash" + NodeToken=302 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTooFarFromLane.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTooFarFromLane.uc new file mode 100644 index 0000000..8cd0239 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsTooFarFromLane.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_IsTooFarFromLane extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="IsTooFarFromLane" + NodeToken=305 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsWithinCombatDistance.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsWithinCombatDistance.uc new file mode 100644 index 0000000..8b840eb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsWithinCombatDistance.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorCondition_IsWithinCombatDistance extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () bool bSubtractTargetPawnRadius; +var () float DistanceThresholdPercent; +var () TgObject.TG_EQUIP_POINT DeviceSlot; + +defaultproperties +{ + DistanceThresholdPercent=1.0000000 + TitleName="IsWithinCombatDistance" + NodeToken=274 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsWithinDistance.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsWithinDistance.uc new file mode 100644 index 0000000..466454b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_IsWithinDistance.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_IsWithinDistance extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bIsXYOnly; +var () float DistanceCheck; + +defaultproperties +{ + TitleName="IsWithinDistance" +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_LanepusherHealthPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_LanepusherHealthPercent.uc new file mode 100644 index 0000000..fb51c16 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_LanepusherHealthPercent.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_LanepusherHealthPercent extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float HealthPct; + +defaultproperties +{ + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="LanepusherHealthPercentTest" + NodeToken=415 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_ManaPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_ManaPercent.uc new file mode 100644 index 0000000..0290718 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_ManaPercent.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_ManaPercent extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float ManaPct; + +defaultproperties +{ + ManaPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="ManaPercentTest" + NodeToken=280 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyAllyAttacked.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyAllyAttacked.uc new file mode 100644 index 0000000..06bfd93 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyAllyAttacked.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_NearbyAllyAttacked extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float TimeThreshold; +var () float AllyDistanceThreshold; +var () float AttackerDistanceThreshold; + +defaultproperties +{ + TitleName="NearbyAllyAttacked" + NodeToken=446 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyGodCount.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyGodCount.uc new file mode 100644 index 0000000..c8263b4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyGodCount.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_NearbyGodCount extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () bool bMustBeInForwardCone; +var () int GodThreshold; +var () float ForwardConeAngle; + +defaultproperties +{ + TitleName="NearbyGodCount" + NodeToken=275 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyGodDelta.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyGodDelta.uc new file mode 100644 index 0000000..80739ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyGodDelta.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_NearbyGodDelta extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () int GodThreshold; +var () bool bMustBeInForwardCone; +var () float ForwardConeAngle; + +defaultproperties +{ + TitleName="NearbyGodDelta" + NodeToken=276 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyTargetTypeCount.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyTargetTypeCount.uc new file mode 100644 index 0000000..8bfe3b2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyTargetTypeCount.uc @@ -0,0 +1,16 @@ +class TgAIBehaviorCondition_NearbyTargetTypeCount extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeEnemy; +var () bool bMustBeInForwardCone; +var () int TargetTypeThreshold; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () float ForwardConeAngle; + +defaultproperties +{ + TitleName="NearbyTargetTypeCount" + NodeToken=277 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyTargetTypeDelta.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyTargetTypeDelta.uc new file mode 100644 index 0000000..e5ebf70 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearbyTargetTypeDelta.uc @@ -0,0 +1,15 @@ +class TgAIBehaviorCondition_NearbyTargetTypeDelta extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () int TargetTypeThreshold; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () bool bMustBeInForwardCone; +var () float ForwardConeAngle; + +defaultproperties +{ + TitleName="NearbyTargetTypeDelta" + NodeToken=278 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearestTowerHealthPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearestTowerHealthPercent.uc new file mode 100644 index 0000000..2c0824f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NearestTowerHealthPercent.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_NearestTowerHealthPercent extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () float HealthPct; + +defaultproperties +{ + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="NearestTowerHealthPercent" + NodeToken=295 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumDeaths.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumDeaths.uc new file mode 100644 index 0000000..6d93f80 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumDeaths.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_NumDeaths extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int DeathThreshold; + +defaultproperties +{ + TitleName="NumDeaths" + NodeToken=424 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInCapturePointRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInCapturePointRadius.uc new file mode 100644 index 0000000..bc786fe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInCapturePointRadius.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_NumGodsInCapturePointRadius extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bGodsMustBeEnemy; +var () int GodThreshold; + +defaultproperties +{ + TitleName="NumGodsInCapturePointRadius" + NodeToken=412 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInLanePusherRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInLanePusherRadius.uc new file mode 100644 index 0000000..a49b016 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInLanePusherRadius.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_NumGodsInLanePusherRadius extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bGodsMustBeEnemy; +var () int GodThreshold; + +defaultproperties +{ + TitleName="NumGodsInLanePusherRadius" + NodeToken=435 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInTowerRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInTowerRadius.uc new file mode 100644 index 0000000..c864c3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsInTowerRadius.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_NumGodsInTowerRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bGodsMustBeEnemy; +var () bool bTowerMustBeEnemy; +var () int GodThreshold; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_GreaterThanOrEqual + TitleName="NumGodsInTowerRadius" + NodeToken=294 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsNearDeployable.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsNearDeployable.uc new file mode 100644 index 0000000..9441c66 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsNearDeployable.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_NumGodsNearDeployable extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () int DeployableId; +var () int GodThreshold; + +defaultproperties +{ + TitleName="NumGodsNearDeployable" + NodeToken=438 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsNearProjectile.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsNearProjectile.uc new file mode 100644 index 0000000..b00d513 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumGodsNearProjectile.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_NumGodsNearProjectile extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () int ProjectileId; +var () int GodThreshold; + +defaultproperties +{ + TitleName="NumGodsNearProjectile" + NodeToken=439 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumMinionsInTowerRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumMinionsInTowerRadius.uc new file mode 100644 index 0000000..32db700 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumMinionsInTowerRadius.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_NumMinionsInTowerRadius extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMinionsMustBeEnemy; +var () bool bTowerMustBeEnemy; +var () int MinionThreshold; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_GreaterThanOrEqual + TitleName="NumMinionsInTowerRadius" + NodeToken=281 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumRallyPoints.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumRallyPoints.uc new file mode 100644 index 0000000..6b9b5aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumRallyPoints.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_NumRallyPoints extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int nRallyPointsThreshold; +var () bool bMustBeEnemy; +var () bool bMustBeSameTaskForce; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_GreaterThanOrEqual + TitleName="NumRallyPoints" + NodeToken=324 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumberDevicesFiring.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumberDevicesFiring.uc new file mode 100644 index 0000000..27f2477 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_NumberDevicesFiring.uc @@ -0,0 +1,17 @@ +class TgAIBehaviorCondition_NumberDevicesFiring extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () bool bMustBeEnemy; +var () bool bIsFiring; +var () int GodThreshold; +var () float DistanceThreshold; + +defaultproperties +{ + bIsFiring=true + TitleName="NumberDevicesFiring" + NodeToken=447 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_PetPhase.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_PetPhase.uc new file mode 100644 index 0000000..d02c338 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_PetPhase.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_PetPhase extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () TgObject.EPetPhase Phase; + +defaultproperties +{ + TitleName="PetPhase" + NodeToken=325 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_PhysicsState.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_PhysicsState.uc new file mode 100644 index 0000000..74d98ea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_PhysicsState.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_PhysicsState extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var Actor.EPhysics PhysicsState; + +defaultproperties +{ + PhysicsState=PHYS_Walking + TitleName="PhysicsState" + NodeToken=326 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_ReturnAlways.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_ReturnAlways.uc new file mode 100644 index 0000000..f75ff05 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_ReturnAlways.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_ReturnAlways extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIBehaviorNode); + +var () TgAIBehaviorNode.EBehaviorStatus AlwaysReturn; + +defaultproperties +{ + AlwaysReturn=BEHAVIOR_Complete + TitleName="ReturnAlways" + NodeToken=319 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SelectedTargetHealthPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SelectedTargetHealthPercent.uc new file mode 100644 index 0000000..33adf32 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SelectedTargetHealthPercent.uc @@ -0,0 +1,20 @@ +class TgAIBehaviorCondition_SelectedTargetHealthPercent extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () bool bMustBeEnemy; +var () bool bIgnoreTaskforce; +var () TgAIController_Behavior.ETargetSelector TargetSelector; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () int TargetId; +var () float HealthPct; + +defaultproperties +{ + TargetType=AICombatTarget_God + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="SelectedTargetHealthPercent" + NodeToken=293 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SiegeScore.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SiegeScore.uc new file mode 100644 index 0000000..374000c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SiegeScore.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_SiegeScore extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int ScoreThreshold; +var () bool bMustBeEnemy; + +defaultproperties +{ + TitleName="SiegeScore" + NodeToken=449 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SquadAverageDistance.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SquadAverageDistance.uc new file mode 100644 index 0000000..248adaa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SquadAverageDistance.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_SquadAverageDistance extends TgAIBehaviorCondition_DistanceBase + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="SquadAverageDistance" + NodeToken=331 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SquadTargetHealthPercent.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SquadTargetHealthPercent.uc new file mode 100644 index 0000000..e151ccd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_SquadTargetHealthPercent.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_SquadTargetHealthPercent extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float HealthPct; + +defaultproperties +{ + HealthPct=50.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="SquadTargetHealthPercentTest" + NodeToken=429 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TargetsDamageableByDevice.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TargetsDamageableByDevice.uc new file mode 100644 index 0000000..476edd0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TargetsDamageableByDevice.uc @@ -0,0 +1,14 @@ +class TgAIBehaviorCondition_TargetsDamageableByDevice extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior, TgObject); + +var () TgObject.TG_EQUIP_POINT DeviceSlot; +var () TgAIController_Behavior.ECombatTargetType TargetType; +var () int TargetCount; + +defaultproperties +{ + TitleName="NumTargetsDamageableByDevice" + NodeToken=308 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Taskforce.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Taskforce.uc new file mode 100644 index 0000000..180cbe5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Taskforce.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_Taskforce extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () int Taskforce; + +defaultproperties +{ + TitleName="Taskforce" + NodeToken=317 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TeamDeathCount.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TeamDeathCount.uc new file mode 100644 index 0000000..46f9d22 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TeamDeathCount.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_TeamDeathCount extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () bool bMustBeEnemy; +var () int DeathThreshold; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="TeamDeathCount" + NodeToken=434 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeInPayloadMode.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeInPayloadMode.uc new file mode 100644 index 0000000..2874597 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeInPayloadMode.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_TimeInPayloadMode extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float TimeThreshold; + +defaultproperties +{ + TimeThreshold=5.0000000 + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="TimeInPayloadMode" + NodeToken=441 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeSinceLanepusherTookDamage.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeSinceLanepusherTookDamage.uc new file mode 100644 index 0000000..4b7d959 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeSinceLanepusherTookDamage.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_TimeSinceLanepusherTookDamage extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float TimeThreshold; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="TimeSinceLanepusherTookDamage" + NodeToken=406 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeSinceLastTookDamage.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeSinceLastTookDamage.uc new file mode 100644 index 0000000..bb0d97c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_TimeSinceLastTookDamage.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorCondition_TimeSinceLastTookDamage extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float TimeThreshold; +var () bool bMustBeCombatTarget; + +defaultproperties +{ + ComparisonOperator=BEHAVIORCOMPARE_LessThanOrEqual + TitleName="TimeSinceLastTookDamage" + NodeToken=284 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Timer.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Timer.uc new file mode 100644 index 0000000..a7b4804 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_Timer.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_Timer extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +var () float TimerLength; + +defaultproperties +{ + TimerLength=3.0000000 + TitleName="Timer" + NodeToken=300 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_VisibilityBase.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_VisibilityBase.uc new file mode 100644 index 0000000..e4ebd12 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_VisibilityBase.uc @@ -0,0 +1,11 @@ +class TgAIBehaviorCondition_VisibilityBase extends TgAIBehaviorCondition + abstract + hidecategories(Object) + config(Engine); + +var () bool bRestrictFoV; + +defaultproperties +{ + bRestrictFoV=true +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WhatIsCombatTargetTargeting.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WhatIsCombatTargetTargeting.uc new file mode 100644 index 0000000..c51fe40 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WhatIsCombatTargetTargeting.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_WhatIsCombatTargetTargeting extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="WhatIsCombatTargetTargeting" + NodeToken=279 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WhatIsLastAttackerTargeting.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WhatIsLastAttackerTargeting.uc new file mode 100644 index 0000000..b7eb702 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WhatIsLastAttackerTargeting.uc @@ -0,0 +1,12 @@ +class TgAIBehaviorCondition_WhatIsLastAttackerTargeting extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ECombatTargetType TargetType; + +defaultproperties +{ + TitleName="WhatIsLastAttackerTargeting" + NodeToken=320 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WonLastPoint.uc b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WonLastPoint.uc new file mode 100644 index 0000000..47aa011 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorCondition_WonLastPoint.uc @@ -0,0 +1,9 @@ +class TgAIBehaviorCondition_WonLastPoint extends TgAIBehaviorCondition + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="WonLastPoint" + NodeToken=440 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorNode.uc b/Development/Src/TgGame/Classes/TgAIBehaviorNode.uc new file mode 100644 index 0000000..eea7a07 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorNode.uc @@ -0,0 +1,36 @@ +class TgAIBehaviorNode extends TgAIBehaviorObject + abstract + native(AI) + hidecategories(Object) + config(Engine); + +enum EBehaviorComparison { + BEHAVIORCOMPARE_Equal, // 0 + BEHAVIORCOMPARE_NotEqual, // 1 + BEHAVIORCOMPARE_LessThan, // 2 + BEHAVIORCOMPARE_LessThanOrEqual, // 3 + BEHAVIORCOMPARE_GreaterThan, // 4 + BEHAVIORCOMPARE_GreaterThanOrEqual, // 5 +}; + +enum EBehaviorStatus { + BEHAVIOR_None, // 0 + BEHAVIOR_Complete, // 1 + BEHAVIOR_Running, // 2 + BEHAVIOR_Paused, // 3 + BEHAVIOR_Failed, // 4 + BEHAVIOR_Aborted, // 5 +}; + +struct BehaviorStateData { + var float LastTickTime; + var int NodeToken; + var TgAIBehaviorNode.EBehaviorStatus Status; + structdefaultproperties {} +}; + +var duplicatetransient TgAIBehaviorNode Parent; +var float InvTickFrequency; +var string TitleName; +var () init string FriendlyName; +var bool bShownInMenu; diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorObject.uc b/Development/Src/TgGame/Classes/TgAIBehaviorObject.uc new file mode 100644 index 0000000..8c34094 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorObject.uc @@ -0,0 +1,479 @@ +class TgAIBehaviorObject extends Object + abstract + native(AI) + hidecategories(Object) + config(Engine); + +const BNT_NONE = 0; + +const BNT_COMPOSITE_SEQUENCE = 1; + +const BNT_COMPOSITE_SEQUENCE_SCRIPTED = 2; + +const BNT_COMPOSITE_RANDOM = 3; + +const BNT_COMPOSITE_GATED = 4; + +const BNT_SENSOR_GODS = 8; + +const BNT_SENSOR_SIGHT_RADIUS = 9; + +const BNT_SENSOR_TOWERS = 10; + +const BNT_SENSOR_IN_HOSTILE_ABILITY = 11; + +const BNT_SENSOR_PURCHASE_SKILLS = 12; + +const BNT_SENSOR_SAFE_TO_RECALL = 13; + +const BNT_SENSOR_LEASH = 14; + +const BNT_SENSOR_LANE = 15; + +const BNT_SENSOR_DEVICE_TARGETING = 16; + +const BNT_SENSOR_INCOMING_DAMAGE = 17; + +const BNT_SENSOR_RALLY_POINTS = 18; + +const BNT_SENSOR_FORTRESS = 21; + +const BNT_CONDITION_IS_AT_SPAWN = 256; + +const BNT_CONDITION_IS_SAFE_TO_RECALL = 257; + +const BNT_CONDITION_IS_IN_HOSTILE_ABILITY = 258; + +const BNT_CONDITION_CAN_PURCHASE_ITEMS = 259; + +const BNT_CONDITION_CAN_PURCHASE_SKILLS = 260; + +const BNT_CONDITION_COMBAT_DAMAGEABLE = 261; + +const BNT_CONDITION_COMBAT_DAMAGEABLE_DEVICE = 262; + +const BNT_CONDITION_COMBAT_HEALTH_PERCENT = 263; + +const BNT_CONDITION_CURRENT_LEVEL = 264; + +const BNT_CONDITION_DEVICE_READY = 265; + +const BNT_CONDITION_COMBAT_HAS_TARGET = 266; + +const BNT_CONDITION_LANE_HAS_TARGET = 267; + +const BNT_CONDITION_HEALTH_PERCENT = 268; + +const BNT_CONDITION_COMBAT_IS_HOSTILE = 269; + +const BNT_CONDITION_COMBAT_IS_OF_TYPE = 270; + +const BNT_CONDITION_IS_IN_MINOTAUR_RADIUS = 271; + +const BNT_CONDITION_IS_IN_TOWER_RADIUS = 272; + +const BNT_CONDITION_IS_TARGET_OF_TWR_OR_MTR = 273; + +const BNT_CONDITION_COMBAT_IS_IN_DISTANCE = 274; + +const BNT_CONDITION_NEARBY_GOD_COUNT = 275; + +const BNT_CONDITION_NEARBY_GOD_DELTA = 276; + +const BNT_CONDITION_NEARBY_TARGET_TYPE_COUNT = 277; + +const BNT_CONDITION_NEARBY_TARGET_TYPE_DELTA = 278; + +const BNT_CONDITION_COMBAT_IS_TARGETING_TYPE = 279; + +const BNT_CONDITION_MANA_PERCENT = 280; + +const BNT_CONDITION_MINIONS_IN_TOWER_RADIUS = 281; + +const BNT_CONDITION_DISTANCE_FROM_SPAWN = 282; + +const BNT_CONDITION_COMBAT_IS_VISIBLE = 283; + +const BNT_CONDITION_TIME_SINCE_TOOK_DAMAGE = 284; + +const BNT_CONDITION_COMBAT_IS_IN_MINOTAUR_RADIUS = 285; + +const BNT_CONDITION_COMBAT_IS_IN_TOWER_RADIUS = 286; + +const BNT_CONDITION_COMBAT_IS_TARGET_OF_TWR_OR_MTR = 287; + +const BNT_CONDITION_DISTANCE_FROM_SELECTED_TARGET = 288; + +const BNT_CONDITION_COMBAT_IS_STEALTHED = 289; + +const BNT_CONDITION_COMBAT_IS_LOOKING_AT = 290; + +const BNT_CONDITION_DISTANCE_FROM_COMBAT_TARGET = 291; + +const BNT_CONDITION_IS_LAST_ATTACKER_OF_TYPE = 292; + +const BNT_CONDITION_SELECTED_TARGET_HEALTH_PCT = 293; + +const BNT_CONDITION_GODS_IN_TOWER_RADIUS = 294; + +const BNT_CONDITION_NEAREST_TOWER_HEALTH_PCT = 295; + +const BNT_CONDITION_COMBAT_IS_IN_FOUNTAIN = 296; + +const BNT_CONDITION_COMBAT_IS_IN_LEASH = 297; + +const BNT_CONDITION_COMBAT_IS_IN_SIGHT_RADIUS = 298; + +const BNT_CONDITION_IS_OUTSIDE_LEASH = 299; + +const BNT_CONDITION_TIMER = 300; + +const BNT_CONDITION_HAS_SPREAD_LOCATION = 301; + +const BNT_CONDITION_TARGET_TYPE_IS_IN_LEASH = 302; + +const BNT_CONDITION_ENERGY = 303; + +const BNT_CONDITION_COMBAT_DAMAGED_FRIENDLY_GOD = 304; + +const BNT_CONDITION_IS_TOO_FAR_FROM_LANE = 305; + +const BNT_CONDITION_COMBAT_HAS_EFFECT_CATEGORY = 306; + +const BNT_CONDITION_HAS_EFFECT_CATEGORY = 307; + +const BNT_CONDITION_TARGETS_DAMAGEABLE_BY_DEVICE = 308; + +const BNT_CONDITION_GAMETYPE = 309; + +const BNT_CONDITION_COMBAT_IS_LAST_ATTACKER = 310; + +const BNT_CONDITION_DIFFICULTY_LEVEL = 311; + +const BNT_CONDITION_INCOMING_DAMAGE = 312; + +const BNT_CONDITION_HAS_CONSUMABLE = 313; + +const BNT_CONDITION_HAS_ACTIVE = 314; + +const BNT_CONDITION_DISTANCE_FROM_LANE_TARGET = 315; + +const BNT_CONDITION_IS_ACTIVE_READY = 316; + +const BNT_CONDITION_TASKFORCE = 317; + +const BNT_CONDITION_COMBAT_HEALTH_AFTER_ATTACK = 318; + +const BNT_CONDITION_RETURN_ALWAYS = 319; + +const BNT_CONDITION_LAST_ATTACKER_IS_TARGET_TYPE = 320; + +const BNT_CONDITION_DEVICE_IS_FIRING = 321; + +const BNT_CONDITION_COMBAT_DROPPED = 322; + +const BNT_CONDITION_IS_AT_RALLY_POINT = 323; + +const BNT_CONDITION_NUM_RALLY_POINTS = 324; + +const BNT_CONDITION_PET_PHASE = 325; + +const BNT_CONDITION_PHYSICS_STATE = 326; + +const BNT_CONDITION_COMBAT_PHYSICS_STATE = 327; + +const BNT_CONDITION_DISTANCE_FROM_NAVIGATION_DESTINATION = 330; + +const BNT_CONDITION_SQUAD_AVERAGE_DISTANCE = 331; + +const BNT_CONDITION_HAS_NAVIGATION = 332; + +const BNT_CONDITION_DISTANCE_FROM_OWNER = 333; + +const BNT_CONDITION_COMBAT_TARGET_DISTANCE_OWNER = 334; + +const BNT_CONDITION_IS_DECOY_STATE = 335; + +const BNT_CONDITION_COMBAT_IS_HITTABLE = 336; + +const BNT_CONDITION_IS_META_GAME_STATE = 400; + +const BNT_CONDITION_DISTANCE_FROM_LANEPUSHER = 401; + +const BNT_CONDITION_IS_AT_ACTIVE_CAPTURE_POINT = 402; + +const BNT_CONDITION_DISTANCE_FROM_FORTRESS = 404; + +const BNT_CONDITION_IS_IN_FORTRESS = 405; + +const BNT_CONDITION_TIME_SINCE_LANEPUSHER_TOOK_DAMAGE = 406; + +const BNT_CONDITION_IS_LANEPUSHER_LAST_ATTACKER_OF_TYPE = 407; + +const BNT_CONDITION_IS_FORTRESS_VULNERABLE = 408; + +const BNT_CONDITION_DISTANCE_FROM_CAPTURE_POINT = 409; + +const BNT_CONDITION_DISTANCE_FROM_FORTRESS_OBJECTIVE = 410; + +const BNT_CONDITION_COMBAT_TARGET_DISTANCE_FROM_CAPTURE_POINT = 411; + +const BNT_CONDITION_GODS_IN_CAPTURE_POINT_RADIUS = 412; + +const BNT_CONDITION_CAPTURE_POINT_IS_VISIBLE = 413; + +const BNT_CONDITION_COMBAT_IS_LOOKING_AT_CAPTURE_POINT = 414; + +const BNT_CONDITION_COMBAT_LANEPUSHER_HEALTH_PERCENT = 415; + +const BNT_CONDITION_IS_ACTIVE_CAPTURE_POINT = 416; + +const BNT_CONDITION_AMMO_COUNT = 417; + +const BNT_CONDITION_AMMO_PER_SHOT = 418; + +const BNT_CONDITION_AMMO_AFTER_SHOT = 419; + +const BNT_CONDITION_IS_IN_DEVICE_VOLUME = 420; + +const BNT_CONDITION_COMBAT_TARGET_INSIDE_DEVICE_VOLUME = 421; + +const BNT_CONDITION_LANEPUSHER_IS_VISIBLE = 422; + +const BNT_CONDITION_IS_SPAWN_GATE_OPEN = 423; + +const BNT_CONDITION_NUM_DEATHS = 424; + +const BNT_CONDITION_DELTA_GODS_CAPTURE_POINT = 425; + +const BNT_CONDITION_IS_LANEPUSHER_ACTIVE = 426; + +const BNT_CONDITION_IS_LANEPUSHER_HOSTILE = 427; + +const BNT_CONDITION_DISTANCE_FROM_SQUAD_TARGET = 428; + +const BNT_CONDITION_SQUAD_HEALTH_PERCENT = 429; + +const BNT_CONDITION_SQUAD_IS_VISIBLE = 430; + +const BNT_CONDITION_COMBAT_IS_SHIELDED = 431; + +const BNT_CONDITION_SQUAD_IS_SHIELDED = 432; + +const BNT_CONDITION_DISTANCE_FROM_SHIELD = 433; + +const BNT_CONDITION_TEAM_DEATH_COUNT = 434; + +const BNT_CONDITION_GODS_IN_LANE_PUSHER_RADIUS = 435; + +const BNT_CONDITION_DISTANCE_FROM_DAMAGING_DEPLOYABLE = 436; + +const BNT_CONDITION_DISTANCE_FROM_AVOIDABLE_PROJECTILE = 437; + +const BNT_CONDITION_NUM_GODS_NEAR_DEPLOYABLE = 438; + +const BNT_CONDITION_NUM_GODS_NEAR_PROJECTILE = 439; + +const BNT_CONDITION_WON_LAST_POINT = 440; + +const BNT_CONDITION_TIME_IN_PAYLOAD_MODE = 441; + +const BNT_CONDITION_IS_ATTACKING_TASK_FORCE = 442; + +const BNT_CONDITION_IS_DESIRED_AIM_DEVICE = 443; + +const BNT_CONDITION_IS_BOT_BEHAVIOR_STATE = 444; + +const BNT_CONDITION_DISTANCE_FROM_ASSAULT_POINT = 445; + +const BNT_CONDITION_NEARBY_ALLY_ATTACKED = 446; + +const BNT_CONDITION_NUMBER_DEVICES_FIRING = 447; + +const BNT_CONDITION_COMBAT_IS_SQUAD_TARGET = 448; + +const BNT_CONDITION_SIEGE_SCORE = 449; + +const BNT_ACTION_CLEAR_NAVIGATION_QUEUE = 1048576; + +const BNT_ACTION_USE_DEVICE = 1048577; + +const BNT_ACTION_RUN_TO_SPAWN = 1048578; + +const BNT_ACTION_FOLLOW_COMBAT_TARGET = 1048579; + +const BNT_ACTION_LOOK_AT_COMBAT_TARGET = 1048580; + +const BNT_ACTION_MOVE_TO_LANE_TARGET = 1048581; + +const BNT_ACTION_PLAY_EMOTE = 1048582; + +const BNT_ACTION_PURCHASE_ITEMS = 1048583; + +const BNT_ACTION_PURCHASE_SKILLS = 1048584; + +const BNT_ACTION_SELECT_COMBAT_LANE = 1048585; + +const BNT_ACTION_SELECT_COMBAT_LASTATTACKER = 1048586; + +const BNT_ACTION_SELECT_LANE_MOVE = 1048587; + +const BNT_ACTION_SELECT_LANE_JUNGLE = 1048588; + +const BNT_ACTION_SELECT_LANE_MINOTAUR = 1048589; + +const BNT_ACTION_CLEAR_LANE_MOVE_TARGET = 1048590; + +const BNT_ACTION_CLEAR_COMBAT_TARGET = 1048591; + +const BNT_ACTION_CLEAR_LOOK_AT = 1048592; + +const BNT_ACTION_LEASH_TO_SPAWN = 1048593; + +const BNT_ACTION_SELECT_COMBAT_THREAT = 1048594; + +const BNT_ACTION_LOOK_AT_SPAWN_ROTATION = 1048595; + +const BNT_ACTION_SELECT_COMBAT_LEASH = 1048596; + +const BNT_ACTION_RUN_TO_SPREAD_LOCATION = 1048597; + +const BNT_ACTION_SELECT_COMBAT_SQUAD = 1048598; + +const BNT_ACTION_SUGGEST_COMBAT_SQUAD = 1048599; + +const BNT_ACTION_CLEAR_SPREAD_LOCATION = 1048600; + +const BNT_ACTION_RUN_TO_OWNER = 1048601; + +const BNT_ACTION_FOLLOW_LANE = 1048602; + +const BNT_ACTION_CLEAR_LAST_ATTACKER = 1048603; + +const BNT_ACTION_SELECT_LANE_MOVE_AS_COMBAT_TARGET = 1048604; + +const BNT_ACTION_MOVE_TO_LANE_VOLUME = 1048605; + +const BNT_ACTION_JUKE = 1048606; + +const BNT_ACTION_USE_CONSUMABLE = 1048607; + +const BNT_ACTION_USE_ACTIVE = 1048608; + +const BNT_ACTION_FOLLOW_PATROL = 1048609; + +const BNT_ACTION_REGEN_HEALTH = 1048610; + +const BNT_ACTION_PAUSE_AI = 1048611; + +const BNT_ACTION_PLAY_VGS = 1048612; + +const BNT_ACTION_ASSIGN_LANE = 1048613; + +const BNT_ACTION_SELECT_COMBAT_JUNGLE = 1048614; + +const BNT_ACTION_MOVE_TO_RALLY_POINT = 1048615; + +const BNT_ACTION_CLEAR_RALLY_POINT = 1048616; + +const BNT_ACTION_CANCEL_FIRING = 1048617; + +const BNT_ACTION_SELECT_COMBAT_TARGETS_TARGET = 1048618; + +const BNT_ACTION_FOLLOW_LANE_REVERSE = 1048619; + +const BNT_ACTION_STOP_DEVICE = 1048620; + +const BNT_ACTION_STRAFE = 1048621; + +const BNT_ACTION_SPREAD_FROM_SQUAD = 1048622; + +const BNT_ACTION_MOVE_TO_ASSAULT_POSITION = 1048623; + +const BNT_ACTION_MOVE_TO_COVER = 1048624; + +const BNT_ACTION_SELECT_COMBAT_OWNER_LASTATTACKER = 1048625; + +const BNT_ACTION_SELECT_OWNER_COMBAT_TARGET = 1048626; + +const BNT_ACTION_JUMP = 1048627; + +const BNT_ACTION_MOVE_TO_DEPLOYABLE = 1048628; + +const BNT_ACTION_MOVE_TO_LANEPUSHER = 1048700; + +const BNT_ACTION_MOVE_TO_CAPTURE_POINT = 1048701; + +const BNT_ACTION_SELECT_LANEPUSHER_COMBAT_TARGET = 1048702; + +const BNT_ACTION_SELECT_COMBAT_LANEPUSHER_COMBAT = 1048704; + +const BNT_ACTION_SELECT_COMBAT_FORTRESS_OBJECTIVE = 1048705; + +const BNT_ACTION_LOOK_AT_FORTRESS = 1048706; + +const BNT_ACTION_LOOK_AT_CAPTURE_POINT = 1048707; + +const BNT_ACTION_LOOK_AT_LANEPUSHER = 1048708; + +const BNT_ACTION_PURCHASE_BURN_CARDS = 1048709; + +const BNT_ACTION_MOVE_TO_SHIELD = 1048710; + +const BNT_ACTION_MOVE_TO_DAMAGING_DEPLOYABLE = 1048711; + +const BNT_ACTION_MOVE_TO_AVOIDABLE_PROJECTILE = 1048712; + +const BNT_ACTION_MOVE_AROUND_LANEPUSHER = 1048713; + +const BNT_ACTION_GROUP_UP = 1048714; + +const BNT_ACTION_WIGGLE = 1048715; + +const BNT_ACTION_MOVE_TO_LANEPUSHER_FRONT = 1048716; + +const BNT_ACTION_SET_AIM_DEVICE = 1048717; + +const BNT_ACTION_SET_BOT_BEHAVIOR_STATE = 1048718; + +const BNT_ACTION_RELOAD_DEVICE = 1048719; + +const BNT_ACTION_UPDATE_TARGET_LAST_KNOWN_LOCATION = 1048720; + +const BNT_ACTION_LOOK_AT_TARGET_LKL = 1048721; + +const BNT_ACTION_SELECT_ALLY_ATTACKER_AS_TARGET = 1048722; + +const BNT_UTILITY_RANDOM = 268435456; + +const BNT_UTILITY_FILTER_GAMESTATE = 268435457; + +const BNT_UTILITY_COMBAT_TARGET_DISTANCE = 268435458; + +const BNT_UTILITY_FORTRESS_DISTANCE = 268435459; + +const BNT_UTILITY_DISTANCE2PAWN = 268435460; + +const BNT_UTILITY_FILTER_CAPTUREPOINT = 268435461; + +const BNT_UTILITY_FILTER_ASSAULTRANGETYPE = 268435462; + +const BNT_UTILITY_FILTER_INSIDE_ACTIVE_RALLY_POINT = 268435463; + +const BNT_UTILITY_PAWN_DISTANCE_TO_NORMAL = 268435464; + +const BNT_UTILITY_COMBAT_TARGET_DISTANCE_TO_NORMAL = 268435465; + +const BNT_UTILITY_FILTER_PAYLOAD = 268435466; + +const BNT_UTILITY_FILTER_LOSTOTARGET = 268435467; + +const BNT_UTILITY_FILTER_STAYINTARGETFOV = 268435468; + +const BNT_UTILITY_FILTER_DISTANCEFROMPAWN = 268435469; + +const BNT_UTILITY_FILTER_DISTANCEFROMTARGET = 268435470; + +const BNT_UTILITY_FILTER_LOSTOTARGETLASTKNOWNLOCATION = 268435471; + +var int NodeToken; diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor.uc new file mode 100644 index 0000000..32090f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor.uc @@ -0,0 +1,5 @@ +class TgAIBehaviorSensor extends TgAIBehaviorNode + abstract + native(AI) + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Devices.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Devices.uc new file mode 100644 index 0000000..4b2b892 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Devices.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_Devices extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=0.2000000 + TitleName="Device Targeting" + NodeToken=16 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Fortress.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Fortress.uc new file mode 100644 index 0000000..fb0aca9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Fortress.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_Fortress extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="Fortress" + NodeToken=21 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Gods.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Gods.uc new file mode 100644 index 0000000..d690818 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Gods.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_Gods extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="Gods" + NodeToken=8 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_InHostileAbility.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_InHostileAbility.uc new file mode 100644 index 0000000..8ff43b8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_InHostileAbility.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_InHostileAbility extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="InHostileAbility" + NodeToken=11 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_IncomingDamage.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_IncomingDamage.uc new file mode 100644 index 0000000..c61ec99 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_IncomingDamage.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_IncomingDamage extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="IncomingDamage" + NodeToken=17 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Lane.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Lane.uc new file mode 100644 index 0000000..1b43db2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Lane.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_Lane extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="Lane" + NodeToken=15 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Leash.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Leash.uc new file mode 100644 index 0000000..3cb872a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Leash.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_Leash extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=0.2000000 + TitleName="Leash" + NodeToken=14 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_PurchaseSkills.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_PurchaseSkills.uc new file mode 100644 index 0000000..40500e4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_PurchaseSkills.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_PurchaseSkills extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=5.0000000 + TitleName="PurchaseSkills" + NodeToken=12 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_RallyPoints.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_RallyPoints.uc new file mode 100644 index 0000000..6a301ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_RallyPoints.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_RallyPoints extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="RallyPoints" + NodeToken=18 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_SafeToRecall.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_SafeToRecall.uc new file mode 100644 index 0000000..58af870 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_SafeToRecall.uc @@ -0,0 +1,13 @@ +class TgAIBehaviorSensor_SafeToRecall extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +var () float SafeRecallDist; + +defaultproperties +{ + SafeRecallDist=120.0000000 + InvTickFrequency=1.0000000 + TitleName="SafeToRecall" + NodeToken=13 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_SightRadius.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_SightRadius.uc new file mode 100644 index 0000000..4aea8aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_SightRadius.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_SightRadius extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="SightRadius" + NodeToken=9 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Towers.uc b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Towers.uc new file mode 100644 index 0000000..d20faf5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorSensor_Towers.uc @@ -0,0 +1,10 @@ +class TgAIBehaviorSensor_Towers extends TgAIBehaviorSensor + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="Towers" + NodeToken=10 +} diff --git a/Development/Src/TgGame/Classes/TgAIBehaviorTree.uc b/Development/Src/TgGame/Classes/TgAIBehaviorTree.uc new file mode 100644 index 0000000..6fa1e6b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIBehaviorTree.uc @@ -0,0 +1,8 @@ +class TgAIBehaviorTree extends TgAIBehaviorNode + native(AI) + hidecategories(Object) + config(Engine); + +var TgAIBehaviorComposite ChildNode; +var init array SensorNodes; +var init array UtilitySets; diff --git a/Development/Src/TgGame/Classes/TgAIController.uc b/Development/Src/TgGame/Classes/TgAIController.uc old mode 100755 new mode 100644 index 82510ad..6cd0afb --- a/Development/Src/TgGame/Classes/TgAIController.uc +++ b/Development/Src/TgGame/Classes/TgAIController.uc @@ -1,4 +1,156 @@ -class TgAIController extends GameAIController - native(AI) - config(Game) - hidecategories(Navigation); \ No newline at end of file +class TgAIController extends GameAIController + native(AI) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const AI_TEAM_PASSTHRU_DISTANCE = 100000; + +const AI_DEFAULT_DISTANCE_OFFSET = 50; + +const SMITE_MIDPOINT_ROUTE_THRESHOLD = 176.0f; + +const SMITE_MINION_INTRASQUAD_SPAWN_DELAY = 0.5f; + +struct ThreatStruct { + var Actor Threatener; + var float fThreat; + structdefaultproperties {} +}; + +var transient TgPawn m_pOwner; +var transient Vector m_vSpawnLocation; +var transient Rotator m_rSpawnDirection; +var transient TgBotFactory m_pFactory; +var transient int m_nFactorySpawnGroup; +var native const transient Pointer m_pBot; +var native const transient Pointer m_pSettings; +var native const transient Pointer m_pSkin; +var transient int m_iAssignedLane; +var transient float LastSeePawnCacheTime; +var transient float SeePawnClearTime; +var transient TgPawn m_pLastAttacker; +var transient TgAISquad m_Squad; +var transient float LastDamageTakenTime; +var transient Vector LastDamageTakenPosition; +var transient float LastLoSCacheTime; +var transient HavokNavigationHandle.EHavokNavigationMeshType m_eNavmeshType; +var Actor.EPhysics WalkingPhysics; +var float m_fAILevelUpSecs; +var float VisionDistance; +var float VisionDistanceBonus; +var bool bUsesObstacleAvoidance; +var transient bool bIsPaused; +var transient bool bIsAIFrozen; +var transient TgAIObstacleAvoidance ObstacleAvoidance; +var float ObstacleAvoidanceGridPointSize; +var float ObstacleAvoidanceGridExtents; +var transient Vector SpreadLocation; +var transient TgRepInfo_Player CachedPRI; +var transient float LastCheckStuckTime; +var transient float CheckStuckTime; +var transient Vector LastCachedStuckPosition; +var transient float LastCheckFlungTime; +var transient float CheckFlungTime; +var transient Vector LastCachedFlungPosition; + +native function bool AtLocation(Vector vLocation); // Export UTgAIController::execAtLocation(FFrame&, void* const) + +native function bool IsDeviceReady(TgObject.TG_EQUIP_POINT DeviceSlot); // Export UTgAIController::execIsDeviceReady(FFrame&, void* const) + +native function AddThreat(TgPawn attacker, float fAmount); // Export UTgAIController::execAddThreat(FFrame&, void* const) + +native function int GetTaskForceNumber(); // Export UTgAIController::execGetTaskForceNumber(FFrame&, void* const) + +native function SetTaskForceNumber(int nTaskForce); // Export UTgAIController::execSetTaskForceNumber(FFrame&, void* const) + +native function bool LineCheckMovement(Actor pTarget, optional Actor pSource); // Export UTgAIController::execLineCheckMovement(FFrame&, void* const) + +native function bool LineCheckVisibility(Actor pTarget, optional Actor pSource); // Export UTgAIController::execLineCheckVisibility(FFrame&, void* const) + +native function bool LineCheck(Vector vLocation, Actor pTarget); // Export UTgAIController::execLineCheck(FFrame&, void* const) + +native function bool LineCheckEx(Vector vLocation, Actor pTarget, Vector vTarget); // Export UTgAIController::execLineCheckEx(FFrame&, void* const) + +native function bool LineCheckPassThrough(Vector vLocation, Actor pTarget, Vector vTarget); // Export UTgAIController::execLineCheckPassThrough(FFrame&, void* const) + +native function Vector CalculateLobIntersection(Vector targetPos, Vector targetVel, Vector sourcePos, Vector sourceVel, float projVel); // Export UTgAIController::execCalculateLobIntersection(FFrame&, void* const) + +native function float GetVisionDistance(); // Export UTgAIController::execGetVisionDistance(FFrame&, void* const) + +native function float GetMaxDeviceRange(); // Export UTgAIController::execGetMaxDeviceRange(FFrame&, void* const) + +native function UpdateTargetingList(array ImpactList, byte EquipSlot); // Export UTgAIController::execUpdateTargetingList(FFrame&, void* const) + +native function SquadTargetChanged(); // Export UTgAIController::execSquadTargetChanged(FFrame&, void* const) + +native function SquadEvade(); // Export UTgAIController::execSquadEvade(FFrame&, void* const) + +native function Evade(); // Export UTgAIController::execEvade(FFrame&, void* const) + +native function SetSpreadLocation(const out Vector SpreadLoc); // Export UTgAIController::execSetSpreadLocation(FFrame&, void* const) + +native function ClearSpreadLocation(); // Export UTgAIController::execClearSpreadLocation(FFrame&, void* const) + +native function bool CanSpreadOut(); // Export UTgAIController::execCanSpreadOut(FFrame&, void* const) + +event PostBeginPlay() { } + +event Possess(Pawn inPawn, bool bVehicleTransition) { } + +function InitPlayerReplicationInfo() { } + +function CleanupPRI() { } + +function Destroyed() { } + +event Despawn() { } + +event Suicide() { } + +function PawnDied(Pawn P) { } + +function OnTriggerBots(TgSeqAct_TriggerBots Action) { } + +function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +function SetActionlessPause(bool bOn) { } + +function NotifyKilledBy(Controller Killer) { } + +function NotifyTakeHit(Controller InstigatedBy, vector HitLocation, int Damage, class damageType, vector Momentum) { } + +function OnExitCombat() { } + +function OnEnterCombat() { } + +event DeviceOnStartBuildup(TgDevice Dev) { } + +event DeviceOnStopBuildup(TgDevice Dev, bool WasInterrupted) { } + +event DeviceOnStartFire(TgDevice Dev) { } + +event DeviceOnFire(TgDevice Dev) { } + +event ProjectileOnFire(TgProjectile Proj) { } + +event DeviceOnHit(TgDevice Dev, const out ImpactInfo Impact) { } + +event DeviceOnStopFire(TgDevice Dev, optional bool WasInterrupted=false) { } + +event NotifyDamagedTarget(TgPawn TargetPawn) { } + +function NotifyWeaponFired(Weapon W, byte FireMode) { } + +defaultproperties +{ + m_iAssignedLane=-1 + SeePawnClearTime=0.2500000 + m_fAILevelUpSecs=180.0000000 + ObstacleAvoidanceGridPointSize=32.0000000 + ObstacleAvoidanceGridExtents=1024.0000000 + CheckStuckTime=1.5000000 + CheckFlungTime=0.5000000 + bIsPlayer=true + NavigationHandleClass=Class'HavokNavigationHandle' +} diff --git a/Development/Src/TgGame/Classes/TgAIController_Behavior.uc b/Development/Src/TgGame/Classes/TgAIController_Behavior.uc old mode 100755 new mode 100644 index 459a4d1..775d14d --- a/Development/Src/TgGame/Classes/TgAIController_Behavior.uc +++ b/Development/Src/TgGame/Classes/TgAIController_Behavior.uc @@ -1,4 +1,361 @@ -class TgAIController_Behavior extends TgAIController - native(AI) - config(Game) - hidecategories(Navigation); \ No newline at end of file +class TgAIController_Behavior extends TgAIController + native(AI) + config(Game) + hidecategories(Navigation) + dependson(TgAIBehaviorNode, TgObject); + +const AIBOARD_BEHAVIOR_GOD = 0x01; + +const AIBOARD_BEHAVIOR_MAPNPC = 0x02; + +const AIBOARD_BEHAVIOR_PET = 0x04; + +const AIBOARD_SQUAD = 0x08; + +const AIBOARD_BEHAVIOR_LANENPC = 0x10; + +enum EBotDifficultyLevel { + AIDifficulty_Practice, // 0 + AIDifficulty_Easy1, // 1 + AIDifficulty_Easy2, // 2 + AIDifficulty_Medium1, // 3 + AIDifficulty_Medium2, // 4 + AIDifficulty_Hard1, // 5 + AIDifficulty_Hard2, // 6 + AIDifficulty_Pro1, // 7 + AIDifficulty_Pro2, // 8 + AIDifficulty_Max, // 9 +}; + +enum ECombatTargetType { + AICombatTarget_Any, // 0 + AICombatTarget_God, // 1 + AICombatTarget_Guardian, // 2 + AICombatTarget_Minion, // 3 + AICombatTarget_Tower, // 4 + AICombatTarget_JungleCamp, // 5 + AICombatTarget_Pet, // 6 + AICombatTarget_Decoy, // 7 + AICombatTarget_Deployable, // 8 + AICombatTarget_GodBot, // 9 + AICombatTarget_GodHuman, // 10 + AICombatTarget_SiegeWall, // 11 + AICombatTarget_Turret, // 12 +}; + +enum EJungleTargetType { + AIJungleTarget_Attack, // 0 + AIJungleTarget_Mana, // 1 + AIJungleTarget_Speed, // 2 + AIJungleTarget_BigXP, // 3 + AIJungleTarget_LittleXP, // 4 + AIJungleTarget_GoldFury, // 5 + AIJungleTarget_Nearest, // 6 +}; + +enum EConsumableType { + AIConsumable_HealthPotion, // 0 + AIConsumable_ManaPotion, // 1 + AIConsumable_MultiPotion, // 2 + AIConsumable_Ward, // 3 + AIConsumable_DamagePotion, // 4 + AIConsumable_DefensePotion, // 5 +}; + +enum EActiveType { + AIActive_Meditation, // 0 + AIActive_HandOfGods, // 1 + AIActive_Sprint, // 2 + AIActive_Ward, // 3 + AIActive_Aegis, // 4 + AIActive_Beads, // 5 +}; + +enum EEffectGroupCategory { + AIEffectCategory_None, // 0 + AIEffectCategory_Slow, // 1 + AIEffectCategory_Stun, // 2 + AIEffectCategory_Frozen, // 3 + AIEffectCategory_Knockback, // 4 + AIEffectCategory_Root, // 5 + AIEffectCategory_Silence, // 6 + AIEffectCategory_Disarm, // 7 + AIEffectCategory_Cripple, // 8 + AIEffectCategory_Daze, // 9 + AIEffectCategory_Fear, // 10 + AIEffectCategory_Taunt, // 11 + AIEffectCategory_Mesmerize, // 12 +}; + +enum ERangeType { + RangeType_Short, // 0 + RangeType_Mid, // 1 + RangeType_Long, // 2 + RangeType_None, // 3 +}; + +enum EUseDeviceAimType { + AIDeviceAim_CombatTarget, // 0 + AIDeviceAim_Self, // 1 +}; + +enum ESelectionArbitrator { + ARBITRATE_FAIL, // 0 + ARBITRATE_CLOSEST, // 1 + ARBITRATE_RANDOM, // 2 + ARBITRATE_FIRST, // 3 +}; + +enum ETargetSelector { + TargetSelect_Closest, // 0 + TargetSelect_Weakest, // 1 + TargetSelect_Strongest, // 2 + TargetSelect_LowestPercentHealth, // 3 + TargetSelect_Random, // 4 +}; + +enum EAIAnnotationType { + AIA_AssaultPoint, // 0 + AIA_CoverPoint, // 1 +}; + +enum EUtilityType { + UTIL_Function, // 0 + UTIL_Filter, // 1 +}; + +struct DeferredNode { + var float WorldTime; + var Pointer CurrentNode; + var Pointer CachedStatus; + var Pointer StorageMemory; + var Pointer WorkingMemory; + structdefaultproperties {} +}; + +struct NavigationQueueEntry { + var TgPawn TargetPawn; + var Actor TargetActor; + var Vector TargetLocation; + var bool bNewEntry; + var bool bCanCacheLOS; + var bool bCachedLOS; + var bool bLookAtTarget; + var bool bMustHaveLOS; + var bool bStopNavOnReachedDestination; + var float DistanceTolerance; + var int NodeToken; + var int TeleportIndex; + structdefaultproperties {} +}; + +struct FollowLaneState { + var int LastLaneIndex; + var bool bFinalApproach; + var bool bLockedToMarker; + structdefaultproperties {} +}; + +struct IncomingDamageEntry { + var TgPawn attacker; + var TgObject.TG_EQUIP_POINT DeviceSlot; + var Vector SourceInitialLocation; + var Rotator SourceInitialAim; + var float ExpireTime; + var float RemovalTime; + var float Weight; + structdefaultproperties {} +}; + +var init transient array DeferredNodes; +var transient int BlackboardType; +var name BehaviorTreeAsName; +var native transient Pointer SensorTree; +var native transient Pointer SensorDynamicMemory; +var native transient Pointer SensorStaticMemory; +var native transient Pointer WorkerTree; +var native transient Pointer WorkerTreeCachedStatus; +var native transient Pointer WorkerDynamicMemory; +var native transient Pointer WorkerStaticMemory; +var transient int SensorNodeCount; +var transient int WorkerNodeCount; +var transient float LastUpdateTime; +var init transient array CachedNodeData; +var float m_fCooldownModifier; +var float m_fLeadAccuracy; +var float m_fRefireSpeedModifier; +var float m_fDegreeMissedMagnitude; +var float m_fMissLikelihood; +var transient TgAILocalPositionSolver LocalRepulsorSolver; +var Class LocalRepulsorSolverClass; +var transient NavigationQueueEntry CurrentNavigation; +var transient float NavigationSearchModifier; +var float NavigationSearchModifier_Max; +var float NavigationSearchModifier_Min; +var FollowLaneState FollowLaneForwardState; +var FollowLaneState FollowLaneReverseState; +var transient bool bIsAlive; +var protected transient bool m_bPaused; +var transient bool bIsRotationLocked; +var transient bool bIsStunned; +var transient bool bInHostileAbility; +var transient bool bIsSafeToRecall; +var transient bool bInEnemyTowerRadius; +var transient bool bInFriendlyTowerRadius; +var transient bool bInEnemyMinotaurRadius; +var transient bool bInFriendlyMinotaurRadius; +var transient bool bIsTargetOfEnemyTowerOrMinotaur; +var transient bool bCombatTargetInEnemyTowerRadius; +var transient bool bCombatTargetInFriendlyTowerRadius; +var transient bool bCombatTargetInEnemyMinotaurRadius; +var transient bool bCombatTargetInFriendlyMinotaurRadius; +var transient bool bCombatTargetIsTargetOfFriendlyTowerOrMinotaur; +var transient bool bIsAtFortress; +var transient bool bIsAtEnemyFortress; +var transient bool bIsAtCachedRallyPoint; +var bool bBtDebugSpawnPaused; +var transient bool bBtDebugPaused; +var transient bool bBtDebugStep; +var transient bool bBtDebugClientOverlay; +var transient Vector NextFearDirection; +var transient float PawnCollisionHeight; +var transient float PawnCollisionRadius; +var transient float DeviceRanges[25]; +var transient Actor CombatTarget; +var transient TgPawn CombatTargetAsPawn; +var transient int EnemyMinionsInEnemyTowerRadius; +var transient int FriendlyMinionsInEnemyTowerRadius; +var transient int EnemyMinionsInFriendlyTowerRadius; +var transient int FriendlyMinionsInFriendlyTowerRadius; +var transient int EnemyGodsInEnemyTowerRadius; +var transient int FriendlyGodsInEnemyTowerRadius; +var transient int EnemyGodsInFriendlyTowerRadius; +var transient int FriendlyGodsInFriendlyTowerRadius; +var transient float HealthOfNearestEnemyTower; +var transient float HealthOfNearestFriendlyTower; +var transient Actor LaneMoveTarget; +var init transient array VisibleActorsToAvoid; +var init transient array CachedTowers; +var init transient array CachedGods; +var transient array EnemyControllersInSightRadius; +var transient array FriendlyControllersInSightRadius; +var transient TgAIController_Behavior.EBotDifficultyLevel Difficulty; +var transient TgAIController_Behavior.EUseDeviceAimType LastUseDeviceAimType; +var transient Vector TargetLastKnownLocation; +var transient TgAIAnnotation CurrentAssaultPoint; +var transient array IncomingDamage; +var transient TgAIVolume CachedRallyVolume; +var transient int RandomRallyPointIndex; +var transient TgPawn_SiegeWall FortressObjective; +var transient Vector AlliedFortressLookDir; +var transient Vector EnemyFortressLookDir; +var transient TgFortressVolume AlliedFortress; +var transient TgFortressVolume EnemyFortress; +var transient Vector StrafeDir; +var transient float LastStrafeDirUpdate; +var transient float StrafeDirUpdateTime; +var Class UtilityHandleClass; +var transient TgAIUtilityHandle UtilityHandle; +var transient Actor EscortActor; +var transient float EscortMinDistance; +var transient float EscortMaxDistance; +var transient int m_nDevicesLockingInput; + +event UpdatePawnDebug() { } + +simulated function Debug_Pause() { } + +simulated function Debug_Step() { } + +simulated function Debug_Resume() { } + +simulated function Debug_Reset() { } + +native function SpawnDebuggerWindow(); // Export UTgAIController_Behavior::execSpawnDebuggerWindow(FFrame&, void* const) + +native function CleanupBehaviorTree(); // Export UTgAIController_Behavior::execCleanupBehaviorTree(FFrame&, void* const) + +native function ResetBehaviorTree(); // Export UTgAIController_Behavior::execResetBehaviorTree(FFrame&, void* const) + +native function LoadBehaviorTree(optional name TreeName); // Export UTgAIController_Behavior::execLoadBehaviorTree(FFrame&, void* const) + +event PreBeginPlay() { } + +event PostBeginPlay() { } + +event Destroyed() { } + +event Possess(Pawn inPawn, bool bVehicleTransition) { } + +event ResetBlackboard() { } + +native function bool HasVisibilityToPoint(const out Vector TestPoint); // Export UTgAIController_Behavior::execHasVisibilityToPoint(FFrame&, void* const) + +native function AddActorToNavigationQueue(int NodeToken, Actor TargetActor, bool bLookAtTarget, bool bMustHaveLOS, float DistanceTolerance, optional bool bStopNavOnReachedDestination=true); // Export UTgAIController_Behavior::execAddActorToNavigationQueue(FFrame&, void* const) + +native function AddLocationToNavigationQueue(int NodeToken, Vector TargetLocation, bool bLookAtTarget, bool bMustHaveLOS, float DistanceTolerance); // Export UTgAIController_Behavior::execAddLocationToNavigationQueue(FFrame&, void* const) + +native function ClearNavigation(); // Export UTgAIController_Behavior::execClearNavigation(FFrame&, void* const) + +native function StopNavigation(); // Export UTgAIController_Behavior::execStopNavigation(FFrame&, void* const) + +native function UpdateDeviceRanges(); // Export UTgAIController_Behavior::execUpdateDeviceRanges(FFrame&, void* const) + +simulated function Stun(bool bStun, optional Controller.EStunType eType=0) { } + +native function float GetCooldownIncrease(); // Export UTgAIController_Behavior::execGetCooldownIncrease(FFrame&, void* const) + +native function Vector CalculateAim(bool bHeadShot); // Export UTgAIController_Behavior::execCalculateAim(FFrame&, void* const) + +event bool FireDevice(TgObject.TG_EQUIP_POINT DeviceSlot, bool bContinuousFire, optional TgAIController_Behavior.EUseDeviceAimType aimType=0) { } + +event bool CancelFiring() { } + +event bool StopFireDevice(TgObject.TG_EQUIP_POINT DeviceSlot, optional bool bForce) { } + +event DeviceOnStopFire(TgDevice Dev, optional bool WasInterrupted=false) { } + +function float GetAngleToTarget() { } + +function float GetCooldownModifier() { } + +function float GetLeadAccuracy() { } + +function Rotator CalcUniformInaccuracy(float DegMissed) { } + +function Rotator CalcGaussianInaccuracy(float StdDev) { } + +function Rotator GetAdjustedAimFor(Weapon W, vector StartFireLoc) { } + +function PawnDied(Pawn P) { } + +function GameHasEnded(optional Actor EndGameFocus, optional bool bIsWinner) { } + +event SetPaused(bool bPaused) { } + +event bool IsPaused() { } + +event PauseForDuration(float PauseDuration) { } + +event UnpauseFromDuration() { } + +auto state Idle {} + +defaultproperties +{ + m_fCooldownModifier=1.0000000 + m_fLeadAccuracy=0.3000000 + m_fRefireSpeedModifier=1.0000000 + m_fDegreeMissedMagnitude=15.0000000 + m_fMissLikelihood=0.6500000 + CurrentNavigation=(TargetPawn=none,TargetActor=none,TargetLocation=(X=0.0000000,Y=0.0000000,Z=0.0000000),bNewEntry=true,bCanCacheLOS=false,bCachedLOS=false,bLookAtTarget=false,bMustHaveLOS=false,bStopNavOnReachedDestination=true,DistanceTolerance=0.0000000,NodeToken=-1,TeleportIndex=0) + FollowLaneForwardState=(LastLaneIndex=-1,bFinalApproach=false,bLockedToMarker=false) + FollowLaneReverseState=(LastLaneIndex=-1,bFinalApproach=false,bLockedToMarker=false) + Difficulty=AIDifficulty_Medium1 + StrafeDirUpdateTime=1.0000000 + EscortMinDistance=200.0000000 + EscortMaxDistance=250.0000000 + WalkingPhysics=PHYS_Walking + TickGroup=TG_PostAsyncWork + m_bHasThreadedWork=true +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorAerialDrone.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorAerialDrone.uc new file mode 100644 index 0000000..d822f1d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorAerialDrone.uc @@ -0,0 +1,9 @@ +class TgAIController_BehaviorAerialDrone extends TgAIController_Behavior + config(Game) + hidecategories(Navigation); + +defaultproperties +{ + BlackboardType=4 + WalkingPhysics=PHYS_Flying +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorChaosJuggernaut.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorChaosJuggernaut.uc new file mode 100644 index 0000000..523ff1a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorChaosJuggernaut.uc @@ -0,0 +1,4 @@ +class TgAIController_BehaviorChaosJuggernaut extends TgAIController_BehaviorMapNpc + native(AI) + config(Game) + hidecategories(Navigation); diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorGod.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorGod.uc old mode 100755 new mode 100644 index 8f931d1..8e067c7 --- a/Development/Src/TgGame/Classes/TgAIController_BehaviorGod.uc +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorGod.uc @@ -1,7 +1,166 @@ -class TgAIController_BehaviorGod extends TgAIController_Behavior - native(AI) - config(Game) - hidecategories(Navigation) - implements(TgPaladinsController); - -function ResetUlt() {} \ No newline at end of file +class TgAIController_BehaviorGod extends TgAIController_Behavior + native(AI) + config(Game) + hidecategories(Navigation) + implements(TgPaladinsController) + dependson(TgObject); + +const GAMEEVENT_PALADINS_PLAYER_KILL = 1001; + +const GAMEEVENT_PALADINS_PLAYER_DEATH = 1002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_SUICIDE = 2001; + +const GAMEEVENT_PALADINS_PLAYER_KILL_NORMAL = 2002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_ASSIST = 2003; + +const GAMEEVENT_MATCH_STARTED = 0; + +const GAMEEVENT_MATCH_ENDED = 1; + +const GAMEEVENT_ROUND_STARTED = 2; + +const GAMEEVENT_ROUND_ENDED = 3; + +const GAMEEVENT_GAME_CLASS = 6; + +const GAMEEVENT_GAME_OPTION_URL = 7; + +const GAMEEVENT_GAME_MAPNAME = 8; + +const GAMEEVENT_MEMORYUSAGE_POLL = 35; + +const GAMEEVENT_FRAMERATE_POLL = 36; + +const GAMEEVENT_NETWORKUSAGEIN_POLL = 37; + +const GAMEEVENT_NETWORKUSAGEOUT_POLL = 38; + +const GAMEEVENT_PING_POLL = 39; + +const GAMEEVENT_RENDERTHREAD_POLL = 40; + +const GAMEEVENT_GAMETHREAD_POLL = 41; + +const GAMEEVENT_GPUFRAMETIME_POLL = 42; + +const GAMEEVENT_FRAMETIME_POLL = 43; + +const GAMEEVENT_TEAM_CREATED = 50; + +const GAMEEVENT_TEAM_GAME_SCORE = 51; + +const GAMEEVENT_TEAM_MATCH_WON = 4; + +const GAMEEVENT_TEAM_ROUND_WON = 5; + +const GAMEEVENT_TEAM_ROUND_STALEMATE = 52; + +const GAMEEVENT_PLAYER_LOGIN = 100; + +const GAMEEVENT_PLAYER_LOGOUT = 101; + +const GAMEEVENT_PLAYER_SPAWN = 102; + +const GAMEEVENT_PLAYER_MATCH_WON = 103; + +const GAMEEVENT_PLAYER_KILL = 104; + +const GAMEEVENT_PLAYER_LOCATION_POLL = 105; + +const GAMEEVENT_PLAYER_TEAMCHANGE = 106; + +const GAMEEVENT_PLAYER_KILL_STREAK = 107; + +const GAMEEVENT_PLAYER_DEATH = 108; + +const GAMEEVENT_PLAYER_ROUND_WON = 109; + +const GAMEEVENT_PLAYER_ROUND_STALEMATE = 110; + +const GAMEEVENT_WEAPON_DAMAGE = 150; + +const GAMEEVENT_WEAPON_DAMAGE_MELEE = 151; + +const GAMEEVENT_WEAPON_FIRED = 152; + +const GAMEEVENT_PLAYER_KILL_NORMAL = 200; + +const GAMEEVENT_GENERIC_PARAM_LIST_START = 300; + +const GAMEEVENT_GENERIC_PARAM_LIST_END = 400; + +const GAMEEVENT_GAME_SPECIFIC = 1000; + +const GAMEEVENT_MAX_EVENTID = 0x0000FFFF; + +var float WaitForSpawnSecs; +var transient int PlayerID; +var transient bool bCanPurchaseItems; +var transient bool bCanPurchaseSkills; +var bool bRespawnAtOriginalLocation; +var transient float CurrentGoldRemainder; +var transient int CurrentGold; +var transient float CurrentXPRemainder; +var transient int CurrentXP; +var transient Vector GeometricMean; + +native function PurchaseItems(); // Export UTgAIController_BehaviorGod::execPurchaseItems(FFrame&, void* const) + +native function bool CanAllocateSkillPoint(int DeviceID, TgDevice aDevice); // Export UTgAIController_BehaviorGod::execCanAllocateSkillPoint(FFrame&, void* const) + +native function bool HaveBasicSkillsBeenActivated(); // Export UTgAIController_BehaviorGod::execHaveBasicSkillsBeenActivated(FFrame&, void* const) + +native function int GetSkillPointsAvailable(); // Export UTgAIController_BehaviorGod::execGetSkillPointsAvailable(FFrame&, void* const) + +native function PurchaseSkills(); // Export UTgAIController_BehaviorGod::execPurchaseSkills(FFrame&, void* const) + +native function PurchaseBurnCards(); // Export UTgAIController_BehaviorGod::execPurchaseBurnCards(FFrame&, void* const) + +native function float StartReviveTimer(); // Export UTgAIController_BehaviorGod::execStartReviveTimer(FFrame&, void* const) + +native function bool OnRespawnRuleChanged(); // Export UTgAIController_BehaviorGod::execOnRespawnRuleChanged(FFrame&, void* const) + +native function SetBotPlayerId(); // Export UTgAIController_BehaviorGod::execSetBotPlayerId(FFrame&, void* const) + +native function SetStartingProperties(); // Export UTgAIController_BehaviorGod::execSetStartingProperties(FFrame&, void* const) + +native function SetRewardValues(int XP, int nCredits, Actor Source, optional TgObject.ERewardValueType RewardType=0, optional bool bFlankKill=false); // Export UTgAIController_BehaviorGod::execSetRewardValues(FFrame&, void* const) + +native function int GetTaskForceNumber(); // Export UTgAIController_BehaviorGod::execGetTaskForceNumber(FFrame&, void* const) + +function InitPlayerReplicationInfo() { } + +event Revive() { } + +function LiveRespawn(bool bResetHealth, bool bResetDevices) { } + +event Possess(Pawn inPawn, bool bVehicleTransition) { } + +function PawnDied(Pawn P) { } + +event CopyPropertiesTo(Controller C) { } + +function Rotator GetAdjustedAimFor(Weapon W, vector StartFireLoc) { } + +simulated event PostBeginPlay() { } + +function int GetCredits() { } + +function SetCredits(int nCreditsAmount) { } + +function ResetUlt() { } + +function TgPawn GetTgPawn() { } + +state Dead {} + +defaultproperties +{ + BlackboardType=1 + LocalRepulsorSolverClass=Class'TgAILocalPositionSolver_God' + NavigationSearchModifier_Max=10.0000000 + UtilityHandleClass=Class'TgAIUtilityHandle' + bIsPaused=true +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorGodDisconnected.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorGodDisconnected.uc new file mode 100644 index 0000000..1f44277 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorGodDisconnected.uc @@ -0,0 +1,15 @@ +class TgAIController_BehaviorGodDisconnected extends TgAIController_BehaviorGod + native(AI) + config(Game) + hidecategories(Navigation); + +var bool bInitialController; + +function InitPlayerReplicationInfo() { } + +event Possess(Pawn inPawn, bool bVehicleTransition) { } + +defaultproperties +{ + bIsPaused=false +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorLaneNpc.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorLaneNpc.uc new file mode 100644 index 0000000..3bdd669 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorLaneNpc.uc @@ -0,0 +1,16 @@ +class TgAIController_BehaviorLaneNpc extends TgAIController_Behavior + native(AI) + config(Game) + hidecategories(Navigation); + +var transient Actor GoalTarget; +var transient bool bDespawnOnLoseCombatTarget; +var transient bool bIsBehindSquad; +var transient bool bTooFarFromLane; + +native function bool CanSpreadOut(); // Export UTgAIController_BehaviorLaneNpc::execCanSpreadOut(FFrame&, void* const) + +defaultproperties +{ + BlackboardType=16 +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorMapNpc.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorMapNpc.uc new file mode 100644 index 0000000..5ec0a9e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorMapNpc.uc @@ -0,0 +1,41 @@ +class TgAIController_BehaviorMapNpc extends TgAIController_Behavior + native(AI) + config(Game) + hidecategories(Navigation); + +struct ThreatEntry { + var TgPawn attacker; + var float ThreatLevel; + structdefaultproperties {} +}; + +var init transient array ThreatList; +var transient bool bThreatListDecays; +var transient bool bOutsideLeash; +var transient bool bHadCombatTarget; +var transient float LeashDistance; +var transient Volume LeashVolume; +var init transient array LeashActors; + +native function AddThreat(TgPawn attacker, float ThreatLevel); // Export UTgAIController_BehaviorMapNpc::execAddThreat(FFrame&, void* const) + +native function ClearThreatList(); // Export UTgAIController_BehaviorMapNpc::execClearThreatList(FFrame&, void* const) + +native function bool CanSpreadOut(); // Export UTgAIController_BehaviorMapNpc::execCanSpreadOut(FFrame&, void* const) + +native function Evade(); // Export UTgAIController_BehaviorMapNpc::execEvade(FFrame&, void* const) + +native function SquadEvade(); // Export UTgAIController_BehaviorMapNpc::execSquadEvade(FFrame&, void* const) + +native function SquadTargetChanged(); // Export UTgAIController_BehaviorMapNpc::execSquadTargetChanged(FFrame&, void* const) + +function NotifyKilledBy(Controller Killer) { } + +defaultproperties +{ + bThreatListDecays=true + LeashDistance=2048.0000000 + BlackboardType=2 + ObstacleAvoidanceGridPointSize=16.0000000 + ObstacleAvoidanceGridExtents=768.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorPet.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorPet.uc new file mode 100644 index 0000000..8ebe8b7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorPet.uc @@ -0,0 +1,11 @@ +class TgAIController_BehaviorPet extends TgAIController_Behavior + native(AI) + config(Game) + hidecategories(Navigation); + +var () Actor OwnerCombatTarget; + +defaultproperties +{ + BlackboardType=4 +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorPetRanged.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorPetRanged.uc new file mode 100644 index 0000000..79d93e8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorPetRanged.uc @@ -0,0 +1,11 @@ +class TgAIController_BehaviorPetRanged extends TgAIController_BehaviorPet + native(AI) + config(Game) + hidecategories(Navigation); + +defaultproperties +{ + m_fLeadAccuracy=0.8700000 + m_fDegreeMissedMagnitude=2.5000000 + LocalRepulsorSolverClass=Class'TgAILocalPositionSolver_God' +} diff --git a/Development/Src/TgGame/Classes/TgAIController_BehaviorPet_LongTerm.uc b/Development/Src/TgGame/Classes/TgAIController_BehaviorPet_LongTerm.uc new file mode 100644 index 0000000..2c4152a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIController_BehaviorPet_LongTerm.uc @@ -0,0 +1,9 @@ +class TgAIController_BehaviorPet_LongTerm extends TgAIController_BehaviorPet + native(AI) + config(Game) + hidecategories(Navigation); + +defaultproperties +{ + LocalRepulsorSolverClass=Class'TgAILocalPositionSolver_Pet' +} diff --git a/Development/Src/TgGame/Classes/TgAIDirector.uc b/Development/Src/TgGame/Classes/TgAIDirector.uc new file mode 100644 index 0000000..cdd8202 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIDirector.uc @@ -0,0 +1,140 @@ +class TgAIDirector extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine) + dependson(TgAIController_Behavior); + +const PRACTICE_DIFFICULTY_CONFIG_ID = 62; + +const EASY_DIFFICULTY_CONFIG_ID = 63; + +const MEDIUM_DIFFICULTY_CONFIG_ID = 64; + +const HARD_DIFFICULTY_CONFIG_ID = 65; + +const PRO_DIFFICULTY_CONFIG_ID = 66; + +struct SkillLevelRawData { + var float NumDeaths; + var float Damage; + var float Kills; + var float SoloKills; + var float Assists; + var float Healing; + var float Credits; + var float Killstreak; + var float ObjectiveTime; + var float Shielding; + structdefaultproperties {} +}; + +struct SkillLevelPercentageData { + var float NumDeathsPercentage; + var float DamagePercentage; + var float KillsPercentage; + var float SoloKillsPercentage; + var float AssistsPercentage; + var float HealingPercentage; + var float CreditsPercentage; + var float ObjectiveTimePercentage; + var float ShieldingPercentage; + var float KillstreakMultiplier; + structdefaultproperties {} +}; + +var bool m_bActive; +var bool m_bCanAdjustNow; +var bool m_bDisparityDetected; +var bool m_bProlongedDisparityDetected; +var bool m_bHasLoweredDifficultyAtTie; +var bool m_bFreezeAIDifficulty; +var float m_fTimeSinceLastUpdate; +var float m_fLastSkillDisparity; +var int m_iIncreaseTF1Difficulty; +var int m_iIncreaseTF2Difficulty; +var int m_iDisparityDetectionTime; +var int m_iTriggerTime; +var int m_iTaskForce1PlayerCount; +var int m_iTaskForce2PlayerCount; +var float LockoutTime; +var float SkillDisparityTrigger; +var float UpdateRate; +var float m_fLastPayloadPercent; +var float m_fBaseUpperKillRatio; +var float m_fBaseLowerKillRatio; +var float m_fBaseUpperPayloadRate; +var float m_fBaseLowerPayloadRate; +var float NumDeaths_Weight; +var float Damage_Weight; +var float Kills_Weight; +var float SoloKills_Weight; +var float Assists_Weight; +var float ObjectiveTime_Weight; +var float Healing_Weight; +var float Shielding_Weight; +var float Credits_Weight; +var float Accuracy_Weight; +var float Killstreak_Multiplier; +var float numDeathsBase0; +var float numDeathsBase1; +var SkillLevelRawData PlayerSkillData[2]; +var SkillLevelRawData TeamSkillData[2]; +var SkillLevelRawData OldPlayerSkillData[2]; +var SkillLevelRawData OldTeamSkillData[2]; +var SkillLevelPercentageData SkillPercentages[4]; + +native function int GetDamageForPawn(TgPawn TgP); // Export UTgAIDirector::execGetDamageForPawn(FFrame&, void* const) + +native function int GetObjectiveTimeForPawn(TgPawn TgP); // Export UTgAIDirector::execGetObjectiveTimeForPawn(FFrame&, void* const) + +native function int GetShieldingForPawn(TgPawn TgP); // Export UTgAIDirector::execGetShieldingForPawn(FFrame&, void* const) + +native function float GetLeadAccuracyFromConfigSet(int ConfigSetID); // Export UTgAIDirector::execGetLeadAccuracyFromConfigSet(FFrame&, void* const) + +native function float GetMissLikelihoodFromConfigSet(int ConfigSetID); // Export UTgAIDirector::execGetMissLikelihoodFromConfigSet(FFrame&, void* const) + +native function float GetDegreeMissedMagnitudeFromConfigSet(int ConfigSetID); // Export UTgAIDirector::execGetDegreeMissedMagnitudeFromConfigSet(FFrame&, void* const) + +event PostBeginPlay() { } + +event Tick(float DeltaTime) { } + +function SetActive(bool NewActive) { } + +function UpdateDifficulty() { } + +function PullRawData() { } + +function PullDataForPlayer(TgPawn TgP) { } + +function PullDataForBot(TgPawn TgP) { } + +function bool CheckTeamStatsThreshold() { } + +function bool CheckParticipation(int tf) { } + +function CheckDisparity() { } + +function bool AdjustDifficulty() { } + +function UpdateBotDifficultyParameters(TgAIController_BehaviorGod TgAI, TgAIController_Behavior.EBotDifficultyLevel NewDifficulty) { } + +function ReallowAdjustment() { } + +function UpdateDebugInfo() { } + +defaultproperties +{ + m_bActive=true + m_bCanAdjustNow=true + m_iTriggerTime=5 + LockoutTime=15.0000000 + SkillDisparityTrigger=7.0000000 + UpdateRate=10.0000000 + m_fBaseUpperKillRatio=1.7500000 + m_fBaseLowerKillRatio=0.7500000 + m_fBaseUpperPayloadRate=0.0150000 + m_fBaseLowerPayloadRate=0.0050000 + NumDeaths_Weight=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAIInfluenceMap.uc b/Development/Src/TgGame/Classes/TgAIInfluenceMap.uc new file mode 100644 index 0000000..e8507d8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIInfluenceMap.uc @@ -0,0 +1,22 @@ +class TgAIInfluenceMap extends Object within Actor + native(AI) + config(Engine); + +var transient array Influences; +var native transient Pointer FalloffTable; +var native const transient HavokNavMeshGrid InfluenceGrid; +var float TickFrequency; +var transient float InvTickFrequency; +var float Decay; +var float Momentum; + +native function Init(); // Export UTgAIInfluenceMap::execInit(FFrame&, void* const) + +native function RegisterInfluence(const Vector StartPosition, const int PackedInfluence, const optional bool Additive=false, const optional float Radius=0.0000000); // Export UTgAIInfluenceMap::execRegisterInfluence(FFrame&, void* const) + +defaultproperties +{ + TickFrequency=5.0000000 + Decay=0.3000000 + Momentum=0.2500000 +} diff --git a/Development/Src/TgGame/Classes/TgAIInfluenceMapRenderingComponent.uc b/Development/Src/TgGame/Classes/TgAIInfluenceMapRenderingComponent.uc new file mode 100644 index 0000000..0df0998 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIInfluenceMapRenderingComponent.uc @@ -0,0 +1,15 @@ +class TgAIInfluenceMapRenderingComponent extends HavokNavigationRenderingComponent + native(AI) + hidecategories(Object) + config(Engine); + +var transient TgAIInfluenceMap InfluenceMap; +var transient Texture2DDynamic InfluenceMapTexture; + +defaultproperties +{ + ReplacementPrimitive=none + HiddenGame=false + bIgnoreOwnerHidden=true + TranslucencySortPriority=1 +} diff --git a/Development/Src/TgGame/Classes/TgAILocalPositionSolver.uc b/Development/Src/TgGame/Classes/TgAILocalPositionSolver.uc new file mode 100644 index 0000000..c6d20f7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAILocalPositionSolver.uc @@ -0,0 +1,39 @@ +class TgAILocalPositionSolver extends Object within Actor + native(AI) + implements(Interface_ActorPathConstraints) + config(Engine); + +enum ERepulsorWeightMethod { + RWM_Cubic, // 0 + RWM_Lerp, // 1 + RWM_Slerp, // 2 +}; + +struct DefaultRepulsorData { + var byte TargetType; + var float MaxEnemyWeight; + var float MaxFriendlyWeight; + var TgAILocalPositionSolver.ERepulsorWeightMethod SolverType; + structdefaultproperties {} +}; + +var array DefaultWeights; +var transient TgAIController_Behavior OuterController; +var transient float LastQueryTime; +var transient Vector LastQueryPoint; +var transient Vector LastSolvePoint; +var bool bSolveDistanceThreshold; +var bool bSolveWeights; + +native function SolveConstraints(const Vector InitialPosition, const float MaxDistance, out Vector OutDesiredPosition); // Export UTgAILocalPositionSolver::execSolveConstraints(FFrame&, void* const) + +defaultproperties +{ + DefaultWeights[0]=(TargetType=1,MaxEnemyWeight=-20.0000000,MaxFriendlyWeight=10.0000000,SolverType=RWM_Lerp) + DefaultWeights[1]=(TargetType=11,MaxEnemyWeight=-40.0000000,MaxFriendlyWeight=0.0000000,SolverType=RWM_Lerp) + DefaultWeights[2]=(TargetType=6,MaxEnemyWeight=-20.0000000,MaxFriendlyWeight=-30.0000000,SolverType=RWM_Lerp) + DefaultWeights[3]=(TargetType=7,MaxEnemyWeight=-20.0000000,MaxFriendlyWeight=-30.0000000,SolverType=RWM_Lerp) + DefaultWeights[4]=(TargetType=3,MaxEnemyWeight=-30.0000000,MaxFriendlyWeight=-20.0000000,SolverType=RWM_Lerp) + bSolveDistanceThreshold=true + bSolveWeights=true +} diff --git a/Development/Src/TgGame/Classes/TgAILocalPositionSolver_God.uc b/Development/Src/TgGame/Classes/TgAILocalPositionSolver_God.uc new file mode 100644 index 0000000..dfa23a3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAILocalPositionSolver_God.uc @@ -0,0 +1,2 @@ +class TgAILocalPositionSolver_God extends TgAILocalPositionSolver within Actor + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAILocalPositionSolver_Pet.uc b/Development/Src/TgGame/Classes/TgAILocalPositionSolver_Pet.uc new file mode 100644 index 0000000..1e54503 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAILocalPositionSolver_Pet.uc @@ -0,0 +1,7 @@ +class TgAILocalPositionSolver_Pet extends TgAILocalPositionSolver within Actor + config(Engine); + +defaultproperties +{ + bSolveWeights=false +} diff --git a/Development/Src/TgGame/Classes/TgAIObstacleAvoidance.uc b/Development/Src/TgGame/Classes/TgAIObstacleAvoidance.uc new file mode 100644 index 0000000..dd000d9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIObstacleAvoidance.uc @@ -0,0 +1,39 @@ +class TgAIObstacleAvoidance extends Object within Actor + native(AI) + config(Engine); + +enum EObstacleAvoidanceStatus { + OAS_NoPath, // 0 + OAS_Pathing, // 1 + OAS_PathFinished, // 2 +}; + +struct ObstacleQueryCache { + var Vector RealGoalPos; + var Vector ModifiedGoalPos; + var init array IntermediatePoints; + var TgAIObstacleAvoidance.EObstacleAvoidanceStatus PathStatus; + structdefaultproperties {} +}; + +var native transient Pointer ObstacleGrid; +var transient ObstacleQueryCache CachedAvoidance; +var init transient array CachedBlockers; +var init transient array CachedLandscapes; +var transient TgAIController_Behavior OuterController; +var bool bRenderingIsDirty; + +native function bool FindPath(out array ActorsToAvoid, const out Vector TargetPoint, out Vector UpdatedTargetPoint); // Export UTgAIObstacleAvoidance::execFindPath(FFrame&, void* const) + +native function TgAIObstacleAvoidance.EObstacleAvoidanceStatus GetNextMoveLocation(const out Vector TargetPoint, out Vector IntermediatePoint, const out float ArrivalDistance); // Export UTgAIObstacleAvoidance::execGetNextMoveLocation(FFrame&, void* const) + +native function Init(const float GridPointSize, const float GridExtents); // Export UTgAIObstacleAvoidance::execInit(FFrame&, void* const) + +native function Reset(); // Export UTgAIObstacleAvoidance::execReset(FFrame&, void* const) + +native function TestObstacleAvoidance(int TestType); // Export UTgAIObstacleAvoidance::execTestObstacleAvoidance(FFrame&, void* const) + +defaultproperties +{ + bRenderingIsDirty=true +} diff --git a/Development/Src/TgGame/Classes/TgAIObstacleAvoidanceRenderingComponent.uc b/Development/Src/TgGame/Classes/TgAIObstacleAvoidanceRenderingComponent.uc new file mode 100644 index 0000000..4628f5f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIObstacleAvoidanceRenderingComponent.uc @@ -0,0 +1,14 @@ +class TgAIObstacleAvoidanceRenderingComponent extends PrimitiveComponent + native(AI) + config(Engine); + +var transient TgAIObstacleAvoidance ObstacleAvoidance; + +defaultproperties +{ + ReplacementPrimitive=none + bIgnoreOwnerHidden=true + AlwaysLoadOnClient=false + AlwaysLoadOnServer=false + TranslucencySortPriority=1 +} diff --git a/Development/Src/TgGame/Classes/TgAIScout.uc b/Development/Src/TgGame/Classes/TgAIScout.uc new file mode 100644 index 0000000..c0e039d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIScout.uc @@ -0,0 +1,7 @@ +class TgAIScout extends Scout + transient + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAISquad.uc b/Development/Src/TgGame/Classes/TgAISquad.uc new file mode 100644 index 0000000..10f97e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAISquad.uc @@ -0,0 +1,61 @@ +class TgAISquad extends Object + native(AI) + config(Engine); + +var bool s_bOpen; +var bool s_bShouldSpread; +var array s_MemberList; +var TgBotFactory s_Factory; +var Actor s_CurrentTarget; +var array s_TargetList; +var Controller s_LastKiller; +var float s_fNextSpreadTime; + +native function OpenSquad(); // Export UTgAISquad::execOpenSquad(FFrame&, void* const) + +native function CloseSquad(); // Export UTgAISquad::execCloseSquad(FFrame&, void* const) + +native function bool IsOpen(); // Export UTgAISquad::execIsOpen(FFrame&, void* const) + +native function AddMember(TgAIController aic); // Export UTgAISquad::execAddMember(FFrame&, void* const) + +native function RemoveMember(TgAIController aic, bool bDied); // Export UTgAISquad::execRemoveMember(FFrame&, void* const) + +native function MemberKilledBy(Controller Killer); // Export UTgAISquad::execMemberKilledBy(FFrame&, void* const) + +native function bool MergeWith(TgAISquad squad); // Export UTgAISquad::execMergeWith(FFrame&, void* const) + +native function SquadDied(); // Export UTgAISquad::execSquadDied(FFrame&, void* const) + +native function SpreadSquad(); // Export UTgAISquad::execSpreadSquad(FFrame&, void* const) + +native function Box GetSquadBounds(); // Export UTgAISquad::execGetSquadBounds(FFrame&, void* const) + +native function SuggestTarget(Actor NewTarget, TgAIController requester); // Export UTgAISquad::execSuggestTarget(FFrame&, void* const) + +native function SetTarget(Actor NewTarget); // Export UTgAISquad::execSetTarget(FFrame&, void* const) + +native function Actor GetTarget(); // Export UTgAISquad::execGetTarget(FFrame&, void* const) + +native function TgPawn GetTargetPawn(); // Export UTgAISquad::execGetTargetPawn(FFrame&, void* const) + +native function SuggestDropTarget(Actor TargetToDrop, TgAIController requester); // Export UTgAISquad::execSuggestDropTarget(FFrame&, void* const) + +native function DropTarget(Actor TargetToDrop); // Export UTgAISquad::execDropTarget(FFrame&, void* const) + +native function UpdateTargetList(float DeltaTime); // Export UTgAISquad::execUpdateTargetList(FFrame&, void* const) + +native function SuggestEvade(); // Export UTgAISquad::execSuggestEvade(FFrame&, void* const) + +native function Evade(); // Export UTgAISquad::execEvade(FFrame&, void* const) + +native function NotifyTargetChanged(); // Export UTgAISquad::execNotifyTargetChanged(FFrame&, void* const) + +native function NotifyEvade(); // Export UTgAISquad::execNotifyEvade(FFrame&, void* const) + +event OnSquadCreated() { } + +defaultproperties +{ + s_bShouldSpread=true +} diff --git a/Development/Src/TgGame/Classes/TgAISquad_Minion.uc b/Development/Src/TgGame/Classes/TgAISquad_Minion.uc new file mode 100644 index 0000000..c966762 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAISquad_Minion.uc @@ -0,0 +1,10 @@ +class TgAISquad_Minion extends TgAISquad + native(AI) + config(Engine); + +var float s_fNextClusterTime; +var float s_fNextMergeTime; + +native function ClusterSquad(); // Export UTgAISquad_Minion::execClusterSquad(FFrame&, void* const) + +native function CheckForMerge(); // Export UTgAISquad_Minion::execCheckForMerge(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAISquad_Monster.uc b/Development/Src/TgGame/Classes/TgAISquad_Monster.uc new file mode 100644 index 0000000..fd5a277 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAISquad_Monster.uc @@ -0,0 +1,5 @@ +class TgAISquad_Monster extends TgAISquad + native(AI) + config(Engine); + +native function DropTarget(Actor TargetToDrop); // Export UTgAISquad_Monster::execDropTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAISquad_MonsterBehaviorTree.uc b/Development/Src/TgGame/Classes/TgAISquad_MonsterBehaviorTree.uc new file mode 100644 index 0000000..161f1d6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAISquad_MonsterBehaviorTree.uc @@ -0,0 +1,33 @@ +class TgAISquad_MonsterBehaviorTree extends TgAISquad + native(AI) + config(Engine); + +var name BehaviorTreeAsName; +var transient TgAIController_BehaviorMapNpc Controller; + +native function TgAIController_BehaviorMapNpc SpawnController(); // Export UTgAISquad_MonsterBehaviorTree::execSpawnController(FFrame&, void* const) + +native function SuggestTarget(Actor NewTarget, TgAIController requester); // Export UTgAISquad_MonsterBehaviorTree::execSuggestTarget(FFrame&, void* const) + +native function SetTarget(Actor NewTarget); // Export UTgAISquad_MonsterBehaviorTree::execSetTarget(FFrame&, void* const) + +native function SuggestDropTarget(Actor TargetToDrop, TgAIController requester); // Export UTgAISquad_MonsterBehaviorTree::execSuggestDropTarget(FFrame&, void* const) + +native function DropTarget(Actor TargetToDrop); // Export UTgAISquad_MonsterBehaviorTree::execDropTarget(FFrame&, void* const) + +native function UpdateTargetList(float DeltaTime); // Export UTgAISquad_MonsterBehaviorTree::execUpdateTargetList(FFrame&, void* const) + +native function SquadDied(); // Export UTgAISquad_MonsterBehaviorTree::execSquadDied(FFrame&, void* const) + +native function Evade(); // Export UTgAISquad_MonsterBehaviorTree::execEvade(FFrame&, void* const) + +native function Actor GetTarget(); // Export UTgAISquad_MonsterBehaviorTree::execGetTarget(FFrame&, void* const) + +native function TgPawn GetTargetPawn(); // Export UTgAISquad_MonsterBehaviorTree::execGetTargetPawn(FFrame&, void* const) + +event OnSquadCreated() { } + +defaultproperties +{ + BehaviorTreeAsName="BehaviorTrees_MapNpc.AI.BT_BuffCamp_Squad" +} diff --git a/Development/Src/TgGame/Classes/TgAITaskforceBlockingVolume.uc b/Development/Src/TgGame/Classes/TgAITaskforceBlockingVolume.uc new file mode 100644 index 0000000..014c9c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAITaskforceBlockingVolume.uc @@ -0,0 +1,16 @@ +class TgAITaskforceBlockingVolume extends Volume + native + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int BlockTaskforce; +var bool m_bHasRegisteredObstacle; + +native function RegisterObstacle(); // Export UTgAITaskforceBlockingVolume::execRegisterObstacle(FFrame&, void* const) + +native function UnRegisterObstacle(); // Export UTgAITaskforceBlockingVolume::execUnRegisterObstacle(FFrame&, void* const) + +event PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAIUtility.uc b/Development/Src/TgGame/Classes/TgAIUtility.uc new file mode 100644 index 0000000..8c9b1bf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtility.uc @@ -0,0 +1,15 @@ +class TgAIUtility extends TgAIBehaviorNode + abstract + native(AI) + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior, TgPawn); + +enum EGraphType { + Graph_LINEAER, // 0 +}; + +var TgAIController_Behavior.EUtilityType UtilityType; +var () init array IgnoreBehaviorState; +var () init array RejctBehaviorState; +var transient int ParentIndex; diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter.uc new file mode 100644 index 0000000..2ac254a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter extends TgAIUtility + abstract + hidecategories(Object) + config(Engine); + +var () bool bSoftFilter; + +defaultproperties +{ + UtilityType=UTIL_Filter +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_AssaultRangeType.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_AssaultRangeType.uc new file mode 100644 index 0000000..13f8ef5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_AssaultRangeType.uc @@ -0,0 +1,13 @@ +class TgAIUtilityFilter_AssaultRangeType extends TgAIUtilityFilter + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.ERangeType RangeType; + +defaultproperties +{ + RangeType=RangeType_Long + TitleName="AssaultRangeTypeFilter" + NodeToken=268435462 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_CapturePoint.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_CapturePoint.uc new file mode 100644 index 0000000..ab95a70 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_CapturePoint.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter_CapturePoint extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () float DistanceCutoff; + +defaultproperties +{ + TitleName="CapturePointFilter" + NodeToken=268435461 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_DistanceFromPawn.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_DistanceFromPawn.uc new file mode 100644 index 0000000..5b08074 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_DistanceFromPawn.uc @@ -0,0 +1,12 @@ +class TgAIUtilityFilter_DistanceFromPawn extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () float DistanceCutoff; +var () bool bInverse; + +defaultproperties +{ + TitleName="DistanceFromPawnFilter" + NodeToken=268435469 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_DistanceFromTarget.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_DistanceFromTarget.uc new file mode 100644 index 0000000..c1dd0e3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_DistanceFromTarget.uc @@ -0,0 +1,12 @@ +class TgAIUtilityFilter_DistanceFromTarget extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () float DistanceCutoff; +var () bool bInverse; + +defaultproperties +{ + TitleName="DistanceFromTarget" + NodeToken=268435470 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_GameState.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_GameState.uc new file mode 100644 index 0000000..bd3f27d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_GameState.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFilter_GameState extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="GameStateFilter" + NodeToken=268435457 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_InsideActiveRallyPoint.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_InsideActiveRallyPoint.uc new file mode 100644 index 0000000..dc098b6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_InsideActiveRallyPoint.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter_InsideActiveRallyPoint extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () bool bAllowEnemyRally; + +defaultproperties +{ + TitleName="InsideActiveRallyPoint" + NodeToken=268435463 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_LoSToTarget.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_LoSToTarget.uc new file mode 100644 index 0000000..d25727a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_LoSToTarget.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter_LoSToTarget extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () bool bInverse; + +defaultproperties +{ + TitleName="LoSToTargetFilter" + NodeToken=268435467 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_LoSToTargetLastKnownLocation.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_LoSToTargetLastKnownLocation.uc new file mode 100644 index 0000000..00fefd5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_LoSToTargetLastKnownLocation.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter_LoSToTargetLastKnownLocation extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () bool bInverse; + +defaultproperties +{ + TitleName="LoSToTargetLastKnownLocationFilter" + NodeToken=268435471 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_Payload.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_Payload.uc new file mode 100644 index 0000000..d276c2c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_Payload.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter_Payload extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () float DistanceCutoff; + +defaultproperties +{ + TitleName="PayloadFilter" + NodeToken=268435466 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFilter_StayInTargetFOV.uc b/Development/Src/TgGame/Classes/TgAIUtilityFilter_StayInTargetFOV.uc new file mode 100644 index 0000000..919ba3d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFilter_StayInTargetFOV.uc @@ -0,0 +1,11 @@ +class TgAIUtilityFilter_StayInTargetFOV extends TgAIUtilityFilter + hidecategories(Object) + config(Engine); + +var () bool bInverse; + +defaultproperties +{ + TitleName="StayInTargetFOVFilter" + NodeToken=268435468 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction.uc new file mode 100644 index 0000000..007da86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction.uc @@ -0,0 +1,16 @@ +class TgAIUtilityFunction extends TgAIUtility + abstract + hidecategories(Object) + config(Engine); + +var () float MinInput; +var () float MaxInput; +var () TgAIUtility.EGraphType FunctionType; +var () float DesiredValue; +var () float UtilityScale; +var () bool bInvert; + +defaultproperties +{ + UtilityScale=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction_CombatTargetDistance.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction_CombatTargetDistance.uc new file mode 100644 index 0000000..90cd8a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction_CombatTargetDistance.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFunction_CombatTargetDistance extends TgAIUtilityFunction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceToCombatTarget" + NodeToken=268435458 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction_CombatTargetDistanceToNormal.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction_CombatTargetDistanceToNormal.uc new file mode 100644 index 0000000..a6919fd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction_CombatTargetDistanceToNormal.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFunction_CombatTargetDistanceToNormal extends TgAIUtilityFunction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="CombatTargetDistanceToNormal" + NodeToken=268435465 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction_DistanceToPawn.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction_DistanceToPawn.uc new file mode 100644 index 0000000..19104cf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction_DistanceToPawn.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFunction_DistanceToPawn extends TgAIUtilityFunction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="DistanceToPawn" + NodeToken=268435460 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction_FortressDistance.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction_FortressDistance.uc new file mode 100644 index 0000000..7bec116 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction_FortressDistance.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFunction_FortressDistance extends TgAIUtilityFunction + hidecategories(Object,TgAIUtilityFunction) + config(Engine); + +defaultproperties +{ + TitleName="FortressDistance" + NodeToken=268435459 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction_PawnDistanceToNormal.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction_PawnDistanceToNormal.uc new file mode 100644 index 0000000..203a51c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction_PawnDistanceToNormal.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFunction_PawnDistanceToNormal extends TgAIUtilityFunction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="PawnsDistanceToNormal" + NodeToken=268435464 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityFunction_RandomUtility.uc b/Development/Src/TgGame/Classes/TgAIUtilityFunction_RandomUtility.uc new file mode 100644 index 0000000..37119c5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityFunction_RandomUtility.uc @@ -0,0 +1,9 @@ +class TgAIUtilityFunction_RandomUtility extends TgAIUtilityFunction + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TitleName="RandomUtility" + NodeToken=268435456 +} diff --git a/Development/Src/TgGame/Classes/TgAIUtilityHandle.uc b/Development/Src/TgGame/Classes/TgAIUtilityHandle.uc new file mode 100644 index 0000000..43e5eb8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilityHandle.uc @@ -0,0 +1,32 @@ +class TgAIUtilityHandle extends Object within Actor + native(AI) + config(Engine) + dependson(TgAIController_Behavior, TgPawn); + +struct UtilityFunctionList { + var Pointer UtilityFunctionList; + var int UtilityFunctionListCount; + var Pointer StaticMemory; + var transient Pointer CachedUtilities; + var transient Pointer DynamicStorageMemory; + structdefaultproperties {} +}; + +struct UtilityPair { + var native transient map{VOID,VOID} FilteredAnnotationPoints; +}; + +struct UtilitySet { + var UtilityFunctionList Functions; + var UtilityFunctionList Filters; + structdefaultproperties {} +}; + +var UtilitySet UtilitySets[EAIAnnotationType]; +var UtilityPair FilteredAnnotationPoints[EAIAnnotationType]; +var TgPawn.EBotBehaviorState eBehaviorState; +var TgAIController_Behavior.ERangeType AssaultRangeType; + +native function TgAIAnnotation GetBestAnnotationPoint(TgAIController_Behavior.EAIAnnotationType AnnotationType); // Export UTgAIUtilityHandle::execGetBestAnnotationPoint(FFrame&, void* const) + +native function ComputeUtilities(); // Export UTgAIUtilityHandle::execComputeUtilities(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAIUtilitySet.uc b/Development/Src/TgGame/Classes/TgAIUtilitySet.uc new file mode 100644 index 0000000..6ee95dc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIUtilitySet.uc @@ -0,0 +1,15 @@ +class TgAIUtilitySet extends TgAIBehaviorNode + native(AI) + hidecategories(Object) + config(Engine) + dependson(TgAIController_Behavior); + +var () TgAIController_Behavior.EAIAnnotationType AnnotationType; +var init editfixedsize editinline array Functions; +var init editfixedsize editinline array Filters; + +defaultproperties +{ + InvTickFrequency=1.0000000 + TitleName="UtilitySet" +} diff --git a/Development/Src/TgGame/Classes/TgAIVolume.uc b/Development/Src/TgGame/Classes/TgAIVolume.uc new file mode 100644 index 0000000..1caa67d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAIVolume.uc @@ -0,0 +1,17 @@ +class TgAIVolume extends Volume + native + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int LaneIndex; +var () int TaskforceIndex; +var () bool bEnabled; + +native function Vector GetRandomPointInAIVolume(optional float CollisionRadius=0.0000000); // Export UTgAIVolume::execGetRandomPointInAIVolume(FFrame&, void* const) + +simulated function OnToggle(SeqAct_Toggle Action) { } + +event PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAchievement.uc b/Development/Src/TgGame/Classes/TgAchievement.uc new file mode 100644 index 0000000..707094b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement.uc @@ -0,0 +1,32 @@ +class TgAchievement extends Object + native(Achievement) + config(Engine); + +const TGACHIEVEMENT_JUMP_JUMP_ACTIVITY_ID = 1933; + +var TgPlayerController Controller; +var const bool m_bCustomValue3IsBotId; +var bool m_bAwardsAllowTriggering; +var int m_nBotId; +var int m_nActivityId; +var int m_nCustomValue1; +var int m_nCustomValue2; +var int m_nCustomValue3; +var int m_nCustomValue4; +var int m_nCustomValue5; +var int m_nCurrentProgress; +var int m_nCurrentTarget; + +native function float GetCustomValue1(); // Export UTgAchievement::execGetCustomValue1(FFrame&, void* const) + +native function float GetCustomValue2(); // Export UTgAchievement::execGetCustomValue2(FFrame&, void* const) + +native function float GetCustomValue3(); // Export UTgAchievement::execGetCustomValue3(FFrame&, void* const) + +native function float GetCustomValue4(); // Export UTgAchievement::execGetCustomValue4(FFrame&, void* const) + +native function float GetCustomValue5(); // Export UTgAchievement::execGetCustomValue5(FFrame&, void* const) + +native function bool BelongsToBot(int BotId); // Export UTgAchievement::execBelongsToBot(FFrame&, void* const) + +native function StopTracking(); // Export UTgAchievement::execStopTracking(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAchievement_ChampionKill.uc b/Development/Src/TgGame/Classes/TgAchievement_ChampionKill.uc new file mode 100644 index 0000000..de86d1b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_ChampionKill.uc @@ -0,0 +1,3 @@ +class TgAchievement_ChampionKill extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_CounterAirDefense.uc b/Development/Src/TgGame/Classes/TgAchievement_CounterAirDefense.uc new file mode 100644 index 0000000..8903006 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_CounterAirDefense.uc @@ -0,0 +1,3 @@ +class TgAchievement_CounterAirDefense extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_Damage.uc b/Development/Src/TgGame/Classes/TgAchievement_Damage.uc new file mode 100644 index 0000000..084e30f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_Damage.uc @@ -0,0 +1,5 @@ +class TgAchievement_Damage extends TgAchievement + native(Achievement) + config(Engine); + +var float m_fDamageDealt; diff --git a/Development/Src/TgGame/Classes/TgAchievement_DoubleKill.uc b/Development/Src/TgGame/Classes/TgAchievement_DoubleKill.uc new file mode 100644 index 0000000..40d7097 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_DoubleKill.uc @@ -0,0 +1,3 @@ +class TgAchievement_DoubleKill extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_EnvironmentalDeath.uc b/Development/Src/TgGame/Classes/TgAchievement_EnvironmentalDeath.uc new file mode 100644 index 0000000..1971513 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_EnvironmentalDeath.uc @@ -0,0 +1,3 @@ +class TgAchievement_EnvironmentalDeath extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_FromTheGrave.uc b/Development/Src/TgGame/Classes/TgAchievement_FromTheGrave.uc new file mode 100644 index 0000000..0a1aec0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_FromTheGrave.uc @@ -0,0 +1,10 @@ +class TgAchievement_FromTheGrave extends TgAchievement + native(Achievement) + config(Engine); + +var int KillerPawnId; + +defaultproperties +{ + KillerPawnId=-1 +} diff --git a/Development/Src/TgGame/Classes/TgAchievement_HardCarry.uc b/Development/Src/TgGame/Classes/TgAchievement_HardCarry.uc new file mode 100644 index 0000000..9c0ce7e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_HardCarry.uc @@ -0,0 +1,5 @@ +class TgAchievement_HardCarry extends TgAchievement + native(Achievement) + config(Engine); + +var int nKills; diff --git a/Development/Src/TgGame/Classes/TgAchievement_Headshot.uc b/Development/Src/TgGame/Classes/TgAchievement_Headshot.uc new file mode 100644 index 0000000..1d911bb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_Headshot.uc @@ -0,0 +1,5 @@ +class TgAchievement_Headshot extends TgAchievement + native(Achievement) + config(Engine); + +var int m_nHeadshotsWithoutMissing; diff --git a/Development/Src/TgGame/Classes/TgAchievement_KillAfterRoundEnd.uc b/Development/Src/TgGame/Classes/TgAchievement_KillAfterRoundEnd.uc new file mode 100644 index 0000000..61747f8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_KillAfterRoundEnd.uc @@ -0,0 +1,3 @@ +class TgAchievement_KillAfterRoundEnd extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_KillEndStreak.uc b/Development/Src/TgGame/Classes/TgAchievement_KillEndStreak.uc new file mode 100644 index 0000000..a254fdf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_KillEndStreak.uc @@ -0,0 +1,3 @@ +class TgAchievement_KillEndStreak extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_KillFromLowHealth.uc b/Development/Src/TgGame/Classes/TgAchievement_KillFromLowHealth.uc new file mode 100644 index 0000000..f15faec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_KillFromLowHealth.uc @@ -0,0 +1,3 @@ +class TgAchievement_KillFromLowHealth extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_LastOneStanding.uc b/Development/Src/TgGame/Classes/TgAchievement_LastOneStanding.uc new file mode 100644 index 0000000..80680be --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_LastOneStanding.uc @@ -0,0 +1,3 @@ +class TgAchievement_LastOneStanding extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_QuestionsLater.uc b/Development/Src/TgGame/Classes/TgAchievement_QuestionsLater.uc new file mode 100644 index 0000000..fa5c5d7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_QuestionsLater.uc @@ -0,0 +1,7 @@ +class TgAchievement_QuestionsLater extends TgAchievement + native(Achievement) + config(Engine); + +var bool bTakenDamageYet; +var bool bHasHitAllEnemies; +var array EnemyPawnsHit; diff --git a/Development/Src/TgGame/Classes/TgAchievement_Sniper.uc b/Development/Src/TgGame/Classes/TgAchievement_Sniper.uc new file mode 100644 index 0000000..3eb63bc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_Sniper.uc @@ -0,0 +1,3 @@ +class TgAchievement_Sniper extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAchievement_Survivor.uc b/Development/Src/TgGame/Classes/TgAchievement_Survivor.uc new file mode 100644 index 0000000..c2381cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAchievement_Survivor.uc @@ -0,0 +1,3 @@ +class TgAchievement_Survivor extends TgAchievement + native(Achievement) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgActionPoint.uc b/Development/Src/TgGame/Classes/TgActionPoint.uc new file mode 100644 index 0000000..5631293 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgActionPoint.uc @@ -0,0 +1,30 @@ +class TgActionPoint extends TgNavigationPoint + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +enum eActionPointType { + ACTION_NONE, // 0 + ACTION_RELAX_OPEN, // 1 + ACTION_MINE_DEFAULT, // 2 + ACTION_RELAX_WALL, // 3 + ACTION_CONSOLE_STANDARD, // 4 + ACTION_CONSOLE_LAB_DEFAULT, // 5 + ACTION_GUARD_WATCH_NORMAL, // 6 + ACTION_GUARD_WATCH_ELEVATED, // 7 + ACTION_FACTORY_LINE_DEFAULT, // 8 + ACTION_SNIPE, // 9 + ACTION_PLACE_TURRET, // 10 + ACTION_PLACE_SHIELD, // 11 + ACTION_PLACE_CRATE, // 12 + ACTION_PLACE_MINE, // 13 + ACTION_PLACE_SENSOR, // 14 +}; + +var (ActionPoint) TgActionPoint.eActionPointType ActionType; +var (ActionPoint) byte nObjectiveNum; +var (ActionPoint) byte nTaskForce; +var (ActionPoint) bool bUseRotation; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgActorFactory.uc b/Development/Src/TgGame/Classes/TgActorFactory.uc old mode 100755 new mode 100644 index 89cc78a..e1f7674 --- a/Development/Src/TgGame/Classes/TgActorFactory.uc +++ b/Development/Src/TgGame/Classes/TgActorFactory.uc @@ -1,5 +1,45 @@ -class TgActorFactory extends Actor - abstract - native(Factory) - notplaceable - hidecategories(Navigation,Advanced,Attachment,Collision,Display); \ No newline at end of file +class TgActorFactory extends Actor + abstract + native(Factory) + notplaceable + hidecategories(Navigation,Advanced,Attachment,Collision,Display) + config(Engine) + dependson(TgObject); + +enum eSelectionMethod { + TGSM_RANDOM, // 0 + TGSM_SEQUENTIAL, // 1 +}; + +var (Object) editconst int m_nMapObjectId; +var () bool s_bAutoSpawn; +var editconst int s_nTeamNumber; +var () byte s_nTaskForce; +var () TgObject.MinimapFactoryType m_MinimapType; +var () TgActorFactory.eSelectionMethod s_eSelectionMethod; +var int s_nSelectionListId; +var int s_nSelectedObjectId; +var int m_nSelectionListPropId; +var int s_nNameId; +var transient int s_nFactoryId; +var transient TgRepInfo_Factory m_FRI; +var Class m_FRIClass; +var int s_nCurListIndex; +var () export editinline SpriteComponent m_WorldIconSprite; + +native function LoadObjectConfig(); // Export UTgActorFactory::execLoadObjectConfig(FFrame&, void* const) + +native function SpawnObject(); // Export UTgActorFactory::execSpawnObject(FFrame&, void* const) + +native function CalcFactoryPlacement(Vector Extent, bool bCenterOnGround, out Vector OutLocation, out Rotator OutRotation); // Export UTgActorFactory::execCalcFactoryPlacement(FFrame&, void* const) + +native function SetTaskForceNumber(int nNewTaskForce); // Export UTgActorFactory::execSetTaskForceNumber(FFrame&, void* const) + +simulated function PreBeginPlay() { } + +simulated function PostBeginPlay() { } + +simulated function Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgActorFactoryTgEmitter_TeamColor.uc b/Development/Src/TgGame/Classes/TgActorFactoryTgEmitter_TeamColor.uc new file mode 100644 index 0000000..761c354 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgActorFactoryTgEmitter_TeamColor.uc @@ -0,0 +1,12 @@ +class TgActorFactoryTgEmitter_TeamColor extends ActorFactoryEmitter + config(Editor) + editinlinenew + collapsecategories + hidecategories(Object,Object); + +defaultproperties +{ + GameplayActorClass=Class'TgEmitterSpawnable_TeamColor' + MenuName="Add Emitter (Team Colored)" + NewActorClass=Class'TgEmitter_TeamColor' +} diff --git a/Development/Src/TgGame/Classes/TgActorFactory_TgStaticMeshActorCapturePoint.uc b/Development/Src/TgGame/Classes/TgActorFactory_TgStaticMeshActorCapturePoint.uc new file mode 100644 index 0000000..9595944 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgActorFactory_TgStaticMeshActorCapturePoint.uc @@ -0,0 +1,12 @@ +class TgActorFactory_TgStaticMeshActorCapturePoint extends ActorFactoryStaticMesh + config(Editor) + editinlinenew + collapsecategories + hidecategories(Object); + +defaultproperties +{ + MenuName="Add Capture Point Mesh" + MenuPriority=20 + NewActorClass=Class'TgStaticMeshActor_CapturePoint' +} diff --git a/Development/Src/TgGame/Classes/TgActorFactory_TgStaticMeshActorTeamColor.uc b/Development/Src/TgGame/Classes/TgActorFactory_TgStaticMeshActorTeamColor.uc new file mode 100644 index 0000000..ab753e9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgActorFactory_TgStaticMeshActorTeamColor.uc @@ -0,0 +1,12 @@ +class TgActorFactory_TgStaticMeshActorTeamColor extends ActorFactoryStaticMesh + config(Editor) + editinlinenew + collapsecategories + hidecategories(Object); + +defaultproperties +{ + MenuName="Add StaticMesh (Team Colored)" + MenuPriority=20 + NewActorClass=Class'TgStaticMeshActor_TeamColor' +} diff --git a/Development/Src/TgGame/Classes/TgAimAccelerationCurves.uc b/Development/Src/TgGame/Classes/TgAimAccelerationCurves.uc new file mode 100644 index 0000000..9f12c6c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAimAccelerationCurves.uc @@ -0,0 +1,17 @@ +class TgAimAccelerationCurves extends Object + native + editinlinenew + hidecategories(Object) + autoexpandcategories(TgAimAccelerationCurves) + config(Engine); + +var () name SettingsName; +var () float MaxAccelMultiplierX; +var () float MaxAccelMultiplierY; +var () RawDistributionFloat AimSpeedX; +var () RawDistributionFloat AimAccelX; +var () RawDistributionFloat AimSpeedY; +var () RawDistributionFloat AimAccelY; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAimAssistKeyframe.uc b/Development/Src/TgGame/Classes/TgAimAssistKeyframe.uc new file mode 100644 index 0000000..e4dd3e2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAimAssistKeyframe.uc @@ -0,0 +1,19 @@ +class TgAimAssistKeyframe extends Object + native + editinlinenew + hidecategories(Object) + autoexpandcategories(TgAimAssistKeyframe) + config(Engine); + +struct AimAssistKeyframeData { + var name KeyframeName; + var float Distance; + structdefaultproperties {} +}; + +var () name KeyframeName; +var () RawDistributionFloat AimAssistCurve; +var () bool bMirrored; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAkActor.uc b/Development/Src/TgGame/Classes/TgAkActor.uc new file mode 100644 index 0000000..6e3dee6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAkActor.uc @@ -0,0 +1,17 @@ +class TgAkActor extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool m_bCanCheckOcclusion; + +native function float CheckOcclusion(); // Export UTgAkActor::execCheckOcclusion(FFrame&, void* const) + +defaultproperties +{ + m_bCanCheckOcclusion=true + m_bComplexOccluder=true + LifeSpan=2.0000000 + m_fMaxDistForOcclusionPathfinding=1000.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAkActorUnoccluded.uc b/Development/Src/TgGame/Classes/TgAkActorUnoccluded.uc new file mode 100644 index 0000000..b15613d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAkActorUnoccluded.uc @@ -0,0 +1,12 @@ +class TgAkActorUnoccluded extends TgAkActor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bCanCheckOcclusion=false + bIgnoreBaseRotation=true + LifeSpan=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAkAudioManagement.uc b/Development/Src/TgGame/Classes/TgAkAudioManagement.uc new file mode 100644 index 0000000..c4bb552 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAkAudioManagement.uc @@ -0,0 +1,21 @@ +class TgAkAudioManagement extends Object + native(InteractiveAudio) + config(Engine); + +const MAX_METERING_CALLBACK_SLOTS = 16; + +struct AkMeterCallbackState { + var dword dwBusID; + var bool bActive; + var float fLevel; + var float fTimestamp; + structdefaultproperties {} +}; + +var AkMeterCallbackState m_MeterCallbackSlots[16]; +var array dwAllBusses; +var bool m_bInitialized; + +native function Initialize(); // Export UTgAkAudioManagement::execInitialize(FFrame&, void* const) + +native function dword GetBusUID(string sBusName); // Export UTgAkAudioManagement::execGetBusUID(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimBlendBy1P3P.uc b/Development/Src/TgGame/Classes/TgAnimBlendBy1P3P.uc new file mode 100644 index 0000000..9a96f53 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendBy1P3P.uc @@ -0,0 +1,16 @@ +class TgAnimBlendBy1P3P extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendPerspectiveTypes { + BLEND1P3P_1P, // 0 + BLEND1P3P_3P, // 1 +}; + +var TgPawn m_TgPawn; + +defaultproperties +{ + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByAmmo.uc b/Development/Src/TgGame/Classes/TgAnimBlendByAmmo.uc new file mode 100644 index 0000000..8b2faef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByAmmo.uc @@ -0,0 +1,38 @@ +class TgAnimBlendByAmmo extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +struct AmmoBlendParams { + var () int MinAmmo; + var () int MaxAmmo; + var () int ChildNum; + structdefaultproperties {} +}; + +var () int m_nDefaultChild; +var () TgObject.TG_EQUIP_POINT m_EquipPoint; +var () bool m_bDelayUpdateUntilReplay; +var () bool m_bCheckAmmoPerTick; +var () array m_ChildAmmoParams; +var int m_nPendingChildIndex; +var int m_nAmmoUpdateTickTag; + +native function PlayAnim(optional bool bLoop=false, optional float Rate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimBlendByAmmo::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimBlendByAmmo::execReplayAnim(FFrame&, void* const) + +simulated function SetAmmoAmt(int nAmmo) { } + +simulated function SetAmmoChild(int targetAmmoChild) { } + +defaultproperties +{ + m_EquipPoint=EQP_AUTO + m_bDelayUpdateUntilReplay=true + m_ChildAmmoParams[0]=(MinAmmo=2,MaxAmmo=10000,ChildNum=0) + m_ChildAmmoParams[1]=(MinAmmo=1,MaxAmmo=1,ChildNum=1) + DefaultBlendTime=0.1000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByBuffMonsterIntro.uc b/Development/Src/TgGame/Classes/TgAnimBlendByBuffMonsterIntro.uc new file mode 100644 index 0000000..9ed85d2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByBuffMonsterIntro.uc @@ -0,0 +1,21 @@ +class TgAnimBlendByBuffMonsterIntro extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var (Introduction) bool m_bScalePlayRateOfSpawnAndIntro; +var (Introduction) bool m_bEndIntroStateEarly; +var bool m_bIntroHasBeenSetup; +var (Introduction) float m_fIntroTimeHittableAt; +var float m_fTimeToStartIntroAnim; +var TgPawn m_CachedPawn; +var float m_fSpawnIntroScaleRate; + +native function SetupIntro(float fTotalIntroTime, float fIntroOffset); // Export UTgAnimBlendByBuffMonsterIntro::execSetupIntro(FFrame&, void* const) + +defaultproperties +{ + m_fSpawnIntroScaleRate=1.0000000 + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByDirection.uc b/Development/Src/TgGame/Classes/TgAnimBlendByDirection.uc new file mode 100644 index 0000000..9c42ffe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByDirection.uc @@ -0,0 +1,43 @@ +class TgAnimBlendByDirection extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendDirTypes { + FBDir_Forward, // 0 + FBDir_Back, // 1 + FBDir_Left, // 2 + FBDir_Right, // 3 + FBDir_ForwardRight, // 4 + FBDir_ForwardLeft, // 5 + FBDir_BackRight, // 6 + FBDir_BackLeft, // 7 + FBDir_Standing, // 8 + FBDir_None, // 9 +}; + +enum EBlendByDirectionSpeedType { + EBBDST_Velocity, // 0 + EBBDST_Accel, // 1 +}; + +var TgPawn m_TgPawn; +var (Animations) TgAnimBlendByDirection.EBlendByDirectionSpeedType m_SpeedType; +var const TgAnimBlendByDirection.EBlendDirTypes LastDirection; +var (Animations) bool bAdjustRateByVelocity; +var () bool bNoDirectionIsEnabled; +var () bool bResetLooping; +var () bool m_bDelayBlendOutToPlayAnim; +var bool m_bIsAllowedToBlendOut; +var () bool m_bMirrorDirectionsWhenPawnMirrored; +var () bool m_bStopChildrenOnCeaseRelevant; + +defaultproperties +{ + LastDirection=FBDir_None + bNoDirectionIsEnabled=true + bResetLooping=true + m_bIsAllowedToBlendOut=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByEmote.uc b/Development/Src/TgGame/Classes/TgAnimBlendByEmote.uc new file mode 100644 index 0000000..9205332 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByEmote.uc @@ -0,0 +1,28 @@ +class TgAnimBlendByEmote extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgPawn); + +var name nmEmotePrefix; +var name mnEmoteMovingSuffix; +var name nmEmoteFullMovingSuffix; +var () bool bForceTreatAsMovingEmoteNode; +var array EmoteSequenceChildren; +var array PerBoneChildren; +var array FullMovingBlendLists; + +native function float PlayEmote(TgPawn.EEmote Emote); // Export UTgAnimBlendByEmote::execPlayEmote(FFrame&, void* const) + +native function CancelEmote(optional bool bNoBlend); // Export UTgAnimBlendByEmote::execCancelEmote(FFrame&, void* const) + +native function bool IsFullBody(); // Export UTgAnimBlendByEmote::execIsFullBody(FFrame&, void* const) + +defaultproperties +{ + nmEmotePrefix="EMOTE_" + mnEmoteMovingSuffix="_Moving" + nmEmoteFullMovingSuffix="_FullMoving" + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByFall.uc b/Development/Src/TgGame/Classes/TgAnimBlendByFall.uc new file mode 100644 index 0000000..3ee075d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByFall.uc @@ -0,0 +1,48 @@ +class TgAnimBlendByFall extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object,TgAnimNodeBlendList) + config(Engine); + +enum EBlendFallTypes { + FBT_Up, // 0 + FBT_UpLoop, // 1 + FBT_Down, // 2 + FBT_PreLand, // 3 + FBT_Land, // 4 + FBT_AirJump, // 5 + FBT_None, // 6 +}; + +enum EFallSource { + FALLSOURCE_FullJump, // 0 + FALLSOURCE_ShortJump, // 1 + FALLSOURCE_AnyJump, // 2 + FALLSOURCE_Falling, // 3 + FALLSOURCE_All, // 4 +}; + +var () TgAnimBlendByFall.EFallSource m_FallSource; +var const TgAnimBlendByFall.EBlendFallTypes FallState; +var Actor.EPhysics m_PreviousTickPhysics; +var const float LastFallingVelocity; +var TgPawn pOwner; +var () float m_fPrelandDistance; +var (Debug) bool m_bDebugMeasureJumpUp; +var (Debug) bool m_bDebugMeasureJumpDownToLand; +var bool m_bMeasuring; +var () bool m_bJumpOnly; +var Vector m_StartMeasureJump; +var float m_fMeasureTime; +var (Landing) float m_fLandingMovementPlayRate; +var (Landing) name m_nmNameLandingSynchGroup; + +defaultproperties +{ + m_FallSource=FALLSOURCE_All + FallState=FBT_None + m_fLandingMovementPlayRate=2.0000000 + m_nmNameLandingSynchGroup="LandingSynch" + PlayActiveChildExceptionList=/* Array type was not detected. */ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByFire.uc b/Development/Src/TgGame/Classes/TgAnimBlendByFire.uc new file mode 100644 index 0000000..79b5c6b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByFire.uc @@ -0,0 +1,44 @@ +class TgAnimBlendByFire extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct DeviceParameters { + var string SlotName; + var () bool bShouldInterruptIfStopped; + var () bool bShouldInterruptIfInterrupted; + var () bool bShouldInterruptIfJumping; + structdefaultproperties {} +}; + +var (Device) bool m_bSetToIdleOnCeaseRelevant; +var (Device) bool m_bShouldReplayIfAlreadyActive; +var (Device) DeviceParameters m_InHandDeviceParameters; +var (Device) DeviceParameters m_OffHand1DeviceParameters; +var (Device) DeviceParameters m_OffHand2DeviceParameters; +var (Device) DeviceParameters m_OffHand3DeviceParameters; +var (Device) DeviceParameters m_OffHand4DeviceParameters; +var (Device) DeviceParameters m_RecallDeviceParameters; +var TgPawn m_OwningPawn; + +native function OnDeviceFormBuildup(TgDeviceForm DeviceForm, float BuildupTime); // Export UTgAnimBlendByFire::execOnDeviceFormBuildup(FFrame&, void* const) + +native function OnDeviceFormStartFire(TgDeviceForm DeviceForm, float FireDuration); // Export UTgAnimBlendByFire::execOnDeviceFormStartFire(FFrame&, void* const) + +native function OnDeviceFormStopFire(TgDeviceForm DeviceForm); // Export UTgAnimBlendByFire::execOnDeviceFormStopFire(FFrame&, void* const) + +native function OnDeviceFormInterruptFire(TgDeviceForm DeviceForm); // Export UTgAnimBlendByFire::execOnDeviceFormInterruptFire(FFrame&, void* const) + +defaultproperties +{ + m_bShouldReplayIfAlreadyActive=true + m_InHandDeviceParameters=(SlotName="In-hand",bShouldInterruptIfStopped=false,bShouldInterruptIfInterrupted=true,bShouldInterruptIfJumping=true) + m_OffHand1DeviceParameters=(SlotName="Offhand 1",bShouldInterruptIfStopped=false,bShouldInterruptIfInterrupted=true,bShouldInterruptIfJumping=true) + m_OffHand2DeviceParameters=(SlotName="Offhand 2",bShouldInterruptIfStopped=false,bShouldInterruptIfInterrupted=true,bShouldInterruptIfJumping=true) + m_OffHand3DeviceParameters=(SlotName="Offhand 3",bShouldInterruptIfStopped=false,bShouldInterruptIfInterrupted=true,bShouldInterruptIfJumping=true) + m_OffHand4DeviceParameters=(SlotName="Offhand 4",bShouldInterruptIfStopped=false,bShouldInterruptIfInterrupted=true,bShouldInterruptIfJumping=true) + m_RecallDeviceParameters=(SlotName="Recall",bShouldInterruptIfStopped=false,bShouldInterruptIfInterrupted=true,bShouldInterruptIfJumping=true) + DefaultBlendTime=0.2000000 + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByFireMode.uc b/Development/Src/TgGame/Classes/TgAnimBlendByFireMode.uc new file mode 100644 index 0000000..37456a8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByFireMode.uc @@ -0,0 +1,18 @@ +class TgAnimBlendByFireMode extends TgAnimNodeBlendList + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +var () int m_nDefaultFireMode; +var () TgObject.TG_EQUIP_POINT m_EquipPoint; + +simulated function SelectFireMode(int FireMode) { } + +simulated function SetDefaultFiremode() { } + +defaultproperties +{ + m_nDefaultFireMode=1 + DefaultBlendTime=0.1000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByFlying.uc b/Development/Src/TgGame/Classes/TgAnimBlendByFlying.uc new file mode 100644 index 0000000..91d1ee3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByFlying.uc @@ -0,0 +1,34 @@ +class TgAnimBlendByFlying extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EFlyDirTypes { + FDir_Forward, // 0 + FDir_Back, // 1 + FDir_Left, // 2 + FDir_Right, // 3 + FDir_Up, // 4 + FDir_Down, // 5 + FDir_UpMidair, // 6 + FDir_None, // 7 +}; + +var (Animations) bool bAdjustRateByVelocity; +var (Animations) bool m_bAdjustRateByAcceleration; +var (Animations) editoronly transient bool m_bPreviewJetpackPerBoneBlend; +var bool m_bIsUsingHandsFreeJetpack; +var (Animations) float m_fUpLoopStartTime; +var const TgAnimBlendByFlying.EFlyDirTypes LastDirection; +var (Animations) name m_nmHandsFreeJetpackPerBoneBlendNodeName; +var AnimNodeBlendPerBone m_HandsFreeJetpackPerBoneBlendNode; +var (Animations) float m_fHandsFreeJetpackBlendBias; +var (Animations) name m_nmHandsFreeJetpackBiasBlendNodeName; +var AnimNodeBlend m_HandsFreeJetpackBiasBlendNode; +var TgPawn m_TgPawn; + +defaultproperties +{ + LastDirection=FDir_None + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByHeadSkin.uc b/Development/Src/TgGame/Classes/TgAnimBlendByHeadSkin.uc new file mode 100644 index 0000000..3970e16 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByHeadSkin.uc @@ -0,0 +1,12 @@ +class TgAnimBlendByHeadSkin extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct HeadSkinChildInfo { + var () int nHeadSkinId; + var () int nChildIndex; + structdefaultproperties {} +}; + +var () array m_SkinMap; diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByMountSkin.uc b/Development/Src/TgGame/Classes/TgAnimBlendByMountSkin.uc new file mode 100644 index 0000000..32bf852 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByMountSkin.uc @@ -0,0 +1,12 @@ +class TgAnimBlendByMountSkin extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct MountSkinChildInfo { + var () int nMountSkinId; + var () int nChildIndex; + structdefaultproperties {} +}; + +var () array m_SkinMap; diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByNodeName.uc b/Development/Src/TgGame/Classes/TgAnimBlendByNodeName.uc new file mode 100644 index 0000000..3cf2ab0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByNodeName.uc @@ -0,0 +1,27 @@ +class TgAnimBlendByNodeName extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct RelevantNodeNameNodes { + var AnimNode CachedNode; + var int ChildIndex; + structdefaultproperties {} +}; + +struct NodeNameToChildIndex { + var () name NodeName; + var () int ChildIndex; + structdefaultproperties {} +}; + +var () array m_NodeNameToChildIndex; +var transient array m_CachedNodes; +var transient AnimNode m_LastSuccessfulAnimNode; +var transient bool m_bHasCachedNodes; + +defaultproperties +{ + DefaultBlendTime=0.1500000 + bPlayActiveChild=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter.uc new file mode 100644 index 0000000..07f66da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter.uc @@ -0,0 +1,119 @@ +class TgAnimBlendByPaladinsCharacter extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +enum EPalCharParams { + PCP_FireInhand, // 0 + PCP_FireAlt, // 1 + PCP_FireAbility, // 2 + PCP_FireMovement, // 3 + PCP_FireUlt, // 4 + PCP_Reload, // 5 + PCP_Retrieve, // 6 + PCP_Emote, // 7 + PCP_FireSupportingDevice, // 8 + PCP_PutAway, // 9 + PCP_CharacterSpecific1, // 10 + PCP_CharacterSpecific2, // 11 + PCP_CharacterSpecific3, // 12 + PCP_CharacterSpecific4, // 13 + PCP_CharacterSpecific5, // 14 + PCP_Intro, // 15 + PCP_Outro, // 16 +}; + +struct ChildAnimParameters { + var () const editconst string SlotName; + var () const editconst TgObject.TG_EQUIP_POINT EquipSlot; + var () const editconst int ChildIndex; + var () bool bBlendInOnTargeting; + var () bool bBlendInOnBuildup; + var () bool bBlendInOnStartFire; + var () bool bBlendInOnFire; + var () bool bBlendOutIfStopped; + var () bool bBlendOutOnAnimEnd; + var () bool bBlendOutOnChildNotification; + var () bool bEndCurrentAnimIfNoChild; + var () bool bAddToStackIfOtherAnimInterrupted; + var () bool bAddToStackOnCeaseRelevant; + var () bool bIgnoreSwapLogicIfNotRelevant; + var () bool bReplayIfActivatedFromStack; + var () bool bReplayIfActive; + var () bool bAutoScaleByDuration; + var () float fAutoScaledPlayRateMultiplier; + var () bool bInterruptOtherAnims; + var () array nInterruptExceptionsByChildIndex; + var () int nCustomRetrieveIndex; + structdefaultproperties {} +}; + +var TgWeaponMeshActor m_WeaponMeshActor; +var (PaladinChar) TgObject.TG_EQUIP_POINT m_SubNodeEquipSlot; +var (PaladinChar) ChildAnimParameters m_ChildParams[EPalCharParams]; +var array m_nChildAnimStack; +var int m_nCustomRetrieveIndex; +var (PaladinChar) bool m_bBlendToIdleOnInterruptInspect; + +native function OnDeviceTargeting(TgObject.TG_EQUIP_POINT eqp); // Export UTgAnimBlendByPaladinsCharacter::execOnDeviceTargeting(FFrame&, void* const) + +native function OnDeviceBuildup(TgObject.TG_EQUIP_POINT eqp); // Export UTgAnimBlendByPaladinsCharacter::execOnDeviceBuildup(FFrame&, void* const) + +native function OnDeviceStartFire(TgObject.TG_EQUIP_POINT eqp, float fRefireRate); // Export UTgAnimBlendByPaladinsCharacter::execOnDeviceStartFire(FFrame&, void* const) + +native function OnDeviceFire(TgObject.TG_EQUIP_POINT eqp, float fRefireRate); // Export UTgAnimBlendByPaladinsCharacter::execOnDeviceFire(FFrame&, void* const) + +native function OnDeviceStopFire(TgObject.TG_EQUIP_POINT eqp); // Export UTgAnimBlendByPaladinsCharacter::execOnDeviceStopFire(FFrame&, void* const) + +native function OnReload(float fReloadTime); // Export UTgAnimBlendByPaladinsCharacter::execOnReload(FFrame&, void* const) + +native function OnFlourish(); // Export UTgAnimBlendByPaladinsCharacter::execOnFlourish(FFrame&, void* const) + +native function OnRetrieve(); // Export UTgAnimBlendByPaladinsCharacter::execOnRetrieve(FFrame&, void* const) + +native function OnPutAway(byte EquipPoint, int DeviceID, Class WeaponClass); // Export UTgAnimBlendByPaladinsCharacter::execOnPutAway(FFrame&, void* const) + +native function InterruptReload(); // Export UTgAnimBlendByPaladinsCharacter::execInterruptReload(FFrame&, void* const) + +native function ForceInterruptFlourish(); // Export UTgAnimBlendByPaladinsCharacter::execForceInterruptFlourish(FFrame&, void* const) + +native function PlayTopOfStackAnim(); // Export UTgAnimBlendByPaladinsCharacter::execPlayTopOfStackAnim(FFrame&, void* const) + +native function UpdateAnimViaStackRemoval(TgAnimBlendByPaladinsCharacter.EPalCharParams toRemove); // Export UTgAnimBlendByPaladinsCharacter::execUpdateAnimViaStackRemoval(FFrame&, void* const) + +native function TgAnimBlendByPaladinsCharacter.EPalCharParams GetParamIndexFromEqpSlot(TgObject.TG_EQUIP_POINT eqp); // Export UTgAnimBlendByPaladinsCharacter::execGetParamIndexFromEqpSlot(FFrame&, void* const) + +native function TgAnimBlendByPaladinsCharacter.EPalCharParams GetParamIndexFromChildIndex(int Index); // Export UTgAnimBlendByPaladinsCharacter::execGetParamIndexFromChildIndex(FFrame&, void* const) + +native function SetActiveChild(INT ChildIndex, FLOAT BlendTime); // Export UTgAnimBlendByPaladinsCharacter::execSetActiveChild(FFrame&, void* const) + +native function PlayAnim(optional bool bLoop=false, optional float InRate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimBlendByPaladinsCharacter::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimBlendByPaladinsCharacter::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + m_ChildParams[0]=(SlotName="Fire Inhand",EquipSlot=EQP_AUTO,ChildIndex=1,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=true,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[1]=(SlotName="Fire Alt",EquipSlot=EQP_ALT_FIRE,ChildIndex=2,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[2]=(SlotName="Fire Ability",EquipSlot=EQP_OFFHAND_2,ChildIndex=3,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[3]=(SlotName="Fire Movement",EquipSlot=EQP_OFFHAND_3,ChildIndex=4,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[4]=(SlotName="Fire Ult",EquipSlot=EQP_OFFHAND_1,ChildIndex=5,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[5]=(SlotName="Reload",EquipSlot=EQP_AUTO,ChildIndex=6,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[6]=(SlotName="Retrieve",EquipSlot=EQP_AUTO,ChildIndex=7,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[7]=(SlotName="Emote",EquipSlot=EQP_EMOTE,ChildIndex=8,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[8]=(SlotName="Fire Supporting Device",EquipSlot=EQP_SUPPORT,ChildIndex=9,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[9]=(SlotName="Put Away",EquipSlot=EQP_AUTO,ChildIndex=10,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[10]=(SlotName="Unused 1",EquipSlot=EQP_AUTO,ChildIndex=11,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[11]=(SlotName="Unused 2",EquipSlot=EQP_AUTO,ChildIndex=12,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[12]=(SlotName="Unused 3",EquipSlot=EQP_AUTO,ChildIndex=13,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[13]=(SlotName="Unused 4",EquipSlot=EQP_AUTO,ChildIndex=14,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[14]=(SlotName="Unused 5",EquipSlot=EQP_AUTO,ChildIndex=15,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[15]=(SlotName="Intro",EquipSlot=EQP_AUTO,ChildIndex=16,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_ChildParams[16]=(SlotName="Outro",EquipSlot=EQP_AUTO,ChildIndex=17,bBlendInOnTargeting=false,bBlendInOnBuildup=false,bBlendInOnStartFire=true,bBlendInOnFire=false,bBlendOutIfStopped=false,bBlendOutOnAnimEnd=true,bBlendOutOnChildNotification=true,bEndCurrentAnimIfNoChild=false,bAddToStackIfOtherAnimInterrupted=false,bAddToStackOnCeaseRelevant=false,bIgnoreSwapLogicIfNotRelevant=false,bReplayIfActivatedFromStack=false,bReplayIfActive=true,bAutoScaleByDuration=false,fAutoScaledPlayRateMultiplier=1.0000000,bInterruptOtherAnims=true,nInterruptExceptionsByChildIndex=none,nCustomRetrieveIndex=-1) + m_nCustomRetrieveIndex=-1 + DefaultBlendTime=0.1500000 + bPlayActiveChild=true + PlayActiveChildExceptionList=/* Array type was not detected. */ + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_BarrierTank.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_BarrierTank.uc new file mode 100644 index 0000000..ccddbd2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_BarrierTank.uc @@ -0,0 +1,16 @@ +class TgAnimBlendByPaladinsCharacter_BarrierTank extends TgAnimBlendByPaladinsCharacter + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var (BarrierTank) array m_AmmoSkelControlNames; +var array m_AmmoSkelControls; +var TgPawn_BarrierTank m_CachedBarrierTankPawn; + +native function UpdateAmmoSkelControls(); // Export UTgAnimBlendByPaladinsCharacter_BarrierTank::execUpdateAmmoSkelControls(FFrame&, void* const) + +native function SetActiveChild(INT ChildIndex, FLOAT BlendTime); // Export UTgAnimBlendByPaladinsCharacter_BarrierTank::execSetActiveChild(FFrame&, void* const) + +native function bool HasCachedBarrierTankPawn(); // Export UTgAnimBlendByPaladinsCharacter_BarrierTank::execHasCachedBarrierTankPawn(FFrame&, void* const) + +native function OnRetrieve(); // Export UTgAnimBlendByPaladinsCharacter_BarrierTank::execOnRetrieve(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_BombKing.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_BombKing.uc new file mode 100644 index 0000000..71acb65 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_BombKing.uc @@ -0,0 +1,13 @@ +class TgAnimBlendByPaladinsCharacter_BombKing extends TgAnimBlendByPaladinsCharacter + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +native function OnDeviceStartFire(TgObject.TG_EQUIP_POINT eqp, float fRefireRate); // Export UTgAnimBlendByPaladinsCharacter_BombKing::execOnDeviceStartFire(FFrame&, void* const) + +defaultproperties +{ + m_ChildParams[10]=(SlotName="Ability Retrieve") + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Darklord.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Darklord.uc new file mode 100644 index 0000000..4db6a3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Darklord.uc @@ -0,0 +1,24 @@ +class TgAnimBlendByPaladinsCharacter_Darklord extends TgAnimBlendByPaladinsCharacter + native(ChampDarklord) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn_Darklord m_CachedDarklordPawn; +var bool m_bTriggerUltKilledTargetRetrieve; +var const float m_fCounterAnimDelay; +var float m_fCounterAnimTimeStamp; +var int m_nCounterAnimIndex; + +native function PlayCounterAttackAnim(bool bPlayCounterToIdleAnim); // Export UTgAnimBlendByPaladinsCharacter_Darklord::execPlayCounterAttackAnim(FFrame&, void* const) + +native function OnRetrieve(); // Export UTgAnimBlendByPaladinsCharacter_Darklord::execOnRetrieve(FFrame&, void* const) + +defaultproperties +{ + m_fCounterAnimDelay=0.6000000 + m_ChildParams[10]=(SlotName="Counter To Counter Idle 1",EquipSlot=EQP_SUPPORT) + m_ChildParams[11]=(SlotName="Counter To Counter Idle 2",EquipSlot=EQP_SUPPORT) + m_ChildParams[12]=(SlotName="Counter To Counter Idle 3",EquipSlot=EQP_SUPPORT) + m_ChildParams[13]=(SlotName="Ult Final Hit Retrieve") + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Drogoz.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Drogoz.uc new file mode 100644 index 0000000..ebacefd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Drogoz.uc @@ -0,0 +1,16 @@ +class TgAnimBlendByPaladinsCharacter_Drogoz extends TgAnimBlendByPaladinsCharacter + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var (Drogoz) array m_AmmoSkelControlNames; +var array m_AmmoSkelControls; +var TgPawn_Drogoz m_CachedDrogozPawn; + +native function UpdateAmmoSkelControls(); // Export UTgAnimBlendByPaladinsCharacter_Drogoz::execUpdateAmmoSkelControls(FFrame&, void* const) + +native function SetActiveChild(INT ChildIndex, FLOAT BlendTime); // Export UTgAnimBlendByPaladinsCharacter_Drogoz::execSetActiveChild(FFrame&, void* const) + +native function bool HasCachedDrogozPawn(); // Export UTgAnimBlendByPaladinsCharacter_Drogoz::execHasCachedDrogozPawn(FFrame&, void* const) + +native function OnRetrieve(); // Export UTgAnimBlendByPaladinsCharacter_Drogoz::execOnRetrieve(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Flak.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Flak.uc new file mode 100644 index 0000000..7db4052 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Flak.uc @@ -0,0 +1,16 @@ +class TgAnimBlendByPaladinsCharacter_Flak extends TgAnimBlendByPaladinsCharacter + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn_Flak m_CachedFlakPawn; + +native function OnRetrieve(); // Export UTgAnimBlendByPaladinsCharacter_Flak::execOnRetrieve(FFrame&, void* const) + +native function bool HasCachedFlakPawn(); // Export UTgAnimBlendByPaladinsCharacter_Flak::execHasCachedFlakPawn(FFrame&, void* const) + +defaultproperties +{ + m_ChildParams[10]=(SlotName="Shoulder Bash Hit Retrieve") + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Lex.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Lex.uc new file mode 100644 index 0000000..2197231 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Lex.uc @@ -0,0 +1,14 @@ +class TgAnimBlendByPaladinsCharacter_Lex extends TgAnimBlendByPaladinsCharacter + native(AnimNodesLex) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn_Lex m_CachedLex; +var (Lex) name m_LeftSlideSkelControlName; +var (Lex) name m_RightSlideSkelControlName; +var SkelControlBase m_LeftSlideSkelControl; +var SkelControlBase m_RightSlideSkelControl; + +native function UpdateSlideSkelControls(); // Export UTgAnimBlendByPaladinsCharacter_Lex::execUpdateSlideSkelControls(FFrame&, void* const) + +native function SetActiveChild(INT ChildIndex, FLOAT BlendTime); // Export UTgAnimBlendByPaladinsCharacter_Lex::execSetActiveChild(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Owl.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Owl.uc new file mode 100644 index 0000000..805688c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPaladinsCharacter_Owl.uc @@ -0,0 +1,13 @@ +class TgAnimBlendByPaladinsCharacter_Owl extends TgAnimBlendByPaladinsCharacter + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +native function TgAnimBlendByPaladinsCharacter.EPalCharParams GetParamIndexFromEqpSlot(TgObject.TG_EQUIP_POINT eqp); // Export UTgAnimBlendByPaladinsCharacter_Owl::execGetParamIndexFromEqpSlot(FFrame&, void* const) + +defaultproperties +{ + m_ChildParams[10]=(SlotName="Fire Flare",EquipSlot=EQP_SUPPORT_2) + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPercent.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPercent.uc new file mode 100644 index 0000000..ae839a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPercent.uc @@ -0,0 +1,23 @@ +class TgAnimBlendByPercent extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct BlendByPercentValues { + var () float fPercent; + structdefaultproperties {} +}; + +var float m_fCurrentPercent; +var (NodeSettings) array m_ChildParams; + +native function UpdatePercent(float fPercent); // Export UTgAnimBlendByPercent::execUpdatePercent(FFrame&, void* const) + +native function SetActiveChild(INT ChildIndex, FLOAT BlendTime); // Export UTgAnimBlendByPercent::execSetActiveChild(FFrame&, void* const) + +defaultproperties +{ + m_ChildParams[0]=(fPercent=0.0000000) + m_ChildParams[1]=(fPercent=1.0000000) + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPhase.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPhase.uc new file mode 100644 index 0000000..626032e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPhase.uc @@ -0,0 +1,30 @@ +class TgAnimBlendByPhase extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct m_PhaseTransitionAnimSet { + var () int m_TransitionToPhase; + var () name m_TransitionAnimName; + structdefaultproperties {} +}; + +struct m_PhaseProfile { + var () int m_Phase; + var () array m_TransitionAnimSets; + structdefaultproperties {} +}; + +var TgPawn m_TgPawn; +var int m_LastPhase; +var int m_CurrentPhase; +var () bool m_bEnableTransitionAnims; +var () array m_PhaseProfiles; + +defaultproperties +{ + m_bEnableTransitionAnims=true + DefaultBlendTime=0.2000000 + ActiveChildIndex=1 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPhysics.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPhysics.uc new file mode 100644 index 0000000..0a64538 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPhysics.uc @@ -0,0 +1,25 @@ +class TgAnimBlendByPhysics extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var (Animations) int PhysicsMap[14]; +var int LastPhysics; + +defaultproperties +{ + PhysicsMap[0]=-1 + PhysicsMap[2]=1 + PhysicsMap[3]=-1 + PhysicsMap[4]=2 + PhysicsMap[5]=-1 + PhysicsMap[6]=-1 + PhysicsMap[7]=-1 + PhysicsMap[8]=-1 + PhysicsMap[9]=-1 + PhysicsMap[10]=-1 + PhysicsMap[11]=3 + PhysicsMap[12]=-1 + PhysicsMap[13]=-1 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPosture.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPosture.uc new file mode 100644 index 0000000..019918d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPosture.uc @@ -0,0 +1,49 @@ +class TgAnimBlendByPosture extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgPawn); + +struct m_TransitionAnimSet { + var () TgPawn.TG_POSTURE m_TransitionToPosture; + var () name m_TransitionAnimName; + structdefaultproperties {} +}; + +struct m_PostureProfile { + var () TgPawn.TG_POSTURE m_Posture; + var () array m_TransitionAnimSets; + var () CameraAnim m_CameraAnim; + var () float m_fCameraAnimBlendInTime; + var () float m_fCameraAnimBlendOutTime; + var () bool m_bCameraAnimBlendInOnTransitionIn; + var () bool m_bCameraAnimBlendOutAfterTransitionOut; + var CameraAnimInst m_CameraAnimInst; + var bool m_bPlayingCameraAnim; + var () bool m_bResetBlendByFireToIdleOnTransition; + structdefaultproperties {} +}; + +var TgPawn m_TgPawn; +var TgSkeletalMeshActor_Posture m_TgPostureMesh; +var TgPawn.TG_POSTURE m_LastPosture; +var TgPawn.TG_POSTURE m_CurrentPosture; +var TgPawn.TG_POSTURE m_TransitionFromPosture; +var () bool m_bEnableTransitionAnims; +var () bool m_bCheckLowerPriorityPostures; +var int m_CurrentPostureChildIndex; +var () array m_PostureProfiles; +var transient AnimNodeSequence m_TransitionAnimNodeSeq; + +native function bool ForcePostureChange(optional bool bAllowTransitionAnims=true); // Export UTgAnimBlendByPosture::execForcePostureChange(FFrame&, void* const) + +native function ForceAllCameraAnimsEnd(); // Export UTgAnimBlendByPosture::execForceAllCameraAnimsEnd(FFrame&, void* const) + +defaultproperties +{ + m_LastPosture=TG_POSTURE_NONE + m_bCheckLowerPriorityPostures=true + DefaultBlendTime=0.2000000 + ActiveChildIndex=1 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByPosture_Player.uc b/Development/Src/TgGame/Classes/TgAnimBlendByPosture_Player.uc new file mode 100644 index 0000000..4af318e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByPosture_Player.uc @@ -0,0 +1,10 @@ +class TgAnimBlendByPosture_Player extends AnimNodeSequence + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +defaultproperties +{ + bCauseActorAnimPlay=true + NodeName="Posture_Transition" +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByProgressiveReload.uc b/Development/Src/TgGame/Classes/TgAnimBlendByProgressiveReload.uc new file mode 100644 index 0000000..d0a6905 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByProgressiveReload.uc @@ -0,0 +1,12 @@ +class TgAnimBlendByProgressiveReload extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +function SetReloadType(int ReloadType) { } + +defaultproperties +{ + DefaultBlendTime=0.1000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByRecoilTime.uc b/Development/Src/TgGame/Classes/TgAnimBlendByRecoilTime.uc new file mode 100644 index 0000000..6485607 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByRecoilTime.uc @@ -0,0 +1,16 @@ +class TgAnimBlendByRecoilTime extends AnimNodeBlend + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgDeviceForm m_TgDeviceForm; +var TgPawn m_TgPawn; +var float m_PctBlend; +var () float m_fBlendTime; +var () float m_fMaxRecoilTime; + +defaultproperties +{ + m_fBlendTime=0.2000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendBySkin.uc b/Development/Src/TgGame/Classes/TgAnimBlendBySkin.uc new file mode 100644 index 0000000..cca3ddb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendBySkin.uc @@ -0,0 +1,12 @@ +class TgAnimBlendBySkin extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct SkinChildInfo { + var () int nSkinId; + var () int nChildIndex; + structdefaultproperties {} +}; + +var () array m_SkinMap; diff --git a/Development/Src/TgGame/Classes/TgAnimBlendBySpeed.uc b/Development/Src/TgGame/Classes/TgAnimBlendBySpeed.uc new file mode 100644 index 0000000..9e86023 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendBySpeed.uc @@ -0,0 +1,55 @@ +class TgAnimBlendBySpeed extends AnimNodeBlendBySpeed + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum ESpeedType { + EST_Velocity, // 0 + EST_AccelAndMaxSpeed, // 1 +}; + +struct ResetSynchGroup { + var () name AnimNodeSynchName; + var AnimNodeSynch SynchNode; + var () name GroupName; + var () array ResetChannels; + structdefaultproperties {} +}; + +var TgPawn m_TgPawn; +var () TgAnimBlendBySpeed.ESpeedType m_SpeedType; +var () array ResetSynchGroups; +var () bool m_bIgnoreRootMotion; +var () bool m_bIgnoreZVelocity; +var () bool m_bNotifyOwnerOnChildChange; +var (ClassOverrides) bool m_bEnableClassOverrides; +var () array m_WalkChildren; +var () array m_SprintChildren; +var () array m_BaseSpeed; +var () array m_IgnoredPhysics; +var (ClassOverrides) int m_nIndexToOverride; +var (ClassOverrides) float m_fBaseSpeedRecon; +var (ClassOverrides) float m_fBaseSpeedRobotics; +var (ClassOverrides) float m_fBaseSpeedAssault; +var (ClassOverrides) float m_fBaseSpeedMedic; +var (ClassOverrides) float m_fBaseSpeedReconFemale; +var (ClassOverrides) float m_fBaseSpeedRoboticsFemale; +var (ClassOverrides) float m_fBaseSpeedAssaultFemale; +var (ClassOverrides) float m_fBaseSpeedMedicFemale; +var (ClassOverrides) float m_fBaseSpeedReconCity; +var (ClassOverrides) float m_fBaseSpeedRoboticsCity; +var (ClassOverrides) float m_fBaseSpeedAssaultCity; +var (ClassOverrides) float m_fBaseSpeedMedicCity; +var (ClassOverrides) float m_fBaseSpeedReconFemaleCity; +var (ClassOverrides) float m_fBaseSpeedRoboticsFemaleCity; +var (ClassOverrides) float m_fBaseSpeedAssaultFemaleCity; +var (ClassOverrides) float m_fBaseSpeedMedicFemaleCity; + +native function AnimNodeSynch FindSynchAnimNode(name nmNodeName); // Export UTgAnimBlendBySpeed::execFindSynchAnimNode(FFrame&, void* const) + +event OnInit() { } + +defaultproperties +{ + m_bIgnoreZVelocity=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendBySpeedWithExhaustion.uc b/Development/Src/TgGame/Classes/TgAnimBlendBySpeedWithExhaustion.uc new file mode 100644 index 0000000..2a71c80 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendBySpeedWithExhaustion.uc @@ -0,0 +1,22 @@ +class TgAnimBlendBySpeedWithExhaustion extends TgAnimBlendBySpeed + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var (Exhaustion) bool m_bEnableExhaustion; +var (Exhaustion) float m_fExhaustionLevel; +var (Exhaustion) array m_ExhaustedChildren; +var (Exhaustion) array m_GainExhaustionChildren; +var (Exhaustion) float m_fExhaustionGainSpeed; +var (Exhaustion) float m_fExhaustionLossSpeed; +var (Exhaustion) float m_fExhaustionLevelMax; +var (Exhaustion) float m_fExhaustionLevelMin; + +defaultproperties +{ + m_fExhaustionLevel=1.0000000 + m_fExhaustionGainSpeed=0.2500000 + m_fExhaustionLossSpeed=0.3000000 + m_fExhaustionLevelMax=2.5000000 + m_fExhaustionLevelMin=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByStartingPosture.uc b/Development/Src/TgGame/Classes/TgAnimBlendByStartingPosture.uc new file mode 100644 index 0000000..6d16323 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByStartingPosture.uc @@ -0,0 +1,16 @@ +class TgAnimBlendByStartingPosture extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgPawn); + +var TgPawn m_TgPawn; +var () TgPawn.TG_POSTURE m_StartingPosture; +var bool m_bExpired; + +defaultproperties +{ + DefaultBlendTime=0.0000000 + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByTeleportBeacon.uc b/Development/Src/TgGame/Classes/TgAnimBlendByTeleportBeacon.uc new file mode 100644 index 0000000..854f0b3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByTeleportBeacon.uc @@ -0,0 +1,15 @@ +class TgAnimBlendByTeleportBeacon extends TgAnimNodeBlendList + hidecategories(Object,Object,Object,Object) + config(Engine); + +var bool m_bDeployed; + +simulated function Deploy(float fDeployTime) { } + +simulated function Undeploy(float fUndeployTime) { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendByWeaponSkin.uc b/Development/Src/TgGame/Classes/TgAnimBlendByWeaponSkin.uc new file mode 100644 index 0000000..6266d97 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendByWeaponSkin.uc @@ -0,0 +1,12 @@ +class TgAnimBlendByWeaponSkin extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct WeaponSkinChildInfo { + var () int nWeaponSkinId; + var () int nChildIndex; + structdefaultproperties {} +}; + +var () array m_SkinMap; diff --git a/Development/Src/TgGame/Classes/TgAnimBlendInterpBySpeed.uc b/Development/Src/TgGame/Classes/TgAnimBlendInterpBySpeed.uc new file mode 100644 index 0000000..6fd3aa5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendInterpBySpeed.uc @@ -0,0 +1,17 @@ +class TgAnimBlendInterpBySpeed extends AnimNodeBlend + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn m_TgPawn; +var () float m_fBlendTime; +var () float m_fFullRunSpeed; +var () float m_fFullIdleSpeed; + +defaultproperties +{ + m_fBlendTime=0.2000000 + m_fFullRunSpeed=350.0000000 + m_fFullIdleSpeed=50.0000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimBlendPerBone.uc b/Development/Src/TgGame/Classes/TgAnimBlendPerBone.uc new file mode 100644 index 0000000..a0d4d7f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimBlendPerBone.uc @@ -0,0 +1,24 @@ +class TgAnimBlendPerBone extends AnimNodeBlendPerBone + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgPawn); + +var () bool m_bLoopSourceChild; +var () bool m_bLoopTargetChild; +var () bool m_bPlaySourceChild; +var () bool m_bPlayTargetChild; +var () bool m_bSetStrengthFromAnimNode; +var () bool m_bInvertStrengthFromAnimNode; +var transient bool m_bInitializedCachedNodeList; +var () array m_StrengthAnimNodeNameList; +var () array m_StrengthEmoteList; +var transient array m_CachedNodeList; +var transient array m_CachedEmoteSequences; + +native function PlayAnim(optional bool bLoop=false, optional float Rate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimBlendPerBone::execPlayAnim(FFrame&, void* const) + +defaultproperties +{ + BlendType=ABT_Sinusoidal +} diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_InvisibleWallFailSafe.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_InvisibleWallFailSafe.uc new file mode 100644 index 0000000..413d29d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_InvisibleWallFailSafe.uc @@ -0,0 +1,13 @@ +class TgAnimMetaData_InvisibleWallFailSafe extends AnimMetaData + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var name WallEnableBaseName; + +defaultproperties +{ + WallEnableBaseName="WallEnable" +} diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_MICScalarParameter.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_MICScalarParameter.uc new file mode 100644 index 0000000..989b081 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_MICScalarParameter.uc @@ -0,0 +1,18 @@ +class TgAnimMetaData_MICScalarParameter extends AnimMetaData + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +struct MICScalarParameterKeyFrame { + var () float Time; + var () float TargetValue; + structdefaultproperties {} +}; + +var () name MICParameterName; +var () int MaterialIndex; +var () editinline array KeyFrames; +var () bool bForceFirstKeyFrameOnBecomeRelevant; +var () bool bForceLastKeyFrameOnCeaseRelevant; diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_MICScalarParameterExtended.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_MICScalarParameterExtended.uc new file mode 100644 index 0000000..2e8b830 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_MICScalarParameterExtended.uc @@ -0,0 +1,43 @@ +class TgAnimMetaData_MICScalarParameterExtended extends TgAnimMetaData_MICScalarParameter + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +struct AlternateMaterialOverride { + var () const MaterialInstanceConstant MaterialToFind; + var () const MaterialInstanceConstant MaterialToReplace; + structdefaultproperties {} +}; + +struct SwappedMeshResetInfo { + var export editinline SkeletalMeshComponent SkelMeshComp; + var int MaterialIndex; + var MaterialInstanceConstant OrigMatInst; + structdefaultproperties {} +}; + +var (ExtendedOptions) bool bSearchSelf; +var (ExtendedOptions) bool bSearchSiblings; +var (ExtendedOptions) bool bSearchChildren; +var (ExtendedOptions) bool bIncludeSearchParticles; +var (ExtendedOptions) bool bIncludeSearchMeshes; +var (ExtendedOptions) bool bForceAllMaterials; +var (ExtendedOptions) bool bFindAllMatchingMaterials; +var transient bool bHasSetMICs; +var (ExtendedOptions) const MaterialInstanceConstant MaterialToFind; +var (ExtendedOptions) const MaterialInstanceConstant MaterialToReplace; +var (ExtendedOptions) array AlternateMaterialList; +var (ExtendedOptions) const array TexturesToHarvest; +var transient array MaterialsToReset; +var transient array CurrentModifiedMICs; + +defaultproperties +{ + bSearchSelf=true + bIncludeSearchMeshes=true + TexturesToHarvest[0]="Normal" + TexturesToHarvest[1]="Diffuse" + TexturesToHarvest[2]="Specular" +} diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_MaskingPlane.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_MaskingPlane.uc new file mode 100644 index 0000000..d07be2d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_MaskingPlane.uc @@ -0,0 +1,25 @@ +class TgAnimMetaData_MaskingPlane extends TgAnimMetaData_MICScalarParameterExtended + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () int WallIndex; +var () Vector WallNormal; +var () Vector WallPosition0; +var () Vector WallPosition1; +var const name WallEnableBaseName; +var const name WallPositionBaseName; +var const name WallNormalBaseName; + +defaultproperties +{ + WallNormal=(X=0.0000000,Y=0.0000000,Z=1.0000000) + WallEnableBaseName="WallEnable" + WallPositionBaseName="WallPosition" + WallNormalBaseName="WallNormal" + bSearchSiblings=true + bSearchChildren=true + bForceAllMaterials=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_MeshAccessory.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_MeshAccessory.uc new file mode 100644 index 0000000..e0f1703 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_MeshAccessory.uc @@ -0,0 +1,28 @@ +class TgAnimMetaData_MeshAccessory extends AnimMetaData + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +struct MeshPlacement { + var () int nSkinId; + var () int nMeshId; + var () name SocketName; + structdefaultproperties {} +}; + +var () editinline array m_Meshes; +var () bool m_bSkinIndependent; +var () bool m_bSetKeysNoInterp; +var () bool m_bUseScaling; +var export editinline transient SkeletalMeshComponent m_MeshComp; +var transient int m_nMeshId; +var () editinline array m_KeyFrames; +var () float m_fBecomeRelevantScale; +var () float m_fCeaseRelevantScale; + +defaultproperties +{ + m_fBecomeRelevantScale=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_MeshAccessory_Mastery.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_MeshAccessory_Mastery.uc new file mode 100644 index 0000000..80357f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_MeshAccessory_Mastery.uc @@ -0,0 +1,6 @@ +class TgAnimMetaData_MeshAccessory_Mastery extends TgAnimMetaData_MeshAccessory + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControlKeyFrame.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControlKeyFrame.uc new file mode 100644 index 0000000..4689657 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControlKeyFrame.uc @@ -0,0 +1,10 @@ +class TgAnimMetaData_SkelControlKeyFrame extends TgAnimMetaData_SkelControl_BoneScale_KeyFrame + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bAdjustControllerStrength=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControl_BoneScale.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControl_BoneScale.uc new file mode 100644 index 0000000..c31b067 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControl_BoneScale.uc @@ -0,0 +1,11 @@ +class TgAnimMetaData_SkelControl_BoneScale extends AnimMetaData + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () array SkelControlNameList; +var () float BoneScale; +var () bool bFullControlOverController; +var deprecated name SkelControlName; diff --git a/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControl_BoneScale_KeyFrame.uc b/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControl_BoneScale_KeyFrame.uc new file mode 100644 index 0000000..d5c52da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimMetaData_SkelControl_BoneScale_KeyFrame.uc @@ -0,0 +1,35 @@ +class TgAnimMetaData_SkelControl_BoneScale_KeyFrame extends AnimMetaData + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +enum EOnRelevanceChange { + ORC_NORMAL, // 0 + ORC_FORCE_KEYFRAME, // 1 + ORC_FORCE_ACTIVE, // 2 + ORC_FORCE_INACTIVE, // 3 + ORC_FORCE_OTHER, // 4 +}; + +var () array SkelControlNameList; +var () editinline array KeyFrames; +var () bool bAllowScaleUp; +var () bool bAllowScaleDown; +var const bool bAdjustControllerStrength; +var () bool bFullControlOverController; +var () bool bSetKeysNoInterp; +var deprecated bool bForceFirstKeyFrameOnBecomeRelevant; +var deprecated bool bForceLastKeyFrameOnCeaseRelevant; +var deprecated name SkelControlName; +var () TgAnimMetaData_SkelControl_BoneScale_KeyFrame.EOnRelevanceChange OnBecomeRelevantBehavior; +var () TgAnimMetaData_SkelControl_BoneScale_KeyFrame.EOnRelevanceChange OnCeaseRelevantBehavior; +var () float OnBecomeRelevantStrength; +var () float OnCeaseRelevantStrength; + +defaultproperties +{ + bAllowScaleUp=true + bAllowScaleDown=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeAdditiveBlending.uc b/Development/Src/TgGame/Classes/TgAnimNodeAdditiveBlending.uc new file mode 100644 index 0000000..6710e45 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeAdditiveBlending.uc @@ -0,0 +1,13 @@ +class TgAnimNodeAdditiveBlending extends AnimNodeAdditiveBlending + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgPawn); + +var () bool m_bSetStrengthFromAnimNode; +var () bool m_bInvertStrengthFromAnimNode; +var transient bool m_bInitializedCachedNodeList; +var () array m_StrengthAnimNodeNameList; +var () array m_StrengthEmoteList; +var transient array m_CachedNodeList; +var transient array m_CachedEmoteSequences; diff --git a/Development/Src/TgGame/Classes/TgAnimNodeAimOffset.uc b/Development/Src/TgGame/Classes/TgAnimNodeAimOffset.uc new file mode 100644 index 0000000..3df3ebf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeAimOffset.uc @@ -0,0 +1,50 @@ +class TgAnimNodeAimOffset extends AnimNodeAimOffset + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EPitchControlType { + PITCHCONTROL_Disable, // 0 + PITCHCONTROL_Legacy, // 1 + PITCHCONTROL_Pure, // 2 + PITCHCONTROL_UserDefined, // 3 +}; + +var const transient TgPawn Owner; +var array m_CachedNodeList; +var transient bool m_bInitializedCachedNodeList; +var deprecated bool m_bDisableVerticalAiming; +var const transient bool bInterpolating; +var () bool m_bBakeAllProfileOffsetsFromAnimations; +var () bool m_bPopulateAnimNamesWithPrefixes; +var (Random) bool m_bRandomAimPointsEnabled; +var (OverrideAim) bool m_bOverrideAim; +var (AI) bool m_bAimAtTarget; +var (PitchControl) const TgAnimNodeAimOffset.EPitchControlType m_PitchControlType; +var (PitchControl) const InterpCurveFloat m_PitchControlUserCurve; +var () const transient float TurnInPlaceOffset; +var const transient float LastAimX; +var () float InterpSpeed; +var const transient Vector2D m_AimOffsetPct; +var (Random) Vector2D m_RandomAimPointsRangeX; +var (Random) Vector2D m_RandomAimPointsRangeY; +var (Random) float m_fRandomAimPointsInterpRate; +var (Random) float m_fRandomAimPointsIntervalMin; +var (Random) float m_fRandomAimPointsIntervalMax; +var float m_fCurrentRandomAimPointsInterval; +var Vector2D m_TargetRandomAimLocation; +var float m_fDeltaTime; +var (OverrideAim) Vector2D m_OverriddenAim; +var TgWeaponMeshActor m_WeaponMeshActor; + +defaultproperties +{ + m_PitchControlType=PITCHCONTROL_Legacy + m_PitchControlUserCurve=(Points=((InVal=-17920.0000000,OutVal=-1.0000000,ArriveTangent=0.0000000,LeaveTangent=0.0000000,InterpMode=CIM_Linear),(InVal=17920.0000000,OutVal=1.0000000,ArriveTangent=0.0000000,LeaveTangent=0.0000000,InterpMode=CIM_Linear)),InterpMethod=IMT_UseFixedTangentEval) + InterpSpeed=12.0000000 + m_RandomAimPointsRangeX=(X=-1.0000000,Y=1.0000000) + m_RandomAimPointsRangeY=(X=-1.0000000,Y=1.0000000) + m_fRandomAimPointsInterpRate=8.0000000 + m_fRandomAimPointsIntervalMin=1.0000000 + m_fRandomAimPointsIntervalMax=2.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeAimOffset_Charge.uc b/Development/Src/TgGame/Classes/TgAnimNodeAimOffset_Charge.uc new file mode 100644 index 0000000..abb614b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeAimOffset_Charge.uc @@ -0,0 +1,17 @@ +class TgAnimNodeAimOffset_Charge extends TgAnimNodeAimOffset + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () bool m_bInterpToCurrentTurnRate; +var () float m_fInterpSpeed; +var () float m_fMaxYawRate; +var transient float m_fAimYawOffset; +var transient Rotator m_rCachedOwnerRotator; + +defaultproperties +{ + m_bInterpToCurrentTurnRate=true + m_fInterpSpeed=4.0000000 + m_fMaxYawRate=16384.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendAnimsByDirection.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendAnimsByDirection.uc new file mode 100644 index 0000000..461c7c7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendAnimsByDirection.uc @@ -0,0 +1,34 @@ +class TgAnimNodeBlendAnimsByDirection extends AnimNodeSequenceBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var () float m_BlendSpeed; +var () bool m_bUsePlayRateByDirection; +var () bool m_bIncludeStandingAnim; +var transient bool m_bForceStanding; +var const transient bool m_bInterpolateWeights; +var () bool m_bMirrorDirectionsWhenPawnMirrored; +var () bool m_bForwardLeftCorrection; +var () float m_PlayRateByDirection[8]; +var () float m_PlayRateStanding; +var () float m_fStillThreshold; +var float m_DirAngle; +var transient float m_LastRelevantTime; + +defaultproperties +{ + m_BlendSpeed=10.0000000 + m_bUsePlayRateByDirection=true + m_PlayRateByDirection[0]=1.0000000 + m_PlayRateByDirection[1]=1.0000000 + m_PlayRateByDirection[2]=1.0000000 + m_PlayRateByDirection[3]=1.0000000 + m_PlayRateByDirection[4]=1.0000000 + m_PlayRateByDirection[5]=1.0000000 + m_PlayRateByDirection[6]=1.0000000 + m_PlayRateByDirection[7]=1.0000000 + m_PlayRateStanding=1.0000000 + m_fStillThreshold=0.0001000 + Anims=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAFK.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAFK.uc new file mode 100644 index 0000000..35ab0f5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAFK.uc @@ -0,0 +1,12 @@ +class TgAnimNodeBlendByAFK extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn PawnOwner; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDrag.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDrag.uc new file mode 100644 index 0000000..97d47e8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDrag.uc @@ -0,0 +1,43 @@ +class TgAnimNodeBlendByAbilityDrag extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendDrag { + BLENDDRAG_Inactive, // 0 + BLENDDRAG_Throw, // 1 + BLENDDRAG_Hit, // 2 + BLENDDRAG_PrePullLoop, // 3 + BLENDDRAG_Pull, // 4 + BLENDDRAG_PullLoop, // 5 + BLENDDRAG_EndPull, // 6 + BLENDDRAG_MissThrow, // 7 + BLENDDRAG_MissThrowEnd, // 8 + BLENDDRAG_MissInvalid, // 9 + BLENDDRAG_MissInvalidEnd, // 10 + BLENDDRAG_CloseRangeEnd, // 11 +}; + +function ThrowHook() { } + +function HookHit() { } + +function HookPull() { } + +function HookEnd() { } + +function HookMissNotHit() { } + +function HookEndMissNoHit() { } + +function HookMissInvalid() { } + +function HookEndMissInvalid() { } + +function HookCloseRangeEnd() { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="DragAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDragChain.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDragChain.uc new file mode 100644 index 0000000..04210e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDragChain.uc @@ -0,0 +1,25 @@ +class TgAnimNodeBlendByAbilityDragChain extends TgAnimNodeBlendList + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendDrag { + BLENDCHAIN_Inactive, // 0 + BLENDCHAIN_Throw, // 1 + BLENDCHAIN_Hit, // 2 + BLENDCHAIN_MissThrow, // 3 + BLENDCHAIN_MissInvalid, // 4 +}; + +function ChainThrow() { } + +function ChainHit() { } + +function ChainMiss() { } + +function ChainInvalid() { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="DragChainAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDragonSlam.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDragonSlam.uc new file mode 100644 index 0000000..75eb429 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityDragonSlam.uc @@ -0,0 +1,27 @@ +class TgAnimNodeBlendByAbilityDragonSlam extends TgAnimNodeBlendList + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendDragonSlam { + BLENDDRAGON_ReadyFlightFromGound, // 0 + BLENDDRAGON_ReadyFlightFromAir, // 1 + BLENDDRAGON_Flying, // 2 + BLENDDRAGON_Punch, // 3 + BLENDDRAGON_EndFlight, // 4 +}; + +function ReadyFlightFromGround() { } + +function ReadyFlightFromAir() { } + +function Fly() { } + +function HitTarget() { } + +function EndFlying() { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="DragonSlamAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityFragGrenade.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityFragGrenade.uc new file mode 100644 index 0000000..c70771f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityFragGrenade.uc @@ -0,0 +1,14 @@ +class TgAnimNodeBlendByAbilityFragGrenade extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +function StartThrow() { } + +native function OnInterrupt(); // Export UTgAnimNodeBlendByAbilityFragGrenade::execOnInterrupt(FFrame&, void* const) + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="FragGrenadeAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityHyperShot.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityHyperShot.uc new file mode 100644 index 0000000..02d6809 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityHyperShot.uc @@ -0,0 +1,21 @@ +class TgAnimNodeBlendByAbilityHyperShot extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendHyperShot { + BLENDHYPERSHOT_Inactive, // 0 + BLENDHYPERSHOT_Buildup, // 1 + BLENDHYPERSHOT_Idle, // 2 + BLENDHYPERSHOT_Activate, // 3 + BLENDHYPERSHOT_FireBuildup, // 4 + BLENDHYPERSHOT_Fire, // 5 + BLENDHYPERSHOT_TransitionToIdle, // 6 + BLENDHYPERSHOT_Cancel, // 7 +}; + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="HyperShotAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityReversal.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityReversal.uc new file mode 100644 index 0000000..a8d289d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityReversal.uc @@ -0,0 +1,17 @@ +class TgAnimNodeBlendByAbilityReversal extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendReversal { + BLENDREVERSAL_Inactive, // 0 + BLENDREVERSAL_Buildup, // 1 + BLENDREVERSAL_Fire, // 2 + BLENDREVERSAL_Miss, // 3 +}; + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="ReversalAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilitySimple.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilitySimple.uc new file mode 100644 index 0000000..657939d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilitySimple.uc @@ -0,0 +1,36 @@ +class TgAnimNodeBlendByAbilitySimple extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +enum EBlendSimpleAbility { + BLENDSA_Inactive, // 0 + BLENDSA_Firing, // 1 +}; + +var () bool m_bBlendToActiveOnStartFire; +var () bool m_bBlendToActiveOnFire; +var () bool m_bDelayBlendToActiveUntilAnimEnd; +var () bool m_bDelayBlendToActiveUntilReplay; +var () bool m_bDelayBlendToIdleUntilAnimEnd; +var () bool m_bDelayBlendToIdleUntilReplay; +var () bool m_bBlendToIdleImmediatelyOnInterrupt; +var transient bool m_bIsAbilityFiring; +var () TgObject.TG_EQUIP_POINT m_EqpPoint; + +function SetAbilityFiring(bool bIsFiring, bool bIsOnFire, optional bool bIsInterrupted=false) { } + +native function PlayAnim(optional bool bLoop=false, optional float InRate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeBlendByAbilitySimple::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeBlendByAbilitySimple::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + m_bBlendToActiveOnStartFire=true + m_EqpPoint=EQP_AUTO + TargetWeight=/* Array type was not detected. */ + Children=/* Array type was not detected. */ + bFixNumChildren=true + NodeName="SimpleAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilitySmash.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilitySmash.uc new file mode 100644 index 0000000..5e29ffd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilitySmash.uc @@ -0,0 +1,18 @@ +class TgAnimNodeBlendByAbilitySmash extends TgAnimNodeBlendList + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendMakoaSmash { + BLENDSMASH_ChargeUp, // 0 + BLENDSMASH_Attack, // 1 +}; + +function BeginChargeUp() { } + +function Attack() { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="MakoaSmashBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityVine.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityVine.uc new file mode 100644 index 0000000..f02af43 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAbilityVine.uc @@ -0,0 +1,29 @@ +class TgAnimNodeBlendByAbilityVine extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendVine { + BLENDVINE_Inactive, // 0 + BLENDVINE_Throw, // 1 + BLENDVINE_ThrowLoop, // 2 + BLENDVINE_Pull, // 3 + BLENDVINE_HitPostFire, // 4 + BLENDVINE_MissPostFire, // 5 +}; + +function VineThrow() { } + +function VinePull() { } + +function VineHitPost() { } + +function VinePost() { } + +function VineInactive() { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + NodeName="VineAbilityBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByAndroxusDrift.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAndroxusDrift.uc new file mode 100644 index 0000000..02b913b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByAndroxusDrift.uc @@ -0,0 +1,42 @@ +class TgAnimNodeBlendByAndroxusDrift extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendAndroxusDrift { + BLENDDRIFT_NotDrifting, // 0 + BLENDDRIFT_Drifting, // 1 + BLENDDRIFT_TransitionToNotDrifting, // 2 + BLENDDRIFT_TransitionToDrifting, // 3 +}; + +struct DriftInfo { + var float fStartTime; + var float fEndTime; + structdefaultproperties {} +}; + +var array m_DriftRecords; +var TgPawn_Androxus m_CachedAndroxusOwner; +var bool m_bInDrift; +var () bool m_bTransitionsCanBeInterrupted; +var float m_fDriftStartTime; +var () float m_fDriftRelevancyWindow; +var () float m_fDriftTriggerPercent; +var () float m_fMaxFallSpeed; + +native function float GetDriftUsePercent(); // Export UTgAnimNodeBlendByAndroxusDrift::execGetDriftUsePercent(FFrame&, void* const) + +native function StartedDrift(); // Export UTgAnimNodeBlendByAndroxusDrift::execStartedDrift(FFrame&, void* const) + +native function StoppedDrift(); // Export UTgAnimNodeBlendByAndroxusDrift::execStoppedDrift(FFrame&, void* const) + +defaultproperties +{ + m_bTransitionsCanBeInterrupted=true + m_fDriftRelevancyWindow=1.0000000 + m_fDriftTriggerPercent=0.5000000 + m_fMaxFallSpeed=-400.0000000 + Children=/* Array type was not detected. */ + NodeName="AndroxusDriftBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByBlink.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByBlink.uc new file mode 100644 index 0000000..21666b2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByBlink.uc @@ -0,0 +1,21 @@ +class TgAnimNodeBlendByBlink extends AnimNodeBlendPerBone + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var transient TgPawn m_TgPawn; +var export editinline transient SkeletalMeshComponent m_SkelMesh; +var () float m_fBlinkAnimRate; +var () Vector2D m_vTimeBetweenBlinks; +var float m_fTimeTillNextBlink; +var () array m_DisableBlinkingAnimNodeNameList; +var transient array m_CachedNodeList; +var transient bool m_bInitializedCachedNodeList; + +defaultproperties +{ + m_fBlinkAnimRate=1.0000000 + m_vTimeBetweenBlinks=(X=2.0000000,Y=6.0000000) + bForceLocalSpaceBlend=true + BranchStartBoneName=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByCombat.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByCombat.uc new file mode 100644 index 0000000..8d0373f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByCombat.uc @@ -0,0 +1,12 @@ +class TgAnimNodeBlendByCombat extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn m_TgP; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByCombatWariness.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByCombatWariness.uc new file mode 100644 index 0000000..890aa78 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByCombatWariness.uc @@ -0,0 +1,20 @@ +class TgAnimNodeBlendByCombatWariness extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () float CombatWarinessDuration; +var () bool AllowIdleAnimToComplete; +var () bool AllowWaryAnimToComplete; +var transient bool IsWary; +var transient float WaryTime; + +native function BecomeWary(); // Export UTgAnimNodeBlendByCombatWariness::execBecomeWary(FFrame&, void* const) + +defaultproperties +{ + CombatWarinessDuration=5.0000000 + AllowWaryAnimToComplete=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByDeviceEquipped.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByDeviceEquipped.uc new file mode 100644 index 0000000..15f7c77 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByDeviceEquipped.uc @@ -0,0 +1,17 @@ +class TgAnimNodeBlendByDeviceEquipped extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () int m_DeviceId; +var TgPawn m_TgPawn; + +native function PlayAnim(optional bool bLoop=false, optional float InRate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeBlendByDeviceEquipped::execPlayAnim(FFrame&, void* const) + +defaultproperties +{ + TargetWeight=/* Array type was not detected. */ + Children=/* Array type was not detected. */ + bFixNumChildren=true + NodeName="DeviceEquippedBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByDrogozFlying.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByDrogozFlying.uc new file mode 100644 index 0000000..9fc1374 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByDrogozFlying.uc @@ -0,0 +1,43 @@ +class TgAnimNodeBlendByDrogozFlying extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EBlendDrogozFlying { + BLENDDROGOZ_NotFlying, // 0 + BLENDDROGOZ_Flying, // 1 + BLENDDROGOZ_TransitionToNotFlying, // 2 + BLENDDROGOZ_TransitionToFlying, // 3 +}; + +struct BoosterFlightInfo { + var float fStartTime; + var float fEndTime; + structdefaultproperties {} +}; + +var array m_BoosterRecords; +var TgPawn_Drogoz m_CachedDrogozOwner; +var bool m_bInThrust; +var bool m_bInBooster; +var () bool m_bTransitionsCanBeInterrupted; +var float m_fBoosterStartTime; +var () float m_fBoosterRelevancyWindow; +var () float m_fBoosterTriggerPercent; +var () float m_fMaxFlightFallSpeed; + +native function float GetBoosterUsePercent(); // Export UTgAnimNodeBlendByDrogozFlying::execGetBoosterUsePercent(FFrame&, void* const) + +native function StartedBooster(); // Export UTgAnimNodeBlendByDrogozFlying::execStartedBooster(FFrame&, void* const) + +native function StoppedBooster(); // Export UTgAnimNodeBlendByDrogozFlying::execStoppedBooster(FFrame&, void* const) + +defaultproperties +{ + m_bTransitionsCanBeInterrupted=true + m_fBoosterRelevancyWindow=1.0000000 + m_fBoosterTriggerPercent=0.5000000 + m_fMaxFlightFallSpeed=-400.0000000 + Children=/* Array type was not detected. */ + NodeName="DrogozFlyingBlendNode" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByGameState.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByGameState.uc new file mode 100644 index 0000000..4216e37 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByGameState.uc @@ -0,0 +1,13 @@ +class TgAnimNodeBlendByGameState extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var transient TgPawn PawnOwner; + +defaultproperties +{ + bPlayActiveChild=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByHealth.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByHealth.uc new file mode 100644 index 0000000..1a4514b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByHealth.uc @@ -0,0 +1,7 @@ +class TgAnimNodeBlendByHealth extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () array m_HealthChildren; +var transient TgPawn m_TgPawn; diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByHitReaction.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByHitReaction.uc new file mode 100644 index 0000000..2f30053 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByHitReaction.uc @@ -0,0 +1,15 @@ +class TgAnimNodeBlendByHitReaction extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +native function OnMinorHit(Vector DirectionFromHit); // Export UTgAnimNodeBlendByHitReaction::execOnMinorHit(FFrame&, void* const) + +native function OnMajorHit(Vector DirectionFromHit); // Export UTgAnimNodeBlendByHitReaction::execOnMajorHit(FFrame&, void* const) + +defaultproperties +{ + bPlayActiveChild=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByIntroduction.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByIntroduction.uc new file mode 100644 index 0000000..6b492ef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByIntroduction.uc @@ -0,0 +1,16 @@ +class TgAnimNodeBlendByIntroduction extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var bool m_bIsRelevant; + +native function PrepareIntroduction(); // Export UTgAnimNodeBlendByIntroduction::execPrepareIntroduction(FFrame&, void* const) + +native function PlayIntroduction(); // Export UTgAnimNodeBlendByIntroduction::execPlayIntroduction(FFrame&, void* const) + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByKnockdown.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByKnockdown.uc new file mode 100644 index 0000000..ccc500b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByKnockdown.uc @@ -0,0 +1,29 @@ +class TgAnimNodeBlendByKnockdown extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EKnockDownChildren { + KNOCKDOWNANIM_Input, // 0 + KNOCKDOWNANIM_DownState, // 1 + KNOCKDOWNANIM_GetUp, // 2 +}; + +var () bool m_bAdjustPlayRateByVelocity; +var () float m_fVelocityMultiplier; +var () float m_PreviewVelocity; +var TgPawn m_TgPawn; +var () name m_FaceDownAnimName; +var () name m_FaceUpAnimName; +var () name m_FaceDownRecoverAnimName; +var () name m_FaceUpRecoverAnimName; + +native function SetDownStateAnim(bool bFaceDown); // Export UTgAnimNodeBlendByKnockdown::execSetDownStateAnim(FFrame&, void* const) + +defaultproperties +{ + m_bAdjustPlayRateByVelocity=true + m_fVelocityMultiplier=0.0050000 + Children=/* Array type was not detected. */ + NodeName="KnockdownBlend" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByLobby.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByLobby.uc new file mode 100644 index 0000000..7420147 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByLobby.uc @@ -0,0 +1,9 @@ +class TgAnimNodeBlendByLobby extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +defaultproperties +{ + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByMeleeIdle.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByMeleeIdle.uc new file mode 100644 index 0000000..39a6bb6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByMeleeIdle.uc @@ -0,0 +1,14 @@ +class TgAnimNodeBlendByMeleeIdle extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn m_TgPawn; + +defaultproperties +{ + DefaultBlendTime=0.5000000 + Children=/* Array type was not detected. */ + bFixNumChildren=true + BlendType=ABT_Cubic +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByPhysics.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByPhysics.uc new file mode 100644 index 0000000..f4af4e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByPhysics.uc @@ -0,0 +1,33 @@ +class TgAnimNodeBlendByPhysics extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct ChildBlendInfo { + var () Actor.EPhysics m_PhysicsState; + var () float m_fBlendTime; + structdefaultproperties {} +}; + +struct ChildrenBlendInfo { + var () Actor.EPhysics m_PhysicsState; + var () array m_ChildBlendInfo; + structdefaultproperties {} +}; + +var TgPawn m_TgPawn; +var Actor.EPhysics m_LastPhysics; +var Actor.EPhysics m_CurrentPhysics; +var int m_CurrentPhysicsChildIndex; +var () array m_PhysicsChildren; +var () bool m_bDirectUnspecifiedPhysicsThroughChild0; +var () float DefaultBlendTime; +var () array m_ChildrenBlendInfo; + +defaultproperties +{ + m_PhysicsChildren[0]=151 + m_bDirectUnspecifiedPhysicsThroughChild0=true + DefaultBlendTime=0.2000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendBySlowFall.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendBySlowFall.uc new file mode 100644 index 0000000..f25e3a9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendBySlowFall.uc @@ -0,0 +1,12 @@ +class TgAnimNodeBlendBySlowFall extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +simulated event SetActiveAnimationIndex(int ChildIndex) { } + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByStrafe.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByStrafe.uc new file mode 100644 index 0000000..86a4bfb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByStrafe.uc @@ -0,0 +1,13 @@ +class TgAnimNodeBlendByStrafe extends AnimNodeBlend + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var TgPawn m_TgPawn; +var () float m_fBlendTime; + +defaultproperties +{ + m_fBlendTime=0.2000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByVerticalAim.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByVerticalAim.uc new file mode 100644 index 0000000..dc5644f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByVerticalAim.uc @@ -0,0 +1,28 @@ +class TgAnimNodeBlendByVerticalAim extends AnimNodeBlendBase + native + hidecategories(Object,Object,Object) + config(Engine); + +var () float m_Aim; +var () Vector2D m_Range; +var () float m_AngleOffset; +var transient float m_PreviousAim; +var transient bool bInitialized; +var () bool m_bLoopChildrenOnRelevant; +var () bool m_bPlayChildrenOnRelevant; +var () name m_AnimName_Up; +var () name m_AnimName_Center; +var () name m_AnimName_Down; +var transient AnimNodeSequence m_SeqNode1; +var transient AnimNodeSequence m_SeqNode2; + +native function PlayAnim(optional bool bLoop=false, optional float Rate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeBlendByVerticalAim::execPlayAnim(FFrame&, void* const) + +event OnBecomeRelevant() { } + +defaultproperties +{ + m_Range=(X=-1.0000000,Y=1.0000000) + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByZoomPostFireTransition.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByZoomPostFireTransition.uc new file mode 100644 index 0000000..135a694 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByZoomPostFireTransition.uc @@ -0,0 +1,16 @@ +class TgAnimNodeBlendByZoomPostFireTransition extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +function StartZoomTransition(float transitionTimeRemaining, bool zoomIn) { } + +function SetZoomState(bool zoomIn) { } + +defaultproperties +{ + TargetWeight=/* Array type was not detected. */ + Children=/* Array type was not detected. */ + bFixNumChildren=true + NodeName="ZoomPostFireTransition" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendByZoomTransition.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendByZoomTransition.uc new file mode 100644 index 0000000..4a0fc79 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendByZoomTransition.uc @@ -0,0 +1,18 @@ +class TgAnimNodeBlendByZoomTransition extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var float m_fTransitionStartTime; + +function StartZoomTransition(float zoomPercent, float totalTransitionTime, bool zoomIn) { } + +function SetZoomState(bool zoomIn) { } + +defaultproperties +{ + TargetWeight=/* Array type was not detected. */ + Children=/* Array type was not detected. */ + bFixNumChildren=true + NodeName="ZoomTransition" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendList.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendList.uc new file mode 100644 index 0000000..209ed17 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendList.uc @@ -0,0 +1,23 @@ +class TgAnimNodeBlendList extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct ChildBlendParam { + var () int FromChild; + var () int ToChild; + var () float BlendTime; + var () float MaxBlendTime; + structdefaultproperties {} +}; + +var (animation) float DefaultBlendTime; +var (animation) array ChildBlendTimes; +var (animation) array SpecificChildBlendTimes; + +native function float GetBlendTime(int ChildIndex); // Export UTgAnimNodeBlendList::execGetBlendTime(FFrame&, void* const) + +defaultproperties +{ + DefaultBlendTime=0.2500000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendList_EquipScreen.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendList_EquipScreen.uc new file mode 100644 index 0000000..9baf28e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendList_EquipScreen.uc @@ -0,0 +1,28 @@ +class TgAnimNodeBlendList_EquipScreen extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EEquipScreenAnimTypes { + ESAT_Default, // 0 + ESAT_Weapon, // 1 + ESAT_Helmet, // 2 + ESAT_Backpack, // 3 + ESAT_Suit, // 4 +}; + +native function PlayWeaponReaction(); // Export UTgAnimNodeBlendList_EquipScreen::execPlayWeaponReaction(FFrame&, void* const) + +native function PlayHelmetReaction(); // Export UTgAnimNodeBlendList_EquipScreen::execPlayHelmetReaction(FFrame&, void* const) + +native function PlaySuitReaction(); // Export UTgAnimNodeBlendList_EquipScreen::execPlaySuitReaction(FFrame&, void* const) + +native function PlayBackpackReaction(); // Export UTgAnimNodeBlendList_EquipScreen::execPlayBackpackReaction(FFrame&, void* const) + +native function PlayIdleAnim(); // Export UTgAnimNodeBlendList_EquipScreen::execPlayIdleAnim(FFrame&, void* const) + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendNPC.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendNPC.uc new file mode 100644 index 0000000..c43a007 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendNPC.uc @@ -0,0 +1,59 @@ +class TgAnimNodeBlendNPC extends TgAnimNodeBlendList + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum NPCAnimationStates { + NPCAS_NoCustomerPresent, // 0 + NPCAS_CustomerPresent, // 1 + NPCAS_Greeting, // 2 + NPCAS_NoSale, // 3 + NPCAS_CallOut, // 4 + NPCAS_Sale, // 5 + NPCAS_TransCustomerPresentToNotPresent, // 6 + NPCAS_None, // 7 +}; + +var () float m_NoCustomerPresentBlendInTime; +var () float m_CustomerPresentBlendInTime; +var () float m_GreetingBlendInTime; +var () float m_NoSaleBlendInTime; +var () float m_CallOutBlendInTime; +var () float m_SaleBlendInTime; +var () float m_TransCustomerPresentToNotPresentBlendInTime; +var () array m_UninterruptibleAnims; +var TgAnimNodeBlendNPC.NPCAnimationStates m_QueuedChild; +var float m_QueuedBlendTime; +var name m_CurrentAnimPlaying; + +function bool IsAnUninterruptableAnim(name AnimName) { } + +function QueueActiveChild(TgAnimNodeBlendNPC.NPCAnimationStates QueuedChild, float BlendTime) { } + +function PlayNoCustomerPresentAnimation() { } + +function PlayGreetingAnimation() { } + +function PlayCustomerPresentAnimation() { } + +function PlayCallOutAnimation() { } + +function PlayNoSaleAnimation() { } + +function PlaySaleAnimation() { } + +simulated event OnChildAnimEnd(AnimationEndInformation Information) { } + +defaultproperties +{ + m_NoCustomerPresentBlendInTime=0.4000000 + m_CustomerPresentBlendInTime=0.4000000 + m_GreetingBlendInTime=0.4000000 + m_NoSaleBlendInTime=0.4000000 + m_CallOutBlendInTime=0.4000000 + m_SaleBlendInTime=0.4000000 + m_TransCustomerPresentToNotPresentBlendInTime=0.4000000 + m_QueuedChild=NPCAS_None + bPlayActiveChild=true + Children=/* Array type was not detected. */ + NodeName="NPCBlend" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeBlendPerBone_Bakasura_ConsumeMinion.uc b/Development/Src/TgGame/Classes/TgAnimNodeBlendPerBone_Bakasura_ConsumeMinion.uc new file mode 100644 index 0000000..81e5f57 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeBlendPerBone_Bakasura_ConsumeMinion.uc @@ -0,0 +1,3 @@ +class TgAnimNodeBlendPerBone_Bakasura_ConsumeMinion extends AnimNodeBlendPerBone + hidecategories(Object,Object,Object,Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimNodeChannelFire.uc b/Development/Src/TgGame/Classes/TgAnimNodeChannelFire.uc new file mode 100644 index 0000000..7c0f2d5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeChannelFire.uc @@ -0,0 +1,26 @@ +class TgAnimNodeChannelFire extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT m_EquipPoint; +var () bool m_bResetOnRelevant; +var () bool m_bCheckAnimSeqForAnim; +var transient bool m_bDoneChanneling; + +native function EndChannel(); // Export UTgAnimNodeChannelFire::execEndChannel(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeChannelFire::execReplayAnim(FFrame&, void* const) + +native function bool ShouldSetActiveChild(AnimNode pAnimNode); // Export UTgAnimNodeChannelFire::execShouldSetActiveChild(FFrame&, void* const) + +simulated function SetLockedBase(bool bLocked) { } + +defaultproperties +{ + m_EquipPoint=EQP_AUTO + m_bDoneChanneling=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeChannelFire_Pounce.uc b/Development/Src/TgGame/Classes/TgAnimNodeChannelFire_Pounce.uc new file mode 100644 index 0000000..9e0611f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeChannelFire_Pounce.uc @@ -0,0 +1,16 @@ +class TgAnimNodeChannelFire_Pounce extends TgAnimNodeChannelFire + native(ChampBlades) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var bool m_bPounceHitSuccessful; + +native function EndChannel(); // Export UTgAnimNodeChannelFire_Pounce::execEndChannel(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeChannelFire_Pounce::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + m_EquipPoint=EQP_ALT_FIRE + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeChannelFire_Spite.uc b/Development/Src/TgGame/Classes/TgAnimNodeChannelFire_Spite.uc new file mode 100644 index 0000000..ddf4035 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeChannelFire_Spite.uc @@ -0,0 +1,19 @@ +class TgAnimNodeChannelFire_Spite extends TgAnimNodeChannelFire + native(ChampDarklord) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgDevice_Spite); + +var TgDevice_Spite.SpiteAnimState m_eAnimState; + +native function EndChannel(); // Export UTgAnimNodeChannelFire_Spite::execEndChannel(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeChannelFire_Spite::execReplayAnim(FFrame&, void* const) + +native function SetAnimState(TgDevice_Spite.SpiteAnimState animState); // Export UTgAnimNodeChannelFire_Spite::execSetAnimState(FFrame&, void* const) + +defaultproperties +{ + m_EquipPoint=EQP_OFFHAND_1 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeEmoteCustomAnim.uc b/Development/Src/TgGame/Classes/TgAnimNodeEmoteCustomAnim.uc new file mode 100644 index 0000000..e041e0e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeEmoteCustomAnim.uc @@ -0,0 +1,13 @@ +class TgAnimNodeEmoteCustomAnim extends AnimNodePlayCustomAnim + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var bool c_bIsInHandDeviceMeshInvisible; +var bool c_bHasReachedFullWeight; + +defaultproperties +{ + NodeName="EmoteCustomAnim" + m_LabelColor=(R=255,G=100,B=0,A=255) +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeEmoteSequence.uc b/Development/Src/TgGame/Classes/TgAnimNodeEmoteSequence.uc new file mode 100644 index 0000000..87c9895 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeEmoteSequence.uc @@ -0,0 +1,18 @@ +class TgAnimNodeEmoteSequence extends AnimNodeSequenceBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine) + dependson(TgPawn); + +var TgPawn.EEmote ActiveEmote; +var () float BlendSpeed; +var bool InterpWeights; + +native function bool SetActiveEmote(name FullBody, name Moving, TgPawn.EEmote Emote, optional bool bResetSynchGroup=true); // Export UTgAnimNodeEmoteSequence::execSetActiveEmote(FFrame&, void* const) + +defaultproperties +{ + BlendSpeed=4.0000000 + Anims=/* Array type was not detected. */ + m_bIgnoreBlendBySpeedScaling=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeEmoteSwitch.uc b/Development/Src/TgGame/Classes/TgAnimNodeEmoteSwitch.uc new file mode 100644 index 0000000..a9d21f5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeEmoteSwitch.uc @@ -0,0 +1,14 @@ +class TgAnimNodeEmoteSwitch extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgPawn); + +function PlayEmote(TgPawn.EEmote Emote) { } + +defaultproperties +{ + bPlayActiveChild=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeFidget.uc b/Development/Src/TgGame/Classes/TgAnimNodeFidget.uc new file mode 100644 index 0000000..d9e121a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeFidget.uc @@ -0,0 +1,31 @@ +class TgAnimNodeFidget extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum EFidgetType { + FT_Timed, // 0 + FT_ChanceOnIdleCompletes, // 1 +}; + +var transient float m_SelectedIdleTimeBeforeFidgeting; +var transient float m_CurrentIdleTime; +var () float BlendToFidgetDuration; +var () float BlendFromFidgetDuration; +var () TgAnimNodeFidget.EFidgetType FidgetType; +var (TimedFidget) float MinimumIdleTimeBeforeFidgeting; +var (TimedFidget) float MaximumIdleTimeBeforeFidgeting; +var (TimedFidget) bool AllowIdleAnimToComplete; +var (ChanceFidget) float ChanceToFidgetWhenIdleCompletes; + +defaultproperties +{ + BlendToFidgetDuration=0.2000000 + BlendFromFidgetDuration=0.2000000 + MinimumIdleTimeBeforeFidgeting=5.0000000 + MaximumIdleTimeBeforeFidgeting=5.0000000 + AllowIdleAnimToComplete=true + ChanceToFidgetWhenIdleCompletes=1.0000000 + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeFitToDuration.uc b/Development/Src/TgGame/Classes/TgAnimNodeFitToDuration.uc new file mode 100644 index 0000000..fe019a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeFitToDuration.uc @@ -0,0 +1,26 @@ +class TgAnimNodeFitToDuration extends AnimNodeBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine) + dependson(TgObject); + +var () protected float Duration; +var float OverrideDuration; +var () bool bAllowIncreasedPlayRate; +var () bool bAllowDecreasedPlayRate; +var () bool bClampDuration; +var () bool m_bScaleByReload; +var () float ClampedMinDuration; +var () float ClampedMaxDuration; +var () TgObject.TG_EQUIP_POINT m_EquipPoint; +var () float m_fDurationMultiplier; + +defaultproperties +{ + Duration=1.0000000 + bAllowIncreasedPlayRate=true + m_EquipPoint=EQP_AUTO + m_fDurationMultiplier=1.0000000 + Children=/* Array type was not detected. */ + NodeName="FitToDuration" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeJumpLeanOffset.uc b/Development/Src/TgGame/Classes/TgAnimNodeJumpLeanOffset.uc new file mode 100644 index 0000000..816bf3d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeJumpLeanOffset.uc @@ -0,0 +1,22 @@ +class TgAnimNodeJumpLeanOffset extends AnimNodeAimOffset + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () float JumpLeanStrength; +var () float MaxLeanChangeSpeed; +var () bool bMultiplyByZVelocity; +var AnimNodeAimOffset CachedAimNode; +var name OldAimProfileName; +var Vector2D PreBlendAim; +var float LeanWeight; +var float LeanWeightTarget; +var float BlendTimeToGo; + +native function SetLeanWeight(float WeightTarget, float BlendTime); // Export UTgAnimNodeJumpLeanOffset::execSetLeanWeight(FFrame&, void* const) + +defaultproperties +{ + LeanWeight=1.0000000 + LeanWeightTarget=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeLockableChannelFire.uc b/Development/Src/TgGame/Classes/TgAnimNodeLockableChannelFire.uc new file mode 100644 index 0000000..9b3002a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeLockableChannelFire.uc @@ -0,0 +1,20 @@ +class TgAnimNodeLockableChannelFire extends TgAnimNodeChannelFire + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () bool m_bPlayStartOnLock; +var () bool m_bPlayStartOnUnlock; +var () bool m_bPlayStartAfterLockLost; +var transient bool m_bLocked; + +native function SetLocked(bool bLocked); // Export UTgAnimNodeLockableChannelFire::execSetLocked(FFrame&, void* const) + +simulated function SetLockedBase(bool bLocked) { } + +defaultproperties +{ + m_bPlayStartOnLock=true + m_bPlayStartOnUnlock=true + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeLog.uc b/Development/Src/TgGame/Classes/TgAnimNodeLog.uc new file mode 100644 index 0000000..462c3df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeLog.uc @@ -0,0 +1,9 @@ +class TgAnimNodeLog extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +defaultproperties +{ + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeMountSync.uc b/Development/Src/TgGame/Classes/TgAnimNodeMountSync.uc new file mode 100644 index 0000000..495fb8a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeMountSync.uc @@ -0,0 +1,15 @@ +class TgAnimNodeMountSync extends AnimNodeBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var TgPawn m_TgP; +var () array m_nmSyncGroupNames; + +defaultproperties +{ + m_nmSyncGroupNames[0]="MountRun" + m_nmSyncGroupNames[1]="MountIdle" + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodePlayFireAnim.uc b/Development/Src/TgGame/Classes/TgAnimNodePlayFireAnim.uc new file mode 100644 index 0000000..e9974a9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodePlayFireAnim.uc @@ -0,0 +1,15 @@ +class TgAnimNodePlayFireAnim extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () name FireAnimNodeName; +var transient AnimNodeSequence FireAnimNodeSequence; + +native function PlayFireAnim(optional name FireName='Fire'); // Export UTgAnimNodePlayFireAnim::execPlayFireAnim(FFrame&, void* const) + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodePlayTgCameraAnim.uc b/Development/Src/TgGame/Classes/TgAnimNodePlayTgCameraAnim.uc new file mode 100644 index 0000000..6a1d994 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodePlayTgCameraAnim.uc @@ -0,0 +1,13 @@ +class TgAnimNodePlayTgCameraAnim extends AnimNodeBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var () TgCameraShake m_CameraShake; +var TgPawn m_TgPawn; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeRandom.uc b/Development/Src/TgGame/Classes/TgAnimNodeRandom.uc new file mode 100644 index 0000000..9fb8a18 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeRandom.uc @@ -0,0 +1,39 @@ +class TgAnimNodeRandom extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct TgRandomAnimInfo { + var () float Chance; + var () byte LoopCountMin; + var () byte LoopCountMax; + var () float BlendInTime; + var () bool bCanRepeat; + var byte LoopCount; + var () bool bCallOnAnimEndOnParent; + var () bool m_bChooseNewNodeOnAnimEnd; + var () Vector2D m_ChildActiveTime; + structdefaultproperties {} +}; + +var () int m_iDefaultChildIndex; +var () bool m_bConsiderRelevancy; +var (Master) bool m_bMasterOtherNodes; +var transient bool m_bIsASlave; +var (Time) bool m_bEnableTimer; +var (Time) bool m_TimeAllChildren; +var (Master) array m_SlaveNames; +var transient array m_Slaves; +var (Time) int m_nPrimaryChild; +var (Time) Vector2D m_TimeRange; +var float m_fRemainingTime; +var () editfixedsize editinline array RandomInfo; + +defaultproperties +{ + m_iDefaultChildIndex=-1 + m_bConsiderRelevancy=true + m_TimeRange=(X=5.0000000,Y=10.0000000) + ActiveChildIndex=-1 + bPlayActiveChild=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeSelfDestruct.uc b/Development/Src/TgGame/Classes/TgAnimNodeSelfDestruct.uc new file mode 100644 index 0000000..d223a9d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeSelfDestruct.uc @@ -0,0 +1,18 @@ +class TgAnimNodeSelfDestruct extends TgAnimNodeSequence + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var (SelfDestruct) int NumberOfLoopsBeforeDestruct; +var int LoopsCompleted; +var (ScaleOut) array ScaleOutSkelControlNames; +var (ScaleOut) float TimeRemaingForScaleOut; +var transient array ScaleOutSkelControls; +var transient array ScaleOutStartScales; +var transient float ScaleOutStartTime; + +defaultproperties +{ + NumberOfLoopsBeforeDestruct=1 + ScaleOutStartTime=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeSequence.uc b/Development/Src/TgGame/Classes/TgAnimNodeSequence.uc new file mode 100644 index 0000000..272ccea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeSequence.uc @@ -0,0 +1,15 @@ +class TgAnimNodeSequence extends AnimNodeSequence + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var () bool bAutoPlay; +var bool bResetOnActivate; +var () bool HasDynamicLength; +var () bool EnableFootControlsOnCease; +var (Group) bool SynchronizeGroupOnReplay; +var () bool bRandomStartPosition; +var () float ChainedSequenceDuration; +var (DisplayGroup) name m_nmDisplayGroup; + +native function PlayAnim(optional bool bLoop=false, optional float InRate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeSequence::execPlayAnim(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimNodeSequenceByBoneRotation.uc b/Development/Src/TgGame/Classes/TgAnimNodeSequenceByBoneRotation.uc new file mode 100644 index 0000000..9c981be --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeSequenceByBoneRotation.uc @@ -0,0 +1,20 @@ +class TgAnimNodeSequenceByBoneRotation extends AnimNodeSequence + hidecategories(Object,Object,Object) + config(Engine); + +struct AnimByRotation { + var () Rotator DesiredRotation; + var () name AnimName; + structdefaultproperties {} +}; + +var () name BoneName; +var () Object.EAxis BoneAxis; +var () array AnimList; + +event OnBecomeRelevant() { } + +defaultproperties +{ + BoneAxis=AXIS_X +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeSequence_ZhongKui_Exorcism.uc b/Development/Src/TgGame/Classes/TgAnimNodeSequence_ZhongKui_Exorcism.uc new file mode 100644 index 0000000..c82d479 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeSequence_ZhongKui_Exorcism.uc @@ -0,0 +1,3 @@ +class TgAnimNodeSequence_ZhongKui_Exorcism extends TgAnimNodeSequence + hidecategories(Object,Object,Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimNodeSimpleTransitioner.uc b/Development/Src/TgGame/Classes/TgAnimNodeSimpleTransitioner.uc new file mode 100644 index 0000000..0ebf895 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeSimpleTransitioner.uc @@ -0,0 +1,31 @@ +class TgAnimNodeSimpleTransitioner extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var (ConfigureFromDevice) int m_nDeviceId; +var (ConfigureFromDevice) bool m_bConfigureBasedOnDevice; +var () bool m_bIgnoreFireMode; +var () int m_nNumberOfStances; +var () name m_StanceBaseName; +var () name m_TransitionBaseName; +var () float m_BlendTransitionDuration; + +native function PlayAnim(optional bool bLoop=false, optional float InRate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeSimpleTransitioner::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeSimpleTransitioner::execReplayAnim(FFrame&, void* const) + +native function bool SetStance(int nStance, optional bool bNoBlend); // Export UTgAnimNodeSimpleTransitioner::execSetStance(FFrame&, void* const) + +native function bool Fire(int nMode); // Export UTgAnimNodeSimpleTransitioner::execFire(FFrame&, void* const) + +defaultproperties +{ + m_bIgnoreFireMode=true + m_nNumberOfStances=1 + m_StanceBaseName="Stance" + m_TransitionBaseName="Fire" + m_BlendTransitionDuration=0.5000000 + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeSlot.uc b/Development/Src/TgGame/Classes/TgAnimNodeSlot.uc new file mode 100644 index 0000000..1233125 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeSlot.uc @@ -0,0 +1,32 @@ +class TgAnimNodeSlot extends AnimNodeSlot + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var transient TgPawn m_TgPawn; +var transient bool m_bBlendOutIfVelocityIsGreaterThanZero; +var transient bool m_bIsTransitionAnim; +var () bool m_bNotifyActorOnChildAnimEnd; +var (Hacking) name m_nmHackingTransitionAnimName; +var (Hacking) name m_nmHackingLoopingAnimName; +var (AFK) name m_nmAFKTransitionAnimName; +var (AFK) name m_nmAFKLoopingAnimName; +var transient name m_nmQueuedAnim; + +native function float PlayLoopingCustomAnimWithTransition(name TransitionAnimName, name LoopingAnimName, float Rate, optional float BlendInTime, optional float BlendOutTime); // Export UTgAnimNodeSlot::execPlayLoopingCustomAnimWithTransition(FFrame&, void* const) + +function SetPlayRate(float fPlayRate) { } + +native function PlayAFK(); // Export UTgAnimNodeSlot::execPlayAFK(FFrame&, void* const) + +native function StopAFK(); // Export UTgAnimNodeSlot::execStopAFK(FFrame&, void* const) + +native function PlayHacking(); // Export UTgAnimNodeSlot::execPlayHacking(FFrame&, void* const) + +native function StopHacking(); // Export UTgAnimNodeSlot::execStopHacking(FFrame&, void* const) + + +defaultproperties +{ + m_bNotifyActorOnChildAnimEnd=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeStance.uc b/Development/Src/TgGame/Classes/TgAnimNodeStance.uc new file mode 100644 index 0000000..3b3a3b0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeStance.uc @@ -0,0 +1,12 @@ +class TgAnimNodeStance extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () int m_Stance; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeStanceDualFire.uc b/Development/Src/TgGame/Classes/TgAnimNodeStanceDualFire.uc new file mode 100644 index 0000000..4fe7361 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeStanceDualFire.uc @@ -0,0 +1,14 @@ +class TgAnimNodeStanceDualFire extends TgAnimNodeStanceTransitionerSynchronized + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var bool m_bFireParityDirty; +var int m_nDesiredStance; + +native function ChangeStance(int Stance, optional bool bAutoSync=true, optional bool bForceUpdate=false); // Export UTgAnimNodeStanceDualFire::execChangeStance(FFrame&, void* const) + +defaultproperties +{ + StanceResetTime=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeStanceFireIntercept.uc b/Development/Src/TgGame/Classes/TgAnimNodeStanceFireIntercept.uc new file mode 100644 index 0000000..279dde1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeStanceFireIntercept.uc @@ -0,0 +1,17 @@ +class TgAnimNodeStanceFireIntercept extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () int m_nStanceToAllow; +var int m_nCurrentStance; + +native function PlayAnim(optional bool bLoop=false, optional float Rate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeStanceFireIntercept::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeStanceFireIntercept::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeStanceTransition.uc b/Development/Src/TgGame/Classes/TgAnimNodeStanceTransition.uc new file mode 100644 index 0000000..ce7bbe6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeStanceTransition.uc @@ -0,0 +1,13 @@ +class TgAnimNodeStanceTransition extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () int m_SourceStance; +var () int m_DestinationStance; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeStanceTransitioner.uc b/Development/Src/TgGame/Classes/TgAnimNodeStanceTransitioner.uc new file mode 100644 index 0000000..4ceddea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeStanceTransitioner.uc @@ -0,0 +1,44 @@ +class TgAnimNodeStanceTransitioner extends AnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct CachedTgAnimNodeStanceInfo { + var int Index; + var TgAnimNodeStance Node; + structdefaultproperties {} +}; + +struct CachedTgAnimNodeStanceTransitionInfo { + var int Index; + var TgAnimNodeStanceTransition Node; + structdefaultproperties {} +}; + +var () int m_DefaultStance; +var () int m_CurrentStance; +var bool m_bIsPlayingTransition; +var () float m_BlendTransitionDuration; +var array m_StanceNodeInfos; +var array m_TransitionNodeInfos; + +event int GetCurrentStance() { } + +event GetStances(out array Stances) { } + +native function PlayAnim(optional bool bLoop=false, optional float InRate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeStanceTransitioner::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeStanceTransitioner::execReplayAnim(FFrame&, void* const) + +native function bool SetStance(int Stance); // Export UTgAnimNodeStanceTransitioner::execSetStance(FFrame&, void* const) + +native function GetTransitionableStances(int SourceStance, out array DestinationStances); // Export UTgAnimNodeStanceTransitioner::execGetTransitionableStances(FFrame&, void* const) + +native function bool TransitionToStance(int DestinationStance); // Export UTgAnimNodeStanceTransitioner::execTransitionToStance(FFrame&, void* const) + +native function bool BlendToStance(int DestinationStance); // Export UTgAnimNodeStanceTransitioner::execBlendToStance(FFrame&, void* const) + +defaultproperties +{ + m_BlendTransitionDuration=0.1000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeStanceTransitionerSynchronized.uc b/Development/Src/TgGame/Classes/TgAnimNodeStanceTransitionerSynchronized.uc new file mode 100644 index 0000000..09d5e6d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeStanceTransitionerSynchronized.uc @@ -0,0 +1,29 @@ +class TgAnimNodeStanceTransitionerSynchronized extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +struct StanceTransitionParam { + var () int FromChild; + var () int ToChild; + structdefaultproperties {} +}; + +var () float StanceResetTime; +var () bool CanResetStanceOnTick; +var bool m_bDelayingChildSwitch; +var int m_nCurrentStance; +var float m_fTimestampToSwitchStance; +var () array StanceTransitionControl; + +native function ChangeStance(int Stance, optional bool bAutoSync=true, optional bool bForceUpdate=false); // Export UTgAnimNodeStanceTransitionerSynchronized::execChangeStance(FFrame&, void* const) + +native function PlayAnim(optional bool bLoop=false, optional float Rate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeStanceTransitionerSynchronized::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeStanceTransitionerSynchronized::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + StanceResetTime=3.0000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeTargeting.uc b/Development/Src/TgGame/Classes/TgAnimNodeTargeting.uc new file mode 100644 index 0000000..f958aeb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeTargeting.uc @@ -0,0 +1,23 @@ +class TgAnimNodeTargeting extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine) + dependson(TgObject); + +var () TgObject.TG_EQUIP_POINT m_EquipPoint; +var () bool m_bResetOnRelevant; +var transient bool m_bDoneTargeting; + +native function InterruptTargeting(); // Export UTgAnimNodeTargeting::execInterruptTargeting(FFrame&, void* const) + +native function EndTargeting(); // Export UTgAnimNodeTargeting::execEndTargeting(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeTargeting::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + m_EquipPoint=EQP_OFFHAND_3 + m_bDoneTargeting=true + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeTiltTowardsVelocity.uc b/Development/Src/TgGame/Classes/TgAnimNodeTiltTowardsVelocity.uc new file mode 100644 index 0000000..f185854 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeTiltTowardsVelocity.uc @@ -0,0 +1,17 @@ +class TgAnimNodeTiltTowardsVelocity extends AnimNodeBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var () Vector2D m_MaximumVelocity; +var transient int m_PitchOffset; +var () int m_MaximumPitchOffset; +var transient int m_RollOffset; +var () int m_MaximumRollOffset; +var transient TgPawn m_Pawn; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeToggleWithTransition.uc b/Development/Src/TgGame/Classes/TgAnimNodeToggleWithTransition.uc new file mode 100644 index 0000000..2b5caa8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeToggleWithTransition.uc @@ -0,0 +1,18 @@ +class TgAnimNodeToggleWithTransition extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var float m_fTransitionStartTime; +var float m_fTransitionTimeRemaining; + +function StartTransition(float transitionPercent, float totalTransitionTime, bool transitionToActive) { } + +function SetToggleState(bool IsActive) { } + +defaultproperties +{ + TargetWeight=/* Array type was not detected. */ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeToggleWithTransition_Disengage.uc b/Development/Src/TgGame/Classes/TgAnimNodeToggleWithTransition_Disengage.uc new file mode 100644 index 0000000..bd347d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeToggleWithTransition_Disengage.uc @@ -0,0 +1,19 @@ +class TgAnimNodeToggleWithTransition_Disengage extends TgAnimNodeToggleWithTransition + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var int m_nPendingChildIndex; +var bool m_bForceNewActiveChild; + +native function SetActiveChild(INT ChildIndex, FLOAT BlendTime); // Export UTgAnimNodeToggleWithTransition_Disengage::execSetActiveChild(FFrame&, void* const) + +native function PlayAnim(optional bool bLoop=false, optional float Rate=1.0000000, optional float StartTime=0.0000000); // Export UTgAnimNodeToggleWithTransition_Disengage::execPlayAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeToggleWithTransition_Disengage::execReplayAnim(FFrame&, void* const) + +defaultproperties +{ + TargetWeight=/* Array type was not detected. */ + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimNodeTriggerCameraAnim.uc b/Development/Src/TgGame/Classes/TgAnimNodeTriggerCameraAnim.uc new file mode 100644 index 0000000..e9f080c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNodeTriggerCameraAnim.uc @@ -0,0 +1,35 @@ +class TgAnimNodeTriggerCameraAnim extends AnimNodeBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine) + dependson(TgObject); + +var () CameraAnim CameraAnim; +var () float fBlendInTime; +var () float fBlendOutTime; +var () bool bLoopAnimation; +var () bool bBlendInOnBecomeRelevant; +var () bool bBlendInOnReplayAnim; +var () bool bBlendOutOnStopFire; +var () bool bPlayAnimInLocalSpace; +var () TgObject.TG_EQUIP_POINT m_StopFireEquipSlotTarget; +var CameraAnimInst CameraAnimInst; + +native function StartCameraAnim(); // Export UTgAnimNodeTriggerCameraAnim::execStartCameraAnim(FFrame&, void* const) + +native function EndCameraAnim(); // Export UTgAnimNodeTriggerCameraAnim::execEndCameraAnim(FFrame&, void* const) + +native function ReplayAnim(); // Export UTgAnimNodeTriggerCameraAnim::execReplayAnim(FFrame&, void* const) + +native function OnDeviceStopFire(TgObject.TG_EQUIP_POINT eqp); // Export UTgAnimNodeTriggerCameraAnim::execOnDeviceStopFire(FFrame&, void* const) + +defaultproperties +{ + fBlendInTime=0.1000000 + fBlendOutTime=0.1000000 + bBlendInOnBecomeRelevant=true + bBlendInOnReplayAnim=true + bPlayAnimInLocalSpace=true + Children=/* Array type was not detected. */ + NodeName="TriggerCameraAnim" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNotifySkinData.uc b/Development/Src/TgGame/Classes/TgAnimNotifySkinData.uc new file mode 100644 index 0000000..b33397e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotifySkinData.uc @@ -0,0 +1,9 @@ +class TgAnimNotifySkinData extends Object + native(Anim) + config(Engine); + +var init string OwningNotify; +var SoundCue SoundCueTemplate; +var ParticleSystem ParticleSystemTemplate; +var int nSkinId; +var int nSkinLevel; diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_AkEvent.uc b/Development/Src/TgGame/Classes/TgAnimNotify_AkEvent.uc new file mode 100644 index 0000000..5fe6645 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_AkEvent.uc @@ -0,0 +1,16 @@ +class TgAnimNotify_AkEvent extends AnimNotify_AkEvent + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +struct PSE_SkinAk { + var () int nSkinId; + var () AkEvent AkEvent; + structdefaultproperties {} +}; + +var () array m_SkinOverrideList; + +native function AkEvent GetAkEventToPlay(SkeletalMeshComponent skel); // Export UTgAnimNotify_AkEvent::execGetAkEventToPlay(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_ApplyRigidBodyPhysics.uc b/Development/Src/TgGame/Classes/TgAnimNotify_ApplyRigidBodyPhysics.uc new file mode 100644 index 0000000..c18bc1b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_ApplyRigidBodyPhysics.uc @@ -0,0 +1,19 @@ +class TgAnimNotify_ApplyRigidBodyPhysics extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () bool ShouldAttachToBone; +var () name BoneName; +var () Vector ImpulseLocation; +var () float ImpulseRadius; +var () float ImpulseStrength; + +defaultproperties +{ + ImpulseRadius=100.0000000 + ImpulseStrength=100.0000000 + ShouldDeferIssue=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_AudioGroup.uc b/Development/Src/TgGame/Classes/TgAnimNotify_AudioGroup.uc new file mode 100644 index 0000000..035b5bd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_AudioGroup.uc @@ -0,0 +1,15 @@ +class TgAnimNotify_AudioGroup extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +enum TG_MESH_SOURCE { + TG_MESH_SOURCE_PAWN, // 0 + TG_MESH_SOURCE_IN_HAND_DEVICE, // 1 +}; + +var () SoundCue c_PreviewSound; +var () name c_SoundCueName; +var () TgAnimNotify_AudioGroup.TG_MESH_SOURCE c_eMeshSource; diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_CameraCut.uc b/Development/Src/TgGame/Classes/TgAnimNotify_CameraCut.uc new file mode 100644 index 0000000..81be3cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_CameraCut.uc @@ -0,0 +1,14 @@ +class TgAnimNotify_CameraCut extends AnimNotify + native + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () float m_fTweenSpeed; +var () Vector m_vTweenDir; +var () Vector m_vLocationOffset; +var () Rotator m_rRotationOffset; +var () Rotator m_rRotationTarget; +var () float m_fRotationDuration; +var () float m_fRotationDelay; diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_Disappear.uc b/Development/Src/TgGame/Classes/TgAnimNotify_Disappear.uc new file mode 100644 index 0000000..6a18f13 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_Disappear.uc @@ -0,0 +1,6 @@ +class TgAnimNotify_Disappear extends AnimNotify + native + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_Footstep.uc b/Development/Src/TgGame/Classes/TgAnimNotify_Footstep.uc new file mode 100644 index 0000000..c0e47c4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_Footstep.uc @@ -0,0 +1,6 @@ +class TgAnimNotify_Footstep extends AnimNotify_Footstep + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_InterpolateMorphTargetWeight.uc b/Development/Src/TgGame/Classes/TgAnimNotify_InterpolateMorphTargetWeight.uc new file mode 100644 index 0000000..62d4001 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_InterpolateMorphTargetWeight.uc @@ -0,0 +1,26 @@ +class TgAnimNotify_InterpolateMorphTargetWeight extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +enum InterruptMorphTargetBehavior { + ResetToInitial, // 0 + ResetToValue, // 1 + RestToTarget, // 2 +}; + +var () name MorphNodePoseName; +var () float MorphTargetWeight; +var () TgAnimNotify_InterpolateMorphTargetWeight.InterruptMorphTargetBehavior OnInterruptBehavior; +var () float InterruptMorphTargetWeight; +var transient float InitialMorphTargetWeight; + +simulated event OnAnimNodeSequenceCeaseRelevant(AnimNodeSequence OwningNode) { } + +defaultproperties +{ + MorphTargetWeight=1.0000000 + OnInterruptBehavior=ResetToValue +} diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_PlayParticleEffect_Skinned.uc b/Development/Src/TgGame/Classes/TgAnimNotify_PlayParticleEffect_Skinned.uc new file mode 100644 index 0000000..83b5aca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_PlayParticleEffect_Skinned.uc @@ -0,0 +1,24 @@ +class TgAnimNotify_PlayParticleEffect_Skinned extends AnimNotify_PlayParticleEffect + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +struct PPE_Skin { + var () int nSkinId; + var () ParticleSystem PSTemplate; + structdefaultproperties {} +}; + +var () array m_SkinOverrideList; +var () bool m_bApplyTeamColor; + +native function ParticleSystem GetParticleSystemToPlay(SkeletalMeshComponent skel); // Export UTgAnimNotify_PlayParticleEffect_Skinned::execGetParticleSystemToPlay(FFrame&, void* const) + +native function ParticleChannelContainer GetParticleChannels(SkeletalMeshComponent skel); // Export UTgAnimNotify_PlayParticleEffect_Skinned::execGetParticleChannels(FFrame&, void* const) + +defaultproperties +{ + m_bApplyTeamColor=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_PlayPetAnim.uc b/Development/Src/TgGame/Classes/TgAnimNotify_PlayPetAnim.uc new file mode 100644 index 0000000..777edc2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_PlayPetAnim.uc @@ -0,0 +1,8 @@ +class TgAnimNotify_PlayPetAnim extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () name m_ChildSeqName; diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_Sound.uc b/Development/Src/TgGame/Classes/TgAnimNotify_Sound.uc new file mode 100644 index 0000000..8cf0cca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_Sound.uc @@ -0,0 +1,16 @@ +class TgAnimNotify_Sound extends AnimNotify_Sound + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +struct PSE_Skin { + var () int nSkinId; + var () SoundCue SoundCue; + structdefaultproperties {} +}; + +var () array m_SkinOverrideList; + +native function SoundCue GetSoundCueToPlay(SkeletalMeshComponent skel); // Export UTgAnimNotify_Sound::execGetSoundCueToPlay(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_SpectatorSlomo.uc b/Development/Src/TgGame/Classes/TgAnimNotify_SpectatorSlomo.uc new file mode 100644 index 0000000..4a34bc3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_SpectatorSlomo.uc @@ -0,0 +1,6 @@ +class TgAnimNotify_SpectatorSlomo extends AnimNotify + native + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_SwapToInhandWeaponMesh.uc b/Development/Src/TgGame/Classes/TgAnimNotify_SwapToInhandWeaponMesh.uc new file mode 100644 index 0000000..4c65de0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_SwapToInhandWeaponMesh.uc @@ -0,0 +1,6 @@ +class TgAnimNotify_SwapToInhandWeaponMesh extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_ToggleInvisibleWall.uc b/Development/Src/TgGame/Classes/TgAnimNotify_ToggleInvisibleWall.uc new file mode 100644 index 0000000..de77596 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_ToggleInvisibleWall.uc @@ -0,0 +1,27 @@ +class TgAnimNotify_ToggleInvisibleWall extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () bool TurnWallOn; +var () bool TurnOffOnCeaseRelevant; +var () int WallIndex; +var () Vector WallPosition; +var () Vector WallNormal; +var const name WallEnableBaseName; +var const name WallPositionBaseName; +var const name WallNormalBaseName; + +simulated event OnAnimNodeSequenceCeaseRelevant(AnimNodeSequence OwningNode) { } + +defaultproperties +{ + TurnWallOn=true + TurnOffOnCeaseRelevant=true + WallNormal=(X=0.0000000,Y=0.0000000,Z=1.0000000) + WallEnableBaseName="WallEnable" + WallPositionBaseName="WallPosition" + WallNormalBaseName="WallNormal" +} diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_ToggleRigidBodies.uc b/Development/Src/TgGame/Classes/TgAnimNotify_ToggleRigidBodies.uc new file mode 100644 index 0000000..abb0ea3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_ToggleRigidBodies.uc @@ -0,0 +1,19 @@ +class TgAnimNotify_ToggleRigidBodies extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +enum ERigidBodyFixationChange { + RBF_Fix, // 0 + RBF_Unfix, // 1 + RBF_Toggle, // 2 +}; + +var () array BoneNames; +var () TgAnimNotify_ToggleRigidBodies.ERigidBodyFixationChange Effect; + +simulated event OnAnimNodeSequenceCeaseRelevant(AnimNodeSequence OwningNode) { } + +simulated event OnAnimNodeSequenceBecomeRelevant(AnimNodeSequence OwningNode) { } diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_ToggleSocketSpecialFX.uc b/Development/Src/TgGame/Classes/TgAnimNotify_ToggleSocketSpecialFX.uc new file mode 100644 index 0000000..920a037 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_ToggleSocketSpecialFX.uc @@ -0,0 +1,15 @@ +class TgAnimNotify_ToggleSocketSpecialFX extends AnimNotify + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () name m_DisplayGroupName; +var () int m_EquipSlot; +var () bool m_bActivateFxGroup; + +defaultproperties +{ + m_bActivateFxGroup=true +} diff --git a/Development/Src/TgGame/Classes/TgAnimNotify_ViewShake.uc b/Development/Src/TgGame/Classes/TgAnimNotify_ViewShake.uc new file mode 100644 index 0000000..4bec00f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimNotify_ViewShake.uc @@ -0,0 +1,24 @@ +class TgAnimNotify_ViewShake extends AnimNotify_ViewShake + native(Anim) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var private editconst float m_fShakeRadius; +var private editconst float m_fDuration; +var private editconst float m_fAmplitude; +var () bool m_bUseLocationRadiusBasedShake; + +simulated function Clear1pCameraAnim() { } + +event Notify(Actor Owner, AnimNodeSequence AnimSeqInstigator) { } + +defaultproperties +{ + m_fShakeRadius=4096.0000000 + m_fDuration=1.0000000 + Duration=0.0000000 + LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000) + ShakeRadius=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAnimSequenceChain.uc b/Development/Src/TgGame/Classes/TgAnimSequenceChain.uc new file mode 100644 index 0000000..ee68b47 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimSequenceChain.uc @@ -0,0 +1,21 @@ +class TgAnimSequenceChain extends TgAnimNodeBlendList + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +var () bool m_bLoopChain; +var () bool m_bResetOnRelevant; +var () bool m_bDelayBlendOutToPlayAnim; +var () bool m_bAdvanceOnReplay; +var () bool m_bAdvanceOnAnimEnd; +var bool m_bIsAllowedToBlendOut; +var bool m_ReplayedThisFrame; + +defaultproperties +{ + m_bAdvanceOnReplay=true + m_bAdvanceOnAnimEnd=true + m_bIsAllowedToBlendOut=true + DefaultBlendTime=0.2000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimTurnInPlace.uc b/Development/Src/TgGame/Classes/TgAnimTurnInPlace.uc new file mode 100644 index 0000000..25cc2eb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimTurnInPlace.uc @@ -0,0 +1,72 @@ +class TgAnimTurnInPlace extends AnimNodeBlend + native(Anim) + hidecategories(Object,Object,Object,Object) + config(Engine); + +enum ForcedTransitionAngle { + FTA_NONE, // 0 + FTA_90, // 1 + FTA_180, // 2 +}; + +struct RotTransitionInfo { + var () float RotationOffset; + var () name TransName; + structdefaultproperties {} +}; + +var const transient bool bInitialized; +var const transient bool bRootRotInitialized; +var () bool m_bDisableRotation; +var () bool bDelayBlendOutToPlayAnim; +var const bool bPlayingTurnTransition; +var (ChooseNewTransition) bool m_bCanChooseNewTransition; +var (Interpolation) bool m_bOverrideInterpolationTime; +var () bool m_bMirrorOffsetWhenPawnMirrored; +var () bool m_bAlwaysUpdateYawOffset; +var (IgnoreTransitionAnimations) bool m_bIgnoreTransitionAnimations; +var (IgnoreTransitionAnimations) bool m_bOnlyUpdateRotationWhenMoving; +var (TurnTowardsVelocity) bool m_bTurnTowardsVelocity; +var (TurnTowardsVelocity) bool m_bUsePawnRotationAtZeroVelocity; +var (TurnTowardsVelocity) bool m_bUse180ShortestRoute; +var (TurnTowardsVelocity) bool m_bConstrictIdleYawOffset; +var () bool m_bDisableAllTurning; +var bool m_bJustBecameRelevant; +var const transient int LastPawnYaw; +var const transient int LastPawnPitch; +var const transient float PawnRotationRate; +var const transient int LastRootBoneYaw; +var () const transient int YawOffset; +var () const transient int PitchOffset; +var const transient float RelativeOffset; +var const transient TgPawn m_TgPawn; +var array OffsetNodes2; +var () array RotTransitions; +var () float TransitionBlendTime; +var const int CurrentTransitionIndex; +var () float TransitionThresholdAngle; +var (ChooseNewTransition) TgAnimTurnInPlace.ForcedTransitionAngle m_ForcedTransitionAngle; +var (ChooseNewTransition) float m_fChooseNewTransitionPercent; +var (Interpolation) float m_fInterpolationTime; +var float m_RemainingInterpolationTime; +var array PlayerNodes; +var (IgnoreTransitionAnimations) float m_fIgnoredTransitionTime; +var (TurnTowardsVelocity) float m_fTurnInterpTime; +var Rotator m_InterpRotation; + +native function OverrideYawOffset(float Value); // Export UTgAnimTurnInPlace::execOverrideYawOffset(FFrame&, void* const) + +defaultproperties +{ + m_bCanChooseNewTransition=true + m_bJustBecameRelevant=true + RotTransitions[0]=(RotationOffset=16384.0000000,TransName="Rt_90") + RotTransitions[1]=(RotationOffset=32768.0000000,TransName="Rt_180") + RotTransitions[2]=(RotationOffset=-16384.0000000,TransName="Lt_90") + RotTransitions[3]=(RotationOffset=-32768.0000000,TransName="Lt_180") + TransitionBlendTime=0.1000000 + TransitionThresholdAngle=4096.0000000 + m_fChooseNewTransitionPercent=0.5000000 + m_fIgnoredTransitionTime=2.0000000 + Children=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgAnimTurnInPlace_Player.uc b/Development/Src/TgGame/Classes/TgAnimTurnInPlace_Player.uc new file mode 100644 index 0000000..e91f9d9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimTurnInPlace_Player.uc @@ -0,0 +1,21 @@ +class TgAnimTurnInPlace_Player extends AnimNodeSequence + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +struct TIP_Transition { + var name TransName; + var () name AnimName; + structdefaultproperties {} +}; + +var () array TIP_Transitions; + +defaultproperties +{ + TIP_Transitions[0]=(TransName="Rt_90",AnimName="TurnR90") + TIP_Transitions[1]=(TransName="Rt_180",AnimName="TurnR180") + TIP_Transitions[2]=(TransName="Lt_90",AnimName="TurnL90") + TIP_Transitions[3]=(TransName="Lt_180",AnimName="TurnL180") + RootRotationOption[2]=RRO_Discard +} diff --git a/Development/Src/TgGame/Classes/TgAnimTurnInPlace_Rotator.uc b/Development/Src/TgGame/Classes/TgAnimTurnInPlace_Rotator.uc new file mode 100644 index 0000000..0cf30a7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAnimTurnInPlace_Rotator.uc @@ -0,0 +1,13 @@ +class TgAnimTurnInPlace_Rotator extends AnimNodeBlendBase + native(Anim) + hidecategories(Object,Object,Object) + config(Engine); + +var const array c_TurnInPlaceNodes; +var TgPawn m_TgPawn; + +defaultproperties +{ + Children=/* Array type was not detected. */ + bFixNumChildren=true +} diff --git a/Development/Src/TgGame/Classes/TgAssaultPoint.uc b/Development/Src/TgGame/Classes/TgAssaultPoint.uc new file mode 100644 index 0000000..0514157 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAssaultPoint.uc @@ -0,0 +1,25 @@ +class TgAssaultPoint extends TgAIAnnotation + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +enum EAssaultType { + AssaultType_None, // 0 + AssaultType_Short, // 1 + AssaultType_MidShort, // 2 + AssaultType_Mid, // 3 + AssaultType_LongMid, // 4 + AssaultType_Long, // 5 +}; + +enum ELocationType { + ELocationType_CapturePoint, // 0 + ELocationType_Attack, // 1 + ELocationType_Defend, // 2 +}; + +var () TgAssaultPoint.EAssaultType AssaultPointType; +var () TgAssaultPoint.ELocationType LocationType; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgAudioComponent.uc b/Development/Src/TgGame/Classes/TgAudioComponent.uc new file mode 100644 index 0000000..475f9fc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAudioComponent.uc @@ -0,0 +1,22 @@ +class TgAudioComponent extends AudioComponent + native(FX) + editinlinenew + collapsecategories + hidecategories(Object,ActorComponent) + config(Engine); + +var bool m_bCanBeHeardDuringStealth; +var float m_fStealthFadeInTime; +var float m_fStealthFadeOutTime; +var float m_fStealthVolumeMultiplier; + +native function ApplyAdditionalPriority(); // Export UTgAudioComponent::execApplyAdditionalPriority(FFrame&, void* const) + +event OcclusionChanged(bool bNowOccluded) { } + +defaultproperties +{ + m_fStealthFadeInTime=0.2000000 + m_fStealthFadeOutTime=0.3000000 + m_fStealthVolumeMultiplier=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgAudioComponent_ModByVelocity.uc b/Development/Src/TgGame/Classes/TgAudioComponent_ModByVelocity.uc new file mode 100644 index 0000000..de7fbd0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAudioComponent_ModByVelocity.uc @@ -0,0 +1,6 @@ +class TgAudioComponent_ModByVelocity extends TgAudioComponent + native(FX) + editinlinenew + collapsecategories + hidecategories(Object,ActorComponent) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgAudioOcclusionActor.uc b/Development/Src/TgGame/Classes/TgAudioOcclusionActor.uc new file mode 100644 index 0000000..4cc3c96 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgAudioOcclusionActor.uc @@ -0,0 +1,26 @@ +class TgAudioOcclusionActor extends Actor + native(Navigation) + notplaceable + hidecategories(Navigation) + implements(Interface_NavigationHandle) + config(Engine); + +var Class m_NavigationHandleClass; +var NavigationHandle m_NavigationHandle; +var Vector NavMeshPath_SearchExtent_Modifier; +var transient float m_fCurrentMaxPathLength; + +event PostBeginPlay() { } + +native function float CalcOcclusionAmount(Actor SourceActor); // Export UTgAudioOcclusionActor::execCalcOcclusionAmount(FFrame&, void* const) + +event NotifyPathChanged() { } + +defaultproperties +{ + m_NavigationHandleClass=Class'TgHavokNavigationHandleAudio' + bHidden=true + bTickIsDisabled=true + bHardAttach=true + bUpdateHavokPos=true +} diff --git a/Development/Src/TgGame/Classes/TgBattleCheatManager.uc b/Development/Src/TgGame/Classes/TgBattleCheatManager.uc old mode 100755 new mode 100644 index 2906efc..8c99d47 --- a/Development/Src/TgGame/Classes/TgBattleCheatManager.uc +++ b/Development/Src/TgGame/Classes/TgBattleCheatManager.uc @@ -1,47 +1,424 @@ -class TgBattleCheatManager extends PComCheatManager within TgPlayerController - native - config(Game); - -// Export UTgBattleCheatManager::execSwitchClass(FFrame&, void* const) -native exec function SwitchClass(string godName, optional string skinName, optional string weaponSkinName, optional string headName); - -exec function TestShowInventory() {} - -exec function EDBN(string sDeviceName, int nEquipPointId, optional int FireMode = 1){} - -exec function EquipDeviceByName(string sDeviceName, int nEquipPointId, optional int FireMode = 1){} - -exec function EquipDevice(int nDeviceId, int nEquipPointId, optional int FireMode = 0){} - -exec function ServerExec(string FSCommand){} - -exec function SetMountSkin(int nSkinId){} - -exec function AllowMount(optional bool bEnabled = true){} - -exec function SetRespawnIncrease(float fIncrease) -{ - -} - -exec function SetDefenseRespawn(float fDuration) -{ - -} - -exec function SetAttackRespawn(float fDuration) -{ - -} - -exec function SetRespawnCap(float fDuration) -{ - -} - -exec function TestStunEffect(float fDuration) {} - -function EquipDeviceOnPawn(TgPawn TgP, int nDeviceId, int nEquipPointId, optional int FireMode = 0){} - -simulated exec function SpectatorCamera(optional bool bOn = true){} -exec function ToggleSpectatorCamera(){} \ No newline at end of file +class TgBattleCheatManager extends PComCheatManager within TgPlayerController + native + config(Game) + dependson(TgObject); + +var TgDemoRecSpectator_Debug m_DebugCameraController; +var array m_DebugPlayerStarts; + +native exec function SwitchClass(string godName, optional string skinName, optional string weaponSkinName, optional string headName); // Export UTgBattleCheatManager::execSwitchClass(FFrame&, void* const) + +native exec function SwitchWard(optional string wardSkinName); // Export UTgBattleCheatManager::execSwitchWard(FFrame&, void* const) + +native exec function PurchaseGod(string godName); // Export UTgBattleCheatManager::execPurchaseGod(FFrame&, void* const) + +native exec function JoinMatchQueue(int nQueueId, optional int god1, optional int god2, optional int god3, optional int god4, optional int god5); // Export UTgBattleCheatManager::execJoinMatchQueue(FFrame&, void* const) + +native exec function ListTickableActors(Object.ETickingGroup checkgroup); // Export UTgBattleCheatManager::execListTickableActors(FFrame&, void* const) + +native exec function TestPanningRule(optional string sPanningRule="Headphone"); // Export UTgBattleCheatManager::execTestPanningRule(FFrame&, void* const) + +native exec function TestLanguage(string newLangExt); // Export UTgBattleCheatManager::execTestLanguage(FFrame&, void* const) + +native function NativeMaxLevel(); // Export UTgBattleCheatManager::execNativeMaxLevel(FFrame&, void* const) + +native function TgPawn SpawnBotByName(string botName, int Taskforce, int nCount, int BotDifficulty, string BehaviorTreeName, int nHeadId); // Export UTgBattleCheatManager::execSpawnBotByName(FFrame&, void* const) + +native function SpawnBotAllSkins(int nBatch); // Export UTgBattleCheatManager::execSpawnBotAllSkins(FFrame&, void* const) + +native exec function ToggleLoadFailureOutput(); // Export UTgBattleCheatManager::execToggleLoadFailureOutput(FFrame&, void* const) + +native exec function SpawnDeployable(int dep_id); // Export UTgBattleCheatManager::execSpawnDeployable(FFrame&, void* const) + +native exec function FillEnergy(); // Export UTgBattleCheatManager::execFillEnergy(FFrame&, void* const) + +native function SetAILevel(TgAIController_BehaviorGod aic, int nLevel); // Export UTgBattleCheatManager::execSetAILevel(FFrame&, void* const) + +exec function separator() { } + +exec function sc(string godName, optional string skinName, optional string weaponSkinName, optional string headName) { } + +exec function echo(string inputString) { } + +exec function Loc() { } + +exec function ServerExec(string FSCommand) { } + +exec function SpawnTestBot(string sName, optional string sDeviceName, optional int nFireMode=0, optional int nTaskForce=2, optional int nCount=1) { } + +exec function SpawnEmoteTestBot(string sName, optional int nTaskForce=2, optional int nCount=1) { } + +exec function stb(string sName, optional string sDeviceName, optional int nFireMode=0, optional int nTaskForce=2, optional int nCount=1) { } + +exec function _SpawnBot(string sName, optional int nTaskForce=2, optional int nCount=1) { } + +exec function SpawnBot(string sName, optional int nTaskForce=2, optional int nCount=1, optional int BotDifficulty=1, optional string BehaviorTreeName, optional int nHeadId) { } + +exec function TestSkinGallery(optional int nGallery=0) { } + +exec function MaxLevel() { } + +exec function ML() { } + +exec function SimNWCondition(int nPktLoss, int nPktLag) { } + +function CheatLog(string cheatText, bool bOn) { } + +simulated exec function God() { } + +simulated exec function energy() { } + +simulated exec function Cooldown() { } + +simulated exec function ForceToggleMount() { } + +exec function MaxPower() { } + +exec function HookMeUp() { } + +exec function GiveRecommendedItems() { } + +exec function SetGroundspeed(float val) { } + +exec function SetStealth(bool bOn) { } + +exec function ShowMoveErrors() { } + +exec function DebugProjectileLagCompensationServer() { } + +exec function DebugProjectileLagCompensationClient() { } + +exec function _SpawnTemplatePlayer(int nProfileId, optional int nSkinId=0, optional int nWeaponSkinId=0, optional int nHeadSkinId=0) { } + +exec function KillAllMinions() { } + +function KillAllPawnsHelper(Class PawnClass) { } + +exec function KillAllPawnsByClass(string PawnClassName) { } + +simulated exec function ToggleDeviceLog(optional TgObject.TG_EQUIP_POINT eqp=0) { } + +simulated exec function ToggleCustomPhysics() { } + +exec function ToggleAIDebug(optional bool bAttachAIDebugger=false) { } + +exec function TestObstacleAvoidance(optional int TestType) { } + +exec function RequestRelease() { } + +exec function botsgod(optional bool bOn=true) { } + +exec function FreezeAI(optional bool bOn=true) { } + +exec function botslevel(int nLevel) { } + +simulated exec function SpectatorCamera(optional bool bOn=true) { } + +exec function ApplyProp(int nPropId, float nValue, optional int nCategory=0) { } + +exec function BeTheBoss() { } + +exec event ShowFootstepInfo() { } + +exec function ToggleAimAssist() { } + +exec function SetAimAssistTargetWeightVars(float CurrentTargetBonus, float NotCurrentTargetPenalty, float MinAccuracyBonus, float MaxAccuracyBonus, float MinInaccuracyPenalty, float MaxInaccuracyPenalty, float MaxWeight) { } + +exec function ResetAimAssistValues() { } + +exec function SetAimAssistValues(float MagnetScaleX, float MagnetScaleY, float FrictionScaleX, float FrictionScaleY, float TrackingScaleX, float TrackingScaleY) { } + +exec function SetAimVectorAssistValues(float BoundsScaleX, float BoundsScaleY, float MaxAngleX, float MaxAngleY) { } + +exec function AddAimAssistKeyframe(string keyframeType, string KeyframeName, float Distance) { } + +exec function ResetAimAssistKeyframes(string keyframeType) { } + +exec function RefillAmmo() { } + +exec function SetMaxAmmo(int MaxAmmo) { } + +exec function ChangeTaskForce(byte nTaskForce) { } + +exec function ct(byte nTaskForce) { } + +exec function ToggleTaskForce() { } + +function RemoveDeviceFromPawnAt(TgPawn TgP, int nEquipPointId) { } + +function EquipDeviceOnPawn(TgPawn TgP, int nDeviceId, int nEquipPointId, optional int FireMode=0) { } + +exec function TargetEquipDevice(int nDeviceId, int nEquipPointId, optional int FireMode=0) { } + +exec function TED(int nDeviceId, int nEquipPointId, optional int FireMode=0) { } + +exec function TargetEquipDeviceByName(string sDeviceName, int nEquipPointId, optional int FireMode=1) { } + +exec function TEDBN(string sDeviceName, int nEquipPointId, optional int FireMode=1) { } + +exec function EquipDeviceByName(string sDeviceName, int nEquipPointId, optional int FireMode=1) { } + +exec function EDBN(string sDeviceName, int nEquipPointId, optional int FireMode=1) { } + +exec function EquipDevice(int nDeviceId, int nEquipPointId, optional int FireMode=0) { } + +exec function ED(int nDeviceId, int nEquipPointId, optional int FireMode=0) { } + +exec function UnequipDevice(int nDeviceId) { } + +exec function UD(int nDeviceId) { } + +exec function RemoveDevice(int nDeviceId) { } + +exec function UnequipDeviceAt(int nEquipPointId) { } + +exec function RemoveDeviceAt(int nDeviceId) { } + +exec function RemoveAllCards() { } + +exec function RemoveAllItems() { } + +exec function AddGold(int nCurrency) { } + +exec function Obama(int nCurrency) { } + +exec function SetMeLevel(int nLevel) { } + +exec function SL(int nLevel) { } + +exec function QuickEndGame(bool bWin) { } + +exec function QEG(optional bool bWin=true) { } + +exec function SetEnergy(float Value) { } + +exec function TestShowInventory() { } + +exec function TestStunEffect(float fDuration) { } + +exec function TestStun(Controller.EStunType Type) { } + +exec function ShowPlayerCircles(bool bEnabled) { } + +exec function ToggleSpectatorCamera() { } + +exec function InvisMe(bool bInvis) { } + +exec function capturePoint() { } + +exec function EnemyCapturePoint() { } + +exec function ToggleCapturePointOvertime() { } + +exec function PickPoint(optional int Index=-1) { } + +exec function SetSiegeSpeed(float fSpeed) { } + +exec function SetRespawnIncrease(float fIncrease) { } + +exec function SetDefenseRespawn(float fDuration) { } + +exec function SetAttackRespawn(float fDuration) { } + +exec function SetRespawnCap(float fDuration) { } + +exec function SetCardCooldownIncrease(float fIncrease) { } + +exec function ForceRespawnAll() { } + +exec function SetHealth(int Health) { } + +exec function SetMana(int mana) { } + +exec function DamageHealth(optional int DamageAmount) { } + +exec function Heal(optional int HealAmount) { } + +exec function DamageTarget(optional int DamageAmount=-1) { } + +exec function HealTarget(optional int HealAmount=-1) { } + +exec function ShieldTarget(optional int Amount=1000) { } + +exec function StopHP5() { } + +exec function SkipSetup() { } + +exec function ShowProjectileDebug(bool bEnabled) { } + +exec function DisableProximity(bool bEnabled) { } + +exec function GiveCard(int nDeviceId) { } + +exec function ForceLanePusher() { } + +exec function EnableScoring() { } + +exec function DisableScoring() { } + +exec function SetScore(optional int tf1Score=0, optional int tf2Score=0) { } + +exec function EndGame() { } + +exec function HelpMe() { } + +exec function QuickSiege() { } + +exec function ReinforceDoors(optional int healthAmt=20000000) { } + +exec function ReinforceSiege(optional int healthAmt=20000000) { } + +exec function SetGameEnvironmentRule(TgObject.EGameEnvironmentRule Rule) { } + +exec function SetGameRespawnRule(TgObject.EGameRespawnRule Rule) { } + +exec function SetGameMode(TgObject.EGameMode Mode) { } + +exec function SetAirFriction(float frictionAmt) { } + +exec function SetFallingFriction(float frictionAmt) { } + +exec function SetFlyingFriction(float frictionAmt) { } + +exec function TestSpawnPoints(optional float PauseTime=3.0000000) { } + +exec function SetInstantFireMeshTrace(bool bEnabled) { } + +exec function ToggleWeaponLagPrediction() { } + +exec function SetMaximumLagPrediction(float NewMaximum) { } + +exec function DumpWeaponPredictionStats() { } + +exec function DumpLastServerAims() { } + +exec function DumpLastClientAims() { } + +exec function SetDamageMultiplier(float NewMult) { } + +exec function SetGroundSpeedMultiplier(float NewMult) { } + +exec function SetAutoHealingMultiplier(float NewMult) { } + +exec function ToggleSiegeEngineRequiresAllies() { } + +exec function SetVaultImmuneHealth(float fHealth) { } + +exec function SetVisibilityRanges(optional float fNormal=-1.0000000, optional float fInVolume=-1.0000000) { } + +exec function ForceRoundSetupEnd() { } + +exec function FRSE() { } + +exec function LevelAim() { } + +exec function Set1p(optional bool bForce1P=true) { } + +exec function Set3p(optional bool bForce3P=true) { } + +exec function Toggle3p() { } + +exec function GainXP(int xpAmount) { } + +exec function GainCredits(int creditsAmount) { } + +exec function GainTickets(int ticketsAmount) { } + +exec function EndRound(optional int nTaskForce=0) { } + +exec function OpenSpawnGates() { } + +exec function CloseSpawnGates() { } + +exec function SetCAPOvertime(float overtimeDuration, optional float overtimeWarning=-1.0000000) { } + +exec function PayloadForever() { } + +exec function SetAIAccuracy(float DegreeMissed, float MissLikelihood) { } + +exec function EnableThreat(bool bEnabled) { } + +exec function EnableOcclusion(bool bEnabled) { } + +exec function DisplayThreatParams() { } + +exec function ShowThreats(bool bEnabled, optional string ChannelName) { } + +exec function AllNoah(optional string ChannelName) { } + +exec function AllowHeadShots(optional bool bEnable=true) { } + +exec function LiveRespawn(optional bool bResetHealth=true, optional bool bResetDevices=true) { } + +exec function SetBodyMesh(int nBodyMeshID) { } + +exec function SBM(int nBodyMeshID) { } + +exec function SetBodyMeshByName() { } + +exec function SBMBN() { } + +exec function SetHeadMesh(int nHeadMeshID) { } + +exec function SHM(int nHeadMeshID) { } + +exec function SetHeadMeshByName() { } + +exec function SHBN() { } + +exec function RemoveHeadMesh() { } + +exec function rhm() { } + +exec function decapitate() { } + +exec function EnableHeadMesh(bool bEnabled) { } + +exec function ToggleHeadMesh() { } + +exec function TargetSetMeshes(int nBodyMeshID, optional int nHeadMeshID=0) { } + +exec function TSM(int nBodyMeshID, optional int nHeadMeshID=0) { } + +exec function TargetSetBodyMesh(int nBodyMeshID) { } + +exec function TSBM(int nBodyMeshID) { } + +exec function TargetSetHeadMesh(int nHeadMeshID) { } + +exec function TSHM(int nHeadMeshID) { } + +exec function AllowMount(optional bool bEnabled=true) { } + +exec function PlayPotG() { } + +exec function PlayPotGForAll() { } + +exec function ResetPotG() { } + +exec function LockPotG(bool bLocked) { } + +exec function EnableAI(bool bEnabled) { } + +exec function KillProjectiles() { } + +exec function ToggleAIDifficultyAdjust() { } + +exec function EnableGhostMounting(bool bEnabled) { } + +exec function StopFog() { } + +exec function ResumeFog() { } + +exec function SetFogDistance(int Distance) { } + +exec function PlayIntroAnim() { } + +exec function SetMountSkin(int nSkinId) { } + +exec function toggleDiminishingReturns() { } + +defaultproperties +{ + DebugCameraControllerClassName="TgGame.TgDebugCameraController" +} diff --git a/Development/Src/TgGame/Classes/TgBeamHelper.uc b/Development/Src/TgGame/Classes/TgBeamHelper.uc new file mode 100644 index 0000000..59596ea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBeamHelper.uc @@ -0,0 +1,52 @@ +class TgBeamHelper extends TgObject + native(BeamHelper) + config(Engine); + +var int m_nSpecialFxId; +var TgSpecialFx m_pSpecialFx; +var export editinline array m_pPSCList; +var bool m_bVisibilityEnabled; +var bool m_bCurrentlyVisible; +var bool m_bRequiresTarget; +var bool m_bTangentsEnabled; +var Vector m_vInitialTangent; +var Actor m_pOwner; +var Actor m_pTarget; +var export editinline MeshComponent m_pAttachMesh; +var name m_nmAttachMeshSocket; + +native function TgBeamHelper Create(int nSpecialFxId); // Export UTgBeamHelper::execCreate(FFrame&, void* const) + +native function TgBeamHelper CreateFromFx(TgSpecialFx pSpecialFx); // Export UTgBeamHelper::execCreateFromFx(FFrame&, void* const) + +native function Initialize(int nSpecialFxId); // Export UTgBeamHelper::execInitialize(FFrame&, void* const) + +native function InitializeFromFx(TgSpecialFx pSpecialFx); // Export UTgBeamHelper::execInitializeFromFx(FFrame&, void* const) + +native function SetEndPoint(Vector vEndPoint); // Export UTgBeamHelper::execSetEndPoint(FFrame&, void* const) + +native function SetTangents(Vector vSourceTangent, Vector vTargetTangent); // Export UTgBeamHelper::execSetTangents(FFrame&, void* const) + +native function SetTangentsMulti(array vSourceTangents, array vTargetTangents); // Export UTgBeamHelper::execSetTangentsMulti(FFrame&, void* const) + +native function Tick(float fDeltaSeconds); // Export UTgBeamHelper::execTick(FFrame&, void* const) + +native function AttachToOwner(Actor pOwner); // Export UTgBeamHelper::execAttachToOwner(FFrame&, void* const) + +native function AttachToMesh(MeshComponent pMesh, name nmSocket); // Export UTgBeamHelper::execAttachToMesh(FFrame&, void* const) + +native function AttachToTarget(Actor pTarget); // Export UTgBeamHelper::execAttachToTarget(FFrame&, void* const) + +native function Activate(); // Export UTgBeamHelper::execActivate(FFrame&, void* const) + +native function Deactivate(bool bForceDeactivate); // Export UTgBeamHelper::execDeactivate(FFrame&, void* const) + +native function SetVisible(bool bVisible); // Export UTgBeamHelper::execSetVisible(FFrame&, void* const) + +native function EnableTangents(); // Export UTgBeamHelper::execEnableTangents(FFrame&, void* const) + +defaultproperties +{ + m_bCurrentlyVisible=true + m_vInitialTangent=(X=30.0000000,Y=0.0000000,Z=0.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgBeamHelper_TheLaw.uc b/Development/Src/TgGame/Classes/TgBeamHelper_TheLaw.uc new file mode 100644 index 0000000..d0b4ffd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBeamHelper_TheLaw.uc @@ -0,0 +1,8 @@ +class TgBeamHelper_TheLaw extends TgBeamHelper + native(ChampLex) + config(Engine); + +defaultproperties +{ + m_vInitialTangent=(X=100.0000000,Y=0.0000000,Z=0.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgBlockingVolume.uc b/Development/Src/TgGame/Classes/TgBlockingVolume.uc new file mode 100644 index 0000000..4dbd393 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBlockingVolume.uc @@ -0,0 +1,7 @@ +class TgBlockingVolume extends BlockingVolume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBossBlockDynamicVolume.uc b/Development/Src/TgGame/Classes/TgBossBlockDynamicVolume.uc new file mode 100644 index 0000000..ece553f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBossBlockDynamicVolume.uc @@ -0,0 +1,7 @@ +class TgBossBlockDynamicVolume extends DynamicBlockingVolume + native(Volumes) + hidecategories(Navigation,Object,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBossBlockVolume.uc b/Development/Src/TgGame/Classes/TgBossBlockVolume.uc new file mode 100644 index 0000000..0674679 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBossBlockVolume.uc @@ -0,0 +1,7 @@ +class TgBossBlockVolume extends BlockingVolume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotEncounterVolume.uc b/Development/Src/TgGame/Classes/TgBotEncounterVolume.uc new file mode 100644 index 0000000..0f13ce9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotEncounterVolume.uc @@ -0,0 +1,14 @@ +class TgBotEncounterVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var (BotFactory) const array m_Factories; +var int m_nPlayers; + +simulated function PostBeginPlay() { } + +function CheckTouching() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotFactory.uc b/Development/Src/TgGame/Classes/TgBotFactory.uc old mode 100755 new mode 100644 index a659a98..278ec8d --- a/Development/Src/TgGame/Classes/TgBotFactory.uc +++ b/Development/Src/TgGame/Classes/TgBotFactory.uc @@ -1,4 +1,127 @@ -class TgBotFactory extends TgActorFactory - native(Factory) - placeable - hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement); +class TgBotFactory extends TgActorFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement) + config(Engine); + +const BOT_ENCOUNTER_DESPAWN_TIME = 60; + +enum eBotSelection { + BS_RANDOM, // 0 + BS_SEQUENTIAL, // 1 +}; + +struct SpawnQueueEntry { + var float fSpawnTime; + var int nBotId; + var int nSkinId; + var int nWeaponSkinId; + var int nSpawnTableDetailId; + var name BehaviorTreeOverride; + structdefaultproperties {} +}; + +var () TgBotFactory.eBotSelection LocationSelection; +var (BotFactory) const array LocationList; +var int s_nCurLocationIndex; +var (BotFactory) NavigationPoint SafetyLocation; +var (BotFactory) bool ShouldTraceSpawnLocationToFloor; +var (BotFactory) bool bUseSmiteStaggerSpawning; +var (BotFactory) bool bSpawnAsSquad; +var bool bAutoSpawn; +var bool m_bFirstSpawn; +var () bool bBulkSpawn; +var () bool bRespawn; +var (Introduction) bool bStartBotsInIntroState; +var (Introduction) bool bHasDifferentInitialIntro; +var bool m_bFirstSpawnWave; +var () bool m_bIgnoreCollisionOnSpawn; +var () bool m_bUseCollisionHeightForSpawnPlacement; +var int nBotCount; +var int nCurrentCount; +var (BotFactory) int nActiveCount; +var int nTotalSpawns; +var (BotFactory) int nLane; +var (BotFactory) int nNavPointsToSkipForPathing; +var (BotFactory) float fStaggerSpawnDelay; +var transient TgAISquad s_CurrentSquad; +var Class m_SquadClass; +var () int m_nLocationId; +var () int nSpawnTableId; +var () int nDefaultSpawnTableId; +var () float fSpawnDelay; +var array m_SpawnQueue; +var TgBotEncounterVolume m_SpawnVolume; +var int m_nLastGroup; +var () float fSpawnHealthPercent; +var (Introduction) float fIntroductionDuration; +var (Introduction) float fInitialIntroductionDuration; +var (LanePusher) TgSplineActor m_StartingSpline; +var () export editinline StaticMeshComponent m_RespawnIndicator; +var transient MaterialInstanceConstant m_RespawnIndicatorMIC; +var Texture2D m_TextureNormal; +var float fLastKillTime; +var () float fRespawnDelay; + +native function LoadObjectConfig(); // Export UTgBotFactory::execLoadObjectConfig(FFrame&, void* const) + +native function ResetQueue(); // Export UTgBotFactory::execResetQueue(FFrame&, void* const) + +native function BuildQueue(); // Export UTgBotFactory::execBuildQueue(FFrame&, void* const) + +native function ClearQueue(); // Export UTgBotFactory::execClearQueue(FFrame&, void* const) + +native function Actor SpawnBot(); // Export UTgBotFactory::execSpawnBot(FFrame&, void* const) + +native function Actor SpawnNextBot(); // Export UTgBotFactory::execSpawnNextBot(FFrame&, void* const) + +native function Actor SpawnBotId(int nBotId, int nSkinId); // Export UTgBotFactory::execSpawnBotId(FFrame&, void* const) + +native function Actor SpawnBotAdjusted(SpawnQueueEntry Entry); // Export UTgBotFactory::execSpawnBotAdjusted(FFrame&, void* const) + +native function CalcFactoryPlacement(Vector Extent, bool bCenterOnGround, out Vector OutLocation, out Rotator OutRotation); // Export UTgBotFactory::execCalcFactoryPlacement(FFrame&, void* const) + +native function Actor UseSpawnTable(); // Export UTgBotFactory::execUseSpawnTable(FFrame&, void* const) + +native function BotDied(TgPawn Pawn, TgAIController aic); // Export UTgBotFactory::execBotDied(FFrame&, void* const) + +native function SquadDied(TgAISquad squad); // Export UTgBotFactory::execSquadDied(FFrame&, void* const) + +native function KillCurrentSquad(); // Export UTgBotFactory::execKillCurrentSquad(FFrame&, void* const) + +native function int GetRemainingTotalSpawns(); // Export UTgBotFactory::execGetRemainingTotalSpawns(FFrame&, void* const) + +native function float GetStaggerSpawnTime(); // Export UTgBotFactory::execGetStaggerSpawnTime(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function OnToggle(SeqAct_Toggle Action) { } + +function OnKillBots(TgSeqAct_KillBots inAction) { } + +function OnDespawnBots(TgSeqAct_DespawnBots inAction) { } + +event EndEncounter() { } + +event ContinueEncounter() { } + +event StartEncounter(TgBotEncounterVolume Volume) { } + +function Despawn() { } + +event KillBots(bool bDespawn) { } + +simulated function OnTriggerBots(TgSeqAct_TriggerBots Action) { } + +simulated function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +function OnGetBot(TgSeqAct_GetBot inAction) { } + +function OnBotDamaged(TgPawn Bot, Controller DamageInstigator, Class DamageType, int DamageAmount) { } + +simulated function UpdateRespawnTimeIndicator(float fPct) { } + +function OnKillCurrentSquad(TgSeqAct_KillCurrentSquad killSquadAction) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotFactoryComponent.uc b/Development/Src/TgGame/Classes/TgBotFactoryComponent.uc new file mode 100644 index 0000000..ebf8a69 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotFactoryComponent.uc @@ -0,0 +1,13 @@ +class TgBotFactoryComponent extends PrimitiveComponent + native(Factory) + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ReplacementPrimitive=none + HiddenGame=true + AlwaysLoadOnClient=false + AlwaysLoadOnServer=false +} diff --git a/Development/Src/TgGame/Classes/TgBotFactorySpawnable.uc b/Development/Src/TgGame/Classes/TgBotFactorySpawnable.uc new file mode 100644 index 0000000..07ca4a8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotFactorySpawnable.uc @@ -0,0 +1,8 @@ +class TgBotFactorySpawnable extends TgBotFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotFactory_BonusTrigger.uc b/Development/Src/TgGame/Classes/TgBotFactory_BonusTrigger.uc new file mode 100644 index 0000000..c910aed --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotFactory_BonusTrigger.uc @@ -0,0 +1,8 @@ +class TgBotFactory_BonusTrigger extends TgBotFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotFactory_Leashed.uc b/Development/Src/TgGame/Classes/TgBotFactory_Leashed.uc new file mode 100644 index 0000000..ef85b2f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotFactory_Leashed.uc @@ -0,0 +1,14 @@ +class TgBotFactory_Leashed extends TgBotFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement) + config(Engine); + +var (Leashing) Vector LeashLocation; +var (Leashing) float LeashRange; +var (Leashing) Volume LeashVolume; + +native function Actor SpawnBotAdjusted(SpawnQueueEntry Entry); // Export UTgBotFactory_Leashed::execSpawnBotAdjusted(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotFactory_Minions.uc b/Development/Src/TgGame/Classes/TgBotFactory_Minions.uc new file mode 100644 index 0000000..5611203 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotFactory_Minions.uc @@ -0,0 +1,34 @@ +class TgBotFactory_Minions extends TgBotFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement) + config(Engine); + +enum MinionFactoryType { + MFT_Conquest, // 0 + MFT_Joust, // 1 + MFT_Assault, // 2 + MFT_Mayan, // 3 + MFT_Other, // 4 +}; + +var () TgBotFactory_Minions.MinionFactoryType m_eFactoryType; +var transient bool m_OverrideShouldSpawnSuperMinions; +var transient int m_nWaveNumber; +var transient int m_nLastBonusWave; +var transient int m_nLanePushersInQueue; +var transient float m_fLastBonusActivationTime; +var transient float m_fSuperMinionEndTime; + +native function SetSuperMinionsActive(float fSeconds); // Export UTgBotFactory_Minions::execSetSuperMinionsActive(FFrame&, void* const) + +native function bool ShouldSpawnSuperMinions(); // Export UTgBotFactory_Minions::execShouldSpawnSuperMinions(FFrame&, void* const) + +native function bool ShouldSpawnBonusMinions(); // Export UTgBotFactory_Minions::execShouldSpawnBonusMinions(FFrame&, void* const) + +native function BuildQueue(); // Export UTgBotFactory_Minions::execBuildQueue(FFrame&, void* const) + +native function BotDied(TgPawn Pawn, TgAIController aic); // Export UTgBotFactory_Minions::execBotDied(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotFactory_PointCapture.uc b/Development/Src/TgGame/Classes/TgBotFactory_PointCapture.uc new file mode 100644 index 0000000..a70b954 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotFactory_PointCapture.uc @@ -0,0 +1,12 @@ +class TgBotFactory_PointCapture extends TgBotFactory_Leashed + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display,Movement) + config(Engine); + +var transient TgCapturePoint m_CapturePoint; + +native function BotDied(TgPawn Pawn, TgAIController aic); // Export UTgBotFactory_PointCapture::execBotDied(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgBotStart.uc b/Development/Src/TgGame/Classes/TgBotStart.uc new file mode 100644 index 0000000..e593881 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgBotStart.uc @@ -0,0 +1,6 @@ +class TgBotStart extends TgNavigationPoint + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCTFFlagBase.uc b/Development/Src/TgGame/Classes/TgCTFFlagBase.uc new file mode 100644 index 0000000..1029a82 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCTFFlagBase.uc @@ -0,0 +1,21 @@ +class TgCTFFlagBase extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +var () const int m_nDefenderTaskForce; +var transient TgCarriedFlag m_SpawnedFlag; +var transient TgGame_CTF m_CTFGame; + +simulated event PostBeginPlay() { } + +function CheckTouching() { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +function SpawnFlag() { } + +function DestroyFlag() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCTFVolume.uc b/Development/Src/TgGame/Classes/TgCTFVolume.uc new file mode 100644 index 0000000..d7d3f26 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCTFVolume.uc @@ -0,0 +1,16 @@ +class TgCTFVolume extends PhysicsVolume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int m_nDefenderTeamIndex; + +function TimerPop(VolumeTimer T) { } + +function bool IsValidToucher(TgPawn_Character TgP) { } + +function int SortByTimestamp(TgPawn A, TgPawn B) { } + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCallbackContainer.uc b/Development/Src/TgGame/Classes/TgCallbackContainer.uc new file mode 100644 index 0000000..deb2015 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCallbackContainer.uc @@ -0,0 +1,14 @@ +class TgCallbackContainer extends Object + native(TgCallbacks) + config(Engine); + +struct FunctionWrapperInfo { + var Pointer FunctionWrapper; + var byte CallbackType; + var TgCallbackContainer HandleOwner; + structdefaultproperties {} +}; + +var private native const MultiMap_Mirror m_RegisteredCallbacks; +var private native const Map_Mirror m_RegisteredCallbacksByHandle; +var private native const Map_Mirror m_CallbackHandles; diff --git a/Development/Src/TgGame/Classes/TgCallbackInterface.uc b/Development/Src/TgGame/Classes/TgCallbackInterface.uc new file mode 100644 index 0000000..8c124fa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCallbackInterface.uc @@ -0,0 +1 @@ +interface TgCallbackInterface extends Interface; diff --git a/Development/Src/TgGame/Classes/TgCameraModifier_LobbyCameraTransition.uc b/Development/Src/TgGame/Classes/TgCameraModifier_LobbyCameraTransition.uc new file mode 100644 index 0000000..b01239e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModifier_LobbyCameraTransition.uc @@ -0,0 +1,34 @@ +class TgCameraModifier_LobbyCameraTransition extends CameraModifier + native(View) + config(Engine); + +enum CameraTransType { + CTT_None, // 0 + CTT_PanRight, // 1 + CTT_PanLeft, // 2 + CTT_PanUp, // 3 + CTT_PanDown, // 4 +}; + +var TgLobbyCamera SourceCamera; +var TgLobbyCamera DestinationCamera; +var TgCameraModifier_LobbyCameraTransition.CameraTransType TransitionType; +var float fSlideDistance; + +native function bool ModifyCamera(Camera Camera, float DeltaTime, out TPOV OutPOV); // Export UTgCameraModifier_LobbyCameraTransition::execModifyCamera(FFrame&, void* const) + +event AddCameraModifierAsEvent(Camera Cam) { } + +event RemoveCameraModifierAsEvent(Camera Cam) { } + +event DisableModifier(optional bool bImmediate) { } + +function bool RemoveCameraModifier(Camera Camera) { } + +defaultproperties +{ + TransitionType=CTT_PanRight + fSlideDistance=150.0000000 + AlphaInTime=0.2500000 + AlphaOutTime=0.1800000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraModifier_LobbyFade.uc b/Development/Src/TgGame/Classes/TgCameraModifier_LobbyFade.uc new file mode 100644 index 0000000..c5c6559 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModifier_LobbyFade.uc @@ -0,0 +1,11 @@ +class TgCameraModifier_LobbyFade extends CameraModifier + native(View) + config(Engine); + +native function bool ModifyCamera(Camera Camera, float DeltaTime, out TPOV OutPOV); // Export UTgCameraModifier_LobbyFade::execModifyCamera(FFrame&, void* const) + +defaultproperties +{ + AlphaInTime=0.3000000 + AlphaOutTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule.uc b/Development/Src/TgGame/Classes/TgCameraModule.uc new file mode 100644 index 0000000..9af1173 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule.uc @@ -0,0 +1,24 @@ +class TgCameraModule extends Object + abstract + native(View) + config(Engine); + +var transient TgPlayerCamera PlayerCamera; + +function Init() { } + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnBecomeInActive(TgCameraModule NewCamera) { } + +function OnTweenOutEnd() { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function ProcessInput(PlayerInput PlayerInput, float DeltaTime) { } + +simulated function BecomeViewTarget(TgPlayerController PC) { } + +function zoomIn() { } + +function ZoomOut() { } diff --git a/Development/Src/TgGame/Classes/TgCameraModule_Attached.uc b/Development/Src/TgGame/Classes/TgCameraModule_Attached.uc new file mode 100644 index 0000000..019c313 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_Attached.uc @@ -0,0 +1,8 @@ +class TgCameraModule_Attached extends TgCameraModule + config(Engine); + +function Vector GetAttachLocation(Pawn ViewTarget) { } + +function Rotator GetAttachRotation(Pawn ViewTarget) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } diff --git a/Development/Src/TgGame/Classes/TgCameraModule_Cinematic.uc b/Development/Src/TgGame/Classes/TgCameraModule_Cinematic.uc new file mode 100644 index 0000000..10d898c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_Cinematic.uc @@ -0,0 +1,2 @@ +class TgCameraModule_Cinematic extends TgCameraModule + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgCameraModule_Dead.uc b/Development/Src/TgGame/Classes/TgCameraModule_Dead.uc new file mode 100644 index 0000000..40ad726 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_Dead.uc @@ -0,0 +1,4 @@ +class TgCameraModule_Dead extends TgCameraModule_Free + config(Engine); + +function Vector GetCamLocationOffset(Pawn P) { } diff --git a/Development/Src/TgGame/Classes/TgCameraModule_FallOutOfWorld.uc b/Development/Src/TgGame/Classes/TgCameraModule_FallOutOfWorld.uc new file mode 100644 index 0000000..40596be --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_FallOutOfWorld.uc @@ -0,0 +1,6 @@ +class TgCameraModule_FallOutOfWorld extends TgCameraModule_Free + config(Engine); + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function Vector GetCamLocationOffset(Pawn P) { } diff --git a/Development/Src/TgGame/Classes/TgCameraModule_Free.uc b/Development/Src/TgGame/Classes/TgCameraModule_Free.uc new file mode 100644 index 0000000..9568277 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_Free.uc @@ -0,0 +1,30 @@ +class TgCameraModule_Free extends TgCameraModule + native(View) + config(Engine); + +var float CamAltitude; +var float DesiredCamAltitude; +var float MaxCamAltitude; +var float MinCamAltitude; +var float CamZoomIncrement; + +function ProcessInput(PlayerInput PlayerInput, float DeltaTime) { } + +function Vector GetCamLocationOffset(Pawn P) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +simulated function BecomeViewTarget(TgPlayerController PC) { } + +function zoomIn() { } + +function ZoomOut() { } + +defaultproperties +{ + CamAltitude=150.0000000 + DesiredCamAltitude=150.0000000 + MaxCamAltitude=150.0000000 + MinCamAltitude=150.0000000 + CamZoomIncrement=96.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_FrontFacingCamera.uc b/Development/Src/TgGame/Classes/TgCameraModule_FrontFacingCamera.uc new file mode 100644 index 0000000..719a4b2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_FrontFacingCamera.uc @@ -0,0 +1,21 @@ +class TgCameraModule_FrontFacingCamera extends TgCameraModule_ThirdPerson + config(Engine); + +var () Rotator m_rWorldRotationOffset; +var () float m_fFOV; + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnBecomeInActive(TgCameraModule NewCamera) { } + +function Rotator GetWorldRotation(TgPlayerCamera CameraActor) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +defaultproperties +{ + m_rWorldRotationOffset=(Pitch=0,Yaw=30947,Roll=0) + m_fFOV=60.0000000 + CameraOffset=(X=-142.0000000,Y=30.0000000,Z=-35.0000000) + bForce3PView=true +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_GroundTarget.uc b/Development/Src/TgGame/Classes/TgCameraModule_GroundTarget.uc new file mode 100644 index 0000000..e674db1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_GroundTarget.uc @@ -0,0 +1,16 @@ +class TgCameraModule_GroundTarget extends TgCameraModule_Free + native(View) + config(Engine); + +function Vector GetCamLocationOffset(Pawn P) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function zoomIn() { } + +function ZoomOut() { } + +defaultproperties +{ + DesiredCamAltitude=1440.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_Server.uc b/Development/Src/TgGame/Classes/TgCameraModule_Server.uc new file mode 100644 index 0000000..f28ab69 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_Server.uc @@ -0,0 +1,3 @@ +class TgCameraModule_Server extends TgCameraModule + native(View) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgCameraModule_Spectator.uc b/Development/Src/TgGame/Classes/TgCameraModule_Spectator.uc new file mode 100644 index 0000000..109546b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_Spectator.uc @@ -0,0 +1,34 @@ +class TgCameraModule_Spectator extends TgCameraModule + native(View) + config(Engine); + +var () int WorldViewPitch; +var transient TPOV OldViewpoint; +var transient float RemainingBlendTime; +var transient float TotalBlendTime; +var const bool bCollideWorld; + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function float GetFOVAngle() { } + +function zoomIn() { } + +function ZoomOut() { } + +function IncreaseCameraSpeeed() { } + +function DecreaseCameraSpeed() { } + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnBecomeInActive(TgCameraModule NewCamera) { } + +function BlendCameraToLocation(Vector NewLocation, float BlendTime, bool bUseFocalPoint) { } + +defaultproperties +{ + WorldViewPitch=-6000 + OldViewpoint=(Location=(X=0.0000000,Y=0.0000000,Z=0.0000000),Rotation=(Pitch=0,Yaw=0,Roll=0),FOV=90.0000000,HUDOffset=(X=0.0000000,Y=0.0000000)) + bCollideWorld=true +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_SpectatorFirstPerson.uc b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorFirstPerson.uc new file mode 100644 index 0000000..1b8f8f5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorFirstPerson.uc @@ -0,0 +1,2 @@ +class TgCameraModule_SpectatorFirstPerson extends TgCameraModule_SpectatorThirdPerson + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgCameraModule_SpectatorLockedView.uc b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorLockedView.uc new file mode 100644 index 0000000..083cd09 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorLockedView.uc @@ -0,0 +1,27 @@ +class TgCameraModule_SpectatorLockedView extends TgCameraModule_Spectator + config(Engine); + +var () Rotator WorldViewRotation; +var () bool bAutoRotate; +var float FOV; +var float ZoomIncrement; +var int CurrentWorldViewTargetIndex; + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnBecomeInActive(TgCameraModule NewCamera) { } + +function BlendCameraToLocation(Vector NewLocation, float BlendTime, bool bUseFocalPoint) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function zoomIn() { } + +function ZoomOut() { } + +simulated function RotateView() { } + +defaultproperties +{ + ZoomIncrement=96.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_SpectatorOverview.uc b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorOverview.uc new file mode 100644 index 0000000..8b111ec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorOverview.uc @@ -0,0 +1,91 @@ +class TgCameraModule_SpectatorOverview extends TgCameraModule_Spectator + native(View) + config(Game); + +struct CameraPitchInfo { + var float ZHeight; + var float Pitch; + structdefaultproperties {} +}; + +var () Rotator WorldViewRotation; +var () config float FOV; +var float TargetZoomedFOV; +var () config float ZoomIncrement; +var () config float MinZoom; +var () config float MaxZoom; +var () config float ZoomInterpTime; +var Vector CurrentSpringLocation; +var () config float PawnTargetSpringDamping; +var () config float FreeCamSpringDamping; +var () config float IgnoreSpringDistance; +var () array CameraPitchData; +var () bool bFlippedSides; +var bool bJustBecameActive; +var () config bool bAutoZoomEnabled; +var () float OverviewCameraInfluenceDist; +var array OverviewCameras; +var array TransparentTowerList; +var () Vector ObstacleTransparentExtent; +var () config float fMinAutoZoomFOVAngle; +var () config float fMaxAutoZoomFOVAngle; +var () config float fMinAutoZoomDistance; +var () config float fMaxAutoZoomDistance; +var () config float fAutoZoomDetectionRadius; +var () config float fAutoZoomInSpeed; +var () config float fAutoZoomOutSpeed; +var () config float fAutoZoomInLockOutTime; +var () config float fAutoZoomOutLockOutTime; +var transient float m_RemainingAutoZoomInLockOutTime; +var transient float m_RemainingAutoZoomOutLockOutTime; + +native function Rotator GetWorldViewRotation(); // Export UTgCameraModule_SpectatorOverview::execGetWorldViewRotation(FFrame&, void* const) + +native function bool UpdateAutoZoom(float DeltaTime); // Export UTgCameraModule_SpectatorOverview::execUpdateAutoZoom(FFrame&, void* const) + +native function CheckObstacleTransparency(); // Export UTgCameraModule_SpectatorOverview::execCheckObstacleTransparency(FFrame&, void* const) + +native function ClearObstacleTransparency(); // Export UTgCameraModule_SpectatorOverview::execClearObstacleTransparency(FFrame&, void* const) + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnBecomeInActive(TgCameraModule NewCamera) { } + +function BlendCameraToLocation(Vector NewLocation, float BlendTime, bool bUseFocalPoint) { } + +function OverridePawnTargetLocation(TgPawn TgP, out Vector TargetLocation) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function zoomIn() { } + +function ZoomOut() { } + +function float GetFOVAngle() { } + +function FlipSides() { } + +defaultproperties +{ + WorldViewRotation=(Pitch=-6000,Yaw=0,Roll=0) + FOV=55.0000000 + ZoomIncrement=25.0000000 + MinZoom=30.0000000 + MaxZoom=70.0000000 + ZoomInterpTime=3.0000000 + PawnTargetSpringDamping=1.7000000 + IgnoreSpringDistance=3000.0000000 + CameraPitchData[0]=(ZHeight=780.0000000,Pitch=-5500.0000000) + CameraPitchData[1]=(ZHeight=2100.0000000,Pitch=-11000.0000000) + bAutoZoomEnabled=true + OverviewCameraInfluenceDist=1000000.0000000 + ObstacleTransparentExtent=(X=200.0000000,Y=200.0000000,Z=200.0000000) + fMinAutoZoomFOVAngle=35.0000000 + fMaxAutoZoomFOVAngle=50.0000000 + fMaxAutoZoomDistance=900.0000000 + fAutoZoomDetectionRadius=1400.0000000 + fAutoZoomInSpeed=5.0000000 + fAutoZoomOutSpeed=15.0000000 + fAutoZoomInLockOutTime=2.0000000 + fAutoZoomOutLockOutTime=2.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_SpectatorThirdPerson.uc b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorThirdPerson.uc new file mode 100644 index 0000000..a8255bc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_SpectatorThirdPerson.uc @@ -0,0 +1,15 @@ +class TgCameraModule_SpectatorThirdPerson extends TgCameraModule_ThirdPerson + config(Engine); + +var transient TPOV OldViewpoint; +var transient float RemainingBlendTime; +var transient float TotalBlendTime; + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function BlendToTarget(float BlendTime) { } + +defaultproperties +{ + OldViewpoint=(Location=(X=0.0000000,Y=0.0000000,Z=0.0000000),Rotation=(Pitch=0,Yaw=0,Roll=0),FOV=90.0000000,HUDOffset=(X=0.0000000,Y=0.0000000)) +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_ThirdPerson.uc b/Development/Src/TgGame/Classes/TgCameraModule_ThirdPerson.uc new file mode 100644 index 0000000..b2e5e77 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_ThirdPerson.uc @@ -0,0 +1,78 @@ +class TgCameraModule_ThirdPerson extends TgCameraModule + native(View) + config(Engine); + +struct ServerCorrectionSmoothingParams { + var float fServerCorrectSnapDist; + var float fMinBaseSpeed; + var float fMaxBaseSpeed; + var float fBaseSpeedMultiplier; + var float fNewInfoWeight; + var float fMinCorrectionModifier; + var float fMaxCorrectionModifier; + var float fCorrectionModifierMultiplier; + structdefaultproperties {} +}; + +var Vector CameraOffset; +var float fZoomFactorInterp; +var float fZoomFactor; +var float fZoomStep; +var float fZoomMax; +var float fMountZoomMax; +var float fZoomMin; +var Vector2D fZoom3pPercentFromTo; +var float fZoomDuration; +var float fZoomDurationOverride; +var transient float fZoomUsedTime; +var Vector vCachedCameraAttachPoint; +var float f3pViewPaddingRemainingTime; +var float f3pViewPaddingTime; +var bool bForce3PView; +var Vector vServerCorrectionDelta; +var Vector vAvgServerCorrectionDelta; +var Vector vLastDesiredLocation; +var ServerCorrectionSmoothingParams CorrectionSmoothing; + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnTweenOutEnd() { } + +function Vector GetCamLocationOffset(Rotator PawnRot, Actor ViewTarget) { } + +function Vector GetCamAttachPoint(Actor ViewTarget) { } + +function Rotator GetWorldRotation(TgPlayerCamera CameraActor) { } + +function float GetCurrent3pPercent() { } + +function float GetZoomDuration() { } + +function UpdateCameraZoom(TgPawn TgP, float DeltaTime) { } + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +simulated function Vector SmoothServerCorrection(TgPawn TgP, Vector DesiredLocation, float DeltaTime) { } + +simulated function UpdateServerCorrectionFromMovement(Vector DesiredLocation) { } + +simulated function UpdateAverageServerCorrection(float DeltaTime) { } + +simulated function BecomeViewTarget(TgPlayerController PC) { } + +function zoomIn() { } + +function ZoomOut() { } + +defaultproperties +{ + CameraOffset=(X=-142.0000000,Y=0.0000000,Z=25.0000000) + fZoomFactor=1.0000000 + fZoomStep=0.1000000 + fZoomMax=1.0000000 + fMountZoomMax=1.0000000 + fZoomMin=0.7500000 + fZoomDuration=0.2000000 + f3pViewPaddingTime=0.0100000 + CorrectionSmoothing=(fServerCorrectSnapDist=640.0000000,fMinBaseSpeed=16.0000000,fMaxBaseSpeed=320.0000000,fBaseSpeedMultiplier=0.0008000,fNewInfoWeight=1.0000000,fMinCorrectionModifier=0.5000000,fMaxCorrectionModifier=12.0000000,fCorrectionModifierMultiplier=0.0050000) +} diff --git a/Development/Src/TgGame/Classes/TgCameraModule_ThirdPersonVariableHeight.uc b/Development/Src/TgGame/Classes/TgCameraModule_ThirdPersonVariableHeight.uc new file mode 100644 index 0000000..94900c5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_ThirdPersonVariableHeight.uc @@ -0,0 +1,12 @@ +class TgCameraModule_ThirdPersonVariableHeight extends TgCameraModule_ThirdPerson + config(Engine); + +var () float ZOffset; + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function Vector GetCamLocationOffset(Rotator PawnRot, Actor ViewTarget) { } + +function zoomIn() { } + +function ZoomOut() { } diff --git a/Development/Src/TgGame/Classes/TgCameraModule_TopDown.uc b/Development/Src/TgGame/Classes/TgCameraModule_TopDown.uc new file mode 100644 index 0000000..3973658 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraModule_TopDown.uc @@ -0,0 +1,18 @@ +class TgCameraModule_TopDown extends TgCameraModule_Spectator + config(Engine); + +var Rotator WorldViewRotation; + +function UpdateCamera(Pawn P, TgPlayerCamera CameraActor, float DeltaTime, out TViewTarget OutVT) { } + +function OnBecomeActive(TgCameraModule OldCamera) { } + +function OnBecomeInActive(TgCameraModule NewCamera) { } + +function BlendToTarget(float BlendTime) { } + +defaultproperties +{ + WorldViewPitch=-12000 + bCollideWorld=false +} diff --git a/Development/Src/TgGame/Classes/TgCameraShake.uc b/Development/Src/TgGame/Classes/TgCameraShake.uc old mode 100755 new mode 100644 index 7e9ae5d..b5cf827 --- a/Development/Src/TgGame/Classes/TgCameraShake.uc +++ b/Development/Src/TgGame/Classes/TgCameraShake.uc @@ -1,17 +1,18 @@ -class TgCameraShake extends CameraShake - native(View) - editinlinenew; - -var() float m_fShakeScale; -var() bool m_bDoControllerVibration; -var() bool m_bRadialShake; -var() bool m_bOrientTowardRadialEpicenter; -var() float m_fRadialShake_InnerRadius; -var() float m_fRadialShake_OuterRadius; -var() float m_fRadialShake_Falloff; -var() Camera.ECameraAnimPlaySpace m_PlaySpace; - -defaultproperties -{ - m_fShakeScale=1.0000000 -} \ No newline at end of file +class TgCameraShake extends CameraShake + native(View) + editinlinenew + config(Engine); + +var () float m_fShakeScale; +var () bool m_bDoControllerVibration; +var () bool m_bRadialShake; +var () bool m_bOrientTowardRadialEpicenter; +var () float m_fRadialShake_InnerRadius; +var () float m_fRadialShake_OuterRadius; +var () float m_fRadialShake_Falloff; +var () Camera.ECameraAnimPlaySpace m_PlaySpace; + +defaultproperties +{ + m_fShakeScale=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgCameraVolume.uc b/Development/Src/TgGame/Classes/TgCameraVolume.uc new file mode 100644 index 0000000..7b55d64 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCameraVolume.uc @@ -0,0 +1,9 @@ +class TgCameraVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () CameraActor AssociatedCamera; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCapturePoint.uc b/Development/Src/TgGame/Classes/TgCapturePoint.uc new file mode 100644 index 0000000..daaac05 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCapturePoint.uc @@ -0,0 +1,75 @@ +class TgCapturePoint extends Actor + native(Game) + placeable + hidecategories(Navigation) + config(Engine); + +var TgCollisionProxy_Cylinder s_CollisionProxy; +var TgRepInfo_CapturePoint r_RepInfo; +var () const float m_fCollisionProxyRadius; +var () const float m_fCollisionProxyHeight; +var const float m_fBaseTransitionSpeed; +var const float m_fTransitionSpeedBuff; +var transient float m_fCurrentTransitionSpeed; +var transient TgSeqEvent_ControlPointOwnershipChange c_OwnershipChangedKismetNode; +var () TgBotFactory_PointCapture s_BotSpawners[2]; +var transient TgBotFactory_PointCapture m_CurrentBotSpawners[2]; +var () TgBotFactory_PointCapture s_NeutralBotSpawner; +var () const int m_CapturePointIndex; +var () const float s_fReplenishBotTime; +var private transient float s_fRemainingReplenishBotTime; +var float s_fFriendlyReplenishBuffPct; +var float m_fRegenUpdateTimer; +var const float m_fOwnedManaRegen; +var const float m_fOwnedHealthRegen; +var transient TgGame_Mission s_GameInfo; +var transient int m_nTF1Count; +var transient int m_nTF2Count; +var transient float m_fLastEnemyKillVoxTimestamp; +var () int m_nLaneNumber; +var () export editinline SpriteComponent m_WorldIconSprite; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_RepInfo; +} + +native function AlertPointChanged(); // Export UTgCapturePoint::execAlertPointChanged(FFrame&, void* const) + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +function SpawnNeutralBot() { } + +simulated event PreBeginPlay() { } + +simulated event PostBeginPlay() { } + +simulated event CollisionProxyOnTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event CollisionProxyOnUnTouch(Actor Other) { } + +function NearbyPawnsUpdated() { } + +event OnPointCaptureOwnershipChanged(int NewTaskForceOwner, int PreviousTaskForceOwner) { } + +event OnPointReclaimed() { } + +event OnBotDied(int DeadBotTaskForce) { } + +event SpawnBotsForCurrentTaskForce() { } + +simulated function int GetCapturePointIndex() { } + +simulated function OnTaskForceControlChanged(int NewTaskForce) { } + +simulated event Destroyed() { } + +function OnNearbyEnemyPlayerDied(TgPawn DeadPawn) { } + +simulated function OnToggle(SeqAct_Toggle Action) { } + +simulated function UpdateLockEffects() { } + +simulated function OnGetTaskForceNumber(TgSeqAct_GetTaskForceNumber Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCarriedFlag.uc b/Development/Src/TgGame/Classes/TgCarriedFlag.uc new file mode 100644 index 0000000..0f20b26 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCarriedFlag.uc @@ -0,0 +1,53 @@ +class TgCarriedFlag extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +var transient int r_nDefenderTaskForce; +var transient TgCTFFlagBase s_FlagBase; +var repnotify transient bool r_bIsHome; +var transient TgPawn_Character m_Holder; +var repnotify transient TgRepInfo_Player r_HolderPRI; +var transient TgPawn_Character m_OldHolder; +var Controller m_FirstTouch; +var array m_Assists; +var float m_fMaxDropTime; +var transient float m_fDefaultRadius; +var transient float m_fDefaultHeight; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_HolderPRI, r_bIsHome, r_nDefenderTaskForce; +} + +function PostBeginPlay() { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +function CheckTouching() { } + +function bool ValidHolder(Actor Other) { } + +function SetHolder(Controller C) { } + +function ClearHolder() { } + +function SendHome() { } + +function Score() { } + +function AutoSendHome() { } + +function CheckFit() { } + +event Drop(optional Controller Killer, optional bool bNoThrow) { } + +function ClearOldHolder() { } + +auto state Home {} + +state Held {} + +state Dropped {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgChaosCapturePoint.uc b/Development/Src/TgGame/Classes/TgChaosCapturePoint.uc old mode 100755 new mode 100644 index 558c038..aba2fe2 --- a/Development/Src/TgGame/Classes/TgChaosCapturePoint.uc +++ b/Development/Src/TgGame/Classes/TgChaosCapturePoint.uc @@ -1,4 +1,95 @@ -class TgChaosCapturePoint extends TgObjective - native(Game) - placeable - hidecategories(Navigation); \ No newline at end of file +class TgChaosCapturePoint extends TgObjective + native(Game) + placeable + hidecategories(Navigation) + config(Engine); + +const TG_UNCONTESTED = 0; + +const TG_TEAM1_CAPTURING = 1; + +const TG_TEAM2_CAPTURING = 2; + +const TG_CONTESTED = 3; + +const TG_CAPTUREPOINT_FOGHORN_FX_ID = 6694; + +var () int m_nDisplayNameId; +var () int r_nUniqueCapturePointId; +var () int m_nLaneNumber; +var () int m_nTaskForce; +var () array m_Taskforce1Factories; +var () array m_Taskforce2Factories; +var () TgBotFactory_Minions m_GuardianFactory; +var () TgSplineActor m_Taskforce1PathStart; +var () TgSplineActor m_Taskforce2PathStart; +var () array m_PlayerBaseSpawnPoints; +var () array m_PlayerRespawnPoints; +var transient TgAnimNodeSlot m_CustomAnimNode; +var int c_MICStatus; +var bool c_bConfusedRendering; +var repnotify bool r_bFogActive; +var (Survival) const bool m_bForceSurvival; +var bool m_bAnnouncedDeathFog; +var bool m_bContested; +var bool m_bContestedThisTick; +var transient float m_fLastEnemyCapturingPointMessageTime; +var float m_fMinEnemyCapturingPointMessageTime; +var TgHelpTipActor m_HelpTip; +var float r_fCapturedPct; +var int c_DominationOuterMIC; +var int c_DominationInnerMIC; +var (capturePoint) array CapturePointMeshActors; +var (capturePoint) array m_Volumes; +var (capturePoint) int m_nCapturePriority; +var (capturePoint) Vector m_vIndicatorOffset; +var (Survival) const Class m_TgSurvivalFogVolumeDensityInfoClass; +var TgSurvivalFogVolumeDensityInfo m_ConvergeFog; +var repnotify int r_nFogAboutToBeActive; +var (Survival) float m_fFogFadeInTotalTime; +var int m_nNumTF1OnPoint; +var int m_nNumTF2OnPoint; +var float m_fTF1TouchedPointTimer; +var float m_fTF2TouchedPointTimer; +var array m_TouchingChampions; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bFogActive, r_fCapturedPct, r_nFogAboutToBeActive, r_nUniqueCapturePointId; +} + +native function PlayEnemyCapturingEmote(TgRepInfo_TaskForce Taskforce); // Export UTgChaosCapturePoint::execPlayEnemyCapturingEmote(FFrame&, void* const) + +native function AnnounceFogOfDeath(); // Export UTgChaosCapturePoint::execAnnounceFogOfDeath(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event PreBeginPlay() { } + +simulated event PostBeginPlay() { } + +simulated event Tick(float DeltaTime) { } + +simulated event OnSetStatus() { } + +simulated function UpdateFogStatus() { } + +simulated function PlayFogHorn() { } + +simulated function ShowPathfinder(bool bEnabled) { } + +simulated function SpawnHelpTip() { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event UnTouch(Actor Other) { } + +function UpdateOccupationStatus() { } + +simulated event int GetControllingPlayerCount() { } + +simulated function SetFogActive(bool bEnabled) { } + +simulated event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgChaosCapturePoint_ParticleStorm.uc b/Development/Src/TgGame/Classes/TgChaosCapturePoint_ParticleStorm.uc new file mode 100644 index 0000000..eaa0ada --- /dev/null +++ b/Development/Src/TgGame/Classes/TgChaosCapturePoint_ParticleStorm.uc @@ -0,0 +1,33 @@ +class TgChaosCapturePoint_ParticleStorm extends TgChaosCapturePoint + native(Game) + placeable + hidecategories(Navigation) + config(Engine); + +var (ParticleStorm) Emitter m_FrontEffect; +var (ParticleStorm) Emitter m_SwirlEffect; +var (Survival) float m_fFogStartDistance; +var (Survival) float m_fFogConvergeSpeed; +var (Survival) float m_fSecondsBeforeFogConverge; +var (Survival) float m_fFogMapDistance; +var (Survival) float m_fFogRadiusRatio; +var (Survival) float m_fFogAlphaRatio; +var (SurvivalAudio) AkAmbientSound m_2DSoundActor; +var (SurvivalAudio) int m_nNumMobileSoundActors; +var array m_MobileSoundActors; +var (SurvivalAudio) AkEvent m_MobileSoundActorAkEvent; +var (SurvivalAudio) AkEvent m_MobileSoundActorAkEvent_Alt; +var array m_vPerimeterAnchors; +var float m_fTargetStartDistance; +var float m_fPreviousStartDistance; +var float m_fFogUpdateTimestamp; +var float m_fSoundActorConvergeLimit; + +simulated event SetInitialState() { } + +simulated event Tick(float DeltaTime) { } + +function ResetFog() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCharacterBuilderLight.uc b/Development/Src/TgGame/Classes/TgCharacterBuilderLight.uc new file mode 100644 index 0000000..62cc2dd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCharacterBuilderLight.uc @@ -0,0 +1,7 @@ +class TgCharacterBuilderLight extends SpotLightToggleable + native + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCharacterPerformance.uc b/Development/Src/TgGame/Classes/TgCharacterPerformance.uc new file mode 100644 index 0000000..dfb2a75 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCharacterPerformance.uc @@ -0,0 +1,43 @@ +class TgCharacterPerformance extends TgGame + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +struct DeviceToCharacterID { + var int CharacterID; + var int DeviceID; + structdefaultproperties {} +}; + +var transient PComPerformanceCaptureBase BasePerformanceCapture; +var PComPerformanceCaptureBase.EPComPerformanceCaptureState CurrentCaptureState; +var string CharacterInput; +var string SkinInput; +var int CurrentCharacterIndex; +var int CurrentSkinIndex; +var transient array CharacterPlacements; +var transient array CharactersToTest; +var array AllSkinIDs; +var array DeviceToCharacterIDPairs; +var array StatsPerSkin; +var array CharacterPawns; +var TgManifestGroup ManifestGroup; + +event PostBeginPlay() { } + +native function CollectCharacterPlacementsAndSkins(); // Export UTgCharacterPerformance::execCollectCharacterPlacementsAndSkins(FFrame&, void* const) + +native function CollectAllSkins(); // Export UTgCharacterPerformance::execCollectAllSkins(FFrame&, void* const) + +native function MoveCameraToNode(); // Export UTgCharacterPerformance::execMoveCameraToNode(FFrame&, void* const) + +native function SpawnCharacters(); // Export UTgCharacterPerformance::execSpawnCharacters(FFrame&, void* const) + +native function TgPawn SpawnBotByIdForPerformance(int nBotId, int nSkinId, int nHeadId, int nWeaponSkinId, Vector vLocation, Rotator rRotation); // Export UTgCharacterPerformance::execSpawnBotByIdForPerformance(FFrame&, void* const) + +native function DoNextAction(); // Export UTgCharacterPerformance::execDoNextAction(FFrame&, void* const) + +native function PrintAllSkins(); // Export UTgCharacterPerformance::execPrintAllSkins(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgClientSettings.uc b/Development/Src/TgGame/Classes/TgClientSettings.uc new file mode 100644 index 0000000..9270b61 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgClientSettings.uc @@ -0,0 +1,263 @@ +class TgClientSettings extends Object + native + config(Game) + dependson(TgObject); + +enum ECastMode { + CM_Default, // 0 + CM_Quick, // 1 + CM_Instant, // 2 + CM_Use_Global, // 3 +}; + +enum EMapPlacement { + MPLC_Bottom, // 0 + MPLC_Top, // 1 +}; + +enum EFriendStateNotifications { + FSN_Never, // 0 + FSN_Lobby_Only, // 1 + FSN_InGame_Only, // 2 + FSN_Always, // 3 +}; + +enum ENamePlateName { + NPN_PlayerName, // 0 + NPN_GodName, // 1 + NPN_None, // 2 +}; + +enum EColorBlindOption { + CB_None, // 0 + CB_Protanope, // 1 + CB_Deuteranope, // 2 + CB_Tritanope, // 3 +}; + +enum EAspectRatio { + SETTINGAR_16x9, // 0 + SETTINGAR_16x10, // 1 +}; + +enum EControlIconStyle { + ECIS_XboxOne, // 0 + ECIS_PS4, // 1 +}; + +var () globalconfig float MinimapScaling; +var () globalconfig float UIScaling; +var () globalconfig float HUDScaling; +var () globalconfig float CombatTextScaling; +var () globalconfig float ChatScaling; +var () globalconfig float ChatFadeout; +var () globalconfig TgClientSettings.ENamePlateName OverlayGodName; +var () globalconfig TgClientSettings.EFriendStateNotifications ShowFriendStateNotifications; +var () globalconfig TgObject.ETargetingLineStyle TargetingLineStyle; +var () globalconfig TgObject.ETargetingPreviewStyle TargetingPreviewStyle; +var () globalconfig TgObject.ETargetingReticleStyle TargetingReticleStyle; +var () globalconfig TgObject.ETargetingHighlightStyle TargetingHighlightStyle; +var () globalconfig TgClientSettings.ECastMode CastMode; +var () globalconfig TgClientSettings.EMapPlacement MapPlacement; +var () globalconfig TgClientSettings.EControlIconStyle ControlIconStyle; +var () globalconfig TgClientSettings.EColorBlindOption SelectedColorBlindOption; +var () globalconfig TgClientSettings.EAspectRatio DesiredAspectRatio; +var () globalconfig bool OverlayShowLocalPlayer; +var () globalconfig bool DisableHelpMessages; +var () globalconfig bool ShowInHandTargeting; +var () globalconfig bool DisableTargetingAid; +var () globalconfig bool VerticalTargetingPreviews; +var () globalconfig bool DisableProfanityFilter; +var () globalconfig bool ShowTeamTags; +var () globalconfig bool SpectateDamage; +var () globalconfig bool SpectateHeals; +var () globalconfig bool SpectateCrits; +var () globalconfig bool SpectateGold; +var () globalconfig bool SpectateXP; +var () globalconfig bool SpectateOutlines; +var () globalconfig bool ShowRentNotification; +var () globalconfig bool ShowHUDScore; +var () globalconfig bool ShowHUDEnemy; +var () globalconfig bool ShowHUDStats; +var () globalconfig bool ShowHUDItems; +var () globalconfig bool ShowWardPings; +var () globalconfig bool LoadAssistModeSubLevel; +var () globalconfig bool bTargetingAlwaysShowPreview; +var () globalconfig bool bUseCastQueueing; +var () globalconfig bool bUseFixedPitchMode; +var () globalconfig bool NewUserPromptTutorialMatch; +var () globalconfig bool NewUserFinished; +var () globalconfig bool VendorStoreTopTier; +var () globalconfig bool bEnableHelpPopups; +var () globalconfig bool ColorBlindMode; +var () globalconfig bool ColorBlindModeShader; +var () globalconfig bool ColorBlindModeShaderSimulateMode; +var () globalconfig bool MasterMute; +var () globalconfig bool SFXMute; +var () globalconfig bool MusicMute; +var () globalconfig bool VoiceMute; +var () globalconfig bool MatchNotifierMute; +var () globalconfig bool AllPlayerMute; +var () globalconfig bool bEnableVoiceChat; +var () globalconfig bool bUsePushToTalkForVoiceChat; +var () globalconfig bool QueueWaitRegion; +var () globalconfig bool QueueWaitSolo; +var () globalconfig bool AutoPurchase; +var () globalconfig bool AutoSkill; +var () globalconfig bool bToggleZoom; +var () globalconfig bool DisableJoystickInput; +var () globalconfig bool EnableControllerFeedback; +var () globalconfig bool bEnableHudTeams; +var () globalconfig bool bEnableHudCombat; +var () globalconfig bool bEnableHudHealth; +var () globalconfig bool bEnableHudTeamUI; +var () globalconfig bool bEnableHudMinimap; +var () globalconfig bool bReticleBloom; +var () globalconfig bool bChangeReticleOverEnemy; +var () globalconfig bool bEnableSpecatorPlayerIcons; +var () globalconfig bool bShowSpectatorItems; +var () globalconfig bool bPublicParty; +var globalconfig bool bShownVaultTutorial; +var globalconfig bool bEnableSpectate; +var bool blockNonFriendChat; +var bool newUserFinishedTutorial; +var () globalconfig int TeamTagFormat; +var () globalconfig float FogOfWarDimness; +var () globalconfig float MinimapOpacity; +var () globalconfig int DemoBotId; +var () globalconfig float CastQueueTime; +var () globalconfig float FixedPitchLowerBoundDegrees; +var () globalconfig float FixedPitchUpperBoundDegrees; +var () globalconfig int PlayNowTabId; +var () globalconfig int VendorStoreTabId; +var () globalconfig int VendorStoreTypeId; +var () globalconfig int VendorStoreTypeRecId; +var () globalconfig int LeagueSelection; +var () globalconfig int VPSelection; +var () globalconfig int ColorBlindModeShaderType; +var () globalconfig float MasterVolume; +var () globalconfig float SFXVolume; +var () globalconfig float MusicVolume; +var () globalconfig float VoiceVolume; +var () globalconfig float MatchNotifierVolume; +var () globalconfig float VoiceChatVolume; +var () globalconfig float VoiceChatMicVolume; +var () globalconfig int nAudioPanning; +var () globalconfig float DesiredFOV; +var () globalconfig float fGamma; +var () globalconfig int nEnableHudDamage; +var () globalconfig int nReticleColor; +var () globalconfig int nReticleType; +var () globalconfig int nSpectatorBlueTeamSeriesScore; +var () globalconfig int nSpectatorRedTeamSeriesScore; +var () globalconfig int TwitchServer; +var () globalconfig int TwitchBitrate; +var () globalconfig int TwitchFramerate; +var () globalconfig int TwitchMicVolume; +var () globalconfig int TwitchGameVolume; +var () globalconfig int TwitchResolution; +var () globalconfig int TwitchMicMute; +var () globalconfig int TwitchGameMute; +var () globalconfig int TwitchSaveUsername; +var () globalconfig string TwitchTitle; +var () globalconfig string TwitchUsername; +var globalconfig string DemoVideo; +var globalconfig array DemoResults; +var globalconfig int CustomGameQueueIndex; +var int loadingPortraitBanner; +var init array newUserWatchedVideos; +var int ChosenSkinId; +var int ChosenHeadId; +var int ChosenClassId; +var int ChosenWeaponId; +var int ChosenWeaponSkinId; +var int ChosenPedestalId; + +native function LoadSettingsOnStartup(); // Export UTgClientSettings::execLoadSettingsOnStartup(FFrame&, void* const) + +native function OnSettingsChanged(optional int settingtype, optional bool bSkipSave); // Export UTgClientSettings::execOnSettingsChanged(FFrame&, void* const) + +native function ApplyAudioSettings(); // Export UTgClientSettings::execApplyAudioSettings(FFrame&, void* const) + +native function ApplyJoystickSettings(); // Export UTgClientSettings::execApplyJoystickSettings(FFrame&, void* const) + +native function ApplySpectatorSettings(); // Export UTgClientSettings::execApplySpectatorSettings(FFrame&, void* const) + +native function VerifySettingsAreValid(); // Export UTgClientSettings::execVerifySettingsAreValid(FFrame&, void* const) + +native function LoadPlayerSettings(); // Export UTgClientSettings::execLoadPlayerSettings(FFrame&, void* const) + +native function LoadPlayerSettingsFromIni(); // Export UTgClientSettings::execLoadPlayerSettingsFromIni(FFrame&, void* const) + +native function SavePlayerSettings(); // Export UTgClientSettings::execSavePlayerSettings(FFrame&, void* const) + +native function float GetDesiredAspectRatio(); // Export UTgClientSettings::execGetDesiredAspectRatio(FFrame&, void* const) + +function OnReadSaveGameData(bool bWasSuccessful, byte LocalUserNum, string SaveFileName) { } + +event bool ConditionalReadSaveGameData(int PlayerID, string SaveFileName) { } + +event bool GetSaveGameDataViaInterface(byte LocalUserNum, const out string SaveFileName, out byte bIsValid, out array SaveGameData) { } + +event bool WriteSaveGameDataViaInterface(byte LocalUserNum, const out string SaveFileName, const out array SaveGameData, string Title, string SubTitle, string Description) { } + +native function OverrideVoiceInGameSettings(bool bOverride); // Export UTgClientSettings::execOverrideVoiceInGameSettings(FFrame&, void* const) + +native function TgClientSettings.ECastMode GetCastMode(optional int nCharId, optional TgObject.TG_EQUIP_POINT EquipPoint=0); // Export UTgClientSettings::execGetCastMode(FFrame&, void* const) + +native function SetCastMode(TgClientSettings.ECastMode castModeVal, optional int nCharId, optional TgObject.TG_EQUIP_POINT EquipPoint=0); // Export UTgClientSettings::execSetCastMode(FFrame&, void* const) + +event bool UpdatePlayerMuteSetting(bool PlayerMuteSetting) { } + +defaultproperties +{ + MinimapScaling=1.0000000 + UIScaling=1.0000000 + HUDScaling=1.0000000 + CombatTextScaling=1.2000000 + ChatScaling=1.0000000 + ChatFadeout=2.0000000 + ShowFriendStateNotifications=FSN_Always + ShowInHandTargeting=true + VerticalTargetingPreviews=true + ShowTeamTags=true + ShowRentNotification=true + ShowHUDScore=true + ShowHUDEnemy=true + ShowHUDStats=true + ShowHUDItems=true + ShowWardPings=true + bTargetingAlwaysShowPreview=true + NewUserPromptTutorialMatch=true + VendorStoreTopTier=true + bEnableHelpPopups=true + bEnableVoiceChat=true + bUsePushToTalkForVoiceChat=true + AutoPurchase=true + AutoSkill=true + EnableControllerFeedback=true + bEnableHudHealth=true + bEnableHudTeamUI=true + bEnableHudMinimap=true + bReticleBloom=true + bEnableSpecatorPlayerIcons=true + bShowSpectatorItems=true + bEnableSpectate=true + FogOfWarDimness=0.4000000 + MinimapOpacity=0.7000000 + FixedPitchLowerBoundDegrees=-45.0000000 + FixedPitchUpperBoundDegrees=-8.0000000 + PlayNowTabId=-1 + ColorBlindModeShaderType=1 + MasterVolume=1.0000000 + SFXVolume=1.0000000 + MusicVolume=1.0000000 + VoiceVolume=1.0000000 + MatchNotifierVolume=0.5000000 + VoiceChatVolume=1.0000000 + VoiceChatMicVolume=1.0000000 + DesiredFOV=100.0000000 + nEnableHudDamage=2 + nSpectatorBlueTeamSeriesScore=-1 + nSpectatorRedTeamSeriesScore=-1 +} diff --git a/Development/Src/TgGame/Classes/TgCollisionProxy.uc b/Development/Src/TgGame/Classes/TgCollisionProxy.uc new file mode 100644 index 0000000..eb0ad14 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCollisionProxy.uc @@ -0,0 +1,50 @@ +class TgCollisionProxy extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var array m_NearByPlayers; +var bool m_bIgnoreStealthPlayers; +var bool m_bIgnoreNonPlayers; +var bool m_bIgnoreInvulnerablePlayers; +var bool m_bForwardOwnerOnly; + +delegate ProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal); + +delegate ProxyUnTouch(Actor Other); + +native function ForwardTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal); // Export UTgCollisionProxy::execForwardTouch(FFrame&, void* const) + +native function ForwardUnTouch(Actor Other); // Export UTgCollisionProxy::execForwardUnTouch(FFrame&, void* const) + +native function DelegatesUpdated(); // Export UTgCollisionProxy::execDelegatesUpdated(FFrame&, void* const) + +native function TouchOther(Actor Other, PrimitiveComponent OtherComp); // Export UTgCollisionProxy::execTouchOther(FFrame&, void* const) + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +simulated event bool ShouldIgnoreActor(TgPawn aPawn) { } + +simulated event ForceClearNearByPlayersList() { } + +simulated function Destroyed() { } + +simulated function CheckNearByPlayers(TgPawn aPawn, bool bAdd) { } + +simulated function OnPlayerAdded(TgPawn aPawn) { } + +simulated function OnPlayerRemoved(TgPawn aPawn) { } + +simulated function int GetNearByPlayers(optional bool bOnlyValid=true) { } + +simulated function GetNearByPlayersTaskforce(out array NearByPlayerTaskforces, optional bool bEndWhenMultipleFound) { } + +simulated function ForceProximityScan(optional float Radius) { } + +native function SetAux(name AuxBusName, float Level); // Export UTgCollisionProxy::execSetAux(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCollisionProxy_Cylinder.uc b/Development/Src/TgGame/Classes/TgCollisionProxy_Cylinder.uc new file mode 100644 index 0000000..abfe918 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCollisionProxy_Cylinder.uc @@ -0,0 +1,10 @@ +class TgCollisionProxy_Cylinder extends TgCollisionProxy + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var export editinline CylinderComponent m_CollisionCylinder; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCollisionProxy_Mesh.uc b/Development/Src/TgGame/Classes/TgCollisionProxy_Mesh.uc new file mode 100644 index 0000000..c0295ab --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCollisionProxy_Mesh.uc @@ -0,0 +1,14 @@ +class TgCollisionProxy_Mesh extends TgCollisionProxy + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var export editinline MeshComponent m_MeshComponent; + +native function SpawnMesh(int AssemblyID); // Export UTgCollisionProxy_Mesh::execSpawnMesh(FFrame&, void* const) + +native function ScaleCollisionMesh(Vector NewScale); // Export UTgCollisionProxy_Mesh::execScaleCollisionMesh(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCollisionProxy_SpectatorActionListener.uc b/Development/Src/TgGame/Classes/TgCollisionProxy_SpectatorActionListener.uc new file mode 100644 index 0000000..d83ab73 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCollisionProxy_SpectatorActionListener.uc @@ -0,0 +1,17 @@ +class TgCollisionProxy_SpectatorActionListener extends TgCollisionProxy_Cylinder + transient + native + notplaceable + hidecategories(Navigation) + config(Engine); + +delegate ProxyDeviceOnStartFire(TgPawn FiringPawn, int nEquipSlot); + +native function ForwardDeviceOnStartFire(TgPawn FiringPawn, int nEquipSlot); // Export UTgCollisionProxy_SpectatorActionListener::execForwardDeviceOnStartFire(FFrame&, void* const) + +native function bool HasMixedTaskforcePlayersNearby(); // Export UTgCollisionProxy_SpectatorActionListener::execHasMixedTaskforcePlayersNearby(FFrame&, void* const) + +simulated event PostDemoRewind() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCollisionProxy_Vortex.uc b/Development/Src/TgGame/Classes/TgCollisionProxy_Vortex.uc new file mode 100644 index 0000000..11562cf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCollisionProxy_Vortex.uc @@ -0,0 +1,30 @@ +class TgCollisionProxy_Vortex extends TgCollisionProxy + native + placeable + hidecategories(Navigation) + config(Engine); + +var () float m_fGroundSpeedStrafePct; +var () float m_fGroundSpeedToVortex; +var () float m_fGroundSpeedPctRetained; +var () float m_fInnerRadius; +var () bool m_bEnabled; +var () bool m_bOnlyAffectCurrentTarget; +var transient Pawn m_LastInstigator; + +simulated event Tick(float DeltaTime) { } + +simulated event InstigatorChanged() { } + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +simulated event bool ShouldIgnoreActor(TgPawn aPawn) { } + +simulated function OnPlayerAdded(TgPawn aPawn) { } + +simulated function OnPlayerRemoved(TgPawn aPawn) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCombatActor.uc b/Development/Src/TgGame/Classes/TgCombatActor.uc new file mode 100644 index 0000000..f8814ef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCombatActor.uc @@ -0,0 +1,98 @@ +interface TgCombatActor extends Interface + dependson(TgObject); + +enum GameplayDesignType { + GDT_None, // 0 + GDT_Player, // 1 + GDT_Pet, // 2 + GDT_Deployable, // 3 + GDT_Shield, // 4 +}; + +function float GetHealth(); // Export UTgCombatActor::execGetHealth(FFrame&, void* const) + +function float GetMaxHealth(); // Export UTgCombatActor::execGetMaxHealth(FFrame&, void* const) + +function float GetHealthPercent(); // Export UTgCombatActor::execGetHealthPercent(FFrame&, void* const) + +function float GetMana(); // Export UTgCombatActor::execGetMana(FFrame&, void* const) + +function float GetMaxMana(); // Export UTgCombatActor::execGetMaxMana(FFrame&, void* const) + +function float GetShieldHealth(); // Export UTgCombatActor::execGetShieldHealth(FFrame&, void* const) + +function float GetMaxShield(); // Export UTgCombatActor::execGetMaxShield(FFrame&, void* const) + +function bool CanTakeHealthDamage(); // Export UTgCombatActor::execCanTakeHealthDamage(FFrame&, void* const) + +function bool CanDealHeadShots(); // Export UTgCombatActor::execCanDealHeadShots(FFrame&, void* const) + +function bool CanTakeHeadShots(); // Export UTgCombatActor::execCanTakeHeadShots(FFrame&, void* const) + +function bool OnlyTakeHeadShots(); // Export UTgCombatActor::execOnlyTakeHeadShots(FFrame&, void* const) + +function bool IsImmuneToDamage(); // Export UTgCombatActor::execIsImmuneToDamage(FFrame&, void* const) + +function bool CanBeExecuted(); // Export UTgCombatActor::execCanBeExecuted(FFrame&, void* const) + +function bool IsImmuneToHealing(); // Export UTgCombatActor::execIsImmuneToHealing(FFrame&, void* const) + +function BuffDamage(Actor Target, TgEffectDamage Effect, ImpactInfo Impact, float fBaseDamage, out float fProratedAmount, out ExtraDamageInfo ExtraInfo); // Export UTgCombatActor::execBuffDamage(FFrame&, void* const) + +function float GetSpecialDamageDealtPercentAI(); // Export UTgCombatActor::execGetSpecialDamageDealtPercentAI(FFrame&, void* const) + +function float GetSpecialDamageTakenPercentAI(); // Export UTgCombatActor::execGetSpecialDamageTakenPercentAI(FFrame&, void* const) + +function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgCombatActor::execMitigateHealthDamage(FFrame&, void* const) + +function float GetDamageReductionPerc(TgDevice damageDev, TgEffectGroup eg); // Export UTgCombatActor::execGetDamageReductionPerc(FFrame&, void* const) + +function TakeHealthDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgCombatActor::execTakeHealthDamage(FFrame&, void* const) + +function bool CanBeLifestealInstigator(); // Export UTgCombatActor::execCanBeLifestealInstigator(FFrame&, void* const) + +function bool CanBeLifestealTarget(); // Export UTgCombatActor::execCanBeLifestealTarget(FFrame&, void* const) + +function bool CanTakeManaDamage(); // Export UTgCombatActor::execCanTakeManaDamage(FFrame&, void* const) + +function TakeManaDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgCombatActor::execTakeManaDamage(FFrame&, void* const) + +function bool CanTakeShieldDamage(); // Export UTgCombatActor::execCanTakeShieldDamage(FFrame&, void* const) + +function bool CanUsePersonalShield(); // Export UTgCombatActor::execCanUsePersonalShield(FFrame&, void* const) + +function int TakePersonalShieldDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgCombatActor::execTakePersonalShieldDamage(FFrame&, void* const) + +function bool ShieldDamageAppliesToHealth(); // Export UTgCombatActor::execShieldDamageAppliesToHealth(FFrame&, void* const) + +function TakeStealthDamage(float fDamage); // Export UTgCombatActor::execTakeStealthDamage(FFrame&, void* const) + +function float GetDamageToLeaveStealth(); // Export UTgCombatActor::execGetDamageToLeaveStealth(FFrame&, void* const) + +function HandleNotificationsForAI(float fStatChange, TgPawn InstigatorPawn); // Export UTgCombatActor::execHandleNotificationsForAI(FFrame&, void* const) + +function bool LocalPlayerHasLOS(); // Export UTgCombatActor::execLocalPlayerHasLOS(FFrame&, void* const) + +function Vector GetLocation(); // Export UTgCombatActor::execGetLocation(FFrame&, void* const) + +function float GetPropCurrentValue(int nPropIndex); // Export UTgCombatActor::execGetPropCurrentValue(FFrame&, void* const) + +function int GetPropIndex(int nPropId); // Export UTgCombatActor::execGetPropIndex(FFrame&, void* const) + +function float GetMarkedPercent(Actor InstigatorPawn); // Export UTgCombatActor::execGetMarkedPercent(FFrame&, void* const) + +function float GetMarkedPercentInhand(Actor InstigatorPawn); // Export UTgCombatActor::execGetMarkedPercentInhand(FFrame&, void* const) + +function TgEffectManager GetEffectManager(); // Export UTgCombatActor::execGetEffectManager(FFrame&, void* const) + +function TgCombatActor.GameplayDesignType GetDesignType(); // Export UTgCombatActor::execGetDesignType(FFrame&, void* const) + +function bool IsPet(); // Export UTgCombatActor::execIsPet(FFrame&, void* const) + +function Actor GetPetOwner(); // Export UTgCombatActor::execGetPetOwner(FFrame&, void* const) + +simulated function float GetMaxAimAssistStacks(); + +simulated function Actor GetActorFromCombatActor(); + +simulated function GetAimAssistBounds(const out Vector ObserverLocation, out float Width, out float Height, out Vector Center); diff --git a/Development/Src/TgGame/Classes/TgCombinedPostProcessEffect.uc b/Development/Src/TgGame/Classes/TgCombinedPostProcessEffect.uc new file mode 100644 index 0000000..88302aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCombinedPostProcessEffect.uc @@ -0,0 +1,16 @@ +class TgCombinedPostProcessEffect extends PostProcessEffect + native + hidecategories(Object) + config(Engine); + +var (Hit) Color HitEffectColor; +var Vector SceneShadows; +var Vector SceneHighLights; +var Vector SceneMidTones; +var float SceneDesaturation; +var Vector SceneColorize; + +defaultproperties +{ + HitEffectColor=(R=89,G=0,B=0,A=255) +} diff --git a/Development/Src/TgGame/Classes/TgContextNotifyActor.uc b/Development/Src/TgGame/Classes/TgContextNotifyActor.uc new file mode 100644 index 0000000..2acf10d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgContextNotifyActor.uc @@ -0,0 +1,20 @@ +class TgContextNotifyActor extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +const CONTEXT_NOTIFY_ATTACK_SPECIALFX = 2928; + +const CONTEXT_NOTIFY_DEFEND_SPECIALFX = 2929; + +const CONTEXT_NOTIFY_BE_CAREFUL_SPECIALFX = 2930; + +const CONTEXT_NOTIFY_PING_SPECIALFX = 2954; + +native function SetContextNotifyType(int ContextId); // Export UTgContextNotifyActor::execSetContextNotifyType(FFrame&, void* const) + +defaultproperties +{ + LifeSpan=8000000.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule.uc b/Development/Src/TgGame/Classes/TgControlModule.uc old mode 100755 new mode 100644 index 497b82f..6f99e58 --- a/Development/Src/TgGame/Classes/TgControlModule.uc +++ b/Development/Src/TgGame/Classes/TgControlModule.uc @@ -1,4 +1,30 @@ -class TgControlModule extends Object - abstract; - -function Init(){} \ No newline at end of file +class TgControlModule extends Object + abstract + config(Engine); + +var TgPlayerController Controller; +var bool m_bIsActive; + +function Init() { } + +function OnBecomeActive(TgControlModule OldModule) { } + +function OnBecomeInActive(TgControlModule NewModule) { } + +function OnSettingsChanged(TgClientSettings Settings) { } + +singular simulated function Rotator GetBaseAimRotation(Weapon W, optional bool bIgnoreAutoLock) { } + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function UpdateRotation(float DeltaTime) { } + +function OnRightMousePressed() { } + +exec function OnRightMouseReleased() { } + +function AdjustAimingView(out Vector ViewLocation, out Rotator ViewRotation) { } + +function bool InterceptFlashInput(name ButtonName, Object.EInputEvent Event) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_BaseEngine.uc b/Development/Src/TgGame/Classes/TgControlModule_BaseEngine.uc new file mode 100644 index 0000000..f69c34e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_BaseEngine.uc @@ -0,0 +1,8 @@ +class TgControlModule_BaseEngine extends TgControlModule + config(Engine); + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function UpdateRotation(float DeltaTime) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_Dead.uc b/Development/Src/TgGame/Classes/TgControlModule_Dead.uc new file mode 100644 index 0000000..d5e34ce --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_Dead.uc @@ -0,0 +1,10 @@ +class TgControlModule_Dead extends TgControlModule + config(Engine); + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function UpdateRotation(float DeltaTime) { } + +singular simulated function Rotator GetBaseAimRotation(Weapon W, optional bool bIgnoreAutoLock) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_Dummy.uc b/Development/Src/TgGame/Classes/TgControlModule_Dummy.uc new file mode 100644 index 0000000..fbdac48 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_Dummy.uc @@ -0,0 +1,2 @@ +class TgControlModule_Dummy extends TgControlModule + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgControlModule_Feared.uc b/Development/Src/TgGame/Classes/TgControlModule_Feared.uc new file mode 100644 index 0000000..7b08533 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_Feared.uc @@ -0,0 +1,19 @@ +class TgControlModule_Feared extends TgControlModule_ThirdPerson + config(Engine); + +var float c_fLastSwitchTime; +var float c_fNextSwitchTime; +var Vector c_vCurrentDirection; + +function OnBecomeActive(TgControlModule OldModule) { } + +function Vector CalcNewAccel() { } + +function ChangeDirections() { } + +function UpdateRotation(float DeltaTime) { } + +defaultproperties +{ + c_fNextSwitchTime=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule_Free.uc b/Development/Src/TgGame/Classes/TgControlModule_Free.uc new file mode 100644 index 0000000..0e9506c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_Free.uc @@ -0,0 +1,12 @@ +class TgControlModule_Free extends TgControlModule + config(Engine); + +var int CameraYawOffset; + +singular simulated function Rotator GetBaseAimRotation(Weapon W, optional bool bIgnoreAutoLock) { } + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function UpdateRotation(float DeltaTime) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_FrontFacingCamera.uc b/Development/Src/TgGame/Classes/TgControlModule_FrontFacingCamera.uc new file mode 100644 index 0000000..52ce452 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_FrontFacingCamera.uc @@ -0,0 +1,8 @@ +class TgControlModule_FrontFacingCamera extends TgControlModule_ThirdPerson + config(Engine); + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function Vector CalcNewAccel() { } + +function UpdateRotation(float DeltaTime) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_Spectator.uc b/Development/Src/TgGame/Classes/TgControlModule_Spectator.uc old mode 100755 new mode 100644 index 7c21c48..9e36f03 --- a/Development/Src/TgGame/Classes/TgControlModule_Spectator.uc +++ b/Development/Src/TgGame/Classes/TgControlModule_Spectator.uc @@ -1,2 +1,33 @@ -class TgControlModule_Spectator extends TgControlModule - config(Game); +class TgControlModule_Spectator extends TgControlModule + config(Game); + +var () config float RotationLimit; +var () const config float SpectatorStallZ; +var () const config float SpectatorMinStallZ; + +singular simulated function Rotator GetBaseAimRotation(Weapon W, optional bool bIgnoreAutoLock) { } + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function UpdateRotation(float DeltaTime) { } + +function Pawn GetPawnAtCursor() { } + +function GetActorListAtCursor(out array ActorList) { } + +function bool InterceptFlashInput(name ButtonName, Object.EInputEvent Event) { } + +function OnRightMousePressed() { } + +function OnRightMouseReleased() { } + +function OnLeftMousePressed() { } + +defaultproperties +{ + RotationLimit=65536.0000000 + SpectatorStallZ=99999.0000000 + SpectatorMinStallZ=-99999.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule_SpectatorLockedView.uc b/Development/Src/TgGame/Classes/TgControlModule_SpectatorLockedView.uc new file mode 100644 index 0000000..a21aa4e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_SpectatorLockedView.uc @@ -0,0 +1,11 @@ +class TgControlModule_SpectatorLockedView extends TgControlModule_Spectator + config(Input); + +var const config float DirectorModeSpectatorStallZ; +var const config float DirectorModeSpectatorMinStallZ; + +function float GetMaxStallZ() { } + +function float GetMinStallZ() { } + +function PlayerMove(float DeltaTime) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_SpectatorOverview.uc b/Development/Src/TgGame/Classes/TgControlModule_SpectatorOverview.uc new file mode 100644 index 0000000..d6dac4b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_SpectatorOverview.uc @@ -0,0 +1,25 @@ +class TgControlModule_SpectatorOverview extends TgControlModule_Spectator + config(Game); + +var () const config float DirectorModeSpectatorStallZ; +var () const config float DirectorModeSpectatorMinStallZ; + +function float GetMaxStallZ() { } + +function float GetMinStallZ() { } + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function UpdateRotation(float DeltaTime) { } + +function OnLeftMousePressed() { } + +defaultproperties +{ + DirectorModeSpectatorStallZ=2000.0000000 + DirectorModeSpectatorMinStallZ=750.0000000 + SpectatorStallZ=2000.0000000 + SpectatorMinStallZ=750.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule_Stoker.uc b/Development/Src/TgGame/Classes/TgControlModule_Stoker.uc new file mode 100644 index 0000000..301a8e5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_Stoker.uc @@ -0,0 +1,6 @@ +class TgControlModule_Stoker extends TgControlModule_ThirdPerson + config(Engine); + +var TgPawn_Stoker m_CachedStokerPawn; + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_StunDisoriented.uc b/Development/Src/TgGame/Classes/TgControlModule_StunDisoriented.uc new file mode 100644 index 0000000..188ffca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_StunDisoriented.uc @@ -0,0 +1,16 @@ +class TgControlModule_StunDisoriented extends TgControlModule_Stunned + config(Engine); + +var int m_nInitialYaw; +var int m_nTargetYaw; +var const float m_fInterpTime; +var float m_fRemainingInterpTime; + +function OnBecomeActive(TgControlModule OldModule) { } + +function UpdateRotation(float DeltaTime) { } + +defaultproperties +{ + m_fInterpTime=0.1500000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule_StunTaunted.uc b/Development/Src/TgGame/Classes/TgControlModule_StunTaunted.uc new file mode 100644 index 0000000..68a41d4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_StunTaunted.uc @@ -0,0 +1,19 @@ +class TgControlModule_StunTaunted extends TgControlModule_ThirdPerson + config(Engine); + +var float m_fInitialYaw; +var const float m_fInterpTime; +var float m_fRemainingInterpTime; + +function OnBecomeActive(TgControlModule OldModule) { } + +function OnBecomeInActive(TgControlModule NewModule) { } + +function Vector CalcNewAccel() { } + +function UpdateRotation(float DeltaTime) { } + +defaultproperties +{ + m_fInterpTime=0.1500000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule_Stunned.uc b/Development/Src/TgGame/Classes/TgControlModule_Stunned.uc new file mode 100644 index 0000000..cdb0170 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_Stunned.uc @@ -0,0 +1,8 @@ +class TgControlModule_Stunned extends TgControlModule_ThirdPerson + config(Engine); + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function Vector CalcNewAccel() { } + +function UpdateRotation(float DeltaTime) { } diff --git a/Development/Src/TgGame/Classes/TgControlModule_ThirdPerson.uc b/Development/Src/TgGame/Classes/TgControlModule_ThirdPerson.uc new file mode 100644 index 0000000..a5ecda9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_ThirdPerson.uc @@ -0,0 +1,49 @@ +class TgControlModule_ThirdPerson extends TgControlModule + config(Engine); + +var int CameraYawOffset; +var float fRotInterpSpeed; +var Vector2D vDazedRotError; +var float fAimPitch; +var InterpCurveFloat PitchCurve; +var InterpCurveFloat AimCurve; +var CameraAnim m_StrafeCameraAnim; + +function Init() { } + +function OnSettingsChanged(TgClientSettings Settings) { } + +function UpdatePitchCurve() { } + +function OnBecomeActive(TgControlModule OldModule) { } + +singular simulated function Rotator GetBaseAimRotation(Weapon W, optional bool bIgnoreAutoLock) { } + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +function Vector CalcNewAccel() { } + +function bool IsPlayingForcedViewCameraAnim() { } + +function UpdateRotation(float DeltaTime) { } + +function UpdateAimPitch() { } + +function bool IsInputLocked() { } + +function bool IsRotationLocked() { } + +function bool IsCameraLocked() { } + +function bool IsYawLocked() { } + +function bool IsFixedPitchMode() { } + +function AdjustAimingView(out Vector ViewLocation, out Rotator ViewRotation) { } + +defaultproperties +{ + fRotInterpSpeed=16.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgControlModule_TopDown.uc b/Development/Src/TgGame/Classes/TgControlModule_TopDown.uc new file mode 100644 index 0000000..5bb92bb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgControlModule_TopDown.uc @@ -0,0 +1,15 @@ +class TgControlModule_TopDown extends TgControlModule_Spectator + config(Game); + +var const config float DefaultStartHeight; + +function ProcessMove(float DeltaTime, Vector newAccel, Actor.EDoubleClickDir DoubleClickMove, Rotator DeltaRot) { } + +function PlayerMove(float DeltaTime) { } + +defaultproperties +{ + DefaultStartHeight=700.0000000 + SpectatorStallZ=850.0000000 + SpectatorMinStallZ=350.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgCoverPoint.uc b/Development/Src/TgGame/Classes/TgCoverPoint.uc new file mode 100644 index 0000000..9373b89 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgCoverPoint.uc @@ -0,0 +1,19 @@ +class TgCoverPoint extends TgAIAnnotation + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var () bool m_bLeanLeft; +var () bool m_bLeanRight; +var () bool m_bAllowPopup; +var () bool m_bAllowMantle; +var Vector m_vLeanLeft; +var Vector m_vLeanRight; +var Vector m_vPopUp; + +native function GetAdjustedPosition(out Vector out_Position, Pawn AnnotationOwner, Actor Target); // Export UTgCoverPoint::execGetAdjustedPosition(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgCustomCharacterComponent.uc b/Development/Src/TgGame/Classes/TgCustomCharacterComponent.uc old mode 100755 new mode 100644 index f115632..6bb8649 --- a/Development/Src/TgGame/Classes/TgCustomCharacterComponent.uc +++ b/Development/Src/TgGame/Classes/TgCustomCharacterComponent.uc @@ -1,48 +1,31 @@ -class TgCustomCharacterComponent extends ActorComponent - native; - -struct native CompositeTextureType -{ - var Texture2DComposite CompTexture; - var name TextureParamName; - - structdefaultproperties - { - CompTexture=none - TextureParamName="None" - } -}; - -struct native CompositePartInfo -{ - var int MeshAsmId; - var int DestOffsetX; - var int DestOffsetY; - var int RegionSizeX; - var int RegionSizeY; - - structdefaultproperties - { - MeshAsmId=0 - DestOffsetX=0 - DestOffsetY=0 - RegionSizeX=0 - RegionSizeY=0 - } -}; - -var array m_SourceMeshList; -var array m_CompositeTextures; -var int m_nCompositeTextureSizeX; -var int m_nCompositeTextureSizeY; -var() array m_CompositeParts; -//var array m_CompositeFxList; - -// Export UTgCustomCharacterComponent::execMergeMeshParts(FFrame&, void* const) -native function MergeMeshParts(SkeletalMeshComponent Mesh); - -// Export UTgCustomCharacterComponent::execComposeCharacter(FFrame&, void* const) -native function ComposeCharacter(SkeletalMeshComponent Mesh); - -// Export UTgCustomCharacterComponent::execSetupCompositeRegion(FFrame&, void* const) -native function SetupCompositeRegion(int MeshAsmId, int DestOffsetX, int DestOffsetY, int SizeX, int SizeY); +class TgCustomCharacterComponent extends ActorComponent + native + config(Engine); + +struct CompositeTextureType { + var Texture2DComposite CompTexture; + var name TextureParamName; + structdefaultproperties {} +}; + +struct CompositePartInfo { + var int MeshAsmId; + var int DestOffsetX; + var int DestOffsetY; + var int RegionSizeX; + var int RegionSizeY; + structdefaultproperties {} +}; + +var array m_SourceMeshList; +var array m_CompositeTextures; +var int m_nCompositeTextureSizeX; +var int m_nCompositeTextureSizeY; +var () array m_CompositeParts; +var array m_CompositeFxList; + +native function MergeMeshParts(SkeletalMeshComponent Mesh); // Export UTgCustomCharacterComponent::execMergeMeshParts(FFrame&, void* const) + +native function ComposeCharacter(SkeletalMeshComponent Mesh); // Export UTgCustomCharacterComponent::execComposeCharacter(FFrame&, void* const) + +native function SetupCompositeRegion(int MeshAsmId, int DestOffsetX, int DestOffsetY, int SizeX, int SizeY); // Export UTgCustomCharacterComponent::execSetupCompositeRegion(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDamageType.uc b/Development/Src/TgGame/Classes/TgDamageType.uc new file mode 100644 index 0000000..bb24afb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType.uc @@ -0,0 +1,70 @@ +class TgDamageType extends DamageType + native + config(Engine); + +var bool m_bImpulseMesh; +var bool m_bEnableMotors; +var bool m_bShouldRagdollAfterDeathAnim; +var bool m_bCanPlayDeathSpecialFXOnDefaultDeath; +var bool m_bHarvestMaterialParameters; +var bool m_bFreezeAnimsOnDeath; +var bool m_bIgnorePersonalShields; +var bool m_bIsLatent; +var float m_bMinImpulse; +var float m_bMaxImpulse; +var float m_bMinUpKick; +var float m_bMaxUpKick; +var array m_nmDeathAnimNames; +var array m_nmDeathFlailAnimNames; +var float m_fMinAngularVelocity; +var float m_fMaxAngularVelocity; +var int m_nDeathSpecialFXId; +var name m_nmDeathSpecialFXSocket; +var MaterialInstanceConstant m_OverrideMaterial; +var float m_fLifeAfterDeathSeconds; +var int m_nFadeOutSpecialFXId; +var array ActivateSkelControlListOnDeath; +var AkEvent m_TakeHitAkEvent; +var AkEvent m_TakeHeadShotAkEvent; +var Class m_LatentDamageType; +var TgCameraShake m_LeftCameraShake; +var TgCameraShake m_RightCameraShake; +var TgCameraShake m_ForwardCameraShake; +var TgCameraShake m_BackwardCameraShake; +var TgCameraShake m_BackwardRightCameraShake; +var TgCameraShake m_BackwardLeftCameraShake; +var TgCameraShake m_ForwardRightCameraShake; +var TgCameraShake m_ForwardLeftCameraShake; + +function name GetRandomDeathFlailAnimName() { } + +function name GetRandomDeathAnimName() { } + +defaultproperties +{ + m_bImpulseMesh=true + m_bEnableMotors=true + m_bMinImpulse=300.0000000 + m_bMaxImpulse=400.0000000 + m_bMinUpKick=200.0000000 + m_bMaxUpKick=300.0000000 + m_nmDeathAnimNames[0]="Death_Generic_01" + m_nmDeathAnimNames[1]="Death_Generic_02" + m_nmDeathAnimNames[2]="Death_Generic_03" + m_nmDeathFlailAnimNames[0]="Death_InAirFlail_01" + m_fMinAngularVelocity=-2.5000000 + m_fMaxAngularVelocity=2.5000000 + m_nDeathSpecialFXId=-1 + ActivateSkelControlListOnDeath[0]="Prop1_SC_Lock" + ActivateSkelControlListOnDeath[1]="Prop2_SC_Lock" + m_LatentDamageType=Class'TgDamageType_Latent' + m_LeftCameraShake=TgCameraShake'CameraShake.CamShake_HitLeft' + m_RightCameraShake=TgCameraShake'CameraShake.CamShake_HitRight' + m_ForwardCameraShake=TgCameraShake'CameraShake.CamShake_HitForward' + m_BackwardCameraShake=TgCameraShake'CameraShake.CamShake_HitBackward' + m_BackwardRightCameraShake=TgCameraShake'CameraShake.CamShake_HitBackwardRight' + m_BackwardLeftCameraShake=TgCameraShake'CameraShake.CamShake_HitBackwardLeft' + m_ForwardRightCameraShake=TgCameraShake'CameraShake.CamShake_HitForwardRight' + m_ForwardLeftCameraShake=TgCameraShake'CameraShake.CamShake_HitForwardLeft' + KDamageImpulse=1600.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_AbilityCost.uc b/Development/Src/TgGame/Classes/TgDamageType_AbilityCost.uc new file mode 100644 index 0000000..3e4f808 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_AbilityCost.uc @@ -0,0 +1,9 @@ +class TgDamageType_AbilityCost extends TgDamageType + native + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_DragonSlam.uc b/Development/Src/TgGame/Classes/TgDamageType_DragonSlam.uc new file mode 100644 index 0000000..e4e44e7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_DragonSlam.uc @@ -0,0 +1,13 @@ +class TgDamageType_DragonSlam extends TgDamageType_PaladinsConcussive + config(Engine); + +defaultproperties +{ + m_bIgnorePersonalShields=true + m_bMinImpulse=1250.0000000 + m_bMaxImpulse=1250.0000000 + m_bMinUpKick=200.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-15.0000000 + m_fMaxAngularVelocity=15.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_FallOutOfWorld.uc b/Development/Src/TgGame/Classes/TgDamageType_FallOutOfWorld.uc new file mode 100644 index 0000000..1eb5741 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_FallOutOfWorld.uc @@ -0,0 +1,2 @@ +class TgDamageType_FallOutOfWorld extends TgDamageType + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralAfflicted.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralAfflicted.uc new file mode 100644 index 0000000..6c4ebc3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralAfflicted.uc @@ -0,0 +1,9 @@ +class TgDamageType_GeneralAfflicted extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false + m_nmDeathAnimNames[0]="Death_Afflicted_01" +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralCharred.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralCharred.uc new file mode 100644 index 0000000..e82b95b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralCharred.uc @@ -0,0 +1,13 @@ +class TgDamageType_GeneralCharred extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false + m_nmDeathAnimNames[0]="Death_Charred_01" + m_nDeathSpecialFXId=2586 + m_nmDeathSpecialFXSocket="CSO_COG" + m_fLifeAfterDeathSeconds=2.0000000 + m_nFadeOutSpecialFXId=2587 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralConcussion.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralConcussion.uc new file mode 100644 index 0000000..dcf3574 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralConcussion.uc @@ -0,0 +1,12 @@ +class TgDamageType_GeneralConcussion extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=200.0000000 + m_bMaxImpulse=300.0000000 + m_bMinUpKick=300.0000000 + m_bMaxUpKick=600.0000000 + m_fMinAngularVelocity=5.0000000 + m_fMaxAngularVelocity=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralElectric.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralElectric.uc new file mode 100644 index 0000000..3fe08ea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralElectric.uc @@ -0,0 +1,11 @@ +class TgDamageType_GeneralElectric extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false + m_bShouldRagdollAfterDeathAnim=true + m_bHarvestMaterialParameters=true + m_nmDeathAnimNames[0]="Death_ElectricWrithe_01" +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralFlattened.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralFlattened.uc new file mode 100644 index 0000000..363994c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralFlattened.uc @@ -0,0 +1,14 @@ +class TgDamageType_GeneralFlattened extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false + m_nmDeathAnimNames[0]="Death_Flattened_01" + m_nmDeathAnimNames[1]="Death_Flattened_02" + m_nmDeathAnimNames[2]="Death_Flattened_03" + ActivateSkelControlListOnDeath[0]="Prop1_SC_Lock" + ActivateSkelControlListOnDeath[1]="Prop2_SC_Lock" + ActivateSkelControlListOnDeath[2]="FlattenedScaler" +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralImpulseOut.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralImpulseOut.uc new file mode 100644 index 0000000..f49b6f5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralImpulseOut.uc @@ -0,0 +1,11 @@ +class TgDamageType_GeneralImpulseOut extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=700.0000000 + m_bMaxImpulse=900.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-15.0000000 + m_fMaxAngularVelocity=15.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralMidImpulse.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralMidImpulse.uc new file mode 100644 index 0000000..30aae2b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralMidImpulse.uc @@ -0,0 +1,11 @@ +class TgDamageType_GeneralMidImpulse extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=600.0000000 + m_bMaxImpulse=800.0000000 + m_bMaxUpKick=400.0000000 + m_fMinAngularVelocity=-1.5000000 + m_fMaxAngularVelocity=1.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_GeneralOnFire.uc b/Development/Src/TgGame/Classes/TgDamageType_GeneralOnFire.uc new file mode 100644 index 0000000..44c29c4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_GeneralOnFire.uc @@ -0,0 +1,12 @@ +class TgDamageType_GeneralOnFire extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false + m_nmDeathAnimNames[0]="Death_OnFire_01" + m_nmDeathAnimNames[1]="Death_OnFire_02" + m_nDeathSpecialFXId=2585 + m_nmDeathSpecialFXSocket="CSO_COG" +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_IgnoreShields.uc b/Development/Src/TgGame/Classes/TgDamageType_IgnoreShields.uc new file mode 100644 index 0000000..11fcc96 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_IgnoreShields.uc @@ -0,0 +1,8 @@ +class TgDamageType_IgnoreShields extends TgDamageType + native + config(Engine); + +defaultproperties +{ + m_bIgnorePersonalShields=true +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_Latent.uc new file mode 100644 index 0000000..9380f2d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_Latent.uc @@ -0,0 +1,8 @@ +class TgDamageType_Latent extends TgDamageType + native + config(Engine); + +defaultproperties +{ + m_bIsLatent=true +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_MeleeBasicAttack.uc b/Development/Src/TgGame/Classes/TgDamageType_MeleeBasicAttack.uc new file mode 100644 index 0000000..97ab732 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_MeleeBasicAttack.uc @@ -0,0 +1,8 @@ +class TgDamageType_MeleeBasicAttack extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_MeleeBasicAttackImpulse.uc b/Development/Src/TgGame/Classes/TgDamageType_MeleeBasicAttackImpulse.uc new file mode 100644 index 0000000..0a657fc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_MeleeBasicAttackImpulse.uc @@ -0,0 +1,10 @@ +class TgDamageType_MeleeBasicAttackImpulse extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=400.0000000 + m_bMaxImpulse=600.0000000 + m_bMinUpKick=300.0000000 + m_bMaxUpKick=500.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsAcid.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsAcid.uc new file mode 100644 index 0000000..952f4ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsAcid.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsAcid extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1350.0000000 + m_bMaxImpulse=1350.0000000 + m_bMinUpKick=800.0000000 + m_bMaxUpKick=800.0000000 + m_fMinAngularVelocity=-20.0000000 + m_fMaxAngularVelocity=20.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsAcid_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsAcid_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsAcid_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsAcid_Latent.uc new file mode 100644 index 0000000..af8db4d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsAcid_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsAcid_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1350.0000000 + m_bMaxImpulse=1350.0000000 + m_bMinUpKick=800.0000000 + m_bMaxUpKick=800.0000000 + m_fMinAngularVelocity=-20.0000000 + m_fMaxAngularVelocity=20.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsBullet.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsBullet.uc new file mode 100644 index 0000000..fcb21f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsBullet.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsBullet extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1500.0000000 + m_bMaxImpulse=1500.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsBullet_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsBullet_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsBullet_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsBullet_Latent.uc new file mode 100644 index 0000000..2dfb528 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsBullet_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsBullet_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1500.0000000 + m_bMaxImpulse=1500.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsConcussive.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsConcussive.uc new file mode 100644 index 0000000..4776b3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsConcussive.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsConcussive extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1350.0000000 + m_bMaxImpulse=1350.0000000 + m_bMinUpKick=800.0000000 + m_bMaxUpKick=800.0000000 + m_fMinAngularVelocity=-25.0000000 + m_fMaxAngularVelocity=25.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsConcussive_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsConcussive_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsConcussive_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsConcussive_Latent.uc new file mode 100644 index 0000000..25d87e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsConcussive_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsConcussive_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1350.0000000 + m_bMaxImpulse=1350.0000000 + m_bMinUpKick=800.0000000 + m_bMaxUpKick=800.0000000 + m_fMinAngularVelocity=-25.0000000 + m_fMaxAngularVelocity=25.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsExecute.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsExecute.uc new file mode 100644 index 0000000..aacbb30 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsExecute.uc @@ -0,0 +1,11 @@ +class TgDamageType_PaladinsExecute extends TgDamageType + native + config(Engine); + +defaultproperties +{ + m_bFreezeAnimsOnDeath=true + m_bIgnorePersonalShields=true + m_nDeathSpecialFXId=7711 + m_nmDeathSpecialFXSocket="CSO_COG" +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsExplosive.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsExplosive.uc new file mode 100644 index 0000000..aa2442a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsExplosive.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsExplosive extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1600.0000000 + m_bMaxImpulse=1600.0000000 + m_bMinUpKick=400.0000000 + m_bMaxUpKick=400.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsExplosives_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsExplosive_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsExplosive_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsExplosive_Latent.uc new file mode 100644 index 0000000..e10b750 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsExplosive_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsExplosive_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1600.0000000 + m_bMaxImpulse=1600.0000000 + m_bMinUpKick=400.0000000 + m_bMaxUpKick=400.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsFire.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsFire.uc new file mode 100644 index 0000000..fd7c2ef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsFire.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsFire extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=900.0000000 + m_bMaxImpulse=900.0000000 + m_bMinUpKick=350.0000000 + m_bMaxUpKick=350.0000000 + m_fMinAngularVelocity=-20.0000000 + m_fMaxAngularVelocity=20.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsFire_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsFire_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsFire_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsFire_Latent.uc new file mode 100644 index 0000000..a390c0a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsFire_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsFire_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=900.0000000 + m_bMaxImpulse=900.0000000 + m_bMinUpKick=350.0000000 + m_bMaxUpKick=350.0000000 + m_fMinAngularVelocity=-20.0000000 + m_fMaxAngularVelocity=20.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsIce.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsIce.uc new file mode 100644 index 0000000..2e10a53 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsIce.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsIce extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1300.0000000 + m_bMaxImpulse=1300.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsIce_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsIce_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsIce_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsIce_Latent.uc new file mode 100644 index 0000000..479b177 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsIce_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsIce_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1300.0000000 + m_bMaxImpulse=1300.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsLightning.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsLightning.uc new file mode 100644 index 0000000..55663ed --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsLightning.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsLightning extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1125.0000000 + m_bMaxImpulse=1125.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-25.0000000 + m_fMaxAngularVelocity=25.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsLightning_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsLightning_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsLightning_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsLightning_Latent.uc new file mode 100644 index 0000000..5b53b5d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsLightning_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsLightning_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1125.0000000 + m_bMaxImpulse=1125.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-25.0000000 + m_fMaxAngularVelocity=25.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsPiercing.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPiercing.uc new file mode 100644 index 0000000..aca383c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPiercing.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsPiercing extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1000.0000000 + m_bMaxImpulse=1000.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsPiercing_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsPiercing_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsPiercing_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPiercing_Latent.uc new file mode 100644 index 0000000..283efee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPiercing_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsPiercing_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=1000.0000000 + m_bMaxImpulse=1000.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsPoison.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPoison.uc new file mode 100644 index 0000000..81a913b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPoison.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsPoison extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=450.0000000 + m_bMaxImpulse=450.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsPoison_Play' + m_LatentDamageType=Class'TgDamageType_PaladinsPoison_Latent' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsPoison_Latent.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPoison_Latent.uc new file mode 100644 index 0000000..685f277 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsPoison_Latent.uc @@ -0,0 +1,13 @@ +class TgDamageType_PaladinsPoison_Latent extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bIsLatent=true + m_bMinImpulse=450.0000000 + m_bMaxImpulse=450.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-30.0000000 + m_fMaxAngularVelocity=30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_PaladinsSniper.uc b/Development/Src/TgGame/Classes/TgDamageType_PaladinsSniper.uc new file mode 100644 index 0000000..84df3d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_PaladinsSniper.uc @@ -0,0 +1,14 @@ +class TgDamageType_PaladinsSniper extends TgDamageType + native + config(Engine); + +defaultproperties +{ + m_bMinImpulse=1600.0000000 + m_bMaxImpulse=1600.0000000 + m_bMinUpKick=500.0000000 + m_bMaxUpKick=500.0000000 + m_fMinAngularVelocity=-10.0000000 + m_fMaxAngularVelocity=10.0000000 + m_TakeHitAkEvent=AkEvent'PC_Shared_DamageAlert_PaladinsSniper_Play' +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_RangedBasicAttack.uc b/Development/Src/TgGame/Classes/TgDamageType_RangedBasicAttack.uc new file mode 100644 index 0000000..78e865f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_RangedBasicAttack.uc @@ -0,0 +1,8 @@ +class TgDamageType_RangedBasicAttack extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bImpulseMesh=false + m_bEnableMotors=false +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_RangedBasicAttackImpulse.uc b/Development/Src/TgGame/Classes/TgDamageType_RangedBasicAttackImpulse.uc new file mode 100644 index 0000000..9cf31f3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_RangedBasicAttackImpulse.uc @@ -0,0 +1,10 @@ +class TgDamageType_RangedBasicAttackImpulse extends TgDamageType + config(Engine); + +defaultproperties +{ + m_bMinImpulse=400.0000000 + m_bMaxImpulse=600.0000000 + m_bMinUpKick=300.0000000 + m_bMaxUpKick=500.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDamageType_RangedShot.uc b/Development/Src/TgGame/Classes/TgDamageType_RangedShot.uc new file mode 100644 index 0000000..c2a2fac --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDamageType_RangedShot.uc @@ -0,0 +1,2 @@ +class TgDamageType_RangedShot extends TgDamageType + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDatabaseIDs.uc b/Development/Src/TgGame/Classes/TgDatabaseIDs.uc new file mode 100644 index 0000000..e47d1e8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDatabaseIDs.uc @@ -0,0 +1,79 @@ +class TgDatabaseIDs extends Object + native(Globals) + config(Engine); + +const MESH_ID_GAUNTLET_ULT_TARGETING = 6824; + +const DEVICE_ID_BLAST_SHOT = 11450; + +const DEVICE_ID_PROTECTION = 15793; + +const DEVICE_ID_RECHARGE = 15794; + +const DEVICE_ID_BLADES_INHAND = 16218; + +const DEVICE_ID_BLADES_ALTFIRE = 16229; + +const DEVICE_ID_BLADES_DISPLACE = 16235; + +const DEVICE_ID_BLADES_MIDNIGHT = 16241; + +const DEVICE_ID_BLADES_NINE_LIVES = 16306; + +const DEVICE_ID_BOOSTER = 13333; + +const DEVICE_ID_OWL_INHAND = 19108; + +const DEVICE_ID_OWL_STEALTH = 19145; + +const DEVICE_ID_OWL_SCOPE = 19111; + +const DEVICE_ID_OWL_SIDEARM = 19144; + +const TALENT_ID_ASH_FORTRESS_BREAKER = 18556; + +const TALENT_ID_BOMBKING_ACCELERANT = 16427; + +const FIREMODE_ID_DISENGAGE = 23970; + +const FIREMODE_ID_CASSIE_INHAND = 10148; + +const FIREMODE_ID_CASSIE_CROSSBOW = 24356; + +const ITEM_SET_BARIK_STEAMTF2 = 15338; + +const ITEM_SKIN_BODY_BARIK_STEAMTF2 = 14870; + +const ITEM_SKIN_BODY_ANDROXUS_XBOX = 15146; + +const ITEM_SKIN_BODY_ANDROXUS_PS4 = 15145; + +const ITEM_SKIN_BODY_VIKTOR_PSPLUS = 15177; + +const ITEM_SKIN_HEAD_BARIK_STEAMTF2 = 15224; + +const ITEM_SKIN_HEAD_ANDROXUS_XBOX = 15134; + +const ITEM_SKIN_HEAD_ANDROXUS_PS4 = 15133; + +const ITEM_SKIN_HEAD_VIKTOR_PSPLUS = 15155; + +const ITEM_SKIN_WEAPON_BARIK_STEAMTF2 = 14867; + +const ITEM_SKIN_WEAPON_ANDROXUS_XBOX = 15148; + +const ITEM_SKIN_WEAPON_ANDROXUS_PS4 = 15147; + +const ITEM_SKIN_WEAPON_VIKTOR_PSPLUS = 15868; + +const ITEM_VOICE_DEFAULT = 15283; + +const ITEM_VOICE_BARIK_STEAMTF2 = 15289; + +const CONFIG_SET_PLAYER_PREFERENCES = 6; + +const PROP_ACCOUNT_LINK_POPUP_SEEN = 1986; + +const PROP_CARD_TUTORIAL_SEEN = 2020; + +const ICON_TEXTURE_INDEX_OWL_SNIPER_SWAP = 1176; diff --git a/Development/Src/TgGame/Classes/TgDebugCameraController.uc b/Development/Src/TgGame/Classes/TgDebugCameraController.uc new file mode 100644 index 0000000..3555894 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDebugCameraController.uc @@ -0,0 +1,10 @@ +class TgDebugCameraController extends DebugCameraController + config(Input) + hidecategories(Navigation); + +exec function Camera(name NewMode) { } + +function DisableDebugCamera() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDebugCameraInput.uc b/Development/Src/TgGame/Classes/TgDebugCameraInput.uc new file mode 100644 index 0000000..3557774 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDebugCameraInput.uc @@ -0,0 +1,4 @@ +class TgDebugCameraInput extends DebugCameraInput within PlayerController + transient + config(Input) + hidecategories(Object,UIRoot); diff --git a/Development/Src/TgGame/Classes/TgDecalManager.uc b/Development/Src/TgGame/Classes/TgDecalManager.uc new file mode 100644 index 0000000..0c79904 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDecalManager.uc @@ -0,0 +1,9 @@ +class TgDecalManager extends DecalManager + native(FX) + config(Game) + hidecategories(Navigation); + +event SpawnDecalNative(bool bUsePool, MaterialInterface DecalMaterial, Vector DecalLocation, Rotator DecalOrientation, float Width, float Height, float Thickness, bool bNoClip) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDefensePoint.uc b/Development/Src/TgGame/Classes/TgDefensePoint.uc new file mode 100644 index 0000000..0fc487a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDefensePoint.uc @@ -0,0 +1,29 @@ +class TgDefensePoint extends TgNavigationPoint + abstract + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var Controller CurrentUser; +var TgDefensePoint NextDefensePoint; +var bool bFirstScript; +var () bool bSniping; +var () bool bDontChangePosition; +var bool bAvoid; +var bool bDisabled; +var () bool bNotInVehicle; +var () byte Priority; +var () Class WeaponPreference; +var float NumChecked; + +function Reset() { } + +function FreePoint() { } + +function PreBeginPlay() { } + +function bool HigherPriorityThan(TgDefensePoint S, TgAIController B) { } + +function Actor GetMoveTarget() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDemoRecSpectator.uc b/Development/Src/TgGame/Classes/TgDemoRecSpectator.uc old mode 100755 new mode 100644 index 1d07b85..10e02f6 --- a/Development/Src/TgGame/Classes/TgDemoRecSpectator.uc +++ b/Development/Src/TgGame/Classes/TgDemoRecSpectator.uc @@ -1,10 +1,140 @@ -class TgDemoRecSpectator extends TgSpectatorController - native(Pawns) - config(Game) - hidecategories(Navigation); - -// Export UTgDemoRecSpectator::execGetSpectatorTaskforceNumber(FFrame&, void* const) -native function int GetSpectatorTaskforceNumber(); - -simulated event ReceivedPlayer(){} -simulated event PostBeginPlay(){} \ No newline at end of file +class TgDemoRecSpectator extends TgSpectatorController + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +struct SpectatorCommand { + var int nFrame; + var bool bUseIndex; + var float fSpeed; + structdefaultproperties {} +}; + +struct DilationData { + var float fValue; + var string sName; + structdefaultproperties {} +}; + +var array PendingCommands; +var int m_TimeIndex; +var array m_TimeDilations; +var Pointer m_pTgCallbackDevice; +var transient int m_1xTimeIndex; +var transient bool m_bIsPaused; +var transient bool m_bInStasis; +var transient bool m_bSpectatorMaster; +var transient bool m_bSyncWithMasterEnabled; +var transient bool m_bIsSyncingWithMaster; +var config transient bool m_bAutoSlomo; +var config transient bool m_bReceiveCamSync; +var transient int m_nLastReceivedMasterFrame; +var transient float m_fLastReceivedMasterTimeDilation; +var transient float m_fLastReceievedRealTimeStamp; +var const config int m_nSyncFrameThreshold; +var const config int m_nSyncFrameCheckThreshold; +var const config int m_nSyncAheadFrameThreshold; +var transient int m_nLastTimerValue; +var TgSpectatorDirector m_SpectatorDirector; +var transient TgCollisionProxy_SpectatorActionListener m_ActionListener; +var config transient float m_fActionListenerRadius; +var config transient float m_fActionListenerHeight; +var transient int m_nCurrentActionListenerRating; +var config transient int m_nActionListenerRatingThreshold; +var float m_fRemainingAutoSlomoTime; +var config transient float m_fAutoSlomoExpirationTime; +var config transient int m_nAutoSlomoSpeedIndex; +var config transient int m_nAutoSlomoNearbyPlayersNum; +var config transient float m_fAutoSlomoFrequency; +var transient float m_fRemainingAutoSlomoTimeoutTime; + +function OnSynced(); // Export UTgDemoRecSpectator::execOnSynced(FFrame&, void* const) + +function RequestSync(); // Export UTgDemoRecSpectator::execRequestSync(FFrame&, void* const) + +function UpdateTimeDilation(); // Export UTgDemoRecSpectator::execUpdateTimeDilation(FFrame&, void* const) + +function bool UpdateSyncingUI(); // Export UTgDemoRecSpectator::execUpdateSyncingUI(FFrame&, void* const) + +function UpdateCameraModeUI(); // Export UTgDemoRecSpectator::execUpdateCameraModeUI(FFrame&, void* const) + +function RegisterEngineCallbacks(); // Export UTgDemoRecSpectator::execRegisterEngineCallbacks(FFrame&, void* const) + +function UnregisterEngineCallbacks(); // Export UTgDemoRecSpectator::execUnregisterEngineCallbacks(FFrame&, void* const) + +function Class GetHudClass(Class pNewHudType); // Export UTgDemoRecSpectator::execGetHudClass(FFrame&, void* const) + +exec function CreateManualRewindPoint(); // Export UTgDemoRecSpectator::execCreateManualRewindPoint(FFrame&, void* const) + +exec function ToggleThirdPersonView(); // Export UTgDemoRecSpectator::execToggleThirdPersonView(FFrame&, void* const) + +function StartAutoCombatLog(); // Export UTgDemoRecSpectator::execStartAutoCombatLog(FFrame&, void* const) + +simulated event ReceivedPlayer() { } + +simulated event PostBeginPlay() { } + +exec function Slomo(float NewTimeDilation); // Export UTgDemoRecSpectator::execSlomo(FFrame&, void* const) + +exec function Pause(); // Export UTgDemoRecSpectator::execPause(FFrame&, void* const) + +exec function DilateTime(float Amount, optional bool bForceReset); // Export UTgDemoRecSpectator::execDilateTime(FFrame&, void* const) + +exec function Rewind(int JumpAmount, optional int FrameNum=-1); // Export UTgDemoRecSpectator::execRewind(FFrame&, void* const) + +exec function GoToFrame(float fPercent); // Export UTgDemoRecSpectator::execGoToFrame(FFrame&, void* const) + +function bool CanFastForward(); // Export UTgDemoRecSpectator::execCanFastForward(FFrame&, void* const) + +function bool SetSpectatorMasterSlave(); // Export UTgDemoRecSpectator::execSetSpectatorMasterSlave(FFrame&, void* const) + +function PauseEx(); // Export UTgDemoRecSpectator::execPauseEx(FFrame&, void* const) + +function RewindGraphs(); // Export UTgDemoRecSpectator::execRewindGraphs(FFrame&, void* const) + +exec function SetSyncTargetFrame(int FrameNum, float TimeDilation); // Export UTgDemoRecSpectator::execSetSyncTargetFrame(FFrame&, void* const) + +function int GetSyncTargetFrame(); // Export UTgDemoRecSpectator::execGetSyncTargetFrame(FFrame&, void* const) + +function bool IsSyncedWithMaster(int Threshold); // Export UTgDemoRecSpectator::execIsSyncedWithMaster(FFrame&, void* const) + +exec function EnableSync(bool bEnabled) { } + +exec function ToggleSync() { } + +function CheckSpectatorMasterSlave() { } + +simulated event PostDemoRewind() { } + +exec function DirectorModeToggle() { } + +event FindNearbyAssistedViewTarget() { } + +event FindNextClosestAssistedViewTarget() { } + +exec function SetNewSpectatorMode(TgSpectatorController.ESpectatorMode NewMode) { } + +simulated function bool PingMap(Vector WorldLocation, const out array worldActorRepInfo, TgObject.PING_TYPE Type) { } + +exec function SpecViewPlayer(string PlayerName) { } + +exec function ToggleAutoSlomo() { } + +exec function EnableAutoSlomo(bool bEnabled) { } + +function OnActionListenerStartFire(TgPawn FiringPawn, int nEquipSlot); // Export UTgDemoRecSpectator::execOnActionListenerStartFire(FFrame&, void* const) + +function TriggerAutoSlomo(float SlomoTime); // Export UTgDemoRecSpectator::execTriggerAutoSlomo(FFrame&, void* const) + +exec function EnableCamSync(bool bEnabled) { } + +function SpectatorSetViewTarget(Actor VT, optional ViewTargetTransitionParams TransitionParams) { } + +event SpectatorReceivedViewTarget(Actor VT) { } + +function SendCamSyncTarget(); // Export UTgDemoRecSpectator::execSendCamSyncTarget(FFrame&, void* const) + +function ReceiveCamSyncTarget(int PawnId, int SourcePlayerId); // Export UTgDemoRecSpectator::execReceiveCamSyncTarget(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDemoRecSpectator_Debug.uc b/Development/Src/TgGame/Classes/TgDemoRecSpectator_Debug.uc old mode 100755 new mode 100644 index 305193f..521d21b --- a/Development/Src/TgGame/Classes/TgDemoRecSpectator_Debug.uc +++ b/Development/Src/TgGame/Classes/TgDemoRecSpectator_Debug.uc @@ -1,7 +1,9 @@ -class TgDemoRecSpectator_Debug extends TgDemoRecSpectator - native(Pawns) - config(Game) - hidecategories(Navigation); - -var Player m_OriginalPlayer; -var PlayerController m_OriginalPlayerController; \ No newline at end of file +class TgDemoRecSpectator_Debug extends TgDemoRecSpectator + config(Game) + hidecategories(Navigation); + +var Player m_OriginalPlayer; +var PlayerController m_OriginalPlayerController; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_AbsorptionField.uc b/Development/Src/TgGame/Classes/TgDeploy_AbsorptionField.uc new file mode 100644 index 0000000..e69e52d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_AbsorptionField.uc @@ -0,0 +1,12 @@ +class TgDeploy_AbsorptionField extends TgDeploy_Shield + native(ChampLazarus) + notplaceable + hidecategories(Navigation) + config(Engine); + +native function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgDeploy_AbsorptionField::execMitigateHealthDamage(FFrame&, void* const) + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Barrage.uc b/Development/Src/TgGame/Classes/TgDeploy_Barrage.uc new file mode 100644 index 0000000..735943c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Barrage.uc @@ -0,0 +1,20 @@ +class TgDeploy_Barrage extends TgDeployable + native(ChampViktor) + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgCameraShake m_CameraShake; +var float m_fAllowableGroundTraceDist; +var bool m_bShouldAirBurst; + +native function AdjustMeshToGround(); // Export UTgDeploy_Barrage::execAdjustMeshToGround(FFrame&, void* const) + +simulated function TriggerHitFX() { } + +simulated event PlayFireFx() { } + +state Deploy {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_BlackHole.uc b/Development/Src/TgGame/Classes/TgDeploy_BlackHole.uc new file mode 100644 index 0000000..4bf1838 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_BlackHole.uc @@ -0,0 +1,32 @@ +class TgDeploy_BlackHole extends TgDeployable + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fRadiusScale; +var float m_fMaxPullSpeed; +var float m_fMinPullSpeed; +var float m_fDistanceWithMaxSpeed; +var float m_fEventHorizonDistance; +var float m_fInnerRadius; +var array m_ActorsInRange; +var TgPawn m_CachedPawnOwner; +var TgRepInfo_TaskForce m_CachedEnemyTaskForce; +var bool r_bPullActive; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRadiusScale; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_bPullActive; +} + +native function ApplyPullEffects(TgPawn Target, float DeltaTime); // Export UTgDeploy_BlackHole::execApplyPullEffects(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event ClearAllTouched() { } + +simulated event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Bomb.uc b/Development/Src/TgGame/Classes/TgDeploy_Bomb.uc new file mode 100644 index 0000000..33f373c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Bomb.uc @@ -0,0 +1,36 @@ +class TgDeploy_Bomb extends TgDeployable + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +var float r_fPersistTime; +var () export editinline StaticMeshComponent m_CountdownIndicator; +var transient MaterialInstanceConstant m_CountdownIndicatorMIC; +var repnotify float r_fRadiusScale; + +replication { + if(bNetInitial && int(Role) == int(ENetRole.ROLE_Authority)) r_fPersistTime; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRadiusScale; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PostBeginPlay() { } + +function OnPersistTimerExpire() { } + +simulated function ApplyHit(out array ImpactList) { } + +function int GetNumEnemyPlayersInList(out array ImpactList) { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +event ScaleAbilityRadius() { } + +simulated event ScaleAbilityFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_BombKingStickyBomb.uc b/Development/Src/TgGame/Classes/TgDeploy_BombKingStickyBomb.uc new file mode 100644 index 0000000..71f1d1b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_BombKingStickyBomb.uc @@ -0,0 +1,56 @@ +class TgDeploy_BombKingStickyBomb extends TgDeployable + native(ChampBombKing) + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool r_bDetonated; +var bool c_bSuppressExplosion; +var repnotify bool r_bShouldDetach; +var repnotify TgPawn_Character r_StuckPlayer; +var name m_StuckSocket; +var TgPawn_Character m_CachedPlayer; +var repnotify Vector r_HitNormal; +var float m_fCachedCollisionRadius; +var float m_fCachedCollisionHeight; +var TgSpecialFx m_GetStuckFx; +var TgSpecialFx m_StickOtherFx; +var TgPawn_LanePusherBase r_StuckCart; +var Rotator r_StuckRotation; +var Vector r_CartOffset; +var TgDeployable r_StuckGeometry; +var repnotify int r_nOriginalProjectileID; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_CartOffset, r_HitNormal, r_StuckCart, r_StuckGeometry, r_StuckPlayer, r_StuckRotation, r_bDetonated, r_bShouldDetach; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_nOriginalProjectileID; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event HideSpawningProjectile() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +function DetachTimer() { } + +simulated event DetachFromPlayer() { } + +simulated event Check1PHide() { } + +simulated event StickToPlayerSocket() { } + +simulated function Tick(float DeltaSeconds) { } + +event Landed(vector HitNormal, actor FloorActor) { } + +event ExplodeOnShield() { } + +function InstantFireDeployable() { } + +simulated function CheckHideHUDOverlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_DarkConvergence.uc b/Development/Src/TgGame/Classes/TgDeploy_DarkConvergence.uc new file mode 100644 index 0000000..9d9d6bf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_DarkConvergence.uc @@ -0,0 +1,52 @@ +class TgDeploy_DarkConvergence extends TgDeploy_Bomb + native(ChampOracle) + placeable + hidecategories(Navigation) + config(Engine); + +const MAX_DARK_CONVERGENCE_TARGETS = 5; + +const DARK_CONVERGENCE_PULL_BEAM_FX_ID = 7681; + +struct PullData { + var TgPawn_Character Character; + var Vector SourceLocation; + var Vector TargetLocation; + structdefaultproperties {} +}; + +var array m_PullDataList; +var repnotify TgPawn_Character r_PulledTargets[5]; +var repnotify Vector r_PulledTargetLocations[5]; +var array c_Beams; +var float c_fHideBeamsTimer; +var float s_fValidationRayDistance; +var float s_fValidationRayRadius; +var float s_fValidationRayHeight; +var float s_fValidationMaxFloorOffset; +var float s_fVerticalTargetLocationOffset; + +simulated function float GetPullDelay() { } + +simulated function float GetPullTime() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function ApplyForcedView() { } + +simulated function CreateBeams() { } + +simulated function HideBeams() { } + +simulated function UpdateBeams() { } + +simulated function ApplyHit(out array ImpactList) { } + +function StartPull() { } + +native simulated function DetermineTeleportLocations(); // Export UTgDeploy_DarkConvergence::execDetermineTeleportLocations(FFrame&, void* const) + +simulated function Tick(float DeltaSeconds) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_DemonTeleport.uc b/Development/Src/TgGame/Classes/TgDeploy_DemonTeleport.uc new file mode 100644 index 0000000..b9f098e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_DemonTeleport.uc @@ -0,0 +1,8 @@ +class TgDeploy_DemonTeleport extends TgDeployable + native(ChampDemon) + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_DeployableLinked.uc b/Development/Src/TgGame/Classes/TgDeploy_DeployableLinked.uc new file mode 100644 index 0000000..cc06eb3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_DeployableLinked.uc @@ -0,0 +1,10 @@ +class TgDeploy_DeployableLinked extends TgDeploy_MatchParentFireMode + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +var TgDeployable m_ParentDeployable; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_DeployableLinkedEffectField.uc b/Development/Src/TgGame/Classes/TgDeploy_DeployableLinkedEffectField.uc new file mode 100644 index 0000000..c3a18ec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_DeployableLinkedEffectField.uc @@ -0,0 +1,10 @@ +class TgDeploy_DeployableLinkedEffectField extends TgDeploy_EffectField + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +var TgDeployable m_ParentDeployable; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_DominanceFlag.uc b/Development/Src/TgGame/Classes/TgDeploy_DominanceFlag.uc new file mode 100644 index 0000000..403a405 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_DominanceFlag.uc @@ -0,0 +1,18 @@ +class TgDeploy_DominanceFlag extends TgDeploy_EffectField + native(ChampFlak) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fRadiusForFX; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRadiusForFX; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event ScaleAbilityFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_DreadSerpent.uc b/Development/Src/TgGame/Classes/TgDeploy_DreadSerpent.uc new file mode 100644 index 0000000..3e4a800 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_DreadSerpent.uc @@ -0,0 +1,11 @@ +class TgDeploy_DreadSerpent extends TgDeploy_EffectField + placeable + hidecategories(Navigation) + config(Engine); + +var array s_HitActors; + +function ProxyTouchHit(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_EffectAura.uc b/Development/Src/TgGame/Classes/TgDeploy_EffectAura.uc new file mode 100644 index 0000000..a77fc68 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_EffectAura.uc @@ -0,0 +1,46 @@ +class TgDeploy_EffectAura extends TgDeploy_MatchParentFireMode + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fRadiusScale; +var array m_TouchingActors; +var array m_AffectedActors; +var float m_fLastBlockedByBlockersTime; +var float m_fMinBlockedByBlockersTime; +var array m_BlockedActors; +var TgCollisionProxy_Cylinder m_CollisionProxy; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRadiusScale; +} + +native function ApplyEffects(Actor Target); // Export UTgDeploy_EffectAura::execApplyEffects(FFrame&, void* const) + +native function RemoveEffects(Actor Target); // Export UTgDeploy_EffectAura::execRemoveEffects(FFrame&, void* const) + +native function float GetDistanceToTarget(Actor Target); // Export UTgDeploy_EffectAura::execGetDistanceToTarget(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +simulated event float GetCurrentRadius() { } + +simulated event ClearAllTouched() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event Destroyed() { } + +simulated event SpawnCollisionProxy() { } + +event ScaleCollisionProxy() { } + +simulated event ScaleFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_EffectField.uc b/Development/Src/TgGame/Classes/TgDeploy_EffectField.uc new file mode 100644 index 0000000..ac2f27a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_EffectField.uc @@ -0,0 +1,39 @@ +class TgDeploy_EffectField extends TgDeploy_MatchParentFireMode + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +var float m_fEffectFieldHeight; +var repnotify float r_fRadiusScale; +var array m_TouchingPawns; +var array m_HitActors; +var bool m_bOnlyHitOnce; +var TgCollisionProxy_Cylinder m_CollisionProxy; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRadiusScale; +} + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +function ProxyTouchHit(Actor Other) { } + +function ProxyUnTouchHit(Actor Other) { } + +simulated event float GetCurrentRadius() { } + +simulated event ClearAllTouched() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event Destroyed() { } + +simulated event SpawnCollisionProxy() { } + +event ScaleCollisionProxy() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_EffectSpots.uc b/Development/Src/TgGame/Classes/TgDeploy_EffectSpots.uc new file mode 100644 index 0000000..3261046 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_EffectSpots.uc @@ -0,0 +1,82 @@ +class TgDeploy_EffectSpots extends TgDeploy_MatchParentFireMode + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +const MAX_SPOT_POINTS = 100; + +struct EffectSpotInfo { + var bool bIsActive; + var Vector vLocation; + var Rotator rRotation; + var float fRadius; + var float fHeight; + var int nFXIndex; + var int nIntensityLevel; + structdefaultproperties {} +}; + +struct EffectSpotTarget { + var Actor Target; + var bool bNeedsRefresh; + structdefaultproperties {} +}; + +struct EffectSpotFXInfo { + var TgSpecialFx Fx; + var int nFXIndex; + structdefaultproperties {} +}; + +var repnotify EffectSpotInfo r_EffectSpots[100]; +var int m_nNewSpotIndex; +var TgCollisionProxy_Cylinder m_CollisionProxy; +var float m_fFirstPassRadius; +var array m_TouchingActors; +var array m_AffectedActors; +var bool m_bUsesEffectRefresh; +var float m_fLastRefreshTime; +var float m_fMinRefreshTime; +var EffectSpotFXInfo c_SpotFX[100]; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_EffectSpots; +} + +native function ApplyEffects(Actor Target); // Export UTgDeploy_EffectSpots::execApplyEffects(FFrame&, void* const) + +native function RemoveEffects(Actor Target); // Export UTgDeploy_EffectSpots::execRemoveEffects(FFrame&, void* const) + +native function InitializeSpecialFX(int spotIndex); // Export UTgDeploy_EffectSpots::execInitializeSpecialFX(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function Tick(float DeltaSeconds) { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +event int SpawnNewSpot(Vector vLocation, Rotator rRotation, optional float fRadius=0.0000000, optional float fHeight=0.0000000, optional int nFXIndex=0, optional int nIntensityLevel=0) { } + +simulated function UpdateEffectSpots() { } + +simulated event SpawnCollisionProxy() { } + +event ScaleCollisionProxy() { } + +simulated function UpdateSpotFX(int spotIndex) { } + +simulated function UpdateParticleParams(int spotIndex) { } + +simulated function ClearEffectSpots() { } + +simulated event ClearAllTouched() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_EffectTrail.uc b/Development/Src/TgGame/Classes/TgDeploy_EffectTrail.uc new file mode 100644 index 0000000..2cd3db4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_EffectTrail.uc @@ -0,0 +1,44 @@ +class TgDeploy_EffectTrail extends TgDeploy_MatchParentFireMode + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +const MAX_TRAIL_POINTS = 20; + +var TgPawn r_TrailPawn; +var int m_TrailEffectID; +var TgSpecialFx m_TrailEffects; +var bool m_bHasInitialPoint; +var bool r_bInDeployMode; +var float m_fPointDistance; +var float m_fPointLifetime; +var int m_nNextPointIndex; +var int m_nTailPointIndex; +var Vector m_TrailPoints[20]; +var Vector m_ParticleSystemOffsets[20]; +var float m_TrailTimes[20]; +var TgCollisionProxy_Cylinder m_CollisionProxies[20]; +var export editinline DecalComponent m_Decals[20]; + +replication { + if(bNetInitial && int(Role) == int(ENetRole.ROLE_Authority)) r_TrailPawn; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bInDeployMode; +} + +native function bool CalculateAndSpawnNextPiece(); // Export UTgDeploy_EffectTrail::execCalculateAndSpawnNextPiece(FFrame&, void* const) + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ConsumeTailPiece() { } + +simulated event bool SpawnNewTrailFX(Vector trailLocation, Vector particleOffset) { } + +function OnPersistTimerExpire() { } + +simulated event ShutdownDeployMode() { } + +simulated function Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Epicenter.uc b/Development/Src/TgGame/Classes/TgDeploy_Epicenter.uc new file mode 100644 index 0000000..55e8380 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Epicenter.uc @@ -0,0 +1,9 @@ +class TgDeploy_Epicenter extends TgDeploy_TurretEffectField + placeable + hidecategories(Navigation) + config(Engine); + +function OnProxyUnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Exhaust.uc b/Development/Src/TgGame/Classes/TgDeploy_Exhaust.uc new file mode 100644 index 0000000..2e8bee4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Exhaust.uc @@ -0,0 +1,8 @@ +class TgDeploy_Exhaust extends TgDeploy_EffectTrail + native(ChampBarik) + placeable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Explosion.uc b/Development/Src/TgGame/Classes/TgDeploy_Explosion.uc new file mode 100644 index 0000000..478bbd3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Explosion.uc @@ -0,0 +1,12 @@ +class TgDeploy_Explosion extends TgDeploy_EffectAura + native(Deployable) + placeable + hidecategories(Navigation) + config(Engine); + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event ScaleFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Expose.uc b/Development/Src/TgGame/Classes/TgDeploy_Expose.uc new file mode 100644 index 0000000..4e62a50 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Expose.uc @@ -0,0 +1,9 @@ +class TgDeploy_Expose extends TgDeploy_TurretEffectField + placeable + hidecategories(Navigation) + config(Engine); + +function FireAmmunitionDeployable() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Geometry.uc b/Development/Src/TgGame/Classes/TgDeploy_Geometry.uc new file mode 100644 index 0000000..278f5ad --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Geometry.uc @@ -0,0 +1,25 @@ +class TgDeploy_Geometry extends TgDeployable + native(Deployable) + notplaceable + hidecategories(Navigation) + config(Engine); + +var array m_OverlappingActors; +var array m_DesiredPushDirection; +var bool m_bPushOverlappingActors; +var bool m_bAllyPassthrough; +var bool m_bEnemyPassthrough; +var float m_fPushFactor; + +native function bool IsPushable(const Actor Other); // Export UTgDeploy_Geometry::execIsPushable(FFrame&, void* const) + +native function bool ShouldSelfDestructWhenTouchedBy(const Actor Other); // Export UTgDeploy_Geometry::execShouldSelfDestructWhenTouchedBy(FFrame&, void* const) + +native function FindOverlappingActors(); // Export UTgDeploy_Geometry::execFindOverlappingActors(FFrame&, void* const) + +native function Vector CalcPushDirection(Vector HitLocation, Vector HitNormal); // Export UTgDeploy_Geometry::execCalcPushDirection(FFrame&, void* const) + +native function PushOverlappingActors(float DeltaSeconds); // Export UTgDeploy_Geometry::execPushOverlappingActors(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_GeometryBarrierTank.uc b/Development/Src/TgGame/Classes/TgDeploy_GeometryBarrierTank.uc new file mode 100644 index 0000000..ca7b436 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_GeometryBarrierTank.uc @@ -0,0 +1,57 @@ +class TgDeploy_GeometryBarrierTank extends TgDeploy_Geometry + native(ChampBarrierTank) + notplaceable + hidecategories(Navigation) + config(Engine); + +const IMPASSE_SIDE_WALL_SEGMENTS = 2; + +var TgPawn_BarrierTank m_CachedInaraPawn; +var export editinline MeshComponent m_CenterMesh; +var export editinline MeshComponent m_LeftMeshes[2]; +var export editinline MeshComponent m_RightMeshes[2]; +var int m_WallMeshIDCenter; +var int m_WallMeshIDEndCap; +var repnotify bool r_bGrowthModeActivationSignal; +var bool m_bInGrowthMode; +var bool m_bDidInitialHit; +var repnotify bool r_bEarthenGuardActive; +var repnotify bool r_bHasAlpine; +var float m_fGrowStartTime; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && !bNetInitial) r_bEarthenGuardActive, r_bGrowthModeActivationSignal, r_bHasAlpine; +} + +native function SpawnMeshSegments(); // Export UTgDeploy_GeometryBarrierTank::execSpawnMeshSegments(FFrame&, void* const) + +native function InitializeMeshSegment(MeshComponent Mesh, float fOffset); // Export UTgDeploy_GeometryBarrierTank::execInitializeMeshSegment(FFrame&, void* const) + +native function SignalGrowthModeStart(); // Export UTgDeploy_GeometryBarrierTank::execSignalGrowthModeStart(FFrame&, void* const) + +native function ToggleGrowthMode(bool bTurnOn); // Export UTgDeploy_GeometryBarrierTank::execToggleGrowthMode(FFrame&, void* const) + +native function PushBasedActors(); // Export UTgDeploy_GeometryBarrierTank::execPushBasedActors(FFrame&, void* const) + +native function DoInitialHit(); // Export UTgDeploy_GeometryBarrierTank::execDoInitialHit(FFrame&, void* const) + +native function PushOverlappingActors(float DeltaSeconds); // Export UTgDeploy_GeometryBarrierTank::execPushOverlappingActors(FFrame&, void* const) + +native function Vector GetSegmentWorldLocation(Vector vLocalLocation); // Export UTgDeploy_GeometryBarrierTank::execGetSegmentWorldLocation(FFrame&, void* const) + +native function bool HasCachedInaraPawn(); // Export UTgDeploy_GeometryBarrierTank::execHasCachedInaraPawn(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event AddBasedPawn(TgPawn basedPawn) { } + +event RemoveBasedPawn(TgPawn basedPawn) { } + +simulated event ActivateDisplayGroups(name DisplayGroup, bool bActivateIndependent, optional bool bTurnOn=true) { } + +simulated function DeployComplete() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_GeometryBuck.uc b/Development/Src/TgGame/Classes/TgDeploy_GeometryBuck.uc new file mode 100644 index 0000000..d9ecf28 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_GeometryBuck.uc @@ -0,0 +1,13 @@ +class TgDeploy_GeometryBuck extends TgDeploy_Geometry + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool m_bInteriorEffectApplied; + +simulated function Tick(float DeltaSeconds) { } + +simulated function Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Gourd.uc b/Development/Src/TgGame/Classes/TgDeploy_Gourd.uc new file mode 100644 index 0000000..667b356 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Gourd.uc @@ -0,0 +1,22 @@ +class TgDeploy_Gourd extends TgDeploy_EffectField + native(ChampMalDamba) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify bool r_bHasRipenedGourd; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasRipenedGourd; +} + +native function ToggleRipenedGourdFX(); // Export UTgDeploy_Gourd::execToggleRipenedGourdFX(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_HealingTotem.uc b/Development/Src/TgGame/Classes/TgDeploy_HealingTotem.uc new file mode 100644 index 0000000..730c37e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_HealingTotem.uc @@ -0,0 +1,32 @@ +class TgDeploy_HealingTotem extends TgDeployable + native(ChampGrohk) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fRadiusScale; +var repnotify bool r_bHasHealingRain; +var repnotify bool r_bHasWindTotem; +var repnotify float r_fMonolithReduction; +var TgPawn m_CachedPawnOwner; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasHealingRain, r_bHasWindTotem, r_fMonolithReduction, r_fRadiusScale; +} + +native function AdjustHeal(const out ImpactInfo Impact, out float fHeal, int nPropertyId); // Export UTgDeploy_HealingTotem::execAdjustHeal(FFrame&, void* const) + +native function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgDeploy_HealingTotem::execMitigateHealthDamage(FFrame&, void* const) + +native function ToggleHealingRainFX(); // Export UTgDeploy_HealingTotem::execToggleHealingRainFX(FFrame&, void* const) + +native function ToggleWindTotemFX(); // Export UTgDeploy_HealingTotem::execToggleWindTotemFX(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event ScaleAbilityRadius() { } + +simulated event ScaleAbilityFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_HealthNugget.uc b/Development/Src/TgGame/Classes/TgDeploy_HealthNugget.uc new file mode 100644 index 0000000..8f0ddb9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_HealthNugget.uc @@ -0,0 +1,38 @@ +class TgDeploy_HealthNugget extends TgDeployable + native(Deployable) + notplaceable + hidecategories(Navigation) + config(Engine); + +const HEALTH_NUGGET_DOUBLE_ID = 10339; + +const HEALTH_NUGGET_HEAL_ALLIES_ID = 10364; + +const HEAL_ALLIES_DEPLOYABLE_ID = 685; + +const EXIT_STRATEGY_ID = 10698; + +var bool m_bRenderAsActive; +var bool m_bIsActiveRendered; +var bool m_bCountTowardsHealingStats; +var TgHelpTipActor c_HelpTipActor; +var float m_fHealOverride; +var float m_fHoTOverride; +var array m_PendingTouches; + +native function DeployAllyHealAOE(TgPawn_Character TgP); // Export UTgDeploy_HealthNugget::execDeployAllyHealAOE(FFrame&, void* const) + +native function AdjustHeal(const out ImpactInfo Impact, out float fHeal, int nPropertyId); // Export UTgDeploy_HealthNugget::execAdjustHeal(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated function Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_HealthNugget_TeamOnly.uc b/Development/Src/TgGame/Classes/TgDeploy_HealthNugget_TeamOnly.uc new file mode 100644 index 0000000..df4a771 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_HealthNugget_TeamOnly.uc @@ -0,0 +1,18 @@ +class TgDeploy_HealthNugget_TeamOnly extends TgDeploy_HealthNugget + native(Deployable) + notplaceable + hidecategories(Navigation) + config(Engine); + +var int r_nTaskForceAlignment; +var float m_fNuggetSpawnTime; +var float m_fNuggetGracePeriod; + +replication { + if(bNetInitial && int(Role) == int(ENetRole.ROLE_Authority)) r_nTaskForceAlignment; +} + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Illusion.uc b/Development/Src/TgGame/Classes/TgDeploy_Illusion.uc old mode 100755 new mode 100644 index fe2fbe0..3315659 --- a/Development/Src/TgGame/Classes/TgDeploy_Illusion.uc +++ b/Development/Src/TgGame/Classes/TgDeploy_Illusion.uc @@ -1,8 +1,65 @@ -class TgDeploy_Illusion extends TgDeployable - native(ChampYing) - notplaceable - hidecategories(Navigation) - implements(TgInterface_YingIllusion); - -// Export UTgDeploy_Illusion::execAcquireTarget(FFrame&, void* const) -native function bool AcquireTarget(); \ No newline at end of file +class TgDeploy_Illusion extends TgDeployable + native(ChampYing) + notplaceable + hidecategories(Navigation) + implements(TgInterface_YingIllusion) + config(Engine); + +var repnotify float r_fShatterDelay; +var const int m_nShatterDeviceID; +var TgDeviceFire_ShatterExplosion m_ShatterFiremode; +var int s_nNumBeamHits; +var Vector s_BeamAimDir; +var Actor s_BeamTargetActor; +var repnotify Vector r_BeamTargetPos; +var repnotify byte r_nPlayShatterFX; +var array< delegate > s_OnDestroyDelegates; + +replication { + if(bNetDirty && int(Role) == int(ENetRole.ROLE_Authority)) r_BeamTargetPos, r_fShatterDelay, r_nPlayShatterFX; +} + +delegate DestroyedEvent(Actor destroyedActor); + +function TryBeamFire() { } + +native function bool AcquireTarget(); // Export UTgDeploy_Illusion::execAcquireTarget(FFrame&, void* const) + +function StartBeamFire() { } + +function BeamFireAtTarget() { } + +function ClearBeamTarget() { } + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +function FireShatterDevice() { } + +simulated function BeamUpdateFireFXTarget() { } + +simulated function BeamUpdatePSC() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event DestroyIt(optional bool bPlayShatter) { } + +simulated function TriggerShatter(float fDelay) { } + +simulated event Shatter() { } + +simulated function PlayShatterFX() { } + +function AddOnDestroyDelegate(delegate delDestroy) { } + +native function Actor GetActorFromInterface(); // Export UTgDeploy_Illusion::execGetActorFromInterface(FFrame&, void* const) + +native function bool IsNotDestroyed(); // Export UTgDeploy_Illusion::execIsNotDestroyed(FFrame&, void* const) + +simulated function PlayDimensionalLinkFX() { } + +function TgPawn_Ying GetOwningYing() { } + +state Deploy {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_IllusionLongbow.uc b/Development/Src/TgGame/Classes/TgDeploy_IllusionLongbow.uc new file mode 100644 index 0000000..2fdacd3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_IllusionLongbow.uc @@ -0,0 +1,37 @@ +class TgDeploy_IllusionLongbow extends TgDeployable + native(ChampLongbow) + notplaceable + hidecategories(Navigation) + config(Engine); + +var int c_nDefaultBodyMeshId; +var int c_nDefaultHeadMeshId; +var int c_nDefaultWeaponMeshId; +var export editinline TgSkeletalMeshComponent m_HeadMesh; +var export editinline TgSkeletalMeshComponent_Weapon m_WeaponMesh; +var array m_bodyReplacementMICs; +var array m_headReplacementMICs; +var array m_weaponReplacementMICs; +var bool m_bFadingAway; +var const float m_fLifeAfterDeathOverride; +var TgCollisionProxy_Cylinder m_FxCollisionProxy; +var float m_fCollisionRadius; + +native function UpdateFadeAway(); // Export UTgDeploy_IllusionLongbow::execUpdateFadeAway(FFrame&, void* const) + +native function FixupMeshComponent(int nMeshId, TgSkeletalMeshComponent Component); // Export UTgDeploy_IllusionLongbow::execFixupMeshComponent(FFrame&, void* const) + +native function ReplaceWithFadeOutMaterial(); // Export UTgDeploy_IllusionLongbow::execReplaceWithFadeOutMaterial(FFrame&, void* const) + +simulated event OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event OnProxyUnTouch(Actor Other) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event Destroyed() { } + +simulated event SpawnCollisionProxy() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_MatchParentFireMode.uc b/Development/Src/TgGame/Classes/TgDeploy_MatchParentFireMode.uc new file mode 100644 index 0000000..5c40885 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_MatchParentFireMode.uc @@ -0,0 +1,8 @@ +class TgDeploy_MatchParentFireMode extends TgDeployable + native(Deployable) + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Midnight.uc b/Development/Src/TgGame/Classes/TgDeploy_Midnight.uc new file mode 100644 index 0000000..107ea32 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Midnight.uc @@ -0,0 +1,47 @@ +class TgDeploy_Midnight extends TgDeployable + native(ChampBlades) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fPersistTime; +var TgPawn r_TargetPawn; +var MaterialInstanceConstant m_pMIC; +var const Class m_FogInfoClass; +var TgMidnightFogVolumeDensityInfo m_FogInfo; +var bool m_bCleanedUp; +var bool m_b3PFxActive; +var bool m_b1PSoundActive; + +replication { + if(bNetDirty && int(Role) == int(ENetRole.ROLE_Authority)) r_TargetPawn, r_fPersistTime; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event SetPersistTimer() { } + +native function ApplyCameraEffectParams(); // Export UTgDeploy_Midnight::execApplyCameraEffectParams(FFrame&, void* const) + +simulated function MidnightDeployablePersistTimer() { } + +simulated function Destroyed() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated function Cleanup() { } + +native function MaterialInstanceConstant CreateMIC(MaterialInterface pMaterialInterface); // Export UTgDeploy_Midnight::execCreateMIC(FFrame&, void* const) + +simulated event SpawnFog() { } + +simulated event SetFogEnabled(bool bEnabled) { } + +simulated event SetFogDistance(float fDistance) { } + +simulated event SetFogAlpha(float fAlpha) { } + +simulated event SetFogOrigin(Vector vOrigin) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Molotov.uc b/Development/Src/TgGame/Classes/TgDeploy_Molotov.uc new file mode 100644 index 0000000..52d6e02 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Molotov.uc @@ -0,0 +1,147 @@ +class TgDeploy_Molotov extends TgDeploy_EffectSpots + native(ChampTyra) + placeable + hidecategories(Navigation) + config(Engine); + +const MOLOTOV_CENTER_POINTS = 18; + +const MOLOTOV_NO_NEIGHBOR = -1; + +const MOLOTOV_BLOCK_NEIGHBOR = -2; + +struct MolotovPointInfo { + var Vector vLocation; + var Rotator rRotation; + var int nEffectSpotIndex; + var float fHeatLevel; + var array nTriNeighbors; + structdefaultproperties {} +}; + +struct MolotovCenterInfo { + var int ChildrenFront[3]; + var int ChildrenFrontLeft[3]; + var int ChildrenFrontRight[3]; + var int ChildrenBack[3]; + var int ChildrenBackLeft[3]; + var int ChildrenBackRight[3]; + structdefaultproperties {} +}; + +struct MolotovTriangleInfo { + var int index1; + var int index2; + var int index3; + var int neighborIndex1; + var int neighborIndex2; + var int neighborIndex3; + var int nRank; + var float fHeatLevel; + var Vector vTriCenter; + var Vector vCenterDirection; + structdefaultproperties {} +}; + +struct MolotovStrandInfo { + var Vector vStartDirection; + var float fAllowanceWeight; + var int nHeadIndex; + var int nAllowableSize; + var array nStrandTrace; + structdefaultproperties {} +}; + +struct MolotovGrowthInfo { + var int nStrandAllotment; + var int nMaxSpots; + var int nMaxInitialStrands; + var float fStrandGrowthFraction; + var bool bStrandsAreSaturated; + var int nCenterGrowthVariance; + var int nSpreadsPerTick; + structdefaultproperties {} +}; + +struct MolotovGeneralSettings { + var Vector vBiasDirection; + var float fUpFactor; + var const float fSpotRadius; + var const float fSpotHeight; + structdefaultproperties {} +}; + +struct MolotovEligibilityRecord { + var bool bIsEligible; + var Vector vLocation; + var Vector vHitNormal; + structdefaultproperties {} +}; + +var array m_PointInfos; +var MolotovCenterInfo m_CenterInfo; +var array m_TriInfos; +var array m_StrandInfos; +var MolotovGrowthInfo m_GrowthInfo; +var MolotovGeneralSettings m_Settings; + +native function MolotovEligibilityRecord GetSpawnEligibility(Vector StartLocation, float Radius, float Height); // Export UTgDeploy_Molotov::execGetSpawnEligibility(FFrame&, void* const) + +native function RemoveEffects(Actor Target); // Export UTgDeploy_Molotov::execRemoveEffects(FFrame&, void* const) + +simulated event bool CheckItemShopVolumeFailure(Vector TestLocation) { } + +simulated function Tick(float DeltaSeconds) { } + +function CompleteSaturationLevel5Points() { } + +function UpdateHeatLevels() { } + +function float CalcHeatLevel(int triIndex) { } + +function UpdateStrandAllowances() { } + +function bool IsInStrand(int triIndex, int strandIndex) { } + +function float GetStrandSpreadWeight(int strandNum, int neighborNum) { } + +function PushStrandToTip(int strandNum) { } + +function SpawnFromStrand(int strandNum) { } + +function SpawnFromPeripheral() { } + +function bool IsSaturated(int triIndex) { } + +function SpawnFromCenter() { } + +function Vector GetNewSpotLocation(int index1, int index2) { } + +function int SpawnFromTriangle(int triIndex, optional int neighborNum=0) { } + +function LinkNeighbors(int triIndex) { } + +function UpdateAllRanks() { } + +simulated event SetMomentumDirection(Vector projVelocity, Vector HitNormal) { } + +function Rotator AlignSpotByRotation(Vector HitNormal, Rotator rRotation) { } + +function int AddNewPoint(Vector vLocation, Rotator rRotation, bool bAddEffectSpot, optional bool bSkipEligibilityCheck=false) { } + +function SetPointIntensity(int PointIndex, int nIntensityLevel) { } + +simulated function DeployComplete() { } + +function SpawnInitialCenter() { } + +function SpawnInitialStrands() { } + +function bool SpawnStrandFromCenter(int Region) { } + +simulated function UpdateParticleParams(int spotIndex) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_OppressorMine.uc b/Development/Src/TgGame/Classes/TgDeploy_OppressorMine.uc new file mode 100644 index 0000000..a0a29b4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_OppressorMine.uc @@ -0,0 +1,43 @@ +class TgDeploy_OppressorMine extends TgDeployable + native(ChampKinessa) + notplaceable + hidecategories(Navigation) + config(Engine); + +const MAX_OPPRESSOR_MINE_TARGETS = 5; + +var TgPawn m_CachedPawnOwner; +var TgRepInfo_TaskForce m_CachedEnemyTaskForce; +var repnotify Actor r_CurrentTargets[5]; +var int m_nBeamFXID; +var TgSpecialFx m_BeamFXs[5]; +var bool m_bNeedsNetDirtyUpdate; +var TgPawn_LanePusherBase r_StuckCart; +var Rotator r_StuckRotation; +var Vector r_CartOffset; +var float m_fAmplitudeRadiusScale; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_CartOffset, r_CurrentTargets, r_StuckCart, r_StuckRotation; +} + +native function bool IsValidTarget(Actor Target); // Export UTgDeploy_OppressorMine::execIsValidTarget(FFrame&, void* const) + +native function int FilterCurrentTargets(int maxTargets); // Export UTgDeploy_OppressorMine::execFilterCurrentTargets(FFrame&, void* const) + +native function FilterNewTargets(out array newTargets); // Export UTgDeploy_OppressorMine::execFilterNewTargets(FFrame&, void* const) + +native function ApplyEffects(Actor Target); // Export UTgDeploy_OppressorMine::execApplyEffects(FFrame&, void* const) + +native function RemoveEffects(Actor Target); // Export UTgDeploy_OppressorMine::execRemoveEffects(FFrame&, void* const) + +native function UpdateAllBeams(); // Export UTgDeploy_OppressorMine::execUpdateAllBeams(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event bool DamageShouldEnterCombat() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_PoppyBomb.uc b/Development/Src/TgGame/Classes/TgDeploy_PoppyBomb.uc new file mode 100644 index 0000000..582ae49 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_PoppyBomb.uc @@ -0,0 +1,29 @@ +class TgDeploy_PoppyBomb extends TgDeployable + native(ChampBombKing) + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool r_bDetonated; +var TgPawn_Character m_CachedPlayer; +var repnotify Vector r_HitNormal; +var float m_fCachedCollisionRadius; +var float m_fCachedCollisionHeight; +var TgPawn_LanePusherBase r_StuckCart; +var Rotator r_StuckRotation; +var Vector r_CartOffset; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_CartOffset, r_HitNormal, r_StuckCart, r_StuckRotation, r_bDetonated; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +event Landed(vector HitNormal, actor FloorActor) { } + +event ExplodeOnShield() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_RespawnBeacon.uc b/Development/Src/TgGame/Classes/TgDeploy_RespawnBeacon.uc new file mode 100644 index 0000000..1d5695f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_RespawnBeacon.uc @@ -0,0 +1,9 @@ +class TgDeploy_RespawnBeacon extends TgDeployable + notplaceable + hidecategories(Navigation) + config(Engine); + +simulated function DeployComplete() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Reversal.uc b/Development/Src/TgGame/Classes/TgDeploy_Reversal.uc new file mode 100644 index 0000000..517ff10 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Reversal.uc @@ -0,0 +1,35 @@ +class TgDeploy_Reversal extends TgDeploy_Shield + native(ChampAndroxus) + notplaceable + hidecategories(Navigation) + config(Engine); + +var int m_nLargeMeshID; +var export editinline MeshComponent m_SmallMesh; +var export editinline MeshComponent m_LargeMesh; +var repnotify float r_fVengeanceDamage; +var repnotify float r_fAccumulatedDamage; +var repnotify float r_fMinimumDamage; +var TgPawn m_CachedPawnOwner; +var TgDeviceForm_Reversal m_ReversalForm; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fAccumulatedDamage, r_fMinimumDamage, r_fVengeanceDamage; +} + +native function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgDeploy_Reversal::execMitigateHealthDamage(FFrame&, void* const) + +native function ScaleFXByDamage(); // Export UTgDeploy_Reversal::execScaleFXByDamage(FFrame&, void* const) + +native function SendDamageToDevice(); // Export UTgDeploy_Reversal::execSendDamageToDevice(FFrame&, void* const) + +native function ToggleLargeMesh(); // Export UTgDeploy_Reversal::execToggleLargeMesh(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Shield.uc b/Development/Src/TgGame/Classes/TgDeploy_Shield.uc new file mode 100644 index 0000000..3d2e93c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Shield.uc @@ -0,0 +1,14 @@ +class TgDeploy_Shield extends TgDeployable + native(Deployable) + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool bBasedOnPawn; + +event BaseChange() { } + +simulated function Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_ShieldBarik.uc b/Development/Src/TgGame/Classes/TgDeploy_ShieldBarik.uc new file mode 100644 index 0000000..be59575 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_ShieldBarik.uc @@ -0,0 +1,29 @@ +class TgDeploy_ShieldBarik extends TgDeploy_Shield + native(ChampBarik) + notplaceable + hidecategories(Navigation) + config(Engine); + +var repnotify bool r_bHasCapsule; +var repnotify bool r_bHasAcceleratorField; +var repnotify bool r_bHasImpede; +var repnotify bool r_bHasBunker; +var repnotify bool r_bHasFortify; +var array m_AcceleratedActors; +var TgPawn m_CachedPawnOwner; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_bHasCapsule; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasAcceleratorField, r_bHasBunker, r_bHasFortify, r_bHasImpede; +} + +native function ToggleFX(); // Export UTgDeploy_ShieldBarik::execToggleFX(FFrame&, void* const) + +native function ToggleLockdownMode(bool bSetActive); // Export UTgDeploy_ShieldBarik::execToggleLockdownMode(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_ShieldBarikDome.uc b/Development/Src/TgGame/Classes/TgDeploy_ShieldBarikDome.uc new file mode 100644 index 0000000..31e7ede --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_ShieldBarikDome.uc @@ -0,0 +1,10 @@ +class TgDeploy_ShieldBarikDome extends TgDeploy_Shield + native(ChampBarik) + notplaceable + hidecategories(Navigation) + config(Engine); + +simulated event DestroyIt(optional bool bSkipFx) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_ShieldFernando.uc b/Development/Src/TgGame/Classes/TgDeploy_ShieldFernando.uc new file mode 100644 index 0000000..477650f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_ShieldFernando.uc @@ -0,0 +1,29 @@ +class TgDeploy_ShieldFernando extends TgDeploy_Shield + native(ChampFernando) + notplaceable + hidecategories(Navigation) + config(Engine); + +var int m_nLargeShieldMeshID; +var export editinline MeshComponent m_SmallMesh; +var export editinline MeshComponent m_LargeMesh; +var repnotify int r_nToweringBarrierHealth; +var repnotify int r_nAegisBonusHealth; +var bool m_bHasHeatTransfer; +var bool m_bHasRattle; +var TgPawn_Fernando m_CachedFernandoOwner; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nAegisBonusHealth, r_nToweringBarrierHealth; +} + +native function ToggleLargeMesh(); // Export UTgDeploy_ShieldFernando::execToggleLargeMesh(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_ShieldMakoa.uc b/Development/Src/TgGame/Classes/TgDeploy_ShieldMakoa.uc new file mode 100644 index 0000000..71e50c0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_ShieldMakoa.uc @@ -0,0 +1,19 @@ +class TgDeploy_ShieldMakoa extends TgDeploy_Shield + native(ChampMakoa) + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPawn m_CachedPawnOwner; +var repnotify int r_nCarapaceBonusHealth; +var bool r_bHasBarrierReef; +var int m_nBarrierReefDamage; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasBarrierReef, r_nCarapaceBonusHealth; +} + +native function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgDeploy_ShieldMakoa::execMitigateHealthDamage(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_ShieldSiegeUnit.uc b/Development/Src/TgGame/Classes/TgDeploy_ShieldSiegeUnit.uc new file mode 100644 index 0000000..21db4a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_ShieldSiegeUnit.uc @@ -0,0 +1,35 @@ +class TgDeploy_ShieldSiegeUnit extends TgDeployable + native(ChampFlak) + notplaceable + hidecategories(Navigation) + config(Engine); + +var Rotator m_InitRotation; +var export editinline MeshComponent m_VFXCollisionMesh; +var TgCollisionProxy_Cylinder m_CollisionProxy; +var TgDeviceFire m_WatchtowerFiremode; +var TgDevice m_CachedWatchtowerCard; +var float m_GroundSpeed; +var bool m_bOnlyHitOnce; +var array m_TouchingPawns; + +simulated event Landed(vector HitNormal, actor FloorActor) { } + +function OnProxyUnTouch(Actor Other) { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event SpawnCollisionProxy(TgDeviceFire FireMode) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +simulated event ClearAllTouched() { } + +native simulated function bool IsFortressBreakerEquipped(); // Export UTgDeploy_ShieldSiegeUnit::execIsFortressBreakerEquipped(FFrame&, void* const) + +simulated event name GetWhileAliveDisplayGroup() { } + +simulated event name GetDestroyedDisplayGroup() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_SmokeScreen.uc b/Development/Src/TgGame/Classes/TgDeploy_SmokeScreen.uc new file mode 100644 index 0000000..bce0069 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_SmokeScreen.uc @@ -0,0 +1,24 @@ +class TgDeploy_SmokeScreen extends TgDeploy_EffectAura + native(ChampSkye) + placeable + hidecategories(Navigation) + config(Engine); + +var TgPawn m_CachedPawnOwner; +var bool m_bHasAppliedOwnerStealth; +var repnotify float r_fRadiusForFX; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_fRadiusForFX; +} + +native function ApplyEffects(Actor Target); // Export UTgDeploy_SmokeScreen::execApplyEffects(FFrame&, void* const) + +native function RemoveEffects(Actor Target); // Export UTgDeploy_SmokeScreen::execRemoveEffects(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event ScaleFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_ToxicTimeBomb.uc b/Development/Src/TgGame/Classes/TgDeploy_ToxicTimeBomb.uc new file mode 100644 index 0000000..a706614 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_ToxicTimeBomb.uc @@ -0,0 +1,10 @@ +class TgDeploy_ToxicTimeBomb extends TgDeploy_Bomb + native(ChampSkye) + placeable + hidecategories(Navigation) + config(Engine); + +simulated event DestroyIt(optional bool bSkipFx) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_Transporter.uc b/Development/Src/TgGame/Classes/TgDeploy_Transporter.uc new file mode 100644 index 0000000..87001a1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_Transporter.uc @@ -0,0 +1,24 @@ +class TgDeploy_Transporter extends TgDeployable + native(ChampKinessa) + notplaceable + hidecategories(Navigation) + config(Engine); + +var Vector m_StartLocation; +var Vector m_ProjectileEndLocation; +var float m_fProjectileHeight; +var TgSpecialFx m_DeploymentFX; +var repnotify Vector r_TeleportLocation; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_TeleportLocation; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event SpawnDeployFX() { } + +simulated function Tick(float DeltaSeconds) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_TurretEffectField.uc b/Development/Src/TgGame/Classes/TgDeploy_TurretEffectField.uc new file mode 100644 index 0000000..d5e769a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_TurretEffectField.uc @@ -0,0 +1,19 @@ +class TgDeploy_TurretEffectField extends TgDeploy_EffectField + native(ChampBarik) + placeable + hidecategories(Navigation) + config(Engine); + +var array m_DeployTimePendingTargets; +var TgPawn_Turret m_ParentTurret; + +function TouchAllPendingTargets() { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +simulated function Tick(float DeltaSeconds) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_TurretLinked.uc b/Development/Src/TgGame/Classes/TgDeploy_TurretLinked.uc new file mode 100644 index 0000000..dec60c6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_TurretLinked.uc @@ -0,0 +1,12 @@ +class TgDeploy_TurretLinked extends TgDeploy_MatchParentFireMode + native(ChampBarik) + placeable + hidecategories(Navigation) + config(Engine); + +var TgPawn_Turret m_ParentTurret; + +simulated function Tick(float DeltaSeconds) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeploy_WardersField.uc b/Development/Src/TgGame/Classes/TgDeploy_WardersField.uc new file mode 100644 index 0000000..d1501f0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeploy_WardersField.uc @@ -0,0 +1,20 @@ +class TgDeploy_WardersField extends TgDeploy_EffectField + native(ChampBarrierTank) + placeable + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fRadiusForFX; +var repnotify float r_fRadiusScaleForDecal; +var repnotify bool r_bEarthenGuardActive; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bEarthenGuardActive, r_fRadiusForFX, r_fRadiusScaleForDecal; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event ScaleAbilityFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeployable.uc b/Development/Src/TgGame/Classes/TgDeployable.uc old mode 100755 new mode 100644 index a792852..fda65b2 --- a/Development/Src/TgGame/Classes/TgDeployable.uc +++ b/Development/Src/TgGame/Classes/TgDeployable.uc @@ -1,5 +1,415 @@ -class TgDeployable extends Actor - native(Deployable) - nativereplication - notplaceable - hidecategories(Navigation); \ No newline at end of file +class TgDeployable extends Actor + native(Deployable) + nativereplication + notplaceable + hidecategories(Navigation) + implements(TgSkinnableInterface,TgCombatActor,TgObserver_ViewTargetChanged,TgInteractiveAudio,TgGameplayCurveOwner) + config(Engine) + dependson(TgCombatActor, TgGameplayCurvesSet, TgObject); + +enum AdvancedCollisionMode { + ACM_None, // 0 + ACM_Shield, // 1 + ACM_Geometry, // 2 +}; + +struct CollisionSettingsDeployable { + var const TgDeployable.AdvancedCollisionMode mCollisionMode; + var const bool bUseMeshForCollision; + var const bool bPawnsCanBaseOnMe; + var bool bAutoRegisterObstacle; + var bool bHasRegisteredObstacle; + var bool bOnlyBlockShotsFromFront; + var bool bBlockFriendlyFire; + var float fProjectileAllowanceRadius; + var float fExplosionAllowanceRadius; + structdefaultproperties {} +}; + +var repnotify int r_nDeployableId; +var int r_nSkinId; +var int r_nWeaponSkinId; +var bool c_bInitialized; +var bool m_bConsumedOnFire; +var bool m_bFireOnDeploy; +var bool m_bHasAlreadyFiredOnce; +var bool m_bInstantFire; +var bool c_bMinimapOnlyOwnerSee; +var bool r_bTakeDamage; +var bool m_bInDestroyedState; +var bool s_bDestroyedThisTick; +var bool m_bIsDeployed; +var bool c_bEnemyMatLoaded; +var bool m_bDestroyOnOwnerDeathFlag; +var bool m_bDestroyAfterRoundEnds; +var bool m_bAdjustMeshToGround; +var const bool m_bIsVisionBlocker; +var const bool m_bIsAIVisionBlocker; +var const bool m_bMovableProjBlocker; +var const bool m_bDeviceUsedIsHandDevice; +var bool m_bUseSilhouettesOverride; +var (TagetComponent) bool m_bOverrideTargetComponentHeight; +var repnotify bool r_bInitialIsEnemy; +var protected transient bool c_bIsSpectateToggleActive; +var bool m_bUseRangeFalloffCurve; +var int m_nDeployableType; +var int r_nPhysicalType; +var repnotify int r_nHealth; +var TgEffectManager r_EffectManager; +var array m_EquipEffects; +var array s_Properties; +var TgDeviceForm c_Form; +var TgSpecialFx c_FireFx; +var export editinline MeshComponent c_Mesh; +var repnotify Vector r_vFlashLocation; +var repnotify byte r_nFlashCount; +var repnotify byte r_nFlashFireCount; +var byte c_nPreviousFlashFireCount; +var const TgObject.DeployableOverlayIcon m_InitHUDOverlayIcon; +var const TgObject.DeployableOverlayState m_InitHUDOverlayState; +var TgDeviceFire m_FireMode; +var float m_fStateTime; +var int c_nVisibleToLocalPlayer[2]; +var TgActorFactory s_DeployFactory; +var int m_TimeCreated; +var export editinline MeshComponent m_DestroyedMesh; +var float m_fLifeAfterDeathSecs; +var repnotify int r_nReplicateDestroyIt; +var TgInteractiveAudio m_AsInteractiveAudio; +var float s_fPersistTime; +var const export editinline DynamicLightEnvironmentComponent LightEnvironment; +var repnotify float r_fTimeToDeploySecs; +var repnotify float r_fInitDeployTime; +var float m_fCurrentDeployPercentage; +var float r_fCurrentDeployTime; +var float m_fDamagedDuringDeploy; +var TgDeviceFire s_SpawnerDeviceMode; +var TgDevice r_Owner; +var int r_nOwnerFireMode; +var float AlwaysRelevantDistanceSquared; +var float m_fMaxAimAssistStacks; +var CollisionSettingsDeployable m_CollisionSettings; +var array m_PawnsBasedOnMe; +var TgSilhouetteManager m_SilhouetteManager; +var const int m_nInitHUDOverlayDisplayMask; +var const float m_InitHUDOverlayEnemyViewDist; +var () float m_fHUDOverlayZOffset; +var native const Pointer m_pAmSkin; +var native const Pointer m_pAmWeaponSkin; +var (TargetComponent) export editinline CylinderComponent m_TargetComponent; +var (TargetComponent) float m_TargetCollisionTraceDistance; +var (TagetComponent) float m_fOverriddenTargetComponentHeight; +var TgPawn m_LastDamager; +var int m_LastDamagerTimeStamp; +var repnotify TgRepInfo_Deployable r_DRI; +var TgPlayerController c_LocalPC; +var Class m_DRIClass; +var float m_fDisableSpectatorFxTime; +var transient float m_fDisableSpectatorFxTimeRemaining; +var TgGameplayCurves m_GameplayCurves; +var TgAkActorUnoccluded m_AkActorUnoccluded; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_EffectManager, r_fInitDeployTime, r_fTimeToDeploySecs, r_nFlashCount, r_nFlashFireCount, r_nHealth, r_vFlashLocation; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nReplicateDestroyIt; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_bTakeDamage; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_DRI, r_bInitialIsEnemy, r_fCurrentDeployTime, r_nDeployableId, r_nPhysicalType, r_nSkinId; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetOwner) r_Owner, r_nOwnerFireMode; +} + +native function bool ApplyDeployableSetup(); // Export UTgDeployable::execApplyDeployableSetup(FFrame&, void* const) + +native function InitializeDefaultProps(); // Export UTgDeployable::execInitializeDefaultProps(FFrame&, void* const) + +native function AddProperty(int nPropId, float fBase, float fRaw, float FMin, float FMax); // Export UTgDeployable::execAddProperty(FFrame&, void* const) + +native function TgProperty GetProperty(int nPropertyId); // Export UTgDeployable::execGetProperty(FFrame&, void* const) + +native function SetProperty(int nPropertyId, float fNewValue); // Export UTgDeployable::execSetProperty(FFrame&, void* const) + +native function ResetProperties(); // Export UTgDeployable::execResetProperties(FFrame&, void* const) + +native function SwapMeshToDestroyed(); // Export UTgDeployable::execSwapMeshToDestroyed(FFrame&, void* const) + +native function DeployableDestroyed(); // Export UTgDeployable::execDeployableDestroyed(FFrame&, void* const) + +native function int GetMaxDeployHealth(); // Export UTgDeployable::execGetMaxDeployHealth(FFrame&, void* const) + +native function NotifyGroupChanged(); // Export UTgDeployable::execNotifyGroupChanged(FFrame&, void* const) + +native function ForceRecalculateMaterial(); // Export UTgDeployable::execForceRecalculateMaterial(FFrame&, void* const) + +native function RecalculateMaterial(bool bIsFriendlyWithLocalPawn, optional bool bForce); // Export UTgDeployable::execRecalculateMaterial(FFrame&, void* const) + +native function AdjustMeshToGround(); // Export UTgDeployable::execAdjustMeshToGround(FFrame&, void* const) + +native function float CalcMeshOffset(); // Export UTgDeployable::execCalcMeshOffset(FFrame&, void* const) + +native function UpdateTargetCylinder(); // Export UTgDeployable::execUpdateTargetCylinder(FFrame&, void* const) + +native function UpdateDamagers(TgPawn Damager); // Export UTgDeployable::execUpdateDamagers(FFrame&, void* const) + +native function SetInitialHealthPercent(float fPercent); // Export UTgDeployable::execSetInitialHealthPercent(FFrame&, void* const) + +native function TgRepInfo_TaskForce GetTaskForce(); // Export UTgDeployable::execGetTaskForce(FFrame&, void* const) + +native function int GetTaskForceNumber(); // Export UTgDeployable::execGetTaskForceNumber(FFrame&, void* const) + +native function SetTaskForceNumber(int nTaskForceId); // Export UTgDeployable::execSetTaskForceNumber(FFrame&, void* const) + +native function int GetSpawnerDeviceInstanceId(); // Export UTgDeployable::execGetSpawnerDeviceInstanceId(FFrame&, void* const) + +native function int GetSpawnerDeviceId(); // Export UTgDeployable::execGetSpawnerDeviceId(FFrame&, void* const) + +native function bool IsFriendlyWithLocalPawn(); // Export UTgDeployable::execIsFriendlyWithLocalPawn(FFrame&, void* const) + +native function UpdateHealth(); // Export UTgDeployable::execUpdateHealth(FFrame&, void* const) + +native function bool IsInvisibleToAI(optional Actor TestActor); // Export UTgDeployable::execIsInvisibleToAI(FFrame&, void* const) + +native function bool IsHittable(); // Export UTgDeployable::execIsHittable(FFrame&, void* const) + +native function Vector GetHudOverlayLocation(optional bool bCentered=false); // Export UTgDeployable::execGetHudOverlayLocation(FFrame&, void* const) + +native function AdjustHeal(const out ImpactInfo Impact, out float fHeal, int nPropertyId); // Export UTgDeployable::execAdjustHeal(FFrame&, void* const) + +native function PostAkEvent(AkEvent InAkEvent); // Export UTgDeployable::execPostAkEvent(FFrame&, void* const) + +native function RegisterObstacle(); // Export UTgDeployable::execRegisterObstacle(FFrame&, void* const) + +native function UnRegisterObstacle(); // Export UTgDeployable::execUnRegisterObstacle(FFrame&, void* const) + +native function float GetHealth(); // Export UTgDeployable::execGetHealth(FFrame&, void* const) + +native function float GetMaxHealth(); // Export UTgDeployable::execGetMaxHealth(FFrame&, void* const) + +native function float GetHealthPercent(); // Export UTgDeployable::execGetHealthPercent(FFrame&, void* const) + +native function float GetMana(); // Export UTgDeployable::execGetMana(FFrame&, void* const) + +native function float GetMaxMana(); // Export UTgDeployable::execGetMaxMana(FFrame&, void* const) + +native function float GetShieldHealth(); // Export UTgDeployable::execGetShieldHealth(FFrame&, void* const) + +native function float GetMaxShield(); // Export UTgDeployable::execGetMaxShield(FFrame&, void* const) + +native function bool CanTakeHealthDamage(); // Export UTgDeployable::execCanTakeHealthDamage(FFrame&, void* const) + +native function bool CanDealHeadShots(); // Export UTgDeployable::execCanDealHeadShots(FFrame&, void* const) + +native function bool CanTakeHeadShots(); // Export UTgDeployable::execCanTakeHeadShots(FFrame&, void* const) + +native function bool OnlyTakeHeadShots(); // Export UTgDeployable::execOnlyTakeHeadShots(FFrame&, void* const) + +native function bool IsImmuneToDamage(); // Export UTgDeployable::execIsImmuneToDamage(FFrame&, void* const) + +native function bool CanBeExecuted(); // Export UTgDeployable::execCanBeExecuted(FFrame&, void* const) + +native function bool IsImmuneToHealing(); // Export UTgDeployable::execIsImmuneToHealing(FFrame&, void* const) + +native function BuffDamage(Actor Target, TgEffectDamage Effect, ImpactInfo Impact, float fBaseDamage, out float fProratedAmount, out ExtraDamageInfo ExtraInfo); // Export UTgDeployable::execBuffDamage(FFrame&, void* const) + +native function float GetSpecialDamageDealtPercentAI(); // Export UTgDeployable::execGetSpecialDamageDealtPercentAI(FFrame&, void* const) + +native function float GetSpecialDamageTakenPercentAI(); // Export UTgDeployable::execGetSpecialDamageTakenPercentAI(FFrame&, void* const) + +native function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgDeployable::execMitigateHealthDamage(FFrame&, void* const) + +native function float GetDamageReductionPerc(TgDevice damageDev, TgEffectGroup eg); // Export UTgDeployable::execGetDamageReductionPerc(FFrame&, void* const) + +native function TakeHealthDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgDeployable::execTakeHealthDamage(FFrame&, void* const) + +native function bool CanBeLifestealInstigator(); // Export UTgDeployable::execCanBeLifestealInstigator(FFrame&, void* const) + +native function bool CanBeLifestealTarget(); // Export UTgDeployable::execCanBeLifestealTarget(FFrame&, void* const) + +native function bool CanTakeManaDamage(); // Export UTgDeployable::execCanTakeManaDamage(FFrame&, void* const) + +native function TakeManaDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgDeployable::execTakeManaDamage(FFrame&, void* const) + +native function bool CanTakeShieldDamage(); // Export UTgDeployable::execCanTakeShieldDamage(FFrame&, void* const) + +native function bool CanUsePersonalShield(); // Export UTgDeployable::execCanUsePersonalShield(FFrame&, void* const) + +native function int TakePersonalShieldDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgDeployable::execTakePersonalShieldDamage(FFrame&, void* const) + +native function bool ShieldDamageAppliesToHealth(); // Export UTgDeployable::execShieldDamageAppliesToHealth(FFrame&, void* const) + +native function TakeStealthDamage(float fDamage); // Export UTgDeployable::execTakeStealthDamage(FFrame&, void* const) + +native function float GetDamageToLeaveStealth(); // Export UTgDeployable::execGetDamageToLeaveStealth(FFrame&, void* const) + +native function HandleNotificationsForAI(float fStatChange, TgPawn InstigatorPawn); // Export UTgDeployable::execHandleNotificationsForAI(FFrame&, void* const) + +native function bool LocalPlayerHasLOS(); // Export UTgDeployable::execLocalPlayerHasLOS(FFrame&, void* const) + +native function Vector GetLocation(); // Export UTgDeployable::execGetLocation(FFrame&, void* const) + +native function float GetPropCurrentValue(int nPropIndex); // Export UTgDeployable::execGetPropCurrentValue(FFrame&, void* const) + +native function int GetPropIndex(int nPropId); // Export UTgDeployable::execGetPropIndex(FFrame&, void* const) + +native function float GetMarkedPercent(Actor InstigatorPawn); // Export UTgDeployable::execGetMarkedPercent(FFrame&, void* const) + +native function float GetMarkedPercentInhand(Actor InstigatorPawn); // Export UTgDeployable::execGetMarkedPercentInhand(FFrame&, void* const) + +native function OnViewTargetChanged(optional Actor aNewViewTarget); // Export UTgDeployable::execOnViewTargetChanged(FFrame&, void* const) + +native function TgEffectManager GetEffectManager(); // Export UTgDeployable::execGetEffectManager(FFrame&, void* const) + +native function TgCombatActor.GameplayDesignType GetDesignType(); // Export UTgDeployable::execGetDesignType(FFrame&, void* const) + +native function bool IsPet(); // Export UTgDeployable::execIsPet(FFrame&, void* const) + +native function Actor GetPetOwner(); // Export UTgDeployable::execGetPetOwner(FFrame&, void* const) + +native function TgGameplayCurvesSet GetCurrentGameplayCurveSet(TgGameplayCurvesSet.ECurveSetTypes Type); // Export UTgDeployable::execGetCurrentGameplayCurveSet(FFrame&, void* const) + +native function bool UseRangeFalloffCurve(); // Export UTgDeployable::execUseRangeFalloffCurve(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +simulated function NotifyLocalPlayerTeamReceived() { } + +simulated event int GetDeployableUniqueId() { } + +simulated function Actor GetActorFromCombatActor() { } + +simulated function GetAimAssistBounds(const out Vector ObserverLocation, out float Width, out float Height, out Vector Center) { } + +event ApplyEquipEffects() { } + +simulated function OnGetTaskForceNumber(TgSeqAct_GetTaskForceNumber Action) { } + +simulated event StartFire() { } + +simulated event StopFire() { } + +simulated function DeviceFired() { } + +simulated function ImpactInfo CalcDeviceFire(Vector StartTrace, Vector EndTrace, optional out array ImpactList) { } + +function InstantFireDeployable() { } + +simulated function ApplyHit(out array ImpactList) { } + +function Projectile ProjectileFireDeployable() { } + +simulated function Vector GetPhysicalFireStartLoc() { } + +simulated function Vector GetPhysicalFireAimDirection(Vector fireLoc, Vector TargetLocation) { } + +function FireAmmunitionDeployable() { } + +simulated function IncrementFlashCount() { } + +simulated function ClearFlashCount() { } + +function SetFlashLocation(Vector NewLoc) { } + +function ClearFlashLocation() { } + +simulated event PlayFireFx() { } + +simulated function FlashCountUpdated() { } + +simulated function FlashLocationUpdated() { } + +simulated function FlashFireCountUpdated() { } + +simulated function bool IsFiring() { } + +simulated function TimeDeviceFiring() { } + +simulated event StartDeploy() { } + +simulated function RefireCheckTimer() { } + +simulated function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +simulated function CalcDeployPercentage() { } + +function OnPersistTimerExpire() { } + +event ResetPersistTime() { } + +simulated function DeployComplete() { } + +function NotifyDeployed() { } + +function UpdateTimeToDeploySecs(float fValue) { } + +simulated function TickDeploy(float DeltaSeconds) { } + +simulated event name GetWhileAliveDisplayGroup() { } + +simulated event name GetDestroyedDisplayGroup() { } + +simulated event ActivateWhileAliveFx(bool bOn) { } + +simulated event ActivateOnWhenDeployedFx(bool bOn) { } + +simulated event ReplicatedEvent(name VarName) { } + +event SpawningDeviceToggledOff() { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +event AddBasedPawn(TgPawn basedPawn) { } + +event RemoveBasedPawn(TgPawn basedPawn) { } + +simulated function ClearBasedPawnList() { } + +simulated function Tick(float DeltaSeconds) { } + +simulated function Destroyed() { } + +event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +native function string GetDeployableNameById(int DeployableId); // Export UTgDeployable::execGetDeployableNameById(FFrame&, void* const) + +simulated event bool CanApplyEffects() { } + +simulated event bool DamageShouldEnterCombat() { } + +event InitReplicationInfo() { } + +simulated function bool IsBoxExtentInRange(Vector BoxCenter, Vector BoxExtent) { } + +simulated function ToggleSpectateFx(optional bool bForceDisable) { } + +simulated event DeactivateSpectatorFxTimer() { } + +simulated function PlayGenericTakeHit(Vector HitLocation, Vector HitNormal) { } + +native function bool GetDefaultDecalDimensions(int nDecalId, int nSpecialFxId, out float Height, out float Width); // Export UTgDeployable::execGetDefaultDecalDimensions(FFrame&, void* const) + +simulated function UpdateDecalScale(TgSpecialFx Fx, float radiusScale) { } + +simulated event CollisionChanged() { } + +simulated event SetHUDOverlayDisplayMask(int dodm) { } + +simulated event AddHUDOverlayDisplayMask(int dodm) { } + +simulated event SetHUDOverlayIcon(TgObject.DeployableOverlayIcon doi) { } + +simulated event SetHUDOverlayState(TgObject.DeployableOverlayState dos) { } + +simulated event SetHUDOverlayEnemyViewDist(float enemyViewDist) { } + +simulated function float GetMaxAimAssistStacks() { } + +auto state PreInit {} + +state Deploy {} + +state Active {} + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeployableFactory.uc b/Development/Src/TgGame/Classes/TgDeployableFactory.uc new file mode 100644 index 0000000..e4745fd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeployableFactory.uc @@ -0,0 +1,26 @@ +class TgDeployableFactory extends TgActorFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display) + config(Engine); + +var int nCurrentCount; +var float s_fLastSpawnTime; +var () bool s_bSpawnOnce; +var () int s_nDeployableId; +var () float s_fDeployableLifeSpan; + +native function SpawnObject(); // Export UTgDeployableFactory::execSpawnObject(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +function DeployableDied() { } + +simulated function OnToggle(SeqAct_Toggle Action) { } + +function OnKillBots(TgSeqAct_KillBots inAction) { } + +simulated function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDestructible.uc b/Development/Src/TgGame/Classes/TgDestructible.uc new file mode 100644 index 0000000..e8bb0fb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDestructible.uc @@ -0,0 +1,40 @@ +class TgDestructible extends SkeletalMeshActor + native + hidecategories(Navigation) + config(Engine); + +var repnotify TgEffectManager r_EffectManager; +var () int r_nMaxHealth; +var () bool m_bDisplayHealth; +var bool m_bDestroyed; +var transient bool m_bInitialized; +var (FogOfWar) bool m_bFogOfWarBlocker; +var (FogOfWar) bool m_bOneDirectional; +var () int m_nPhysicalType; +var () byte m_nTaskForce; +var repnotify int r_nHealth; +var repnotify int r_nActorInstanceId; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_EffectManager, r_nActorInstanceId, r_nMaxHealth; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nHealth; +} + +native function bool IsFriendlyWithLocalPawn(); // Export UTgDestructible::execIsFriendlyWithLocalPawn(FFrame&, void* const) + +native function ForceNetRelevant(); // Export UTgDestructible::execForceNetRelevant(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated event ReplicatedEvent(name VarName) { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +simulated function DestroyIt(optional bool bSkipFx) { } + +simulated function Destroyed() { } + +simulated event bool CanApplyEffects() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDestructibleFactory.uc b/Development/Src/TgGame/Classes/TgDestructibleFactory.uc new file mode 100644 index 0000000..ac1c281 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDestructibleFactory.uc @@ -0,0 +1,12 @@ +class TgDestructibleFactory extends TgActorFactory + native(Factory) + placeable + hidecategories(Navigation,Advanced,Attachment,Collision,Display,Advanced,Attachment,Collision,Display) + config(Engine); + +var () const editconst export editinline LightEnvironmentComponent LightEnvironment; + +native function SpawnObject(); // Export UTgDestructibleFactory::execSpawnObject(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDevice.uc b/Development/Src/TgGame/Classes/TgDevice.uc old mode 100755 new mode 100644 index 739ba1e..9e0a209 --- a/Development/Src/TgGame/Classes/TgDevice.uc +++ b/Development/Src/TgGame/Classes/TgDevice.uc @@ -1,71 +1,1401 @@ -class TgDevice extends Weapon - native(Devices) - hidecategories(Navigation); - //implements(TgGameplayCurveOwner); - -var TgInventoryObject_Device s_InventoryObject; -var repnotify int r_nPointsAllocated; - -enum EDeviceChangeEvent -{ - DCE_Created, // 0 - DCE_ToggleState, // 1 - DCE_CanFire, // 2 - DCE_Selected, // 3 - DCE_Cooldown, // 4 - DCE_PtsAlloc, // 5 - DCE_Refire, // 6 - DCE_InstanceCount, // 7 - DCE_DeviceBuildup, // 8 -}; - -// Export UTgDevice::execGetTotalDevicePoints(FFrame&, void* const) -native function int GetTotalDevicePoints(); - -// Export UTgDevice::execGetAllocatedDevicePoints(FFrame&, void* const) -native function int GetAllocatedDevicePoints(); - -// Export UTgDevice::execAllocateDevicePoint(FFrame&, void* const) -native function bool AllocateDevicePoint(); - -// Export UTgDevice::execIsOffhand(FFrame&, void* const) -native function bool IsOffhand(); - -native function TgTimerManager GetCooldownTimerManager(); - -simulated event float GetCooldownRemaining(){} - -// Export UTgDevice::execSendDeviceChangeEvent(FFrame&, void* const) -native function SendDeviceChangeEvent(TgDevice.EDeviceChangeEvent Event); - -simulated event bool Use(){} - -event ResetCooldown(int nMode, optional float fCooldownTimeOverride = -1.0000000){} - -simulated event float GetCooldownTime(optional int nMode = -1){} - -reliable client simulated event ClientStartCooldown(int nMode, float fCooldownTime) -{ - local int AbilityCooldownTimerIndex; - local TgTimerManager TimerManager; - - AbilityCooldownTimerIndex = 0; - // End:0x18 - - TimerManager = GetCooldownTimerManager(); - // End:0x80 - if(TimerManager.IsSet(AbilityCooldownTimerIndex)) - { - TimerManager.Close(AbilityCooldownTimerIndex, false); - } - // End:0xF7 - if(fCooldownTime > float(0)) - { - TimerManager.RegisterForEvents(AbilityCooldownTimerIndex, self, 'ClientCooldownTimerExpired'); - TimerManager.Start(AbilityCooldownTimerIndex, fCooldownTime); - } - SendDeviceChangeEvent(4); - //return; -} - -reliable client simulated event ClientResetCooldown(int nMode, float fCooldownTime){} \ No newline at end of file +class TgDevice extends Weapon + native(Devices) + hidecategories(Navigation) + implements(TgGameplayCurveOwner) + config(Engine) + dependson(TgAimAssistKeyframe, TgClientSettings, TgGameplayCurvesSet, TgObject, TgTimerManager); + +const TGMAX_FIRE_MODE = 5; + +const TGEGT_EQUIP = 261; + +const TGEGT_BUILDUP = 262; + +const TGEGT_WHILE_FIRING = 263; + +const TGEGT_WHILE_HOLDING = 15173; + +const TGEGT_PRE_HIT_DELAY = 10455; + +const TGEGT_POST_HIT_DELAY = 10456; + +const TGEGT_EQUIP_MODE = 283; + +const TGEGT_FIRED_PER_SHOT = 10030; + +const TGEGT_ACTIVE = 11073; + +const TGEGT_SUCCESSFUL_HIT = 759; + +const TGEGT_HIT = 264; + +const TGEGT_HIT_SPECIAL_MANAGED = 10036; + +const TGEGT_HIT_SPECIAL_INSTANT = 10681; + +const TGEGT_HIT_AURA = 10060; + +const TGEGT_FINAL_BLOW = 10575; + +const TGD_MESH_TYPE_INHAND = 855; + +const TGD_MESH_TYPE_ATTACHED = 856; + +const TG_VV_PACING_TYPE_HEALTH = 10692; + +const TG_VV_PACING_TYPE_MANA = 10013; + +const TG_VV_PACING_TYPE_ENERGY = 10014; + +const TG_AIM_FUDGE_FACTOR = 256.0f; + +const TG_RANGE_FALLOFF_BEGIN_PERCENT = 50.0f; + +const TG_RANGE_FALLOFF_MIN_PERCENT = 10.0f; + +const TG_AOE_FALLOFF_BEGIN_PERCENT = 70.0f; + +const TG_AOE_FALLOFF_MIN_PERCENT = 70.0f; + +const TG_MIN_REFIRE_SPEED = 0.5; + +const TG_RETICULE_AIM_DISTANCE = 10.f; + +const DEPLOYMODE_GROUND_DELTA_CHECK_DIST = 60.0f; + +const DEPLOYMODE_MINIMUM_RADIUS_CHECK_DIST = 20.0f; + +const REFIRE_SERVER_GRACE = 0.1f; + +const COOLDOWN_SERVER_GRACE = 0.5f; + +const TGDT_ABILITY1_CARD = 15000; + +const TGDT_ABILITY2_CARD = 15188; + +const TGDT_ALTFIRE_CARD = 15189; + +const TGDT_ARMOR_CARD = 11051; + +const TGDT_WEAPON_CARD = 11049; + +const TGDT_BASIC_ATTACK = 10828; + +const TGDT_TEST_DEVICE = 10844; + +const TGDT_PASSIVES = 10964; + +const TGDT_ABILITY = 11041; + +const TGDT_MOVEMENT_ABILITY = 11070; + +const TGDT_MOUNT = 11077; + +const TGDT_SUB_COMPONENT = 11052; + +const TGDT_ULTIMATE = 15052; + +const TGDT_RECALL = 15054; + +const TGDT_ACTIVES = 15055; + +const TGDT_EMOTE = 15205; + +const TGDT_SPRAY = 15332; + +const TGDT_TALENT_ABILITY1 = 15381; + +const TGDT_TALENT_ABILITY2 = 15390; + +const TGDT_TALENT_ALTFIRE = 15391; + +const TGDT_TALENT_ARMOR = 15392; + +const TGDT_TALENT_WEAPON = 15393; + +const TGDT_TALENT_ULTIMATE = 15437; + +const TGDT_BOT_MELEE = 671; + +const TGDT_BOT_RANGED = 670; + +const TGDT_RANGED = 388; + +const TGDT_CONSUMABLE = 10097; + +const TG_CANCEL_SAFETY_PERIOD = 0.5f; + +const TGDT_MAX_QUEUED_PROJECTILE_TOUCHES = 128; + +const MAX_RECOIL_SEED = 32749; + +enum EWeaponFireType { + EWFT_InstantHit, // 0 + EWFT_Projectile, // 1 + EWFT_Custom, // 2 + EWFT_None, // 3 +}; + +enum ETargetingModeStatus { + TMS_None, // 0 + TMS_CannotFire, // 1 + TMS_CannotPlace, // 2 + TMS_OK, // 3 + TMS_OutOfRange, // 4 +}; + +enum EDeviceChangeEvent { + DCE_Created, // 0 + DCE_ToggleState, // 1 + DCE_CanFire, // 2 + DCE_Selected, // 3 + DCE_Cooldown, // 4 + DCE_PtsAlloc, // 5 + DCE_Refire, // 6 + DCE_InstanceCount, // 7 + DCE_DeviceBuildup, // 8 +}; + +enum EAltFireType { + ALTFIRE_None, // 0 + ALTFIRE_SecondMode, // 1 + ALTFIRE_AlternateDevice, // 2 + ALTFIRE_AlternateDeviceAndFireInhand, // 3 +}; + +enum ENotifyDelegateEvents { + NDE_OnFired, // 0 + NDE_OnReload, // 1 + NDE_OnStartFire, // 2 + NDE_OnStopFire, // 3 + NDE_Generic1, // 4 + NDE_Generic2, // 5 + NDE_Generic3, // 6 +}; + +enum DeviceEmoteAt { + DEA_StartBuildup, // 0 + DEA_StartFire, // 1 + DEA_Custom, // 2 +}; + +enum DeviceTimerBarType { + DTBT_None, // 0 + DTBT_PreHit, // 1 + DTBT_PostHit, // 2 + DTBT_PersistTime, // 3 + DTBT_RefireTime, // 4 + DTBT_FireHold, // 5 + DTBT_Custom, // 6 +}; + +struct AmmoTransaction { + var float TransactionTimestamp; + var int TransactionId; + var int AmmoAmountChanged; + var bool FilledClip; + structdefaultproperties {} +}; + +struct TrackedFiringAmmoConsumption { + var int FiringRequestID; + var int AmmoConsumed; + structdefaultproperties {} +}; + +struct TgQueuedSimulatedProjectileSpawn { + var float TimeStampToSpawn; + var int FireRequestId; + var TgDeviceFire FireMode; + var Vector ProjectileSpawnLocation; + var Vector ProjectileSpawnDir; + var int ProjectileIndex; + var int ProjectileIdOverride; + var float Range; + var Actor trackingTarget; + var Vector EndTrace; + var float ClientMovementTimeStamp; + var float AccuracyRandomValue1; + var float AccuracyRandomValue2; + structdefaultproperties {} +}; + +struct TgQueuedProjectileExplosion { + var int ClientFireRequestId; + var Actor Target; + var Vector HitLocation; + var Vector HitNormal; + var float ProjectileAliveTime; + var float MovementTimeStamp; + var float AoeRewindTimeStamp; + structdefaultproperties {} +}; + +struct ImpactToValidate { + var int PackedAssociatedShotIDs; + var float ImpactTimeStamp; + var ImpactInfo Impact; + structdefaultproperties {} +}; + +struct TgQueuedRefire { + var int ClientFireRequestId; + var byte DesiredFireMode; + var AimData Aim; + structdefaultproperties {} +}; + +struct TgQueuedInstantFireShot { + var int FireRequestId; + var AimData Aim; + var ImpactToValidate PrimaryImpact; + var array Impacts; + var int AmmoToConsume; + var float AccuracyRandomValue1; + var float AccuracyRandomValue2; + structdefaultproperties {} +}; + +struct AccuracySettings { + var bool bUsesAdvancedAccuracy; + var float fMaxAccuracy; + var float fMinAccuracy; + var float fAccuracyLossPerShot; + var float fAccuracyGainPerSec; + var float fAccuracyGainDelay; + var int nNumFreeShots; + structdefaultproperties {} +}; + +struct RecoilSettings { + var bool bUsesRecoil; + var float fRecoilReductionPerSec; + var float fRecoilCenterDelay; + var float fRecoilSmoothRate; + structdefaultproperties {} +}; + +var repnotify int r_nDeviceId; +var int r_nDeviceInstanceId; +var repnotify int r_nInstanceCount; +var TgObject.TG_EQUIP_POINT r_eEquippedAt; +var byte CurrentFireMode; +var byte m_PendingFireMode; +var TgDevice.ETargetingModeStatus c_eTargetingModeStatus; +var byte m_nDesiredFireMode; +var TgObject.EDeviceFailType m_eCachedDeviceFailType; +var TgClientSettings.ECastMode m_eCastModeOverride; +var () TgDevice.EAltFireType m_AltFireType; +var TgObject.EReticuleType m_ReticuleType; +var TgObject.EReticuleType m_ZoomedReticuleType; +var TgDevice.DeviceEmoteAt m_DeviceEmoteAt; +var TgDevice.DeviceTimerBarType m_DeviceTimerBarType; +var repnotify int r_nPointsAllocated; +var bool m_bSocketMaxCalculated; +var bool r_bParentDeviceOwnedByOffhand; +var bool bPendingFire; +var bool m_IsPendingSetFireMode; +var bool m_bEquipEffectsApplied; +var bool m_CachedMissedInstantFire; +var bool c_bUsesTargetingReticle; +var bool r_OverrideUsesTargetingModeAsFalse; +var bool s_bIgnoreReceivedAim; +var bool m_bHandDevice; +var bool m_bProcAsIfHandDevice; +var bool m_bLockInputDuringFire; +var bool m_bLockCameraDuringFire; +var bool m_bShouldCacheAim; +var bool r_bConsumedOnUse; +var bool r_bConsumedOnDeath; +var bool m_bCachedDeviceCanFire; +var bool m_bCarryPreFireToPostFire; +var bool m_bIsSecondaryFire; +var bool m_bIgnoreSecondaryFireLogic; +var bool m_bConsumePowerPoolOnStartFire; +var bool m_bAlwaysStartCooldown; +var bool m_bInTargetingMode; +var bool m_IsBeingInterrupted; +var bool HasAlreadyFiredOnce; +var bool c_bAltFireSecondModeNow; +var bool m_bBuildupShouldInterruptStealth; +var bool m_bPreFireShouldInterruptStealth; +var bool m_bFireShouldInterruptStealth; +var bool m_bPostFireShouldInterruptStealth; +var bool m_bReloadingShouldInterruptStealth; +var bool m_bCancelingShouldInterruptStealth; +var bool m_bStartFireShouldEnterCombat; +var bool m_bFireShouldEnterCombat; +var bool m_bShouldUseInstigatorsTimeDilation; +var bool m_bDamages; +var bool m_bStuns; +var bool m_bSlows; +var bool m_bProjectileFollowOwnerYaw; +var bool m_bAimThroughReticule; +var bool m_bNoReticleBloom; +var bool m_bUseCustomCastMode; +var bool m_bIsAltFiring; +var bool m_bAltFireEnabled; +var bool m_bUsesBurstFire; +var bool m_bIsFirstBurstShot; +var bool m_bOnlyFirstBurstCostsAmmo; +var bool m_bBurstCanBeInterrupted; +var bool m_bCanEndBurstEarly; +var bool c_bBurstPendingStopFire; +var bool s_bInBurstRecovery; +var bool s_bIsStartingBurstFire; +var bool m_bCanRegenAmmoWhileFiring; +var bool m_bUsesSimulatedAmmo; +var bool m_bCanReloadEarly; +var bool m_bForce3PViewWhileFiring; +var bool m_bCanCancelWithJump; +var bool m_bEnterCombatOnFire; +var () bool m_bDeployAtFeetOnFailure; +var bool m_bMustBeOnGroundToFire; +var bool m_bHideTargeterWhenInvalid; +var bool m_bAbilityRequiresInhandResync; +var bool m_bParentAnimComponentHands; +var bool m_bParentAnimComponent1PHead; +var bool m_bAmmoWasGiven; +var bool m_bFirstAmmoWasGiven; +var bool m_bCooldownWasModified; +var bool m_bDisableLagCompensation; +var bool m_bUseRangeFalloffCurve; +var bool m_bUseDeviceMeshWhenTargeting; +var bool m_bPlayPutAway; +var bool m_bCanToggleTargeting; +var bool m_bRemoveTargetingOnMount; +var const bool m_bDoNotAllowHeadShots; +var const bool m_bConsolidateMultipleShots; +var bool m_bAllowFiringDuring3pTo1pTransition; +var bool s_bLockFiringForRoundEnd; +var bool m_bPreventInterrupt; +var bool m_bPreventCancel; +var bool m_bLogServerFireFailures; +var bool m_bUsesOutroLockout; +var bool m_bIsFireHoldDevice; +var bool m_bForceReleaseFireHoldWhenCharged; +var bool m_bFireHoldFull; +var bool m_DeviceTimerBarCountsUp; +var bool m_bCooldownAfterDeployDeath; +var int m_nSocketIndex; +var int m_nSocketMax; +var TgDevice s_ParentDevice; +var array m_FireMode; +var int r_nMeleeComboSeed; +var TgDeviceForm c_DeviceForm; +var TgTimerManager m_CooldownTimers; +var array PendingImpactList; +var AimData c_TargetingAim; +var AimData m_CachedAim; +var float m_fCachedFirePostHitDelay; +var int m_CachedFireRequestId; +var AimData s_ReceivedAim; +var native Pointer m_pwzDeviceName; +var int m_nDeviceType; +var float EquipTime; +var TgInventoryObject_Device s_InventoryObject; +var int m_nSkillId; +var int r_nInventoryId; +var float m_fLastDeviceCanFireTimeStamp; +var float m_EndOfLastFireTimeStamp; +var float m_fFiringTimer; +var float m_fTimeAccountedFor; +var float m_fTimeStampAccountedFor; +var float m_IndividualOffhandCooldownTime; +var float m_fTotalReloadTime; +var float r_fCooldownDelay; +var float c_fCachedManaAtStartFire; +var TgDeviceFire s_WhileFiringDeviceMode; +var float m_fPreviousEnergy; +var float m_fUnequipTime; +var Vector m_vMeshViewOffset; +var float m_fWeaponBob; +var float m_fMeshFOV; +var () Vector m_vProjectileSpawnOffset; +var float m_fAltFireTimeStamp; +var float m_fAltFireLockOutTime; +var int m_nBurstTotalShots; +var int m_nBurstShotsRemaining; +var repnotify int r_nAmmoClipCount; +var int c_nSimLocalAmmoClipCount; +var array m_AmmoTransactions; +var array m_DelayedAmmoTransactions; +var array s_RecievedUnverifiedDelayedAmmoTransactions; +var array m_DelayedAmmoTransactionRegen; +var int m_nPendingRegenAmmoTransactionID; +var int m_nPendingReloadAmmoTransactionID; +var TrackedFiringAmmoConsumption c_EligableRefundFiringIDs[30]; +var int c_nEligableRefundFiringIDsIndexLast; +var int c_nEligableRefundFiringIDsIndexFirst; +var int m_nLastFiringIDToConsumeAmmo; +var int r_nMaxAmmoClipCount; +var int m_UniqueAmmoValidationId; +var float m_fAmmoRegenPerSec; +var float m_fAmmoRegenCounter; +var array m_FiredProjectiles; +var float m_fForce3PPersistDuration; +var float m_fForce3PPersistTimer; +var float m_fEnterCombatDuration; +var repnotify TgDeployable r_Deployable; +var int r_nProjectiles; +var () float m_fDeployZForgiveness; +var float m_fBottomlessPitCheck; +var () float m_fDeployZOffset; +var array m_Abilities; +var int m_DisplayIcon; +var string m_DisplayName; +var TgDevice m_PrimaryWeaponParent; +var () Class m_WeaponMeshActorClass; +var Actor m_LastKnownHitActor; +var array< delegate > m_OnFiredDelegates; +var array< delegate > m_OnReloadDelegates; +var array< delegate > m_OnStartFireDelegates; +var array< delegate > m_OnStopFireDelegates; +var array< delegate > m_Generic1Delegates; +var array< delegate > m_Generic2Delegates; +var array< delegate > m_Generic3Delegates; +var array m_nLinkedDeviceIDs; +var array m_nLinkedDeviceTypes; +var array c_QueuedSimulatedProjectileSpawns; +var array s_QueuedProjectileSpawnsFromServer; +var array s_QueuedProjectileSpawnsFromClient; +var array s_QueuedProjectileExplosions; +var int s_nNumServerRefires; +var int s_nNumClientRefires; +var array s_QueuedRefireRequests; +var array s_QueuedInstantFireShotsFromServer; +var array s_QueuedInstantFireShotsFromClient; +var native const transient Pointer m_RandomShotSpreadStream; +var int m_nLastSetShotSpreadSeed; +var Vector2D m_AimAssistMagnetScale; +var Vector2D m_AimAssistFrictionScale; +var Vector2D m_AimAssistTrackingScale; +var Vector2D m_AimVectorAssistMaxBoundsScale; +var Vector2D m_AimVectorAssistMaxAssistanceDegrees; +var array m_AimAssistKeyframesMagnetVert; +var array m_AimAssistKeyframesMagnetHoriz; +var array m_AimAssistKeyframesFriction; +var array m_AimAssistKeyframesTrackingAccHoriz; +var array m_AimAssistKeyframesTrackingAngleHoriz; +var array m_AimAssistKeyframesTrackingAccVert; +var array m_AimAssistKeyframesTrackingAngleVert; +var TgGameplayCurves m_GameplayCurvesDeprecated; +var array m_GameplayCurveOverrideDevices; +var int m_nServerControlledShotSpreadSeed; +var float m_fOutroLockoutTime; +var () float m_fMinTimeBetweenAmmoCharges; +var () ForceFeedbackWaveform m_ForceFeedbackStartHold; +var () ForceFeedbackWaveform m_ForceFeedbackFullHold; +var () ForceFeedbackWaveform m_ForceFeedbackStopHold; +var () ForceFeedbackWaveform m_ForceFeedbackStartFire; +var () ForceFeedbackWaveform m_ForceFeedbackStopFire; +var () ForceFeedbackWaveform m_ForceFeedbackStartBuildup; +var () ForceFeedbackWaveform m_ForceFeedbackStopBuildup; +var () ForceFeedbackWaveform m_ForceFeedbackPostFire; +var () ForceFeedbackWaveform m_ForceFeedbackStartReload; +var () ForceFeedbackWaveform m_ForceFeedbackStopReload; +var () ForceFeedbackWaveform m_ForceFeedbackStartCooldown; +var float s_fForceReleaseFirHoldFUBARTime; +var int s_nLastRequestedFireHoldReleaseID; +var (Accuracy) AccuracySettings m_AccuracySettings[5]; +var float m_fCurrentAdvancedAccuracy; +var float m_fLastShotTimestamp; +var int m_nFreeShotsLeft; +var float m_fLastMinAccuracy; +var float m_fReticleBloomScale; +var (Recoil) RecoilSettings m_RecoilSettings[5]; +var float m_fStartFiringTimestamp; +var float m_fAccumulatedFiringTime; +var transient int m_nRandRecoilNum; +var repnotify transient int r_nRecoilSeed; +var int m_nAimAssistPriorityWhileFiring; +var repnotify int r_nAllowUseWhileFlags; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) CurrentFireMode, r_Deployable, r_OverrideUsesTargetingModeAsFalse, r_eEquippedAt, r_fCooldownDelay, r_nAllowUseWhileFlags, r_nAmmoClipCount, r_nInstanceCount, r_nInventoryId, r_nMaxAmmoClipCount, r_nMeleeComboSeed, r_nPointsAllocated, r_nProjectiles, r_nRecoilSeed; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_bConsumedOnDeath, r_bConsumedOnUse, r_bParentDeviceOwnedByOffhand, r_nDeviceId, r_nDeviceInstanceId; +} + +simulated delegate DeviceEvent(); + +native function bool ApplyDeviceSetup(); // Export UTgDevice::execApplyDeviceSetup(FFrame&, void* const) + +native function name QueryProjectileClass(optional int nMode); // Export UTgDevice::execQueryProjectileClass(FFrame&, void* const) + +native function name QueryDeployableClass(optional int nMode); // Export UTgDevice::execQueryDeployableClass(FFrame&, void* const) + +native function name GetFireSocketName(); // Export UTgDevice::execGetFireSocketName(FFrame&, void* const) + +native function CalcFireSocketIndexMax(); // Export UTgDevice::execCalcFireSocketIndexMax(FFrame&, void* const) + +native function string GetDeviceName(); // Export UTgDevice::execGetDeviceName(FFrame&, void* const) + +native function RemoveConsumableFromOwnerInventory(); // Export UTgDevice::execRemoveConsumableFromOwnerInventory(FFrame&, void* const) + +native function bool LogDebugInfo(); // Export UTgDevice::execLogDebugInfo(FFrame&, void* const) + +native function bool ServerDetonate(optional int nFireMode=0); // Export UTgDevice::execServerDetonate(FFrame&, void* const) + +native function TickTargetingMode(float DeltaSeconds); // Export UTgDevice::execTickTargetingMode(FFrame&, void* const) + +native function TgDeviceFire GetCurrentFire(); // Export UTgDevice::execGetCurrentFire(FFrame&, void* const) + +native function TgDeviceFire GetDeviceFire(int nMode); // Export UTgDevice::execGetDeviceFire(FFrame&, void* const) + +native function ApplyEquipEffects(); // Export UTgDevice::execApplyEquipEffects(FFrame&, void* const) + +native function RemoveEquipEffects(); // Export UTgDevice::execRemoveEquipEffects(FFrame&, void* const) + +native function BecomeActive(optional bool bSkipActiveEffects); // Export UTgDevice::execBecomeActive(FFrame&, void* const) + +native function CeaseActive(optional bool bSkipActiveEffects); // Export UTgDevice::execCeaseActive(FFrame&, void* const) + +native function OnBecomeActive(); // Export UTgDevice::execOnBecomeActive(FFrame&, void* const) + +native function OnCeaseActive(); // Export UTgDevice::execOnCeaseActive(FFrame&, void* const) + +native function bool CheckModeRange(int nMode, Vector vDelta); // Export UTgDevice::execCheckModeRange(FFrame&, void* const) + +native function int GetModeRange(int nMode); // Export UTgDevice::execGetModeRange(FFrame&, void* const) + +native function bool IsOffhand(); // Export UTgDevice::execIsOffhand(FFrame&, void* const) + +native function bool IsOwnedByOffhand(); // Export UTgDevice::execIsOwnedByOffhand(FFrame&, void* const) + +native function bool IsPurchasedAbility(); // Export UTgDevice::execIsPurchasedAbility(FFrame&, void* const) + +native function bool IsAbility(optional bool bExcludeMovement); // Export UTgDevice::execIsAbility(FFrame&, void* const) + +native function bool IsMovementAbility(); // Export UTgDevice::execIsMovementAbility(FFrame&, void* const) + +native function bool IsEmote(); // Export UTgDevice::execIsEmote(FFrame&, void* const) + +native function bool IsCard(); // Export UTgDevice::execIsCard(FFrame&, void* const) + +native function bool IsArmorCard(); // Export UTgDevice::execIsArmorCard(FFrame&, void* const) + +native function bool IsBurnCard(); // Export UTgDevice::execIsBurnCard(FFrame&, void* const) + +native function bool IsTestDevice(); // Export UTgDevice::execIsTestDevice(FFrame&, void* const) + +native function bool CanBeStunned(); // Export UTgDevice::execCanBeStunned(FFrame&, void* const) + +native function bool CanBeSilenced(); // Export UTgDevice::execCanBeSilenced(FFrame&, void* const) + +native function bool CanBeDisarmed(); // Export UTgDevice::execCanBeDisarmed(FFrame&, void* const) + +native function bool CanBeCrippled(); // Export UTgDevice::execCanBeCrippled(FFrame&, void* const) + +native function bool CanBeStasisLocked(); // Export UTgDevice::execCanBeStasisLocked(FFrame&, void* const) + +native function bool CanBeGrabbed(); // Export UTgDevice::execCanBeGrabbed(FFrame&, void* const) + +native function float GetConePullbackDistance(); // Export UTgDevice::execGetConePullbackDistance(FFrame&, void* const) + +native function bool HasEnoughPowerPool(byte FireModeNum); // Export UTgDevice::execHasEnoughPowerPool(FFrame&, void* const) + +native function bool IsDeviceCoolingDown(); // Export UTgDevice::execIsDeviceCoolingDown(FFrame&, void* const) + +native function bool IsInCooldownGracePeriod(); // Export UTgDevice::execIsInCooldownGracePeriod(FFrame&, void* const) + +native function bool IsDeviceRefiring(); // Export UTgDevice::execIsDeviceRefiring(FFrame&, void* const) + +native function TgTimerManager GetCooldownTimerManager(); // Export UTgDevice::execGetCooldownTimerManager(FFrame&, void* const) + +native function CheckAndUpdateCooldown(); // Export UTgDevice::execCheckAndUpdateCooldown(FFrame&, void* const) + +native function SendDeviceChangeEvent(TgDevice.EDeviceChangeEvent Event); // Export UTgDevice::execSendDeviceChangeEvent(FFrame&, void* const) + +native function SendCombatLogEvent(TgObject.ITEM_EVENT_TYPE Type); // Export UTgDevice::execSendCombatLogEvent(FFrame&, void* const) + +native function GetCombatLogEventLocation(out int LocationX, out int LocationY); // Export UTgDevice::execGetCombatLogEventLocation(FFrame&, void* const) + +native function float GetBuildupTime(); // Export UTgDevice::execGetBuildupTime(FFrame&, void* const) + +native function float GetRefireTime(optional int nMode=-1); // Export UTgDevice::execGetRefireTime(FFrame&, void* const) + +native function float GetFiringPreHitDelay(optional int nMode=-1); // Export UTgDevice::execGetFiringPreHitDelay(FFrame&, void* const) + +native function float GetFiringPostHitDelay(optional int nMode=-1); // Export UTgDevice::execGetFiringPostHitDelay(FFrame&, void* const) + +native function float CacheFiringPostHitDelay(); // Export UTgDevice::execCacheFiringPostHitDelay(FFrame&, void* const) + +native function float GetCachedFiringPostHitDelay(); // Export UTgDevice::execGetCachedFiringPostHitDelay(FFrame&, void* const) + +native function TgObject.DeviceTargetMode GetTargetingMode(); // Export UTgDevice::execGetTargetingMode(FFrame&, void* const) + +native function bool UsesTargetingMode(); // Export UTgDevice::execUsesTargetingMode(FFrame&, void* const) + +native function bool UsesTrackingTarget(); // Export UTgDevice::execUsesTrackingTarget(FFrame&, void* const) + +native function bool ForceDefaultCastMode(); // Export UTgDevice::execForceDefaultCastMode(FFrame&, void* const) + +native function TgClientSettings.ECastMode DetermineCastMode(TgClientSettings.ECastMode desiredCastMode); // Export UTgDevice::execDetermineCastMode(FFrame&, void* const) + +native function bool UsesCachedAim(); // Export UTgDevice::execUsesCachedAim(FFrame&, void* const) + +native function GetCachedAim(out AimData Aim); // Export UTgDevice::execGetCachedAim(FFrame&, void* const) + +native function AimData CacheAim(); // Export UTgDevice::execCacheAim(FFrame&, void* const) + +native function AimData ValidateReceivedAim(float ClientMovementTimeStamp, AimData Aim); // Export UTgDevice::execValidateReceivedAim(FFrame&, void* const) + +native function UpdateTargetingModeStatus(const out AimData Aim); // Export UTgDevice::execUpdateTargetingModeStatus(FFrame&, void* const) + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice::execGetTargetingAim(FFrame&, void* const) + +native function GetReticleTargetAim(out AimData Aim); // Export UTgDevice::execGetReticleTargetAim(FFrame&, void* const) + +native function GetReticleFindSpotAim(out AimData Aim); // Export UTgDevice::execGetReticleFindSpotAim(FFrame&, void* const) + +native function GetConeTargetAim(out AimData Aim); // Export UTgDevice::execGetConeTargetAim(FFrame&, void* const) + +native function GetAOETargetAim(out AimData Aim); // Export UTgDevice::execGetAOETargetAim(FFrame&, void* const) + +native function GetSelfTargetAim(out AimData Aim); // Export UTgDevice::execGetSelfTargetAim(FFrame&, void* const) + +native function GetLinearTargetAim(out AimData Aim); // Export UTgDevice::execGetLinearTargetAim(FFrame&, void* const) + +native function GetGroundTargetAim(out AimData Aim); // Export UTgDevice::execGetGroundTargetAim(FFrame&, void* const) + +native function GetLockOnTargetAim(out AimData Aim); // Export UTgDevice::execGetLockOnTargetAim(FFrame&, void* const) + +native function GetSpawnPointTargetAim(out AimData Aim); // Export UTgDevice::execGetSpawnPointTargetAim(FFrame&, void* const) + +native function GetWorldMapTargetAim(out AimData Aim); // Export UTgDevice::execGetWorldMapTargetAim(FFrame&, void* const) + +native function bool CanLockOnToTarget(Actor Target); // Export UTgDevice::execCanLockOnToTarget(FFrame&, void* const) + +native function bool CanAllowLagCompensation(); // Export UTgDevice::execCanAllowLagCompensation(FFrame&, void* const) + +native function UpdateAimWhileFiring(out AimData Aim); // Export UTgDevice::execUpdateAimWhileFiring(FFrame&, void* const) + +native function bool IsActive(optional bool bIgnoreCooldown, optional bool bIngoreEquipped); // Export UTgDevice::execIsActive(FFrame&, void* const) + +native function bool IsTargetingModeReady(optional out TgObject.EDeviceFailType failType); // Export UTgDevice::execIsTargetingModeReady(FFrame&, void* const) + +native function bool IsInTargetingMode(); // Export UTgDevice::execIsInTargetingMode(FFrame&, void* const) + +native function EnterTargetingMode(); // Export UTgDevice::execEnterTargetingMode(FFrame&, void* const) + +native function ExitTargetingMode(); // Export UTgDevice::execExitTargetingMode(FFrame&, void* const) + +native function int GetTotalDevicePoints(); // Export UTgDevice::execGetTotalDevicePoints(FFrame&, void* const) + +native function int GetAllocatedDevicePoints(); // Export UTgDevice::execGetAllocatedDevicePoints(FFrame&, void* const) + +native function bool AllocateDevicePoint(); // Export UTgDevice::execAllocateDevicePoint(FFrame&, void* const) + +native function ClientPtsAllocatedUpdated(); // Export UTgDevice::execClientPtsAllocatedUpdated(FFrame&, void* const) + +native function SetPointsAllocated(int nPoints); // Export UTgDevice::execSetPointsAllocated(FFrame&, void* const) + +native function SetInstanceCount(int nInstanceCount); // Export UTgDevice::execSetInstanceCount(FFrame&, void* const) + +native function bool ShouldInterruptStealth(); // Export UTgDevice::execShouldInterruptStealth(FFrame&, void* const) + +native function bool ShouldInterruptLift(); // Export UTgDevice::execShouldInterruptLift(FFrame&, void* const) + +native function bool ShouldLiftInterrupt(); // Export UTgDevice::execShouldLiftInterrupt(FFrame&, void* const) + +native function bool ShouldShowAmmoCount(); // Export UTgDevice::execShouldShowAmmoCount(FFrame&, void* const) + +native function bool HasAmmo(byte FireModeNum, optional int Amount); // Export UTgDevice::execHasAmmo(FFrame&, void* const) + +native function bool RequiresAmmoToFire(); // Export UTgDevice::execRequiresAmmoToFire(FFrame&, void* const) + +native function int GetCurrentAmmoAmount(); // Export UTgDevice::execGetCurrentAmmoAmount(FFrame&, void* const) + +native function bool ShouldTreatAmmoAsCharges(); // Export UTgDevice::execShouldTreatAmmoAsCharges(FFrame&, void* const) + +native function UpdateAmmoRegen(optional bool bUpdateCooldown=false, optional float fCooldownFloor=0.0000000); // Export UTgDevice::execUpdateAmmoRegen(FFrame&, void* const) + +native function float GetCurrentReloadPct(); // Export UTgDevice::execGetCurrentReloadPct(FFrame&, void* const) + +native function bool CheckAutoReload(); // Export UTgDevice::execCheckAutoReload(FFrame&, void* const) + +native function bool CanReload(optional bool bIsAutoReload=false); // Export UTgDevice::execCanReload(FFrame&, void* const) + +native function bool IsReloading(); // Export UTgDevice::execIsReloading(FFrame&, void* const) + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice::execShouldBlockReload(FFrame&, void* const) + +native function float GetAccuracy(optional int nMode=-1); // Export UTgDevice::execGetAccuracy(FFrame&, void* const) + +native function float GetRandRecoil(float Min, float Max); // Export UTgDevice::execGetRandRecoil(FFrame&, void* const) + +native function SetFireMode(int nFireModeNum, optional bool ForceSet=false); // Export UTgDevice::execSetFireMode(FFrame&, void* const) + +native function DeviceAdjustDamage(const out ImpactInfo Impact, out float fDamage, int nPropertyId); // Export UTgDevice::execDeviceAdjustDamage(FFrame&, void* const) + +native function DeviceAdjustHeal(const out ImpactInfo Impact, out float fHeal, int nPropertyId); // Export UTgDevice::execDeviceAdjustHeal(FFrame&, void* const) + +native function int GetPetIDOverride(int PetIndex); // Export UTgDevice::execGetPetIDOverride(FFrame&, void* const) + +native function ReplicatePlayerDeviceAmmo(); // Export UTgDevice::execReplicatePlayerDeviceAmmo(FFrame&, void* const) + +native function bool HasRemoteOwner(); // Export UTgDevice::execHasRemoteOwner(FFrame&, void* const) + +native function int GenerateUniqueFireRequestId(); // Export UTgDevice::execGenerateUniqueFireRequestId(FFrame&, void* const) + +native function int GenerateUniqueAmmoValidationId(); // Export UTgDevice::execGenerateUniqueAmmoValidationId(FFrame&, void* const) + +native function bool ValidateClientProjectileImpact(TgProj_Simulated SimulatedProjectile, float ProjectileAliveTime, Actor Other, float MovementTimeStamp, Vector HitLocation, Vector HitNormal); // Export UTgDevice::execValidateClientProjectileImpact(FFrame&, void* const) + +native function bool ValidateClientInstantHit(out ImpactInfo ValidPrimaryImpact, out array OutValidImpacts, const out AimData InServerAim, const out AimData InClientAim, const out ImpactToValidate InPrimaryImpact, const out array InClientImpacts, out array OutHitRanges); // Export UTgDevice::execValidateClientInstantHit(FFrame&, void* const) + +native function SetRandomShotSpreadSeed(int Seed); // Export UTgDevice::execSetRandomShotSpreadSeed(FFrame&, void* const) + +native function RecordUsedAim(const out Vector InAim); // Export UTgDevice::execRecordUsedAim(FFrame&, void* const) + +native function string GetLastUsedAimStats(); // Export UTgDevice::execGetLastUsedAimStats(FFrame&, void* const) + +native function string GetAimValidationStats(); // Export UTgDevice::execGetAimValidationStats(FFrame&, void* const) + +native function string GetInstantFirePredictionStats(); // Export UTgDevice::execGetInstantFirePredictionStats(FFrame&, void* const) + +native function string GetProjectilePredictionStats(); // Export UTgDevice::execGetProjectilePredictionStats(FFrame&, void* const) + +native function float GetHeadShotDamage(optional TgDeviceFire FireMode); // Export UTgDevice::execGetHeadShotDamage(FFrame&, void* const) + +native function bool IsSuccessfulHitImpact(Actor ImpactedActor); // Export UTgDevice::execIsSuccessfulHitImpact(FFrame&, void* const) + +native function bool ShouldAltFireOnTick(); // Export UTgDevice::execShouldAltFireOnTick(FFrame&, void* const) + +native function bool UpdateUltChargePercent(); // Export UTgDevice::execUpdateUltChargePercent(FFrame&, void* const) + +native function float GetRequiredEnergyToFire(); // Export UTgDevice::execGetRequiredEnergyToFire(FFrame&, void* const) + +native function ConsolidateImpacts(out array ImpactsToConsolidate, out array ShotRanges, optional out array ShotToImpactIndex); // Export UTgDevice::execConsolidateImpacts(FFrame&, void* const) + +native function float GetBaseDamageMultiplier(const out ImpactInfo hitImpact); // Export UTgDevice::execGetBaseDamageMultiplier(FFrame&, void* const) + +native function TgGameplayCurvesSet GetShotSpreadTendencyCurvesSet(); // Export UTgDevice::execGetShotSpreadTendencyCurvesSet(FFrame&, void* const) + +native function float GetFireHoldTime(); // Export UTgDevice::execGetFireHoldTime(FFrame&, void* const) + +native function float GetFireHoldRate(); // Export UTgDevice::execGetFireHoldRate(FFrame&, void* const) + +native function float GetFireHoldAccuracyLow(); // Export UTgDevice::execGetFireHoldAccuracyLow(FFrame&, void* const) + +native function float GetFireHoldDamageLow(); // Export UTgDevice::execGetFireHoldDamageLow(FFrame&, void* const) + +native function float GetFireHoldPct(); // Export UTgDevice::execGetFireHoldPct(FFrame&, void* const) + +native function bool ShouldAutoFire(); // Export UTgDevice::execShouldAutoFire(FFrame&, void* const) + +native function DeviceFailLog(bool bDeviceFailLog, coerce string S); // Export UTgDevice::execDeviceFailLog(FFrame&, void* const) + +native function TgGameplayCurves GetCurrentGameplayCurves(); // Export UTgDevice::execGetCurrentGameplayCurves(FFrame&, void* const) + +native function TgGameplayCurvesSet GetCurrentGameplayCurveSet(TgGameplayCurvesSet.ECurveSetTypes Type); // Export UTgDevice::execGetCurrentGameplayCurveSet(FFrame&, void* const) + +native function bool UseRangeFalloffCurve(); // Export UTgDevice::execUseRangeFalloffCurve(FFrame&, void* const) + +native function bool ShouldForce3P(TgDeviceForm DeviceForm, optional bool bOnlyCheckDeviceForm=false); // Export UTgDevice::execShouldForce3P(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function WeaponLog(coerce string msg, coerce string FuncStr) { } + +simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) { } + +simulated function DisplayMessage(string sMessage) { } + +event ForceCooldownIfFiring() { } + +native function bool CanSpawnOnClientFirst(Class ProjectileClass, bool bUsesTrackingTarget); // Export UTgDevice::execCanSpawnOnClientFirst(FFrame&, void* const) + +native function bool NativeIsFiring(); // Export UTgDevice::execNativeIsFiring(FFrame&, void* const) + +native function bool IsDeviceFiringForUI(); // Export UTgDevice::execIsDeviceFiringForUI(FFrame&, void* const) + +native function bool IsDeviceFiringLockedForUI(); // Export UTgDevice::execIsDeviceFiringLockedForUI(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice::execCanDeviceFireNow(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice::execMustBeOnGroundToFire(FFrame&, void* const) + +native function bool CanFireWhileMounted(); // Export UTgDevice::execCanFireWhileMounted(FFrame&, void* const) + +native function bool CanFiringBeLocked(); // Export UTgDevice::execCanFiringBeLocked(FFrame&, void* const) + +simulated event bool IsEquipping() { } + +simulated function float GetRange() { } + +simulated function float GetEffectiveRange() { } + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptLeftMouseReleased(TgPlayerController TgController) { } + +simulated function bool InterceptRightMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptRightMouseReleased(TgPlayerController TgController) { } + +simulated function bool InterceptSlotPressed(TgPlayerController TgController) { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanFiringBeCanceledByLeftMouse() { } + +simulated event bool CanFiringBeCanceledByRightMouse() { } + +simulated function bool CheckReactivationToggleLogic(out byte bSuccessfulCancel) { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated event bool CanBeFiredWhileTweening() { } + +simulated event bool CanJumpWhileFiring() { } + +simulated event bool CancelledByJumping() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldInterruptInhand() { } + +simulated function bool ShouldInterruptMount() { } + +simulated function bool ShouldInterruptEmote() { } + +function GenerateRecoilSeed() { } + +simulated function AddRecoil() { } + +simulated function TgGameplayCurvesSet_RecoilSimple GetRecoilCurve() { } + +simulated function float GetRecoilMultiplier() { } + +simulated function PostBeginPlay() { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice::execCanFireIfLeftMouseDown(FFrame&, void* const) + +native function Rotator GetAdjustedAim(vector StartFireLoc); // Export UTgDevice::execGetAdjustedAim(FFrame&, void* const) + +simulated event SetActiveState() { } + +reliable server function ServerDoRemoteDetonation(int nFireMode) { } + +simulated function DeviceShutDown(optional bool bDeactiveMode, optional bool bResetCooldowns) { } + +simulated function DeviceRestart() { } + +simulated function StopFiringServerDeviceLockout() { } + +reliable server function ServerNotifyClientAckLockout() { } + +reliable server event InterruptFiring() { } + +reliable server event InterruptFiringServerOnly() { } + +function InterruptFiringOnServerInternal(optional bool bSendClientInterrupt=true) { } + +simulated function AsynchronusInterrupt() { } + +simulated function ClientInitiatedInterrupt() { } + +reliable client simulated function ClientRefundAmmo(int nRefundAmount, int nFireRequestID) { } + +reliable client simulated event ClientInterrupt() { } + +reliable client simulated function ClientRemoveSpawnedProjectile(int nFiringID) { } + +simulated function OnInterruptEvent() { } + +simulated function bool ShouldCancelStealth() { } + +reliable server event ServerFlashEnterTargetingMode(bool bEnterTargeting) { } + +simulated function PlayClientFireFx(Vector HitLocation, int nSocketIndex, bool bSuccessfulHit, float fRefireTime) { } + +simulated event DeviceConsumePowerPool(byte FireModeNum) { } + +simulated function bool UsesHealth() { } + +simulated function bool UsesMana() { } + +simulated function bool UsesEnergy() { } + +event ConsumeDevice() { } + +simulated function bool CanFireWhileHanging() { } + +simulated function float GetLockoutExtensionTime() { } + +simulated function bool IsInhandOverrideActive() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanFireWithoutAimResult() { } + +simulated function CacheDeviceCanFire(bool bDeviceCanFire, TgObject.EDeviceFailType failType) { } + +simulated event bool CanDeviceStartFiringNow(byte FireModeNum, AimData Aim, bool bDebugRelevant, optional out TgObject.EDeviceFailType failType) { } + +simulated event bool Use() { } + +simulated function bool StartFireHold() { } + +simulated function FireHoldTimer() { } + +function FireHoldValidationTimer() { } + +function FireHoldForceReleaseFUBAR() { } + +simulated function InterruptFireHold() { } + +simulated function InterruptBurst() { } + +simulated function SetFireHoldAmt(float fFireHoldTime) { } + +simulated event ReleaseFireHold() { } + +reliable server function ServerReleaseFireHold(float fClientFireHoldPercent, int nClientFireRequestId) { } + +simulated function ReleaseFireHoldInternal() { } + +reliable client simulated event ClientSimulateStartFireFromServer() { } + +simulated event bool SimulateStartFire() { } + +function bool DeviceSpawnsClientProjectilesFirst() { } + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated event bool ShouldInterruptReloadOnBeginTargeting() { } + +simulated function bool CanEnterCombat() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +simulated function bool ShouldConsumePowerPoolAfterFire() { } + +simulated function bool ShouldSwitchBackToBasicAttackTargeting(TgClientSettings.ECastMode CastMode) { } + +simulated event float GetRemainingFiringTime() { } + +simulated event StartFire(byte FireModeNum) { } + +simulated event HandleFalseFireRecory() { } + +simulated function OnStartFireRequestSent() { } + +simulated function SetFireLock() { } + +simulated function GlobalOffhandCooldownCompleteServer() { } + +simulated function GlobalOffhandCooldownCompleteClient() { } + +simulated function FireLockComplete() { } + +event ServerStartFireAsEvent() { } + +reliable server function ServerQueueProjectileExplode(int ClientFireRequestId, float ProjectileAliveTime, Actor Other, float MovementTimeStamp, float HitLocationX, float HitLocationY, float HitLocationZ, float HitNormalX, float HitNormalY, float HitNormalZ) { } + +function HandleQueuedProjectileExplosion(TgProj_Simulated SimulatedProjectile, float ProjectileAliveTime, Actor Other, float MovementTimeStamp, float AoeRewindTimeStamp, Vector HitLocation, Vector HitNormal) { } + +reliable server function ServerAckProjectileSpawn(int ClientFireRequestId) { } + +simulated function float GetLastMoveTimeStamp(out Vector LastSentMoveAcceleration, out int LastSentMoveCompressedFlags, out Vector LastSentClientLoc, out byte LastSentClientRoll, out int LastSentView) { } + +simulated function CallServerStartFire(AimData Aim, optional bool bPendingUpdate) { } + +simulated function CallServerRestartFireLoop(AimData Aim) { } + +reliable server function ServerRestartFireLoop(float MovementTimeStamp, Vector MovementInAccel, Vector MovementClientLoc, byte MovementNewFlags, byte MovementClientRoll, int MovementView, int ClientFireRequestId, byte ClientFireMode, Actor HitActor, float StartTraceX, float StartTraceY, float StartTraceZ, float EndTraceX, float EndTraceY, float EndTraceZ, int nCompressedAimVector, bool bFirstBurstShot) { } + +reliable server function ServerStartFire(byte FireModeNum) { } + +singular function StartFiringOnServer(float MovementTimeStamp, Vector MovementInAccel, Vector MovementClientLoc, byte MovementNewFlags, byte MovementClientRoll, int MovementView, int ClientFireRequestId, byte ClientFireMode, Actor HitActor, float StartTraceX, float StartTraceY, float StartTraceZ, float EndTraceX, float EndTraceY, float EndTraceZ, int nCompressedAimVector, bool bFirstBurstShot) { } + +simulated function bool CanToggleDeviceStopFiring() { } + +simulated function StopFire(byte FireModeNum) { } + +event StopFireAsEvent() { } + +event ServerStopFireAsEvent() { } + +reliable server function ServerStopFire(byte FireModeNum) { } + +simulated event ForceStopFire() { } + +reliable server function ServerForceStopFire() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +simulated event DeliverQueuedPendingHits() { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated event InstantFire() { } + +simulated function HandleInstantFireWithConsolidation(const out AimData baseaim, const out AimData Aim, out ImpactInfo Impact, bool bSendForServerValidation) { } + +function PerformOnInstantFireServerValidation(const out AimData Aim, float AccuracyRandomValue1, float AccuracyRandomValue2) { } + +simulated function SendImpactsForVerification(const out AimData baseaim, const out ImpactInfo Impact, const optional out array nShotsToImpactIndex) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +function OnInstantShotRejected(ImpactToValidate RejectedPrimaryImpact) { } + +function HandleClientReportedInstantShot(AimData InServerAim, AimData InClientAim, ImpactToValidate InPrimaryImpact, array InClientImpacts) { } + +reliable server function ServerInstantFire(float MovementTimeStamp, Vector MovementInAccel, Vector MovementClientLoc, byte MovementNewFlags, byte MovementClientRoll, int MovementView, int ClientFireRequestId, float StartTraceX, float StartTraceY, float StartTraceZ, float EndTraceX, float EndTraceY, float EndTraceZ, ImpactToValidate Impact, int NumImpacts, ImpactToValidate InImpactList[10]) { } + +reliable server function ServerInstantFireThreeImpacts(float MovementTimeStamp, Vector MovementInAccel, Vector MovementClientLoc, byte MovementNewFlags, byte MovementClientRoll, int MovementView, int ClientFireRequestId, float StartTraceX, float StartTraceY, float StartTraceZ, float EndTraceX, float EndTraceY, float EndTraceZ, ImpactToValidate Impact, int NumImpacts, ImpactToValidate InImpactList[3]) { } + +reliable server function ServerInstantFireSingleImpact(float MovementTimeStamp, Vector MovementInAccel, Vector MovementClientLoc, byte MovementNewFlags, byte MovementClientRoll, int MovementView, int ClientFireRequestId, float StartTraceX, float StartTraceY, float StartTraceZ, float EndTraceX, float EndTraceY, float EndTraceZ, ImpactToValidate Impact) { } + +function AOEArcingFlash(array ImpactList, optional Vector StartLocation=vect(0.0000000, 0.0000000, 0.0000000)) { } + +simulated function CustomFire() { } + +simulated function TgDeviceFire GetFireModeForFiringProjectile() { } + +simulated function SpawnQueuedSimulatedProjectile() { } + +simulated function TgProj_Simulated SpawnSimulatedProjectile(bool bCanSpawnOnClientFirst, int FireRequestId, int ProjectileInstanceId, TgDeviceFire FireMode, Vector ProjectileSpawnLocation, Vector ProjectileSpawnDir, int ProjectileIndex, int ProjectileIdOverride, float Range, Actor trackingTarget, Vector EndTrace) { } + +simulated function AdjustSpawnedProjectile(out TgProj_Simulated SpawnedProjectile) { } + +reliable server function ServerProjectileFire(float MovementTimeStamp, Vector MovementInAccel, Vector MovementClientLoc, byte MovementNewFlags, byte MovementClientRoll, int MovementView, int ClientFireRequestId, int ProjectileIndex, float ProjectileLocationX, float ProjectileLocationY, float ProjectileLocationZ, float ProjectileAimVectorX, float ProjectileAimVectorY, float ProjectileAimVectorZ, float ProjectileEndTraceX, float ProjectileEndTraceY, float ProjectileEndTraceZ) { } + +simulated function Projectile ProjectileFire() { } + +simulated function int GetProjectileIDOverride(int ProjectileIndex) { } + +simulated function vector GetPhysicalFireStartLoc(optional vector AimDir) { } + +simulated function Actor GetTrackingTarget() { } + +function TrackDeviceModeFired(TgPawn PawnFiring) { } + +simulated function int GetAmmoToConsume() { } + +simulated function bool ShouldConsumeAmmo(int nFireRequestID, optional array Impacts) { } + +simulated function ConsumeAmmoFromFiring(optional int nAmmoConsumptionOverride=-1, optional int nFireRequestIDOverride=-1) { } + +simulated function FireAmmunition() { } + +simulated function float GetMinAccuracy() { } + +simulated function UpdateActiveProjectiles(optional TgProjectile Proj) { } + +simulated function bool AltFireDetonate() { } + +simulated function float GetAltFireDetonateDamagePct() { } + +simulated event float GetCooldownRemaining() { } + +function CooldownTimerExpired(int nTimerId, TgTimerManager.TGT_EVENT eEvent, optional bool bNoBecomeActive) { } + +simulated function ClientCooldownTimerExpired(int nTimerId, TgTimerManager.TGT_EVENT eEvent) { } + +function AlternateStartCooldown() { } + +simulated event StartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +event ResetCooldown(int nMode, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated event float GetCooldownTime(optional int nMode=-1) { } + +simulated event EndCooldown() { } + +reliable client simulated event ClientStartCooldown(int nMode, float fCooldownTime) { } + +reliable client simulated event ClientResetCooldown(int nMode, float fCooldownTime) { } + +reliable client simulated event ClientEndCooldown() { } + +simulated function NotifyPutAway() { } + +simulated event NotifySwitchMode() { } + +simulated function UpdateDesiredFireMode() { } + +simulated function ChangeFireModeOnRefire() { } + +function OnTeleportNotify(Actor TeleportingActor) { } + +function OnProjectileShutdown(TgProjectile Proj) { } + +simulated event LockInput(bool bShouldLock) { } + +simulated function LockCamera(bool bShouldLock) { } + +simulated function LockRotation(bool bShouldLock) { } + +simulated function RefireCheckTimer() { } + +simulated function FirePreHitDelay() { } + +simulated function FirePostHitDelay() { } + +simulated function DeviceBuildupTimer() { } + +simulated function OutroLockoutTime() { } + +simulated function bool ShouldRefire() { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function UpdateIndex() { } + +simulated event Destroyed() { } + +simulated event bool ApplyGlobalOffhandCooldown() { } + +simulated event bool IsToggleDevice() { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function AdjustForNewDilation(float fPrevDilation, float fNewDilation) { } + +event ClientReconnected() { } + +simulated function StopFiringLogic() { } + +simulated function bool IsUnEquipping() { } + +simulated function bool TryPutDown() { } + +simulated function UnequipWeapon() { } + +simulated function CancelUnequip() { } + +simulated function bool AllowSwitchTo(Weapon NewWeapon) { } + +simulated function Activate() { } + +simulated function AltUse(bool bEnable) { } + +reliable server function ServerAltUse(bool bEnable) { } + +simulated event SetAltFireSecondModeNow(bool bEnable) { } + +reliable server function ServerSetAltFireSecondModeNow(bool bEnable) { } + +simulated event bool UsesSimulatedAmmo() { } + +simulated function VerifyAmmoTransaction(int nTransactionID, int nAmmoChanged, bool bFilledClip) { } + +reliable server function ServerValidateAmmoTransaction(int nTransactionID, int nAmmoChanged) { } + +reliable client simulated function LogWarnDelayedAmmoTransactionOnClient(int nTransactionID, int nAmmoAmountChanged, float fTimeDelayed, bool bLateServer, int nServerCurrentTransactionID) { } + +reliable client simulated function ClientValidateAmmoResponse(int nTransactionID, int nAmmoChanged, optional bool bFubar=false) { } + +simulated event int SetAmmoDelayedWithValidation(int AmmoCount, float DelayAmt) { } + +simulated event bool CancelSetAmmoDelayed(int nTransactionID) { } + +simulated event bool SendImmediateSetAmmoDelayed(int nTransactionID) { } + +simulated event bool ValidateDelayedAmmoTransactionRegen(int nTransactionID, optional bool bInitiateNewTransactionForRegen=false) { } + +reliable server function ServerValidateDelayedRegenAmmoTransaction(int nTransactionID, int nAmmoChanged, bool bInitiateNewTransactionForRegen) { } + +reliable client simulated function ClientValidateDelayedRegenAmmoResponse(int nTransactionID, int nAmmoChanged) { } + +simulated event int GiveAmmoDelayedWithValidationRegen(int nAmmoCountAdded) { } + +simulated event bool UpdateDelayedAmmoTransactionRegen(int nTransactionID, int nAmmoCountAdded) { } + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated function UpdateLocalAmmoCount(int nNewAmmoAmt) { } + +simulated event ConsumeAmmo(byte FireModeNum) { } + +simulated event GiveAmmo(optional int Amount=1, optional bool bShouldValidate=false) { } + +event GiveAmmoWithClientSync(optional int Amount=1) { } + +reliable client simulated function ClientSyncAmmoGivenFromServer(int Amount) { } + +simulated event ReloadAmmo(optional bool bToFull, optional bool bShouldValidate=false) { } + +simulated function ReloadAmmoWithSynchronization() { } + +reliable server function ServerSyncAmmoTransactionID(int nNewID) { } + +simulated event ResetAmmoTransactions() { } + +event FlashUpdateAmmoOnPawn() { } + +reliable server function ServerStartReload() { } + +reliable client simulated function ClientForceReload() { } + +simulated event bool StartReload(optional bool bIgnoreCurrentAmmo=false) { } + +simulated function FullReloadTimer() { } + +simulated function PreReloadTimer() { } + +simulated function PostReloadTimer() { } + +simulated event InterruptReload() { } + +reliable client simulated function ClientInterruptReload(optional bool bAllowAmmoFill=false) { } + +event OnDeployableDestroyed(TgDeployable deployable) { } + +simulated event OnDeployableSpawned(TgDeployable deployable) { } + +simulated event float GetRefirePercent() { } + +simulated event float GetRefireRate() { } + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated function bool RegisterDelegate(TgDevice.ENotifyDelegateEvents ndeType, delegate DeviceEventDelegate) { } + +simulated function bool UnregisterDelegate(TgDevice.ENotifyDelegateEvents ndeType, delegate DeviceEventDelegate) { } + +simulated function NotifyDeviceEvent(TgDevice.ENotifyDelegateEvents ndeType) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +event OnLinkDevice(TgPawn TgP) { } + +event OnUnlinkDevice(TgPawn TgP) { } + +reliable client simulated event ClientDeviceFirePropertyChange(int nMode, int nPropertyId, float fNewValue) { } + +function OnCripple() { } + +function OnKnock() { } + +reliable server event OnCanceled() { } + +simulated function OnCanceledClient() { } + +simulated event bool PlayHitReactionOverride() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +simulated exec function DesyncAmmoTransactionID(optional int Amt=1) { } + +reliable client simulated function ClientSetAimAssistValues(float MagnetScaleX, float MagnetScaleY, float FrictionScaleX, float FrictionScaleY, float TrackingScaleX, float TrackingScaleY) { } + +reliable client simulated function ClientSetAimVectorAssistValues(float BoundsScaleX, float BoundsScaleY, float MaxAngleX, float MaxAngleY) { } + +simulated function bool CanToggleTargetingOff() { } + +simulated function bool ReleaseHoldOnRightMouseReleased() { } + +simulated function OnOwnerRespawn() { } + +simulated event PlayNextSimulatedForceFeedbackWaveform(ForceFeedbackWaveform Prev, ForceFeedbackWaveform Next, optional float fScaleMagnitude=1.0000000, optional float fScaleDuration=1.0000000, optional bool bFromPawnPosition) { } + +simulated function int GetAimAssistPriority() { } + +simulated function bool RequireLookForAimAssist() { } + +simulated function bool RequireMovementForAimAssist() { } + +simulated function UpdateOutroLockoutTime() { } + +simulated event RegisterAsGameplayCurveOverrideDevice(TgDevice Dev) { } + +simulated event UnregisterAsGameplayCurveOverrideDevice(TgDevice Dev) { } + +simulated event ApplyAllowUseWhileFlags(int nAllowUseWhileFlags) { } + +simulated function float GetIndividualOffhandCooldownTime() { } + +simulated event float GetCustomTimerBarCurrentTime() { } + +simulated event float GetCustomTimerBarMaxTime() { } + +auto state Active {} + +state DeviceBuildup {} + +state DeviceFiring {} + +state WeaponEquipping {} + +state WeaponUnequipping {} + +state Inactive {} + +defaultproperties +{ + m_nDesiredFireMode=255 + m_ReticuleType=RETICULE_Circle + m_ZoomedReticuleType=RETICULE_Circle + c_bUsesTargetingReticle=true + m_bHandDevice=true + m_bCarryPreFireToPostFire=true + m_bBuildupShouldInterruptStealth=true + m_bPreFireShouldInterruptStealth=true + m_bFireShouldInterruptStealth=true + m_bPostFireShouldInterruptStealth=true + m_bReloadingShouldInterruptStealth=true + m_bCancelingShouldInterruptStealth=true + m_bStartFireShouldEnterCombat=true + m_bFireShouldEnterCombat=true + m_bShouldUseInstigatorsTimeDilation=true + m_bBurstCanBeInterrupted=true + m_bCanReloadEarly=true + m_bAbilityRequiresInhandResync=true + m_bParentAnimComponentHands=true + m_bUseRangeFalloffCurve=true + m_nSocketIndex=1 + m_CachedFireRequestId=-1 + EquipTime=0.3300000 + m_IndividualOffhandCooldownTime=0.1500000 + r_fCooldownDelay=-1.0000000 + m_fUnequipTime=0.5000000 + m_vMeshViewOffset=(X=0.0000000,Y=0.0000000,Z=-6.0000000) + m_fWeaponBob=0.1600000 + m_fMeshFOV=65.0000000 + m_fAltFireLockOutTime=0.5000000 + m_nLastFiringIDToConsumeAmmo=-1 + m_fEnterCombatDuration=5.0000000 + m_fDeployZForgiveness=70.0000000 + m_fBottomlessPitCheck=16.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor' + m_AimAssistMagnetScale=(X=0.2000000,Y=0.4000000) + m_AimAssistTrackingScale=(X=1.0000000,Y=1.0000000) + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ft",Distance=3200.0000000) + m_AimAssistKeyframesFriction[0]=(KeyframeName="Basic",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_fOutroLockoutTime=0.5000000 + m_fMinTimeBetweenAmmoCharges=0.5000000 + s_fForceReleaseFirHoldFUBARTime=0.5000000 + m_fReticleBloomScale=1.0000000 + RespawnTime=30.0000000 + bOnlyRelevantToOwner=false + s_bThrottleNetRelevancy=true + NetPriority=3.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire.uc b/Development/Src/TgGame/Classes/TgDeviceFire.uc old mode 100755 new mode 100644 index 5d3b55c..76e8da8 --- a/Development/Src/TgGame/Classes/TgDeviceFire.uc +++ b/Development/Src/TgGame/Classes/TgDeviceFire.uc @@ -1,2 +1,414 @@ -class TgDeviceFire extends Object - native(Devices); \ No newline at end of file +class TgDeviceFire extends Object + native(Devices) + config(Engine) + dependson(TgDevice, TgObject); + +const TGTT_ATTACK_NA = 83; + +const TGTT_ATTACK_INSTANT_RANGED = 85; + +const TGTT_ATTACK_PROJECTILE_RANGED = 177; + +const TGTT_ATTACK_TELEPORT_TO_SPAWN = 1442; + +const TGTT_ATTACK_GROUND_TARGET = 10032; + +const TGTT_ATTACK_GROUND_TARGET_DEPLOYABLE = 10011; + +const TGTT_ATTACK_GROUND_TARGET_BOT = 10382; + +const TGTT_ATTACK_INSTANT_LINE = 10015; + +const TGTT_ATTACK_GROUND_TARGET_PROJECTILE = 10251; + +const TGTT_ATTACK_GROUND_TARGET_TELEPORT = 10636; + +const TGTT_ATTACK_MAP_TELEPORT = 10657; + +const TGTT_ATTACK_ATTACHED_DEPLOYABLE = 10670; + +const TGTT_ATTACK_FORWARD_TELEPORT = 15034; + +const TGTT_TARGET_SELF = 214; + +const TGTT_TARGET_FRIEND = 10184; + +const TGTT_TARGET_ENEMY = 212; + +const TGTT_TARGET_ALL = 703; + +const TGTT_TARGET_OWNPET = 15006; + +const TGTT_TARGET_ENEMY_AND_SELF = 10805; + +const TGTT_TARGET_FRIEND_ONLY = 884; + +const TGTT_TARGET_FRIEND_AND_ENEMY = 10029; + +const TGTT_TARGET_NOT_SELF = 10587; + +const TGTT_TARGET_PET_OWNER = 15030; + +const TGMT_MOVEMENT = 10583; + +const TGDT_None = 112; + +const TGDT_Physical = 113; + +const TGDT_Magical = 10057; + +const TGDT_AoE = 15207; + +const TGDT_Direct = 15206; + +const TGAUF_ALLOW_NONE = 0; + +const TGAUF_ALLOW_STUN = 1; + +const TGAUF_ALLOW_SILENCE = 2; + +const TGAUF_ALLOW_GRAB = 4; + +const TGAUF_ALLOW_CRIPPLE = 8; + +const TGAUF_ALLOW_ALL = 15; + +enum DeviceTargeterType { + TGDTT_None, // 0 + TGDTT_Self, // 1 + TGDTT_Friend, // 2 + TGDTT_Enemy, // 3 + TGDTT_OwnPet, // 4 + TGDTT_Enemy_And_Self, // 5 + TGDTT_Friend_Only, // 6 + TGDTT_Pet_Owner, // 7 + TGDTT_Not_Self, // 8 + TGDTT_All, // 9 +}; + +enum HeadShotResult { + HEADSHOT_SuccessfulMeshTrace, // 0 + HEADSHOT_FailedMeshTrace, // 1 + HEADSHOT_CannotMeshTrace, // 2 + HEADSHOT_Failure, // 3 +}; + +enum TargetSelectionType { + TGTST_Default, // 0 + TGTST_Random, // 1 + TGTST_Closest, // 2 + TGTST_ClosestAimCenter, // 3 + TGTST_LowestHealthPercent, // 4 +}; + +struct WeaponFireResults { + var bool bDidServerValidation; + var ImpactInfo Impact; + structdefaultproperties {} +}; + +struct AoeActorInRangeData { + var Actor Actor; + var Vector Location; + structdefaultproperties {} +}; + +var Actor m_Owner; +var TgDevice.EWeaponFireType m_nFireType; +var TgObject.DeviceTargetMode m_eTargetingMode; +var TgDeviceFire.DeviceTargeterType m_eTargeterType; +var TgDeviceFire.TargetSelectionType m_eTargetSelectionTypeOverride; +var bool m_bIsAOE; +var bool m_bIsCone; +var bool m_bIsLinear; +var bool m_bContinuousFire; +var bool m_bRequireLOS; +var bool m_bVerifyTargetPlacement; +var bool m_bAllowMultiplePets; +var const bool m_bUseAccurateEncroachment; +var const bool m_bUseTargetingEncroachmentActor; +var const bool m_bScaleEncroachmentWithRangeMod; +var const bool m_bPassThroughShield; +var const bool m_bPassThroughDeployWalls; +var const bool m_bIgnoreDeployablesForBlocking; +var bool m_bAdjustDeployHeightToExtent; +var bool m_bDeployOnOwnerLocation; +var bool m_bSpawnPetOnOwnerLocation; +var bool m_bCanTriggerCounter; +var bool m_bEnchroachmentFireLOSCheck; +var bool m_bTreatAmmoAsCharges; +var bool m_bMaintainBurstTarget; +var bool m_bCanTargetStealthedTargets; +var array s_EffectGroupList; +var array m_Properties; +var native Pointer m_pAmSetup; +var native Pointer m_pFireModeSetup; +var int m_nId; +var int m_nAttackType; +var int m_nMovementType; +var name m_nmOffhandAnimationType; +var int m_nTargetAffectsType; +var int m_nAllowUseWhileFlags; +var int m_nDamageType; +var int m_nArcingJumps; +var native Map_Mirror m_PropertyIndexMap; +var float m_fHealthCost; +var float m_fManaCost; +var float m_fEnergyCost; +var float m_fFireTime; +var float m_fBuildupTime; +var float m_fFirePreHitDelay; +var float m_fFirePostHitDelay; +var int m_nShotsPerFire; +var name m_nmDamageTypeClass; +var Class m_DamageTypeClass; +var int m_nMaxTargetCount; +var float m_fFireLockTime; +var int m_nAmmoClipSize; +var float m_fAmmoClipPreReloadTime; +var float m_fAmmoClipPostReloadTime; +var int m_nAmmoCostPerShot; +var const float m_fEncroachmentRayCastVerticalOffset; +var const int m_nTargetingEncroachmentActorOverride; +var transient Actor m_TargetingEncroachmentActor; +var const Vector m_vActorEncroachmentBaseScale; +var name m_nmWhileFiringCameraAnim; +var float m_CachedRechargeBonusFlat; +var float m_CachedRechargeBonusPercent; +var array m_ModifiedEffects; +var array m_BaseValues; +var array m_ModifiedEGLifetimes; +var array m_BaseLifetimes; +var array m_ModifiedEGAppValues; +var array m_BaseAppValues; +var array m_ModifiedEGMaxStacks; +var array m_BaseMaxStacks; +var array m_CachedTargetList; +var float m_fSelectTargetsExtent; +var TgGameplayCurves m_GameplayCurves; + +native function SpecialShieldDestroyed(); // Export UTgDeviceFire::execSpecialShieldDestroyed(FFrame&, void* const) + +native function Class GetProjectileClass(); // Export UTgDeviceFire::execGetProjectileClass(FFrame&, void* const) + +native function InitializeProjectile(Projectile Proj); // Export UTgDeviceFire::execInitializeProjectile(FFrame&, void* const) + +native function DeployAtActor(Actor TargetActor); // Export UTgDeviceFire::execDeployAtActor(FFrame&, void* const) + +native function DeployAtLocation(Vector SpawnLocation, Rotator SpawnRotation); // Export UTgDeviceFire::execDeployAtLocation(FFrame&, void* const) + +native function Deploy(); // Export UTgDeviceFire::execDeploy(FFrame&, void* const) + +native function bool GetDeployLocationAndRotation(out Vector OutLocation, out Rotator OutRotation); // Export UTgDeviceFire::execGetDeployLocationAndRotation(FFrame&, void* const) + +native function Actor GetDeployableBase(); // Export UTgDeviceFire::execGetDeployableBase(FFrame&, void* const) + +native function TgPawn SpawnPet(bool bPet); // Export UTgDeviceFire::execSpawnPet(FFrame&, void* const) + +native function bool GetPetLocationAndRotation(out Vector OutLocation, out Rotator OutRotation, Pointer botSetup); // Export UTgDeviceFire::execGetPetLocationAndRotation(FFrame&, void* const) + +native function CustomFire(); // Export UTgDeviceFire::execCustomFire(FFrame&, void* const) + +native simulated function TeleportFire(); // Export UTgDeviceFire::execTeleportFire(FFrame&, void* const) + +native function TgProperty GetProperty(int nPropertyId); // Export UTgDeviceFire::execGetProperty(FFrame&, void* const) + +native function SetProperty(int nPropertyId, float fNewValue); // Export UTgDeviceFire::execSetProperty(FFrame&, void* const) + +native function float GetPropertyValue(int nPropertyId); // Export UTgDeviceFire::execGetPropertyValue(FFrame&, void* const) + +native function float GetPropertyValueById(int nPropertyId, int nPropertyIndex); // Export UTgDeviceFire::execGetPropertyValueById(FFrame&, void* const) + +native function TgEffectGroup GetEffectGroup(int nType, out int nIndex); // Export UTgDeviceFire::execGetEffectGroup(FFrame&, void* const) + +native function name QueryClass(int nMode); // Export UTgDeviceFire::execQueryClass(FFrame&, void* const) + +native function bool IsBlockedByGeometry(Actor SourceActor, Actor TargetActor); // Export UTgDeviceFire::execIsBlockedByGeometry(FFrame&, void* const) + +native function VerifyProjectile(); // Export UTgDeviceFire::execVerifyProjectile(FFrame&, void* const) + +native function bool LogDebugInfo(); // Export UTgDeviceFire::execLogDebugInfo(FFrame&, void* const) + +native function float GetDamageRadius(); // Export UTgDeviceFire::execGetDamageRadius(FFrame&, void* const) + +native function float GetAIRange(); // Export UTgDeviceFire::execGetAIRange(FFrame&, void* const) + +native function float GetAIRadius(); // Export UTgDeviceFire::execGetAIRadius(FFrame&, void* const) + +native function float GetRemoteActivationTime(); // Export UTgDeviceFire::execGetRemoteActivationTime(FFrame&, void* const) + +native function float GetPostLandDuration(); // Export UTgDeviceFire::execGetPostLandDuration(FFrame&, void* const) + +native function float GetEffectiveRadius(); // Export UTgDeviceFire::execGetEffectiveRadius(FFrame&, void* const) + +native function float GetPersistTime(); // Export UTgDeviceFire::execGetPersistTime(FFrame&, void* const) + +native function float GetPersistPulse(); // Export UTgDeviceFire::execGetPersistPulse(FFrame&, void* const) + +native function float GetPetLifeSpan(); // Export UTgDeviceFire::execGetPetLifeSpan(FFrame&, void* const) + +native function float GetFireAngle(); // Export UTgDeviceFire::execGetFireAngle(FFrame&, void* const) + +native function float GetDeployTime(); // Export UTgDeviceFire::execGetDeployTime(FFrame&, void* const) + +native function float GetProjectileSpeed(); // Export UTgDeviceFire::execGetProjectileSpeed(FFrame&, void* const) + +native function float GetVisionRange(); // Export UTgDeviceFire::execGetVisionRange(FFrame&, void* const) + +native function float GetProximityDistance(); // Export UTgDeviceFire::execGetProximityDistance(FFrame&, void* const) + +native function float GetRange(); // Export UTgDeviceFire::execGetRange(FFrame&, void* const) + +native function float GetMinRange(); // Export UTgDeviceFire::execGetMinRange(FFrame&, void* const) + +native function float GetEffectiveRange(); // Export UTgDeviceFire::execGetEffectiveRange(FFrame&, void* const) + +native function float GetMinimumRadius(); // Export UTgDeviceFire::execGetMinimumRadius(FFrame&, void* const) + +native function float GetMaxDeployableCount(); // Export UTgDeviceFire::execGetMaxDeployableCount(FFrame&, void* const) + +native function float GetHeadShotDamage(); // Export UTgDeviceFire::execGetHeadShotDamage(FFrame&, void* const) + +native function float GetBonusShieldDamagePerc(); // Export UTgDeviceFire::execGetBonusShieldDamagePerc(FFrame&, void* const) + +native function bool IsWithinRange(float fDistance); // Export UTgDeviceFire::execIsWithinRange(FFrame&, void* const) + +native function bool IsWithinEffectiveRange(float fDistance); // Export UTgDeviceFire::execIsWithinEffectiveRange(FFrame&, void* const) + +native function float GetCustomValue1(); // Export UTgDeviceFire::execGetCustomValue1(FFrame&, void* const) + +native function float GetCustomValue2(); // Export UTgDeviceFire::execGetCustomValue2(FFrame&, void* const) + +native function float GetCustomValue3(); // Export UTgDeviceFire::execGetCustomValue3(FFrame&, void* const) + +native function float GetCustomValue4(); // Export UTgDeviceFire::execGetCustomValue4(FFrame&, void* const) + +native function float GetCustomValue5(); // Export UTgDeviceFire::execGetCustomValue5(FFrame&, void* const) + +native function bool CheckTeamPassThrough(Actor HitActor, Vector aimDirection); // Export UTgDeviceFire::execCheckTeamPassThrough(FFrame&, void* const) + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire::execIsValidTarget(FFrame&, void* const) + +native function bool IsSelfOrOwner(Actor Target); // Export UTgDeviceFire::execIsSelfOrOwner(FFrame&, void* const) + +native function bool IsEnemy(Actor TargetActor); // Export UTgDeviceFire::execIsEnemy(FFrame&, void* const) + +native function ImpactInfo GetTraceImpact(Vector StartTrace, Vector EndTrace, Vector Extent, bool bIgnoreWorld, bool bCheckLockOn, bool bForceNoBodyShotCheck, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate, optional int nShotIndex); // Export UTgDeviceFire::execGetTraceImpact(FFrame&, void* const) + +native function bool IsArcingAttack(); // Export UTgDeviceFire::execIsArcingAttack(FFrame&, void* const) + +native function bool UsesActorEncroachmentForCalcTargetingFire(); // Export UTgDeviceFire::execUsesActorEncroachmentForCalcTargetingFire(FFrame&, void* const) + +native function float GetShotPowerCost(int nPacingType); // Export UTgDeviceFire::execGetShotPowerCost(FFrame&, void* const) + +native function AddEffectiveRangeReduction(out ImpactInfo Impact, Actor DamageInstigator, Vector OriginLocation, optional bool bUseRadius=false); // Export UTgDeviceFire::execAddEffectiveRangeReduction(FFrame&, void* const) + +native function TgObject.DeviceTargetMode GetTargetingMode(); // Export UTgDeviceFire::execGetTargetingMode(FFrame&, void* const) + +native function Actor IsBlockedByBlocker(Actor DamageInstigator, Actor Target, optional Vector OriginLocation, optional Vector TargetLocation); // Export UTgDeviceFire::execIsBlockedByBlocker(FFrame&, void* const) + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire::execIgnoreTargetForBlocking(FFrame&, void* const) + +native function Vector GetHitLocationFlat(const out Vector StartTrace, const out Vector TargetLocation, const out Vector targetExtent); // Export UTgDeviceFire::execGetHitLocationFlat(FFrame&, void* const) + +native function Vector GetHitLocationToCenter(const out Vector StartTrace, const out Vector TargetLocation, const out Vector targetExtent); // Export UTgDeviceFire::execGetHitLocationToCenter(FFrame&, void* const) + +native function bool ShouldAddToImpactList(Actor HitActor, array ImpactList); // Export UTgDeviceFire::execShouldAddToImpactList(FFrame&, void* const) + +native function bool IsInSlice(const Actor SourceActor, const Actor TargetActor, Vector StartCone, Vector ConeDir, float ConeAngle, optional float ConeRadius); // Export UTgDeviceFire::execIsInSlice(FFrame&, void* const) + +native function bool IsInCone(Actor SourceActor, Actor TargetActor, Vector StartCone, Vector ConeDir, float ConeAngle); // Export UTgDeviceFire::execIsInCone(FFrame&, void* const) + +native function bool CheckValidTarget(Actor Target, bool bPredicting); // Export UTgDeviceFire::execCheckValidTarget(FFrame&, void* const) + +native function WeaponFireResults CalcWeaponModeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional bool bNoBodyShotCheck=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire::execCalcWeaponModeFire(FFrame&, void* const) + +native function ImpactInfo CalcConeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bUseRange=false, optional bool bPredicting=false); // Export UTgDeviceFire::execCalcConeFire(FFrame&, void* const) + +native function ImpactInfo CalcSliceFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bUseRange=false, optional bool bPredicting=false); // Export UTgDeviceFire::execCalcSliceFire(FFrame&, void* const) + +native function ImpactInfo CalcAoeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional float RewindTime=0.0000000); // Export UTgDeviceFire::execCalcAoeFire(FFrame&, void* const) + +native function WeaponFireResults CalcInstantFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional bool bNoBodyShotCheck=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire::execCalcInstantFire(FFrame&, void* const) + +native function ImpactInfo CalcArcingFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false); // Export UTgDeviceFire::execCalcArcingFire(FFrame&, void* const) + +native function ImpactInfo CalcLinearFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false); // Export UTgDeviceFire::execCalcLinearFire(FFrame&, void* const) + +native function ImpactInfo CalcDeployableTargetingFire(Actor DamageInstigator, AimData Aim, out array ImpactList, int nDeployableId, optional bool bPredicting=false); // Export UTgDeviceFire::execCalcDeployableTargetingFire(FFrame&, void* const) + +native function ImpactInfo CalcChargeTargetingFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false); // Export UTgDeviceFire::execCalcChargeTargetingFire(FFrame&, void* const) + +native function WeaponFireResults CalcActorEncroachmentTargetingFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire::execCalcActorEncroachmentTargetingFire(FFrame&, void* const) + +native function Vector GetAlternateAOEStartTrace(Actor DamageInstigator, const out Vector Center, float Radius); // Export UTgDeviceFire::execGetAlternateAOEStartTrace(FFrame&, void* const) + +native function TgGameplayCurves GetCurrentGameplayCurves(); // Export UTgDeviceFire::execGetCurrentGameplayCurves(FFrame&, void* const) + +simulated event ApplyEquipEffects() { } + +simulated event RemoveEquipEffects() { } + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } + +function ApplyModifyEffects(TgEffectGroup EffectGroup) { } + +function RemoveModifyEffects() { } + +simulated function DisplayMessage(string sMessage) { } + +event ApplyEffectType(Actor Target, int nEffectGroupType, optional ImpactInfo Impact, optional int StackCount=1) { } + +event RemoveEffectType(Actor Target, bool bForceRemove, int nEffectGroupType, optional int StackCount=1) { } + +event ApplyHitSpecial(Actor Target, optional ImpactInfo Impact, optional int nHitSpecialSituationalType=0, optional int StackCount=1) { } + +event RemoveHitSpecial(Actor Target, bool bForceRemove, optional int nHitSpecialSituationalType=0, optional int StackCount=1) { } + +function TrackDeviceModeHit(TgPawn Hitter, float fDistance, bool bHitPlayer) { } + +event bool ApplyHit(ImpactInfo Impact, Actor DamageInstigator) { } + +function HandleMiss() { } + +function HandleSuccessfulHit(Actor DamageInstigator, Pawn OwnerInstigator, ImpactInfo Impact) { } + +function SubmitHitEffects(Actor DamageInstigator, ImpactInfo Impact, int nType) { } + +event SubmitFinalBlowEffects(Actor DamageInstigator, ImpactInfo Impact) { } + +simulated event float GetRefireTime() { } + +simulated event float GetBuildupTime() { } + +simulated event float GetPreHitDelay() { } + +simulated event float GetPostHitDelay() { } + +simulated event float GetFireLockTime() { } + +simulated event float GetCooldownTime() { } + +simulated event float GetMinCooldownTime() { } + +simulated event float GetContagiousRadius() { } + +simulated event float GetConeAttackAngle() { } + +simulated event float GetSignedConeAttackAngle() { } + +simulated event float GetConeAttackAngleOffset() { } + +event int GetNumArcJumps() { } + +simulated function bool CanSimulateTeleportFire() { } + +defaultproperties +{ + m_bCanTriggerCounter=true + m_bEnchroachmentFireLOSCheck=true + m_bCanTargetStealthedTargets=true + m_nShotsPerFire=1 + m_nAmmoCostPerShot=1 + m_vActorEncroachmentBaseScale=(X=1.0000000,Y=1.0000000,Z=1.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_AstralMark.uc b/Development/Src/TgGame/Classes/TgDeviceFire_AstralMark.uc new file mode 100644 index 0000000..ca649f2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_AstralMark.uc @@ -0,0 +1,20 @@ +class TgDeviceFire_AstralMark extends TgDeviceFire + native(ChampAstro) + config(Engine); + +var float m_InitialLifetime; +var float m_OverflowTime; +var float m_BaseLifetime; + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_AstralMark::execIgnoreTargetForBlocking(FFrame&, void* const) + +event bool ApplyHit(ImpactInfo Impact, Actor DamageInstigator) { } + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_bScaleEncroachmentWithRangeMod=true + m_bEnchroachmentFireLOSCheck=false + m_nTargetingEncroachmentActorOverride=7075 + m_vActorEncroachmentBaseScale=(X=9.0000000,Y=9.0000000,Z=9.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_BarricadeDome.uc b/Development/Src/TgGame/Classes/TgDeviceFire_BarricadeDome.uc new file mode 100644 index 0000000..2838598 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_BarricadeDome.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_BarricadeDome extends TgDeviceFire + native(ChampBarik) + config(Engine); + +native function TgPawn SpawnPet(bool bPet); // Export UTgDeviceFire_BarricadeDome::execSpawnPet(FFrame&, void* const) + +defaultproperties +{ + m_bAllowMultiplePets=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Blink.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Blink.uc new file mode 100644 index 0000000..b1ab6d9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Blink.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_Blink extends TgDeviceFire + native(ChampEvie) + config(Engine); + +native simulated function TeleportFire(); // Export UTgDeviceFire_Blink::execTeleportFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_BonusShieldDamage.uc b/Development/Src/TgGame/Classes/TgDeviceFire_BonusShieldDamage.uc new file mode 100644 index 0000000..0254fef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_BonusShieldDamage.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_BonusShieldDamage extends TgDeviceFire + native(Devices) + config(Engine); + +native function float GetBonusShieldDamagePerc(); // Export UTgDeviceFire_BonusShieldDamage::execGetBonusShieldDamagePerc(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Counter.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Counter.uc new file mode 100644 index 0000000..683ceff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Counter.uc @@ -0,0 +1,3 @@ +class TgDeviceFire_Counter extends TgDeviceFire + native(ChampDarklord) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_CounterAttack.uc b/Development/Src/TgGame/Classes/TgDeviceFire_CounterAttack.uc new file mode 100644 index 0000000..499ddb9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_CounterAttack.uc @@ -0,0 +1,9 @@ +class TgDeviceFire_CounterAttack extends TgDeviceFire + native(ChampDarklord) + config(Engine); + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=7588 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Cylinder.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Cylinder.uc new file mode 100644 index 0000000..21f7a16 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Cylinder.uc @@ -0,0 +1,6 @@ +class TgDeviceFire_Cylinder extends TgDeviceFire + native(Devices) + config(Engine) + dependson(TgObject); + +native function ImpactInfo CalcAoeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional float RewindTime=0.0000000); // Export UTgDeviceFire_Cylinder::execCalcAoeFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain1.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain1.uc new file mode 100644 index 0000000..e59f945 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain1.uc @@ -0,0 +1,2 @@ +class TgDeviceFire_DarklordInhandChain1 extends TgDeviceFire + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain2.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain2.uc new file mode 100644 index 0000000..e45565a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain2.uc @@ -0,0 +1,2 @@ +class TgDeviceFire_DarklordInhandChain2 extends TgDeviceFire + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain3.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain3.uc new file mode 100644 index 0000000..1f78a3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DarklordInhandChain3.uc @@ -0,0 +1,2 @@ +class TgDeviceFire_DarklordInhandChain3 extends TgDeviceFire + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DemonTeleport.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DemonTeleport.uc new file mode 100644 index 0000000..68c6fa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DemonTeleport.uc @@ -0,0 +1,8 @@ +class TgDeviceFire_DemonTeleport extends TgDeviceFire + native(ChampDemon) + config(Engine); + +defaultproperties +{ + m_bDeployOnOwnerLocation=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DeployOnLocation.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DeployOnLocation.uc new file mode 100644 index 0000000..34d586d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DeployOnLocation.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_DeployOnLocation extends TgDeviceFire + native(Devices) + config(Engine); + +var Vector m_TargetLocation; + +native function bool GetDeployLocationAndRotation(out Vector OutLocation, out Rotator OutRotation); // Export UTgDeviceFire_DeployOnLocation::execGetDeployLocationAndRotation(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DeployOnTarget.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DeployOnTarget.uc new file mode 100644 index 0000000..b3d6dff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DeployOnTarget.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_DeployOnTarget extends TgDeviceFire + native(Devices) + config(Engine); + +var Actor m_TargetHit; +var bool m_bDeployAtFeet; + +native function bool GetDeployLocationAndRotation(out Vector OutLocation, out Rotator OutRotation); // Export UTgDeviceFire_DeployOnTarget::execGetDeployLocationAndRotation(FFrame&, void* const) + +native function Actor GetDeployableBase(); // Export UTgDeviceFire_DeployOnTarget::execGetDeployableBase(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DeployablesOnly.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DeployablesOnly.uc new file mode 100644 index 0000000..ade9517 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DeployablesOnly.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_DeployablesOnly extends TgDeviceFire + native(Devices) + config(Engine); + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_DeployablesOnly::execIsValidTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DimensionalLink.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DimensionalLink.uc new file mode 100644 index 0000000..df8aa0d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DimensionalLink.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_DimensionalLink extends TgDeviceFire + native(ChampYing) + config(Engine); + +simulated function bool CanSimulateTeleportFire() { } + +native simulated function TeleportFire(); // Export UTgDeviceFire_DimensionalLink::execTeleportFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DrogozInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DrogozInhand.uc new file mode 100644 index 0000000..7b24bf4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DrogozInhand.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_DrogozInhand extends TgDeviceFire + native(ChampDrogoz) + config(Engine); + +native function bool CheckValidTarget(Actor Target, bool bPredicting); // Export UTgDeviceFire_DrogozInhand::execCheckValidTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_DrogozInhand_Salvo.uc b/Development/Src/TgGame/Classes/TgDeviceFire_DrogozInhand_Salvo.uc new file mode 100644 index 0000000..3fdec58 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_DrogozInhand_Salvo.uc @@ -0,0 +1,11 @@ +class TgDeviceFire_DrogozInhand_Salvo extends TgDeviceFire_DrogozInhand + native(ChampDrogoz) + config(Engine); + +var TgDevice_DrogozInhand m_CachedDrogozInhand; + +native function float GetBonusShieldDamagePerc(); // Export UTgDeviceFire_DrogozInhand_Salvo::execGetBonusShieldDamagePerc(FFrame&, void* const) + +simulated event float GetPostHitDelay() { } + +simulated function bool HasCachedDrogozInhand() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Emitter.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Emitter.uc new file mode 100644 index 0000000..939141c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Emitter.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_Emitter extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_EmitterEffect.uc b/Development/Src/TgGame/Classes/TgDeviceFire_EmitterEffect.uc new file mode 100644 index 0000000..7e292a5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_EmitterEffect.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_EmitterEffect extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_EvieCombo.uc b/Development/Src/TgGame/Classes/TgDeviceFire_EvieCombo.uc new file mode 100644 index 0000000..2ce6e9d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_EvieCombo.uc @@ -0,0 +1,13 @@ +class TgDeviceFire_EvieCombo extends TgDeviceFire + native(ChampEvie) + config(Engine); + +var float m_fLifetimeScale; +var float m_fFrigidFieldMinSlow; + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } + +defaultproperties +{ + m_fLifetimeScale=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_FernandoInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_FernandoInhand.uc new file mode 100644 index 0000000..4c30841 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_FernandoInhand.uc @@ -0,0 +1,9 @@ +class TgDeviceFire_FernandoInhand extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bUseAccurateEncroachment=true + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=5495 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_FlakInHand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_FlakInHand.uc new file mode 100644 index 0000000..36be8e6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_FlakInHand.uc @@ -0,0 +1,18 @@ +class TgDeviceFire_FlakInHand extends TgDeviceFire + native(ChampFlak) + config(Engine); + +var int m_BaseKnockback; + +native function AddEffectiveRangeReduction(out ImpactInfo Impact, Actor DamageInstigator, Vector OriginLocation, optional bool bUseRadius=false); // Export UTgDeviceFire_FlakInHand::execAddEffectiveRangeReduction(FFrame&, void* const) + +event bool ApplyHit(ImpactInfo Impact, Actor DamageInstigator) { } + +defaultproperties +{ + m_bUseAccurateEncroachment=true + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=7948 + m_vActorEncroachmentBaseScale=(X=13.5000000,Y=30.0000000,Z=20.0000000) + m_GameplayCurves=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_FlameTurret.uc b/Development/Src/TgGame/Classes/TgDeviceFire_FlameTurret.uc new file mode 100644 index 0000000..7925a98 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_FlameTurret.uc @@ -0,0 +1,9 @@ +class TgDeviceFire_FlameTurret extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_bScaleEncroachmentWithRangeMod=true + m_nTargetingEncroachmentActorOverride=5498 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_GauntletInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_GauntletInhand.uc new file mode 100644 index 0000000..cec5b72 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_GauntletInhand.uc @@ -0,0 +1,17 @@ +class TgDeviceFire_GauntletInhand extends TgDeviceFire + native(ChampGauntlet) + config(Engine); + +var TgPawn_Gauntlet m_CachedGauntlet; +var const float m_fLockOnScale; + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_GauntletInhand::execIsValidTarget(FFrame&, void* const) + +defaultproperties +{ + m_fLockOnScale=1.1000000 + m_bUseAccurateEncroachment=true + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=7073 + m_vActorEncroachmentBaseScale=(X=16.0000000,Y=16.0000000,Z=16.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_GeometryInara.uc b/Development/Src/TgGame/Classes/TgDeviceFire_GeometryInara.uc new file mode 100644 index 0000000..d3d7625 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_GeometryInara.uc @@ -0,0 +1,6 @@ +class TgDeviceFire_GeometryInara extends TgDeviceFire + config(Engine); + +simulated event float GetCooldownTime() { } + +simulated event float GetMinCooldownTime() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_GrohkInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_GrohkInhand.uc new file mode 100644 index 0000000..dfa8fe0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_GrohkInhand.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_GrohkInhand extends TgDeviceFire + native(ChampGrohk) + config(Engine); + +native function bool IsArcingAttack(); // Export UTgDeviceFire_GrohkInhand::execIsArcingAttack(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_GroverInhandAxe.uc b/Development/Src/TgGame/Classes/TgDeviceFire_GroverInhandAxe.uc new file mode 100644 index 0000000..5e0f3e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_GroverInhandAxe.uc @@ -0,0 +1,8 @@ +class TgDeviceFire_GroverInhandAxe extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=5596 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_HeatHaze.uc b/Development/Src/TgGame/Classes/TgDeviceFire_HeatHaze.uc new file mode 100644 index 0000000..30c20a6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_HeatHaze.uc @@ -0,0 +1,9 @@ +class TgDeviceFire_HeatHaze extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bAllowMultiplePets=true + m_bAdjustDeployHeightToExtent=true + m_bDeployOnOwnerLocation=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_HeroicLeap.uc b/Development/Src/TgGame/Classes/TgDeviceFire_HeroicLeap.uc new file mode 100644 index 0000000..dcb6982 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_HeroicLeap.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_HeroicLeap extends TgDeviceFire + native(ChampBuck) + config(Engine); + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_HeroicLeap::execIgnoreTargetForBlocking(FFrame&, void* const) + +defaultproperties +{ + m_bIgnoreDeployablesForBlocking=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_HuntersMark.uc b/Development/Src/TgGame/Classes/TgDeviceFire_HuntersMark.uc new file mode 100644 index 0000000..8dd8ca3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_HuntersMark.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_HuntersMark extends TgDeviceFire_IgnoreDeployablesCannotCounter + config(Engine); + +defaultproperties +{ + m_bCanTargetStealthedTargets=false +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_HyperBeam.uc b/Development/Src/TgGame/Classes/TgDeviceFire_HyperBeam.uc new file mode 100644 index 0000000..d86808d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_HyperBeam.uc @@ -0,0 +1,13 @@ +class TgDeviceFire_HyperBeam extends TgDeviceFire_WorldLOSOnly + native(ChampGauntlet) + config(Engine) + dependson(TgDevice, TgDeviceFire, TgObject); + +native function WeaponFireResults CalcActorEncroachmentTargetingFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire_HyperBeam::execCalcActorEncroachmentTargetingFire(FFrame&, void* const) + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=6824 + m_vActorEncroachmentBaseScale=(X=35.0000000,Y=1.0000000,Z=1.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreCounter.uc b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreCounter.uc new file mode 100644 index 0000000..292bee3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreCounter.uc @@ -0,0 +1,8 @@ +class TgDeviceFire_IgnoreCounter extends TgDeviceFire + native(Devices) + config(Engine); + +defaultproperties +{ + m_bCanTriggerCounter=false +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreDeployableForBlocking.uc b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreDeployableForBlocking.uc new file mode 100644 index 0000000..4556deb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreDeployableForBlocking.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_IgnoreDeployableForBlocking extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bIgnoreDeployablesForBlocking=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreDeployablesCannotCounter.uc b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreDeployablesCannotCounter.uc new file mode 100644 index 0000000..b509155 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreDeployablesCannotCounter.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_IgnoreDeployablesCannotCounter extends TgDeviceFire_IgnoreDeployableForBlocking + config(Engine); + +defaultproperties +{ + m_bCanTriggerCounter=false +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_IgnorePets.uc b/Development/Src/TgGame/Classes/TgDeviceFire_IgnorePets.uc new file mode 100644 index 0000000..5ea0318 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_IgnorePets.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_IgnorePets extends TgDeviceFire + native(Devices) + config(Engine); + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_IgnorePets::execIsValidTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreReversal.uc b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreReversal.uc new file mode 100644 index 0000000..6a9a13d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_IgnoreReversal.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_IgnoreReversal extends TgDeviceFire + native(Devices) + config(Engine); + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_IgnoreReversal::execIgnoreTargetForBlocking(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Illusion.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Illusion.uc new file mode 100644 index 0000000..6597ea0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Illusion.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_Illusion extends TgDeviceFire + native(ChampYing) + config(Engine); + +native function CustomFire(); // Export UTgDeviceFire_Illusion::execCustomFire(FFrame&, void* const) + +defaultproperties +{ + m_bAllowMultiplePets=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_IllusoryRift.uc b/Development/Src/TgGame/Classes/TgDeviceFire_IllusoryRift.uc new file mode 100644 index 0000000..a6e44c1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_IllusoryRift.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_IllusoryRift extends TgDeviceFire + native(ChampYing) + config(Engine); + +native function CustomFire(); // Export UTgDeviceFire_IllusoryRift::execCustomFire(FFrame&, void* const) + +defaultproperties +{ + m_bAllowMultiplePets=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_KinessaInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_KinessaInhand.uc new file mode 100644 index 0000000..dd5db39 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_KinessaInhand.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_KinessaInhand extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_LazarusInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_LazarusInhand.uc new file mode 100644 index 0000000..be7ac2d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_LazarusInhand.uc @@ -0,0 +1,13 @@ +class TgDeviceFire_LazarusInhand extends TgDeviceFire + native(ChampLazarus) + config(Engine); + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_LazarusInhand::execIgnoreTargetForBlocking(FFrame&, void* const) + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_bScaleEncroachmentWithRangeMod=true + m_nTargetingEncroachmentActorOverride=7075 + m_vActorEncroachmentBaseScale=(X=1.0000000,Y=1.5000000,Z=1.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Lockdown.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Lockdown.uc new file mode 100644 index 0000000..2f03791 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Lockdown.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_Lockdown extends TgDeviceFire + native(ChampBarik) + config(Engine); + +native function TgPawn SpawnPet(bool bPet); // Export UTgDeviceFire_Lockdown::execSpawnPet(FFrame&, void* const) + +defaultproperties +{ + m_bAllowMultiplePets=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Midnight.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Midnight.uc new file mode 100644 index 0000000..07d1364 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Midnight.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_Midnight extends TgDeviceFire + native(ChampBlades) + config(Engine); + +native function CustomFire(); // Export UTgDeviceFire_Midnight::execCustomFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_MidnightSub.uc b/Development/Src/TgGame/Classes/TgDeviceFire_MidnightSub.uc new file mode 100644 index 0000000..308d071 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_MidnightSub.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_MidnightSub extends TgDeviceFire + native(ChampBlades) + config(Engine); + +native function float GetDamageRadius(); // Export UTgDeviceFire_MidnightSub::execGetDamageRadius(FFrame&, void* const) + +native function float GetFadeInPerc(); // Export UTgDeviceFire_MidnightSub::execGetFadeInPerc(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_MirrorDamageToHeal.uc b/Development/Src/TgGame/Classes/TgDeviceFire_MirrorDamageToHeal.uc new file mode 100644 index 0000000..de9a039 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_MirrorDamageToHeal.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_MirrorDamageToHeal extends TgDeviceFire + native(Devices) + config(Engine); + +var float m_fHealAmount; + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_MirrorDamageToHealBlock.uc b/Development/Src/TgGame/Classes/TgDeviceFire_MirrorDamageToHealBlock.uc new file mode 100644 index 0000000..129df58 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_MirrorDamageToHealBlock.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_MirrorDamageToHealBlock extends TgDeviceFire + native(Devices) + config(Engine); + +var float m_fHealBlockAmount; + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Mount.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Mount.uc new file mode 100644 index 0000000..3c6b173 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Mount.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_Mount extends TgDeviceFire + config(Engine); + +simulated event float GetPreHitDelay() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_OppressorMine.uc b/Development/Src/TgGame/Classes/TgDeviceFire_OppressorMine.uc new file mode 100644 index 0000000..35be8bf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_OppressorMine.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_OppressorMine extends TgDeviceFire + native(ChampKinessa) + config(Engine); + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_OppressorMine::execIgnoreTargetForBlocking(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_OracleInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_OracleInhand.uc new file mode 100644 index 0000000..38af517 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_OracleInhand.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_OracleInhand extends TgDeviceFire + native(ChampOracle) + config(Engine); + +event bool ApplyHit(ImpactInfo Impact, Actor DamageInstigator) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_PetsOnly.uc b/Development/Src/TgGame/Classes/TgDeviceFire_PetsOnly.uc new file mode 100644 index 0000000..e6b9f35 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_PetsOnly.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_PetsOnly extends TgDeviceFire + native(Devices) + config(Engine); + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_PetsOnly::execIsValidTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_PoppyBomb.uc b/Development/Src/TgGame/Classes/TgDeviceFire_PoppyBomb.uc new file mode 100644 index 0000000..650141c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_PoppyBomb.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_PoppyBomb extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_PrincessF.uc b/Development/Src/TgGame/Classes/TgDeviceFire_PrincessF.uc new file mode 100644 index 0000000..9e42e98 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_PrincessF.uc @@ -0,0 +1,11 @@ +class TgDeviceFire_PrincessF extends TgDeviceFire + native(ChampPrincess) + config(Engine); + +const TG_ALACRITY_DEVICE_ID = 18816; + +defaultproperties +{ + m_bCanTargetStealthedTargets=false + m_fSelectTargetsExtent=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Protection.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Protection.uc new file mode 100644 index 0000000..44cc6f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Protection.uc @@ -0,0 +1,12 @@ +class TgDeviceFire_Protection extends TgDeviceFire + native(ChampGauntlet) + config(Engine); + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_Protection::execIgnoreTargetForBlocking(FFrame&, void* const) + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=7075 + m_vActorEncroachmentBaseScale=(X=16.0000000,Y=16.0000000,Z=16.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Pursuit.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Pursuit.uc new file mode 100644 index 0000000..ee5ef72 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Pursuit.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_Pursuit extends TgDeviceFire + native(ChampLex) + config(Engine); + +native function SetProperty(int nPropertyId, float fNewValue); // Export UTgDeviceFire_Pursuit::execSetProperty(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Recharge.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Recharge.uc new file mode 100644 index 0000000..7eb5485 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Recharge.uc @@ -0,0 +1,21 @@ +class TgDeviceFire_Recharge extends TgDeviceFire + native(ChampGauntlet) + config(Engine); + +var float s_fLastNoShieldFXPlayTimestamp; +var float s_fTimeBetweenNoShieldFX; + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_Recharge::execIsValidTarget(FFrame&, void* const) + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_Recharge::execIgnoreTargetForBlocking(FFrame&, void* const) + +native function SpecialShieldDestroyed(); // Export UTgDeviceFire_Recharge::execSpecialShieldDestroyed(FFrame&, void* const) + +defaultproperties +{ + s_fTimeBetweenNoShieldFX=4.0000000 + m_bUseAccurateEncroachment=true + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=7073 + m_vActorEncroachmentBaseScale=(X=16.0000000,Y=16.0000000,Z=16.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_RendSoul.uc b/Development/Src/TgGame/Classes/TgDeviceFire_RendSoul.uc new file mode 100644 index 0000000..08829da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_RendSoul.uc @@ -0,0 +1,18 @@ +class TgDeviceFire_RendSoul extends TgDeviceFire + native(ChampOracle) + config(Engine); + +var int s_nStacksConsumed; + +native function CustomFire(); // Export UTgDeviceFire_RendSoul::execCustomFire(FFrame&, void* const) + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } + +event bool IsAgonyActive() { } + +event bool IsSoulCollectorActive() { } + +defaultproperties +{ + m_bCanTriggerCounter=false +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_RepulsorField.uc b/Development/Src/TgGame/Classes/TgDeviceFire_RepulsorField.uc new file mode 100644 index 0000000..c44a45e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_RepulsorField.uc @@ -0,0 +1,8 @@ +class TgDeviceFire_RepulsorField extends TgDeviceFire + native(ChampRuckus) + config(Engine) + dependson(TgDevice, TgObject); + +native function float GetDamageRadius(); // Export UTgDeviceFire_RepulsorField::execGetDamageRadius(FFrame&, void* const) + +native function WeaponFireResults CalcWeaponModeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional bool bNoBodyShotCheck=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire_RepulsorField::execCalcWeaponModeFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_RestoreSoul.uc b/Development/Src/TgGame/Classes/TgDeviceFire_RestoreSoul.uc new file mode 100644 index 0000000..fced1a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_RestoreSoul.uc @@ -0,0 +1,21 @@ +class TgDeviceFire_RestoreSoul extends TgDeviceFire + native(ChampOracle) + config(Engine); + +var float m_fServerRangeBufferMult; +var float m_fBaseEncroachmentActorRange; + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_RestoreSoul::execIgnoreTargetForBlocking(FFrame&, void* const) + +event bool IsAbyssalFuryActive() { } + +simulated event float GetPostHitDelay() { } + +defaultproperties +{ + m_fServerRangeBufferMult=1.2500000 + m_fBaseEncroachmentActorRange=10.0000000 + m_bUseTargetingEncroachmentActor=true + m_fEncroachmentRayCastVerticalOffset=0.6000000 + m_nTargetingEncroachmentActorOverride=7372 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Reversal.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Reversal.uc new file mode 100644 index 0000000..b0d9b51 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Reversal.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_Reversal extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Salvo.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Salvo.uc new file mode 100644 index 0000000..f3c20ab --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Salvo.uc @@ -0,0 +1,8 @@ +class TgDeviceFire_Salvo extends TgDeviceFire + config(Engine); + +var TgDevice_DrogozInhand m_CachedDrogozInhand; + +simulated event float GetPreHitDelay() { } + +simulated function bool HasCachedDrogozInhand() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_SelfResurrection.uc b/Development/Src/TgGame/Classes/TgDeviceFire_SelfResurrection.uc new file mode 100644 index 0000000..e494cec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_SelfResurrection.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_SelfResurrection extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_ShatterExplosion.uc b/Development/Src/TgGame/Classes/TgDeviceFire_ShatterExplosion.uc new file mode 100644 index 0000000..b15e515 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_ShatterExplosion.uc @@ -0,0 +1,3 @@ +class TgDeviceFire_ShatterExplosion extends TgDeviceFire_WorldLOSOnly + native(ChampYing) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_ShellShield.uc b/Development/Src/TgGame/Classes/TgDeviceFire_ShellShield.uc new file mode 100644 index 0000000..fbc4bd4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_ShellShield.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_ShellShield extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bDeployOnOwnerLocation=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_ShieldFernando.uc b/Development/Src/TgGame/Classes/TgDeviceFire_ShieldFernando.uc new file mode 100644 index 0000000..d43ffcf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_ShieldFernando.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_ShieldFernando extends TgDeviceFire + config(Engine); + +simulated event float GetCooldownTime() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_ShieldsOnly.uc b/Development/Src/TgGame/Classes/TgDeviceFire_ShieldsOnly.uc new file mode 100644 index 0000000..6fa6395 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_ShieldsOnly.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_ShieldsOnly extends TgDeviceFire + native(Devices) + config(Engine); + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_ShieldsOnly::execIsValidTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_SiegeUnit.uc b/Development/Src/TgGame/Classes/TgDeviceFire_SiegeUnit.uc new file mode 100644 index 0000000..c471008 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_SiegeUnit.uc @@ -0,0 +1,8 @@ +class TgDeviceFire_SiegeUnit extends TgDeviceFire + native(ChampFlak) + config(Engine); + +defaultproperties +{ + m_bAllowMultiplePets=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Smash.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Smash.uc new file mode 100644 index 0000000..45b4f20 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Smash.uc @@ -0,0 +1,16 @@ +class TgDeviceFire_Smash extends TgDeviceFire + native(ChampMakoa) + config(Engine); + +var Actor m_NormalTargetingEncroachmentActor; +var Actor m_LargeTargetingEncroachmentActor; +var int m_nLargeTargetingMeshID; + +simulated function ToggleTargetingMesh(bool bEnable) { } + +defaultproperties +{ + m_nLargeTargetingMeshID=5958 + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=5905 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_SnakeToss.uc b/Development/Src/TgGame/Classes/TgDeviceFire_SnakeToss.uc new file mode 100644 index 0000000..cae9b61 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_SnakeToss.uc @@ -0,0 +1,13 @@ +class TgDeviceFire_SnakeToss extends TgDeviceFire + native(ChampMalDamba) + config(Engine); + +struct RecentStunnedTarget { + var Actor Target; + var float fTimestamp; + structdefaultproperties {} +}; + +var array m_RecentStunnedTargets; + +event bool ApplyHit(ImpactInfo Impact, Actor DamageInstigator) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Soar.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Soar.uc new file mode 100644 index 0000000..4f7f22d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Soar.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_Soar extends TgDeviceFire + config(Engine); + +simulated event float GetMinCooldownTime() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_SpaceTime.uc b/Development/Src/TgGame/Classes/TgDeviceFire_SpaceTime.uc new file mode 100644 index 0000000..e67c248 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_SpaceTime.uc @@ -0,0 +1,14 @@ +class TgDeviceFire_SpaceTime extends TgDeviceFire_WorldLOSOnly + native(ChampAstro) + config(Engine) + dependson(TgDevice, TgDeviceFire, TgObject); + +native function WeaponFireResults CalcActorEncroachmentTargetingFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire_SpaceTime::execCalcActorEncroachmentTargetingFire(FFrame&, void* const) + +defaultproperties +{ + m_bUseAccurateEncroachment=true + m_bUseTargetingEncroachmentActor=true + m_bEnchroachmentFireLOSCheck=false + m_nTargetingEncroachmentActorOverride=8086 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_SpawnAtOwnerLocation.uc b/Development/Src/TgGame/Classes/TgDeviceFire_SpawnAtOwnerLocation.uc new file mode 100644 index 0000000..4cb316c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_SpawnAtOwnerLocation.uc @@ -0,0 +1,9 @@ +class TgDeviceFire_SpawnAtOwnerLocation extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bAdjustDeployHeightToExtent=true + m_bDeployOnOwnerLocation=true + m_bSpawnPetOnOwnerLocation=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Spray.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Spray.uc new file mode 100644 index 0000000..56b2d05 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Spray.uc @@ -0,0 +1,6 @@ +class TgDeviceFire_Spray extends TgDeviceFire + native(Devices) + config(Engine) + dependson(TgDevice, TgObject); + +native function WeaponFireResults CalcWeaponModeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional bool bNoBodyShotCheck=false, optional float RewindTime=0.0000000, const optional out array ImpactsToValidate); // Export UTgDeviceFire_Spray::execCalcWeaponModeFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Telepunch.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Telepunch.uc new file mode 100644 index 0000000..8b33c59 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Telepunch.uc @@ -0,0 +1,12 @@ +class TgDeviceFire_Telepunch extends TgDeviceFire + native(ChampDemon) + config(Engine); + +defaultproperties +{ + m_bUseAccurateEncroachment=true + m_bUseTargetingEncroachmentActor=true + m_bEnchroachmentFireLOSCheck=false + m_nTargetingEncroachmentActorOverride=8256 + m_vActorEncroachmentBaseScale=(X=100.0000000,Y=25.0000000,Z=25.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Tempest.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Tempest.uc new file mode 100644 index 0000000..061feee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Tempest.uc @@ -0,0 +1,13 @@ +class TgDeviceFire_Tempest extends TgDeviceFire + native(ChampGrohk) + config(Engine) + dependson(TgObject); + +native function ImpactInfo CalcAoeFire(Actor DamageInstigator, AimData Aim, out array ImpactList, optional bool bPredicting=false, optional float RewindTime=0.0000000); // Export UTgDeviceFire_Tempest::execCalcAoeFire(FFrame&, void* const) + +defaultproperties +{ + m_eTargetSelectionTypeOverride=TGTST_Random + m_bIsAOE=true + m_bIgnoreDeployablesForBlocking=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_TheLaw.uc b/Development/Src/TgGame/Classes/TgDeviceFire_TheLaw.uc new file mode 100644 index 0000000..05b6504 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_TheLaw.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_TheLaw extends TgDeviceFire + native(ChampLex) + config(Engine); + +var TgWeaponMeshActor_LexInhand m_pCachedLexWeaponMeshActor; + +defaultproperties +{ + m_bCanTargetStealthedTargets=false +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Transporter.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Transporter.uc new file mode 100644 index 0000000..cb5cdbd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Transporter.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_Transporter extends TgDeviceFire + native(ChampKinessa) + config(Engine); + +native simulated function TeleportFire(); // Export UTgDeviceFire_Transporter::execTeleportFire(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Turret.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Turret.uc new file mode 100644 index 0000000..4f80f66 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Turret.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_Turret extends TgDeviceFire + native(ChampBarik) + config(Engine); + +native function TgPawn SpawnPet(bool bPet); // Export UTgDeviceFire_Turret::execSpawnPet(FFrame&, void* const) + +defaultproperties +{ + m_bAllowMultiplePets=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_TurretShot.uc b/Development/Src/TgGame/Classes/TgDeviceFire_TurretShot.uc new file mode 100644 index 0000000..d33746d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_TurretShot.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_TurretShot extends TgDeviceFire + native(ChampBarik) + config(Engine); + +native function bool IsValidTarget(Actor P, optional TgDeviceFire.DeviceTargeterType eTargeterType=0, optional bool bIgnoreHealth, optional bool bInvertTeam); // Export UTgDeviceFire_TurretShot::execIsValidTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_TurtlePower.uc b/Development/Src/TgGame/Classes/TgDeviceFire_TurtlePower.uc new file mode 100644 index 0000000..e123ac1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_TurtlePower.uc @@ -0,0 +1,4 @@ +class TgDeviceFire_TurtlePower extends TgDeviceFire + config(Engine); + +event SubmitEffect(ImpactInfo Impact, TgEffectGroup EffectGroup, optional bool bRemove, optional int StackCount=1, optional Actor InstigatorOverride) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Uppercut.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Uppercut.uc new file mode 100644 index 0000000..9c1ee86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Uppercut.uc @@ -0,0 +1,9 @@ +class TgDeviceFire_Uppercut extends TgDeviceFire + native(ChampDemon) + config(Engine); + +defaultproperties +{ + m_bUseTargetingEncroachmentActor=true + m_nTargetingEncroachmentActorOverride=8095 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Valor.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Valor.uc new file mode 100644 index 0000000..be870be --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Valor.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_Valor extends TgDeviceFire + config(Engine); + +defaultproperties +{ + m_bCanTargetStealthedTargets=false +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_Whirlwind.uc b/Development/Src/TgGame/Classes/TgDeviceFire_Whirlwind.uc new file mode 100644 index 0000000..6649f97 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_Whirlwind.uc @@ -0,0 +1,7 @@ +class TgDeviceFire_Whirlwind extends TgDeviceFire_Cylinder + config(Engine); + +defaultproperties +{ + m_bIgnoreDeployablesForBlocking=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_WorldLOSOnly.uc b/Development/Src/TgGame/Classes/TgDeviceFire_WorldLOSOnly.uc new file mode 100644 index 0000000..45aea36 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_WorldLOSOnly.uc @@ -0,0 +1,5 @@ +class TgDeviceFire_WorldLOSOnly extends TgDeviceFire + native(Devices) + config(Engine); + +native function bool IgnoreTargetForBlocking(Actor Target); // Export UTgDeviceFire_WorldLOSOnly::execIgnoreTargetForBlocking(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceFire_YingIllusionInhand.uc b/Development/Src/TgGame/Classes/TgDeviceFire_YingIllusionInhand.uc new file mode 100644 index 0000000..87ebbba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceFire_YingIllusionInhand.uc @@ -0,0 +1,10 @@ +class TgDeviceFire_YingIllusionInhand extends TgDeviceFire_WorldLOSOnly + native(ChampYing) + config(Engine); + +defaultproperties +{ + m_eTargetSelectionTypeOverride=TGTST_LowestHealthPercent + m_bPassThroughShield=true + m_bMaintainBurstTarget=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm.uc b/Development/Src/TgGame/Classes/TgDeviceForm.uc new file mode 100644 index 0000000..caa2eb3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm.uc @@ -0,0 +1,234 @@ +class TgDeviceForm extends Object + native(Devices) + config(Engine) + dependson(TgDevice, TgObject, TgPawn); + +const DEFAULT_FX_RADIUS = 240.0f; + +struct transient ModeData { + var init float c_fBuildupTime; + var init bool c_bContinuousFire; + var init bool c_FxInstantFire; + var init name c_nmOffhandAnimationType; + var init bool c_bScaleFireAnimsWithRefire; + var init bool c_bInterruptAnimOnRefire; + var init float c_fEffectRadius; + var init float c_fMaxRange; + var init CameraAnim c_WhileFiringCameraAnim; + structdefaultproperties {} +}; + +var TgPawn PawnOwner; +var EquipDeviceInfo c_EquipDeviceInfo; +var int m_nDeviceType; +var TgObject.DeviceTargetMode m_eTargetingMode; +var TgDevice.ETargetingModeStatus c_eTargetingModeStatus; +var bool c_bDeployed; +var bool c_bHandDevice; +var bool c_bDisableDefaultTimelapseRecovery; +var bool c_bIsTransitioningToNewMode; +var bool c_bTargetingModeEnabled; +var bool c_bTargeterInitializedThisTick; +var bool c_bTargeterIsInWorldDPG; +var bool c_bUseInstigatorMesh; +var bool c_bIsInHand; +var bool m_bInitializingAssets; +var bool m_bLoopWhileFiringCameraAnim; +var bool m_bUseImpactFXOverride; +var bool m_bRecoilTimerActive; +var array c_PawnAnimSetOverrideList; +var array ModeDatas; +var native Pointer m_pAmSetup; +var export editinline MeshComponent c_Mesh; +var export editinline MeshComponent c_AttachedMesh; +var protected export editinline MeshComponent c_ThirdPersonMesh; +var protected export editinline TgSkeletalMeshComponent c_FirstPersonMesh; +var name c_nmMountPoint; +var name FormState; +var int c_nFireMode; +var int c_nEquipSlot; +var float c_fLastReceivedRefireTime; +var int c_nLastFxMode; +var TgSkeletalMeshActor c_TargetingModeMeshIndicator; +var TgSpecialFx c_TargetingModeFx; +var AimData c_TargetingAim; +var int c_nTargetingModeFxId; +var float c_fRemainingTransitionTime; +var float c_fTotalTransitionTime; +var Actor m_LockedTarget; +var ObjectReferencer m_AssetReference; +var Actor m_OwnerActor; +var array m_AbilityBlendList1P; +var array m_AbilityBlendList3P; +var array m_ChannelFireBlendList1P; +var array m_ChannelFireBlendList3P; +var array m_TargetingBlendList1P; +var array m_TargetingBlendList3P; +var array m_ToggleTransitionNodes1P; +var array m_ToggleTransitionNodes3P; +var array m_AmmoBlendList1P; +var array m_AmmoBlendList3P; +var CameraAnimInst m_WhileFiringCameraAnimInst; +var float m_fWhileFiringCameraAnimBlendInTime; +var float m_fWhileFiringCameraAnimBlendOutTime; +var native const transient Pointer m_RandomShotSpreadStream; +var int m_nLastSetShotSpreadSeed; +var TgGameplayCurves m_GameplayCurves; +var float m_fRecoilTimer; + +native function SetFireMode(int nMode); // Export UTgDeviceForm::execSetFireMode(FFrame&, void* const) + +native function AttachDevice_DA(SkeletalMeshComponent ParentMesh, MeshComponent AttachedMesh, optional name nmSocket); // Export UTgDeviceForm::execAttachDevice_DA(FFrame&, void* const) + +native function bool AttachInHandDevice_DA(bool bFirstPerson); // Export UTgDeviceForm::execAttachInHandDevice_DA(FFrame&, void* const) + +native function DetachDevice_DA(SkeletalMeshComponent ParentMesh, MeshComponent AttachedMesh); // Export UTgDeviceForm::execDetachDevice_DA(FFrame&, void* const) + +native function DetachInHandDevice_DA(); // Export UTgDeviceForm::execDetachInHandDevice_DA(FFrame&, void* const) + +native function InitCameraViewpoint(); // Export UTgDeviceForm::execInitCameraViewpoint(FFrame&, void* const) + +native function bool LogDebugInfo(); // Export UTgDeviceForm::execLogDebugInfo(FFrame&, void* const) + +native function ActivateFxGroup(name nmGroup); // Export UTgDeviceForm::execActivateFxGroup(FFrame&, void* const) + +native function TgSpecialFx ActivateFxIndependent(name nmGroup, optional bool bSkipActivate, optional ParticleChannelContainer PSysChannels); // Export UTgDeviceForm::execActivateFxIndependent(FFrame&, void* const) + +native function DeactivateFxGroup(name nmGroup); // Export UTgDeviceForm::execDeactivateFxGroup(FFrame&, void* const) + +native function int GetFormIndex(); // Export UTgDeviceForm::execGetFormIndex(FFrame&, void* const) + +native function Destruct(Vector vLocation); // Export UTgDeviceForm::execDestruct(FFrame&, void* const) + +native function ResetAfterRagDoll(); // Export UTgDeviceForm::execResetAfterRagDoll(FFrame&, void* const) + +native function TgSpecialFx SpawnSpecialFxIndependent(int nSpecialFxId, optional ParticleChannelContainer PSysChannels); // Export UTgDeviceForm::execSpawnSpecialFxIndependent(FFrame&, void* const) + +native function UpdateTargetingModeStatus(TgDevice.ETargetingModeStatus Status, const out AimData Aim); // Export UTgDeviceForm::execUpdateTargetingModeStatus(FFrame&, void* const) + +native function UpdateTargetingModeStatusForFX(TgSpecialFx Fx, TgDevice.ETargetingModeStatus Status, const out AimData Aim); // Export UTgDeviceForm::execUpdateTargetingModeStatusForFX(FFrame&, void* const) + +native function UpdateTargetingModeLocation(Vector NewLocation, Rotator NewRotation, optional float DistanceScale=1.0000000); // Export UTgDeviceForm::execUpdateTargetingModeLocation(FFrame&, void* const) + +native function UpdateTargetingList(const out array ImpactList); // Export UTgDeviceForm::execUpdateTargetingList(FFrame&, void* const) + +native function RecalculateMaterial(); // Export UTgDeviceForm::execRecalculateMaterial(FFrame&, void* const) + +native function UpdateFirstPersonWeaponFOV(optional Vector2D Resolution); // Export UTgDeviceForm::execUpdateFirstPersonWeaponFOV(FFrame&, void* const) + +native function bool UsesTargetingMode(); // Export UTgDeviceForm::execUsesTargetingMode(FFrame&, void* const) + +native function bool CanPlayBasicHitFx(const TgPawn Target); // Export UTgDeviceForm::execCanPlayBasicHitFx(FFrame&, void* const) + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +simulated function OnReload(float fReloadTime) { } + +event SetAmmoBlendNodesAmount(int nAmmoAmt, optional bool bTickOnly=false) { } + +function SetAbilityBlendNodesActive(bool bActive, bool bOnFire, optional bool bIsInterrupted=false) { } + +function DisableChannelFireBlendNodes() { } + +event Generic1(optional byte byExtraData) { } + +event Generic2(optional byte byExtraData) { } + +event Generic3(optional byte byExtraData) { } + +event Generic4(optional byte byExtraData) { } + +event Generic5(optional byte byExtraData) { } + +event OnCreated() { } + +event SetSourceArcingBeamEffect(Actor Source) { } + +event SetTargetArcingBeamEffect(Actor Target) { } + +event PlayImpactEffects(Vector HitLocation, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional Vector FireOrigin, optional float fHitTraceDistOverride=-1.0000000, optional bool bGenerateUpdatedHitLocation=false) { } + +simulated function ParticleSystemDone(ParticleSystemComponent PSC) { } + +event BeginActive() { } + +event BeginDeviceTakingOut(optional bool PlayEquipAnim=true) { } + +function EndDevicePuttingDown() { } + +native function InitializeTargetingModeFX(); // Export UTgDeviceForm::execInitializeTargetingModeFX(FFrame&, void* const) + +simulated event EnterTargetingMode() { } + +simulated event NotifyExitTargetingMode(bool bDeployed) { } + +simulated event NotifyEnterTargetingMode() { } + +simulated event NotifyTargetingModeStatusChange() { } + +simulated event ExitTargetingMode() { } + +event EnterTargeting() { } + +event InterruptTargeting() { } + +event FireHoldFull(bool bIsFull) { } + +event BuildUp(int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional float fBuildupTime=0.0000000) { } + +simulated function TgDeviceForm InHandWeaponForm() { } + +simulated event bool IsCurrentInHandWeapon() { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +function StartWhileFiringCameraAnim(PlayerController PC, optional int nFireMode=0) { } + +event StopWhileFiringCameraAnim(PlayerController PC, bool bImmediate) { } + +function OnEndViewTarget(PlayerController PC) { } + +event StopFire(int nFireModeNum) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event FireMulti(Vector vAimStart, Vector vAimDir, int nFireMode, const out byte hitRanges[20], float fMaxRange, int nSeed, float fSpreadAngle, int nNumShots, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event FireMultiUnpacked(array vHitLocations, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime, optional float fPackedDistanceUnit=0.0000000) { } + +native function RecoverFireMultiHitLocations(out array vHitLocations, const out Vector vAimStart, const out Vector vAimDir, const out byte hitRanges[20], float fDistUnit, int nSeed, float fSpreadAngle, int nNumShots); // Export UTgDeviceForm::execRecoverFireMultiHitLocations(FFrame&, void* const) + +event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } + +event Cooldown(int nFireModeNum) { } + +event CooldownComplete() { } + +event DoInterrupt() { } + +event DeviceAnimNotify() { } + +simulated event AttachAndDeploy_DA() { } + +simulated function EndCurrentState() { } + +simulated event GotoFormState(name NewState) { } + +simulated event PlayToggleTransitionAnimations(float transitionPercent, float totalTransitionTime, bool transitionToActive) { } + +simulated event SetToggleState(bool IsActive) { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } + +simulated event OnRetrieveAnimDone() { } + +simulated event OnDestroyed() { } + +defaultproperties +{ + c_fTotalTransitionTime=0.5000000 + m_fWhileFiringCameraAnimBlendInTime=0.2000000 + m_fWhileFiringCameraAnimBlendOutTime=0.2000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_AccursedArm.uc b/Development/Src/TgGame/Classes/TgDeviceForm_AccursedArm.uc new file mode 100644 index 0000000..1ab1104 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_AccursedArm.uc @@ -0,0 +1,22 @@ +class TgDeviceForm_AccursedArm extends TgDeviceForm + native(ChampAndroxus) + config(Engine); + +var bool m_bShouldBeActive; +var float m_fActivationTime; +var float m_fCurrentActivationPercent; +var MaterialInterface m_cachedWeaponMaterial; +var MaterialInstanceConstant m_accursedArmMaterial; +var name m_nmUltimateActive; + +native simulated function CacheAccursedArmMaterial(); // Export UTgDeviceForm_AccursedArm::execCacheAccursedArmMaterial(FFrame&, void* const) + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_fActivationTime=0.4000000 + m_nmUltimateActive="UltimateActive" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_AccursedArmGun.uc b/Development/Src/TgGame/Classes/TgDeviceForm_AccursedArmGun.uc new file mode 100644 index 0000000..5eff888 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_AccursedArmGun.uc @@ -0,0 +1,9 @@ +class TgDeviceForm_AccursedArmGun extends TgDeviceForm + config(Engine); + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +defaultproperties +{ + m_bUseImpactFXOverride=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Advance.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Advance.uc new file mode 100644 index 0000000..ac48c6f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Advance.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_Advance extends TgDeviceForm + config(Engine); + +event Generic1(optional byte byExtraData) { } + +event Generic2(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ArcingBeam.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ArcingBeam.uc new file mode 100644 index 0000000..9f5cb72 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ArcingBeam.uc @@ -0,0 +1,42 @@ +class TgDeviceForm_ArcingBeam extends TgDeviceForm + native(ChampGrohk) + config(Engine); + +struct ArcingFXInfo { + var Actor Source; + var Actor Target; + var TgSpecialFx ArcingFX; + var float fRemainingActiveTime; + structdefaultproperties {} +}; + +var array m_ArcingBeamList; +var Actor m_BeamSourceActor; +var float m_fBeamPersistTime; +var bool m_bRequireDeviceIsFiring; +var bool m_bIsFXContinuous; +var int m_nBeamEffectID; +var TgPawn_Grohk m_CachedGrohkPawn; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event SetSourceArcingBeamEffect(Actor Source) { } + +event SetTargetArcingBeamEffect(Actor Target) { } + +native function UpdateBeamEndLocation(int Idx); // Export UTgDeviceForm_ArcingBeam::execUpdateBeamEndLocation(FFrame&, void* const) + +function StopArcingBeamEffects(optional Actor Target) { } + +simulated function bool HasCachedGrohkPawn() { } + +defaultproperties +{ + m_fBeamPersistTime=0.5000000 + m_bRequireDeviceIsFiring=true + m_bIsFXContinuous=true + m_nBeamEffectID=6980 + m_bUseImpactFXOverride=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_AstroInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_AstroInhand.uc new file mode 100644 index 0000000..ce09293 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_AstroInhand.uc @@ -0,0 +1,15 @@ +class TgDeviceForm_AstroInhand extends TgDeviceForm_SpinnerWhileFiring + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +function SetSpinnersRotationSpeedState(int nState) { } + +function SetSpinStates(TgSkelCon_Spinner pSpinner, int nState) { } + +defaultproperties +{ + m_SpinnerName="RINGS" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_BarikInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_BarikInhand.uc new file mode 100644 index 0000000..524b6b4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_BarikInhand.uc @@ -0,0 +1,7 @@ +class TgDeviceForm_BarikInhand extends TgDeviceForm + config(Engine); + +defaultproperties +{ + m_GameplayCurves=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Barrage.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Barrage.uc new file mode 100644 index 0000000..54c6e0c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Barrage.uc @@ -0,0 +1,10 @@ +class TgDeviceForm_Barrage extends TgDeviceForm + config(Engine); + +var TgPlayerController m_CachedActiveOverlayController; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_BarrageFire.uc b/Development/Src/TgGame/Classes/TgDeviceForm_BarrageFire.uc new file mode 100644 index 0000000..d5f6550 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_BarrageFire.uc @@ -0,0 +1,25 @@ +class TgDeviceForm_BarrageFire extends TgDeviceForm + native(ChampViktor) + config(Engine); + +var Actor m_LastTargetedActor; +var TgPlayerController m_CachedActiveOverlayController; +var float m_fIncomingTime; +var int m_nActiveShotNum; +var float m_fIncomingTimeCurrentShot; +var float m_fRemainingDurationPct; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +simulated event EnterTargetingMode() { } + +simulated event ExitTargetingMode() { } + +native function UpdateBinocularSettings(); // Export UTgDeviceForm_BarrageFire::execUpdateBinocularSettings(FFrame&, void* const) + +native function bool UsesTargetingMode(); // Export UTgDeviceForm_BarrageFire::execUsesTargetingMode(FFrame&, void* const) + +defaultproperties +{ + m_fIncomingTime=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_BladesInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_BladesInhand.uc new file mode 100644 index 0000000..0d885cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_BladesInhand.uc @@ -0,0 +1,5 @@ +class TgDeviceForm_BladesInhand extends TgDeviceForm + native(Devices) + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Booster.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Booster.uc new file mode 100644 index 0000000..6ad259e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Booster.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_Booster extends TgDeviceForm + config(Engine); + +var array m_FlyingBlendList1P; +var array m_FlyingBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_BuckInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_BuckInhand.uc new file mode 100644 index 0000000..57123fd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_BuckInhand.uc @@ -0,0 +1,7 @@ +class TgDeviceForm_BuckInhand extends TgDeviceForm + config(Engine); + +defaultproperties +{ + m_GameplayCurves=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_CombatSlide.uc b/Development/Src/TgGame/Classes/TgDeviceForm_CombatSlide.uc new file mode 100644 index 0000000..f7cf7bd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_CombatSlide.uc @@ -0,0 +1,14 @@ +class TgDeviceForm_CombatSlide extends TgDeviceForm + config(Engine); + +var () float m_fTransitionTime; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_fTransitionTime=0.1000000 + m_bLoopWhileFiringCameraAnim=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Counter.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Counter.uc new file mode 100644 index 0000000..ef7750c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Counter.uc @@ -0,0 +1,5 @@ +class TgDeviceForm_Counter extends TgDeviceForm + native(ChampDarklord) + config(Engine); + +event Generic1(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_CounterAttack.uc b/Development/Src/TgGame/Classes/TgDeviceForm_CounterAttack.uc new file mode 100644 index 0000000..82de910 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_CounterAttack.uc @@ -0,0 +1,12 @@ +class TgDeviceForm_CounterAttack extends TgDeviceForm + native(ChampDarklord) + config(Engine); + +var array m_DarklordNodes3p; +var array m_DarklordNodes1p; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Generic1(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_DarkConvergenceSub.uc b/Development/Src/TgGame/Classes/TgDeviceForm_DarkConvergenceSub.uc new file mode 100644 index 0000000..49803da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_DarkConvergenceSub.uc @@ -0,0 +1,2 @@ +class TgDeviceForm_DarkConvergenceSub extends TgDeviceForm + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_DarklordInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_DarklordInhand.uc new file mode 100644 index 0000000..0cdbd9d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_DarklordInhand.uc @@ -0,0 +1,42 @@ +class TgDeviceForm_DarklordInhand extends TgDeviceForm_Inhand + native(ChampDarklord) + config(Engine); + +var TgPawn_Darklord m_CachedDarklord; +var const float m_fFadeParamMin; +var const float m_fFadeParamMax; +var const float m_fAmmoParamMin; +var const float m_fAmmoParamMax; +var const float m_fMaskParamMin; +var const float m_fMaskParamMax; +var float m_fPreviousAppliedAmmoPerc; +var float m_fCurrentAppliedAmmoPerc; +var const float m_fAnimatedReloadStartNormalizedTime; +var const float m_fAnimatedReloadEndNormalizedTime; +var float m_fReloadDuration; +var float m_fReloadTimer; + +simulated function bool HasCachedDarklord() { } + +simulated function OnReload(float fReloadTime) { } + +simulated event ForceUpdateAmmoCountFx(float fPreviousPerc, float fCurrentPerc) { } + +simulated function UpdateAmmoCountFx(float fPreviousPerc, float fCurrentPerc) { } + +native simulated function UpdateSpecialFxMaterials(TgSpecialFx Fx, float fPerc); // Export UTgDeviceForm_DarklordInhand::execUpdateSpecialFxMaterials(FFrame&, void* const) + +simulated function UpdateMeshMaterials(TgSkeletalMeshComponent_Weapon Mesh, float fPerc) { } + +defaultproperties +{ + m_fFadeParamMin=0.5000000 + m_fFadeParamMax=1.0000000 + m_fAmmoParamMin=0.1000000 + m_fAmmoParamMax=1.0000000 + m_fMaskParamMin=0.1000000 + m_fMaskParamMax=1.0000000 + m_fAnimatedReloadStartNormalizedTime=0.3500000 + m_fAnimatedReloadEndNormalizedTime=0.5500000 + m_fReloadTimer=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_DemonInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_DemonInhand.uc new file mode 100644 index 0000000..b86ee32 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_DemonInhand.uc @@ -0,0 +1,3 @@ +class TgDeviceForm_DemonInhand extends TgDeviceForm + native(ChampDemon) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_DimensionalLink.uc b/Development/Src/TgGame/Classes/TgDeviceForm_DimensionalLink.uc new file mode 100644 index 0000000..8edd791 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_DimensionalLink.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_DimensionalLink extends TgDeviceForm + config(Engine); + +var TgPawn_Ying m_CachedYingPawn; + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +simulated function bool HasCachedYingPawn() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Disengage.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Disengage.uc new file mode 100644 index 0000000..14cb596 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Disengage.uc @@ -0,0 +1,15 @@ +class TgDeviceForm_Disengage extends TgDeviceForm + config(Engine); + +var array m_STSNodes3p; +var array m_STSNodes1p; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function SetStance(bool bActivated) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Dominance.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Dominance.uc new file mode 100644 index 0000000..8b48bb5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Dominance.uc @@ -0,0 +1,11 @@ +class TgDeviceForm_Dominance extends TgDeviceForm + native(ChampFlak) + config(Engine); + +var SkelControlBase m_SKCFlagScale; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +simulated event HideFlag() { } + +simulated event ShowFlag() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Drag.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Drag.uc new file mode 100644 index 0000000..939f93c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Drag.uc @@ -0,0 +1,89 @@ +class TgDeviceForm_Drag extends TgDeviceForm + native(ChampMakoa) + config(Engine) + dependson(TgObject); + +enum EDragState { + DRAG_Inactive, // 0 + DRAG_Throw, // 1 + DRAG_Hit, // 2 + DRAG_Pull, // 3 + DRAG_EndPull, // 4 + DRAG_MissThrow, // 5 + DRAG_MissInvalid, // 6 + DRAG_MissThrowEnd, // 7 + DRAG_MissInvalidEnd, // 8 + DRAG_CloseRangeEnd, // 9 +}; + +var Actor m_BeamTarget; +var bool m_bIsPawnTarget; +var int m_nPostureID; +var Vector m_vReleaseLocation; +var float m_fReleaseTime; +var const float m_fMissNoHitEndDistance; +var const float m_fMissNoHitEndTime; +var const float m_fMissInvalidEndDistance; +var const float m_fMissInvalidEndTime; +var const float m_fCloseRangeEndDistance; +var float m_fTruePostfireTime; +var export editinline TgSkeletalMeshComponent m_ChainMesh; +var const int m_nChainMeshID; +var TgSkelCon_HookChain c_ChainSkelCon; +var const name m_ChainSocket; +var array m_DragBlendList1P; +var array m_DragBlendList3P; +var array m_ChainBlendList; +var TgDeviceForm_Drag.EDragState m_DragState; + +native function HandleMissConditions(); // Export UTgDeviceForm_Drag::execHandleMissConditions(FFrame&, void* const) + +native function UpdateChainEffects(Vector vEndPoint); // Export UTgDeviceForm_Drag::execUpdateChainEffects(FFrame&, void* const) + +native function Vector GetChainSocketLocation(); // Export UTgDeviceForm_Drag::execGetChainSocketLocation(FFrame&, void* const) + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function CacheChainAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function ConnectBeamToTarget(Actor Target) { } + +event Generic1(optional byte byExtraData) { } + +event Generic2(optional byte byExtraData) { } + +event Generic3(optional byte byExtraData) { } + +event Generic4(optional byte byExtraData) { } + +simulated event StartMissNoHitEnd() { } + +simulated event StartMissInvalidEnd() { } + +simulated function HideChain() { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } + +event StopFire(int nFireModeNum) { } + +simulated function PlayChainEffects() { } + +simulated function StopChainEffects() { } + +simulated event SetChainLocation(Vector vLocalChainLocation, Vector vLocalSocketLocation) { } + +defaultproperties +{ + m_fMissNoHitEndDistance=80.0000000 + m_fMissNoHitEndTime=0.1000000 + m_fMissInvalidEndDistance=80.0000000 + m_fMissInvalidEndTime=0.1000000 + m_fCloseRangeEndDistance=200.0000000 + m_fTruePostfireTime=0.3000000 + m_nChainMeshID=5925 + m_ChainSocket="WSO_FX_01" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_DragonSlam.uc b/Development/Src/TgGame/Classes/TgDeviceForm_DragonSlam.uc new file mode 100644 index 0000000..d52a33f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_DragonSlam.uc @@ -0,0 +1,25 @@ +class TgDeviceForm_DragonSlam extends TgDeviceForm + config(Engine) + dependson(TgObject); + +var bool m_bStartFireInAir; +var array m_DragonSlamBlendList1P; +var array m_DragonSlamBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event BuildUp(int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional float fBuildupTime=0.0000000) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } + +event StopFire(int nFireModeNum) { } + +event DoInterrupt() { } + +function Cleanup() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_FlakInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_FlakInhand.uc new file mode 100644 index 0000000..e43d1e0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_FlakInhand.uc @@ -0,0 +1,12 @@ +class TgDeviceForm_FlakInhand extends TgDeviceForm + native(ChampFlak) + config(Engine) + dependson(TgObject); + +native function TraceForImpactFX(); // Export UTgDeviceForm_FlakInhand::execTraceForImpactFX(FFrame&, void* const) + +native function PlayHitSound(Vector Location, TgPawn Target); // Export UTgDeviceForm_FlakInhand::execPlayHitSound(FFrame&, void* const) + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_FragGrenade.uc b/Development/Src/TgGame/Classes/TgDeviceForm_FragGrenade.uc new file mode 100644 index 0000000..5c485af --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_FragGrenade.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_FragGrenade extends TgDeviceForm + config(Engine); + +var array m_FragGrenadeBlendList1P; +var array m_FragGrenadeBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Generic1(optional byte byExtraData) { } + +event DoInterrupt() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GaeBolg.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GaeBolg.uc new file mode 100644 index 0000000..eae18b0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GaeBolg.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_GaeBolg extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event DoInterrupt() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GauntletInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GauntletInhand.uc new file mode 100644 index 0000000..43fed87 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GauntletInhand.uc @@ -0,0 +1,15 @@ +class TgDeviceForm_GauntletInhand extends TgDeviceForm_SpinnerWhileFiring + config(Engine); + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +function SetLockedForBlendNodes(bool bLocked) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_SpinnerName="Stones" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GeometryBarrierTank.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GeometryBarrierTank.uc new file mode 100644 index 0000000..7d617d0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GeometryBarrierTank.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_GeometryBarrierTank extends TgDeviceForm + native(ChampBarrierTank) + config(Engine) + dependson(TgDevice, TgObject); + +native function UpdateTargetingModeLocation(Vector NewLocation, Rotator NewRotation, optional float DistanceScale=1.0000000); // Export UTgDeviceForm_GeometryBarrierTank::execUpdateTargetingModeLocation(FFrame&, void* const) + +native function UpdateTargetingModeStatusForFX(TgSpecialFx Fx, TgDevice.ETargetingModeStatus Status, const out AimData Aim); // Export UTgDeviceForm_GeometryBarrierTank::execUpdateTargetingModeStatusForFX(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GraceSupport.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GraceSupport.uc new file mode 100644 index 0000000..ace187c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GraceSupport.uc @@ -0,0 +1,11 @@ +class TgDeviceForm_GraceSupport extends TgDeviceForm + config(Engine) + dependson(TgObject); + +var TgWeaponMeshActor_LianInhand m_CachedWMA; + +function bool HasCachedWMA() { } + +simulated event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +simulated event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GravityLift.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GravityLift.uc new file mode 100644 index 0000000..a992184 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GravityLift.uc @@ -0,0 +1,5 @@ +class TgDeviceForm_GravityLift extends TgDeviceForm + native(ChampAstro) + config(Engine); + +event SetLockedForBlendNodes(bool bLocked) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GrohkInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GrohkInhand.uc new file mode 100644 index 0000000..76fa48f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GrohkInhand.uc @@ -0,0 +1,14 @@ +class TgDeviceForm_GrohkInhand extends TgDeviceForm_ArcingBeam + config(Engine); + +var TgSkelCon_Spinner m_SpinnerSkelControl; + +function SetBeamFXForHit(bool DidHit) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_GrumpyBomb.uc b/Development/Src/TgGame/Classes/TgDeviceForm_GrumpyBomb.uc new file mode 100644 index 0000000..d7579ba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_GrumpyBomb.uc @@ -0,0 +1,2 @@ +class TgDeviceForm_GrumpyBomb extends TgDeviceForm + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_HeadHunter.uc b/Development/Src/TgGame/Classes/TgDeviceForm_HeadHunter.uc new file mode 100644 index 0000000..857c30b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_HeadHunter.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_HeadHunter extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_HeatHaze.uc b/Development/Src/TgGame/Classes/TgDeviceForm_HeatHaze.uc new file mode 100644 index 0000000..55db9eb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_HeatHaze.uc @@ -0,0 +1,20 @@ +class TgDeviceForm_HeatHaze extends TgDeviceForm + native(ChampLongbow) + config(Engine); + +var bool m_bShouldBeActive; +var float m_fUltActivationTime; +var float m_fUltActivationPercent; + +native function UpdateUltMeshVisibility(float DeltaSeconds); // Export UTgDeviceForm_HeatHaze::execUpdateUltMeshVisibility(FFrame&, void* const) + +native function UpdateMeshMICValue(MeshComponent MeshComp); // Export UTgDeviceForm_HeatHaze::execUpdateMeshMICValue(FFrame&, void* const) + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_fUltActivationTime=0.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_HeroicLeap.uc b/Development/Src/TgGame/Classes/TgDeviceForm_HeroicLeap.uc new file mode 100644 index 0000000..8b1dab4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_HeroicLeap.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_HeroicLeap extends TgDeviceForm + config(Engine); + +var TgAnimNodeBlendList m_BlendList1P; +var TgAnimNodeBlendList m_BlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_HexaFire.uc b/Development/Src/TgGame/Classes/TgDeviceForm_HexaFire.uc new file mode 100644 index 0000000..7bb2b66 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_HexaFire.uc @@ -0,0 +1,27 @@ +class TgDeviceForm_HexaFire extends TgDeviceForm + config(Engine); + +var TgAnimNodeBlendList m_LeftRocket1p; +var TgAnimNodeBlendList m_LeftRocket3p; +var TgAnimNodeBlendList m_RightRocket1p; +var TgAnimNodeBlendList m_RightRocket3p; +var bool m_bFiringRightRocket; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +function SetAllInactive() { } + +event DoInterrupt() { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_bFiringRightRocket=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_HexaFireGuns.uc b/Development/Src/TgGame/Classes/TgDeviceForm_HexaFireGuns.uc new file mode 100644 index 0000000..f636436 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_HexaFireGuns.uc @@ -0,0 +1,42 @@ +class TgDeviceForm_HexaFireGuns extends TgDeviceForm + config(Engine); + +var TgSkelCon_Spinner m_SpinnerSkelControl1P; +var TgSkelCon_Spinner m_SpinnerSkelControl3P; +var int m_nNextGunFired; +var name c_nmSocket1; +var name c_nmSocket2; +var name c_nmSocket3; +var name c_nmSocket4; +var TgSkelControlSingleBone_PistonBarrel m_LowerRightBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_UpperRightBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_LowerLeftBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_UpperLeftBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_LowerRightBarrel3P; +var TgSkelControlSingleBone_PistonBarrel m_UpperRightBarrel3P; +var TgSkelControlSingleBone_PistonBarrel m_LowerLeftBarrel3P; +var TgSkelControlSingleBone_PistonBarrel m_UpperLeftBarrel3P; + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function CacheAnimNodesHelper(TgSkeletalMeshComponent SkelComp, out TgSkelControlSingleBone_PistonBarrel LowerRightBarrel, out TgSkelControlSingleBone_PistonBarrel UpperRightBarrel, out TgSkelControlSingleBone_PistonBarrel LowerLeftBarrel, out TgSkelControlSingleBone_PistonBarrel UpperLeftBarrel, out TgSkelCon_Spinner Spinner) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Vector GetTracerSocketLocation() { } + +defaultproperties +{ + m_nNextGunFired=1 + c_nmSocket1="WSO_Emit_01" + c_nmSocket2="WSO_Emit_02" + c_nmSocket3="WSO_Emit_03" + c_nmSocket4="WSO_Emit_04" + m_bUseImpactFXOverride=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Hover.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Hover.uc new file mode 100644 index 0000000..01d68f3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Hover.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_Hover extends TgDeviceForm + config(Engine); + +var TgAnimNodeBlendList m_HoverBlendList1P; +var TgAnimNodeBlendList m_HoverBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Hustle.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Hustle.uc new file mode 100644 index 0000000..484c738 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Hustle.uc @@ -0,0 +1,12 @@ +class TgDeviceForm_Hustle extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_bLoopWhileFiringCameraAnim=true + m_fWhileFiringCameraAnimBlendOutTime=0.1500000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_HyperBeam.uc b/Development/Src/TgGame/Classes/TgDeviceForm_HyperBeam.uc new file mode 100644 index 0000000..b893baa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_HyperBeam.uc @@ -0,0 +1,17 @@ +class TgDeviceForm_HyperBeam extends TgDeviceForm_SpinnerWhileFiring + config(Engine); + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +simulated function PlayTracerEffects(Vector endLocation, optional int nEquipSlot=0) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +function SetSpinnersActive(bool bActive) { } + +defaultproperties +{ + m_SpinnerName="Stones" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Inhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Inhand.uc new file mode 100644 index 0000000..e319334 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Inhand.uc @@ -0,0 +1,14 @@ +class TgDeviceForm_Inhand extends TgDeviceForm + native(Devices) + config(Engine); + +var int m_nAmmoCount; +var int m_nMaxAmmoCount; +var float m_fPreviousAmmoPerc; +var float m_fCurrentAmmoPerc; + +simulated function OnAmmoCountUpdated(int nAmmoCount, int nMaxAmmoCount) { } + +simulated function UpdateAmmoCountFx(float fPreviousPerc, float fCurrentPerc) { } + +simulated function OnWeaponMeshUpdated() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_IronSights.uc b/Development/Src/TgGame/Classes/TgDeviceForm_IronSights.uc new file mode 100644 index 0000000..4df194b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_IronSights.uc @@ -0,0 +1,30 @@ +class TgDeviceForm_IronSights extends TgDeviceForm_ToggleWithLockout + native(ChampViktor) + config(Engine); + +var float m_fCameraFOVInterpolationTime; +var () float m_fMaxCameraFOVInteprolationTime; +var float m_fCameraFOVInterpolationTarget; +var float m_fActiveFOV; +var bool m_fHasStartedInterpolation; +var float m_fDesiredStartInterpolationTimestamp; + +event Generic1(optional byte byExtraData) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StopFire(int nFireModeNum) { } + +event Generic2(optional byte byExtraData) { } + +simulated function ClearPendingFOVInterpolation() { } + +simulated event PlayToggleTransitionAnimations(float transitionPercent, float totalTransitionTime, bool transitionToActive) { } + +simulated event StartCameraInterpolation() { } + +defaultproperties +{ + m_fMaxCameraFOVInteprolationTime=0.1200000 + m_fActiveFOV=70.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_KinessaInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_KinessaInhand.uc new file mode 100644 index 0000000..292b568 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_KinessaInhand.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_KinessaInhand extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_KineticBurst.uc b/Development/Src/TgGame/Classes/TgDeviceForm_KineticBurst.uc new file mode 100644 index 0000000..adb34da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_KineticBurst.uc @@ -0,0 +1,19 @@ +class TgDeviceForm_KineticBurst extends TgDeviceForm + native(ChampFlak) + config(Engine); + +var float RampUpTime; +var float RampDownTime; +var MaterialInstanceConstant GlowMIC; + +native function bool HasCachedMIC(); // Export UTgDeviceForm_KineticBurst::execHasCachedMIC(FFrame&, void* const) + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Cooldown(int nFireModeNum) { } + +defaultproperties +{ + RampUpTime=1.0000000 + RampDownTime=0.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_KingBomb.uc b/Development/Src/TgGame/Classes/TgDeviceForm_KingBomb.uc new file mode 100644 index 0000000..b0dad19 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_KingBomb.uc @@ -0,0 +1,14 @@ +class TgDeviceForm_KingBomb extends TgDeviceForm + config(Engine); + +event BuildUp(int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional float fBuildupTime=0.0000000) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StopFire(int nFireModeNum) { } + +event DoInterrupt() { } + +function Cleanup() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_LexInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_LexInhand.uc new file mode 100644 index 0000000..868beca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_LexInhand.uc @@ -0,0 +1,36 @@ +class TgDeviceForm_LexInhand extends TgDeviceForm + native(ChampLex) + config(Engine); + +var name c_nmSocketLeft; +var name c_nmSocketRight; +var array m_LexCharacterNodes1P; +var array m_LexCharacterNodes3P; +var array m_DualFireStanceNodes1P; +var array m_DualFireStanceNodes3P; +var TgPawn_Lex m_CachedLex; +var int m_nPursuitFireIndex; + +native function SetFireMode(int nMode); // Export UTgDeviceForm_LexInhand::execSetFireMode(FFrame&, void* const) + +simulated function bool HasCachedLex() { } + +simulated event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +simulated event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +simulated function OnAmmoChange() { } + +simulated function SetDualFireParity(bool bLeftFire) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Vector GetTracerSocketLocation() { } + +defaultproperties +{ + c_nmSocketLeft="WSO_Emit_02" + c_nmSocketRight="WSO_Emit_01" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Lockdown.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Lockdown.uc new file mode 100644 index 0000000..85b6858 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Lockdown.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_Lockdown extends TgDeviceForm + config(Engine); + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_LongbowInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_LongbowInhand.uc new file mode 100644 index 0000000..844a72b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_LongbowInhand.uc @@ -0,0 +1,29 @@ +class TgDeviceForm_LongbowInhand extends TgDeviceForm + native(ChampLongbow) + config(Engine); + +var bool m_bImpalerArrowFXIsActive; +var bool m_bBowDrawing; +var float m_fBowDrawPercentage; +var float m_fBowDrawStartPercentage; +var float m_fBowDrawTime; +var float m_fBowDrawTotalDuration; +var TgPawn_Longbow m_LongbowOwner; +var array m_BlendByPct1P; +var array m_BlendByPct3P; +var TgSkelControlSingleBone m_ArrowSkelControl1P; +var TgSkelControlSingleBone m_ImpalerSkelControl1P; + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Generic1(optional byte byExtraData) { } + +event DoInterrupt() { } + +simulated event PlayToggleTransitionAnimations(float transitionPercent, float totalTransitionTime, bool transitionToActive) { } + +simulated event SetToggleState(bool IsActive) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_LongbowPlanted.uc b/Development/Src/TgGame/Classes/TgDeviceForm_LongbowPlanted.uc new file mode 100644 index 0000000..bace91b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_LongbowPlanted.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_LongbowPlanted extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event DoInterrupt() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MendingSpirits.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MendingSpirits.uc new file mode 100644 index 0000000..e0a34cf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MendingSpirits.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_MendingSpirits extends TgDeviceForm + config(Engine); + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MinigunSpinUp.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MinigunSpinUp.uc new file mode 100644 index 0000000..d3e4dc5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MinigunSpinUp.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_MinigunSpinUp extends TgDeviceForm + config(Engine); + +var TgSkelCon_Spinner m_SpinnerSkelControl1P; +var TgSkelCon_Spinner m_SpinnerSkelControl3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Mount.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Mount.uc new file mode 100644 index 0000000..73e2628 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Mount.uc @@ -0,0 +1,27 @@ +class TgDeviceForm_Mount extends TgDeviceForm + native(Devices) + config(Engine) + dependson(TgObject); + +var int m_FadeMaterialFXId; +var array m_FadeMICs; +var float m_fFadeInTime; +var float m_fRemainingFadeInTime; +var float m_fFadeOutTime; +var float m_fRemainingFadeOutTime; +var Vector m_CameraOffset; +var TgObject.EMountType m_MountType; +var array m_LoadedAnimSets; + +simulated event string GetAnimSetStringForBot(int PlayerBotId) { } + +native function PlaySummonEffects(float SummonTime, bool bIsDismounting); // Export UTgDeviceForm_Mount::execPlaySummonEffects(FFrame&, void* const) + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_CameraOffset=(X=-142.0000000,Y=0.0000000,Z=25.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountBoar.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountBoar.uc new file mode 100644 index 0000000..855a4e0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountBoar.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_MountBoar extends TgDeviceForm_Mount + config(Engine); + +simulated event string GetAnimSetStringForBot(int PlayerBotId) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountHorse.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountHorse.uc new file mode 100644 index 0000000..45f8545 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountHorse.uc @@ -0,0 +1,9 @@ +class TgDeviceForm_MountHorse extends TgDeviceForm_Mount + config(Engine); + +defaultproperties +{ + m_FadeMaterialFXId=6254 + m_CameraOffset=(X=-170.0000000,Y=0.0000000,Z=50.0000000) + m_MountType=MOUNT_Horse +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountHorseTest.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountHorseTest.uc new file mode 100644 index 0000000..f168eca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountHorseTest.uc @@ -0,0 +1,7 @@ +class TgDeviceForm_MountHorseTest extends TgDeviceForm_MountHorse + config(Engine); + +defaultproperties +{ + m_MountType=MOUNT_HorseTest +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountInfernalWarhorse.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountInfernalWarhorse.uc new file mode 100644 index 0000000..89d310a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountInfernalWarhorse.uc @@ -0,0 +1,9 @@ +class TgDeviceForm_MountInfernalWarhorse extends TgDeviceForm_Mount + config(Engine); + +defaultproperties +{ + m_FadeMaterialFXId=6410 + m_CameraOffset=(X=-170.0000000,Y=0.0000000,Z=50.0000000) + m_MountType=MOUNT_Horse +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountLion.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountLion.uc new file mode 100644 index 0000000..b251007 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountLion.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_MountLion extends TgDeviceForm_Mount + config(Engine); + +simulated event string GetAnimSetStringForBot(int PlayerBotId) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountMech.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountMech.uc new file mode 100644 index 0000000..fcd151b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountMech.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_MountMech extends TgDeviceForm_Mount + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountMorph.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountMorph.uc new file mode 100644 index 0000000..c4967f8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountMorph.uc @@ -0,0 +1,7 @@ +class TgDeviceForm_MountMorph extends TgDeviceForm_MountHorse + config(Engine); + +defaultproperties +{ + m_CameraOffset=(X=-150.0000000,Y=0.0000000,Z=35.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountNoHorse.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountNoHorse.uc new file mode 100644 index 0000000..3d3d2a4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountNoHorse.uc @@ -0,0 +1,16 @@ +class TgDeviceForm_MountNoHorse extends TgDeviceForm_Mount + config(Engine); + +var int c_SparkleFXID; +var TgSpecialFx c_SparkleFX; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +simulated event string GetAnimSetStringForBot(int PlayerBotId) { } + +defaultproperties +{ + c_SparkleFXID=7197 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountOnyxStallion.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountOnyxStallion.uc new file mode 100644 index 0000000..2b4c05d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountOnyxStallion.uc @@ -0,0 +1,9 @@ +class TgDeviceForm_MountOnyxStallion extends TgDeviceForm_Mount + config(Engine); + +defaultproperties +{ + m_FadeMaterialFXId=7143 + m_CameraOffset=(X=-170.0000000,Y=0.0000000,Z=50.0000000) + m_MountType=MOUNT_Horse +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_MountPanther.uc b/Development/Src/TgGame/Classes/TgDeviceForm_MountPanther.uc new file mode 100644 index 0000000..f65e550 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_MountPanther.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_MountPanther extends TgDeviceForm_Mount + config(Engine); + +simulated event string GetAnimSetStringForBot(int PlayerBotId) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_NetherStep.uc b/Development/Src/TgGame/Classes/TgDeviceForm_NetherStep.uc new file mode 100644 index 0000000..79ffcfa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_NetherStep.uc @@ -0,0 +1,15 @@ +class TgDeviceForm_NetherStep extends TgDeviceForm + config(Engine); + +var array m_stanceNodes1p; +var array m_stanceNodes3p; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event CooldownComplete() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_OracleInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_OracleInhand.uc new file mode 100644 index 0000000..606efd8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_OracleInhand.uc @@ -0,0 +1,28 @@ +class TgDeviceForm_OracleInhand extends TgDeviceForm_Inhand + native(ChampOracle) + config(Engine) + dependson(TgPawn); + +var TgPawn_Oracle m_CachedOracle; +var float c_fLastReceivedTransitionInTime; + +simulated function bool HasCachedOracle() { } + +simulated function TgAnimNodeSlot GetFullBodyAnimNode() { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +simulated event PlayToggleTransitionAnimations(float transitionPercent, float totalTransitionTime, bool transitionToActive) { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } + +event StopFire(int nFireModeNum) { } + +simulated function UpdateAmmoCountSingleFx(TgSpecialFx Fx, float fAmmoPerc) { } + +simulated function UpdateAmmoCountFx(float fPreviousPerc, float fCurrentPerc) { } + +defaultproperties +{ + c_fLastReceivedTransitionInTime=0.2000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_OwlStealth.uc b/Development/Src/TgGame/Classes/TgDeviceForm_OwlStealth.uc new file mode 100644 index 0000000..5ab1ebb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_OwlStealth.uc @@ -0,0 +1,14 @@ +class TgDeviceForm_OwlStealth extends TgDeviceForm + native(ChampOwl) + config(Engine) + dependson(TgPawn); + +native function StealthTransition(bool bStealthActivating, float fTransitionTime); // Export UTgDeviceForm_OwlStealth::execStealthTransition(FFrame&, void* const) + +event BuildUp(int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional float fBuildupTime=0.0000000) { } + +event StopFire(int nFireModeNum) { } + +event DoInterrupt() { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_PoppyBomb.uc b/Development/Src/TgGame/Classes/TgDeviceForm_PoppyBomb.uc new file mode 100644 index 0000000..9a98419 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_PoppyBomb.uc @@ -0,0 +1,10 @@ +class TgDeviceForm_PoppyBomb extends TgDeviceForm + config(Engine); + +var TgAnimNodeBlendList m_PoppyShakeBlendList1P; + +simulated event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +simulated event EnterTargetingMode() { } + +simulated event ExitTargetingMode() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Pounce.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Pounce.uc new file mode 100644 index 0000000..340fe18 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Pounce.uc @@ -0,0 +1,34 @@ +class TgDeviceForm_Pounce extends TgDeviceForm + native(ChampBlades) + config(Engine) + dependson(TgObject); + +var array m_PounceNodes3p; +var array m_PounceNodes1p; +var bool bFOVZoomActive; +var float m_fCameraFOVInterpolationTime; +var float m_fFOVModifier; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } + +event SetPounceNodeHitSuccessful(bool bSuccessfulHit) { } + +event Generic1(optional byte byExtraData) { } + +event Generic2(optional byte byExtraData) { } + +event StopFire(int nFireModeNum) { } + +simulated function TriggerFOVZoom(bool bActive) { } + +defaultproperties +{ + m_fCameraFOVInterpolationTime=0.1200000 + m_fFOVModifier=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Presence.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Presence.uc new file mode 100644 index 0000000..df40d97 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Presence.uc @@ -0,0 +1,7 @@ +class TgDeviceForm_Presence extends TgDeviceForm + config(Engine); + +defaultproperties +{ + m_bUseImpactFXOverride=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Pursuit.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Pursuit.uc new file mode 100644 index 0000000..b9e8896 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Pursuit.uc @@ -0,0 +1,33 @@ +class TgDeviceForm_Pursuit extends TgDeviceForm + config(Engine); + +var TgPawn_Lex m_CachedLex; +var name m_LeftSlideSkelControlName1P; +var name m_RightSlideSkelControlName1P; +var name m_LeftSlideSkelControlName3P; +var name m_RightSlideSkelControlName3P; +var SkelControlBase m_LeftSlideSkelControl1P; +var SkelControlBase m_RightSlideSkelControl1P; +var SkelControlBase m_LeftSlideSkelControl3P; +var SkelControlBase m_RightSlideSkelControl3P; +var float c_fPreviousLeftSlideStrength; +var float c_fPreviousRightSlideStrength; +var bool m_bCachedDualFireParity; + +function bool HasCachedLex() { } + +simulated event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +simulated event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_LeftSlideSkelControlName1P="L_Slider" + m_RightSlideSkelControlName1P="R_Slider" + m_LeftSlideSkelControlName3P="L_Slider" + m_RightSlideSkelControlName3P="R_Slider" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Recharge.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Recharge.uc new file mode 100644 index 0000000..f8dff93 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Recharge.uc @@ -0,0 +1,15 @@ +class TgDeviceForm_Recharge extends TgDeviceForm_SpinnerWhileFiring + config(Engine); + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +function SetLockedForBlendNodes(bool bLocked) { } + +defaultproperties +{ + m_SpinnerName="RechargeCrystal" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_RendSoul.uc b/Development/Src/TgGame/Classes/TgDeviceForm_RendSoul.uc new file mode 100644 index 0000000..687ddc7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_RendSoul.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_RendSoul extends TgDeviceForm + config(Engine); + +simulated function ActivateFx(TgSpecialFx Fx, float fHealStacks) { } + +event Generic1(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_RestoreSoul.uc b/Development/Src/TgGame/Classes/TgDeviceForm_RestoreSoul.uc new file mode 100644 index 0000000..90d4d3c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_RestoreSoul.uc @@ -0,0 +1,9 @@ +class TgDeviceForm_RestoreSoul extends TgDeviceForm + config(Engine) + dependson(TgPawn); + +var TgPawn_Oracle m_CachedOracle; + +simulated function bool HasCachedOracle() { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Reversal.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Reversal.uc new file mode 100644 index 0000000..0da66a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Reversal.uc @@ -0,0 +1,30 @@ +class TgDeviceForm_Reversal extends TgDeviceForm + native(ChampAndroxus) + config(Engine) + dependson(TgAnimNodeBlendByAbilityReversal); + +var float m_fAccumulatedDamage; +var float m_fMaxChargeDamage; +var TgEmitter_CameraEffect c_CameraEffect; +var array m_1pNodes; +var array m_3pNodes; +var bool m_bIsAbsorbingShots; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function SetActiveChildren(TgAnimNodeBlendByAbilityReversal.EBlendReversal ChildIndex) { } + +event UpdateAccumulatedDamage(float newDamage) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event DoInterrupt() { } + +defaultproperties +{ + m_fMaxChargeDamage=800.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_RocketLauncher.uc b/Development/Src/TgGame/Classes/TgDeviceForm_RocketLauncher.uc new file mode 100644 index 0000000..0731169 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_RocketLauncher.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_RocketLauncher extends TgDeviceForm + config(Engine); + +event Generic1(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_RuckusInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_RuckusInhand.uc new file mode 100644 index 0000000..a6b727b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_RuckusInhand.uc @@ -0,0 +1,47 @@ +class TgDeviceForm_RuckusInhand extends TgDeviceForm + native(ChampRuckus) + config(Engine); + +var bool m_bFiredFromLeftGun; +var bool m_bFiredFromTopBarrel; +var bool m_bPlayingSpinnerSound; +var bool m_bPlayingFireLoopSound; +var bool m_bIsFiring; +var TgSkelCon_Spinner m_SpinnerSkelControl1P; +var TgSkelCon_Spinner m_SpinnerSkelControl3P; +var name c_nmSocketLeft; +var name c_nmSocketRight; +var () float m_fLoopingSoundThreshold; +var float m_fLastSpinConfirmationTimestamp; +var float m_fSpinConfirmationCooldown; +var TgSkelControlSingleBone_PistonBarrel m_LowerRightBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_UpperRightBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_LowerLeftBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_UpperLeftBarrel1P; +var TgSkelControlSingleBone_PistonBarrel m_LowerRightBarrel3P; +var TgSkelControlSingleBone_PistonBarrel m_UpperRightBarrel3P; +var TgSkelControlSingleBone_PistonBarrel m_LowerLeftBarrel3P; +var TgSkelControlSingleBone_PistonBarrel m_UpperLeftBarrel3P; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function CacheAnimNodesHelper(TgSkeletalMeshComponent SkelComp, out TgSkelControlSingleBone_PistonBarrel LowerRightBarrel, out TgSkelControlSingleBone_PistonBarrel UpperRightBarrel, out TgSkelControlSingleBone_PistonBarrel LowerLeftBarrel, out TgSkelControlSingleBone_PistonBarrel UpperLeftBarrel, out TgSkelCon_Spinner Spinner) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Vector GetTracerSocketLocation() { } + +defaultproperties +{ + m_bFiredFromTopBarrel=true + c_nmSocketLeft="WSO_Emit_02" + c_nmSocketRight="WSO_Emit_01" + m_fLoopingSoundThreshold=0.9500000 + m_fSpinConfirmationCooldown=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Salvo.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Salvo.uc new file mode 100644 index 0000000..fd8c64e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Salvo.uc @@ -0,0 +1,25 @@ +class TgDeviceForm_Salvo extends TgDeviceForm + native(ChampDrogoz) + config(Engine); + +var array m_SalvoBlendList1P; +var array m_SalvoBlendList3P; +var bool m_bSalvoLightShouldBlink; +var bool m_bSalvoLightIsOn; +var float m_fLastLightChangeTime; +var float m_fMinLightChangeTime; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_fMinLightChangeTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Scope.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Scope.uc new file mode 100644 index 0000000..db35b0b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Scope.uc @@ -0,0 +1,21 @@ +class TgDeviceForm_Scope extends TgDeviceForm_ToggleWithLockout + native(ChampOwl) + config(Engine); + +var float m_fTransitionAmount; +var float m_fTransitionPerSec; +var const float m_fWeaponZoomFOV; + +event StopFire(int nFireModeNum) { } + +simulated event SetToggleState(bool bIsActive) { } + +simulated event PlayToggleTransitionAnimations(float transitionPercent, float totalTransitionTime, bool transitionToActive) { } + +simulated function EnableZoom(bool bIsActive) { } + +defaultproperties +{ + m_fWeaponZoomFOV=45.0000000 + m_GameplayCurves=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Scout.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Scout.uc new file mode 100644 index 0000000..b9aec45 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Scout.uc @@ -0,0 +1,10 @@ +class TgDeviceForm_Scout extends TgDeviceForm + config(Engine); + +var SkelControlBase m_SKCBirdScale; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_SelfResurrection.uc b/Development/Src/TgGame/Classes/TgDeviceForm_SelfResurrection.uc new file mode 100644 index 0000000..5d3c606 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_SelfResurrection.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_SelfResurrection extends TgDeviceForm + native(ChampLazarus) + config(Engine) + dependson(TgDevice_SelfResurrection); + +var TgDevice_SelfResurrection.ResurrectionState m_CurrentDeviceState; + +event Generic1(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ShadowTravel.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ShadowTravel.uc new file mode 100644 index 0000000..8dacfe9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ShadowTravel.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_ShadowTravel extends TgDeviceForm + config(Engine); + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ShellShield.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ShellShield.uc new file mode 100644 index 0000000..3f7bbe1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ShellShield.uc @@ -0,0 +1,20 @@ +class TgDeviceForm_ShellShield extends TgDeviceForm + native(ChampMakoa) + config(Engine); + +var bool m_bShouldBeActive; +var float m_fShieldActivationTime; +var float m_fShieldActivationPercent; + +native function UpdateShieldParameters(float DeltaSeconds); // Export UTgDeviceForm_ShellShield::execUpdateShieldParameters(FFrame&, void* const) + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event Generic1(optional byte byExtraData) { } + +defaultproperties +{ + m_fShieldActivationTime=0.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ShockPulseSubdevice.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ShockPulseSubdevice.uc new file mode 100644 index 0000000..4285d65 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ShockPulseSubdevice.uc @@ -0,0 +1,9 @@ +class TgDeviceForm_ShockPulseSubdevice extends TgDeviceForm_ArcingBeam + config(Engine); + +defaultproperties +{ + m_bRequireDeviceIsFiring=false + m_bIsFXContinuous=false + m_nBeamEffectID=7126 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ShoulderBash.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ShoulderBash.uc new file mode 100644 index 0000000..6decebc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ShoulderBash.uc @@ -0,0 +1,16 @@ +class TgDeviceForm_ShoulderBash extends TgDeviceForm + native(ChampFlak) + config(Engine); + +var int moveAmount; + +native function UpdateTargetingModeLocation(Vector NewLocation, Rotator NewRotation, optional float DistanceScale=1.0000000); // Export UTgDeviceForm_ShoulderBash::execUpdateTargetingModeLocation(FFrame&, void* const) + +native function bool UsesTargetingMode(); // Export UTgDeviceForm_ShoulderBash::execUsesTargetingMode(FFrame&, void* const) + +simulated event EnterTargetingMode() { } + +defaultproperties +{ + moveAmount=10 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Smash.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Smash.uc new file mode 100644 index 0000000..08a332d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Smash.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_Smash extends TgDeviceForm + config(Engine); + +var array m_SmashBlendList1P; +var array m_SmashBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_SniperMode.uc b/Development/Src/TgGame/Classes/TgDeviceForm_SniperMode.uc new file mode 100644 index 0000000..dccf11e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_SniperMode.uc @@ -0,0 +1,2 @@ +class TgDeviceForm_SniperMode extends TgDeviceForm_ToggleWithLockout + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_SpaceTime.uc b/Development/Src/TgGame/Classes/TgDeviceForm_SpaceTime.uc new file mode 100644 index 0000000..214c96a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_SpaceTime.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_SpaceTime extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +simulated function PlayBeamEffect(bool bUseBuildupBeam) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_SpinnerWhileFiring.uc b/Development/Src/TgGame/Classes/TgDeviceForm_SpinnerWhileFiring.uc new file mode 100644 index 0000000..83812cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_SpinnerWhileFiring.uc @@ -0,0 +1,19 @@ +class TgDeviceForm_SpinnerWhileFiring extends TgDeviceForm + native(Devices) + config(Engine); + +var const name m_SpinnerName; +var array m_SpinnerSkelControls1p; +var array m_SpinnerSkelControls3p; + +native function CacheSkelControls(AnimTree pAnimTree, out array SpinnerSkelControls); // Export UTgDeviceForm_SpinnerWhileFiring::execCacheSkelControls(FFrame&, void* const) + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function CacheSpinner(TgSkeletalMeshComponent SkelComp, out array SpinnerSkelControls) { } + +function SetSpinnersActive(bool bActive) { } + +function SetSpinnersRotationSpeedState(int nState) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Spite.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Spite.uc new file mode 100644 index 0000000..e732ebb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Spite.uc @@ -0,0 +1,37 @@ +class TgDeviceForm_Spite extends TgDeviceForm + native(ChampDarklord) + config(Engine) + dependson(TgPawn); + +var array m_SpiteNodes3p; +var array m_SpiteNodes1p; +var array m_DarklordNodes1p; +var bool bFOVZoomActive; +var float m_fCameraFOVInterpolationTime; +var float m_fFOVModifier; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Generic1(optional byte byExtraData) { } + +event Generic2(optional byte byExtraData) { } + +event Generic3(optional byte byExtraData) { } + +event Generic4(optional byte byExtraData) { } + +event Generic5(optional byte byExtraData) { } + +event StopFire(int nFireModeNum) { } + +simulated function TriggerFOVZoom(bool bActive) { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } + +defaultproperties +{ + m_fCameraFOVInterpolationTime=0.1200000 + m_fFOVModifier=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Spray.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Spray.uc new file mode 100644 index 0000000..f2645c1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Spray.uc @@ -0,0 +1,59 @@ +class TgDeviceForm_Spray extends TgDeviceForm + native(Devices) + config(Engine); + +enum SprayDisplayBehavior { + SDB_RandomSprayAlpha, // 0 + SDB_MasteryNumbers, // 1 + SDB_SprayAlphaMasteryNumbers, // 2 + SDB_TickingNumbers, // 3 +}; + +var array m_SprayMaterial; +var MaterialInstanceConstant m_SprayMIC; +var int m_nRandAlphaMaskMax; +var int m_nPrevAlphaMask; +var export editinline DecalComponent c_SpawnedDecal; +var float m_fAccurateTraceLength; +var float m_fWidth; +var float m_fHeight; +var float m_fDepth; +var int m_nActiveMaterialIndex; +var TgDeviceForm_Spray.SprayDisplayBehavior m_SprayBehavior; +var bool m_bInitializedSprayParams; +var int m_nSprayHitFXId1P; +var int m_nSprayHitFXId3P; +var int m_nSprayMissedFXId1P; +var int m_nSprayMissedFXId3P; +var TgSpecialFx c_SprayHitFX; +var TgSpecialFx c_SprayMissedFX; + +native function PlaySprayFX(bool bSuccessfulSpray); // Export UTgDeviceForm_Spray::execPlaySprayFX(FFrame&, void* const) + +native function SetSprayBehaviorParams(); // Export UTgDeviceForm_Spray::execSetSprayBehaviorParams(FFrame&, void* const) + +native function SetSprayNumbers(int nNumberToSet); // Export UTgDeviceForm_Spray::execSetSprayNumbers(FFrame&, void* const) + +native function SetRandomSprayAlpha(); // Export UTgDeviceForm_Spray::execSetRandomSprayAlpha(FFrame&, void* const) + +native function int GetCharacterMastery(); // Export UTgDeviceForm_Spray::execGetCharacterMastery(FFrame&, void* const) + +event PlayImpactEffects(Vector HitLocation, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional Vector FireOrigin, optional float fHitTraceDistOverride=-1.0000000, optional bool bGenerateUpdatedHitLocation=false) { } + +simulated event OnDestroyed() { } + +defaultproperties +{ + m_SprayMaterial[0]=MaterialInstanceConstant'Materials.MIC_SprayMaterial' + m_SprayMaterial[1]=MaterialInstanceConstant'Materials.MIC_SprayMaterial_Mastery' + m_nRandAlphaMaskMax=3 + m_nPrevAlphaMask=-1 + m_fAccurateTraceLength=5.0000000 + m_fWidth=128.0000000 + m_fHeight=128.0000000 + m_fDepth=128.0000000 + m_nSprayHitFXId1P=7428 + m_nSprayHitFXId3P=7427 + m_nSprayMissedFXId1P=-1 + m_nSprayMissedFXId3P=-1 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Stasis.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Stasis.uc new file mode 100644 index 0000000..8aa3940 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Stasis.uc @@ -0,0 +1,16 @@ +class TgDeviceForm_Stasis extends TgDeviceForm + native(ChampEvie) + config(Engine); + +var bool m_bNeedsLoopActivation; +var float m_fFireStartTime; +var float m_fLoopDelay; + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_fLoopDelay=0.2800000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Telepunch.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Telepunch.uc new file mode 100644 index 0000000..fc60745 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Telepunch.uc @@ -0,0 +1,33 @@ +class TgDeviceForm_Telepunch extends TgDeviceForm + native(ChampDemon) + config(Engine) + dependson(TgPawn); + +var bool m_bFOVZoomActive; +var bool m_bUltFxActive; +var float m_fCameraFOVInterpolationTime; +var float m_fFOVMultiplier; + +event Generic1(optional byte byExtraData) { } + +event Generic2(optional byte byExtraData) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event DoInterrupt() { } + +simulated function TriggerFOVZoom(bool bActive) { } + +simulated function EnableUltFx(bool bActive) { } + +simulated function SetEnemyUIOverrides(bool bActive) { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } + +defaultproperties +{ + m_fCameraFOVInterpolationTime=0.3300000 + m_fFOVMultiplier=0.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Tempest.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Tempest.uc new file mode 100644 index 0000000..22485d5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Tempest.uc @@ -0,0 +1,26 @@ +class TgDeviceForm_Tempest extends TgDeviceForm + native(ChampGrohk) + config(Engine); + +var Actor m_BeamTarget1; +var Actor m_BeamTarget2; +var bool m_bBeamActive1; +var bool m_bBeamActive2; +var bool m_bBeamDirty1; +var bool m_bBeamDirty2; +var float m_fBeamStartTime1; +var float m_fBeamStartTime2; +var const float m_fBeamOnTime; + +event StopFire(int nFireModeNum) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event SetTargetArcingBeamEffect(Actor Target) { } + +function StopArcingBeamEffects() { } + +defaultproperties +{ + m_fBeamOnTime=0.2000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_TheLaw.uc b/Development/Src/TgGame/Classes/TgDeviceForm_TheLaw.uc new file mode 100644 index 0000000..609dbfa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_TheLaw.uc @@ -0,0 +1,37 @@ +class TgDeviceForm_TheLaw extends TgDeviceForm + config(Engine); + +var TgPawn_Lex m_CachedLex; +var TgWeaponMeshActor_LexInhand m_CachedWMA; +var name m_LeftSlideSkelControlName1P; +var name m_RightSlideSkelControlName1P; +var name m_LeftSlideSkelControlName3P; +var name m_RightSlideSkelControlName3P; +var SkelControlBase m_LeftSlideSkelControl1P; +var SkelControlBase m_RightSlideSkelControl1P; +var SkelControlBase m_LeftSlideSkelControl3P; +var SkelControlBase m_RightSlideSkelControl3P; +var float c_fPreviousLeftSlideStrength; +var float c_fPreviousRightSlideStrength; + +function bool HasCachedLex() { } + +function bool HasCachedWMA() { } + +simulated event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +simulated event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_LeftSlideSkelControlName1P="L_Slider" + m_RightSlideSkelControlName1P="R_Slider" + m_LeftSlideSkelControlName3P="L_Slider" + m_RightSlideSkelControlName3P="R_Slider" +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Thrust.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Thrust.uc new file mode 100644 index 0000000..50dd818 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Thrust.uc @@ -0,0 +1,13 @@ +class TgDeviceForm_Thrust extends TgDeviceForm + config(Engine); + +var array m_FlyingBlendList1P; +var array m_FlyingBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ToggleWithLockout.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ToggleWithLockout.uc new file mode 100644 index 0000000..2fe28b3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ToggleWithLockout.uc @@ -0,0 +1,14 @@ +class TgDeviceForm_ToggleWithLockout extends TgDeviceForm + native(Devices) + config(Engine); + +event Generic1(optional byte byExtraData) { } + +event Fire(Vector HitLocation, int nFireMode, optional int nEquipSlot=0, optional int nSocketIndex=0, optional bool bSuccessfulHit=false, optional float fRefireTime) { } + +event Generic2(optional byte byExtraData) { } + +defaultproperties +{ + c_bDisableDefaultTimelapseRecovery=true +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Transporter.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Transporter.uc new file mode 100644 index 0000000..a988a7a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Transporter.uc @@ -0,0 +1,26 @@ +class TgDeviceForm_Transporter extends TgDeviceForm + native(ChampKinessa) + config(Engine) + dependson(TgDevice, TgObject); + +var TgSkeletalMeshActor c_TargetingModeMeshIndicator2; +var TgSpecialFx c_TargetingModeFx2; +var Vector c_TargetingModeFx2Location; +var int c_nTargetingModeFx2Id; + +native function InitializeTargetingModeFX(); // Export UTgDeviceForm_Transporter::execInitializeTargetingModeFX(FFrame&, void* const) + +native function UpdateTargetingMode2Location(Vector NewLocation, Rotator NewRotation, optional float DistanceScale=1.0000000); // Export UTgDeviceForm_Transporter::execUpdateTargetingMode2Location(FFrame&, void* const) + +native function UpdateTargetingModeStatus(TgDevice.ETargetingModeStatus Status, const out AimData Aim); // Export UTgDeviceForm_Transporter::execUpdateTargetingModeStatus(FFrame&, void* const) + +simulated event EnterTargetingMode() { } + +simulated event ExitTargetingMode() { } + +simulated function ShowReticle(bool bShow) { } + +defaultproperties +{ + c_nTargetingModeFx2Id=7219 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Turret.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Turret.uc new file mode 100644 index 0000000..3c00a20 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Turret.uc @@ -0,0 +1,10 @@ +class TgDeviceForm_Turret extends TgDeviceForm + config(Engine); + +var SkelControlBase m_SKCTurretScale; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event CooldownComplete() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_TurtlePower.uc b/Development/Src/TgGame/Classes/TgDeviceForm_TurtlePower.uc new file mode 100644 index 0000000..5d55984 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_TurtlePower.uc @@ -0,0 +1,18 @@ +class TgDeviceForm_TurtlePower extends TgDeviceForm + native(ChampMakoa) + config(Engine); + +var bool m_bShouldBeActive; +var float m_fRageActivationTime; +var float m_fRageActivationPercent; + +native function UpdateRageMeshVisibility(float DeltaSeconds); // Export UTgDeviceForm_TurtlePower::execUpdateRageMeshVisibility(FFrame&, void* const) + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +defaultproperties +{ + m_fRageActivationTime=0.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_TyraInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_TyraInhand.uc new file mode 100644 index 0000000..4f52846 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_TyraInhand.uc @@ -0,0 +1,5 @@ +class TgDeviceForm_TyraInhand extends TgDeviceForm + config(Engine) + dependson(TgObject); + +event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_TyraUlt.uc b/Development/Src/TgGame/Classes/TgDeviceForm_TyraUlt.uc new file mode 100644 index 0000000..9a43cb3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_TyraUlt.uc @@ -0,0 +1,6 @@ +class TgDeviceForm_TyraUlt extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Valor.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Valor.uc new file mode 100644 index 0000000..c4de85a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Valor.uc @@ -0,0 +1,5 @@ +class TgDeviceForm_Valor extends TgDeviceForm + config(Engine) + dependson(TgObject); + +simulated event Hit(int nFireMode, Actor Target, float fDamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_ViktorInhand.uc b/Development/Src/TgGame/Classes/TgDeviceForm_ViktorInhand.uc new file mode 100644 index 0000000..d473753 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_ViktorInhand.uc @@ -0,0 +1,4 @@ +class TgDeviceForm_ViktorInhand extends TgDeviceForm + config(Engine); + +event SetAmmoBlendNodesAmount(int nAmmoAmt, optional bool bTickOnly=false) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Vine.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Vine.uc new file mode 100644 index 0000000..e255d84 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Vine.uc @@ -0,0 +1,24 @@ +class TgDeviceForm_Vine extends TgDeviceForm + native(ChampGrover) + config(Engine); + +var bool m_bBeamActive; +var bool m_bVineInterrupted; +var Actor m_BeamTarget; +var Vector m_vBeamTargetLocation; +var array m_VineBlendList1P; +var array m_VineBlendList3P; + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function ConnectBeamToTarget(Actor Target, Vector Location) { } + +function DisconnectBeam() { } + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event StopFire(int nFireModeNum) { } + +event Generic1(optional byte byExtraData) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_WeaponSwap.uc b/Development/Src/TgGame/Classes/TgDeviceForm_WeaponSwap.uc new file mode 100644 index 0000000..6a7f654 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_WeaponSwap.uc @@ -0,0 +1,21 @@ +class TgDeviceForm_WeaponSwap extends TgDeviceForm + native(ChampOwl) + config(Engine) + dependson(TgPawn); + +var array m_PistolScale1p; +var array m_PistolScale3p; +var array m_RifleScale1p; +var array m_RifleScale3p; + +native function CacheSkelControls(AnimTree pAnimTree, out array PistolSkelControls, out array RifleSkelControls, name nmPistol, name nmRifle); // Export UTgDeviceForm_WeaponSwap::execCacheSkelControls(FFrame&, void* const) + +event Cache1PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +event Cache3PAnimNodes(TgSkeletalMeshComponent SkelComp) { } + +function CacheControls(TgSkeletalMeshComponent SkelComp, out array PistolSkelControls, out array RifleSkelControls, name nmPistol, name nmRifle) { } + +function SetSkelControlsActive(out array SkelControls, bool bActive) { } + +simulated function RecoverDeviceState(TgPawn.TG_REP_DEVICE_STATE DesiredState) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Whirlwind.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Whirlwind.uc new file mode 100644 index 0000000..41a5108 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Whirlwind.uc @@ -0,0 +1,10 @@ +class TgDeviceForm_Whirlwind extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event DoInterrupt() { } + +event Generic1(optional byte byExtraData) { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceForm_Whirlwind2.uc b/Development/Src/TgGame/Classes/TgDeviceForm_Whirlwind2.uc new file mode 100644 index 0000000..86528ff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceForm_Whirlwind2.uc @@ -0,0 +1,8 @@ +class TgDeviceForm_Whirlwind2 extends TgDeviceForm + config(Engine); + +event StartFire(int nFireMode, optional float fRefireTime, optional Actor Target, optional int nAmmoRemaining) { } + +event DoInterrupt() { } + +event StopFire(int nFireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDeviceInterface_DismountModifier.uc b/Development/Src/TgGame/Classes/TgDeviceInterface_DismountModifier.uc new file mode 100644 index 0000000..2439fe5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceInterface_DismountModifier.uc @@ -0,0 +1,3 @@ +interface TgDeviceInterface_DismountModifier extends Interface; + +simulated event bool ShouldOverrideDismount(int DamageAmt); diff --git a/Development/Src/TgGame/Classes/TgDeviceInterface_MoveSpeedMultiplier.uc b/Development/Src/TgGame/Classes/TgDeviceInterface_MoveSpeedMultiplier.uc new file mode 100644 index 0000000..31a9b54 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceInterface_MoveSpeedMultiplier.uc @@ -0,0 +1,3 @@ +interface TgDeviceInterface_MoveSpeedMultiplier extends Interface; + +function float GetMoveSpeedMultiplier(); // Export UTgDeviceInterface_MoveSpeedMultiplier::execGetMoveSpeedMultiplier(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDeviceVolume.uc b/Development/Src/TgGame/Classes/TgDeviceVolume.uc old mode 100755 new mode 100644 index 82d9b03..879082b --- a/Development/Src/TgGame/Classes/TgDeviceVolume.uc +++ b/Development/Src/TgGame/Classes/TgDeviceVolume.uc @@ -1,43 +1,43 @@ -class TgDeviceVolume extends Volume - native(Volumes) - hidecategories(Navigation,Object,Movement,Display); - -var() byte s_nTaskForce; - -event int GetSupportedTaskforce() -{ - local TgRepInfo_Game GRI; - - GRI = TgRepInfo_Game(WorldInfo.GRI); - // End:0x15D - if(GRI != none) - { - // End:0x151 - if(true) - { - // End:0x151 - if(GRI.r_AttackingTaskForce != none) - { - // End:0x10B - if(int(s_nTaskForce) == 1) - { - return int(GRI.r_AttackingTaskForce.r_nTaskForce); - } - else - { - // End:0x14F - if(int(GRI.r_AttackingTaskForce.r_nTaskForce) == 1) - { - return 2; - } - else - { - return 1; - } - } - } - } - return int(s_nTaskForce); - } - //return ReturnValue; -} \ No newline at end of file +class TgDeviceVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () bool bPainCausing; +var bool BACKUP_bPainCausing; +var bool s_bDeviceActive; +var Info PainTimer; +var Controller DamageInstigator; +var (Object) editconst int m_nMapObjectId; +var () int s_nDeviceId; +var TgDeviceFire s_DeviceFireMode; +var () byte s_nTaskForce; + +native function bool SetupDevice(); // Export UTgDeviceVolume::execSetupDevice(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +function Reset() { } + +simulated function OnToggle(SeqAct_Toggle inAction) { } + +function TimerPop(TgDeviceVolumeInfo T) { } + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +function CausePainTo(Actor Other) { } + +function bool CanCausePainTo(Actor Other) { } + +function OnSetDamageInstigator(SeqAct_SetDamageInstigator Action) { } + +function ApplyHit(Actor Target) { } + +simulated function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +event int GetSupportedTaskforce() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDeviceVolumeInfo.uc b/Development/Src/TgGame/Classes/TgDeviceVolumeInfo.uc new file mode 100644 index 0000000..01af1dc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceVolumeInfo.uc @@ -0,0 +1,9 @@ +class TgDeviceVolumeInfo extends Info + hidecategories(Navigation,Movement,Collision) + config(Engine); + +var TgDeviceVolume V; + +event PostBeginPlay() { } + +event Timer() { } diff --git a/Development/Src/TgGame/Classes/TgDeviceVolume_Pulse.uc b/Development/Src/TgGame/Classes/TgDeviceVolume_Pulse.uc new file mode 100644 index 0000000..2b8ae21 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDeviceVolume_Pulse.uc @@ -0,0 +1,32 @@ +class TgDeviceVolume_Pulse extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var Controller DamageInstigator; +var (Object) editconst int m_nMapObjectId; +var () int s_nDeviceId; +var TgDeviceFire m_FireMode; +var int s_nTeamNumber; +var () byte s_nTaskForce; + +native function bool SetupDevice(); // Export UTgDeviceVolume_Pulse::execSetupDevice(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +function OnSetDamageInstigator(SeqAct_SetDamageInstigator Action) { } + +simulated function OnToggle(SeqAct_Toggle inAction) { } + +function TurnOn() { } + +function TurnOff() { } + +function Fire() { } + +native function FindTouchingActorsFromScript(); // Export UTgDeviceVolume_Pulse::execFindTouchingActorsFromScript(FFrame&, void* const) + +simulated function ImpactInfo CalcDeviceFire(Vector StartTrace, Vector EndTrace, optional out array ImpactList) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDevice_AbsorptionField.uc b/Development/Src/TgGame/Classes/TgDevice_AbsorptionField.uc new file mode 100644 index 0000000..7c42c5e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AbsorptionField.uc @@ -0,0 +1,18 @@ +class TgDevice_AbsorptionField extends TgDevice + native(ChampLazarus) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_AbsorptionField::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_AbsorptionField::execCanDeviceFireNow(FFrame&, void* const) + +state DeviceFiring {} + +defaultproperties +{ + m_bIsFireHoldDevice=true + m_fDeployZOffset=46.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_AcceleratorField.uc b/Development/Src/TgGame/Classes/TgDevice_AcceleratorField.uc new file mode 100644 index 0000000..057ab89 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AcceleratorField.uc @@ -0,0 +1,4 @@ +class TgDevice_AcceleratorField extends TgDevice_BarricadeMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_AccursedArm.uc b/Development/Src/TgGame/Classes/TgDevice_AccursedArm.uc new file mode 100644 index 0000000..4673b99 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AccursedArm.uc @@ -0,0 +1,30 @@ +class TgDevice_AccursedArm extends TgDevice_HitPulse + native(ChampAndroxus) + hidecategories(Navigation) + config(Engine); + +const TG_DEVICE_ACCURSED_ARM_GUN_ID = 13255; + +const TG_DEVICE_NETHER_STEP_ID = 12658; + +native function bool ShouldInterruptStealth(); // Export UTgDevice_AccursedArm::execShouldInterruptStealth(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function PersistTimer() { } + +singular simulated function OnGunEmptied() { } + +unreliable client simulated function ClientOnGunEmptied() { } + +reliable server function ServerForcePersistTimer() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PersistTime + m_bPostFireShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_AccursedArmGun.uc b/Development/Src/TgGame/Classes/TgDevice_AccursedArmGun.uc new file mode 100644 index 0000000..dfcbaa1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AccursedArmGun.uc @@ -0,0 +1,28 @@ +class TgDevice_AccursedArmGun extends TgDevice + native(ChampAndroxus) + hidecategories(Navigation) + config(Engine); + +var TgDevice_AccursedArm m_AccursedArm; + +native function bool RequiresAmmoToFire(); // Export UTgDevice_AccursedArmGun::execRequiresAmmoToFire(FFrame&, void* const) + +native function bool ShouldTreatAmmoAsCharges(); // Export UTgDevice_AccursedArmGun::execShouldTreatAmmoAsCharges(FFrame&, void* const) + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_AccursedArmGun::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated function FireAmmunition() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated event OnLinkDevice(TgPawn TgP) { } + +simulated event OnUnlinkDevice(TgPawn TgP) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=13254 + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceAccursedArm' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ActiveAura.uc b/Development/Src/TgGame/Classes/TgDevice_ActiveAura.uc new file mode 100644 index 0000000..2361024 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ActiveAura.uc @@ -0,0 +1,6 @@ +class TgDevice_ActiveAura extends TgDevice_Aura + native(Devices) + hidecategories(Navigation) + config(Engine); + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_Advance.uc b/Development/Src/TgGame/Classes/TgDevice_Advance.uc new file mode 100644 index 0000000..80adafe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Advance.uc @@ -0,0 +1,30 @@ +class TgDevice_Advance extends TgDevice_Charge + native(ChampRuckus) + hidecategories(Navigation) + config(Engine); + +var bool m_bHasCharged; +var repnotify bool r_bHasAerialAssault; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasAerialAssault; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated function Rotator GetChargeDirection() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool ShouldInterruptReloadOnFire() { } + +function bool ShouldApplyHitSpecialOnTouch(Actor Target) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bUsePhysFlying=true + m_bCanLeftClickCancel=false + m_bForce3PViewWhileFiring=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Aegis.uc b/Development/Src/TgGame/Classes/TgDevice_Aegis.uc new file mode 100644 index 0000000..0eeb7ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Aegis.uc @@ -0,0 +1,10 @@ +class TgDevice_Aegis extends TgDevice + native(ChampFernando) + hidecategories(Navigation) + config(Engine); + +var float m_fPreviousMinCooldown; + +native function OnBecomeActive(); // Export UTgDevice_Aegis::execOnBecomeActive(FFrame&, void* const) + +native function OnCeaseActive(); // Export UTgDevice_Aegis::execOnCeaseActive(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_AimDownSights.uc b/Development/Src/TgGame/Classes/TgDevice_AimDownSights.uc new file mode 100644 index 0000000..e89512a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AimDownSights.uc @@ -0,0 +1,23 @@ +class TgDevice_AimDownSights extends TgDevice + hidecategories(Navigation) + config(Engine); + +var repnotify bool r_bIsADS; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bIsADS; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldCancelStealth() { } + +simulated function EndADS() { } + +reliable server event InterruptFiring() { } + +simulated function StopFire(byte FireModeNum) { } + +reliable server function ServerStartFire(byte FireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Alpine.uc b/Development/Src/TgGame/Classes/TgDevice_Alpine.uc new file mode 100644 index 0000000..7bd7c33 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Alpine.uc @@ -0,0 +1,4 @@ +class TgDevice_Alpine extends TgDevice_ImpasseMod + native(ChampBarrierTank) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Amplitude.uc b/Development/Src/TgGame/Classes/TgDevice_Amplitude.uc new file mode 100644 index 0000000..2eac658 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Amplitude.uc @@ -0,0 +1,4 @@ +class TgDevice_Amplitude extends TgDevice_OppressorMineMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_AndroxusInhand.uc b/Development/Src/TgGame/Classes/TgDevice_AndroxusInhand.uc new file mode 100644 index 0000000..e0a9798 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AndroxusInhand.uc @@ -0,0 +1,77 @@ +class TgDevice_AndroxusInhand extends TgDevice + native(ChampAndroxus) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +struct BurstShotAmmoInfo { + var int ClientRequestId; + var byte nShotsRemaining; + var bool bFirstInBurst; + structdefaultproperties {} +}; + +var bool m_bWantsAltFire; +var bool m_bFirstShotInBurst; +var bool m_bApplyLiftOff; +var int m_nShotsRemaining; +var array s_BurstShotAmmoQueue; + +native function bool CanReload(optional bool bIsAutoReload=false); // Export UTgDevice_AndroxusInhand::execCanReload(FFrame&, void* const) + +native function float GetAccuracy(optional int nMode=-1); // Export UTgDevice_AndroxusInhand::execGetAccuracy(FFrame&, void* const) + +native function TgGameplayCurvesSet GetShotSpreadTendencyCurvesSet(); // Export UTgDevice_AndroxusInhand::execGetShotSpreadTendencyCurvesSet(FFrame&, void* const) + +reliable server function ServerAltUse(bool bEnable) { } + +simulated event SetAltFireSecondModeNow(bool bEnable) { } + +simulated function FireAmmunition() { } + +simulated function UpdateDesiredFireMode() { } + +reliable server function ServerUpdateBurstShotsRemaining(byte nShotsRemaining, bool bFirstInBurst, int nClientRequestId) { } + +simulated function CallServerStartFire(AimData Aim, optional bool bPendingUpdate) { } + +simulated function CallServerRestartFireLoop(AimData Aim) { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function float GetEstimatedTotalBurstTime(int nShotsRemaining) { } + +simulated function float GetLongBulletRefireTime() { } + +simulated function float GetShortBulletRefireTime() { } + +state DeviceFiring {} + +defaultproperties +{ + m_AltFireType=ALTFIRE_SecondMode + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=17.5000000,Z=-12.5000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_AndroxusInhand' + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc200ftnull",Distance=3200.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang200ftnull",Distance=3200.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc200ftnull",Distance=3200.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang200ftnull",Distance=3200.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'BasicForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ArcingBeam.uc b/Development/Src/TgGame/Classes/TgDevice_ArcingBeam.uc new file mode 100644 index 0000000..aa4cb06 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ArcingBeam.uc @@ -0,0 +1,48 @@ +class TgDevice_ArcingBeam extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +struct ArcingInfo { + var float ArcTime; + var float RemainingArcTime; + var int JumpsRemaining; + var Actor PreviousArcTarget; + var init array PreviousTargets; + var TgDeviceFire ArcFiremode; + structdefaultproperties {} +}; + +struct PotentialTargetInfo { + var Actor Target; + var int NumHits; + var float Dist; + structdefaultproperties {} +}; + +var array m_ArcingList; +var int m_nMaxNumArcsPerTarget; +var bool m_bCanTargetShields; +var bool m_bIsArcing; + +native function Actor DetermineNextTarget(int Index); // Export UTgDevice_ArcingBeam::execDetermineNextTarget(FFrame&, void* const) + +native function bool IsValidArcTarget(Actor TestActor, ArcingInfo Info); // Export UTgDevice_ArcingBeam::execIsValidArcTarget(FFrame&, void* const) + +function TriggerArcsInArcingList(float DeltaTime) { } + +simulated function Tick(float DeltaTime) { } + +function int GetNumArcJumps(Actor InitialTarget, TgDeviceFire FireMode) { } + +event BeginArcing(Actor InitialTarget, TgDeviceFire FireMode) { } + +function EndArcing(int Index) { } + +function TriggerArc(int Index) { } + +defaultproperties +{ + m_nMaxNumArcsPerTarget=4 + m_bProcAsIfHandDevice=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_AssertDominance.uc b/Development/Src/TgGame/Classes/TgDevice_AssertDominance.uc new file mode 100644 index 0000000..5950fa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AssertDominance.uc @@ -0,0 +1,25 @@ +class TgDevice_AssertDominance extends TgDevice_Leap + native(ChampFlak) + hidecategories(Navigation) + config(Engine); + +native function float GetCachedFiringPostHitDelay(); // Export UTgDevice_AssertDominance::execGetCachedFiringPostHitDelay(FFrame&, void* const) + +native function bool ShouldLiftInterrupt(); // Export UTgDevice_AssertDominance::execShouldLiftInterrupt(FFrame&, void* const) + +reliable client simulated event ClientInterrupt() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_AstralCycle.uc b/Development/Src/TgGame/Classes/TgDevice_AstralCycle.uc new file mode 100644 index 0000000..0a28c30 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AstralCycle.uc @@ -0,0 +1,4 @@ +class TgDevice_AstralCycle extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_AstralMark.uc b/Development/Src/TgGame/Classes/TgDevice_AstralMark.uc new file mode 100644 index 0000000..4e38b17 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AstralMark.uc @@ -0,0 +1,17 @@ +class TgDevice_AstralMark extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_AstralMark::execCanDeviceFireNow(FFrame&, void* const) + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +simulated event DeliverQueuedPendingHits() { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated event bool ShouldCooldownAfterFire() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_AstroInhand.uc b/Development/Src/TgGame/Classes/TgDevice_AstroInhand.uc new file mode 100644 index 0000000..78aba60 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AstroInhand.uc @@ -0,0 +1,15 @@ +class TgDevice_AstroInhand extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine); + +simulated event bool StartReload(optional bool bIgnoreCurrentAmmo=false) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_fMeshFOV=77.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_AstroInhand' + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_AstroQ.uc b/Development/Src/TgGame/Classes/TgDevice_AstroQ.uc new file mode 100644 index 0000000..0769bc0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AstroQ.uc @@ -0,0 +1,21 @@ +class TgDevice_AstroQ extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool m_bApplyCooldown; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_AstroQ::execCanDeviceFireNow(FFrame&, void* const) + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +simulated event DeliverQueuedPendingHits() { } + +simulated event bool ShouldCooldownAfterFire() { } + +function OnInstantShotRejected(ImpactToValidate RejectedPrimaryImpact) { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_Aura.uc b/Development/Src/TgGame/Classes/TgDevice_Aura.uc new file mode 100644 index 0000000..90cad71 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Aura.uc @@ -0,0 +1,59 @@ +class TgDevice_Aura extends TgDevice + abstract + native(Devices) + hidecategories(Navigation) + config(Engine); + +var repnotify float r_fRadiusScale; +var array m_TouchingActors; +var array m_AffectedActors; +var bool m_bIsAuraActive; +var float m_fLastBlockedByBlockersTime; +var float m_fMinBlockedByBlockersTime; +var array m_BlockedActors; +var TgCollisionProxy_Cylinder m_CollisionProxy; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRadiusScale; +} + +native function SetFireMode(int nFireModeNum, optional bool ForceSet=false); // Export UTgDevice_Aura::execSetFireMode(FFrame&, void* const) + +native function ApplyEffects(Actor Target); // Export UTgDevice_Aura::execApplyEffects(FFrame&, void* const) + +native function RemoveEffects(Actor Target); // Export UTgDevice_Aura::execRemoveEffects(FFrame&, void* const) + +native function float GetCurrentRadius(); // Export UTgDevice_Aura::execGetCurrentRadius(FFrame&, void* const) + +native function float GetDistanceToTarget(Actor Target); // Export UTgDevice_Aura::execGetDistanceToTarget(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +simulated event ClearAllAffected() { } + +simulated event ClearAllTouched() { } + +simulated function DeviceShutDown(optional bool bDeactiveMode, optional bool bResetCooldowns) { } + +simulated event Destroyed() { } + +event SpawnCollisionProxy() { } + +event ScaleCollisionProxy() { } + +event EnableAura() { } + +event DisableAura() { } + +simulated event bool CanJumpWhileFiring() { } + +defaultproperties +{ + r_fRadiusScale=1.0000000 + m_fLastBlockedByBlockersTime=-0.2500000 + m_fMinBlockedByBlockersTime=0.2500000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_AuraPerTarget.uc b/Development/Src/TgGame/Classes/TgDevice_AuraPerTarget.uc new file mode 100644 index 0000000..8e195b7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AuraPerTarget.uc @@ -0,0 +1,6 @@ +class TgDevice_AuraPerTarget extends TgDevice_PassiveAura + native(Devices) + hidecategories(Navigation) + config(Engine); + +var int m_nAppliedStacks; diff --git a/Development/Src/TgGame/Classes/TgDevice_AutoHealing2.uc b/Development/Src/TgGame/Classes/TgDevice_AutoHealing2.uc new file mode 100644 index 0000000..dcd018e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_AutoHealing2.uc @@ -0,0 +1,17 @@ +class TgDevice_AutoHealing2 extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var bool m_bIsApplied; +var bool m_bForceRemoval; +var TgPawn m_CachedPawnOwner; +var float m_fLastLowHealthSoundTime; +var float m_fPrevHealthPct; + +native function DeviceAdjustHeal(const out ImpactInfo Impact, out float fHeal, int nPropertyId); // Export UTgDevice_AutoHealing2::execDeviceAdjustHeal(FFrame&, void* const) + +defaultproperties +{ + m_fLastLowHealthSoundTime=-100.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BarikInhand.uc b/Development/Src/TgGame/Classes/TgDevice_BarikInhand.uc new file mode 100644 index 0000000..6d31f96 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BarikInhand.uc @@ -0,0 +1,35 @@ +class TgDevice_BarikInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bConsolidateMultipleShots=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftlowx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Barrage.uc b/Development/Src/TgGame/Classes/TgDevice_Barrage.uc new file mode 100644 index 0000000..dd7b2e0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Barrage.uc @@ -0,0 +1,49 @@ +class TgDevice_Barrage extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgDevice_BarrageFire m_BarrageFireDevice; + +native function float GetRequiredEnergyToFire(); // Export UTgDevice_Barrage::execGetRequiredEnergyToFire(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Barrage::execCanDeviceFireNow(FFrame&, void* const) + +native function bool UsesTargetingMode(); // Export UTgDevice_Barrage::execUsesTargetingMode(FFrame&, void* const) + +native function TickTargetingMode(float DeltaSeconds); // Export UTgDevice_Barrage::execTickTargetingMode(FFrame&, void* const) + +native function ExitTargetingMode(); // Export UTgDevice_Barrage::execExitTargetingMode(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated function CustomFire() { } + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_Barrage::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function float GetLockoutExtensionTime() { } + +simulated event bool CanBeInterrupted() { } + +simulated function LastShotCancelTimer() { } + +simulated function bool IsToggleDevice() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_eCastModeOverride=CM_Instant + c_bUsesTargetingReticle=false + m_bUseCustomCastMode=true + m_nLinkedDeviceIDs[0]=14462 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BarrageFire.uc b/Development/Src/TgGame/Classes/TgDevice_BarrageFire.uc new file mode 100644 index 0000000..3570271 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BarrageFire.uc @@ -0,0 +1,45 @@ +class TgDevice_BarrageFire extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var int m_nChainedBarrageNum; +var TgDevice_Barrage m_BarrageDevice; + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_BarrageFire::execGetTargetingAim(FFrame&, void* const) + +native function float GetConePullbackDistance(); // Export UTgDevice_BarrageFire::execGetConePullbackDistance(FFrame&, void* const) + +native function AimData ValidateReceivedAim(float ClientMovementTimeStamp, AimData Aim); // Export UTgDevice_BarrageFire::execValidateReceivedAim(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_BarrageFire::execCanDeviceFireNow(FFrame&, void* const) + +native function float GetCurrentShotCost(); // Export UTgDevice_BarrageFire::execGetCurrentShotCost(FFrame&, void* const) + +native function bool UpdateUltChargePercent(); // Export UTgDevice_BarrageFire::execUpdateUltChargePercent(FFrame&, void* const) + +simulated function ResetBarrage() { } + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptLeftMouseReleased(TgPlayerController TgController) { } + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +simulated function bool ShouldConsumePowerPoolAfterFire() { } + +simulated function CustomFire() { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=14351 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BarricadeDome.uc b/Development/Src/TgGame/Classes/TgDevice_BarricadeDome.uc new file mode 100644 index 0000000..8313c29 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BarricadeDome.uc @@ -0,0 +1,25 @@ +class TgDevice_BarricadeDome extends TgDevice + native(ChampBarik) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var Vector m_TurretSpawnLocation; +var int m_FlameTurretID; + +native function GetCachedAim(out AimData Aim); // Export UTgDevice_BarricadeDome::execGetCachedAim(FFrame&, void* const) + +native function int GetPetIDOverride(int PetIndex); // Export UTgDevice_BarricadeDome::execGetPetIDOverride(FFrame&, void* const) + +function InitMaxHealth() { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +state DeviceFiring {} + +defaultproperties +{ + m_FlameTurretID=2230 + m_bDeployAtFeetOnFailure=true + m_fBottomlessPitCheck=5000.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BarricadeMod.uc b/Development/Src/TgGame/Classes/TgDevice_BarricadeMod.uc new file mode 100644 index 0000000..099aa19 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BarricadeMod.uc @@ -0,0 +1,6 @@ +class TgDevice_BarricadeMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function ApplyTouchEffect(Actor Target); // Export UTgDevice_BarricadeMod::execApplyTouchEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_Barrier.uc b/Development/Src/TgGame/Classes/TgDevice_Barrier.uc new file mode 100644 index 0000000..9701966 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Barrier.uc @@ -0,0 +1,16 @@ +class TgDevice_Barrier extends TgDevice + hidecategories(Navigation) + config(Engine); + +function InitMaxHealth() { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_bCooldownAfterDeployDeath=true + m_fBottomlessPitCheck=5000.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BarrierReef.uc b/Development/Src/TgGame/Classes/TgDevice_BarrierReef.uc new file mode 100644 index 0000000..511de6d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BarrierReef.uc @@ -0,0 +1,8 @@ +class TgDevice_BarrierReef extends TgDevice_ShellShieldMod + native(Devices) + hidecategories(Navigation) + config(Engine); + +var int m_nHitsNeededOnCooldown; + +native function int ApplyDamageTakenEffect(int totalDamage); // Export UTgDevice_BarrierReef::execApplyDamageTakenEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_BarrierTankInhand.uc b/Development/Src/TgGame/Classes/TgDevice_BarrierTankInhand.uc new file mode 100644 index 0000000..cab6683 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BarrierTankInhand.uc @@ -0,0 +1,63 @@ +class TgDevice_BarrierTankInhand extends TgDevice + native(ChampBarrierTank) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var TgPawn_BarrierTank m_CachedBarrierTankPawn; +var Vector m_vProjectileSpawnOffset2; +var Vector m_vProjectileSpawnOffset3; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_BarrierTankInhand::execCanDeviceFireNow(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_BarrierTankInhand::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated function int GetProjectileIDOverride(int ProjectileIndex) { } + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated function bool HasCachedBarrierTankPawn() { } + +simulated function InterruptLockoutTime() { } + +simulated delegate InterruptFiringDelegate(); + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function SelfSlowTimer() { } + +state DeviceFiring {} + +defaultproperties +{ + m_vProjectileSpawnOffset2=(X=30.0000000,Y=16.0000000,Z=-8.0000000) + m_vProjectileSpawnOffset3=(X=30.0000000,Y=9.6000000,Z=-9.6000000) + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bUsesBurstFire=true + m_bOnlyFirstBurstCostsAmmo=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=11.2000000,Z=-6.4000000) + m_fAltFireLockOutTime=0.0000000 + m_nBurstTotalShots=3 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_BarrierTankInhand' + m_nLinkedDeviceIDs[0]=16251 + m_nLinkedDeviceIDs[1]=16250 + m_nLinkedDeviceIDs[2]=16248 + m_nLinkedDeviceIDs[3]=16252 + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'BasicForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Billow.uc b/Development/Src/TgGame/Classes/TgDevice_Billow.uc new file mode 100644 index 0000000..7fa4e73 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Billow.uc @@ -0,0 +1,28 @@ +class TgDevice_Billow extends TgDevice + native(ChampDarklord) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Billow::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated event bool CanJumpWhileFiring() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function UpdateOutroLockoutTime() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bUsesOutroLockout=true + m_fOutroLockoutTime=0.4000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BladesInhand.uc b/Development/Src/TgGame/Classes/TgDevice_BladesInhand.uc new file mode 100644 index 0000000..d0680fb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BladesInhand.uc @@ -0,0 +1,47 @@ +class TgDevice_BladesInhand extends TgDevice + native(ChampBlades) + hidecategories(Navigation) + config(Engine); + +var bool m_bFirstShotInBurst; + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function FireAmmunition() { } + +simulated function int GetProjectileIDOverride(int ProjectileIndex) { } + +state DeviceFiring {} + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Maeve + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bUsesBurstFire=true + m_vMeshViewOffset=(X=15.0000000,Y=0.0000000,Z=-4.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=21.0000000,Y=0.0000000,Z=-4.0000000) + m_nBurstTotalShots=2 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_SkyeInHand' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'BasicForceFeedback' + m_ForceFeedbackStopReload=ForceFeedbackWaveform'StandardReload' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0000000,fMinAccuracy=0.9000000,fAccuracyLossPerShot=0.0100000,fAccuracyGainPerSec=0.6000000,fAccuracyGainDelay=0.2000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BladesInhandAltFire.uc b/Development/Src/TgGame/Classes/TgDevice_BladesInhandAltFire.uc new file mode 100644 index 0000000..9c1c406 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BladesInhandAltFire.uc @@ -0,0 +1,15 @@ +class TgDevice_BladesInhandAltFire extends TgDevice + native(ChampBlades) + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +defaultproperties +{ + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_vMeshViewOffset=(X=15.0000000,Y=0.0000000,Z=-4.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=10.0000000,Y=8.0000000,Z=-7.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BlastShot.uc b/Development/Src/TgGame/Classes/TgDevice_BlastShot.uc new file mode 100644 index 0000000..ff29dbd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BlastShot.uc @@ -0,0 +1,13 @@ +class TgDevice_BlastShot extends TgDevice + native(ChampCassie) + hidecategories(Navigation) + config(Engine); + +event ScaleAbilityRadius() { } + +defaultproperties +{ + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=15.0000000,Y=7.0000000,Z=-13.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceBlastShot' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Blink.uc b/Development/Src/TgGame/Classes/TgDevice_Blink.uc new file mode 100644 index 0000000..5903f9d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Blink.uc @@ -0,0 +1,56 @@ +class TgDevice_Blink extends TgDevice + native(ChampEvie) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var Vector r_vPreviousLocation; +var bool c_bWaitingForServerTeleport; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_vPreviousLocation; +} + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Blink::execGetTargetingAim(FFrame&, void* const) + +native function bool CanBeCrippled(); // Export UTgDevice_Blink::execCanBeCrippled(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Blink::execMustBeOnGroundToFire(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Blink::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated function DeviceRestart() { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +function RequireHardReset() { } + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_Blink::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated function int GetAimAssistPriority() { } + +simulated event bool CanDeviceStartFiringNow(byte FireModeNum, AimData Aim, bool bDebugRelevant, optional out TgObject.EDeviceFailType failType) { } + +simulated function OnServerTeleportTimeout() { } + +reliable client simulated event ClientOnServerTeleported() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fDeployZForgiveness=580.0000000 + m_fBottomlessPitCheck=5000.0000000 + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesFriction=none + m_AimAssistKeyframesTrackingAccHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz=none + m_AimAssistKeyframesTrackingAccVert=none + m_AimAssistKeyframesTrackingAngleVert=none +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Blossom.uc b/Development/Src/TgGame/Classes/TgDevice_Blossom.uc new file mode 100644 index 0000000..3e96915 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Blossom.uc @@ -0,0 +1,3 @@ +class TgDevice_Blossom extends TgDevice_PassiveAura + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_BombKingDetonator.uc b/Development/Src/TgGame/Classes/TgDevice_BombKingDetonator.uc new file mode 100644 index 0000000..b75b758 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BombKingDetonator.uc @@ -0,0 +1,25 @@ +class TgDevice_BombKingDetonator extends TgDevice + native(ChampBombKing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool m_bDetonatePoppyBombs; +var bool m_bInFalseFireRetryPeriod; +var float m_fFalseFireRetryStart; +var const float m_fFalseFireRetryTime; + +native function TgDeviceFire GetCurrentFire(); // Export UTgDevice_BombKingDetonator::execGetCurrentFire(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_BombKingDetonator::execCanDeviceFireNow(FFrame&, void* const) + +simulated function bool ShouldInterruptMount() { } + +simulated event HandleFalseFireRecory() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fFalseFireRetryTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BombKingInhand.uc b/Development/Src/TgGame/Classes/TgDevice_BombKingInhand.uc new file mode 100644 index 0000000..2c87ca4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BombKingInhand.uc @@ -0,0 +1,74 @@ +class TgDevice_BombKingInhand extends TgDevice_DualWield + native(ChampBombKing) + hidecategories(Navigation) + config(Engine); + +struct StickyBombPendingDetonate { + var int nProjID; + var int nDeployID; + var Vector vExplodeLocation; + structdefaultproperties {} +}; + +var bool r_bHasActiveProjectile; +var bool m_bInDetonationMode; +var array m_PendingDetonations; +var array m_PendingProjectileConversions; +var const float m_fValidationTolerance; + +replication { + if(((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) && !bNetInitial) r_bHasActiveProjectile; +} + +native function bool ValidateStickyBombExplosion(TgProj_BombKingStickyBomb Proj, TgDeploy_BombKingStickyBomb dep, Vector vExplodeLocation, Vector vVelocity); // Export UTgDevice_BombKingInhand::execValidateStickyBombExplosion(FFrame&, void* const) + +simulated function RemovePendingConversion(TgProjectile Proj, int deployID) { } + +simulated function ClientProcessBombDetonation(TgProj_BombKingStickyBomb stickyBomb) { } + +simulated function ClientTriggerBombDetonation() { } + +function ServerTriggerBombDetonation() { } + +reliable server function ServerExplodeAtLocation(int projID, int deployID, Vector explodeLocation, Vector vVelocity) { } + +simulated event SpecialInstantFire(Vector explodeLocation) { } + +reliable client simulated function ClientRestoreBombs() { } + +function ServerRestoreBombs() { } + +simulated function AddProjectileWaitingForDeployable(TgProj_BombKingStickyBomb stickyBomb) { } + +simulated function UpdateActiveProjectiles(optional TgProjectile Proj) { } + +simulated delegate DetonatorFiringDelegate(); + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_fValidationTolerance=48.0000000 + m_vProjectileSpawnOffset2=(X=30.0000000,Y=-9.0000000,Z=-10.0000000) + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_bUseDeviceMeshWhenTargeting=true + m_bPlayPutAway=true + m_bLogServerFireFailures=true + m_fWeaponBob=0.0000000 + m_fMeshFOV=65.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_BombKingInhand' + m_nLinkedDeviceIDs[0]=14309 + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceStickyBomb' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'BasicForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_BombKingStickyBombExplosionDevice.uc b/Development/Src/TgGame/Classes/TgDevice_BombKingStickyBombExplosionDevice.uc new file mode 100644 index 0000000..bd6fcbe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BombKingStickyBombExplosionDevice.uc @@ -0,0 +1,8 @@ +class TgDevice_BombKingStickyBombExplosionDevice extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceStickyBomb' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Booster.uc b/Development/Src/TgGame/Classes/TgDevice_Booster.uc new file mode 100644 index 0000000..619a84d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Booster.uc @@ -0,0 +1,16 @@ +class TgDevice_Booster extends TgDevice + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine); + +native function bool CanBeCrippled(); // Export UTgDevice_Booster::execCanBeCrippled(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool IsToggleDevice() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_BuckInhand.uc b/Development/Src/TgGame/Classes/TgDevice_BuckInhand.uc new file mode 100644 index 0000000..b31131f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_BuckInhand.uc @@ -0,0 +1,67 @@ +class TgDevice_BuckInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +enum ReloadAnimType { + RAT_FirstShell, // 0 + RAT_LoopingShells, // 1 + RAT_PostReload, // 2 +}; + +var float m_fReloadScaleUsed; +var float m_fStartReloadTimestamp; +var float m_fFirstShellReloadTime; +var float m_fShellReloadTime; +var float m_fPostReloadTime; +var float m_fReloadTimer; +var int m_nProgressiveReloadTransactionID; +var bool m_bIsReloadingFirstShell; +var bool s_bPendingServerEndReload; + +simulated event bool Use() { } + +reliable server function ServerEndReloadForInhandFire() { } + +simulated event bool StartReload(optional bool bIgnoreCurrentAmmo=false) { } + +simulated function PreReloadTimer() { } + +simulated function PlayReloadAnim(TgDevice_BuckInhand.ReloadAnimType rat, float ReloadTime) { } + +simulated function PostReloadTimer() { } + +reliable server function ServerStartReload() { } + +reliable client simulated function ClientInterruptReload(optional bool bAllowAmmoFill=false) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bConsolidateMultipleShots=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=15.0000000,Z=-20.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_BuckInhand' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftlowx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Bunker.uc b/Development/Src/TgGame/Classes/TgDevice_Bunker.uc new file mode 100644 index 0000000..f434835 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Bunker.uc @@ -0,0 +1,4 @@ +class TgDevice_Bunker extends TgDevice_BarricadeMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Carapace.uc b/Development/Src/TgGame/Classes/TgDevice_Carapace.uc new file mode 100644 index 0000000..cfea274 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Carapace.uc @@ -0,0 +1,4 @@ +class TgDevice_Carapace extends TgDevice_ShellShieldMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_CassieInhand.uc b/Development/Src/TgGame/Classes/TgDevice_CassieInhand.uc new file mode 100644 index 0000000..f83d4c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_CassieInhand.uc @@ -0,0 +1,21 @@ +class TgDevice_CassieInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=12.0000000,Y=1.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=15.0000000,Y=7.0000000,Z=-13.0000000) + m_fAltFireLockOutTime=0.0000000 + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'BasicForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ChainLightning.uc b/Development/Src/TgGame/Classes/TgDevice_ChainLightning.uc new file mode 100644 index 0000000..c1a35ab --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ChainLightning.uc @@ -0,0 +1,7 @@ +class TgDevice_ChainLightning extends TgDevice_ArcingBeam + hidecategories(Navigation) + config(Engine); + +var TgDevice m_CachedInhand; + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_ChainSequence.uc b/Development/Src/TgGame/Classes/TgDevice_ChainSequence.uc new file mode 100644 index 0000000..fb01526 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ChainSequence.uc @@ -0,0 +1,22 @@ +class TgDevice_ChainSequence extends TgDevice + abstract + native(Devices) + hidecategories(Navigation) + config(Engine); + +var int m_nChainCount; +var float m_fChainResetTimer; +var const float m_fChainResetDuration; + +simulated event int GetChainMax() { } + +simulated function FireAmmunition() { } + +simulated function UpdateDesiredFireMode() { } + +simulated event OnChainReset() { } + +defaultproperties +{ + m_fChainResetDuration=5.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Charge.uc b/Development/Src/TgGame/Classes/TgDevice_Charge.uc new file mode 100644 index 0000000..c5610a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Charge.uc @@ -0,0 +1,102 @@ +class TgDevice_Charge extends TgDevice_ChainSequence + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject, TgPawn); + +enum ChargeFiringType { + CFT_Fire, // 0 + CFT_PreFire, // 1 + CFT_PostFire, // 2 +}; + +enum ChargeStopOnHitType { + CSHT_None, // 0 + CSHT_AnyValidTarget, // 1 + CSHT_GodOnly, // 2 + CSHT_NotGod, // 3 +}; + +var TgPawn.EChargeState m_eChargeState; +var TgDevice_Charge.ChargeStopOnHitType m_bStopOnHitType; +var TgDevice_Charge.ChargeFiringType m_ChargeTimingType; +var bool m_bUsePhysFlying; +var bool m_bUseDamageRadiusForHitProxy; +var bool m_bIgnoreHumanoids; +var bool m_bHitOnce; +var bool m_bApplyHitOnTouch; +var bool m_bApplyHitSpecialOnTouch; +var bool m_bIgnoreRange; +var bool m_bCharging; +var bool m_bStopOnAttachedForcefield; +var bool m_bInterruptDeviceIfChargeEnds; +var bool m_bUseDirectHitSpecial; +var bool m_bChargeBackward; +var bool m_bCanLeftClickCancel; +var bool m_bIgnoreMovementCorrection; +var TgCollisionProxy_Cylinder m_HitProxy; +var Vector m_vHitProxyRelativeLocation; +var Vector m_vHitProxySizeOffset; +var float s_fServerValidationSizeMultiplier; +var Rotator m_rLastChargeDirection; +var array s_AppliedList; +var array s_HitActors; + +native function SetFireMode(int nFireModeNum, optional bool ForceSet=false); // Export UTgDevice_Charge::execSetFireMode(FFrame&, void* const) + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Charge::execGetTargetingAim(FFrame&, void* const) + +native function bool ServerValidateChargeHit(Actor Other); // Export UTgDevice_Charge::execServerValidateChargeHit(FFrame&, void* const) + +simulated event ChargeTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ChargeUnTouch(Actor Other) { } + +simulated event StartCharge() { } + +simulated event EndCharge() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event float GetChargeRange() { } + +simulated event float GetChargeTime() { } + +simulated function float GetChargeSpeed() { } + +simulated function bool ShouldStopOnThisHit(Actor Other) { } + +event ApplyDamageReduction(out ImpactInfo Impact) { } + +simulated function OnValidTargetTouched(Actor Other) { } + +simulated function OnStoppedChargeOnHit(Actor Other) { } + +simulated function Rotator GetChargeDirection() { } + +simulated function EnableCorrection() { } + +function ApplyTouchHit(TgPawn InstigatorPawn, Vector vHitLocation, Vector vHitNormal, Actor Target) { } + +simulated event bool CanFiringBeCanceledByLeftMouse() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +state DeviceFiring {} + +defaultproperties +{ + m_eChargeState=CHARGE_NoTurn + m_bUseDamageRadiusForHitProxy=true + m_bIgnoreHumanoids=true + m_bHitOnce=true + m_bApplyHitOnTouch=true + m_bInterruptDeviceIfChargeEnds=true + m_bCanLeftClickCancel=true + s_fServerValidationSizeMultiplier=2.0000000 + m_bConsumePowerPoolOnStartFire=true + m_bAlwaysStartCooldown=true + m_bForce3PViewWhileFiring=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ChargeBackward.uc b/Development/Src/TgGame/Classes/TgDevice_ChargeBackward.uc new file mode 100644 index 0000000..e018665 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ChargeBackward.uc @@ -0,0 +1,10 @@ +class TgDevice_ChargeBackward extends TgDevice_Charge + native(Devices) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_ChargeTimingType=CFT_PostFire + m_bChargeBackward=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ChargeBurst.uc b/Development/Src/TgGame/Classes/TgDevice_ChargeBurst.uc new file mode 100644 index 0000000..ca9de4d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ChargeBurst.uc @@ -0,0 +1,16 @@ +class TgDevice_ChargeBurst extends TgDevice + native(ChampLazarus) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_ChargeBurst::execCanDeviceFireNow(FFrame&, void* const) + +state DeviceFiring {} + +defaultproperties +{ + m_bCarryPreFireToPostFire=false + m_bUsesBurstFire=true + m_nBurstTotalShots=1 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ChargeFernando.uc b/Development/Src/TgGame/Classes/TgDevice_ChargeFernando.uc new file mode 100644 index 0000000..c936858 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ChargeFernando.uc @@ -0,0 +1,11 @@ +class TgDevice_ChargeFernando extends TgDevice_Charge + hidecategories(Navigation) + config(Engine); + +var float m_fCooldownReduction; + +simulated event bool CanBeCanceled() { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_CombatSlide.uc b/Development/Src/TgGame/Classes/TgDevice_CombatSlide.uc new file mode 100644 index 0000000..f1cd16e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_CombatSlide.uc @@ -0,0 +1,24 @@ +class TgDevice_CombatSlide extends TgDevice_Charge + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +var (Slide) int m_nEyeheightAdjustmentWhileSliding; +var float m_fEyeHeightSmoothFactor; + +simulated event bool ShouldInterruptReloadOnFire() { } + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice_CombatSlide::execShouldBlockReload(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fEyeHeightSmoothFactor=4.0000000 + m_eChargeState=CHARGE_NoTurn_RotPawn + m_bCanLeftClickCancel=false + m_bForce3PViewWhileFiring=false + m_bMustBeOnGroundToFire=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Compensator.uc b/Development/Src/TgGame/Classes/TgDevice_Compensator.uc new file mode 100644 index 0000000..9f86758 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Compensator.uc @@ -0,0 +1,14 @@ +class TgDevice_Compensator extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated function ApplyRecoilReduction(TgDevice Dev, bool bShouldApply) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=14127 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_CosmicGrace.uc b/Development/Src/TgGame/Classes/TgDevice_CosmicGrace.uc new file mode 100644 index 0000000..3708e53 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_CosmicGrace.uc @@ -0,0 +1,6 @@ +class TgDevice_CosmicGrace extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeInterrupted() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Counter.uc b/Development/Src/TgGame/Classes/TgDevice_Counter.uc new file mode 100644 index 0000000..99f25d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Counter.uc @@ -0,0 +1,28 @@ +class TgDevice_Counter extends TgDevice + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +var bool r_bInterruptAfterCounterAttack; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bInterruptAfterCounterAttack; +} + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +event bool CanTriggerCounterAttack() { } + +function CounterDelay() { } + +simulated function UpdateOutroLockoutTime() { } + +state DeviceFiring {} + +defaultproperties +{ + r_bInterruptAfterCounterAttack=true + m_DeviceTimerBarType=DTBT_PreHit + m_bAlwaysStartCooldown=true + m_bUsesOutroLockout=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_CounterAttack.uc b/Development/Src/TgGame/Classes/TgDevice_CounterAttack.uc new file mode 100644 index 0000000..8a2f0f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_CounterAttack.uc @@ -0,0 +1,11 @@ +class TgDevice_CounterAttack extends TgDevice + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +state DeviceFiring {} + +defaultproperties +{ + m_bDisableLagCompensation=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_CripplingThrow.uc b/Development/Src/TgGame/Classes/TgDevice_CripplingThrow.uc new file mode 100644 index 0000000..dc66043 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_CripplingThrow.uc @@ -0,0 +1,4 @@ +class TgDevice_CripplingThrow extends TgDevice + native(ChampGrover) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_DarkConvergence.uc b/Development/Src/TgGame/Classes/TgDevice_DarkConvergence.uc new file mode 100644 index 0000000..7fb5a25 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DarkConvergence.uc @@ -0,0 +1,10 @@ +class TgDevice_DarkConvergence extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=40.0000000,Y=-9.0000000,Z=0.0000000) + m_fDeployZOffset=40.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DarklordInhand.uc b/Development/Src/TgGame/Classes/TgDevice_DarklordInhand.uc new file mode 100644 index 0000000..71d86c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DarklordInhand.uc @@ -0,0 +1,20 @@ +class TgDevice_DarklordInhand extends TgDevice_ChainSequence + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +simulated event int GetChainMax() { } + +defaultproperties +{ + m_fChainResetDuration=2.0000000 + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Wide + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=12.0000000,Y=1.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=15.0000000,Y=10.0000000,Z=-9.0000000) + m_fAltFireLockOutTime=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DeadSpace.uc b/Development/Src/TgGame/Classes/TgDevice_DeadSpace.uc new file mode 100644 index 0000000..e7d9956 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DeadSpace.uc @@ -0,0 +1,4 @@ +class TgDevice_DeadSpace extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_DecoyMod.uc b/Development/Src/TgGame/Classes/TgDevice_DecoyMod.uc new file mode 100644 index 0000000..5ff0147 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DecoyMod.uc @@ -0,0 +1,4 @@ +class TgDevice_DecoyMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_DemonInhand.uc b/Development/Src/TgGame/Classes/TgDevice_DemonInhand.uc new file mode 100644 index 0000000..a54f3d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DemonInhand.uc @@ -0,0 +1,34 @@ +class TgDevice_DemonInhand extends TgDevice + native(ChampDemon) + hidecategories(Navigation) + config(Engine); + +var bool m_bUltIsActive; + +native function bool CheckAutoReload(); // Export UTgDevice_DemonInhand::execCheckAutoReload(FFrame&, void* const) + +native function bool RequiresAmmoToFire(); // Export UTgDevice_DemonInhand::execRequiresAmmoToFire(FFrame&, void* const) + +native function bool ShouldShowAmmoCount(); // Export UTgDevice_DemonInhand::execShouldShowAmmoCount(FFrame&, void* const) + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated function TgGameplayCurvesSet_RecoilSimple GetRecoilCurve() { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_DemonInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0000000,fMinAccuracy=0.9500000,fAccuracyLossPerShot=0.0200000,fAccuracyGainPerSec=2.0000000,fAccuracyGainDelay=0.1500000,nNumFreeShots=5) + m_fReticleBloomScale=0.5000000 + m_RecoilSettings=(bUsesRecoil=true,fRecoilReductionPerSec=100.0000000,fRecoilCenterDelay=0.1200000,fRecoilSmoothRate=7.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DemonTeleport.uc b/Development/Src/TgGame/Classes/TgDevice_DemonTeleport.uc new file mode 100644 index 0000000..c97a2db --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DemonTeleport.uc @@ -0,0 +1,54 @@ +class TgDevice_DemonTeleport extends TgDevice + native(ChampDemon) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var bool m_bCancelled; +var bool m_bPhaseApplied; +var float m_fTeleportDelayTimer; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_DemonTeleport::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool ShouldForce3P(TgDeviceForm DeviceForm, optional bool bOnlyCheckDeviceForm=false); // Export UTgDevice_DemonTeleport::execShouldForce3P(FFrame&, void* const) + +native function bool IsDeviceFiringForUI(); // Export UTgDevice_DemonTeleport::execIsDeviceFiringForUI(FFrame&, void* const) + +simulated function bool ShouldTeleportOnTimeout() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated function bool CanFiringBeCanceledByLeftMouse() { } + +simulated function bool InterceptSlotPressed(TgPlayerController TgController) { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +event OnDeployableDestroyed(TgDeployable deployable) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanTeleportNow() { } + +simulated event DoTeleport() { } + +reliable server function ServerTeleportToDeployable(Vector vDest) { } + +simulated function TeleportToDeployable(Vector vDest) { } + +simulated function StartPhaseIn() { } + +simulated function FinishPhaseIn() { } + +simulated event float GetCustomTimerBarCurrentTime() { } + +simulated event float GetCustomTimerBarMaxTime() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DemonUlt.uc b/Development/Src/TgGame/Classes/TgDevice_DemonUlt.uc new file mode 100644 index 0000000..7f7cf51 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DemonUlt.uc @@ -0,0 +1,11 @@ +class TgDevice_DemonUlt extends TgDevice_Stim + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function TransitionOut() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_DimensionalLink.uc b/Development/Src/TgGame/Classes/TgDevice_DimensionalLink.uc new file mode 100644 index 0000000..f65fece --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DimensionalLink.uc @@ -0,0 +1,99 @@ +class TgDevice_DimensionalLink extends TgDevice + native(ChampYing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +struct DLTeleportTargets { + var Vector TargetPosition; + var Rotator TargetRotation; + var Actor TargetIllusion; + structdefaultproperties {} +}; + +struct DLDeadTeleportTargets { + var Vector TargetPosition; + var Rotator TargetRotation; + var float ValidTimeRemaining; + structdefaultproperties {} +}; + +struct DLRewindTargets { + var Vector RewindPosition; + var Rotator RewindRotation; + structdefaultproperties {} +}; + +var TgPawn_Ying m_CachedYingPawn; +var Actor s_CycleTargets[10]; +var int s_nNumCycleTargets; +var int s_nCurrentCycleTargetIndex; +var array m_TeleportTargets; +var array m_DeadTeleportTargets; +var DLRewindTargets m_RewindTargets[30]; +var int m_CurrentRewindIndex; +var int m_ValidRewindIndex1; +var int m_ValidRewindIndex2; +var int m_nNumPrevRewindsToCheck; +var float m_fRewindMinTargetDist; +var float m_fRewindMinNextPointDist; +var float m_fLastRewindTimestamp; +var bool m_bRequiresReset; +var bool m_bSwappingPeriodEnded; +var Actor r_nCurrentCycleTarget; +var TgDevice_Rewind m_CachedCardRewind; + +replication { + if(bNetDirty && int(Role) == int(ENetRole.ROLE_Authority)) r_nCurrentCycleTarget; +} + +native function AimData ValidateReceivedAim(float ClientMovementTimeStamp, AimData Aim); // Export UTgDevice_DimensionalLink::execValidateReceivedAim(FFrame&, void* const) + +native function TickTargetingMode(float DeltaSeconds); // Export UTgDevice_DimensionalLink::execTickTargetingMode(FFrame&, void* const) + +native function bool IsTargetingModeReady(optional out TgObject.EDeviceFailType failType); // Export UTgDevice_DimensionalLink::execIsTargetingModeReady(FFrame&, void* const) + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_DimensionalLink::execGetTargetingAim(FFrame&, void* const) + +native function bool UsesCachedAim(); // Export UTgDevice_DimensionalLink::execUsesCachedAim(FFrame&, void* const) + +native function bool HasCachedYingPawn(); // Export UTgDevice_DimensionalLink::execHasCachedYingPawn(FFrame&, void* const) + +native function Actor CreateTeleportTargetDeployable(Vector TargetLocation, Rotator TargetRotation); // Export UTgDevice_DimensionalLink::execCreateTeleportTargetDeployable(FFrame&, void* const) + +native function GenerateCycleTargets(); // Export UTgDevice_DimensionalLink::execGenerateCycleTargets(FFrame&, void* const) + +simulated function FireAmmunition() { } + +simulated event bool ShouldCooldownAfterFire() { } + +delegate PawnEvent(TgPawn DeadPawn); + +function IllusionDied(Actor illusion) { } + +simulated function EndSwappingPeriod() { } + +simulated function IsFullyReset() { } + +function SetRequiresReset() { } + +reliable client simulated function ClientSetRequiresReset() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_nNumPrevRewindsToCheck=10 + m_fRewindMinTargetDist=313600.0000000 + m_fRewindMinNextPointDist=6400.0000000 + m_fLastRewindTimestamp=-100.0000000 + m_bRequiresReset=true + m_bSwappingPeriodEnded=true + m_bDisableLagCompensation=true + m_nLinkedDeviceIDs[0]=13414 + m_nLinkedDeviceIDs[1]=14041 + m_nLinkedDeviceIDs[2]=14042 + m_nLinkedDeviceIDs[3]=14043 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Disengage.uc b/Development/Src/TgGame/Classes/TgDevice_Disengage.uc new file mode 100644 index 0000000..5f755e6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Disengage.uc @@ -0,0 +1,9 @@ +class TgDevice_Disengage extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=15.0000000,Y=7.0000000,Z=-13.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DoubleCharge.uc b/Development/Src/TgGame/Classes/TgDevice_DoubleCharge.uc new file mode 100644 index 0000000..26fec2d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DoubleCharge.uc @@ -0,0 +1,32 @@ +class TgDevice_DoubleCharge extends TgDevice_Charge + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var int m_nTotalNumShots; +var int m_nShotsFired; +var bool m_bSetAsTargetingDeviceForMultiFire; + +native function UpdateTargetingModeStatus(const out AimData Aim); // Export UTgDevice_DoubleCharge::execUpdateTargetingModeStatus(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool Use() { } + +simulated function bool RefireTimer(optional bool bRefire) { } + +reliable server function bool ServerRefireTimer(optional bool bRefire, optional AimData ClientAim, optional float EndTraceX=-10000000.0000000, optional float EndTraceY=-10000000.0000000) { } + +simulated function DeviceConsumePowerPool(byte FireModeNum) { } + +simulated function int GetTotalNumberOfShots() { } + +state DeviceFiring {} + +defaultproperties +{ + m_nTotalNumShots=2 + m_bSetAsTargetingDeviceForMultiFire=true + m_IndividualOffhandCooldownTime=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Drag.uc b/Development/Src/TgGame/Classes/TgDevice_Drag.uc new file mode 100644 index 0000000..a27c0af --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Drag.uc @@ -0,0 +1,86 @@ +class TgDevice_Drag extends TgDevice + native(ChampMakoa) + hidecategories(Navigation) + config(Engine); + +const DRAG_END_LOCATION_LOCK_DIST_SQ = 16384; + +var TgPawn m_PullTarget; +var Rotator m_TargetInitialRotation; +var float m_fPullStartTime; +var TgPawn m_StunnedTarget; +var TgPawn r_ClientPullTarget; +var float m_fTruePostfireTime; +var float m_fPullVelocityBreakFactor; +var const float m_fPullVerticalEndOffset; +var const float m_fMaxPullTime; +var float m_fPrePullTime; +var float m_fPullEndOffset; +var float m_fPullSpeed; +var float m_fPullEndStunDuration; +var float m_fPullInterruptDistance; +var bool m_bCanStillPull; +var bool m_bNeedsDelayedServerEndPull; +var bool m_bNeedsDelayedClientEndPull; +var bool m_bHasPulledOnce; +var bool m_bSpecialUnlockInterrupt; +var Vector m_vEndLocation; +var TgPawn m_CachedPawnOwner; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_ClientPullTarget; +} + +simulated event StartFire(byte FireModeNum) { } + +function bool PullTarget(Actor Target, Vector HitLocation) { } + +function PrePullTimer() { } + +function MissPull() { } + +function MissInvalidTarget() { } + +event BreakPull() { } + +event EndPull() { } + +function ServerEndPull() { } + +reliable client simulated function ClientEndPull() { } + +function SetPullTargetNoServerCorrectCameraSmoothing(bool bDisallowSmoothing) { } + +function SetPullTarget(TgPawn Target) { } + +function ClearPullTarget() { } + +event EndPostPullStun() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_fTruePostfireTime=0.3000000 + m_fPullVelocityBreakFactor=0.1000000 + m_fPullVerticalEndOffset=16.0000000 + m_fMaxPullTime=1.5000000 + m_fPrePullTime=0.5000000 + m_fPullEndOffset=7.0000000 + m_fPullSpeed=1000.0000000 + m_fPullEndStunDuration=0.2000000 + m_fPullInterruptDistance=200.0000000 + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=39.2000000,Y=-33.6000000,Z=42.5000000) + m_nLinkedDeviceIDs[0]=14182 + m_nLinkedDeviceIDs[1]=14191 + m_nLinkedDeviceIDs[2]=14602 + m_nLinkedDeviceIDs[3]=14843 + m_nLinkedDeviceIDs[4]=14844 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DragonSlam.uc b/Development/Src/TgGame/Classes/TgDevice_DragonSlam.uc new file mode 100644 index 0000000..320f85b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DragonSlam.uc @@ -0,0 +1,39 @@ +class TgDevice_DragonSlam extends TgDevice + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine); + +var bool m_bHasHitTarget; +var TgPawn_Drogoz m_CachedDrogozOwner; +var TgCollisionProxy_Cylinder m_CollisionProxy; + +simulated function bool InterceptRightMousePressed(TgPlayerController TgController) { } + +simulated function CustomFire() { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +reliable client simulated function ClientImpactTarget() { } + +reliable server function ServerImpactTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +function RefundEnergy() { } + +simulated event Destroyed() { } + +simulated event SpawnCollisionProxy() { } + +simulated function FireAmmunition() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool ShouldMountCancelFiring() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DreadSerpent.uc b/Development/Src/TgGame/Classes/TgDevice_DreadSerpent.uc new file mode 100644 index 0000000..5b13088 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DreadSerpent.uc @@ -0,0 +1,23 @@ +class TgDevice_DreadSerpent extends TgDevice + hidecategories(Navigation) + config(Engine); + +var bool s_bQueueVoodooDeploy; + +simulated function bool TryDeployVoodoo() { } + +simulated function UpdateActiveProjectiles(optional TgProjectile Proj) { } + +reliable server event ServerDeployVoodoo() { } + +reliable server event InterruptFiring() { } + +reliable client simulated event ClientInterrupt() { } + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptSlotPressed(TgPlayerController TgController) { } + +simulated function float GetLockoutExtensionTime() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_DrogozInhand.uc b/Development/Src/TgGame/Classes/TgDevice_DrogozInhand.uc new file mode 100644 index 0000000..d5a7237 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DrogozInhand.uc @@ -0,0 +1,59 @@ +class TgDevice_DrogozInhand extends TgDevice + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine); + +var TgPawn_Drogoz m_CachedDrogozPawn; +var Vector m_vSalvoProjectileSpawnOffset; +var bool m_bStartedSalvo; +var TgDevice m_SalvoDevice; +var int m_nSalvoRockets; + +native function bool CanReload(optional bool bIsAutoReload=false); // Export UTgDevice_DrogozInhand::execCanReload(FFrame&, void* const) + +native function bool ShouldAutoFire(); // Export UTgDevice_DrogozInhand::execShouldAutoFire(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function FireAmmunition() { } + +simulated function bool HasCachedDrogozPawn() { } + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated function PrimeSalvo() { } + +simulated function EndSalvo() { } + +function SalvoPostFireTimer() { } + +reliable server function ServerStartSalvoReload() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function Projectile ProjectileFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_vSalvoProjectileSpawnOffset=(X=0.0000000,Y=4.5000000,Z=-6.0000000) + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=15.0000000,Z=-7.5000000) + m_fAltFireLockOutTime=0.0000000 + m_nLinkedDeviceTypes[0]=11041 + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceRocketLauncher' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DualFire.uc b/Development/Src/TgGame/Classes/TgDevice_DualFire.uc new file mode 100644 index 0000000..8009372 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DualFire.uc @@ -0,0 +1,14 @@ +class TgDevice_DualFire extends TgDevice_ToggleWithLockout + hidecategories(Navigation) + config(Engine); + +simulated delegate InterruptFiringDelegate(); + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=13218 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_DualWield.uc b/Development/Src/TgGame/Classes/TgDevice_DualWield.uc new file mode 100644 index 0000000..5e7e59f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_DualWield.uc @@ -0,0 +1,22 @@ +class TgDevice_DualWield extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var () Vector m_vProjectileSpawnOffset2; +var bool m_bFireLeftWeapon; + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated function FireAmmunition() { } + +simulated function SetLeftFire(bool bLeftFire) { } + +defaultproperties +{ + m_vProjectileSpawnOffset2=(X=30.0000000,Y=-20.0000000,Z=-10.0000000) + m_bAimThroughReticule=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fMeshFOV=45.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=20.0000000,Z=-10.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_EarthenGuard.uc b/Development/Src/TgGame/Classes/TgDevice_EarthenGuard.uc new file mode 100644 index 0000000..5dfdff9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EarthenGuard.uc @@ -0,0 +1,12 @@ +class TgDevice_EarthenGuard extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bUsesOutroLockout=true + m_fOutroLockoutTime=0.1000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_EbbAndFlow.uc b/Development/Src/TgGame/Classes/TgDevice_EbbAndFlow.uc new file mode 100644 index 0000000..30b83cf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EbbAndFlow.uc @@ -0,0 +1,10 @@ +class TgDevice_EbbAndFlow extends TgDevice + native(ChampMakoa) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_ShellSpinDevice; + +simulated event StartFire(byte FireModeNum) { } + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_EmergencyExit.uc b/Development/Src/TgGame/Classes/TgDevice_EmergencyExit.uc new file mode 100644 index 0000000..ddee92c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EmergencyExit.uc @@ -0,0 +1,6 @@ +class TgDevice_EmergencyExit extends TgDevice + native(ChampSkye) + hidecategories(Navigation) + config(Engine); + +simulated event StartFire(byte FireModeNum) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Emitter.uc b/Development/Src/TgGame/Classes/TgDevice_Emitter.uc new file mode 100644 index 0000000..1dc583d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Emitter.uc @@ -0,0 +1,34 @@ +class TgDevice_Emitter extends TgDevice + native(ChampRuckus) + hidecategories(Navigation) + config(Engine); + +var array m_PawnsInRange; +var TgCollisionProxy_Cylinder m_CollisionProxy; +var bool m_bHasProjector; +var bool m_bIsOnOwner; +var float m_fProjectorPercent; +var TgPawn m_CachedPawnOwner; + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanJumpWhileFiring() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +simulated event ClearAllTouched() { } + +simulated event SpawnCollisionProxy() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_EmitterMod.uc b/Development/Src/TgGame/Classes/TgDevice_EmitterMod.uc new file mode 100644 index 0000000..d2c1382 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EmitterMod.uc @@ -0,0 +1,11 @@ +class TgDevice_EmitterMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var bool m_bIsOnOthers; +var bool m_bIsOnOwner; + +native function ApplyTouchEffect(Actor Target, TgDevice_Emitter Emitter); // Export UTgDevice_EmitterMod::execApplyTouchEffect(FFrame&, void* const) + +native function RemoveTouchEffect(Actor Target, TgDevice_Emitter Emitter); // Export UTgDevice_EmitterMod::execRemoveTouchEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_Emote.uc b/Development/Src/TgGame/Classes/TgDevice_Emote.uc new file mode 100644 index 0000000..a84759a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Emote.uc @@ -0,0 +1,60 @@ +class TgDevice_Emote extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var TgPawn m_CachedPawnOwner; +var bool m_bAccelerationInterruptsDevice; +var bool m_bJumpingInterruptsDevice; +var Class m_DefaultCameraModuleClass; +var Class m_FiringCameraModuleClass; +var TgCameraModule m_FiringCameraModule; +var float m_fCameraTweenInTime; +var float m_fCameraTweenOutTime; +var Vector m_vFiringCameraOffset; + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice_Emote::execShouldBlockReload(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Emote::execMustBeOnGroundToFire(FFrame&, void* const) + +native function bool CanFiringBeLocked(); // Export UTgDevice_Emote::execCanFiringBeLocked(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanJumpWhileFiring() { } + +simulated event bool CanFiringBeCanceledByRightMouse() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated event bool CanBeFiredWhileTweening() { } + +simulated function bool ShouldInterruptMount() { } + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +simulated function TurnOnSpecialCamera() { } + +simulated function TurnOffSpecialCamera() { } + +simulated function TgPawn GetCachedPawnOwner() { } + +simulated function Tick(float DeltaSeconds) { } + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{ + m_bAccelerationInterruptsDevice=true + m_bJumpingInterruptsDevice=true + m_FiringCameraModuleClass=Class'TgCameraModule_ThirdPersonVariableHeight' + m_fCameraTweenInTime=0.1000000 + m_fCameraTweenOutTime=0.1000000 + m_bForce3PViewWhileFiring=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Enlightenment.uc b/Development/Src/TgGame/Classes/TgDevice_Enlightenment.uc new file mode 100644 index 0000000..a3f3e61 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Enlightenment.uc @@ -0,0 +1,24 @@ +class TgDevice_Enlightenment extends TgDevice + native(ChampPrincess) + hidecategories(Navigation) + config(Engine); + +var TgPawn_Princess m_CachedPrincess; + +simulated function bool HasCachedPrincess() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function StartTimeOut() { } + +simulated function TimeOut() { } + +simulated function StartWaitForResultOfFireTimer() { } + +simulated function WaitForResultOfFire() { } + +state DeviceBuildup {} + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_EnlightenmentGun.uc b/Development/Src/TgGame/Classes/TgDevice_EnlightenmentGun.uc new file mode 100644 index 0000000..e944b28 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EnlightenmentGun.uc @@ -0,0 +1,18 @@ +class TgDevice_EnlightenmentGun extends TgDevice + native(ChampPrincess) + hidecategories(Navigation) + config(Engine) + dependson(TgClientSettings); + +var TgPawn_Princess m_CachedPrincess; +var bool m_bAutoFireAfterPostHitDelay; + +native function bool RequiresAmmoToFire(); // Export UTgDevice_EnlightenmentGun::execRequiresAmmoToFire(FFrame&, void* const) + +simulated function bool HasCachedPrincess() { } + +simulated event bool UsesSimulatedAmmo() { } + +simulated function bool ShouldSwitchBackToBasicAttackTargeting(TgClientSettings.ECastMode CastMode) { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_EvieInhand.uc b/Development/Src/TgGame/Classes/TgDevice_EvieInhand.uc new file mode 100644 index 0000000..33d0587 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EvieInhand.uc @@ -0,0 +1,35 @@ +class TgDevice_EvieInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=21.0000000,Y=8.0000000,Z=-10.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_IceStaff' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="trackang100fthighx",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceIceStaff' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_EvilMojo.uc b/Development/Src/TgGame/Classes/TgDevice_EvilMojo.uc new file mode 100644 index 0000000..bebbaa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_EvilMojo.uc @@ -0,0 +1,8 @@ +class TgDevice_EvilMojo extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=0.0000000,Y=18.0000000,Z=-20.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ExitStrategy.uc b/Development/Src/TgGame/Classes/TgDevice_ExitStrategy.uc new file mode 100644 index 0000000..5d3e722 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ExitStrategy.uc @@ -0,0 +1,3 @@ +class TgDevice_ExitStrategy extends TgDevice + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_ExplosiveFlask.uc b/Development/Src/TgGame/Classes/TgDevice_ExplosiveFlask.uc new file mode 100644 index 0000000..b1a4b7d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ExplosiveFlask.uc @@ -0,0 +1,10 @@ +class TgDevice_ExplosiveFlask extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_vProjectileSpawnOffset=(X=30.0000000,Y=7.0000000,Z=-15.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceExplosiveFlask' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FaeFlight.uc b/Development/Src/TgGame/Classes/TgDevice_FaeFlight.uc new file mode 100644 index 0000000..1584a08 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FaeFlight.uc @@ -0,0 +1,20 @@ +class TgDevice_FaeFlight extends TgDevice + native(ChampFairy) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_FaeFlight::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Failsafe.uc b/Development/Src/TgGame/Classes/TgDevice_Failsafe.uc new file mode 100644 index 0000000..08274a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Failsafe.uc @@ -0,0 +1,10 @@ +class TgDevice_Failsafe extends TgDevice + native(ChampBarik) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_RocketBootsDevice; + +simulated event StartFire(byte FireModeNum) { } + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_FairyInhand.uc b/Development/Src/TgGame/Classes/TgDevice_FairyInhand.uc new file mode 100644 index 0000000..0190441 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FairyInhand.uc @@ -0,0 +1,36 @@ +class TgDevice_FairyInhand extends TgDevice + native(ChampFairy) + hidecategories(Navigation) + config(Engine); + +native function DeviceAdjustDamage(const out ImpactInfo Impact, out float fDamage, int nPropertyId); // Export UTgDevice_FairyInhand::execDeviceAdjustDamage(FFrame&, void* const) + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=21.0000000,Y=8.0000000,Z=-10.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_IceStaff' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FernandoImmortal.uc b/Development/Src/TgGame/Classes/TgDevice_FernandoImmortal.uc new file mode 100644 index 0000000..d816fa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FernandoImmortal.uc @@ -0,0 +1,18 @@ +class TgDevice_FernandoImmortal extends TgDevice_ActiveAura + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanJumpWhileFiring() { } + +simulated function EndLockOutEarly() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FernandoInhand.uc b/Development/Src/TgGame/Classes/TgDevice_FernandoInhand.uc new file mode 100644 index 0000000..2739cf1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FernandoInhand.uc @@ -0,0 +1,36 @@ +class TgDevice_FernandoInhand extends TgDevice + native(ChampFernando) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_FernandoInhand::execGetMoveSpeedMultiplier(FFrame&, void* const) + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Wide + m_bAltFireEnabled=true + m_bCanReloadEarly=false + m_vMeshViewOffset=(X=0.0000000,Y=0.0000000,Z=-8.0000000) + m_fWeaponBob=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_Lance' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftxlow",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FireInAir.uc b/Development/Src/TgGame/Classes/TgDevice_FireInAir.uc new file mode 100644 index 0000000..775b616 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FireInAir.uc @@ -0,0 +1,11 @@ +class TgDevice_FireInAir extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_FireInAir::execMustBeOnGroundToFire(FFrame&, void* const) + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FireSpit.uc b/Development/Src/TgGame/Classes/TgDevice_FireSpit.uc new file mode 100644 index 0000000..94dc638 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FireSpit.uc @@ -0,0 +1,19 @@ +class TgDevice_FireSpit extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function int GetAimAssistPriority() { } + +defaultproperties +{ + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesFriction=none + m_AimAssistKeyframesTrackingAccHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz=none + m_AimAssistKeyframesTrackingAccVert=none + m_AimAssistKeyframesTrackingAngleVert=none + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceFireSpit' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Fireball.uc b/Development/Src/TgGame/Classes/TgDevice_Fireball.uc new file mode 100644 index 0000000..696582f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Fireball.uc @@ -0,0 +1,8 @@ +class TgDevice_Fireball extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=30.0000000,Y=20.0000000,Z=-10.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FlakInhand.uc b/Development/Src/TgGame/Classes/TgDevice_FlakInhand.uc new file mode 100644 index 0000000..3cf6db3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FlakInhand.uc @@ -0,0 +1,29 @@ +class TgDevice_FlakInhand extends TgDevice + native(ChampFlak) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var TgDevice_KineticBurst m_KineticDevice; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_FlakInhand::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool HasKineticDevice(); // Export UTgDevice_FlakInhand::execHasKineticDevice(FFrame&, void* const) + +simulated function FireAmmunition() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=15.0000000,Z=-7.5000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_FlakInhand' + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Flutter.uc b/Development/Src/TgGame/Classes/TgDevice_Flutter.uc new file mode 100644 index 0000000..1cac31a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Flutter.uc @@ -0,0 +1,14 @@ +class TgDevice_Flutter extends TgDevice_Charge + native(ChampFairy) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Flutter::execGetTargetingAim(FFrame&, void* const) + +defaultproperties +{ + m_eChargeState=CHARGE_Fairy + m_ChargeTimingType=CFT_PostFire + m_bUsePhysFlying=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Fortify.uc b/Development/Src/TgGame/Classes/TgDevice_Fortify.uc new file mode 100644 index 0000000..ee5140f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Fortify.uc @@ -0,0 +1,4 @@ +class TgDevice_Fortify extends TgDevice_BarricadeMod + native(ChampBarik) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_FragGrenade.uc b/Development/Src/TgGame/Classes/TgDevice_FragGrenade.uc new file mode 100644 index 0000000..a92bae1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FragGrenade.uc @@ -0,0 +1,60 @@ +class TgDevice_FragGrenade extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + config(Engine) + dependson(TgTimerManager); + +var TgPawn_Viktor m_CachedViktor; +var bool m_bEndCook; +var bool m_bThrownGrenade; +var bool s_bCanPickUpNuggetRefills; +var bool s_bFullCook; + +native function bool RequiresAmmoToFire(); // Export UTgDevice_FragGrenade::execRequiresAmmoToFire(FFrame&, void* const) + +simulated function SetThrowSpeedMultiplier(float Mult) { } + +simulated function DropGrenade() { } + +simulated function FireAmmunition() { } + +function CooldownTimerExpired(int nTimerId, TgTimerManager.TGT_EVENT eEvent, optional bool bNoBecomeActive) { } + +simulated function StartThrowValidation() { } + +simulated function StartThrow() { } + +simulated function SetGrenadeCookTime(float fCookAmt, optional bool bSendToServer=false) { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated function SetAndSendGrenadeTimingsViaStartThrowTimer() { } + +reliable server function ServerEndCook(float fCookPct) { } + +simulated function bool HasCachedViktor() { } + +reliable server event InterruptFiring() { } + +reliable client simulated event ClientInterrupt() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldCooldownAfterFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesFriction=none + m_AimAssistKeyframesTrackingAccHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz=none + m_AimAssistKeyframesTrackingAccVert=none + m_AimAssistKeyframesTrackingAngleVert=none + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceFragGrenade' + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_FragGrenadeModWhileCook.uc b/Development/Src/TgGame/Classes/TgDevice_FragGrenadeModWhileCook.uc new file mode 100644 index 0000000..c36ed07 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_FragGrenadeModWhileCook.uc @@ -0,0 +1,16 @@ +class TgDevice_FragGrenadeModWhileCook extends TgDevice + hidecategories(Navigation) + config(Engine); + +function ApplyHitSpecial() { } + +function RemoveHitSpecial() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=14149 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GaeBolg.uc b/Development/Src/TgGame/Classes/TgDevice_GaeBolg.uc new file mode 100644 index 0000000..707f3d3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GaeBolg.uc @@ -0,0 +1,10 @@ +class TgDevice_GaeBolg extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bForce3PViewWhileFiring=true + m_bUsesOutroLockout=true + m_vProjectileSpawnOffset=(X=0.0000000,Y=10.0000000,Z=-30.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GauntletInhand.uc b/Development/Src/TgGame/Classes/TgDevice_GauntletInhand.uc new file mode 100644 index 0000000..8b8e315 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GauntletInhand.uc @@ -0,0 +1,53 @@ +class TgDevice_GauntletInhand extends TgDevice + native(ChampGauntlet) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var TgPawn_Gauntlet m_CachedGauntletPawn; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_GauntletInhand::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +simulated function UpdateInhandTargetInfo(Actor HitActor, Vector HitLocation) { } + +simulated function bool HasCachedGauntlet() { } + +simulated function StopFire(byte FireModeNum) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bDisableLagCompensation=true + m_bDoNotAllowHeadShots=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=4.0000000,Z=-9.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_GauntletInhand' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GeometryBarrierTank.uc b/Development/Src/TgGame/Classes/TgDevice_GeometryBarrierTank.uc new file mode 100644 index 0000000..37d7645 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GeometryBarrierTank.uc @@ -0,0 +1,63 @@ +class TgDevice_GeometryBarrierTank extends TgDevice + native(ChampBarrierTank) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +const IMPASSE_POST_TARGET_LOCKOUT_TIME = 0.7f; + +var float r_fTremorsCooldownReduction; +var float m_fCachedWallHealthPercent; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fTremorsCooldownReduction; +} + +native function GetGroundTargetAim(out AimData Aim); // Export UTgDevice_GeometryBarrierTank::execGetGroundTargetAim(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_GeometryBarrierTank::execMustBeOnGroundToFire(FFrame&, void* const) + +native function bool ShouldAltFireOnTick(); // Export UTgDevice_GeometryBarrierTank::execShouldAltFireOnTick(FFrame&, void* const) + +native function UpdateTargetingModeStatus(const out AimData Aim); // Export UTgDevice_GeometryBarrierTank::execUpdateTargetingModeStatus(FFrame&, void* const) + +simulated function bool InterceptSlotPressed(TgPlayerController TgController) { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated event EndCustomTargeting() { } + +reliable server function ServerEndCustomTargeting() { } + +simulated event bool CanFireWithoutAimResult() { } + +simulated event OnDeployableSpawned(TgDeployable deployable) { } + +event OnDeployableDestroyed(TgDeployable deployable) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated function int GetAimAssistPriority() { } + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{ + r_fTremorsCooldownReduction=-1.0000000 + m_fCachedWallHealthPercent=-1.0000000 + m_DeviceEmoteAt=DEA_StartFire + m_bAimThroughReticule=true + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesFriction=none + m_AimAssistKeyframesTrackingAccHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz=none + m_AimAssistKeyframesTrackingAccVert=none + m_AimAssistKeyframesTrackingAngleVert=none +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GhostWalk.uc b/Development/Src/TgGame/Classes/TgDevice_GhostWalk.uc new file mode 100644 index 0000000..14ed248 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GhostWalk.uc @@ -0,0 +1,14 @@ +class TgDevice_GhostWalk extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false + m_fEnterCombatDuration=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GourdMod.uc b/Development/Src/TgGame/Classes/TgDevice_GourdMod.uc new file mode 100644 index 0000000..7c79930 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GourdMod.uc @@ -0,0 +1,13 @@ +class TgDevice_GourdMod extends TgDevice + native(ChampMalDamba) + hidecategories(Navigation) + config(Engine); + +var array m_ImmuneTargets; +var array m_ImmuneTimes; + +native function ApplyOnTouchEffect(Actor Target); // Export UTgDevice_GourdMod::execApplyOnTouchEffect(FFrame&, void* const) + +native function ApplyEffect(TgDeploy_Gourd gourd, Actor Target); // Export UTgDevice_GourdMod::execApplyEffect(FFrame&, void* const) + +native function RemoveEffect(TgDeploy_Gourd gourd, Actor Target); // Export UTgDevice_GourdMod::execRemoveEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_GrohkInhand.uc b/Development/Src/TgGame/Classes/TgDevice_GrohkInhand.uc new file mode 100644 index 0000000..0d1d6a1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GrohkInhand.uc @@ -0,0 +1,53 @@ +class TgDevice_GrohkInhand extends TgDevice_ArcingBeam + native(ChampGrohk) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Grohk m_CachedGrohkPawn; + +native function DeviceAdjustDamage(const out ImpactInfo Impact, out float fDamage, int nPropertyId); // Export UTgDevice_GrohkInhand::execDeviceAdjustDamage(FFrame&, void* const) + +native function bool IsValidArcTarget(Actor TestActor, ArcingInfo Info); // Export UTgDevice_GrohkInhand::execIsValidArcTarget(FFrame&, void* const) + +simulated function bool HasCachedGrohkPawn() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +simulated function UpdateInhandTargetInfo(Actor HitActor, Vector HitLocation) { } + +defaultproperties +{ + m_nMaxNumArcsPerTarget=0 + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bCanReloadEarly=false + m_bDoNotAllowHeadShots=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=4.0000000,Z=-9.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_Orb' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftlowx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GroverInhand.uc b/Development/Src/TgGame/Classes/TgDevice_GroverInhand.uc new file mode 100644 index 0000000..ed72ece --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GroverInhand.uc @@ -0,0 +1,32 @@ +class TgDevice_GroverInhand extends TgDevice + native(ChampGrover) + hidecategories(Navigation) + config(Engine); + +var int m_nProjectilesRemaining; +var int m_nProjectileCount; +var float m_fMultiProjectileDelay; + +simulated function FireNext() { } + +state DeviceFiring {} + +defaultproperties +{ + m_nProjectileCount=3 + m_fMultiProjectileDelay=0.1000000 + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Wide + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=12.0000000,Y=1.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=15.0000000,Y=1.0000000,Z=-9.0000000) + m_fAltFireLockOutTime=0.0000000 + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' + m_ForceFeedbackStopReload=ForceFeedbackWaveform'StandardReload' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GroverInhandAxe.uc b/Development/Src/TgGame/Classes/TgDevice_GroverInhandAxe.uc new file mode 100644 index 0000000..70fa095 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GroverInhandAxe.uc @@ -0,0 +1,16 @@ +class TgDevice_GroverInhandAxe extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Wide + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=12.0000000,Y=1.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=15.0000000,Y=10.0000000,Z=-9.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_GroverInhandAxe' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_GrumpyBomb.uc b/Development/Src/TgGame/Classes/TgDevice_GrumpyBomb.uc new file mode 100644 index 0000000..f98eaa4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_GrumpyBomb.uc @@ -0,0 +1,37 @@ +class TgDevice_GrumpyBomb extends TgDevice + native(ChampBombKing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var () float m_fPostTargetingLockInDuration; + +native function bool UsesTargetingMode(); // Export UTgDevice_GrumpyBomb::execUsesTargetingMode(FFrame&, void* const) + +native function EnterTargetingMode(); // Export UTgDevice_GrumpyBomb::execEnterTargetingMode(FFrame&, void* const) + +native function bool IsTargetingModeReady(optional out TgObject.EDeviceFailType failType); // Export UTgDevice_GrumpyBomb::execIsTargetingModeReady(FFrame&, void* const) + +native function DeviceAdjustDamage(const out ImpactInfo Impact, out float fDamage, int nPropertyId); // Export UTgDevice_GrumpyBomb::execDeviceAdjustDamage(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_GrumpyBomb::execCanDeviceFireNow(FFrame&, void* const) + +simulated function bool InterceptRightMousePressed(TgPlayerController TgController) { } + +simulated function PutAway() { } + +simulated event bool ShouldInterruptReloadOnBeginTargeting() { } + +simulated event bool CanBeInterrupted() { } + +simulated function bool CanToggleTargetingOff() { } + +simulated function PostTargetingLockIn() { } + +defaultproperties +{ + m_eCastModeOverride=CM_Instant + m_bUseCustomCastMode=true + m_bDisableLagCompensation=true + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceGrumpyBomb' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Headhunter.uc b/Development/Src/TgGame/Classes/TgDevice_Headhunter.uc new file mode 100644 index 0000000..8c56582 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Headhunter.uc @@ -0,0 +1,19 @@ +class TgDevice_Headhunter extends TgDevice_Stim + hidecategories(Navigation) + config(Engine); + +var TgDevice_KinessaInhand m_CachedInhandDevice; +var TgDevice_SniperMode m_CachedSniperModeDevice; +var bool m_bCamFXEnabled; + +simulated function OnStartFireRequestSent() { } + +simulated function Tick(float DeltaTime) { } + +simulated function ToggleCamFX(bool bEnable) { } + +simulated function bool HasCachedInhandDevice() { } + +simulated function bool HasCachedSniperDevice() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_HealingPotion.uc b/Development/Src/TgGame/Classes/TgDevice_HealingPotion.uc new file mode 100644 index 0000000..edfdea6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HealingPotion.uc @@ -0,0 +1,41 @@ +class TgDevice_HealingPotion extends TgDevice + hidecategories(Navigation) + config(Engine); + +var bool s_bQueueDetonation; +var bool m_bAttemptingToDetonate; + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function LockOutOtherDevices() { } + +simulated function DetonationGracePeriod() { } + +simulated function FireAmmunition() { } + +reliable client simulated event ClientStartCooldown(int nMode, float fCooldownTimeOverride) { } + +reliable client simulated event ClientEndCooldown() { } + +simulated function UpdateActiveProjectiles(optional TgProjectile Proj) { } + +simulated function bool InterceptSlotPressed(TgPlayerController TgController) { } + +singular simulated function bool TryDetonate() { } + +reliable server event ServerTryDetonate() { } + +reliable server event InterruptFiring() { } + +reliable client simulated event ClientInterrupt() { } + +function ScaleAbilityRadius() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bAimThroughReticule=true + m_IndividualOffhandCooldownTime=0.5000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=-35.0000000,Z=-20.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HealingRain.uc b/Development/Src/TgGame/Classes/TgDevice_HealingRain.uc new file mode 100644 index 0000000..32c3478 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HealingRain.uc @@ -0,0 +1,4 @@ +class TgDevice_HealingRain extends TgDevice_TotemMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_HealingStation.uc b/Development/Src/TgGame/Classes/TgDevice_HealingStation.uc new file mode 100644 index 0000000..58c2de0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HealingStation.uc @@ -0,0 +1,7 @@ +class TgDevice_HealingStation extends TgDevice_TurretMod + native(Devices) + hidecategories(Navigation) + config(Engine); + +var float m_fFireTimer; +var TgPawn m_CachedPawnOwner; diff --git a/Development/Src/TgGame/Classes/TgDevice_HealingTotem.uc b/Development/Src/TgGame/Classes/TgDevice_HealingTotem.uc new file mode 100644 index 0000000..bdcee99 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HealingTotem.uc @@ -0,0 +1,11 @@ +class TgDevice_HealingTotem extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated function bool ShouldInterruptReloadOnFire() { } + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_fBottomlessPitCheck=70.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HeatHaze.uc b/Development/Src/TgGame/Classes/TgDevice_HeatHaze.uc new file mode 100644 index 0000000..8535c1e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HeatHaze.uc @@ -0,0 +1,24 @@ +class TgDevice_HeatHaze extends TgDevice + hidecategories(Navigation) + config(Engine); + +const InhandBow = 14891; + +simulated function InhandFired() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_nLinkedDeviceIDs[0]=14891 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HeatTransfer.uc b/Development/Src/TgGame/Classes/TgDevice_HeatTransfer.uc new file mode 100644 index 0000000..3e1410b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HeatTransfer.uc @@ -0,0 +1,9 @@ +class TgDevice_HeatTransfer extends TgDevice_ShieldMod + native(Devices) + hidecategories(Navigation) + config(Engine); + +var int m_nAccumulatedDamage; +var int m_nActivationDamage; + +native function RespondToDamageTaken(int Damage); // Export UTgDevice_HeatTransfer::execRespondToDamageTaken(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_HeroicLeap.uc b/Development/Src/TgGame/Classes/TgDevice_HeroicLeap.uc new file mode 100644 index 0000000..e218f7e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HeroicLeap.uc @@ -0,0 +1,18 @@ +class TgDevice_HeroicLeap extends TgDevice_Leap + hidecategories(Navigation) + config(Engine); + +simulated function SetLeapParams(out float scaleLateral, out float scaleVertical, out float additiveLateral, out float additiveVertical) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +defaultproperties +{ + m_bAlwaysStartCooldown=true + m_bForce3PViewWhileFiring=false + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HexaFire.uc b/Development/Src/TgGame/Classes/TgDevice_HexaFire.uc new file mode 100644 index 0000000..5ff3eba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HexaFire.uc @@ -0,0 +1,40 @@ +class TgDevice_HexaFire extends TgDevice_HitPulse + native(ChampRuckus) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var () Vector m_vProjectileSpawnOffset2; +var bool m_bFireLeftWeapon; +var TgPawn_Ruckus m_CachedRuckus; + +native function GetCachedAim(out AimData Aim); // Export UTgDevice_HexaFire::execGetCachedAim(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_HexaFire::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated function bool HasCachedRuckus() { } + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated event bool CanJumpWhileFiring() { } + +simulated event bool CanBeCanceled() { } + +simulated function FireAmmunition() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_vProjectileSpawnOffset2=(X=30.0000000,Y=-30.0000000,Z=15.0000000) + m_DeviceTimerBarType=DTBT_PersistTime + m_bAlwaysStartCooldown=false + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=30.0000000,Y=30.0000000,Z=15.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HexaFireGuns.uc b/Development/Src/TgGame/Classes/TgDevice_HexaFireGuns.uc new file mode 100644 index 0000000..ef3b1a6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HexaFireGuns.uc @@ -0,0 +1,28 @@ +class TgDevice_HexaFireGuns extends TgDevice_QuadWield + hidecategories(Navigation) + config(Engine); + +var TgPawn_Ruckus m_CachedRuckusOwner; + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptLeftMouseReleased(TgPlayerController TgController) { } + +simulated function bool InterceptRightMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptRightMouseReleased(TgPlayerController TgController) { } + +simulated function bool HasCachedRuckusOwner() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +state DeviceFiring {} + +defaultproperties +{ + m_vProjectileSpawnOffset3=(X=5.0000000,Y=2.0000000,Z=11.0000000) + m_vProjectileSpawnOffset4=(X=5.0000000,Y=-2.0000000,Z=11.0000000) + m_nWeaponFireNumber=1 + m_vProjectileSpawnOffset2=(X=5.0000000,Y=-6.0000000,Z=5.0000000) + m_vProjectileSpawnOffset=(X=5.0000000,Y=6.0000000,Z=5.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HitPulse.uc b/Development/Src/TgGame/Classes/TgDevice_HitPulse.uc new file mode 100644 index 0000000..8cbdc6c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HitPulse.uc @@ -0,0 +1,43 @@ +class TgDevice_HitPulse extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool s_ShouldPayCostPerPulse; +var bool s_bCostPaid; +var bool m_bConsumeAmmoOnEachPulse; +var int m_CurrentPulseIndex; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_HitPulse::execCanDeviceFireNow(FFrame&, void* const) + +simulated function bool ApplyGlobalOffhandCooldown() { } + +simulated function PersistTimer() { } + +simulated event float GetRefireTime(optional int nMode=-1) { } + +simulated function PulseHit() { } + +simulated event float GetPersistTime(optional int nMode=-1) { } + +simulated event float GetPersistPulseHitTime(optional int nMode=-1) { } + +reliable server event InterruptFiring() { } + +reliable client simulated event ClientInterrupt() { } + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +simulated function bool ShouldConsumePowerPoolAfterFire() { } + +simulated function int GetAmmoToConsume() { } + +simulated function float GetLockoutExtensionTime() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bAlwaysStartCooldown=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Hover.uc b/Development/Src/TgGame/Classes/TgDevice_Hover.uc new file mode 100644 index 0000000..b36881f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Hover.uc @@ -0,0 +1,21 @@ +class TgDevice_Hover extends TgDevice + native(ChampRuckus) + hidecategories(Navigation) + config(Engine); + +native function bool CanBeCrippled(); // Export UTgDevice_Hover::execCanBeCrippled(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +function OnCripple() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bPostFireShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HunterRoll.uc b/Development/Src/TgGame/Classes/TgDevice_HunterRoll.uc new file mode 100644 index 0000000..8789253 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HunterRoll.uc @@ -0,0 +1,15 @@ +class TgDevice_HunterRoll extends TgDevice_Charge + hidecategories(Navigation) + config(Engine); + +var bool m_bRolledBackward; + +simulated function Rotator GetChargeDirection() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bCanLeftClickCancel=false + m_bPostFireShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HuntersMark.uc b/Development/Src/TgGame/Classes/TgDevice_HuntersMark.uc new file mode 100644 index 0000000..4a4c79b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HuntersMark.uc @@ -0,0 +1,13 @@ +class TgDevice_HuntersMark extends TgDevice + native(ChampTyra) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function float GetConePullbackDistance(); // Export UTgDevice_HuntersMark::execGetConePullbackDistance(FFrame&, void* const) + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_HuntersMark::execGetTargetingAim(FFrame&, void* const) + +native function AimData ValidateReceivedAim(float ClientMovementTimeStamp, AimData Aim); // Export UTgDevice_HuntersMark::execValidateReceivedAim(FFrame&, void* const) + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Hustle.uc b/Development/Src/TgGame/Classes/TgDevice_Hustle.uc new file mode 100644 index 0000000..a0849c1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Hustle.uc @@ -0,0 +1,61 @@ +class TgDevice_Hustle extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var () float m_fMinSprintSpeedSq; +var () float m_fAllowableSprintAngle; +var () float m_fSprintFailSafetyTime; +var float m_fSprintFailTimeAccumulator; + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice_Hustle::execShouldBlockReload(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Hustle::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool IsDeviceFiringLockedForUI(); // Export UTgDevice_Hustle::execIsDeviceFiringLockedForUI(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Hustle::execCanDeviceFireNow(FFrame&, void* const) + +native function bool ShouldInterruptLift(); // Export UTgDevice_Hustle::execShouldInterruptLift(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +function OnCripple() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated event bool CanSprint() { } + +simulated function FiringEndTransition() { } + +simulated function CancelSafetyTimer() { } + +simulated function CompleteInterrupt() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_fMinSprintSpeedSq=30000.0000000 + m_fAllowableSprintAngle=0.5000000 + m_fSprintFailSafetyTime=0.2500000 + m_nLinkedDeviceTypes[0]=10828 + m_nLinkedDeviceTypes[1]=11041 + m_nLinkedDeviceTypes[2]=11070 + m_nLinkedDeviceTypes[3]=15052 + m_nLinkedDeviceTypes[4]=11077 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_HyperBeam.uc b/Development/Src/TgGame/Classes/TgDevice_HyperBeam.uc new file mode 100644 index 0000000..cf06817 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_HyperBeam.uc @@ -0,0 +1,28 @@ +class TgDevice_HyperBeam extends TgDevice + native(ChampGauntlet) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_HyperBeam::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +simulated function FiringDuration() { } + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +simulated function bool ShouldConsumePowerPoolAfterFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_IceBlock.uc b/Development/Src/TgGame/Classes/TgDevice_IceBlock.uc new file mode 100644 index 0000000..8d57441 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_IceBlock.uc @@ -0,0 +1,11 @@ +class TgDevice_IceBlock extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_IceStorm.uc b/Development/Src/TgGame/Classes/TgDevice_IceStorm.uc new file mode 100644 index 0000000..dcd4ab1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_IceStorm.uc @@ -0,0 +1,8 @@ +class TgDevice_IceStorm extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bDisableLagCompensation=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Illusion.uc b/Development/Src/TgGame/Classes/TgDevice_Illusion.uc new file mode 100644 index 0000000..30d879b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Illusion.uc @@ -0,0 +1,19 @@ +class TgDevice_Illusion extends TgDevice_Pet + native(ChampYing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Illusion::execGetTargetingAim(FFrame&, void* const) + +native function TgPawn SpawnIllusionAtLocation(Vector pos, Rotator Rot); // Export UTgDevice_Illusion::execSpawnIllusionAtLocation(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Illusion::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated function CustomFire() { } + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_IllusoryRift.uc b/Development/Src/TgGame/Classes/TgDevice_IllusoryRift.uc new file mode 100644 index 0000000..b207a71 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_IllusoryRift.uc @@ -0,0 +1,15 @@ +class TgDevice_IllusoryRift extends TgDevice + native(ChampYing) + hidecategories(Navigation) + config(Engine); + +native function ApplyHealingToAllies(); // Export UTgDevice_IllusoryRift::execApplyHealingToAllies(FFrame&, void* const) + +simulated function FireAmmunition() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ImpalerArrow.uc b/Development/Src/TgGame/Classes/TgDevice_ImpalerArrow.uc new file mode 100644 index 0000000..7038384 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ImpalerArrow.uc @@ -0,0 +1,27 @@ +class TgDevice_ImpalerArrow extends TgDevice + native(ChampLongbow) + hidecategories(Navigation) + config(Engine); + +var TgPawn_Longbow m_CachedLongbow; + +native function bool ShouldAltFireOnTick(); // Export UTgDevice_ImpalerArrow::execShouldAltFireOnTick(FFrame&, void* const) + +native function bool IsDeviceFiringForUI(); // Export UTgDevice_ImpalerArrow::execIsDeviceFiringForUI(FFrame&, void* const) + +simulated event bool ShouldCooldownAfterFire() { } + +simulated event bool ShouldInterruptInhand() { } + +simulated event bool HasCachedLongbow() { } + +simulated function FireAmmunition() { } + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ImpasseMod.uc b/Development/Src/TgGame/Classes/TgDevice_ImpasseMod.uc new file mode 100644 index 0000000..277a0fe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ImpasseMod.uc @@ -0,0 +1,4 @@ +class TgDevice_ImpasseMod extends TgDevice + native(ChampBarrierTank) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Impede.uc b/Development/Src/TgGame/Classes/TgDevice_Impede.uc new file mode 100644 index 0000000..2a0fc89 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Impede.uc @@ -0,0 +1,4 @@ +class TgDevice_Impede extends TgDevice_BarricadeMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_InPursuit.uc b/Development/Src/TgGame/Classes/TgDevice_InPursuit.uc new file mode 100644 index 0000000..9944de1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_InPursuit.uc @@ -0,0 +1,27 @@ +class TgDevice_InPursuit extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +var bool m_bRecalculateTarget; +var TgPawn_Character m_CurrentMark; +var Actor m_PursuitTarget; +var TgDevice_LexInhand m_CachedInhand; + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice_InPursuit::execShouldBlockReload(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated function TruePostFire() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bRecalculateTarget=true + m_nLinkedDeviceTypes[0]=10828 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_IronSights.uc b/Development/Src/TgGame/Classes/TgDevice_IronSights.uc new file mode 100644 index 0000000..e2ce846 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_IronSights.uc @@ -0,0 +1,52 @@ +class TgDevice_IronSights extends TgDevice_ToggleWithLockout + native(ChampViktor) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var TgDevice_ViktorInhand m_CachedViktorInhand; +var bool m_bDelayMoveSpeedPenalty; +var bool m_bIsZoomed; +var TgDevice_Hustle m_CachedHustleDevice; + +native function bool ShouldAltFireOnTick(); // Export UTgDevice_IronSights::execShouldAltFireOnTick(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_IronSights::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_IronSights::execCanDeviceFireNow(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function bool IsPlayerToggleZoomSet() { } + +simulated function CompleteInterrupt() { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_nLinkedDeviceTypes[0]=11077 + m_nLinkedDeviceTypes[1]=10828 + m_nLinkedDeviceTypes[2]=11041 + m_nLinkedDeviceTypes[3]=11070 + m_nLinkedDeviceTypes[4]=15052 + m_nLinkedDeviceTypes[5]=11077 + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_nAimAssistPriorityWhileFiring=3 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ItemStoreBeacon.uc b/Development/Src/TgGame/Classes/TgDevice_ItemStoreBeacon.uc new file mode 100644 index 0000000..f6f9dc9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ItemStoreBeacon.uc @@ -0,0 +1,22 @@ +class TgDevice_ItemStoreBeacon extends TgDevice_TeamDevice + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function TgRespawnBeaconExit GetBeaconExit(); // Export UTgDevice_ItemStoreBeacon::execGetBeaconExit(FFrame&, void* const) + +native function bool IsBeaconEnabled(); // Export UTgDevice_ItemStoreBeacon::execIsBeaconEnabled(FFrame&, void* const) + +native function bool IsTeamBeaconActive(); // Export UTgDevice_ItemStoreBeacon::execIsTeamBeaconActive(FFrame&, void* const) + +native function bool IsTargetingModeReady(optional out TgObject.EDeviceFailType failType); // Export UTgDevice_ItemStoreBeacon::execIsTargetingModeReady(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_ItemStoreBeacon::execCanDeviceFireNow(FFrame&, void* const) + +simulated function CustomFire() { } + +defaultproperties +{ + m_fBottomlessPitCheck=48.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_KinessaInhand.uc b/Development/Src/TgGame/Classes/TgDevice_KinessaInhand.uc new file mode 100644 index 0000000..d187427 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_KinessaInhand.uc @@ -0,0 +1,39 @@ +class TgDevice_KinessaInhand extends TgDevice + native(ChampKinessa) + hidecategories(Navigation) + config(Engine); + +var () Vector m_vSniperProjectileSpawnOffset; +var ForceFeedbackWaveform m_ForceFeedbackStartFireScout; +var ForceFeedbackWaveform m_ForceFeedbackStartFireSniper; + +native function SetFireMode(int nFireModeNum, optional bool ForceSet=false); // Export UTgDevice_KinessaInhand::execSetFireMode(FFrame&, void* const) + +native function bool RequiresAmmoToFire(); // Export UTgDevice_KinessaInhand::execRequiresAmmoToFire(FFrame&, void* const) + +simulated function StartSteadyInhandEffects() { } + +simulated function EndSteadyInhandEffects() { } + +state DeviceFiring {} + +defaultproperties +{ + m_vSniperProjectileSpawnOffset=(X=30.0000000,Y=0.0000000,Z=-3.0000000) + m_ForceFeedbackStartFireScout=ForceFeedbackWaveform'LightForceFeedback' + m_ForceFeedbackStartFireSniper=ForceFeedbackWaveform'HeavyForceFeedback' + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_None + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_Sniper' + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=0.9800000,fMinAccuracy=0.8500000,fAccuracyLossPerShot=0.0400000,fAccuracyGainPerSec=0.5000000,fAccuracyGainDelay=0.2000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_KineticBurst.uc b/Development/Src/TgGame/Classes/TgDevice_KineticBurst.uc new file mode 100644 index 0000000..8873117 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_KineticBurst.uc @@ -0,0 +1,20 @@ +class TgDevice_KineticBurst extends TgDevice + native(ChampFlak) + hidecategories(Navigation) + config(Engine); + +var TgDevice_FlakInhand m_CachedInhand; + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +native function bool HasCachedInhand(); // Export UTgDevice_KineticBurst::execHasCachedInhand(FFrame&, void* const) + +simulated function FireAmmunition() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated event bool ShouldInterruptInhand() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_KingBomb.uc b/Development/Src/TgGame/Classes/TgDevice_KingBomb.uc new file mode 100644 index 0000000..257b32d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_KingBomb.uc @@ -0,0 +1,49 @@ +class TgDevice_KingBomb extends TgDevice_Charge + native(ChampBombKing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var (Lockout) float m_fEndFireZoomDurationOverride; + +native function bool ShouldInstigatorCollideWith(Actor Other); // Export UTgDevice_KingBomb::execShouldInstigatorCollideWith(FFrame&, void* const) + +simulated function float GetChargeSpeed() { } + +simulated event float GetChargeRange() { } + +simulated event bool CanBeCanceled() { } + +simulated function FireAmmunition() { } + +simulated function OutroLockoutTime() { } + +function ApplyPostExplodeKnockback() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{ + m_fEndFireZoomDurationOverride=0.1000000 + m_eChargeState=CHARGE_Turn + m_bStopOnHitType=CSHT_GodOnly + m_ChargeTimingType=CFT_PreFire + m_bUseDamageRadiusForHitProxy=false + m_bIgnoreHumanoids=false + m_bApplyHitOnTouch=false + m_vHitProxyRelativeLocation=(X=15.0000000,Y=0.0000000,Z=0.0000000) + m_vHitProxySizeOffset=(X=20.0000000,Y=10.0000000,Z=0.0000000) + m_DeviceTimerBarType=DTBT_PreHit + m_bCarryPreFireToPostFire=false + m_bForce3PViewWhileFiring=false + m_bDisableLagCompensation=true + m_bUsesOutroLockout=true + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceKingBomb' + m_fOutroLockoutTime=0.7500000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_LazarusInhand.uc b/Development/Src/TgGame/Classes/TgDevice_LazarusInhand.uc new file mode 100644 index 0000000..f65d77d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_LazarusInhand.uc @@ -0,0 +1,16 @@ +class TgDevice_LazarusInhand extends TgDevice_ChainSequence + native(ChampLazarus) + hidecategories(Navigation) + config(Engine); + +simulated event int GetChainMax() { } + +defaultproperties +{ + m_fChainResetDuration=3.0000000 + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Wide + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_fAltFireLockOutTime=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Leap.uc b/Development/Src/TgGame/Classes/TgDevice_Leap.uc new file mode 100644 index 0000000..a629d4d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Leap.uc @@ -0,0 +1,24 @@ +class TgDevice_Leap extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var bool m_bLeapInLookDirection; +var bool m_bDidJustLeap; + +native function float GetFiringPreHitDelay(optional int nMode=-1); // Export UTgDevice_Leap::execGetFiringPreHitDelay(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Leap::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated function SetLeapParams(out float scaleLateral, out float scaleVertical, out float additiveLateral, out float additiveVertical) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bLeapInLookDirection=true + m_bCarryPreFireToPostFire=false + m_bForce3PViewWhileFiring=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_LegDay.uc b/Development/Src/TgGame/Classes/TgDevice_LegDay.uc new file mode 100644 index 0000000..50a7077 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_LegDay.uc @@ -0,0 +1,5 @@ +class TgDevice_LegDay extends TgDevice + hidecategories(Navigation) + config(Engine); + +function ModifyLeapParams(out float scaleLateral, out float scaleVertical, out float additiveLateral, out float additiveVertical) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_LexInhand.uc b/Development/Src/TgGame/Classes/TgDevice_LexInhand.uc new file mode 100644 index 0000000..caf2527 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_LexInhand.uc @@ -0,0 +1,44 @@ +class TgDevice_LexInhand extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Lex m_CachedLexPawn; +var TgDevice_InPursuit m_CachedInPursuitDevice; +var TgDevice_Vengeance_Lex m_CachedVengeanceDevice; +var bool m_bShouldAutoFire; +var float m_fQueueFireTime; +var const float m_fQueueFireTimeThreshold; + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_LexInhand::execGetTargetingAim(FFrame&, void* const) + +native function AimData ValidateReceivedAim(float ClientMovementTimeStamp, AimData Aim); // Export UTgDevice_LexInhand::execValidateReceivedAim(FFrame&, void* const) + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_LexInhand::execCanFireIfLeftMouseDown(FFrame&, void* const) + +native function bool ShouldAutoFire(); // Export UTgDevice_LexInhand::execShouldAutoFire(FFrame&, void* const) + +native function DeviceAdjustDamage(const out ImpactInfo Impact, out float fDamage, int nPropertyId); // Export UTgDevice_LexInhand::execDeviceAdjustDamage(FFrame&, void* const) + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated function bool HasCachedLexPawn() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fQueueFireTime=-1.0000000 + m_fQueueFireTimeThreshold=0.2500000 + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_fMeshFOV=77.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_LexInhand' + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0800000,fMinAccuracy=0.7800000,fAccuracyLossPerShot=0.0500000,fAccuracyGainPerSec=0.6000000,fAccuracyGainDelay=0.3000000) + m_RecoilSettings=(bUsesRecoil=true,fRecoilReductionPerSec=15.0000000,fRecoilSmoothRate=40.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Lifelike.uc b/Development/Src/TgGame/Classes/TgDevice_Lifelike.uc new file mode 100644 index 0000000..b93fdae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Lifelike.uc @@ -0,0 +1,4 @@ +class TgDevice_Lifelike extends TgDevice + native(ChampYing) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Lightspeed.uc b/Development/Src/TgGame/Classes/TgDevice_Lightspeed.uc new file mode 100644 index 0000000..ac30257 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Lightspeed.uc @@ -0,0 +1,27 @@ +class TgDevice_Lightspeed extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Lightspeed::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool ShouldInterruptLift(); // Export UTgDevice_Lightspeed::execShouldInterruptLift(FFrame&, void* const) + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice_Lightspeed::execShouldBlockReload(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated function CancelSafetyTimer() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_Lockdown.uc b/Development/Src/TgGame/Classes/TgDevice_Lockdown.uc new file mode 100644 index 0000000..a24e3d5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Lockdown.uc @@ -0,0 +1,9 @@ +class TgDevice_Lockdown extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_fBottomlessPitCheck=70.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_LongReach.uc b/Development/Src/TgGame/Classes/TgDevice_LongReach.uc new file mode 100644 index 0000000..f31c344 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_LongReach.uc @@ -0,0 +1,50 @@ +class TgDevice_LongReach extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +struct NuggetPullVals { + var Actor nugget; + var float fPullTime; + var float fCheckTime; + structdefaultproperties {} +}; + +var float m_fMinPullSpeed; +var float m_fMaxPullSpeed; +var float m_fTimeToMaxPullSpeed; +var float m_fPullSpeedInterpExp; +var TgPawn m_CachedTgP; +var array s_TouchingNuggets; +var float m_fBlockedByBlockersRecheckTime; +var TgCollisionProxy_Cylinder s_CollisionProxy; +var bool s_bIsAuraActive; +var bool m_bAutoActivateAura; + +native function bool IsNuggetValid(Actor Target); // Export UTgDevice_LongReach::execIsNuggetValid(FFrame&, void* const) + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +function ClearAllTouched() { } + +simulated function DeviceShutDown(optional bool bDeactiveMode, optional bool bResetCooldowns) { } + +simulated event Destroyed() { } + +event SpawnCollisionProxy() { } + +event EnableAura() { } + +event DisableAura() { } + +defaultproperties +{ + m_fMinPullSpeed=256.0000000 + m_fMaxPullSpeed=1024.0000000 + m_fTimeToMaxPullSpeed=1.0000000 + m_fPullSpeedInterpExp=2.0000000 + m_fBlockedByBlockersRecheckTime=0.2500000 + m_bAutoActivateAura=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_LongbowInhand.uc b/Development/Src/TgGame/Classes/TgDevice_LongbowInhand.uc new file mode 100644 index 0000000..301a3b1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_LongbowInhand.uc @@ -0,0 +1,72 @@ +class TgDevice_LongbowInhand extends TgDevice + native(ChampLongbow) + hidecategories(Navigation) + config(Engine); + +var TgPawn_Longbow m_CachedLongbow; +var float s_fLastFireHoldPct; +var float m_fFireReleasePercent; +var float m_fImpalerReticleAnimationTimer; +var (Reticle) float m_fReticleReleaseAnimationDuration; +var (Reticle) float m_fImpalerReticleFadeInDuration; +var (Reticle) float m_fImpalerReticleFadeOutDuration; +var (Reticle) float m_fImpalerReticleGrowth; +var () Vector m_vProjectileSpawnOffsetPlanted; + +native function bool ShouldAutoFire(); // Export UTgDevice_LongbowInhand::execShouldAutoFire(FFrame&, void* const) + +native function bool HasCachedLongbow(); // Export UTgDevice_LongbowInhand::execHasCachedLongbow(FFrame&, void* const) + +simulated event Vector GetProjectileSpawnOffset() { } + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_LongbowInhand::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated function bool ReleaseHoldOnRightMouseReleased() { } + +simulated event bool CanBeCanceled() { } + +simulated function Projectile ProjectileFire() { } + +simulated function int GetProjectileIDOverride(int ProjectileIndex) { } + +simulated function SetFireHoldAmt(float fFireHoldTime) { } + +simulated function AdjustSpawnedProjectile(out TgProj_Simulated SpawnedProjectile) { } + +simulated function ReleaseFireHoldInternal() { } + +simulated function bool StartFireHold() { } + +simulated event bool CanBeInterrupted() { } + +defaultproperties +{ + m_fReticleReleaseAnimationDuration=0.1500000 + m_fImpalerReticleFadeInDuration=0.1000000 + m_fImpalerReticleFadeOutDuration=0.1000000 + m_fImpalerReticleGrowth=10.0000000 + m_vProjectileSpawnOffsetPlanted=(X=15.0000000,Y=5.0000000,Z=-45.0000000) + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_ShaLin + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false + m_bStartFireShouldEnterCombat=false + m_bAimThroughReticule=true + m_bNoReticleBloom=true + m_bAltFireEnabled=true + m_bIsFireHoldDevice=true + m_vMeshViewOffset=(X=12.0000000,Y=1.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=15.0000000,Y=0.0000000,Z=-5.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_LongbowInhand' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_ForceFeedbackStopHold=ForceFeedbackWaveform'HeavyForceFeedback' + m_ForceFeedbackStopReload=ForceFeedbackWaveform'StandardReload' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_LongbowPlanted.uc b/Development/Src/TgGame/Classes/TgDevice_LongbowPlanted.uc new file mode 100644 index 0000000..8e845ff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_LongbowPlanted.uc @@ -0,0 +1,34 @@ +class TgDevice_LongbowPlanted extends TgDevice_Stim + hidecategories(Navigation) + config(Engine); + +var TgPawn_Longbow m_CachedLongbow; +var TgDevice_LongbowInhand m_CachedInhand; + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function TransitionOut() { } + +simulated function bool HasCachedLongbow() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated function bool RequireMovementForAimAssist() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_nLinkedDeviceTypes[0]=10828 + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MakoaInhand.uc b/Development/Src/TgGame/Classes/TgDevice_MakoaInhand.uc new file mode 100644 index 0000000..d8bae5f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MakoaInhand.uc @@ -0,0 +1,32 @@ +class TgDevice_MakoaInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=10.0000000,Z=-8.0000000) + m_fAltFireLockOutTime=0.0000000 + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MalDambaInhand.uc b/Development/Src/TgGame/Classes/TgDevice_MalDambaInhand.uc new file mode 100644 index 0000000..efa9297 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MalDambaInhand.uc @@ -0,0 +1,31 @@ +class TgDevice_MalDambaInhand extends TgDevice + native(ChampMalDamba) + hidecategories(Navigation) + config(Engine); + +simulated function PreReloadTimer() { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=45.0000000,Y=12.0000000,Z=0.0000000) + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'BasicForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MarkAndRecall.uc b/Development/Src/TgGame/Classes/TgDevice_MarkAndRecall.uc new file mode 100644 index 0000000..e91d51b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MarkAndRecall.uc @@ -0,0 +1,9 @@ +class TgDevice_MarkAndRecall extends TgDevice + hidecategories(Navigation) + config(Engine); + +var Vector m_markedLocation; +var Rotator m_markedRotation; +var bool m_bMarked; + +simulated function FireAmmunition() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_MarkShot.uc b/Development/Src/TgGame/Classes/TgDevice_MarkShot.uc new file mode 100644 index 0000000..a9005ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MarkShot.uc @@ -0,0 +1,14 @@ +class TgDevice_MarkShot extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +var bool m_bRecalculateMark; +var TgPawn_Character m_CurrentMark; + +simulated event StartFire(byte FireModeNum) { } + +defaultproperties +{ + m_bRecalculateMark=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MegaTurret.uc b/Development/Src/TgGame/Classes/TgDevice_MegaTurret.uc new file mode 100644 index 0000000..2184316 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MegaTurret.uc @@ -0,0 +1,4 @@ +class TgDevice_MegaTurret extends TgDevice_TurretMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Meteor.uc b/Development/Src/TgGame/Classes/TgDevice_Meteor.uc new file mode 100644 index 0000000..aa16869 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Meteor.uc @@ -0,0 +1,18 @@ +class TgDevice_Meteor extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function TgPawn_LanePusher GetAnActiveLanePusher(); // Export UTgDevice_Meteor::execGetAnActiveLanePusher(FFrame&, void* const) + +native function TgChaosCapturePoint GetAnActiveCapturePoint(); // Export UTgDevice_Meteor::execGetAnActiveCapturePoint(FFrame&, void* const) + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Meteor::execGetTargetingAim(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Meteor::execCanDeviceFireNow(FFrame&, void* const) + +defaultproperties +{ + r_OverrideUsesTargetingModeAsFalse=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Midnight.uc b/Development/Src/TgGame/Classes/TgDevice_Midnight.uc new file mode 100644 index 0000000..28350cf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Midnight.uc @@ -0,0 +1,6 @@ +class TgDevice_Midnight extends TgDevice + native(ChampBlades) + hidecategories(Navigation) + config(Engine); + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_MinigunSpinUp.uc b/Development/Src/TgGame/Classes/TgDevice_MinigunSpinUp.uc new file mode 100644 index 0000000..fb85f49 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MinigunSpinUp.uc @@ -0,0 +1,26 @@ +class TgDevice_MinigunSpinUp extends TgDevice + hidecategories(Navigation) + config(Engine); + +var TgDevice_RuckusInhand m_cachedRuckusInhand; + +simulated function bool IsToggleDevice() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function StartSpinningInhand() { } + +simulated function StopSpinningInhand() { } + +simulated function CacheRuckusInhand() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Molotov.uc b/Development/Src/TgGame/Classes/TgDevice_Molotov.uc new file mode 100644 index 0000000..d12461b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Molotov.uc @@ -0,0 +1,8 @@ +class TgDevice_Molotov extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=30.0000000,Y=-9.0000000,Z=-10.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MonolithTotem.uc b/Development/Src/TgGame/Classes/TgDevice_MonolithTotem.uc new file mode 100644 index 0000000..9066fbf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MonolithTotem.uc @@ -0,0 +1,4 @@ +class TgDevice_MonolithTotem extends TgDevice_TotemMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Mount.uc b/Development/Src/TgGame/Classes/TgDevice_Mount.uc old mode 100755 new mode 100644 index 56634d7..ea42cab --- a/Development/Src/TgGame/Classes/TgDevice_Mount.uc +++ b/Development/Src/TgGame/Classes/TgDevice_Mount.uc @@ -1,18 +1,93 @@ -class TgDevice_Mount extends TgDevice_Toggle - native(Devices) - hidecategories(Navigation); - -function SetAllowMountServerTimer() -{ - //return; -} - -function AllowMountServer() -{ - //return; -} - -reliable client simulated function ClientStartMount() -{ - //return; -} \ No newline at end of file +class TgDevice_Mount extends TgDevice_Toggle + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +const TG_DOT_GUARD_MOUNTING = false; + +var bool m_bForceFireDueToRespawn; +var bool m_bPostureChange; +var bool m_bDismountProtection; +var () float m_fZoomDurationOverride; +var int m_nAutoReloadTransactionID; +var TgDevice m_CachedInhand; +var float m_fAutoMountDismountProtectionDuration; + +native function float GetFiringPreHitDelay(optional int nMode=-1); // Export UTgDevice_Mount::execGetFiringPreHitDelay(FFrame&, void* const) + +native function bool IsDeviceFiringLockedForUI(); // Export UTgDevice_Mount::execIsDeviceFiringLockedForUI(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Mount::execMustBeOnGroundToFire(FFrame&, void* const) + +native function bool RequiresAmmoToFire(); // Export UTgDevice_Mount::execRequiresAmmoToFire(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Mount::execCanDeviceFireNow(FFrame&, void* const) + +native function bool IsAnyDeviceOverridingDismount(int DamageAmt); // Export UTgDevice_Mount::execIsAnyDeviceOverridingDismount(FFrame&, void* const) + +simulated function OnOwnerRespawn() { } + +function SetAllowMountServerTimer() { } + +function AllowMountServer() { } + +reliable client simulated function ClientStartMount() { } + +event ServerForceMount() { } + +function DismountOnDamage(int DamageAmt) { } + +simulated function EndDismountProtection() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated event bool CanBeInterrupted() { } + +simulated function bool IsItemShopVolumeBlockingDismounting() { } + +simulated event bool CanFiringBeCanceledByRightMouse() { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated function FireAmmunition() { } + +simulated function OnStartFireRequestSent() { } + +simulated function OnInterruptEvent() { } + +simulated function bool IsOwnerOnGround() { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated function AutoDismount() { } + +simulated function OutroLockoutTime() { } + +simulated function SetMountedCollision(bool IsActive) { } + +simulated function EndEnteringMount(optional bool bEndingFireLoop) { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{ + m_bPostureChange=true + m_fZoomDurationOverride=0.1000000 + m_fAutoMountDismountProtectionDuration=2.0000000 + m_bAlwaysStartCooldown=true + m_bMustBeOnGroundToFire=true + m_bUsesOutroLockout=true + m_nLinkedDeviceTypes[0]=10828 + m_fOutroLockoutTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MountMorph.uc b/Development/Src/TgGame/Classes/TgDevice_MountMorph.uc new file mode 100644 index 0000000..2e5430d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MountMorph.uc @@ -0,0 +1,10 @@ +class TgDevice_MountMorph extends TgDevice_Mount + hidecategories(Navigation) + config(Engine); + +state DeviceFiring {} + +defaultproperties +{ + m_bPostureChange=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_MountNoHorse.uc b/Development/Src/TgGame/Classes/TgDevice_MountNoHorse.uc new file mode 100644 index 0000000..16c9947 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_MountNoHorse.uc @@ -0,0 +1,8 @@ +class TgDevice_MountNoHorse extends TgDevice_Mount + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bPostureChange=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_NetShot.uc b/Development/Src/TgGame/Classes/TgDevice_NetShot.uc new file mode 100644 index 0000000..7fcbd77 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_NetShot.uc @@ -0,0 +1,9 @@ +class TgDevice_NetShot extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=0.0000000,Y=5.0000000,Z=0.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_NetherStep.uc b/Development/Src/TgGame/Classes/TgDevice_NetherStep.uc new file mode 100644 index 0000000..bdadf1c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_NetherStep.uc @@ -0,0 +1,34 @@ +class TgDevice_NetherStep extends TgDevice_DoubleCharge + native(ChampAndroxus) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_NetherStep::execGetTargetingAim(FFrame&, void* const) + +native function bool ShouldInterruptStealth(); // Export UTgDevice_NetherStep::execShouldInterruptStealth(FFrame&, void* const) + +native function SetFireMode(int nFireModeNum, optional bool ForceSet=false); // Export UTgDevice_NetherStep::execSetFireMode(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function int GetTotalNumberOfShots() { } + +simulated event bool CanFiringBeCanceledByLeftMouse() { } + +simulated event bool CanFiringBeCanceledByRightMouse() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +state DeviceFiring {} + +defaultproperties +{ + m_nTotalNumShots=3 + m_bSetAsTargetingDeviceForMultiFire=false + m_bStopOnHitType=CSHT_GodOnly + m_bUsePhysFlying=true + m_DeviceTimerBarType=DTBT_RefireTime + s_bIgnoreReceivedAim=true + m_bForce3PViewWhileFiring=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_NineLives.uc b/Development/Src/TgGame/Classes/TgDevice_NineLives.uc new file mode 100644 index 0000000..42198c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_NineLives.uc @@ -0,0 +1,6 @@ +class TgDevice_NineLives extends TgDevice + native(ChampBlades) + hidecategories(Navigation) + config(Engine); + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_OppressorMine.uc b/Development/Src/TgGame/Classes/TgDevice_OppressorMine.uc new file mode 100644 index 0000000..69ea8ba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OppressorMine.uc @@ -0,0 +1,20 @@ +class TgDevice_OppressorMine extends TgDevice + native(ChampKinessa) + hidecategories(Navigation) + config(Engine); + +var array m_NewTargetSFXRecentTargets; +var array m_NewTargetSFXTargetTime; +var float m_fMinNewTargetSFXDelay; + +reliable client simulated function ClientPlayOppressorMineNewTargetSound(Actor Target) { } + +event PlayOppressorMineNewTargetSound(Actor Target) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +defaultproperties +{ + m_fMinNewTargetSFXDelay=3.0000000 + m_vProjectileSpawnOffset=(X=32.0000000,Y=8.0000000,Z=0.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_OppressorMineMod.uc b/Development/Src/TgGame/Classes/TgDevice_OppressorMineMod.uc new file mode 100644 index 0000000..5b64449 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OppressorMineMod.uc @@ -0,0 +1,12 @@ +class TgDevice_OppressorMineMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var array m_MinesInRage; + +native function ApplyEffect(TgDeploy_OppressorMine mine, Actor Target); // Export UTgDevice_OppressorMineMod::execApplyEffect(FFrame&, void* const) + +native function RemoveEffect(TgDeploy_OppressorMine mine, Actor Target); // Export UTgDevice_OppressorMineMod::execRemoveEffect(FFrame&, void* const) + +native function CheckOwnerEffect(TgDeploy_OppressorMine mine); // Export UTgDevice_OppressorMineMod::execCheckOwnerEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_OracleInhand.uc b/Development/Src/TgGame/Classes/TgDevice_OracleInhand.uc new file mode 100644 index 0000000..b3089b2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OracleInhand.uc @@ -0,0 +1,20 @@ +class TgDevice_OracleInhand extends TgDevice_ToggleInhand + native(ChampOracle) + hidecategories(Navigation) + config(Engine); + +simulated event DeliverHit(ImpactInfo Impact) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=25.0000000,Y=12.0000000,Z=-6.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_OracleInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Outreach.uc b/Development/Src/TgGame/Classes/TgDevice_Outreach.uc new file mode 100644 index 0000000..6483573 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Outreach.uc @@ -0,0 +1,4 @@ +class TgDevice_Outreach extends TgDevice_TotemMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_OverGrowth.uc b/Development/Src/TgGame/Classes/TgDevice_OverGrowth.uc new file mode 100644 index 0000000..d3505b0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OverGrowth.uc @@ -0,0 +1,10 @@ +class TgDevice_OverGrowth extends TgDevice + native(ChampGrover) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_VineDevice; + +simulated event StartFire(byte FireModeNum) { } + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_OverTheMoon.uc b/Development/Src/TgGame/Classes/TgDevice_OverTheMoon.uc new file mode 100644 index 0000000..3467bfc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OverTheMoon.uc @@ -0,0 +1,3 @@ +class TgDevice_OverTheMoon extends TgDevice + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_OwlFlare.uc b/Development/Src/TgGame/Classes/TgDevice_OwlFlare.uc new file mode 100644 index 0000000..032f200 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OwlFlare.uc @@ -0,0 +1,8 @@ +class TgDevice_OwlFlare extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=20.0000000,Y=12.0000000,Z=-8.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_OwlFlashbang.uc b/Development/Src/TgGame/Classes/TgDevice_OwlFlashbang.uc new file mode 100644 index 0000000..cd160b3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OwlFlashbang.uc @@ -0,0 +1,8 @@ +class TgDevice_OwlFlashbang extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=29.0000000,Y=-3.0000000,Z=-3.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_OwlInhand.uc b/Development/Src/TgGame/Classes/TgDevice_OwlInhand.uc new file mode 100644 index 0000000..c4250b3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OwlInhand.uc @@ -0,0 +1,48 @@ +class TgDevice_OwlInhand extends TgDevice + native(ChampOwl) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_CachedSwapDevice; +var TgDevice m_CachedScopeDevice; +var bool bUsePerfectAccuracy; + +native function float GetAccuracy(optional int nMode=-1); // Export UTgDevice_OwlInhand::execGetAccuracy(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function ShowReticle(bool bShow) { } + +simulated function ApplyScopeEffects() { } + +simulated function RemoveScopeEffects() { } + +simulated function RemoveAccuracyDelayed() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Precise + m_bPostFireShouldInterruptStealth=false + m_bReloadingShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_OwlInhand' + m_nLinkedDeviceTypes[0]=11041 + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesFriction=none + m_AimAssistKeyframesTrackingAccHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz=none + m_AimAssistKeyframesTrackingAccVert=none + m_AimAssistKeyframesTrackingAngleVert=none +} diff --git a/Development/Src/TgGame/Classes/TgDevice_OwlSidearm.uc b/Development/Src/TgGame/Classes/TgDevice_OwlSidearm.uc new file mode 100644 index 0000000..fcf4dc0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OwlSidearm.uc @@ -0,0 +1,35 @@ +class TgDevice_OwlSidearm extends TgDevice + native(ChampOwl) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var float m_fQueueFireTime; +var const float m_fQueueFireTimeThreshold; + +native function EnterTargetingMode(); // Export UTgDevice_OwlSidearm::execEnterTargetingMode(FFrame&, void* const) + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_OwlSidearm::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated function StopFire(byte FireModeNum) { } + +simulated function bool CanEnterCombat() { } + +simulated function float GetMinAccuracy() { } + +simulated function float GetRecoilMultiplier() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fQueueFireTime=-1.0000000 + m_fQueueFireTimeThreshold=0.2500000 + m_bPostFireShouldInterruptStealth=false + m_bReloadingShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0000000,fMinAccuracy=0.7500000,fAccuracyLossPerShot=0.0500000,fAccuracyGainPerSec=0.5000000,fAccuracyGainDelay=0.1000000) + m_RecoilSettings=(bUsesRecoil=true,fRecoilReductionPerSec=10.0000000,fRecoilCenterDelay=0.1000000,fRecoilSmoothRate=10.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_OwlStealth.uc b/Development/Src/TgGame/Classes/TgDevice_OwlStealth.uc new file mode 100644 index 0000000..1cf3d07 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_OwlStealth.uc @@ -0,0 +1,54 @@ +class TgDevice_OwlStealth extends TgDevice + native(ChampOwl) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Owl m_CachedOwl; +var TgDevice_Roost m_RoostCard; +var bool c_bAlreadyConsumedStealthJuice; + +native function bool ShouldBlockReload(TgDevice Dev, bool bIsAutoReload); // Export UTgDevice_OwlStealth::execShouldBlockReload(FFrame&, void* const) + +native function float GetStealthJuicePerSec(); // Export UTgDevice_OwlStealth::execGetStealthJuicePerSec(FFrame&, void* const) + +simulated event DeviceConsumePowerPool(byte FireModeNum) { } + +simulated event bool CanDeviceStartFiringNow(byte FireModeNum, AimData Aim, bool bDebugRelevant, optional out TgObject.EDeviceFailType failType) { } + +simulated function ConsumeStealthJuiceOnFire() { } + +reliable client simulated function ClientConsumeStealthJuiceOnFire(int nAmtModified) { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldCancelStealth() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event OnLinkDevice(TgPawn TgP) { } + +simulated event OnUnlinkDevice(TgPawn TgP) { } + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_nLinkedDeviceTypes[0]=15189 + m_nLinkedDeviceTypes[1]=15188 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_PassiveAura.uc b/Development/Src/TgGame/Classes/TgDevice_PassiveAura.uc new file mode 100644 index 0000000..6bde0df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PassiveAura.uc @@ -0,0 +1,6 @@ +class TgDevice_PassiveAura extends TgDevice_Aura + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function bool ShouldAuraBeActive(); // Export UTgDevice_PassiveAura::execShouldAuraBeActive(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_Pet.uc b/Development/Src/TgGame/Classes/TgDevice_Pet.uc new file mode 100644 index 0000000..8e6ac83 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Pet.uc @@ -0,0 +1,4 @@ +class TgDevice_Pet extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_PipInhand.uc b/Development/Src/TgGame/Classes/TgDevice_PipInhand.uc new file mode 100644 index 0000000..e8f5c8b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PipInhand.uc @@ -0,0 +1,32 @@ +class TgDevice_PipInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated function bool AltFireDetonate() { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=10.0000000,Y=0.0000000,Z=-3.5000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=7.0000000,Z=-15.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_PotionLauncher' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DevicePotionLauncher' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'HeavyForceFeedback' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_PoisonBolts.uc b/Development/Src/TgGame/Classes/TgDevice_PoisonBolts.uc new file mode 100644 index 0000000..b0faa56 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PoisonBolts.uc @@ -0,0 +1,23 @@ +class TgDevice_PoisonBolts extends TgDevice + native(ChampSkye) + hidecategories(Navigation) + config(Engine); + +var TgDevice_SkyeInhand m_CachedInhand; + +native function bool CanReload(optional bool bIsAutoReload=false); // Export UTgDevice_PoisonBolts::execCanReload(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +defaultproperties +{ + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bUsesBurstFire=true + m_vMeshViewOffset=(X=15.0000000,Y=0.0000000,Z=-4.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=10.0000000,Y=8.0000000,Z=-7.0000000) + m_nBurstTotalShots=3 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_PoppyBomb.uc b/Development/Src/TgGame/Classes/TgDevice_PoppyBomb.uc new file mode 100644 index 0000000..236f7e9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PoppyBomb.uc @@ -0,0 +1,31 @@ +class TgDevice_PoppyBomb extends TgDevice + native(ChampBombKing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool r_bHasActiveProjectile; + +replication { + if(((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) && !bNetInitial) r_bHasActiveProjectile; +} + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_PoppyBomb::execCanDeviceFireNow(FFrame&, void* const) + +simulated function UpdateActiveProjectiles(optional TgProjectile Proj) { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated event bool HasActivePoppyBomb() { } + +simulated function DetonatePoppyBomb() { } + +reliable server function ServerDetonatePoppyBomb() { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function PlayPoppyDetonateAnim() { } + +simulated event bool Use() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_PortalMod.uc b/Development/Src/TgGame/Classes/TgDevice_PortalMod.uc new file mode 100644 index 0000000..560aa4f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PortalMod.uc @@ -0,0 +1,6 @@ +class TgDevice_PortalMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function ApplyEffect(); // Export UTgDevice_PortalMod::execApplyEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_Pounce.uc b/Development/Src/TgGame/Classes/TgDevice_Pounce.uc new file mode 100644 index 0000000..dc87ab9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Pounce.uc @@ -0,0 +1,37 @@ +class TgDevice_Pounce extends TgDevice_Charge + native(ChampBlades) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Blades m_CachedBlades; +var bool m_bHasBounced; + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Pounce::execGetTargetingAim(FFrame&, void* const) + +simulated function bool HasCachedBlades() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool IsPostHitLockOutActive() { } + +simulated function PostHitLockOut() { } + +reliable server function ServerBounceOff(Actor Other) { } + +reliable client simulated function ClientBounceOff() { } + +simulated function BounceOff() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bStopOnHitType=CSHT_GodOnly + m_ChargeTimingType=CFT_PreFire + m_bUsePhysFlying=true + m_bIgnoreHumanoids=false + m_vHitProxySizeOffset=(X=0.0000000,Y=12.0000000,Z=0.0000000) + m_DeviceEmoteAt=DEA_Custom + m_bForce3PViewWhileFiring=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Presence.uc b/Development/Src/TgGame/Classes/TgDevice_Presence.uc new file mode 100644 index 0000000..d24e12a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Presence.uc @@ -0,0 +1,3 @@ +class TgDevice_Presence extends TgDevice + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_PrincessF.uc b/Development/Src/TgGame/Classes/TgDevice_PrincessF.uc new file mode 100644 index 0000000..a93a5fd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PrincessF.uc @@ -0,0 +1,19 @@ +class TgDevice_PrincessF extends TgDevice_Charge + hidecategories(Navigation) + config(Engine); + +var TgDevice m_cachedSupportDevice; +var (dash) int m_nEyeheightAdjustmentWhileSliding; +var float m_fEyeHeightSmoothFactor; + +simulated function bool HasCachedSupportDevice() { } + +simulated function Rotator GetChargeDirection() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fEyeHeightSmoothFactor=4.0000000 + m_bCanLeftClickCancel=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_PrincessFSupport.uc b/Development/Src/TgGame/Classes/TgDevice_PrincessFSupport.uc new file mode 100644 index 0000000..b1057b4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PrincessFSupport.uc @@ -0,0 +1,23 @@ +class TgDevice_PrincessFSupport extends TgDevice + native(ChampPrincess) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Princess m_CachedLian; + +native function bool CanFiringBeLocked(); // Export UTgDevice_PrincessFSupport::execCanFiringBeLocked(FFrame&, void* const) + +native function bool UsesCachedAim(); // Export UTgDevice_PrincessFSupport::execUsesCachedAim(FFrame&, void* const) + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_PrincessFSupport::execGetTargetingAim(FFrame&, void* const) + +simulated function bool HasCachedLian() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +defaultproperties +{ + m_bDisableLagCompensation=true + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_PrincessInhand.uc b/Development/Src/TgGame/Classes/TgDevice_PrincessInhand.uc new file mode 100644 index 0000000..332500b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PrincessInhand.uc @@ -0,0 +1,13 @@ +class TgDevice_PrincessInhand extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_fMeshFOV=77.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_LianInhand' + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_RecoilSettings=(bUsesRecoil=true,fRecoilReductionPerSec=8.0000000,fRecoilCenterDelay=0.6000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_PrincessRMB.uc b/Development/Src/TgGame/Classes/TgDevice_PrincessRMB.uc new file mode 100644 index 0000000..88a79e2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_PrincessRMB.uc @@ -0,0 +1,10 @@ +class TgDevice_PrincessRMB extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +defaultproperties +{ + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Projector.uc b/Development/Src/TgGame/Classes/TgDevice_Projector.uc new file mode 100644 index 0000000..46cb505 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Projector.uc @@ -0,0 +1,8 @@ +class TgDevice_Projector extends TgDevice_EmitterMod + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function ApplyTouchEffect(Actor Target, TgDevice_Emitter Emitter); // Export UTgDevice_Projector::execApplyTouchEffect(FFrame&, void* const) + +native function RemoveTouchEffect(Actor Target, TgDevice_Emitter Emitter); // Export UTgDevice_Projector::execRemoveTouchEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_Protection.uc b/Development/Src/TgGame/Classes/TgDevice_Protection.uc new file mode 100644 index 0000000..30fd614 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Protection.uc @@ -0,0 +1,15 @@ +class TgDevice_Protection extends TgDevice + native(ChampGauntlet) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Gauntlet m_Gauntlet; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Protection::execCanDeviceFireNow(FFrame&, void* const) + +simulated event DeliverQueuedPendingHits() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Prowl.uc b/Development/Src/TgGame/Classes/TgDevice_Prowl.uc new file mode 100644 index 0000000..60aa66b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Prowl.uc @@ -0,0 +1,32 @@ +class TgDevice_Prowl extends TgDevice_Stim + native(ChampBlades) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +native function bool ShouldInterruptLift(); // Export UTgDevice_Prowl::execShouldInterruptLift(FFrame&, void* const) + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Prowl::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated delegate InterruptFiringDelegate(); + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=16218 + m_nLinkedDeviceIDs[1]=16229 + m_nLinkedDeviceIDs[2]=16235 + m_nLinkedDeviceIDs[3]=16241 + m_nLinkedDeviceIDs[4]=16306 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Pursuit.uc b/Development/Src/TgGame/Classes/TgDevice_Pursuit.uc new file mode 100644 index 0000000..53d5312 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Pursuit.uc @@ -0,0 +1,6 @@ +class TgDevice_Pursuit extends TgDevice_DecoyMod + native(Devices) + hidecategories(Navigation) + config(Engine); + +var float m_fShatterBaseSpeed; diff --git a/Development/Src/TgGame/Classes/TgDevice_QuadWield.uc b/Development/Src/TgGame/Classes/TgDevice_QuadWield.uc new file mode 100644 index 0000000..0c988f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_QuadWield.uc @@ -0,0 +1,18 @@ +class TgDevice_QuadWield extends TgDevice_DualWield + hidecategories(Navigation) + config(Engine); + +var () Vector m_vProjectileSpawnOffset3; +var () Vector m_vProjectileSpawnOffset4; +var int m_nWeaponFireNumber; + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated function FireAmmunition() { } + +defaultproperties +{ + m_vProjectileSpawnOffset3=(X=30.0000000,Y=20.0000000,Z=10.0000000) + m_vProjectileSpawnOffset4=(X=30.0000000,Y=-20.0000000,Z=-10.0000000) + m_vProjectileSpawnOffset2=(X=30.0000000,Y=-20.0000000,Z=10.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Rattle.uc b/Development/Src/TgGame/Classes/TgDevice_Rattle.uc new file mode 100644 index 0000000..115cbc2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Rattle.uc @@ -0,0 +1,6 @@ +class TgDevice_Rattle extends TgDevice_ShieldMod + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function ApplyTouchEffect(Actor Target); // Export UTgDevice_Rattle::execApplyTouchEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_ReachOut.uc b/Development/Src/TgGame/Classes/TgDevice_ReachOut.uc new file mode 100644 index 0000000..43c0347 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ReachOut.uc @@ -0,0 +1,11 @@ +class TgDevice_ReachOut extends TgDevice_LongReach + native(ChampFernando) + hidecategories(Navigation) + config(Engine); + +native function bool IsNuggetValid(Actor Target); // Export UTgDevice_ReachOut::execIsNuggetValid(FFrame&, void* const) + +defaultproperties +{ + m_bAutoActivateAura=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Recharge.uc b/Development/Src/TgGame/Classes/TgDevice_Recharge.uc new file mode 100644 index 0000000..7491e74 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Recharge.uc @@ -0,0 +1,33 @@ +class TgDevice_Recharge extends TgDevice + native(ChampGauntlet) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Gauntlet m_CachedGauntletPawn; + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +simulated event bool CanBeCanceled() { } + +simulated function CancelSafetyTimer() { } + +function StartCooldownTimer() { } + +reliable client simulated function ClientStartCooldownTimer() { } + +simulated function CooldownTimer() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +simulated function UpdateHitTargetInfo(Actor HitActor, Vector HitLocation) { } + +simulated function bool HasCachedGauntlet() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_Recovery.uc b/Development/Src/TgGame/Classes/TgDevice_Recovery.uc new file mode 100644 index 0000000..20a7fc0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Recovery.uc @@ -0,0 +1,5 @@ +class TgDevice_Recovery extends TgDevice_Stim + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_RendSoul.uc b/Development/Src/TgGame/Classes/TgDevice_RendSoul.uc new file mode 100644 index 0000000..761b0c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RendSoul.uc @@ -0,0 +1,13 @@ +class TgDevice_RendSoul extends TgDevice + native(ChampOracle) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool m_bApplyCooldown; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_RendSoul::execCanDeviceFireNow(FFrame&, void* const) + +simulated event bool ShouldCooldownAfterFire() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_RepulsorField.uc b/Development/Src/TgGame/Classes/TgDevice_RepulsorField.uc new file mode 100644 index 0000000..8057b21 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RepulsorField.uc @@ -0,0 +1,14 @@ +class TgDevice_RepulsorField extends TgDevice_ActiveAura + native(ChampRuckus) + hidecategories(Navigation) + config(Engine); + +var float r_fAtTheReadyRadius; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fAtTheReadyRadius; +} + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldInterruptReloadOnFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Requip.uc b/Development/Src/TgGame/Classes/TgDevice_Requip.uc new file mode 100644 index 0000000..a863d9c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Requip.uc @@ -0,0 +1,8 @@ +class TgDevice_Requip extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_InhandWeapon; + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_RespawnBeacon.uc b/Development/Src/TgGame/Classes/TgDevice_RespawnBeacon.uc new file mode 100644 index 0000000..ac68c61 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RespawnBeacon.uc @@ -0,0 +1,36 @@ +class TgDevice_RespawnBeacon extends TgDevice + hidecategories(Navigation) + config(Engine) + dependson(TgClientSettings); + +var TgRespawnBeaconExit s_BeaconExit; +var repnotify bool r_bHasBeacon; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasBeacon; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool InterceptLeftMousePressed(TgPlayerController TgController) { } + +simulated function bool InterceptLeftMouseReleased(TgPlayerController TgController) { } + +simulated function bool ShouldInterruptMount() { } + +simulated function FireAmmunition() { } + +function HandlePickUpAndDrop(bool bPickedUp) { } + +simulated function bool ShouldSwitchBackToBasicAttackTargeting(TgClientSettings.ECastMode CastMode) { } + +simulated function DeviceShutDown(optional bool bDeactiveMode, optional bool bResetCooldowns) { } + +defaultproperties +{ + r_OverrideUsesTargetingModeAsFalse=true + m_bDisableLagCompensation=true + m_fBottomlessPitCheck=48.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Restock.uc b/Development/Src/TgGame/Classes/TgDevice_Restock.uc new file mode 100644 index 0000000..9d35919 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Restock.uc @@ -0,0 +1,8 @@ +class TgDevice_Restock extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_InhandWeapon; + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_RestoreSoul.uc b/Development/Src/TgGame/Classes/TgDevice_RestoreSoul.uc new file mode 100644 index 0000000..d377ea7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RestoreSoul.uc @@ -0,0 +1,40 @@ +class TgDevice_RestoreSoul extends TgDevice + native(ChampOracle) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Oracle m_CachedOraclePawn; +var ImpactInfo m_CachedImpact; +var bool m_bApplyCooldown; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_RestoreSoul::execCanDeviceFireNow(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated function bool HasCachedOracle() { } + +simulated event DeliverQueuedPendingHits() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated function DelayedDeliverHit() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +function OnInstantShotRejected(ImpactToValidate RejectedPrimaryImpact) { } + +simulated function UpdateHitTargetInfo(Actor HitActor, Vector HitLocation) { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Reversal.uc b/Development/Src/TgGame/Classes/TgDevice_Reversal.uc new file mode 100644 index 0000000..b6b2bc4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Reversal.uc @@ -0,0 +1,36 @@ +class TgDevice_Reversal extends TgDevice + native(ChampAndroxus) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var float m_fAccumulatedDamage; +var float m_fVengeanceDamage; + +native function GetCachedAim(out AimData Aim); // Export UTgDevice_Reversal::execGetCachedAim(FFrame&, void* const) + +native function TgObject.DeviceTargetMode GetTargetingMode(); // Export UTgDevice_Reversal::execGetTargetingMode(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Reversal::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function TgDeviceFire GetFireModeForFiringProjectile() { } + +simulated event float GetCurrentDamageAmount() { } + +simulated function Projectile ProjectileFire() { } + +simulated event bool CanBeInterrupted() { } + +function InterruptFiringOnServerInternal(optional bool bSendClientInterrupt=true) { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bAimThroughReticule=true + m_bForce3PViewWhileFiring=true + m_fDeployZOffset=-30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ReversalMod.uc b/Development/Src/TgGame/Classes/TgDevice_ReversalMod.uc new file mode 100644 index 0000000..960d03d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ReversalMod.uc @@ -0,0 +1,4 @@ +class TgDevice_ReversalMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Rewind.uc b/Development/Src/TgGame/Classes/TgDevice_Rewind.uc new file mode 100644 index 0000000..fa1b98c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Rewind.uc @@ -0,0 +1,14 @@ +class TgDevice_Rewind extends TgDevice + hidecategories(Navigation) + config(Engine); + +var TgDevice_Illusion m_CachedIllusionDevice; + +function DoRewindCardLogic(TgDevice_DimensionalLink dimensionalLinkDevice) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=10335 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_RipenedGourd.uc b/Development/Src/TgGame/Classes/TgDevice_RipenedGourd.uc new file mode 100644 index 0000000..c717376 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RipenedGourd.uc @@ -0,0 +1,4 @@ +class TgDevice_RipenedGourd extends TgDevice_GourdMod + native(ChampMalDamba) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_RocketBoots.uc b/Development/Src/TgGame/Classes/TgDevice_RocketBoots.uc new file mode 100644 index 0000000..7dc8aae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RocketBoots.uc @@ -0,0 +1,15 @@ +class TgDevice_RocketBoots extends TgDevice_Charge + native(ChampBarik) + hidecategories(Navigation) + config(Engine); + +simulated function float GetChargeSpeed() { } + +simulated event float GetChargeRange() { } + +simulated event bool CanBeCanceled() { } + +defaultproperties +{ + m_eChargeState=CHARGE_Turn +} diff --git a/Development/Src/TgGame/Classes/TgDevice_RocketLauncher.uc b/Development/Src/TgGame/Classes/TgDevice_RocketLauncher.uc new file mode 100644 index 0000000..ef9b648 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RocketLauncher.uc @@ -0,0 +1,23 @@ +class TgDevice_RocketLauncher extends TgDevice + native(ChampRuckus) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var () Vector m_vProjectileSpawnOffset2; +var int m_nFireCount; + +native function Rotator GetAdjustedAim(vector StartFireLoc); // Export UTgDevice_RocketLauncher::execGetAdjustedAim(FFrame&, void* const) + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated function Projectile ProjectileFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_vProjectileSpawnOffset2=(X=0.0000000,Y=-25.0000000,Z=48.0000000) + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=0.0000000,Y=25.0000000,Z=48.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Roost.uc b/Development/Src/TgGame/Classes/TgDevice_Roost.uc new file mode 100644 index 0000000..c2eec18 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Roost.uc @@ -0,0 +1,17 @@ +class TgDevice_Roost extends TgDevice + native(ChampOwl) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_ScopeDevice; + +native function float GetStealthJuiceDiscount(); // Export UTgDevice_Roost::execGetStealthJuiceDiscount(FFrame&, void* const) + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=19111 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_RuckusInhand.uc b/Development/Src/TgGame/Classes/TgDevice_RuckusInhand.uc new file mode 100644 index 0000000..8972416 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_RuckusInhand.uc @@ -0,0 +1,61 @@ +class TgDevice_RuckusInhand extends TgDevice_DualWield + native(ChampRuckus) + hidecategories(Navigation) + config(Engine) + dependson(TgDevice); + +var float m_fSpinAmount; +var float m_fCurrentSpinScale; +var (Spin) float m_fStartingSpinRate; +var (Spin) float m_fMaxSpinRate; +var (Spin) float m_fDurationToMaxSpin; +var (Spin) float m_fSpinDownRate; +var (Spin) float m_fSlowestFireDelay; +var float m_fFiringMoveSpeedModifier; +var bool m_bLeftMouseMovePenalty; +var bool m_bInFireLoop; +var bool m_bAltFireSpinning; +var bool m_bHexaFireSpinning; +var (MovePenalty) float m_fMoveSpeedDecreaseInterpolationDuration; +var (MovePenalty) float m_fMoveSpeedIncreaseInterpolationDuration; +var float r_fRecyclerPercent; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fRecyclerPercent; +} + +simulated function bool ShouldConsumeAmmo(int nFireRequestID, optional array Impacts) { } + +reliable server function SetLeftMouseMovePenalty(bool bLeftMouseMovePenalty) { } + +simulated function Tick(float DeltaTime) { } + +simulated function SetCurrentSpinScale(float fCurrentSpinScale) { } + +simulated function bool RequireMovementForAimAssist() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fStartingSpinRate=0.0010000 + m_fMaxSpinRate=20.0000000 + m_fDurationToMaxSpin=1.0000000 + m_fSpinDownRate=1.0000000 + m_fSlowestFireDelay=0.3000000 + m_fFiringMoveSpeedModifier=1.0000000 + m_fMoveSpeedDecreaseInterpolationDuration=0.5000000 + m_fMoveSpeedIncreaseInterpolationDuration=0.5000000 + m_vProjectileSpawnOffset2=(X=5.0000000,Y=-18.0000000,Z=-7.0000000) + m_AltFireType=ALTFIRE_AlternateDevice + m_bAltFireEnabled=true + m_bParentAnimComponent1PHead=true + m_vMeshViewOffset=(X=10.0000000,Y=0.0000000,Z=-3.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=90.0000000 + m_vProjectileSpawnOffset=(X=5.0000000,Y=18.0000000,Z=-7.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_RuckusInhand' + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=0.9900000,fMinAccuracy=0.9400000,fAccuracyLossPerShot=0.0050000,fAccuracyGainPerSec=0.3500000,fAccuracyGainDelay=0.2000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Rush.uc b/Development/Src/TgGame/Classes/TgDevice_Rush.uc new file mode 100644 index 0000000..69a6961 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Rush.uc @@ -0,0 +1,40 @@ +class TgDevice_Rush extends TgDevice_Charge + native(ChampLazarus) + hidecategories(Navigation) + config(Engine); + +var TgPawn r_PawnTarget; +var float m_fWalkableFloorZ; +var float m_fZoomDurationOverride; +var bool m_bHitWall; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_PawnTarget; +} + +native function TurnTargetToOwner(); // Export UTgDevice_Rush::execTurnTargetToOwner(FFrame&, void* const) + +native function bool PredictChargeInterrupt(Vector StartLocation, Vector endLocation); // Export UTgDevice_Rush::execPredictChargeInterrupt(FFrame&, void* const) + +native function MoveTargetToSafeArea(TgPawn pPawnTarget); // Export UTgDevice_Rush::execMoveTargetToSafeArea(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function OutroLockoutTime() { } + +simulated event bool CanFiringBeCanceledByReactivation() { } + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fWalkableFloorZ=0.7000000 + m_fZoomDurationOverride=0.1000000 + m_ChargeTimingType=CFT_PostFire + m_bApplyHitOnTouch=false + m_vHitProxyRelativeLocation=(X=30.0000000,Y=0.0000000,Z=0.0000000) + m_bUsesOutroLockout=true + m_fOutroLockoutTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Salvo.uc b/Development/Src/TgGame/Classes/TgDevice_Salvo.uc new file mode 100644 index 0000000..4036af1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Salvo.uc @@ -0,0 +1,32 @@ +class TgDevice_Salvo extends TgDevice + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgDevice_DrogozInhand m_CachedInhand; + +native function bool ShouldInterruptStealth(); // Export UTgDevice_Salvo::execShouldInterruptStealth(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Salvo::execCanDeviceFireNow(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function EndSalvo() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_nLinkedDeviceTypes[0]=10828 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Scope.uc b/Development/Src/TgGame/Classes/TgDevice_Scope.uc new file mode 100644 index 0000000..2640434 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Scope.uc @@ -0,0 +1,49 @@ +class TgDevice_Scope extends TgDevice_ToggleWithLockout + native(ChampOwl) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var bool m_bDelayMoveSpeedPenalty; +var bool m_bIsZoomed; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Scope::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function StartFireDescopeTimer() { } + +simulated function FireDescopeTimer() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function bool IsPlayerToggleZoomSet() { } + +simulated function CompleteInterrupt() { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +state DeviceFiring {} + +defaultproperties +{ + m_nLinkedDeviceTypes[0]=11077 + m_nLinkedDeviceTypes[1]=10828 + m_nLinkedDeviceTypes[2]=11041 + m_nLinkedDeviceTypes[3]=15052 + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftlowx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Scout.uc b/Development/Src/TgGame/Classes/TgDevice_Scout.uc new file mode 100644 index 0000000..11dc5bf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Scout.uc @@ -0,0 +1,17 @@ +class TgDevice_Scout extends TgDevice + native(ChampCassie) + hidecategories(Navigation) + config(Engine); + +var TgPawn m_CachedPawnOwner; +var TgRepInfo_TaskForce m_CachedAllyTaskForce; +var TgRepInfo_TaskForce m_CachedEnemyTaskForce; +var array m_AlliesScouted; +var array m_EnemiesScouted; + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Scramble.uc b/Development/Src/TgGame/Classes/TgDevice_Scramble.uc new file mode 100644 index 0000000..10df6b9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Scramble.uc @@ -0,0 +1,21 @@ +class TgDevice_Scramble extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var TgDevice_Hustle m_CachedHustleDevice; +var float m_fSprintEndTimestamp; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Scramble::execGetMoveSpeedMultiplier(FFrame&, void* const) + +reliable client simulated function ClientStartSpeedBoost() { } + +event CheckStartSprintBoost() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=14148 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_SecondWind.uc b/Development/Src/TgGame/Classes/TgDevice_SecondWind.uc new file mode 100644 index 0000000..3a7bf31 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SecondWind.uc @@ -0,0 +1,21 @@ +class TgDevice_SecondWind extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var TgDevice_Hustle m_CachedHustleDevice; +var float m_fSprintEndTimestamp; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_SecondWind::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated function CheckStartSprintBoost() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=14148 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Seedling.uc b/Development/Src/TgGame/Classes/TgDevice_Seedling.uc new file mode 100644 index 0000000..548920e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Seedling.uc @@ -0,0 +1,11 @@ +class TgDevice_Seedling extends TgDevice + native(ChampFairy) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bDisableLagCompensation=true + m_vProjectileSpawnOffset=(X=15.0000000,Y=-10.0000000,Z=-10.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceSeedling' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_SelfResurrection.uc b/Development/Src/TgGame/Classes/TgDevice_SelfResurrection.uc new file mode 100644 index 0000000..e55785b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SelfResurrection.uc @@ -0,0 +1,53 @@ +class TgDevice_SelfResurrection extends TgDevice + native(ChampLazarus) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +enum ResurrectionState { + RS_NONE, // 0 + RS_STANDBY, // 1 + RS_BUILDUP, // 2 + RS_ACTIVE, // 3 + RS_END, // 4 +}; + +var repnotify TgDevice_SelfResurrection.ResurrectionState r_mCurrentState; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_mCurrentState; +} + +native function bool CanFiringBeLocked(); // Export UTgDevice_SelfResurrection::execCanFiringBeLocked(FFrame&, void* const) + +native function bool CanFireWhileMounted(); // Export UTgDevice_SelfResurrection::execCanFireWhileMounted(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_SelfResurrection::execCanDeviceFireNow(FFrame&, void* const) + +native function EnterBuildupState(); // Export UTgDevice_SelfResurrection::execEnterBuildupState(FFrame&, void* const) + +native function Suicide(); // Export UTgDevice_SelfResurrection::execSuicide(FFrame&, void* const) + +native function FinishResurrection(); // Export UTgDevice_SelfResurrection::execFinishResurrection(FFrame&, void* const) + +native function ApplyActiveEffects(); // Export UTgDevice_SelfResurrection::execApplyActiveEffects(FFrame&, void* const) + +native function UpdateState(byte NewState); // Export UTgDevice_SelfResurrection::execUpdateState(FFrame&, void* const) + +native function OnBecomeActive(); // Export UTgDevice_SelfResurrection::execOnBecomeActive(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function bool ShouldInterruptMount() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated function FireAmmunition() { } + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +simulated function bool ShouldConsumePowerPoolAfterFire() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_ShadowTravel.uc b/Development/Src/TgGame/Classes/TgDevice_ShadowTravel.uc new file mode 100644 index 0000000..49cbe74 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShadowTravel.uc @@ -0,0 +1,20 @@ +class TgDevice_ShadowTravel extends TgDevice + native(ChampOracle) + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_ShadowTravel::execGetMoveSpeedMultiplier(FFrame&, void* const) + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false + m_bUsesOutroLockout=true + m_fEnterCombatDuration=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Shatter.uc b/Development/Src/TgGame/Classes/TgDevice_Shatter.uc new file mode 100644 index 0000000..7d39692 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Shatter.uc @@ -0,0 +1,13 @@ +class TgDevice_Shatter extends TgDevice + native(ChampYing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Ying m_CachedYingPawn; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Shatter::execCanDeviceFireNow(FFrame&, void* const) + +simulated function CustomFire() { } + +simulated function bool HasYingPawn() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_ShellShield.uc b/Development/Src/TgGame/Classes/TgDevice_ShellShield.uc new file mode 100644 index 0000000..4f55e3d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShellShield.uc @@ -0,0 +1,37 @@ +class TgDevice_ShellShield extends TgDevice + native(ChampMakoa) + hidecategories(Navigation) + config(Engine); + +var bool r_bHasHalfshell; +var bool c_bHalfShellFXOn; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasHalfshell; +} + +native function SetFireMode(int nFireModeNum, optional bool ForceSet=false); // Export UTgDevice_ShellShield::execSetFireMode(FFrame&, void* const) + +simulated event OnDeployableSpawned(TgDeployable deployable) { } + +event OnDeployableDestroyed(TgDeployable deployable) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function ShellShieldFireLockout() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bDeployAtFeetOnFailure=true + m_bCooldownAfterDeployDeath=true + m_fDeployZForgiveness=0.0000000 + m_fBottomlessPitCheck=0.0000000 + m_fDeployZOffset=-40.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ShellShieldMod.uc b/Development/Src/TgGame/Classes/TgDevice_ShellShieldMod.uc new file mode 100644 index 0000000..6b9d356 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShellShieldMod.uc @@ -0,0 +1,8 @@ +class TgDevice_ShellShieldMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +native function ApplyTouchEffect(Actor Target); // Export UTgDevice_ShellShieldMod::execApplyTouchEffect(FFrame&, void* const) + +native function int ApplyDamageTakenEffect(int totalDamage); // Export UTgDevice_ShellShieldMod::execApplyDamageTakenEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_ShellSpin.uc b/Development/Src/TgGame/Classes/TgDevice_ShellSpin.uc new file mode 100644 index 0000000..232821c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShellSpin.uc @@ -0,0 +1,33 @@ +class TgDevice_ShellSpin extends TgDevice_Charge + native(ChampMakoa) + hidecategories(Navigation) + config(Engine); + +var TgPawn r_PawnTarget; +var float m_fWalkableFloorZ; +var float m_fZoomDurationOverride; +var bool m_bCarryEnemies; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_PawnTarget; +} + +native function TurnTargetToOwner(); // Export UTgDevice_ShellSpin::execTurnTargetToOwner(FFrame&, void* const) + +native function bool PredictChargeInterrupt(Vector StartLocation, Vector endLocation); // Export UTgDevice_ShellSpin::execPredictChargeInterrupt(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function OutroLockoutTime() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fWalkableFloorZ=0.7000000 + m_fZoomDurationOverride=0.1000000 + m_ChargeTimingType=CFT_PostFire + m_vHitProxyRelativeLocation=(X=30.0000000,Y=0.0000000,Z=0.0000000) + m_bUsesOutroLockout=true + m_fOutroLockoutTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ShieldFernando.uc b/Development/Src/TgGame/Classes/TgDevice_ShieldFernando.uc new file mode 100644 index 0000000..63509dd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShieldFernando.uc @@ -0,0 +1,22 @@ +class TgDevice_ShieldFernando extends TgDevice_Toggle + native(ChampFernando) + hidecategories(Navigation) + config(Engine); + +native function bool HasEnoughPowerPool(byte FireModeNum); // Export UTgDevice_ShieldFernando::execHasEnoughPowerPool(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_ShieldFernando::execMustBeOnGroundToFire(FFrame&, void* const) + +function InitMaxHealth() { } + +function CancelSafetyPeriodTimer() { } + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bForce3PViewWhileFiring=true + m_fDeployZOffset=-30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ShieldMod.uc b/Development/Src/TgGame/Classes/TgDevice_ShieldMod.uc new file mode 100644 index 0000000..6a116e6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShieldMod.uc @@ -0,0 +1,4 @@ +class TgDevice_ShieldMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_ShockPulse.uc b/Development/Src/TgGame/Classes/TgDevice_ShockPulse.uc new file mode 100644 index 0000000..bc5be63 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShockPulse.uc @@ -0,0 +1,11 @@ +class TgDevice_ShockPulse extends TgDevice + native(ChampGrohk) + hidecategories(Navigation) + config(Engine); + +native function bool IsReloading(); // Export UTgDevice_ShockPulse::execIsReloading(FFrame&, void* const) + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=0.0000000,Y=4.0000000,Z=-9.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ShoulderBash.uc b/Development/Src/TgGame/Classes/TgDevice_ShoulderBash.uc new file mode 100644 index 0000000..3d0e8ec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ShoulderBash.uc @@ -0,0 +1,27 @@ +class TgDevice_ShoulderBash extends TgDevice_Charge + native(ChampFlak) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var bool m_bHasHitTarget; + +native function bool UsesTargetingMode(); // Export UTgDevice_ShoulderBash::execUsesTargetingMode(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_ShoulderBash::execGetMoveSpeedMultiplier(FFrame&, void* const) + +reliable server function ValidateChargeHit(Actor Other) { } + +function ApplyTouchHit(TgPawn InstigatorPawn, Vector vHitLocation, Vector vHitNormal, Actor Target) { } + +simulated function bool ShouldStopOnThisHit(Actor Other) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bStopOnHitType=CSHT_AnyValidTarget + m_ChargeTimingType=CFT_PostFire + m_bApplyHitOnTouch=false + m_bIgnoreMovementCorrection=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_SiegeUnit.uc b/Development/Src/TgGame/Classes/TgDevice_SiegeUnit.uc new file mode 100644 index 0000000..61c79df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SiegeUnit.uc @@ -0,0 +1,20 @@ +class TgDevice_SiegeUnit extends TgDevice + native(ChampFlak) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_SiegeUnit::execCanDeviceFireNow(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_SiegeUnit::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated event bool ShouldCooldownAfterFire() { } + +simulated event bool ShouldInterruptInhand() { } + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_fBottomlessPitCheck=5000.0000000 + m_fDeployZOffset=25.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_SkyeInhand.uc b/Development/Src/TgGame/Classes/TgDevice_SkyeInhand.uc new file mode 100644 index 0000000..903920e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SkyeInhand.uc @@ -0,0 +1,37 @@ +class TgDevice_SkyeInhand extends TgDevice + native(ChampSkye) + hidecategories(Navigation) + config(Engine); + +native function bool ShouldInterruptStealth(); // Export UTgDevice_SkyeInhand::execShouldInterruptStealth(FFrame&, void* const) + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=15.0000000,Y=0.0000000,Z=-4.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=21.0000000,Y=6.0000000,Z=-4.0000000) + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_SkyeInHand' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0000000,fMinAccuracy=0.9400000,fAccuracyLossPerShot=0.0100000,fAccuracyGainPerSec=0.6000000,fAccuracyGainDelay=0.2000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_SleightOfHand.uc b/Development/Src/TgGame/Classes/TgDevice_SleightOfHand.uc new file mode 100644 index 0000000..baef2ef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SleightOfHand.uc @@ -0,0 +1,8 @@ +class TgDevice_SleightOfHand extends TgDevice + native(ChampAndroxus) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_InhandWeapon; + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_SmokeScreen.uc b/Development/Src/TgGame/Classes/TgDevice_SmokeScreen.uc new file mode 100644 index 0000000..1398b9d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SmokeScreen.uc @@ -0,0 +1,6 @@ +class TgDevice_SmokeScreen extends TgDevice + native(ChampSkye) + hidecategories(Navigation) + config(Engine); + +native function bool ShouldInterruptStealth(); // Export UTgDevice_SmokeScreen::execShouldInterruptStealth(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_SmokeScreenMod.uc b/Development/Src/TgGame/Classes/TgDevice_SmokeScreenMod.uc new file mode 100644 index 0000000..aa15d6e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SmokeScreenMod.uc @@ -0,0 +1,15 @@ +class TgDevice_SmokeScreenMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var array m_ImmuneTargets; +var array m_ImmuneTimes; + +native function ApplyOnTouchEffect(Actor Target); // Export UTgDevice_SmokeScreenMod::execApplyOnTouchEffect(FFrame&, void* const) + +native function ApplyOwnerTouchEffect(Actor Target); // Export UTgDevice_SmokeScreenMod::execApplyOwnerTouchEffect(FFrame&, void* const) + +native function ApplyEffect(TgDeploy_SmokeScreen smokeScreen, Actor Target); // Export UTgDevice_SmokeScreenMod::execApplyEffect(FFrame&, void* const) + +native function RemoveEffect(TgDeploy_SmokeScreen smokeScreen, Actor Target); // Export UTgDevice_SmokeScreenMod::execRemoveEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDevice_Smother.uc b/Development/Src/TgGame/Classes/TgDevice_Smother.uc new file mode 100644 index 0000000..4275e14 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Smother.uc @@ -0,0 +1,4 @@ +class TgDevice_Smother extends TgDevice_SmokeScreenMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_SnakeToss.uc b/Development/Src/TgGame/Classes/TgDevice_SnakeToss.uc new file mode 100644 index 0000000..8abeb7d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SnakeToss.uc @@ -0,0 +1,27 @@ +class TgDevice_SnakeToss extends TgDevice + native(ChampMalDamba) + hidecategories(Navigation) + config(Engine); + +var int r_nAmmoCharge; +var TgDevice_MalDambaInhand m_CachedInhand; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nAmmoCharge; +} + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated function UpdateAmmoCharge() { } + +simulated function UseNow() { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=50.0000000,Y=12.0000000,Z=0.0000000) + m_nLinkedDeviceTypes[0]=10828 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_SniperMode.uc b/Development/Src/TgGame/Classes/TgDevice_SniperMode.uc new file mode 100644 index 0000000..afc64f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SniperMode.uc @@ -0,0 +1,51 @@ +class TgDevice_SniperMode extends TgDevice_ToggleModeWithLockout + native(ChampKinessa) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Kinessa m_CachedKinessaOwner; +var TgDevice_KinessaInhand m_CachedKinessaInhandDev; +var bool m_bIsZoomed; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_SniperMode::execCanDeviceFireNow(FFrame&, void* const) + +simulated function bool ShouldInterruptMount() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldInterruptInhand() { } + +simulated function RefreshZoomState(bool bZoomOn) { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function bool IsPlayerToggleZoomSet() { } + +simulated function CompleteInterrupt() { } + +simulated function bool InterceptSlotReleased(TgPlayerController TgController) { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_nLinkedDeviceTypes[0]=11077 + m_nLinkedDeviceTypes[1]=10828 + m_nLinkedDeviceTypes[2]=10828 + m_nLinkedDeviceTypes[3]=11041 + m_nLinkedDeviceTypes[4]=11070 + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Soar.uc b/Development/Src/TgGame/Classes/TgDevice_Soar.uc new file mode 100644 index 0000000..95d9bdf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Soar.uc @@ -0,0 +1,28 @@ +class TgDevice_Soar extends TgDevice + native(ChampEvie) + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldMountCancelFiring() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_AimAssistKeyframesFriction=none + m_AimAssistKeyframesTrackingAccHoriz=none + m_AimAssistKeyframesTrackingAngleHoriz=none + m_AimAssistKeyframesTrackingAccVert=none + m_AimAssistKeyframesTrackingAngleVert=none + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Somersault.uc b/Development/Src/TgGame/Classes/TgDevice_Somersault.uc new file mode 100644 index 0000000..0f690b4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Somersault.uc @@ -0,0 +1,10 @@ +class TgDevice_Somersault extends TgDevice + native(ChampCassie) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_DodgeRollDevice; + +simulated event StartFire(byte FireModeNum) { } + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_SpaceJam.uc b/Development/Src/TgGame/Classes/TgDevice_SpaceJam.uc new file mode 100644 index 0000000..d2b03f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SpaceJam.uc @@ -0,0 +1,4 @@ +class TgDevice_SpaceJam extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_SpaceTime.uc b/Development/Src/TgGame/Classes/TgDevice_SpaceTime.uc new file mode 100644 index 0000000..6f62284 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_SpaceTime.uc @@ -0,0 +1,42 @@ +class TgDevice_SpaceTime extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgCollisionProxy_Mesh m_BeamCollisionProxy; +var array m_ActorsInRange; + +simulated event bool CanBeCanceled() { } + +simulated event bool IsFunctionallyToggleDevice() { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +simulated function FireAmmunition() { } + +function OnProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +function OnProxyUnTouch(Actor Other) { } + +simulated function ClearTouchedActors() { } + +simulated event SpawnCollisionProxy() { } + +simulated function DestroyCollisionProxy() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bAimThroughReticule=true + m_AimAssistKeyframesMagnetVert=none + m_AimAssistKeyframesMagnetHoriz=none + m_nAimAssistPriorityWhileFiring=2 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Spite.uc b/Development/Src/TgGame/Classes/TgDevice_Spite.uc new file mode 100644 index 0000000..5b50299 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Spite.uc @@ -0,0 +1,99 @@ +class TgDevice_Spite extends TgDevice_Charge + native(ChampDarklord) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +enum SpiteAnimState { + SAS_Intro, // 0 + SAS_HitChain, // 1 + SAS_MissOutro, // 2 + SAS_BounceOffOutro, // 3 + SAS_InterruptOutro, // 4 +}; + +var TgPawn_Darklord m_CachedDarklord; +var bool m_bWaitingForServerHit; +var bool m_bHasStartedChainAttacks; +var bool m_bHasBounced; +var bool m_bHasRefundedEnergy; +var bool r_bApplyPercentDamage; +var int m_nNumHits; +var TgPawn_Character m_HitCharacter; +var const float m_fJoinViewLerpTime; +var const float m_fJoinSeparationDistance; +var const float m_fJoinMoveTweenTime; +var const float m_fJoinMinGroundOffset; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bApplyPercentDamage; +} + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Spite::execGetTargetingAim(FFrame&, void* const) + +native function bool ShouldForce3P(TgDeviceForm DeviceForm, optional bool bOnlyCheckDeviceForm=false); // Export UTgDevice_Spite::execShouldForce3P(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Spite::execGetMoveSpeedMultiplier(FFrame&, void* const) + +native function bool ShouldLiftInterrupt(); // Export UTgDevice_Spite::execShouldLiftInterrupt(FFrame&, void* const) + +native function float GetCachedFiringPostHitDelay(); // Export UTgDevice_Spite::execGetCachedFiringPostHitDelay(FFrame&, void* const) + +simulated function bool HasCachedDarklord() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldAbortChainAttacks() { } + +reliable server function ServerStartChainAttacks(Actor Other) { } + +simulated function OnInterruptEvent() { } + +function AbortChainAttacks() { } + +function CheckForRefund() { } + +simulated function BounceOff() { } + +reliable client simulated function ClientStartChainAttacks(Actor Other) { } + +simulated function StartChainAttacks(Actor Other) { } + +function ApplyHitToTarget(int nHitSpecialSituationalType) { } + +simulated function ApplyStunHit() { } + +function RemoveStunHit() { } + +simulated function ApplyChainHit() { } + +reliable client simulated function ClientAbortWaitingForServerHit() { } + +reliable client simulated function ClientFinishChainAttacks(bool bBounceOff, bool bApplyFinalHit) { } + +simulated function FinishChainAttacks(bool bBounceOff, bool bApplyFinalHit) { } + +simulated function ApplyFinalHit() { } + +function RefundEnergy() { } + +state DeviceBuildup {} + +state DeviceFiring {} + +defaultproperties +{ + m_fJoinViewLerpTime=0.4000000 + m_fJoinSeparationDistance=75.0000000 + m_fJoinMoveTweenTime=0.2500000 + m_fJoinMinGroundOffset=160.0000000 + m_bStopOnHitType=CSHT_GodOnly + m_ChargeTimingType=CFT_PreFire + m_bUsePhysFlying=true + m_bIgnoreHumanoids=false + m_bIgnoreMovementCorrection=true + m_vHitProxySizeOffset=(X=0.0000000,Y=12.0000000,Z=0.0000000) + s_fServerValidationSizeMultiplier=3.0000000 + s_bIgnoreReceivedAim=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Spray.uc b/Development/Src/TgGame/Classes/TgDevice_Spray.uc new file mode 100644 index 0000000..00cecae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Spray.uc @@ -0,0 +1,19 @@ +class TgDevice_Spray extends TgDevice + hidecategories(Navigation) + config(Engine); + +var bool m_bMissedSpray; + +simulated event bool ShouldCooldownAfterFire() { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated function PlayClientFireFx(Vector HitLocation, int nSocketIndex, bool bSuccessfulHit, float fRefireTime) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +defaultproperties +{ + m_bStartFireShouldEnterCombat=false + m_bFireShouldEnterCombat=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_StarSeeker.uc b/Development/Src/TgGame/Classes/TgDevice_StarSeeker.uc new file mode 100644 index 0000000..f84011c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_StarSeeker.uc @@ -0,0 +1,4 @@ +class TgDevice_StarSeeker extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Stealth.uc b/Development/Src/TgGame/Classes/TgDevice_Stealth.uc new file mode 100644 index 0000000..2ad23e0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Stealth.uc @@ -0,0 +1,33 @@ +class TgDevice_Stealth extends TgDevice + native(ChampSkye) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool m_bIsInCombat; +var bool m_bCanFireInCombat; + +native function bool ShouldInterruptStealth(); // Export UTgDevice_Stealth::execShouldInterruptStealth(FFrame&, void* const) + +native function bool CanFireWhileMounted(); // Export UTgDevice_Stealth::execCanFireWhileMounted(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Stealth::execCanDeviceFireNow(FFrame&, void* const) + +simulated event bool ShouldInterruptReloadOnFire() { } + +simulated event StartFire(byte FireModeNum) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldCancelStealth() { } + +simulated function bool ShouldInterruptMount() { } + +simulated event bool ShouldMountCancelFiring() { } + +defaultproperties +{ + m_bCanFireInCombat=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Stim.uc b/Development/Src/TgGame/Classes/TgDevice_Stim.uc new file mode 100644 index 0000000..87b00fc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Stim.uc @@ -0,0 +1,17 @@ +class TgDevice_Stim extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +simulated event bool ShouldInterruptInhand() { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Survival.uc b/Development/Src/TgGame/Classes/TgDevice_Survival.uc new file mode 100644 index 0000000..5ed1d47 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Survival.uc @@ -0,0 +1,10 @@ +class TgDevice_Survival extends TgDevice + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_ThrustDevice; + +simulated event StartFire(byte FireModeNum) { } + +simulated event bool ShouldCooldownAfterFire() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_TeamDevice.uc b/Development/Src/TgGame/Classes/TgDevice_TeamDevice.uc new file mode 100644 index 0000000..c9f5c06 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TeamDevice.uc @@ -0,0 +1,33 @@ +class TgDevice_TeamDevice extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgTimerManager); + +native function TgTimerManager GetCooldownTimerManager(); // Export UTgDevice_TeamDevice::execGetCooldownTimerManager(FFrame&, void* const) + +native function TgRepInfo_TaskForce GetTaskForce(); // Export UTgDevice_TeamDevice::execGetTaskForce(FFrame&, void* const) + +native function CheckAndUpdateCooldown(); // Export UTgDevice_TeamDevice::execCheckAndUpdateCooldown(FFrame&, void* const) + +function FlashCooldown(byte nMode) { } + +event ToggleCooldownEffects(bool bOnCooldown) { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +event ResetCooldown(int nMode, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated event EndCooldown() { } + +function TeamCooldownTimerExpired(int nTimerId, TgTimerManager.TGT_EVENT eEvent) { } + +function TeamCooldownStart(int nMode, float fCooldownTime) { } + +function TeamCooldownReset(int nMode, float fCooldownTime) { } + +function TeamCooldownEnd() { } + +function TeamGotoState(name NewState) { } + +function TeamFlashCooldown(byte nMode) { } diff --git a/Development/Src/TgGame/Classes/TgDevice_Telepunch.uc b/Development/Src/TgGame/Classes/TgDevice_Telepunch.uc new file mode 100644 index 0000000..e3f9cbd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Telepunch.uc @@ -0,0 +1,84 @@ +class TgDevice_Telepunch extends TgDevice + native(ChampDemon) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +var TgPawn_Demon m_CachedDemon; +var TgPawn_Character m_HitCharacter; +var bool m_bLiftApplied; +var bool m_bStealthApplied; +var float m_fLerpTime; +var float m_fTeleportPreferedDistance; +var float m_fTargetLockTime; + +native function float GetRequiredEnergyToFire(); // Export UTgDevice_Telepunch::execGetRequiredEnergyToFire(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Telepunch::execCanDeviceFireNow(FFrame&, void* const) + +native function bool ShouldForce3P(TgDeviceForm DeviceForm, optional bool bOnlyCheckDeviceForm=false); // Export UTgDevice_Telepunch::execShouldForce3P(FFrame&, void* const) + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Telepunch::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated function bool ShouldConsumePowerPoolOnStartFire() { } + +simulated function bool HasCachedDemon() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated function float GetLerpToTargetTime(Vector vTargetLocation) { } + +simulated function LerpToTarget(TgPawn_Character Target, Vector vTargetLocation, float fLerpTime) { } + +simulated function FadeOutUltFx() { } + +simulated function AltFirePostHitDelay() { } + +reliable client simulated function ClientLerpToTarget(TgPawn_Character Target, Vector vTargetLocation, float fLerpTime) { } + +simulated function ResetPostHitDelay() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool IsPostTeleportPreHitActive() { } + +simulated function PostTeleportPreHit() { } + +simulated function bool IsPostTeleportLockOutActive() { } + +simulated function PostTeleportLockOut() { } + +function ApplyLift(TgPawn_Character Target) { } + +function RemoveLift(TgPawn_Character Target) { } + +function ApplyStealth(TgPawn_Character Target) { } + +function RemoveStealth(TgPawn_Character Target) { } + +function DelayedSlam() { } + +function ApplySlam(TgPawn_Character Target) { } + +function ApplyHitToTarget(TgPawn_Character Target, int nHitSpecialSituationalType) { } + +function RemoveHitFromTarget(TgPawn_Character Target, int nHitSpecialSituationalType) { } + +simulated function ConfirmTelepunchTarget() { } + +simulated function OnInterruptEvent() { } + +simulated function AbortTelepunch() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fTeleportPreferedDistance=6.0000000 + m_fTargetLockTime=0.2500000 + s_bIgnoreReceivedAim=true + m_bDisableLagCompensation=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Tempest.uc b/Development/Src/TgGame/Classes/TgDevice_Tempest.uc new file mode 100644 index 0000000..68a4f2c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Tempest.uc @@ -0,0 +1,26 @@ +class TgDevice_Tempest extends TgDevice_HitPulse + native(ChampGrohk) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_Tempest::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +simulated event DeliverQueuedPendingHits() { } + +simulated function PersistTimer() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PersistTime + m_bAlwaysStartCooldown=false + m_bDisableLagCompensation=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TheLaw.uc b/Development/Src/TgGame/Classes/TgDevice_TheLaw.uc new file mode 100644 index 0000000..2a04f36 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TheLaw.uc @@ -0,0 +1,12 @@ +class TgDevice_TheLaw extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +var float m_ExecutePercentage; +var Rotator AimRotation; + +defaultproperties +{ + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceTheLaw' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Thrust.uc b/Development/Src/TgGame/Classes/TgDevice_Thrust.uc new file mode 100644 index 0000000..57cff03 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Thrust.uc @@ -0,0 +1,23 @@ +class TgDevice_Thrust extends TgDevice_Charge + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Thrust::execGetTargetingAim(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event float GetChargeRange() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bUsePhysFlying=true + m_bIgnoreRange=true + m_bForce3PViewWhileFiring=false + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Tinkerin.uc b/Development/Src/TgGame/Classes/TgDevice_Tinkerin.uc new file mode 100644 index 0000000..8f7fac3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Tinkerin.uc @@ -0,0 +1,3 @@ +class TgDevice_Tinkerin extends TgDevice + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Toggle.uc b/Development/Src/TgGame/Classes/TgDevice_Toggle.uc old mode 100755 new mode 100644 index 52991f6..242706a --- a/Development/Src/TgGame/Classes/TgDevice_Toggle.uc +++ b/Development/Src/TgGame/Classes/TgDevice_Toggle.uc @@ -1,3 +1,31 @@ -class TgDevice_Toggle extends TgDevice - native(Devices) - hidecategories(Navigation); \ No newline at end of file +class TgDevice_Toggle extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var bool m_bIsToggle; + +native function UpdateUIToggleState(); // Export UTgDevice_Toggle::execUpdateUIToggleState(FFrame&, void* const) + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_Toggle::execCanDeviceFireNow(FFrame&, void* const) + +simulated function bool CanDeviceFireInTargetingMode() { } + +simulated function FireAmmunition() { } + +simulated event StartFire(byte FireModeNum) { } + +simulated function ConsumeAmmoFromFiring(optional int nAmmoConsumptionOverride=-1, optional int nFireRequestIDOverride=-1) { } + +simulated event bool IsToggleDevice() { } + +simulated function bool ShouldInterruptReload() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bIsToggle=true + m_bPostFireShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ToggleInhand.uc b/Development/Src/TgGame/Classes/TgDevice_ToggleInhand.uc new file mode 100644 index 0000000..b64b4a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToggleInhand.uc @@ -0,0 +1,50 @@ +class TgDevice_ToggleInhand extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); + +var TgPawn m_CachedTgP; +var float m_fCurrentTransitionPct; +var int m_nProjectilesFired; + +simulated function TgPawn GetCachedTgP() { } + +native simulated function float GetBuildupTime(); // Export UTgDevice_ToggleInhand::execGetBuildupTime(FFrame&, void* const) + +native simulated function float GetFiringPreHitDelay(optional int nMode=-1); // Export UTgDevice_ToggleInhand::execGetFiringPreHitDelay(FFrame&, void* const) + +native simulated function float GetFiringPostHitDelay(optional int nMode=-1); // Export UTgDevice_ToggleInhand::execGetFiringPostHitDelay(FFrame&, void* const) + +simulated function float GetBaseBuildupTime() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated function bool CanToggleDeviceStopFiring() { } + +simulated event bool IsToggleDevice() { } + +simulated function FireAmmunition() { } + +simulated function StartIntroTimer(float fDuration) { } + +simulated function StartOutroTimer(float fDuration) { } + +simulated function IntroTimer() { } + +simulated function OutroTimer() { } + +simulated function InitialFirePreHitDelay() { } + +reliable server event InterruptFiring() { } + +reliable client simulated event ClientInterrupt() { } + +simulated function StopFire(byte FireModeNum) { } + +simulated event UpdateTransitionPct(optional float fDefaultPct=0.0000000) { } + +state DeviceBuildup {} + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_ToggleInhandFiremode.uc b/Development/Src/TgGame/Classes/TgDevice_ToggleInhandFiremode.uc new file mode 100644 index 0000000..53bfb18 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToggleInhandFiremode.uc @@ -0,0 +1,23 @@ +class TgDevice_ToggleInhandFiremode extends TgDevice + hidecategories(Navigation) + config(Engine); + +var TgDevice m_CachedInhand; + +simulated function bool ShouldInterruptReloadOnFire() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function bool ShouldStopActionOnOffhandSlotReleased() { } + +simulated function FireAmmunition() { } + +simulated function bool HasCachedInhand() { } + +simulated event bool ShouldCooldownAfterFire() { } + +defaultproperties +{ + m_bFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ToggleModeWithLockout.uc b/Development/Src/TgGame/Classes/TgDevice_ToggleModeWithLockout.uc new file mode 100644 index 0000000..67281f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToggleModeWithLockout.uc @@ -0,0 +1,16 @@ +class TgDevice_ToggleModeWithLockout extends TgDevice_ToggleWithLockout + native(Devices) + hidecategories(Navigation) + config(Engine); + +var TgDevice m_CachedInhand; + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +state DeviceFiring {} + +defaultproperties +{ + m_nLinkedDeviceTypes[0]=11077 + m_nLinkedDeviceTypes[1]=10828 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ToggleWithLockout.uc b/Development/Src/TgGame/Classes/TgDevice_ToggleWithLockout.uc new file mode 100644 index 0000000..be38bbc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToggleWithLockout.uc @@ -0,0 +1,45 @@ +class TgDevice_ToggleWithLockout extends TgDevice_Stim + native(Devices) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn m_CachedTgP; +var float m_fCurrentTransitionPct; + +native function bool CanDeviceFireNow(byte FireModeNum, AimData Aim, bool bDeviceFailLog, out TgObject.EDeviceFailType failType); // Export UTgDevice_ToggleWithLockout::execCanDeviceFireNow(FFrame&, void* const) + +simulated function TgPawn GetCachedTgP() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool IsToggleDevice() { } + +simulated function FiringEndTransition() { } + +simulated function SetTransitionPct() { } + +reliable server event InterruptFiring() { } + +reliable client simulated event ClientInterrupt() { } + +simulated function StopFire(byte FireModeNum) { } + +simulated function CompleteInterrupt() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function CustomFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_nLinkedDeviceTypes[0]=11077 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TotemMod.uc b/Development/Src/TgGame/Classes/TgDevice_TotemMod.uc new file mode 100644 index 0000000..4e3586d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TotemMod.uc @@ -0,0 +1,4 @@ +class TgDevice_TotemMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_ToweringBarrier.uc b/Development/Src/TgGame/Classes/TgDevice_ToweringBarrier.uc new file mode 100644 index 0000000..84f23fc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToweringBarrier.uc @@ -0,0 +1,4 @@ +class TgDevice_ToweringBarrier extends TgDevice_ShieldMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_ToweringBarrier_Old.uc b/Development/Src/TgGame/Classes/TgDevice_ToweringBarrier_Old.uc new file mode 100644 index 0000000..c5ecf37 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToweringBarrier_Old.uc @@ -0,0 +1,4 @@ +class TgDevice_ToweringBarrier_Old extends TgDevice_ShieldMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_ToxicTimeBomb.uc b/Development/Src/TgGame/Classes/TgDevice_ToxicTimeBomb.uc new file mode 100644 index 0000000..93f7bef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ToxicTimeBomb.uc @@ -0,0 +1,10 @@ +class TgDevice_ToxicTimeBomb extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true + m_vProjectileSpawnOffset=(X=30.0000000,Y=-10.0000000,Z=-12.0000000) + m_fBottomlessPitCheck=70.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Transporter.uc b/Development/Src/TgGame/Classes/TgDevice_Transporter.uc new file mode 100644 index 0000000..e395218 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Transporter.uc @@ -0,0 +1,29 @@ +class TgDevice_Transporter extends TgDevice + native(ChampKinessa) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var float m_fDowntraceDistance; +var Vector c_vCurrentTargeting2Location; + +native function GetGroundTargetAim(out AimData Aim); // Export UTgDevice_Transporter::execGetGroundTargetAim(FFrame&, void* const) + +native function TickTargetingMode(float DeltaSeconds); // Export UTgDevice_Transporter::execTickTargetingMode(FFrame&, void* const) + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Transporter::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +event OnDeployableDestroyed(TgDeployable deployable) { } + +reliable client simulated function ClientPlayTransporterDestroyedSound() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fDowntraceDistance=4096.0000000 + c_bUsesTargetingReticle=false + m_vProjectileSpawnOffset=(X=15.0000000,Y=1.0000000,Z=-9.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Turret.uc b/Development/Src/TgGame/Classes/TgDevice_Turret.uc new file mode 100644 index 0000000..9be5d58 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Turret.uc @@ -0,0 +1,40 @@ +class TgDevice_Turret extends TgDevice_Pet + native(ChampBarik) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var int m_FlameTurretID; +var int m_MegaTurretID; +var int m_LockdownTurretID; +var Vector m_SpawnLocationOverride; +var bool m_bLockdownIsOn; +var bool m_bHasFlamethrowerTurret; +var bool m_bHasMegaTurret; + +native function UpgradeActiveTurrets(); // Export UTgDevice_Turret::execUpgradeActiveTurrets(FFrame&, void* const) + +native function ToggleLockdownMode(); // Export UTgDevice_Turret::execToggleLockdownMode(FFrame&, void* const) + +native function GetCachedAim(out AimData Aim); // Export UTgDevice_Turret::execGetCachedAim(FFrame&, void* const) + +native function int GetPetIDOverride(int PetIndex); // Export UTgDevice_Turret::execGetPetIDOverride(FFrame&, void* const) + +simulated function InterruptOtherDevices(TgPawn TgP) { } + +simulated event ArmFlamethrowerMode(bool bEnable) { } + +simulated event ArmMegaTurretMode(bool bEnable) { } + +simulated event ArmLockdownMode(bool bEnable) { } + +simulated function RevertFiremode() { } + +defaultproperties +{ + m_FlameTurretID=2230 + m_MegaTurretID=2260 + m_LockdownTurretID=2151 + m_bDeployAtFeetOnFailure=true + m_fBottomlessPitCheck=70.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TurretMod.uc b/Development/Src/TgGame/Classes/TgDevice_TurretMod.uc new file mode 100644 index 0000000..b973218 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TurretMod.uc @@ -0,0 +1,4 @@ +class TgDevice_TurretMod extends TgDevice + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_TurretShot.uc b/Development/Src/TgGame/Classes/TgDevice_TurretShot.uc new file mode 100644 index 0000000..7609a09 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TurretShot.uc @@ -0,0 +1,8 @@ +class TgDevice_TurretShot extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=25.0000000,Y=0.0000000,Z=-18.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TurtlePower.uc b/Development/Src/TgGame/Classes/TgDevice_TurtlePower.uc new file mode 100644 index 0000000..4bb3fea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TurtlePower.uc @@ -0,0 +1,20 @@ +class TgDevice_TurtlePower extends TgDevice_Toggle + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +function CancelSafetyPeriodTimer() { } + +simulated event bool CanBeCanceled() { } + +simulated function InterruptOtherAbilities() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bUsesOutroLockout=true + m_fOutroLockoutTime=0.6000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TurtlePowerSmash.uc b/Development/Src/TgGame/Classes/TgDevice_TurtlePowerSmash.uc new file mode 100644 index 0000000..607e2ec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TurtlePowerSmash.uc @@ -0,0 +1,11 @@ +class TgDevice_TurtlePowerSmash extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event OnLinkDevice(TgPawn TgP) { } + +simulated event OnUnlinkDevice(TgPawn TgP) { } + +simulated event bool PlayHitReactionOverride() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_TyraAltFire.uc b/Development/Src/TgGame/Classes/TgDevice_TyraAltFire.uc new file mode 100644 index 0000000..8330514 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TyraAltFire.uc @@ -0,0 +1,9 @@ +class TgDevice_TyraAltFire extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceAltFire' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TyraInhand.uc b/Development/Src/TgGame/Classes/TgDevice_TyraInhand.uc new file mode 100644 index 0000000..01e299c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TyraInhand.uc @@ -0,0 +1,35 @@ +class TgDevice_TyraInhand extends TgDevice + native(ChampTyra) + hidecategories(Navigation) + config(Engine); + +var bool m_bUltIsActive; + +native function bool CheckAutoReload(); // Export UTgDevice_TyraInhand::execCheckAutoReload(FFrame&, void* const) + +native function bool RequiresAmmoToFire(); // Export UTgDevice_TyraInhand::execRequiresAmmoToFire(FFrame&, void* const) + +native function bool ShouldShowAmmoCount(); // Export UTgDevice_TyraInhand::execShouldShowAmmoCount(FFrame&, void* const) + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated function TgGameplayCurvesSet_RecoilSimple GetRecoilCurve() { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_fMeshFOV=77.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_TyraInhand' + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0000000,fMinAccuracy=0.8900000,fAccuracyLossPerShot=0.0300000,fAccuracyGainPerSec=2.0000000,fAccuracyGainDelay=0.1500000,nNumFreeShots=5) + m_fReticleBloomScale=0.5000000 + m_RecoilSettings=(bUsesRecoil=true,fRecoilReductionPerSec=100.0000000,fRecoilCenterDelay=0.1000000,fRecoilSmoothRate=7.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_TyraUlt.uc b/Development/Src/TgGame/Classes/TgDevice_TyraUlt.uc new file mode 100644 index 0000000..078eb37 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_TyraUlt.uc @@ -0,0 +1,11 @@ +class TgDevice_TyraUlt extends TgDevice_Stim + hidecategories(Navigation) + config(Engine); + +simulated event bool CanBeCanceled() { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated function TransitionOut() { } + +state DeviceFiring {} diff --git a/Development/Src/TgGame/Classes/TgDevice_Uppercut.uc b/Development/Src/TgGame/Classes/TgDevice_Uppercut.uc new file mode 100644 index 0000000..660ca62 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Uppercut.uc @@ -0,0 +1,23 @@ +class TgDevice_Uppercut extends TgDevice_Charge + native(ChampDemon) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function GetTargetingAim(out AimData Aim); // Export UTgDevice_Uppercut::execGetTargetingAim(FFrame&, void* const) + +simulated function bool IsUltActive() { } + +simulated event DeliverHit(ImpactInfo Impact) { } + +simulated event bool CanBeInterrupted() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bStopOnHitType=CSHT_GodOnly + m_ChargeTimingType=CFT_PreFire + m_bApplyHitOnTouch=false + m_bForce3PViewWhileFiring=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Vengeance.uc b/Development/Src/TgGame/Classes/TgDevice_Vengeance.uc new file mode 100644 index 0000000..bf2c30f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Vengeance.uc @@ -0,0 +1,4 @@ +class TgDevice_Vengeance extends TgDevice_ReversalMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Vengeance_Lex.uc b/Development/Src/TgGame/Classes/TgDevice_Vengeance_Lex.uc new file mode 100644 index 0000000..117e80d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Vengeance_Lex.uc @@ -0,0 +1,37 @@ +class TgDevice_Vengeance_Lex extends TgDevice + native(ChampLex) + hidecategories(Navigation) + config(Engine); + +const DISCOVERY_DEVICE_ID = 16914; + +var repnotify TgRepInfo_Player r_MarkedPlayer; +var TgPawn s_PreviouslyMarkedPlayer; +var array m_EnemyPawns; +var bool s_bRevealApplied; +var TgDevice s_DiscoveryDevice; + +replication { + if((bNetOwner && bNetInitial || bNetDirty) && int(Role) == int(ENetRole.ROLE_Authority)) r_MarkedPlayer; +} + +simulated event ReplicatedEvent(name VarName) { } + +native function MarkRandomPlayer(); // Export UTgDevice_Vengeance_Lex::execMarkRandomPlayer(FFrame&, void* const) + +native function UpdateMarkedPlayer(); // Export UTgDevice_Vengeance_Lex::execUpdateMarkedPlayer(FFrame&, void* const) + +native function SetMarkedPlayer(TgRepInfo_Player Target); // Export UTgDevice_Vengeance_Lex::execSetMarkedPlayer(FFrame&, void* const) + +native function int CalculateBounty(); // Export UTgDevice_Vengeance_Lex::execCalculateBounty(FFrame&, void* const) + +simulated function FireAmmunition() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=16914 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_VenomousGourd.uc b/Development/Src/TgGame/Classes/TgDevice_VenomousGourd.uc new file mode 100644 index 0000000..b5fb868 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_VenomousGourd.uc @@ -0,0 +1,9 @@ +class TgDevice_VenomousGourd extends TgDevice + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + m_bAimThroughReticule=true + m_vProjectileSpawnOffset=(X=40.0000000,Y=-9.0000000,Z=0.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_ViktorAmmoRefill.uc b/Development/Src/TgGame/Classes/TgDevice_ViktorAmmoRefill.uc new file mode 100644 index 0000000..4b56f45 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ViktorAmmoRefill.uc @@ -0,0 +1,5 @@ +class TgDevice_ViktorAmmoRefill extends TgDevice + hidecategories(Navigation) + config(Engine); + +simulated function FireAmmunition() { } diff --git a/Development/Src/TgGame/Classes/TgDevice_ViktorInhand.uc b/Development/Src/TgGame/Classes/TgDevice_ViktorInhand.uc new file mode 100644 index 0000000..69818c0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_ViktorInhand.uc @@ -0,0 +1,59 @@ +class TgDevice_ViktorInhand extends TgDevice + native(ChampViktor) + hidecategories(Navigation) + config(Engine); + +var bool m_bIsADS; +var () Vector m_vADSProjectileSpawnOffset; +var (Recoil) float m_fADSRecoilMultiplier; +var float m_fMinAccuracyDefault; +var float m_fMinAccuracyADS; +var float m_fAccuracyLossPerShotDefault; +var float m_fAccuracyLossPerShotADS; +var TgPawn_Character m_CachedPawnOwner; + +simulated event Vector GetProjectileSpawnOffset() { } + +simulated event SetAmmo(int AmmoCount, optional int ClipSize=-1, optional bool bShouldValidate=false, optional int ValidationIDOverride=0) { } + +simulated function ShowReticle(bool bShow) { } + +simulated function StartADSBonuses() { } + +simulated function EndADSBonuses() { } + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +simulated function bool HasCachedCharacter() { } + +simulated function TgGameplayCurvesSet_RecoilSimple GetRecoilCurve() { } + +simulated function float GetRecoilMultiplier() { } + +defaultproperties +{ + m_vADSProjectileSpawnOffset=(X=30.0000000,Y=0.0000000,Z=-3.0000000) + m_fADSRecoilMultiplier=1.0000000 + m_fMinAccuracyADS=1.0000000 + m_fAccuracyLossPerShotADS=0.0090000 + m_AltFireType=ALTFIRE_AlternateDevice + m_ReticuleType=RETICULE_Precise + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_vMeshViewOffset=(X=17.0000000,Y=0.0000000,Z=-5.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=30.0000000,Y=9.0000000,Z=-10.0000000) + m_fAltFireLockOutTime=0.0000000 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_ViktorInhand' + m_nLinkedDeviceIDs[0]=14157 + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ftLowMag",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H200ftLowMag",Distance=3200.0000000) + m_GameplayCurvesDeprecated=TgGameplayCurves'DeviceInhand' + m_ForceFeedbackStartFire=ForceFeedbackWaveform'LightForceFeedback' + m_AccuracySettings=(bUsesAdvancedAccuracy=true,fMaxAccuracy=1.0000000,fMinAccuracy=0.8400000,fAccuracyLossPerShot=0.0300000,fAccuracyGainPerSec=0.4800000,fAccuracyGainDelay=0.2000000) + m_RecoilSettings=(bUsesRecoil=true,fRecoilReductionPerSec=6.0000000,fRecoilCenterDelay=0.3000000,fRecoilSmoothRate=15.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Vine.uc b/Development/Src/TgGame/Classes/TgDevice_Vine.uc new file mode 100644 index 0000000..e3c073c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Vine.uc @@ -0,0 +1,44 @@ +class TgDevice_Vine extends TgDevice + native(ChampGrover) + hidecategories(Navigation) + config(Engine); + +var Actor m_PullTarget; +var Vector m_vPullLocation; +var float m_fPullSpeed; +var float m_fTruePostfireTime; +var float m_fPullEndOffset; +var bool m_bCanBeCanceled; +var bool m_bMissedPull; +var bool m_bIsPulling; +var bool m_bHasPulledOnce; +var bool m_bTeleportedAfterFiring; +var float m_fMomentumAfterPull; + +event PullToTarget(Actor Target, Vector targetPos) { } + +event MissPull() { } + +function EndPull() { } + +reliable client simulated function ClientEndPull() { } + +function SetIsPullingHitSpecial(bool bIsPulling) { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event bool ShouldCooldownAfterFire() { } + +function AuthStartCooldown(optional int nMode=-1, optional float fCooldownTimeOverride=-1.0000000) { } + +simulated event bool CanBeCanceled() { } + +state DeviceFiring {} + +defaultproperties +{ + m_fPullSpeed=2000.0000000 + m_fTruePostfireTime=0.3000000 + m_fPullEndOffset=7.0000000 + m_fMomentumAfterPull=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_WYRMJets.uc b/Development/Src/TgGame/Classes/TgDevice_WYRMJets.uc new file mode 100644 index 0000000..0cac1dd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_WYRMJets.uc @@ -0,0 +1,18 @@ +class TgDevice_WYRMJets extends TgDevice + native(ChampDrogoz) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var TgDevice m_CachedBoosterDevice; + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_WYRMJets::execGetMoveSpeedMultiplier(FFrame&, void* const) + +simulated event LinkedDeviceEquipped(TgDevice Dev) { } + +simulated event LinkedDeviceUnequipped(TgDevice Dev) { } + +defaultproperties +{ + m_nLinkedDeviceIDs[0]=13333 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_WardersField.uc b/Development/Src/TgGame/Classes/TgDevice_WardersField.uc new file mode 100644 index 0000000..198e547 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_WardersField.uc @@ -0,0 +1,20 @@ +class TgDevice_WardersField extends TgDevice + hidecategories(Navigation) + config(Engine); + +const WARDERSFIELD_POST_DEPLOY_LOCKOUT_TIME = 0.3f; + +simulated function bool InterceptSlotPressed(TgPlayerController TgController) { } + +simulated event bool CanBeCanceled() { } + +event OnDeployableDestroyed(TgDeployable deployable) { } + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +state DeviceFiring {} + +defaultproperties +{ + m_bDeployAtFeetOnFailure=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_WarpStep.uc b/Development/Src/TgGame/Classes/TgDevice_WarpStep.uc new file mode 100644 index 0000000..64b0b8b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_WarpStep.uc @@ -0,0 +1,20 @@ +class TgDevice_WarpStep extends TgDevice + hidecategories(Navigation) + config(Engine); + +var bool m_bRolledBackward; + +simulated event bool ShouldCooldownAfterFire() { } + +simulated function bool IsUltActive() { } + +simulated function UpdateDesiredFireMode() { } + +simulated function Rotator GetChargeDirection() { } + +simulated function FireAmmunition() { } + +defaultproperties +{ + m_IndividualOffhandCooldownTime=0.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Watchtower.uc b/Development/Src/TgGame/Classes/TgDevice_Watchtower.uc new file mode 100644 index 0000000..b73d44c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Watchtower.uc @@ -0,0 +1,4 @@ +class TgDevice_Watchtower extends TgDevice + native(ChampFlak) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_WeaponSwap.uc b/Development/Src/TgGame/Classes/TgDevice_WeaponSwap.uc new file mode 100644 index 0000000..de7eee3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_WeaponSwap.uc @@ -0,0 +1,44 @@ +class TgDevice_WeaponSwap extends TgDevice + native(ChampOwl) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine) + dependson(TgObject); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +simulated event bool IsFunctionallyToggleDevice() { } + +native function NotifyWeaponSwap(float fSwapTime); // Export UTgDevice_WeaponSwap::execNotifyWeaponSwap(FFrame&, void* const) + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function FiringEndTransition() { } + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_WeaponSwap::execGetMoveSpeedMultiplier(FFrame&, void* const) + +state DeviceFiring {} + +defaultproperties +{ + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftlowx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_nAimAssistPriorityWhileFiring=3 +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Weightless.uc b/Development/Src/TgGame/Classes/TgDevice_Weightless.uc new file mode 100644 index 0000000..31be4da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Weightless.uc @@ -0,0 +1,34 @@ +class TgDevice_Weightless extends TgDevice + native(ChampPip) + hidecategories(Navigation) + config(Engine); + +var float r_fSprintHorizontalSpeedMod; +var float r_fSprintJumpSpeedMod; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fSprintHorizontalSpeedMod, r_fSprintJumpSpeedMod; +} + +native function bool ShouldInterruptLift(); // Export UTgDevice_Weightless::execShouldInterruptLift(FFrame&, void* const) + +simulated function float GetHorizontalSpeedMultiplier() { } + +simulated function float GetJumpSpeedMultiplier() { } + +simulated function float CalcWeightlessHorizontalMultiplier() { } + +simulated function float CalcWeightlessJumpMultiplier() { } + +simulated event bool CanBeCanceled() { } + +simulated function bool ShouldInterruptReloadOnFire() { } + +state DeviceFiring {} + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit + m_bPostFireShouldInterruptStealth=false + m_bAbilityRequiresInhandResync=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Whirl.uc b/Development/Src/TgGame/Classes/TgDevice_Whirl.uc new file mode 100644 index 0000000..4ec05c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Whirl.uc @@ -0,0 +1,12 @@ +class TgDevice_Whirl extends TgDevice_Charge + hidecategories(Navigation) + config(Engine); + +simulated function Rotator GetChargeDirection() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bCanLeftClickCancel=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Whirlwind.uc b/Development/Src/TgGame/Classes/TgDevice_Whirlwind.uc new file mode 100644 index 0000000..41f32fd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Whirlwind.uc @@ -0,0 +1,29 @@ +class TgDevice_Whirlwind extends TgDevice_HitPulse + native(ChampGrover) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Whirlwind::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +native function bool CanFireIfLeftMouseDown(); // Export UTgDevice_Whirlwind::execCanFireIfLeftMouseDown(FFrame&, void* const) + +simulated event bool CanBeInterrupted() { } + +simulated event bool CanBeCanceled() { } + +simulated event bool CanJumpWhileFiring() { } + +simulated event bool CancelledByJumping() { } + +simulated function PersistTimer() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bAlwaysStartCooldown=false + m_bDisableLagCompensation=true +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Whirlwind2.uc b/Development/Src/TgGame/Classes/TgDevice_Whirlwind2.uc new file mode 100644 index 0000000..714165f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Whirlwind2.uc @@ -0,0 +1,12 @@ +class TgDevice_Whirlwind2 extends TgDevice_ActiveAura + hidecategories(Navigation) + config(Engine); + +simulated event bool ShouldLockFiring(TgDevice Current) { } + +simulated event bool CanBeCanceled() { } + +defaultproperties +{ + m_DeviceTimerBarType=DTBT_PostHit +} diff --git a/Development/Src/TgGame/Classes/TgDevice_WindTotem.uc b/Development/Src/TgGame/Classes/TgDevice_WindTotem.uc new file mode 100644 index 0000000..e9aef04 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_WindTotem.uc @@ -0,0 +1,4 @@ +class TgDevice_WindTotem extends TgDevice_TotemMod + native(Devices) + hidecategories(Navigation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgDevice_Withdraw.uc b/Development/Src/TgGame/Classes/TgDevice_Withdraw.uc new file mode 100644 index 0000000..5fe23b7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Withdraw.uc @@ -0,0 +1,20 @@ +class TgDevice_Withdraw extends TgDevice_ChargeBackward + native(ChampLongbow) + hidecategories(Navigation) + config(Engine); + +native function bool MustBeOnGroundToFire(); // Export UTgDevice_Withdraw::execMustBeOnGroundToFire(FFrame&, void* const) + +simulated event bool ShouldInterruptInhand() { } + +state DeviceFiring {} + +defaultproperties +{ + m_bBuildupShouldInterruptStealth=false + m_bPreFireShouldInterruptStealth=false + m_bFireShouldInterruptStealth=false + m_bPostFireShouldInterruptStealth=false + m_bCancelingShouldInterruptStealth=false + m_bForce3PViewWhileFiring=false +} diff --git a/Development/Src/TgGame/Classes/TgDevice_YingInhand.uc b/Development/Src/TgGame/Classes/TgDevice_YingInhand.uc new file mode 100644 index 0000000..1fc1c72 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_YingInhand.uc @@ -0,0 +1,59 @@ +class TgDevice_YingInhand extends TgDevice + native(ChampYing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var TgPawn_Ying m_CachedYingPawn; + +native function bool CanReload(optional bool bIsAutoReload=false); // Export UTgDevice_YingInhand::execCanReload(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated function bool HasCachedYingPawn() { } + +simulated function ImpactInfo CalcWeaponFire(vector StartTrace, vector EndTrace, optional out array ImpactList, optional vector Extent) { } + +function OnInstantShotVerified(ImpactInfo VerifiedPrimaryImpact) { } + +simulated function UpdateInhandTargetInfo(Actor HitActor, Vector HitLocation) { } + +function HandleClientReportedInstantShot(AimData InServerAim, AimData InClientAim, ImpactToValidate InPrimaryImpact, array InClientImpacts) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bUsesBurstFire=true + m_bOnlyFirstBurstCostsAmmo=true + m_bDoNotAllowHeadShots=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=0.0000000,Y=4.0000000,Z=-9.0000000) + m_fAltFireLockOutTime=0.0000000 + m_nBurstTotalShots=5 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_YingInhand' + m_AimAssistKeyframesMagnetVert[0]=(KeyframeName="V10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetVert[1]=(KeyframeName="V100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetVert[2]=(KeyframeName="V150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesMagnetHoriz[0]=(KeyframeName="H10ft",Distance=160.0000000) + m_AimAssistKeyframesMagnetHoriz[1]=(KeyframeName="H50ft",Distance=800.0000000) + m_AimAssistKeyframesMagnetHoriz[2]=(KeyframeName="H100ft",Distance=1600.0000000) + m_AimAssistKeyframesMagnetHoriz[3]=(KeyframeName="H150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccHoriz[0]=(KeyframeName="trackacc10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAccHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccHoriz[2]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[0]=(KeyframeName="trackang10ftx",Distance=160.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[1]=(KeyframeName="BasicX",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleHoriz[2]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAccVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAccVert[1]=(KeyframeName="trackacc150ftnull",Distance=2400.0000000) + m_AimAssistKeyframesTrackingAngleVert[0]=(KeyframeName="BasicY",Distance=1600.0000000) + m_AimAssistKeyframesTrackingAngleVert[1]=(KeyframeName="trackang150ftnull",Distance=2400.0000000) + m_ForceFeedbackStartFire=ForceFeedbackWaveform'FireYing' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_YingInhandProj.uc b/Development/Src/TgGame/Classes/TgDevice_YingInhandProj.uc new file mode 100644 index 0000000..eb4bea6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_YingInhandProj.uc @@ -0,0 +1,33 @@ +class TgDevice_YingInhandProj extends TgDevice + native(ChampYing) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +native function bool CanReload(optional bool bIsAutoReload=false); // Export UTgDevice_YingInhandProj::execCanReload(FFrame&, void* const) + +simulated event bool CanBeCanceled() { } + +simulated event bool CanBeInterrupted() { } + +simulated event bool ShouldCooldownAfterFire() { } + +simulated function HandleDeviceFormStartFire(int nDeviceModeNum, float fRefireTime, const out AimData Aim) { } + +simulated function float GetEstimatedTotalBurstTime(int nShotsRemaining) { } + +defaultproperties +{ + m_AltFireType=ALTFIRE_AlternateDevice + m_bAimThroughReticule=true + m_bAltFireEnabled=true + m_bUsesBurstFire=true + m_bOnlyFirstBurstCostsAmmo=true + m_bDoNotAllowHeadShots=true + m_vMeshViewOffset=(X=10.0000000,Y=2.0000000,Z=-2.0000000) + m_fWeaponBob=0.0000000 + m_vProjectileSpawnOffset=(X=55.0000000,Y=10.0000000,Z=-15.0000000) + m_fAltFireLockOutTime=0.0000000 + m_nBurstTotalShots=3 + m_WeaponMeshActorClass=Class'TgWeaponMeshActor_YingInhandProj' +} diff --git a/Development/Src/TgGame/Classes/TgDevice_Zodiac.uc b/Development/Src/TgGame/Classes/TgDevice_Zodiac.uc new file mode 100644 index 0000000..2308c08 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDevice_Zodiac.uc @@ -0,0 +1,15 @@ +class TgDevice_Zodiac extends TgDevice + native(ChampAstro) + hidecategories(Navigation) + implements(TgDeviceInterface_MoveSpeedMultiplier) + config(Engine); + +var array m_EffectRemainingTime; + +native function ApplyBuff(); // Export UTgDevice_Zodiac::execApplyBuff(FFrame&, void* const) + +native function RemoveBuff(); // Export UTgDevice_Zodiac::execRemoveBuff(FFrame&, void* const) + +simulated event bool CanBeInterrupted() { } + +native function float GetMoveSpeedMultiplier(); // Export UTgDevice_Zodiac::execGetMoveSpeedMultiplier(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgDistributionFloatLitParticleBrightness.uc b/Development/Src/TgGame/Classes/TgDistributionFloatLitParticleBrightness.uc new file mode 100644 index 0000000..288cec6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDistributionFloatLitParticleBrightness.uc @@ -0,0 +1,12 @@ +class TgDistributionFloatLitParticleBrightness extends DistributionFloatConstant + native + editinlinenew + collapsecategories + hidecategories(Object,Object,Object) + config(Engine); + +defaultproperties +{ + Constant=12.0000000 + bCanBeBaked=false +} diff --git a/Development/Src/TgGame/Classes/TgDistributionFloatSoundAttenuation.uc b/Development/Src/TgGame/Classes/TgDistributionFloatSoundAttenuation.uc new file mode 100644 index 0000000..1e834f7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDistributionFloatSoundAttenuation.uc @@ -0,0 +1,52 @@ +class TgDistributionFloatSoundAttenuation extends DistributionFloat + native + config(Engine) + editinlinenew + collapsecategories + hidecategories(Object,Object); + +enum SoundAttenuationType { + TG_ATTENUATION_None, // 0 + TG_ATTENUATION_Sm_foley, // 1 + TG_ATTENUATION_Lg_foley, // 2 + TG_ATTENUATION_Melee_Hit, // 3 + TG_ATTENUATION_Sm_gun, // 4 + TG_ATTENUATION_Med_gun, // 5 + TG_ATTENUATION_Lg_gun, // 6 + TG_ATTENUATION_Sm_exp, // 7 + TG_ATTENUATION_Med_exp, // 8 + TG_ATTENUATION_Lg_exp, // 9 +}; + +struct AttenuationGroup { + var name GroupName; + var float AttenuationDistance; + structdefaultproperties {} +}; + +var TgDistributionFloatSoundAttenuation.SoundAttenuationType AttenuationType; +var config float Attenuation_Sm_foley; +var config float Attenuation_Lg_foley; +var config float Attenuation_Melee_hit; +var config float Attenuation_Sm_gun; +var config float Attenuation_Med_gun; +var config float Attenuation_Lg_gun; +var config float Attenuation_Sm_exp; +var config float Attenuation_Med_exp; +var config float Attenuation_Lg_exp; +var () name GroupName; +var config array AttenuationGroups; + +defaultproperties +{ + AttenuationGroups[0]=(GroupName="Sm_foley",AttenuationDistance=1600.0000000) + AttenuationGroups[1]=(GroupName="Lg_foley",AttenuationDistance=3200.0000000) + AttenuationGroups[2]=(GroupName="Melee_hit",AttenuationDistance=6400.0000000) + AttenuationGroups[3]=(GroupName="Sm_gun",AttenuationDistance=4800.0000000) + AttenuationGroups[4]=(GroupName="Med_gun",AttenuationDistance=12800.0000000) + AttenuationGroups[5]=(GroupName="Lg_gun",AttenuationDistance=48000.0000000) + AttenuationGroups[6]=(GroupName="Sm_exp",AttenuationDistance=14400.0000000) + AttenuationGroups[7]=(GroupName="Med_exp",AttenuationDistance=80000.0000000) + AttenuationGroups[8]=(GroupName="Lg_exp",AttenuationDistance=144000.0000000) + bCanBeBaked=false +} diff --git a/Development/Src/TgGame/Classes/TgDoorMarker.uc b/Development/Src/TgGame/Classes/TgDoorMarker.uc new file mode 100644 index 0000000..aabe036 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDoorMarker.uc @@ -0,0 +1,47 @@ +class TgDoorMarker extends TgTeamBlocker + native(Navigation) + placeable + hidecategories(Navigation) + config(Engine); + +enum DoorStatus { + TGD_NONE, // 0 + TGD_LOCKED, // 1 + TGD_OPEN, // 2 + TGD_CLOSE, // 3 +}; + +var repnotify TgDoorMarker.DoorStatus r_eStatus; +var () TgDoorMarker.DoorStatus m_eInitStatus; +var TgCollisionProxy s_CollisionProxy; +var () float m_fProximity; +var () int m_nTeamThatControlsDoor; +var () int m_nMeshAssemblyId; +var () export editinline SkeletalMeshComponent m_DoorSMC; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_eStatus; +} + +native function LoadMesh(); // Export UTgDoorMarker::execLoadMesh(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PostBeginPlay() { } + +simulated function ClientOnStatusChange() { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event UnTouch(Actor Other) { } + +function bool ShouldDoorBeOpened() { } + +function bool ShouldDoorBeClosed() { } + +function CalculateDoorStatus() { } + +function SetDoorStatus(TgDoorMarker.DoorStatus eStatus) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgDropShadowDecalComponent.uc b/Development/Src/TgGame/Classes/TgDropShadowDecalComponent.uc new file mode 100644 index 0000000..c5264d6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDropShadowDecalComponent.uc @@ -0,0 +1,24 @@ +class TgDropShadowDecalComponent extends StaticMeshComponent + native(Pawns) + editinlinenew + hidecategories(Object) + config(Engine); + +var transient float LastCachedZ; +var transient Vector LastOwnerPos; + +native function UpdatePosition(TgPawn TgPOwner, const out Vector OwnerOffset, optional bool bIsInitial=false); // Export UTgDropShadowDecalComponent::execUpdatePosition(FFrame&, void* const) + +defaultproperties +{ + ReplacementPrimitive=none + bAcceptsStaticDecals=false + CollideActors=false + BlockActors=false + BlockZeroExtent=false + BlockNonZeroExtent=false + BlockRigidBody=false + AlwaysLoadOnServer=false + AbsoluteRotation=true + TranslucencySortPriority=-1 +} diff --git a/Development/Src/TgGame/Classes/TgDroppedItem.uc b/Development/Src/TgGame/Classes/TgDroppedItem.uc new file mode 100644 index 0000000..1d15f3d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgDroppedItem.uc @@ -0,0 +1,31 @@ +class TgDroppedItem extends Actor + native(Inventory) + notplaceable + hidecategories(Navigation) + config(Engine); + +var float m_fLifeSpan; +var bool m_bFadeOut; +var name m_nmPickUpState; +var repnotify int r_nItemId; +var export editinline MeshComponent c_Mesh; +var array s_EffectGroupList; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_nItemId; +} + +native function TgEffectGroup GetEffectGroup(int nType, out int nIndex); // Export UTgDroppedItem::execGetEffectGroup(FFrame&, void* const) + +native function bool ApplyItemSetup(); // Export UTgDroppedItem::execApplyItemSetup(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +function GiveTo(TgPawn P) { } + +state Pickup {} + +state FadeOut {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEffect.uc b/Development/Src/TgGame/Classes/TgEffect.uc new file mode 100644 index 0000000..6ccdf6f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffect.uc @@ -0,0 +1,77 @@ +class TgEffect extends Object + native(Effects) + config(Engine); + +const TGCM_NA = 119; + +const TGCM_ADD = 67; + +const TGCM_SUBTRACT = 70; + +const TGCM_PERC_INCREASE = 68; + +const TGCM_PERC_DECREASE = 69; + +const TGCM_SET = 11042; + +const TGCM_SET_PERC = 11043; + +const TGCM_ADD_PERC_MAX_HEALTH = 15033; + +const TG_ROOT_GROUNDSPEED = 10000; + +var TgEffectGroup m_EffectGroup; +var int m_nPropertyId; +var int m_nCalcMethodCode; +var bool m_bUseOnInterval; +var bool m_bRemovable; +var bool m_bAllowStacking; +var bool m_bApplyToProperty; +var int m_nPropertyValueId; +var float m_fCurrent; +var float m_fBase; +var float m_fMinimum; +var float m_fMaximum; +var float m_fScalingFactor; +var float m_fStaticValueOffset; +var float m_MaxKnockbackZ; +var float m_MinKnockbackZ; +var float m_KnockbackZMultiplier; + +native function TgEffect CloneEffect(); // Export UTgEffect::execCloneEffect(FFrame&, void* const) + +native function bool CanBeApplied(Actor Target); // Export UTgEffect::execCanBeApplied(FFrame&, void* const) + +native function SetProperty(Actor Target, int nPropertyId, float fNewValue); // Export UTgEffect::execSetProperty(FFrame&, void* const) + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffect::execApplyEffect(FFrame&, void* const) + +native function bool ApplyStacks(Actor Target, int nNumStacks); // Export UTgEffect::execApplyStacks(FFrame&, void* const) + +native function bool RemoveStacks(Actor Target, int nNumStacks); // Export UTgEffect::execRemoveStacks(FFrame&, void* const) + +native function ApplyToProperty(Actor Target, int nPropertyId, float fProratedAmount, optional bool bRemove=false); // Export UTgEffect::execApplyToProperty(FFrame&, void* const) + +native function float GetProratedValue(); // Export UTgEffect::execGetProratedValue(FFrame&, void* const) + +native function Reapply(Actor Target); // Export UTgEffect::execReapply(FFrame&, void* const) + +native function Remove(Actor Target, optional bool bResetToFollow); // Export UTgEffect::execRemove(FFrame&, void* const) + +native function TrackStats(TgPawn Instigator, Actor Target, ImpactInfo Impact, float fDamage, int iTargetDeviceModeId, bool bIsEnemy, optional float fMissingHealth=-1.0000000, optional float fMitigatedDamage=-1.0000000); // Export UTgEffect::execTrackStats(FFrame&, void* const) + +native function int GetTopMostDevice(TgDeviceFire devFire); // Export UTgEffect::execGetTopMostDevice(FFrame&, void* const) + +native function ApplyEnterCombatRules(Actor Instigator, Actor Target); // Export UTgEffect::execApplyEnterCombatRules(FFrame&, void* const) + +native function TgProperty GetTargetProperty(Actor Target, int nPropertyId); // Export UTgEffect::execGetTargetProperty(FFrame&, void* const) + +native function int GetDeviceIdFromMode(TgDeviceFire DeviceFireMode); // Export UTgEffect::execGetDeviceIdFromMode(FFrame&, void* const) + +defaultproperties +{ + m_bRemovable=true + m_MaxKnockbackZ=600.0000000 + m_MinKnockbackZ=200.0000000 + m_KnockbackZMultiplier=1.3000000 +} diff --git a/Development/Src/TgGame/Classes/TgEffectDamage.uc b/Development/Src/TgGame/Classes/TgEffectDamage.uc new file mode 100644 index 0000000..347d61c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectDamage.uc @@ -0,0 +1,40 @@ +class TgEffectDamage extends TgEffect + native(Effects) + config(Engine) + dependson(TgObject); + +var int m_nSimplifiedPropertyId; +var Class m_DamageTypeClass; +var Class m_DefaultDamageTypeClass; +var float m_fDamageInitial; +var float m_fBonusDamageToShields; +var bool m_bAllowLifeSteal; +var bool m_bCanBeBuffed; + +native function TgEffect CloneEffect(); // Export UTgEffectDamage::execCloneEffect(FFrame&, void* const) + +native function PostDamageHandler(Actor pTarget, TgPawn pInstigator, ImpactInfo Impact, float fPrevHealth, float fHealthChange, float fBuffedDamage, float fMitigatedDamage, const out ExtraDamageInfo ExtraInfo); // Export UTgEffectDamage::execPostDamageHandler(FFrame&, void* const) + +native function SendDamageMessages(Actor Source, Actor Target, float fDamage, float fMitigated, ImpactInfo thisImpact, const out ExtraDamageInfo ExtraInfo); // Export UTgEffectDamage::execSendDamageMessages(FFrame&, void* const) + +native function bool CanBeApplied(Actor Target); // Export UTgEffectDamage::execCanBeApplied(FFrame&, void* const) + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectDamage::execApplyEffect(FFrame&, void* const) + +native function PerformLifeSteal(TgPawn InstigatorPawn, ImpactInfo Impact, float fDamageAmount); // Export UTgEffectDamage::execPerformLifeSteal(FFrame&, void* const) + +native function bool ApplyStacks(Actor Target, int nNumStacks); // Export UTgEffectDamage::execApplyStacks(FFrame&, void* const) + +native function bool RemoveStacks(Actor Target, int nNumStacks); // Export UTgEffectDamage::execRemoveStacks(FFrame&, void* const) + +native function bool ApplyOnThisInterval(); // Export UTgEffectDamage::execApplyOnThisInterval(FFrame&, void* const) + +native function float GetProratedValue(); // Export UTgEffectDamage::execGetProratedValue(FFrame&, void* const) + +defaultproperties +{ + m_DefaultDamageTypeClass=Class'TgDamageType' + m_fDamageInitial=-1.0000000 + m_bAllowLifeSteal=true + m_bCanBeBuffed=true +} diff --git a/Development/Src/TgGame/Classes/TgEffectDamage_AstroDOT.uc b/Development/Src/TgGame/Classes/TgEffectDamage_AstroDOT.uc new file mode 100644 index 0000000..b1c11ee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectDamage_AstroDOT.uc @@ -0,0 +1,26 @@ +class TgEffectDamage_AstroDOT extends TgEffectDamage + native(Effects) + config(Engine); + +struct EffectInstanceInfo { + var float fTimestamp; + var float fDamageValue; + structdefaultproperties {} +}; + +var array m_EffectTimeStamps; +var array m_EffectDamageValues; +var native Pointer m_EffectInfo; + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectDamage_AstroDOT::execApplyEffect(FFrame&, void* const) + +native function AddDamageStamp(float Damage); // Export UTgEffectDamage_AstroDOT::execAddDamageStamp(FFrame&, void* const) + +native function TgEffect CloneEffect(); // Export UTgEffectDamage_AstroDOT::execCloneEffect(FFrame&, void* const) + +native function InitializeEffectInfo(); // Export UTgEffectDamage_AstroDOT::execInitializeEffectInfo(FFrame&, void* const) + +defaultproperties +{ + m_bCanBeBuffed=false +} diff --git a/Development/Src/TgGame/Classes/TgEffectDamage_Execute.uc b/Development/Src/TgGame/Classes/TgEffectDamage_Execute.uc new file mode 100644 index 0000000..428ef83 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectDamage_Execute.uc @@ -0,0 +1,10 @@ +class TgEffectDamage_Execute extends TgEffectDamage + native(Effects) + config(Engine); + +var bool m_bApplied; +var bool m_bExecute; + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectDamage_Execute::execApplyEffect(FFrame&, void* const) + +native function float GetProratedValue(); // Export UTgEffectDamage_Execute::execGetProratedValue(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgEffectDamage_NoLifeSteal.uc b/Development/Src/TgGame/Classes/TgEffectDamage_NoLifeSteal.uc new file mode 100644 index 0000000..ff358ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectDamage_NoLifeSteal.uc @@ -0,0 +1,7 @@ +class TgEffectDamage_NoLifeSteal extends TgEffectDamage + config(Engine); + +defaultproperties +{ + m_bAllowLifeSteal=false +} diff --git a/Development/Src/TgGame/Classes/TgEffectDamage_PresenceDoT.uc b/Development/Src/TgGame/Classes/TgEffectDamage_PresenceDoT.uc new file mode 100644 index 0000000..65ba91b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectDamage_PresenceDoT.uc @@ -0,0 +1,17 @@ +class TgEffectDamage_PresenceDoT extends TgEffectDamage + native(Effects) + config(Engine); + +struct PresenceDoTInstanceInfo { + var float fTimestamp; + var float fDamageValue; + structdefaultproperties {} +}; + +var array m_EffectTimeStamps; +var array m_EffectDamageValues; +var native Pointer m_DamageInstances; + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectDamage_PresenceDoT::execApplyEffect(FFrame&, void* const) + +native function TgEffect CloneEffect(); // Export UTgEffectDamage_PresenceDoT::execCloneEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgEffectForm.uc b/Development/Src/TgGame/Classes/TgEffectForm.uc new file mode 100644 index 0000000..1c3533e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm.uc @@ -0,0 +1,49 @@ +class TgEffectForm extends Object + native(Effects) + config(Engine) + dependson(TgPawn); + +var int c_nEffectGroupId; +var int c_nType; +var Actor c_Owner; +var native Pointer c_pwzEffectName; +var native Pointer c_pwzDescription; +var int c_nEffectIconId; +var array c_AppliedFxArray; +var bool c_bHiddenDueToStealth; +var bool c_bHiddenDueToFirstPerson; +var bool c_bMICApplied; +var bool m_bSpawnAtHitLocation; +var bool c_bIsDebuff; +var bool c_bIsCrit; +var bool c_bLocal; +var TgPawn.TG_POSTURE c_Posture; +var int c_PostureID; +var MaterialInstanceConstant m_MaterialInstanceConstant; +var TgPawn m_OwnerPawn; +var Vector m_HitLocation; +var Vector m_HitNormal; +var int c_nSkinId; +var TgEmitter_CameraEffect c_CameraEffect; +var int c_nStackCount; + +native function RecalculateFx(); // Export UTgEffectForm::execRecalculateFx(FFrame&, void* const) + +native function ShowEffectForm(bool bLocal); // Export UTgEffectForm::execShowEffectForm(FFrame&, void* const) + +native function HideEffectForm(); // Export UTgEffectForm::execHideEffectForm(FFrame&, void* const) + +native function Attach(Actor pOwner); // Export UTgEffectForm::execAttach(FFrame&, void* const) + +native function Reattach(); // Export UTgEffectForm::execReattach(FFrame&, void* const) + +native function Detach(); // Export UTgEffectForm::execDetach(FFrame&, void* const) + +native function AdjustHidden(); // Export UTgEffectForm::execAdjustHidden(FFrame&, void* const) + +native function bool ShouldShowEffectForm(); // Export UTgEffectForm::execShouldShowEffectForm(FFrame&, void* const) + +defaultproperties +{ + c_bLocal=true +} diff --git a/Development/Src/TgGame/Classes/TgEffectForm_BuffBelt.uc b/Development/Src/TgGame/Classes/TgEffectForm_BuffBelt.uc new file mode 100644 index 0000000..d8551f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_BuffBelt.uc @@ -0,0 +1,14 @@ +class TgEffectForm_BuffBelt extends TgEffectForm + native(Effects) + config(Engine); + +var float m_OrbitAngleYawOffset; +var float m_OrbitHeightOffset; +var bool m_bFirstUpdate; +var float m_OrbitRotationSpeed; + +defaultproperties +{ + m_bFirstUpdate=true + m_OrbitRotationSpeed=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgEffectForm_DisablePawn.uc b/Development/Src/TgGame/Classes/TgEffectForm_DisablePawn.uc new file mode 100644 index 0000000..b73adfa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_DisablePawn.uc @@ -0,0 +1,14 @@ +class TgEffectForm_DisablePawn extends TgEffectForm + native(Effects) + config(Engine); + +var bool m_bPauseAnims; + +native function ShowEffectForm(bool bLocal); // Export UTgEffectForm_DisablePawn::execShowEffectForm(FFrame&, void* const) + +native function HideEffectForm(); // Export UTgEffectForm_DisablePawn::execHideEffectForm(FFrame&, void* const) + +defaultproperties +{ + m_bPauseAnims=true +} diff --git a/Development/Src/TgGame/Classes/TgEffectForm_Freeze.uc b/Development/Src/TgGame/Classes/TgEffectForm_Freeze.uc new file mode 100644 index 0000000..a73738b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_Freeze.uc @@ -0,0 +1,12 @@ +class TgEffectForm_Freeze extends TgEffectForm_DisablePawn + native(Effects) + config(Engine); + +var int m_BurstingIceFXId; + +native function HideEffectForm(); // Export UTgEffectForm_Freeze::execHideEffectForm(FFrame&, void* const) + +defaultproperties +{ + m_BurstingIceFXId=1945 +} diff --git a/Development/Src/TgGame/Classes/TgEffectForm_Maeve_Midnight.uc b/Development/Src/TgGame/Classes/TgEffectForm_Maeve_Midnight.uc new file mode 100644 index 0000000..5d4f6c5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_Maeve_Midnight.uc @@ -0,0 +1,18 @@ +class TgEffectForm_Maeve_Midnight extends TgEffectForm + native(ChampBlades) + config(Engine); + +var int m_nEndFXId; +var TgSpecialFx m_pEndFX; +var TgEmitter_CameraEffect m_pCameraEffect; +var float m_fEndFXKillTime; + +native function HideEffectForm(); // Export UTgEffectForm_Maeve_Midnight::execHideEffectForm(FFrame&, void* const) + +native function KillEndFX(); // Export UTgEffectForm_Maeve_Midnight::execKillEndFX(FFrame&, void* const) + +defaultproperties +{ + m_nEndFXId=7588 + m_fEndFXKillTime=2.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgEffectForm_Maldamba_Slither.uc b/Development/Src/TgGame/Classes/TgEffectForm_Maldamba_Slither.uc new file mode 100644 index 0000000..ff09952 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_Maldamba_Slither.uc @@ -0,0 +1,10 @@ +class TgEffectForm_Maldamba_Slither extends TgEffectForm + native(Effects) + config(Engine); + +var int m_nMaterialGroupID; + +defaultproperties +{ + m_nMaterialGroupID=1758 +} diff --git a/Development/Src/TgGame/Classes/TgEffectForm_Oracle_SoulStacks.uc b/Development/Src/TgGame/Classes/TgEffectForm_Oracle_SoulStacks.uc new file mode 100644 index 0000000..fee258e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_Oracle_SoulStacks.uc @@ -0,0 +1,3 @@ +class TgEffectForm_Oracle_SoulStacks extends TgEffectForm + native(ChampOracle) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgEffectForm_WithMeshes.uc b/Development/Src/TgGame/Classes/TgEffectForm_WithMeshes.uc new file mode 100644 index 0000000..b7a0141 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectForm_WithMeshes.uc @@ -0,0 +1,37 @@ +class TgEffectForm_WithMeshes extends TgEffectForm + native(Effects) + config(Engine); + +struct EffectMeshInfo { + var export editinline MeshComponent Mesh; + var int nMeshId; + var name DisplayGroup; + var bool AbsoluteTranslation; + var bool AbsoluteRotation; + var bool AbsoluteScale; + var bool bWillSelfDestruct; + var Vector vAdditiveTranslation; + var Rotator rAdditiveRotation; + var float fScaleMultipler; + structdefaultproperties {} +}; + +var array m_EffectMeshInfos; + +native function RecalculateFx(); // Export UTgEffectForm_WithMeshes::execRecalculateFx(FFrame&, void* const) + +native function ShowEffectForm(bool bLocal); // Export UTgEffectForm_WithMeshes::execShowEffectForm(FFrame&, void* const) + +native function HideEffectForm(); // Export UTgEffectForm_WithMeshes::execHideEffectForm(FFrame&, void* const) + +native function Attach(Actor pOwner); // Export UTgEffectForm_WithMeshes::execAttach(FFrame&, void* const) + +native function Reattach(); // Export UTgEffectForm_WithMeshes::execReattach(FFrame&, void* const) + +native function Detach(); // Export UTgEffectForm_WithMeshes::execDetach(FFrame&, void* const) + +native function AdjustHidden(); // Export UTgEffectForm_WithMeshes::execAdjustHidden(FFrame&, void* const) + +native function AttachMeshes(Actor pOwner); // Export UTgEffectForm_WithMeshes::execAttachMeshes(FFrame&, void* const) + +native function DetachMeshes(); // Export UTgEffectForm_WithMeshes::execDetachMeshes(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgEffectGroup.uc b/Development/Src/TgGame/Classes/TgEffectGroup.uc new file mode 100644 index 0000000..a93148c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectGroup.uc @@ -0,0 +1,279 @@ +class TgEffectGroup extends Object + native(Effects) + config(Engine); + +const TGEGT_STACKING = 155; + +const TGEGT_STACKING_REFRESH = 15440; + +const TGEGT_STRONGEST_WINS = 157; + +const TGEGT_STRONGEST_MASKS = 15416; + +const TGEGT_REFRESH = 10257; + +const TGEGC_LOCAL = 302; + +const TGEGC_REMOVE_EFFECT = 877; + +const TGEGC_BLEEDING = 15026; + +const TGEGC_CARD_EQUIP_STATS = 15373; + +const TGEGC_CC_IMMUNE = 15053; + +const TGEGC_CONFUSED = 15011; + +const TGEGC_CRIPPLE = 10585; + +const TGEGC_DAZE = 15009; + +const TGEGC_DISARM = 10423; + +const TGEGC_FEAR = 10051; + +const TGEGC_FROZEN = 15017; + +const TGEGC_JUMP_PENALTY = 11068; + +const TGEGC_KNOCKBACK = 10052; + +const TGEGC_KNOCKUP = 15014; + +const TGEGC_MARKED = 15012; + +const TGEGC_MARKED_WITH_UI = 15294; + +const TGEGC_MOUNT_SPEED_BUFF = 15063; + +const TGEGC_MOVEMENT_SPEED_BUFF = 15062; + +const TGEGC_ON_FIRE = 10858; + +const TGEGC_POISONED = 10859; + +const TGEGC_POLYMORPH = 15051; + +const TGEGC_REDUCED_HEALING = 15368; + +const TGEGC_REVEALED = 15184; + +const TGEGC_ROOT = 10050; + +const TGEGC_SHIELD_SPECIAL = 15291; + +const TGEGC_SILENCE = 10053; + +const TGEGC_SLOW = 10048; + +const TGEGC_STEALTH = 10863; + +const TGEGC_STUN = 10049; + +const TGEGC_STUN_TAUNT = 10649; + +const TGEGC_WALLHACK = 10966; + +const TGEGC_WEAKEN = 15071; + +const TGEGC_LEX_REVEAL = 15506; + +const TGEGC_SOUL_ORB_STACK = 15547; + +const TGEGC_MESMERIZE = 16608; + +const TGEGC_ASTRO_DOT = 16620; + +const TGEGC_ASTRO_HEAL = 16627; + +const TGEGC_ASTRO_BUFF = 16628; + +const TGEGC_PRESENCE_DOT = 16637; + +const TGEGC_FLASH_BANG = 16658; + +const TGEGC_LIFT = 16657; + +const TIMER_INTERVAL = 0; + +const TIMER_LIFEDONE = 1; + +const DEFAULT_MAX_EFFECT_STACKS = 100; + +const TGST_HIGHEST_VALUE = 10130; + +const TGST_IN_HAND = 10131; + +const TGST_ITEM_POWER = 10552; + +const TGST_TOTAL_POWER = 10553; + +const TGST_BASE_POWER = 10625; + +const TG_MESMERIZE_MIN_DURATION = 0.5f; + +enum AttackType { + TGAT_None, // 0 + TGAT_Range, // 1 + TGAT_AOE, // 2 + TGAT_Falling, // 3 +}; + +struct LifeTimeCalcInfo { + var bool bInitialized; + var float fReductionFromPawnProtections; + var float fReductionFromCCProtectionsPerc; + var float fReductionFromDoTProtections; + var float fReductionFromDoTProtectionsPerc; + var int nCrowdControlCount; + var bool bCrowdControlImmune; + var float m_fCalculatedLifeTime; + structdefaultproperties {} +}; + +var int m_nType; +var Actor m_Target; +var Actor m_Instigator; +var int m_nEffectGroupId; +var float m_fLifeTime; +var float m_fModLifeTime; +var float m_fLifeTimeIncreaseFromInstigator; +var float m_fApplyInterval; +var array m_Effects; +var int m_nDamageType; +var TgEffectGroup.AttackType m_eAttackType; +var Controller.EStunType m_StunType; +var bool m_bIsManaged; +var bool m_bHasSlowEffect; +var bool m_bHasStealthEffect; +var bool m_bHasSlowToHaltEffect; +var bool m_bDoesDamage; +var bool m_bDoesDamageOverTime; +var bool m_bContagious; +var bool s_bActiveFlag; +var bool s_bCriticalHitFlag; +var bool m_bDeviceSpecificFlag; +var bool m_bHasVisual; +var float m_fPercAbsorbedDamage; +var int m_nApplicationType; +var float m_fApplicationValue; +var float m_fApplicationChance; +var int m_nApplicationCategoryCode; +var int m_nBehaviorCategoryCode; +var int m_nReqDeviceInstanceId; +var float m_fBuffValue; +var float m_fPhysicalPowerScaling; +var float m_fMagicalPowerScaling; +var float m_fLifetimeScaling; +var float m_fLifetimeMax; +var int m_nScalingType; +var int m_nTargetType; +var int m_nTargetAffectsType; +var int m_nHitSpecialSituationalType; +var int m_nNumStacks; +var int m_nNumMaxStacks; +var TgEffectGroup s_NonContagiousEffectGroup; +var ImpactInfo m_Impact; +var int m_nPosture; +var int m_nFxAppliedId; +var name m_nmDisplayGroup; +var int s_ManagedEffectListIndex; +var TgEffectManager s_OwnerEffectManager; +var name m_nmDamageTypeClass; +var int m_nSourceDeviceInstId; +var int m_nSourceItemId; +var float s_fEGShieldHealth; +var float s_fEGShieldHealthMax; +var ForceFeedbackWaveform m_Waveform; +var native Pointer m_pEffectGroupSetup; +var LifeTimeCalcInfo m_LastLifeTimeCalcInfo; + +native function TgEffectGroup CloneEffectGroup(optional bool bCloneAllEffects); // Export UTgEffectGroup::execCloneEffectGroup(FFrame&, void* const) + +native function RemoveEffects(optional bool bClearTimers=true); // Export UTgEffectGroup::execRemoveEffects(FFrame&, void* const) + +native function float TotalPropertyEffectAmt(int nPropertyId); // Export UTgEffectGroup::execTotalPropertyEffectAmt(FFrame&, void* const) + +native function float QueryFxTransitionTime(); // Export UTgEffectGroup::execQueryFxTransitionTime(FFrame&, void* const) + +native function bool EffectExists(int nPropId); // Export UTgEffectGroup::execEffectExists(FFrame&, void* const) + +native function TgProperty GetProperty(Actor Target, int nPropertyId); // Export UTgEffectGroup::execGetProperty(FFrame&, void* const) + +native function float CalcCategoryProtection(Actor Target, float fValue, out float fPercReduction); // Export UTgEffectGroup::execCalcCategoryProtection(FFrame&, void* const) + +native function float CalcDoTLifeTimeProtection(Actor Target, float fValue, out float fDirectReduction, out float fPercReduction); // Export UTgEffectGroup::execCalcDoTLifeTimeProtection(FFrame&, void* const) + +native function bool IsBuff(); // Export UTgEffectGroup::execIsBuff(FFrame&, void* const) + +native function bool PersistsThroughDeath(); // Export UTgEffectGroup::execPersistsThroughDeath(FFrame&, void* const) + +native function bool IsInstantaneous(); // Export UTgEffectGroup::execIsInstantaneous(FFrame&, void* const) + +native function bool IsSlow(); // Export UTgEffectGroup::execIsSlow(FFrame&, void* const) + +native function bool IsStealth(); // Export UTgEffectGroup::execIsStealth(FFrame&, void* const) + +native function bool IsSlowToHalt(); // Export UTgEffectGroup::execIsSlowToHalt(FFrame&, void* const) + +native function bool IsCrit(); // Export UTgEffectGroup::execIsCrit(FFrame&, void* const) + +native function bool IsDot(); // Export UTgEffectGroup::execIsDot(FFrame&, void* const) + +native function bool IsDebuff(); // Export UTgEffectGroup::execIsDebuff(FFrame&, void* const) + +native function bool IsSuperiorCrowdControl(); // Export UTgEffectGroup::execIsSuperiorCrowdControl(FFrame&, void* const) + +native function bool IsCrowdControl(); // Export UTgEffectGroup::execIsCrowdControl(FFrame&, void* const) + +native function bool AppliesDiminishingReturns(); // Export UTgEffectGroup::execAppliesDiminishingReturns(FFrame&, void* const) + +native function bool ReceivesDiminishingReturns(); // Export UTgEffectGroup::execReceivesDiminishingReturns(FFrame&, void* const) + +native function bool DoesDamage(); // Export UTgEffectGroup::execDoesDamage(FFrame&, void* const) + +native function bool HasCategoryCode(int nCategoryCode, optional bool bBehaviorOnly); // Export UTgEffectGroup::execHasCategoryCode(FFrame&, void* const) + +native function bool IsActive(); // Export UTgEffectGroup::execIsActive(FFrame&, void* const) + +native function SetActive(bool bActive, optional bool bRemoving=false); // Export UTgEffectGroup::execSetActive(FFrame&, void* const) + +native function HandleStatusEffects(bool bRemoving); // Export UTgEffectGroup::execHandleStatusEffects(FFrame&, void* const) + +native function float GetTimeElapsed(); // Export UTgEffectGroup::execGetTimeElapsed(FFrame&, void* const) + +native function float GetTimeRemaining(); // Export UTgEffectGroup::execGetTimeRemaining(FFrame&, void* const) + +native function float GetPercentTimeRemaining(); // Export UTgEffectGroup::execGetPercentTimeRemaining(FFrame&, void* const) + +native function float GetIntervalTimeRemaining(); // Export UTgEffectGroup::execGetIntervalTimeRemaining(FFrame&, void* const) + +native function bool ApplyEffects(); // Export UTgEffectGroup::execApplyEffects(FFrame&, void* const) + +native function ApplyInterval(); // Export UTgEffectGroup::execApplyInterval(FFrame&, void* const) + +native function LifeDone(); // Export UTgEffectGroup::execLifeDone(FFrame&, void* const) + +native function float GetLifeTime(optional bool bModifiers=false, optional out LifeTimeCalcInfo CalcInfo); // Export UTgEffectGroup::execGetLifeTime(FFrame&, void* const) + +native function float GetUtilityPower(); // Export UTgEffectGroup::execGetUtilityPower(FFrame&, void* const) + +native function QueueRemovalOnManagerTick(); // Export UTgEffectGroup::execQueueRemovalOnManagerTick(FFrame&, void* const) + +native function bool HasShield(); // Export UTgEffectGroup::execHasShield(FFrame&, void* const) + +native function float GetShieldHealth(); // Export UTgEffectGroup::execGetShieldHealth(FFrame&, void* const) + +native function float GetShieldMaxHealth(); // Export UTgEffectGroup::execGetShieldMaxHealth(FFrame&, void* const) + +native function float DamageShield(float fDamage); // Export UTgEffectGroup::execDamageShield(FFrame&, void* const) + +native function float HealShield(float fHeal); // Export UTgEffectGroup::execHealShield(FFrame&, void* const) + +defaultproperties +{ + m_StunType=STUN_TYPE_NORMAL + m_fApplicationChance=1.0000000 + m_nNumMaxStacks=100 + s_ManagedEffectListIndex=-1 +} diff --git a/Development/Src/TgGame/Classes/TgEffectHeal.uc b/Development/Src/TgGame/Classes/TgEffectHeal.uc new file mode 100644 index 0000000..8d882cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectHeal.uc @@ -0,0 +1,19 @@ +class TgEffectHeal extends TgEffect + native(Effects) + config(Engine); + +var float m_fMissingHealthInitial; +var int m_nIntervalCount; +var int m_nSimplifiedPropertyId; + +native function bool CanBeApplied(Actor Target); // Export UTgEffectHeal::execCanBeApplied(FFrame&, void* const) + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectHeal::execApplyEffect(FFrame&, void* const) + +native function bool ApplyStacks(Actor Target, int nNumStacks); // Export UTgEffectHeal::execApplyStacks(FFrame&, void* const) + +native function bool RemoveStacks(Actor Target, int nNumStacks); // Export UTgEffectHeal::execRemoveStacks(FFrame&, void* const) + +native function PostHealHandler(Actor pTarget, TgPawn pInstigator, ImpactInfo Impact, float fHealthChange, float fHealAmount); // Export UTgEffectHeal::execPostHealHandler(FFrame&, void* const) + +native function TgEffect CloneEffect(); // Export UTgEffectHeal::execCloneEffect(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgEffectManager.uc b/Development/Src/TgGame/Classes/TgEffectManager.uc new file mode 100644 index 0000000..3b2928f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectManager.uc @@ -0,0 +1,292 @@ +class TgEffectManager extends Actor + native(Effects) + nativereplication + notplaceable + hidecategories(Navigation) + config(Engine); + +const TGEA_MAX_EFFECTS = 16; + +const TGEA_MAX_EFFECTS_QUEUE = 16; + +const TGEGS_EMPTY = 0; + +const TGEGS_ACTIVE_REP = 1; + +const TGEGS_ACTIVE = 2; + +const TGEGS_FLASH_REP = 3; + +const TGEGS_EMPTY_REP = 4; + +const REFRESH_NONE = 0; + +const REFRESH_REUSE = 1; + +const REFRESH_ADD = 2; + +const AIE_DAMAGE = 0; + +const AIE_HEALTH = 1; + +const AIE_MANA = 2; + +const AIE_STASIS = 4; + +const AIE_STUN = 5; + +const AIE_PROPERTY = 6; + +const AIE_PROPERTY_PERC = 7; + +const AIE_ENERGY = 8; + +const AIE_STUN_PROXY_EFFECT_GROUP_ID = 33431; + +const CONTRIBUTION_BUFFER = 0.75f; + +const CONTRIBUTION_BUFFEE = 0.25f; + +const TG_DEFAULTSPAWNGUARDTIME = 3.0f; + +const WALL_STUN_CHECK_HEIGHT = 62.0f; + +const WALL_STUN_CHECK_DISTANCE = 96.0f; + +enum EDiminshingReturnsStackType { + DRST_None, // 0 + DRST_CrowdControl, // 1 + DRST_SuperiorCrowdControl, // 2 + DRST_Stun, // 3 +}; + +struct EffectQueueEntry { + var int nEffectGroupID; + var int nExtraInfo; + var Vector vHitLocation; + var Rotator rHitNormal; + structdefaultproperties {} +}; + +struct EffectListEntry { + var int nEffectGroupID; + var byte byNumStacks; + var float fInitTimeRemaining; + var int nExtraInfo; + structdefaultproperties {} +}; + +struct StunStackEntry { + var TgEffect Effect; + var Controller.EStunType StunType; + structdefaultproperties {} +}; + +struct EnergyStunStackEntry { + var TgEffect Effect; + structdefaultproperties {} +}; + +struct ReduceActiveCooldownEntry { + var int nDeviceId; + var float fValue; + var bool bPercent; + var float fApplicationTime; + var float fCooldownFloor; + structdefaultproperties {} +}; + +struct DiminishingReturnsStackInfo { + var TgEffectManager.EDiminshingReturnsStackType StackType; + var init array DevicesApplyingThisTick; + var init array Timestamps; + var int nStackCount; + var float fRelevancyTime; + structdefaultproperties {} +}; + +var repnotify EffectListEntry r_ManagedEffectList[16]; +var byte c_byCounterList[16]; +var Controller.EStunType s_eCachedStunType; +var float m_fTimeRemaining[16]; +var TgEffectForm c_Forms[16]; +var bool c_ActiveTimers; +var repnotify bool r_bRelevancyNotify; +var EffectQueueEntry r_EventQueue[16]; +var repnotify int r_nNextQueueIndex; +var repnotify int r_nFirstValidQueueIndex; +var int c_nLastQueueIndex; +var array s_AppliedEffectGroups; +var repnotify Actor r_Owner; +var TgEffectGroup m_ApplyDamageEffectGroup; +var TgEffect m_ApplyDamageEffect; +var TgEffectGroup m_ApplyHealthEffectGroup; +var TgEffect m_ApplyHealthEffect; +var TgEffectGroup m_ApplyManaEffectGroup; +var TgEffect m_ApplyManaEffect; +var TgEffectGroup m_ApplyEnergyEffectGroup; +var TgEffect m_ApplyEnergyEffect; +var array s_StunStack; +var array s_EnergyStunStack; +var array s_ReduceActiveCooldownEffects; +var float m_fMaxReduceActiveCooldownDelay; +var int s_nSilenceCount; +var int s_nDisarmCount; +var int s_nCrippleCount; +var int s_nStealthCount; +var int s_nDazeCount; +var int s_nMarkedCount; +var int s_nSlowCount; +var int s_bStealthDisabledCount; +var int s_nOnFireCount; +var int s_nCCImmuneCount; +var int s_nBleedingCount; +var int s_nKnockbackCount; +var int s_nRootCount; +var int s_nPoisonedCount; +var int s_nBoostCount; +var int s_nStealthInCombatCount; +var int s_nWallHackCount; +var int s_nForceOutOfCombatCount; +var int s_nPolymorphCount; +var int s_nRevealedCount; +var int s_nFlashCount; +var float s_fSpawnGuardTime; +var array s_InstigatorWallReveals; +var array s_nInstigatorWallRevealCount; +var array s_InstigatorStealthReveals; +var array s_nInstigatorStealthRevealCount; +var array s_SlowCaps; +var array s_MaxHPDamageCaps; +var array s_CurHPDamageCaps; +var int s_FreezeBehaviorCount; +var array s_DiminishingReturnsStacks; +var const int m_nDiminishingReturnMaxStacks; +var array s_ActiveDamageDeviceIntercepts; +var array s_ActiveDamageMitigationIntercepts; +var array s_ActiveOnLandedIntercepts; +var array s_ActiveWallStuns; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_ManagedEffectList, r_Owner, r_bRelevancyNotify; +} + +native function int SetEffectRep(TgEffectGroup eg, int nSkinId); // Export UTgEffectManager::execSetEffectRep(FFrame&, void* const) + +native function UpdateEffectRep(TgEffectGroup eg); // Export UTgEffectManager::execUpdateEffectRep(FFrame&, void* const) + +native function ClearEffectRep(TgEffectGroup Group); // Export UTgEffectManager::execClearEffectRep(FFrame&, void* const) + +native function UpdateEffectForms(); // Export UTgEffectManager::execUpdateEffectForms(FFrame&, void* const) + +native function UpdateQueueEffectForms(); // Export UTgEffectManager::execUpdateQueueEffectForms(FFrame&, void* const) + +native function UpdateManagedEffectForms(); // Export UTgEffectManager::execUpdateManagedEffectForms(FFrame&, void* const) + +native function bool RemoveEffectGroupById(int nEffectGroupID, optional int nNumStacks=0, const optional Actor theInstigator); // Export UTgEffectManager::execRemoveEffectGroupById(FFrame&, void* const) + +native function bool RemoveEffectGroupsByCategory(int nCategoryCode, optional int nNumStacks=0, const optional Actor theInstigator); // Export UTgEffectManager::execRemoveEffectGroupsByCategory(FFrame&, void* const) + +native function bool RemoveAllEffectGroups(TgEffectGroup eg); // Export UTgEffectManager::execRemoveAllEffectGroups(FFrame&, void* const) + +native function bool ResetEffectGroupLifeTimeById(int nEffectGroupID, float Lifetime); // Export UTgEffectManager::execResetEffectGroupLifeTimeById(FFrame&, void* const) + +native function bool ResetEffectGroupLifeTimeByCategory(int nCategoryCode, float Lifetime); // Export UTgEffectManager::execResetEffectGroupLifeTimeByCategory(FFrame&, void* const) + +native function RemoveAllDebuff(); // Export UTgEffectManager::execRemoveAllDebuff(FFrame&, void* const) + +native function RemoveAllSuperiorCrowdControl(); // Export UTgEffectManager::execRemoveAllSuperiorCrowdControl(FFrame&, void* const) + +native function RemoveAllCrowdControl(); // Export UTgEffectManager::execRemoveAllCrowdControl(FFrame&, void* const) + +native function bool IsStrongest(TgEffectGroup eg, bool bConsiderLifetime, out TgEffectGroup prevStrongest); // Export UTgEffectManager::execIsStrongest(FFrame&, void* const) + +native function TgEffectGroup GetNextStrongest(TgEffectGroup eg); // Export UTgEffectManager::execGetNextStrongest(FFrame&, void* const) + +native function RemoveAllEffects(); // Export UTgEffectManager::execRemoveAllEffects(FFrame&, void* const) + +native function RemoveAllEffectsOnDeath(); // Export UTgEffectManager::execRemoveAllEffectsOnDeath(FFrame&, void* const) + +native function RemoveAllStealthEffects(); // Export UTgEffectManager::execRemoveAllStealthEffects(FFrame&, void* const) + +native function RemoveAllMesmerizeEffects(); // Export UTgEffectManager::execRemoveAllMesmerizeEffects(FFrame&, void* const) + +native function TgEffectGroup GetEffectGroup(int nEffectGroupID, const optional Actor theInstigator); // Export UTgEffectManager::execGetEffectGroup(FFrame&, void* const) + +native function TgEffectGroup GetEffectGroupByCategory(int nCategoryCode, const optional Actor theInstigator); // Export UTgEffectManager::execGetEffectGroupByCategory(FFrame&, void* const) + +native function UpdateEffectFormVisibility(); // Export UTgEffectManager::execUpdateEffectFormVisibility(FFrame&, void* const) + +native function ClearAllClientEffectForms(); // Export UTgEffectManager::execClearAllClientEffectForms(FFrame&, void* const) + +native function bool IsSpawnGuarded(); // Export UTgEffectManager::execIsSpawnGuarded(FFrame&, void* const) + +native function bool IsStunned(); // Export UTgEffectManager::execIsStunned(FFrame&, void* const) + +native function bool IsSlowed(); // Export UTgEffectManager::execIsSlowed(FFrame&, void* const) + +native function bool IsDazed(); // Export UTgEffectManager::execIsDazed(FFrame&, void* const) + +native function RecalculateFx(); // Export UTgEffectManager::execRecalculateFx(FFrame&, void* const) + +native function RecalculateBeltFx(); // Export UTgEffectManager::execRecalculateBeltFx(FFrame&, void* const) + +native function HandleOnLandedIntercepts(); // Export UTgEffectManager::execHandleOnLandedIntercepts(FFrame&, void* const) + +native function ApplyDamage(int nDamage, optional Actor aInstigator, optional int nAttackType, optional int nDamageType, optional ImpactInfo Impact, optional int nEffectGroupCategory); // Export UTgEffectManager::execApplyDamage(FFrame&, void* const) + +native function ApplyHealth(int nHealth, optional Actor aInstigator, optional int nAttackType, optional int nDamageType, optional ImpactInfo Impact, optional int nEffectGroupCategory); // Export UTgEffectManager::execApplyHealth(FFrame&, void* const) + +native function ApplyMana(int nMana, optional Actor aInstigator, optional int nAttackType, optional int nDamageType, optional ImpactInfo Impact, optional int nEffectGroupCategory); // Export UTgEffectManager::execApplyMana(FFrame&, void* const) + +native function ApplyEnergy(int nEnergy, optional Actor aInstigator, optional int nAttackType, optional int nDamageType, optional ImpactInfo Impact, optional int nEffectGroupCategory); // Export UTgEffectManager::execApplyEnergy(FFrame&, void* const) + +native function ApplyStun(float fDuration, optional Actor aInstigator, optional int nAttackType, optional int nDamageType, optional ImpactInfo Impact, optional Controller.EStunType StunType); // Export UTgEffectManager::execApplyStun(FFrame&, void* const) + +native function ApplySpawnGuard(); // Export UTgEffectManager::execApplySpawnGuard(FFrame&, void* const) + +native function RemoveSpawnGuard(); // Export UTgEffectManager::execRemoveSpawnGuard(FFrame&, void* const) + +native function ApplyStasis(int nValue, optional Actor aInstigator, optional int nAttackType, optional int nDamageType, optional ImpactInfo Impact, optional int nEffectGroupCategory); // Export UTgEffectManager::execApplyStasis(FFrame&, void* const) + +native function ReduceActiveCooldown(ReduceActiveCooldownEntry effectEntry, optional bool bInitialApplication=true); // Export UTgEffectManager::execReduceActiveCooldown(FFrame&, void* const) + +native function AddDelayedReduceActiveCooldownEffect(ReduceActiveCooldownEntry effectEntry); // Export UTgEffectManager::execAddDelayedReduceActiveCooldownEffect(FFrame&, void* const) + +native function RemoveDelayedReduceActiveCooldownEffect(ReduceActiveCooldownEntry effectEntry); // Export UTgEffectManager::execRemoveDelayedReduceActiveCooldownEffect(FFrame&, void* const) + +native function ProcessReduceActiveCooldownEffects(); // Export UTgEffectManager::execProcessReduceActiveCooldownEffects(FFrame&, void* const) + +native function TgEffectGroup ApplyProperty(float nValue, int nPropId, optional Actor aInstigator, optional ImpactInfo Impact, optional int nCategory=0, optional bool bApplyAsPercent=false); // Export UTgEffectManager::execApplyProperty(FFrame&, void* const) + +native function RemoveProperty(TgEffectGroup EffectGroup); // Export UTgEffectManager::execRemoveProperty(FFrame&, void* const) + +native function TgEffectGroup ProcessEffect(TgEffectGroup EffectGroup, optional Actor aInstigator, optional int nNumStacks=1, optional ImpactInfo Impact); // Export UTgEffectManager::execProcessEffect(FFrame&, void* const) + +native function int GetStackCountFromEffectGroupId(int nEffectGroupID, optional Actor aInstigator); // Export UTgEffectManager::execGetStackCountFromEffectGroupId(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event UpdateFirstValidQueueIndex() { } + +simulated event PostDemoRewind() { } + +function int ShieldTakeDamage(int nDamage) { } + +defaultproperties +{ + r_nNextQueueIndex=-1 + c_nLastQueueIndex=-1 + m_fMaxReduceActiveCooldownDelay=4.0000000 + s_DiminishingReturnsStacks[0]=(StackType=DRST_CrowdControl,DevicesApplyingThisTick=none,Timestamps=none,nStackCount=0,fRelevancyTime=7.0000000) + s_DiminishingReturnsStacks[1]=(StackType=DRST_SuperiorCrowdControl,DevicesApplyingThisTick=none,Timestamps=none,nStackCount=0,fRelevancyTime=7.0000000) + s_DiminishingReturnsStacks[2]=(StackType=DRST_Stun,DevicesApplyingThisTick=none,Timestamps=none,nStackCount=0,fRelevancyTime=7.0000000) + m_nDiminishingReturnMaxStacks=3 + RemoteRole=ROLE_SimulatedProxy + bHidden=true + bReplicateInstigator=true + bReplicateMovement=false + NetPriority=1.1000000 +} diff --git a/Development/Src/TgGame/Classes/TgEffectModifyDeployable.uc b/Development/Src/TgGame/Classes/TgEffectModifyDeployable.uc new file mode 100644 index 0000000..53491bb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyDeployable.uc @@ -0,0 +1,17 @@ +class TgEffectModifyDeployable extends TgEffect + native(Effects) + config(Engine); + +native function bool CanBeApplied(Actor Target); // Export UTgEffectModifyDeployable::execCanBeApplied(FFrame&, void* const) + +native function SetProperty(Actor Target, int nPropertyId, float fNewValue); // Export UTgEffectModifyDeployable::execSetProperty(FFrame&, void* const) + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectModifyDeployable::execApplyEffect(FFrame&, void* const) + +native function ApplyToProperty(Actor Target, int nPropertyId, float fProratedAmount, optional bool bRemove=false); // Export UTgEffectModifyDeployable::execApplyToProperty(FFrame&, void* const) + +native function float GetProratedValue(); // Export UTgEffectModifyDeployable::execGetProratedValue(FFrame&, void* const) + +native function Remove(Actor Target, optional bool bResetToFollow); // Export UTgEffectModifyDeployable::execRemove(FFrame&, void* const) + +native function TgProperty GetTargetProperty(Actor Target, int nPropertyId); // Export UTgEffectModifyDeployable::execGetTargetProperty(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgEffectModifyEffect.uc b/Development/Src/TgGame/Classes/TgEffectModifyEffect.uc new file mode 100644 index 0000000..adfd5ad --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyEffect.uc @@ -0,0 +1,17 @@ +class TgEffectModifyEffect extends TgEffect + native(Effects) + config(Engine); + +native function bool CanBeApplied(Actor Target); // Export UTgEffectModifyEffect::execCanBeApplied(FFrame&, void* const) + +native function SetProperty(Actor Target, int nPropertyId, float fNewValue); // Export UTgEffectModifyEffect::execSetProperty(FFrame&, void* const) + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectModifyEffect::execApplyEffect(FFrame&, void* const) + +native function ApplyToProperty(Actor Target, int nPropertyId, float fProratedAmount, optional bool bRemove=false); // Export UTgEffectModifyEffect::execApplyToProperty(FFrame&, void* const) + +native function float GetProratedValue(); // Export UTgEffectModifyEffect::execGetProratedValue(FFrame&, void* const) + +native function Remove(Actor Target, optional bool bResetToFollow); // Export UTgEffectModifyEffect::execRemove(FFrame&, void* const) + +native function TgProperty GetTargetProperty(Actor Target, int nPropertyId); // Export UTgEffectModifyEffect::execGetTargetProperty(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty.uc new file mode 100644 index 0000000..006a6a7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty.uc @@ -0,0 +1,25 @@ +class TgEffectModifyProperty extends TgEffect + abstract + native(Effects) + config(Engine); + +var TgDeviceFire m_TargetDeviceFire; +var int m_eEquipPointTarget; +var array m_fStaticValueOffsets; + +native function bool CanBeApplied(Actor Target); // Export UTgEffectModifyProperty::execCanBeApplied(FFrame&, void* const) + +native function SetProperty(Actor Target, int nPropertyId, float fNewValue); // Export UTgEffectModifyProperty::execSetProperty(FFrame&, void* const) + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffectModifyProperty::execApplyEffect(FFrame&, void* const) + +native function ApplyToProperty(Actor Target, int nPropertyId, float fProratedAmount, optional bool bRemove=false); // Export UTgEffectModifyProperty::execApplyToProperty(FFrame&, void* const) + +native function Remove(Actor Target, optional bool bResetToFollow); // Export UTgEffectModifyProperty::execRemove(FFrame&, void* const) + +native function TgProperty GetTargetProperty(Actor Target, int nPropertyId); // Export UTgEffectModifyProperty::execGetTargetProperty(FFrame&, void* const) + +defaultproperties +{ + m_bApplyToProperty=true +} diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty_Ability1.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Ability1.uc new file mode 100644 index 0000000..31e969f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Ability1.uc @@ -0,0 +1,7 @@ +class TgEffectModifyProperty_Ability1 extends TgEffectModifyProperty + config(Engine); + +defaultproperties +{ + m_eEquipPointTarget=2 +} diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty_Ability2.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Ability2.uc new file mode 100644 index 0000000..49cd054 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Ability2.uc @@ -0,0 +1,7 @@ +class TgEffectModifyProperty_Ability2 extends TgEffectModifyProperty + config(Engine); + +defaultproperties +{ + m_eEquipPointTarget=3 +} diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty_AltFire.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty_AltFire.uc new file mode 100644 index 0000000..bbc07f7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty_AltFire.uc @@ -0,0 +1,8 @@ +class TgEffectModifyProperty_AltFire extends TgEffectModifyProperty + native(Effects) + config(Engine); + +defaultproperties +{ + m_eEquipPointTarget=16 +} diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty_Child.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Child.uc new file mode 100644 index 0000000..28c282f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Child.uc @@ -0,0 +1,3 @@ +class TgEffectModifyProperty_Child extends TgEffectModifyProperty + native(Effects) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty_Inhand.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Inhand.uc new file mode 100644 index 0000000..67615ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Inhand.uc @@ -0,0 +1,7 @@ +class TgEffectModifyProperty_Inhand extends TgEffectModifyProperty + config(Engine); + +defaultproperties +{ + m_eEquipPointTarget=1 +} diff --git a/Development/Src/TgGame/Classes/TgEffectModifyProperty_Movement.uc b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Movement.uc new file mode 100644 index 0000000..abaaaaf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffectModifyProperty_Movement.uc @@ -0,0 +1,7 @@ +class TgEffectModifyProperty_Movement extends TgEffectModifyProperty + config(Engine); + +defaultproperties +{ + m_eEquipPointTarget=4 +} diff --git a/Development/Src/TgGame/Classes/TgEffect_Lift.uc b/Development/Src/TgGame/Classes/TgEffect_Lift.uc new file mode 100644 index 0000000..d45a9ba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEffect_Lift.uc @@ -0,0 +1,20 @@ +class TgEffect_Lift extends TgEffect + native(Effects) + config(Engine); + +var bool m_bApplyKnockup; +var bool m_bRemoveCripple; +var bool m_bRemoveRoot; +var float m_fZHeight; + +native function bool ApplyEffect(Actor Target, optional ImpactInfo Impact, optional bool bLatent); // Export UTgEffect_Lift::execApplyEffect(FFrame&, void* const) + +native function TgEffect CloneEffect(); // Export UTgEffect_Lift::execCloneEffect(FFrame&, void* const) + +native function Remove(Actor Target, optional bool bResetToFollow); // Export UTgEffect_Lift::execRemove(FFrame&, void* const) + +defaultproperties +{ + m_bRemoveCripple=true + m_fZHeight=-99999.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgElevatingVolume.uc b/Development/Src/TgGame/Classes/TgElevatingVolume.uc new file mode 100644 index 0000000..3418a13 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgElevatingVolume.uc @@ -0,0 +1,6 @@ +class TgElevatingVolume extends PhysicsVolume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter.uc b/Development/Src/TgGame/Classes/TgEmitter.uc new file mode 100644 index 0000000..6742feb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter.uc @@ -0,0 +1,19 @@ +class TgEmitter extends Emitter + native(FX) + hidecategories(Navigation) + config(Engine); + +var repnotify name BoneName; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) BoneName; +} + +simulated event ReplicatedEvent(name VarName) { } + +function AttachTo(Pawn P, name NewBoneName) { } + +simulated function ScaleEmitter(float ScaleFactor) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitterCrashlanding.uc b/Development/Src/TgGame/Classes/TgEmitterCrashlanding.uc new file mode 100644 index 0000000..17207be --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitterCrashlanding.uc @@ -0,0 +1,22 @@ +class TgEmitterCrashlanding extends TgEmitterSpawnable + hidecategories(Navigation) + config(Engine); + +var export editinline StaticMeshComponent m_PrimaryMesh; +var export editinline StaticMeshComponent m_SecondaryMesh; +var float ParticleDurationAfterImpact; +var export editinline LensFlareComponent m_LensFlare; +var export editinline AudioComponent m_AudioComponent; + +simulated function SetPrimaryMesh(StaticMesh StaticMeshToSet) { } + +simulated function SetSecondaryMesh(StaticMesh StaticMeshToSet) { } + +simulated function SetAudio(SoundCue SoundCueToSet) { } + +simulated function OnImpact() { } + +simulated function PostImpactComplete() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitterSpawnable.uc b/Development/Src/TgGame/Classes/TgEmitterSpawnable.uc new file mode 100644 index 0000000..772287e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitterSpawnable.uc @@ -0,0 +1,7 @@ +class TgEmitterSpawnable extends Emitter + native(FX) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitterSpawnable_TeamColor.uc b/Development/Src/TgGame/Classes/TgEmitterSpawnable_TeamColor.uc new file mode 100644 index 0000000..17b5dde --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitterSpawnable_TeamColor.uc @@ -0,0 +1,6 @@ +class TgEmitterSpawnable_TeamColor extends TgEmitter_TeamColor + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect.uc new file mode 100644 index 0000000..fb11bc7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect.uc @@ -0,0 +1,32 @@ +class TgEmitter_CameraEffect extends TgEmitter + native(FX) + hidecategories(Navigation) + config(Engine) + dependson(TgSpecialFx); + +var () protected float m_fDistFromCamera; +var () bool m_bShowOnlyIn1P; +var bool m_bIsIn1P; +var bool m_bIsCameraEffectActive; +var array m_SoundList; + +function Destroyed() { } + +simulated function Activate() { } + +simulated function Deactivate() { } + +simulated event Reactivate() { } + +simulated event SetCameraEffectActive(bool bActive) { } + +simulated function SetSoundList(array SoundList) { } + +native simulated function PlaySounds(); // Export UTgEmitter_CameraEffect::execPlaySounds(FFrame&, void* const) + +native simulated function StopSounds(); // Export UTgEmitter_CameraEffect::execStopSounds(FFrame&, void* const) + +native function UpdateLocation(const out Vector CamLoc, const out Rotator CamRot, float CamFOVDeg); // Export UTgEmitter_CameraEffect::execUpdateLocation(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Bleed.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Bleed.uc new file mode 100644 index 0000000..37593e5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Bleed.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Bleed extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_CCImmune.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_CCImmune.uc new file mode 100644 index 0000000..ed23396 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_CCImmune.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_CCImmune extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Cripple.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Cripple.uc new file mode 100644 index 0000000..2eb5e09 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Cripple.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Cripple extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBase.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBase.uc new file mode 100644 index 0000000..a38bd3c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBase.uc @@ -0,0 +1,27 @@ +class TgEmitter_CameraEffect_DamageBase extends TgEmitter_CameraEffect + abstract + native(FX) + hidecategories(Navigation) + config(Engine); + +enum EDamageEffectScreenLocation { + DESL_Right, // 0 + DESL_TopRight, // 1 + DESL_Top, // 2 + DESL_TopLeft, // 3 + DESL_Left, // 4 + DESL_BottomLeft, // 5 + DESL_Bottom, // 6 + DESL_BottomRight, // 7 +}; + +var const TgEmitter_CameraEffect_DamageBase.EDamageEffectScreenLocation ScreenLocation; + +function SetDamageIntensity(float fDamageIntensity, bool bCritical) { } + +simulated function Activate() { } + +native function UpdateLocation(const out Vector CamLoc, const out Rotator CamRot, float CamFOVDeg); // Export UTgEmitter_CameraEffect_DamageBase::execUpdateLocation(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottom.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottom.uc new file mode 100644 index 0000000..1fd0854 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottom.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageBottom extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottomLeft.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottomLeft.uc new file mode 100644 index 0000000..17a4b06 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottomLeft.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageBottomLeft extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottomRight.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottomRight.uc new file mode 100644 index 0000000..a7dcfe4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageBottomRight.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageBottomRight extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageLeft.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageLeft.uc new file mode 100644 index 0000000..15d4921 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageLeft.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageLeft extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageRight.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageRight.uc new file mode 100644 index 0000000..8b201a9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageRight.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageRight extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTop.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTop.uc new file mode 100644 index 0000000..fa81ff1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTop.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageTop extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTopLeft.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTopLeft.uc new file mode 100644 index 0000000..e00281f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTopLeft.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageTopLeft extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTopRight.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTopRight.uc new file mode 100644 index 0000000..c772971 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_DamageTopRight.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_DamageTopRight extends TgEmitter_CameraEffect_DamageBase + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Daze.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Daze.uc new file mode 100644 index 0000000..285104c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Daze.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Daze extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Fire.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Fire.uc new file mode 100644 index 0000000..43ad23c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Fire.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Fire extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Freeze.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Freeze.uc new file mode 100644 index 0000000..486f3f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Freeze.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Freeze extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Heal.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Heal.uc new file mode 100644 index 0000000..071beef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Heal.uc @@ -0,0 +1,8 @@ +class TgEmitter_CameraEffect_Heal extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +function SetHealIntensity(float fHealIntensity, bool bCritical) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Hidden.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Hidden.uc new file mode 100644 index 0000000..b2a8a8a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Hidden.uc @@ -0,0 +1,8 @@ +class TgEmitter_CameraEffect_Hidden extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +simulated function ChangeTemplate(ParticleSystem NewTemplate) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Knockback.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Knockback.uc new file mode 100644 index 0000000..a9fdf85 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Knockback.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Knockback extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Mark.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Mark.uc new file mode 100644 index 0000000..d0fe2eb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Mark.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Mark extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Poison.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Poison.uc new file mode 100644 index 0000000..67c25df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Poison.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Poison extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_PreTeleport.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_PreTeleport.uc new file mode 100644 index 0000000..1be7f50 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_PreTeleport.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_PreTeleport extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Revealed.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Revealed.uc new file mode 100644 index 0000000..4fb2256 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Revealed.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Revealed extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Root.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Root.uc new file mode 100644 index 0000000..2df8452 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Root.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Root extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Slow.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Slow.uc new file mode 100644 index 0000000..5aeffa1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Slow.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Slow extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Stun.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Stun.uc new file mode 100644 index 0000000..1995cdf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Stun.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Stun extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Teleport.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Teleport.uc new file mode 100644 index 0000000..360ab39 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Teleport.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Teleport extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Venom.uc b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Venom.uc new file mode 100644 index 0000000..983644a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_CameraEffect_Venom.uc @@ -0,0 +1,6 @@ +class TgEmitter_CameraEffect_Venom extends TgEmitter_CameraEffect + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEmitter_TeamColor.uc b/Development/Src/TgGame/Classes/TgEmitter_TeamColor.uc new file mode 100644 index 0000000..d087eda --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEmitter_TeamColor.uc @@ -0,0 +1,14 @@ +class TgEmitter_TeamColor extends Emitter + native(FX) + hidecategories(Navigation) + config(Engine); + +var () int nTaskForce; +var () ParticleChannelContainer DefaultParticleChannels; + +native function SetPSCChannels(); // Export UTgEmitter_TeamColor::execSetPSCChannels(FFrame&, void* const) + +simulated function NotifyLocalPlayerTeamReceived() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgEndOfWorldVolume.uc b/Development/Src/TgGame/Classes/TgEndOfWorldVolume.uc new file mode 100644 index 0000000..19dccf4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgEndOfWorldVolume.uc @@ -0,0 +1,7 @@ +class TgEndOfWorldVolume extends BlockingVolume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgExplosionLight.uc b/Development/Src/TgGame/Classes/TgExplosionLight.uc new file mode 100644 index 0000000..2ed8697 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgExplosionLight.uc @@ -0,0 +1,41 @@ +class TgExplosionLight extends PointLightComponent + native + editinlinenew + hidecategories(Object) + config(Engine); + +struct LightValues { + var float StartTime; + var float Radius; + var float Brightness; + var Color LightColor; + var Color EnemyLightColor; + var Color LocalLightColor; + structdefaultproperties {} +}; + +var bool bCheckFrameRate; +var bool bInitialized; +var () bool bIsEnemy; +var () bool bIsLocal; +var bool bIsLooping; +var float HighDetailFrameTime; +var float Lifetime; +var int TimeShiftIndex; +var () array TimeShift; +var () int LoopIndex; + +native function ResetLight(); // Export UTgExplosionLight::execResetLight(FFrame&, void* const) + +delegate OnLightFinished(TgExplosionLight Light); + +defaultproperties +{ + bCheckFrameRate=true + HighDetailFrameTime=0.0150000 + LoopIndex=-1 + Radius=256.0000000 + Brightness=8.0000000 + LightColor=(R=255,G=255,B=255,A=255) + CastShadows=false +} diff --git a/Development/Src/TgGame/Classes/TgFatalityFactory.uc b/Development/Src/TgGame/Classes/TgFatalityFactory.uc new file mode 100644 index 0000000..853ca85 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgFatalityFactory.uc @@ -0,0 +1,17 @@ +class TgFatalityFactory extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +var TgFatalityMeshActor m_FatalityMeshActor; +var () LightingChannelContainer m_LightingChannels; + +simulated function PlayEpicFatality(int MeshAsmId) { } + +defaultproperties +{ + m_LightingChannels=(bInitialized=false,BSP=false,Static=false,Dynamic=false,CompositeDynamic=false,Skybox=false,Unnamed_1=false,Unnamed_2=false,Unnamed_3=false,Unnamed_4=false,Unnamed_5=false,Unnamed_6=true,Cinematic_1=false,Cinematic_2=false,Cinematic_3=false,Cinematic_4=false,Cinematic_5=false,Cinematic_6=false,Cinematic_7=false,Cinematic_8=false,Cinematic_9=false,Cinematic_10=false,Gameplay_1=false,Gameplay_2=false,Gameplay_3=false,Gameplay_4=false,Crowd=false) + Components[0]=none + bStatic=true + bNoDelete=true +} diff --git a/Development/Src/TgGame/Classes/TgFatalityMeshActor.uc b/Development/Src/TgGame/Classes/TgFatalityMeshActor.uc new file mode 100644 index 0000000..1ddde1e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgFatalityMeshActor.uc @@ -0,0 +1,13 @@ +class TgFatalityMeshActor extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var () int m_nTaskForceId; +var () export editinline TgSkeletalMeshComponent m_Mesh; + +native function Initialize(int MeshAssemblyId, int TaskForceId); // Export UTgFatalityMeshActor::execInitialize(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgFlagContentData.uc b/Development/Src/TgGame/Classes/TgFlagContentData.uc new file mode 100644 index 0000000..1db69ee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgFlagContentData.uc @@ -0,0 +1,35 @@ +class TgFlagContentData extends Object + native + config(Engine); + +enum FlagContentDataType { + FCDT_None, // 0 + FCDT_Egyptian_Lobby, // 1 + FCDT_Egyptian_Wall, // 2 + FCDT_Norse_Lobby, // 3 + FCDT_Norse_Wall, // 4 + FCDT_Greek_Lobby, // 5 + FCDT_Greek_Wall, // 6 + FCDT_Roman_Lobby, // 7 + FCDT_Roman_Wall, // 8 + FCDT_Chinese_Lobby, // 9 + FCDT_Chinese_Wall, // 10 + FCDT_Mayan_Lobby, // 11 + FCDT_Mayan_Wall, // 12 + FCDT_Hindu_Lobby, // 13 + FCDT_Hindu_Wall, // 14 +}; + +struct FlagMeshData { + var TgFlagContentData.FlagContentDataType ContentDataType; + var TgMenuMeshInfo MainMeshInfo; + structdefaultproperties {} +}; + +var array m_MeshData; + +function Init() { } + +event GetMeshData(TgFlagContentData.FlagContentDataType ContentDataType, out FlagMeshData Data) { } + +function PreloadTextures(float ForceDuration) { } diff --git a/Development/Src/TgGame/Classes/TgFogOfWarBarrier.uc b/Development/Src/TgGame/Classes/TgFogOfWarBarrier.uc new file mode 100644 index 0000000..d037b7d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgFogOfWarBarrier.uc @@ -0,0 +1,10 @@ +class TgFogOfWarBarrier extends StaticMeshActor + native + hidecategories(Navigation) + config(Engine); + +var () bool m_bOneDirectional; +var () float m_fBlockMinimumDistance; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgFortressVolume.uc b/Development/Src/TgGame/Classes/TgFortressVolume.uc new file mode 100644 index 0000000..3f5bd17 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgFortressVolume.uc @@ -0,0 +1,15 @@ +class TgFortressVolume extends Volume + native + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int TaskforceIndex; + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event UnTouch(Actor Other) { } + +event PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGame.uc b/Development/Src/TgGame/Classes/TgGame.uc old mode 100755 new mode 100644 index 1558ad5..8b303f6 --- a/Development/Src/TgGame/Classes/TgGame.uc +++ b/Development/Src/TgGame/Classes/TgGame.uc @@ -1,63 +1,251 @@ -class TgGame extends FrameworkGame - abstract - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - -var Class m_ContentPackageReference; -var float m_fSpawnProtectionTime; -var float m_fMaxRepawnTime; -var float m_fUnpauseCountdownRemaining; -var int s_nBotPlayerCount; -var bool s_bSpawnOfflinePawns; -var bool s_bGameInitialized; -var bool s_bGameEndMissionProcessed; -var bool s_bMissionSealed; -var const bool m_bForceUsePRISpawnPoint; -var bool m_bRewardCalculated; -var bool m_bStatsCanTie; -var bool m_bStatsIsSymmetric; -var protected bool m_bIsTutorialGametype; -var protected bool m_bIsPracticeGametype; -var globalconfig bool m_bEnableHeadShots; -var bool m_bPlayOfTheGameLocked; -var bool m_bSpawnDisconnectedPlayersStunned; -var bool m_bPlayersCanOnlyDieOnce; -var bool m_bUseKillEmotes; -var bool m_bNotifyKillCombos; -var bool m_bFirstBloodAwarded; -var protected int s_nNextActorInstanceId; -var protected int s_nNextProjectileInstanceId; -var init array s_Taskforce1AIVolumesIndices; -var init array s_Taskforce2AIVolumesIndices; -var init native map{VOID,VOID} s_AIAnnotations; -var array s_ActorFactories; -var float s_fXPModifier; -var const config float m_fGlobalCooldownTime; -var init array m_ClientLogins; -var config float m_fOcclusionCalcPeriod; -var config float m_fOcclusionMaxDeviation; -var float m_fPlayOfTheGameLength; -var float m_fPlayOfTheGameIntroBufferLength; -var float m_fPlayOfTheGameOuttroBufferLength; -var array m_ReadyPlayers; - -// Export UTgGame::execEnsureBotPrecache(FFrame&, void* const) -native function EnsureBotPrecache(int nBotId, int nSkinId, int nHeadId, int nDeviceSkinId); - -// Export UTgGame::execEnsureDevicePrecache(FFrame&, void* const) -native function EnsureDevicePrecache(int nDeviceId, int nDeviceSkinId); - -// Export UTgGame::execSpawnTemplatePlayer(FFrame&, void* const) -native function TgPawn SpawnTemplatePlayer(TgPlayerController pTgPC, int nProfileId, optional int nSkinId = 0, optional int nWeaponSkinId = 0, optional int nHeadSkinId = 0); - -// Export UTgGame::execSpawnBotById(FFrame&, void* const) -native function TgPawn SpawnBotById(int nBotId, int nSkinId, int nHeadId, int nWeaponSkinId, Vector vLocation, Rotator rRotation, TgBotFactory pFactory, optional bool bIgnoreCollision = false, optional TgPawn pOwnerPawn, optional TgDeviceFire deviceFire, optional float fDeployAnimLength = 0.0000000, optional name ControllerClassName, optional name BehaviorTreeName); - -// Export UTgGame::execSpawnPlayerCharacter(FFrame&, void* const) -native function TgPawn SpawnPlayerCharacter(Controller C, Vector vLocation); - -function bool ChangeTeam(Controller Other, int Num, bool bNewTeam){} -function Pawn SpawnDefaultPawnFor(Controller NewPlayer, NavigationPoint StartSpot) {} - -function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName){} \ No newline at end of file +class TgGame extends FrameworkGame + abstract + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +const UNKNOWN_PROJECTILE_INSTANCE_ID = 0; + +const FIRST_VALID_PROJECTILE_INSTANCE_ID = 1; + +const BASE_RESPAWN_TIME_SEC = 5; + +const DEFAULT_MOUNT = 11512; + +struct PlayOfTheGameInfo { + var TgRepInfo_Player PRI; + var float Rating; + structdefaultproperties {} +}; + +struct PlayOfTheGameEventConfig { + var TgObject.EPlayOfTheGameEventType EventType; + var float BaseRating; + var float MultMod; + var float MaxTimeDiff; + var bool ScaleByTimeDiff; + var int MaxMultInstances; + var float Threshold; + var float ThresholdTimeOut; + structdefaultproperties {} +}; + +struct TgAIBotPlayersToSpawn { + var init string fsName; + var int nBotId; + var int nTaskForceId; + var int nSpawnTableDetailId; + structdefaultproperties {} +}; + +var Class m_ContentPackageReference; +var TgObject.GAME_WIN_STATE m_GameWinState; +var TgObject.TG_GAME_TYPE m_GameType; +var float m_fSpawnProtectionTime; +var float m_fMaxRepawnTime; +var float m_fUnpauseCountdownRemaining; +var int s_nBotPlayerCount; +var bool s_bGameInitialized; +var bool s_bGameEndMissionProcessed; +var bool s_bMissionSealed; +var const bool m_bForceUsePRISpawnPoint; +var bool m_bRewardCalculated; +var bool m_bStatsCanTie; +var bool m_bStatsIsSymmetric; +var protected bool m_bIsTutorialGametype; +var protected bool m_bIsPracticeGametype; +var globalconfig bool m_bEnableHeadShots; +var bool m_bPlayOfTheGameLocked; +var protected int s_nNextActorInstanceId; +var protected int s_nNextProjectileInstanceId; +var init array s_AIVolumes; +var init array s_Taskforce1AIVolumesIndices; +var init array s_Taskforce2AIVolumesIndices; +var init array s_FortressVolumes; +var init array s_DeviceVolumes; +var array s_ActorFactories; +var float s_fXPModifier; +var const config float m_fGlobalCooldownTime; +var init array m_ClientLogins; +var config float m_fOcclusionCalcPeriod; +var config float m_fOcclusionMaxDeviation; +var PlayOfTheGameInfo m_PlayOfTheGame; +var float m_fPlayOfTheGameLength; +var float m_fPlayOfTheGameIntroBufferLength; +var float m_fPlayOfTheGameOuttroBufferLength; +var array m_PlayOfTheGameEventConfigs; +var array m_PlayerSpawnExits; + +native function LoadGameConfig(); // Export UTgGame::execLoadGameConfig(FFrame&, void* const) + +native function InitGameRepInfo(); // Export UTgGame::execInitGameRepInfo(FFrame&, void* const) + +native function TgPawn SpawnPlayerCharacter(Controller C, Vector vLocation); // Export UTgGame::execSpawnPlayerCharacter(FFrame&, void* const) + +native function int GetWinningTaskforce(); // Export UTgGame::execGetWinningTaskforce(FFrame&, void* const) + +native function bool BeginEndMission(optional bool bClearNextMapGame=false, optional Actor EndMissionFocus, optional float fDelayOverride=0.0000000); // Export UTgGame::execBeginEndMission(FFrame&, void* const) + +native function bool FinishEndMission(); // Export UTgGame::execFinishEndMission(FFrame&, void* const) + +native function TgPawn SpawnBotById(int nBotId, int nSkinId, int nHeadId, int nWeaponSkinId, Vector vLocation, Rotator rRotation, TgBotFactory pFactory, optional bool bIgnoreCollision=false, optional TgPawn pOwnerPawn, optional TgDeviceFire deviceFire, optional float fDeployAnimLength=0.0000000, optional name ControllerClassName, optional name BehaviorTreeName); // Export UTgGame::execSpawnBotById(FFrame&, void* const) + +native function TgPawn SpawnBotPawn(TgAIController pTgAI, Vector vLocation, Rotator rRotation, optional bool bIgnoreCollision=false, optional TgPawn pOwnerPawn, optional float fDeploySecs); // Export UTgGame::execSpawnBotPawn(FFrame&, void* const) + +native function TgPawn SpawnTemplatePlayer(TgPlayerController pTgPC, int nProfileId, optional int nSkinId=0, optional int nWeaponSkinId=0, optional int nHeadSkinId=0); // Export UTgGame::execSpawnTemplatePlayer(FFrame&, void* const) + +native function EnsureBotPrecache(int nBotId, int nSkinId, int nHeadId, int nDeviceSkinId); // Export UTgGame::execEnsureBotPrecache(FFrame&, void* const) + +native function EnsureDevicePrecache(int nDeviceId, int nDeviceSkinId); // Export UTgGame::execEnsureDevicePrecache(FFrame&, void* const) + +native function EnsureHeadPrecache(int nHeadId); // Export UTgGame::execEnsureHeadPrecache(FFrame&, void* const) + +native function bool SwapToNewAIController(Controller C, TgPawn_Character TgPawn); // Export UTgGame::execSwapToNewAIController(FFrame&, void* const) + +native function bool SpawnDefaultBotPlayers(out array BotPlayersToSpawn, optional bool bStartPaused=true); // Export UTgGame::execSpawnDefaultBotPlayers(FFrame&, void* const) + +native function PlayerDied(TgPlayerController PC); // Export UTgGame::execPlayerDied(FFrame&, void* const) + +native function BotDied(TgAIController aic); // Export UTgGame::execBotDied(FFrame&, void* const) + +native function float GetActualRespawnTime(int TaskForceNum); // Export UTgGame::execGetActualRespawnTime(FFrame&, void* const) + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame::execGetRespawnTime(FFrame&, void* const) + +native function string GetGameVersion(); // Export UTgGame::execGetGameVersion(FFrame&, void* const) + +native function NotifyPostCommitMapChange(); // Export UTgGame::execNotifyPostCommitMapChange(FFrame&, void* const) + +native function ResetStats(); // Export UTgGame::execResetStats(FFrame&, void* const) + +native function bool AllowPausing(optional PlayerController PC); // Export UTgGame::execAllowPausing(FFrame&, void* const) + +native function BeginUnpauseCountdown(float fSeconds); // Export UTgGame::execBeginUnpauseCountdown(FFrame&, void* const) + +native function EndUnpauseCountdown(); // Export UTgGame::execEndUnpauseCountdown(FFrame&, void* const) + +native function SendPauseNotification(optional PlayerController PC); // Export UTgGame::execSendPauseNotification(FFrame&, void* const) + +native function bool CanSpoolCredits(); // Export UTgGame::execCanSpoolCredits(FFrame&, void* const) + +native function bool ConsiderForBestPlayOfTheGame(TgRepInfo_Player PRI); // Export UTgGame::execConsiderForBestPlayOfTheGame(FFrame&, void* const) + +native function float GetWeightedPlayOfTheGameEventRating(TgRepInfo_Player PRI, int nIndex); // Export UTgGame::execGetWeightedPlayOfTheGameEventRating(FFrame&, void* const) + +native function CachePlayOfTheGame(); // Export UTgGame::execCachePlayOfTheGame(FFrame&, void* const) + +native function ResetPlayOfTheGame(); // Export UTgGame::execResetPlayOfTheGame(FFrame&, void* const) + +native function LockPlayOfTheGame(bool bLocked); // Export UTgGame::execLockPlayOfTheGame(FFrame&, void* const) + +native function InitPlayOfTheGameConfig(); // Export UTgGame::execInitPlayOfTheGameConfig(FFrame&, void* const) + +event PreBeginPlay() { } + +event PostBeginPlay() { } + +function InitGameReplicationInfo() { } + +event int GetNextActorInstanceId() { } + +event int GetNextProjectileInstanceId() { } + +function Reset() { } + +event InitGame(string Options, out string ErrorMessage) { } + +function StartBots() { } + +function Pawn SpawnDefaultPawnFor(Controller NewPlayer, NavigationPoint StartSpot) { } + +event AllPlayersEndGame(Actor EndGameFocus) { } + +function RestartPlayer(Controller aPlayer) { } + +function AddDefaultInventory(Pawn PlayerPawn) { } + +function SetPlayerDefaults(Pawn PlayerPawn) { } + +event NavigationPoint FindPlayerStartPoint(Controller Player, optional string SpawnTagName) { } + +event NavigationPoint GetReviveLocation(Controller Player, out Vector OutLocation, out Rotator OutRotation) { } + +function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName) { } + +function NavigationPoint FindPlayerGroupStart(Controller Player, int groupNumber, optional byte InTeam, optional string IncomingName) { } + +event float RatePlayerStartPoint(PlayerStart P, Controller Player) { } + +function float RatePlayerStart(PlayerStart P, byte Team, Controller Player) { } + +function bool ChangeTeam(Controller Other, int Num, bool bNewTeam) { } + +function bool ShouldSpawnAtStartSpot(Controller Player) { } + +function GotoGameRunningState() { } + +function StartMatch() { } + +function AddInactivePRI(PlayerReplicationInfo PRI, PlayerController PC) { } + +function bool FindInactivePRI(PlayerController PC) { } + +event PostLogin(PlayerController NewPlayer) { } + +event PostCommitMapChange() { } + +simulated function bool CanSpectate(PlayerController Viewer, PlayerReplicationInfo ViewTarget) { } + +function bool PreventDeath(Pawn KilledPawn, Controller Killer, class DamageType, vector HitLocation) { } + +function bool SetPause(PlayerController PC, optional delegate CanUnpauseDelegate=CanUnpause) { } + +event ClearPause() { } + +event ClearPauseAfterCountdown() { } + +event KickIdler(PlayerController PC) { } + +function SetEnableHeadshots(bool bEnable) { } + +function int GetGameSpawnPhase(TgPawn TgP) { } + +function int GetCurrentLane() { } + +function bool FindValidSpawnPoints(TgPawn TgP, out array ValidExits) { } + +function PlayerStart FindPlayerStartForCapturePoint(TgChaosCapturePoint CapPoint, Controller Player, optional bool bUseAttackingForwardSpawn=true) { } + +function PlayerStart FindBestPlayerStart(out array PlayerStartPoints, Controller Player) { } + +function int GetTaskForceForPlayer(Controller Player) { } + +event AddPotGEventToAllPlayers(TgObject.EPlayOfTheGameEventType potgEvent) { } + +auto state PrepGameStart {} + +state GameRunning {} + +defaultproperties +{ + m_fSpawnProtectionTime=3.0000000 + m_fMaxRepawnTime=60.0000000 + m_bEnableHeadShots=true + s_nNextActorInstanceId=1 + s_nNextProjectileInstanceId=1 + s_fXPModifier=1.0000000 + m_fGlobalCooldownTime=1.0000000 + m_fOcclusionCalcPeriod=0.1000000 + m_fPlayOfTheGameLength=13.0000000 + m_fPlayOfTheGameIntroBufferLength=2.0000000 + m_fPlayOfTheGameOuttroBufferLength=2.0000000 + bRestartLevel=false + bDelayedStart=false + DefaultPawnClass=Class'TgPawn_Character' + HUDType=Class'TgHUD' + PlayerControllerClass=Class'TgPlayerController' + PlayerReplicationInfoClass=Class'TgRepInfo_Player' + GameReplicationInfoClass=Class'TgRepInfo_Game' + OnlineGameSettingsClass=Class'TgOnlineGameSettings' +} diff --git a/Development/Src/TgGame/Classes/TgGameEngine.uc b/Development/Src/TgGame/Classes/TgGameEngine.uc old mode 100755 new mode 100644 index 840e11e..301ef5b --- a/Development/Src/TgGame/Classes/TgGameEngine.uc +++ b/Development/Src/TgGame/Classes/TgGameEngine.uc @@ -1,4 +1,4 @@ -class TgGameEngine extends PComGameEngine - transient - native - config(Engine); \ No newline at end of file +class TgGameEngine extends PComGameEngine + transient + native + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgGameTipManager.uc b/Development/Src/TgGame/Classes/TgGameTipManager.uc new file mode 100644 index 0000000..b05d817 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameTipManager.uc @@ -0,0 +1,416 @@ +class TgGameTipManager extends Actor + native(Game) + config(GameTips) + notplaceable + hidecategories(Navigation); + +const GT_CapturePointObjective = 99; + +const GT_Dismounted = 100; + +const GT_CardsOnCooldown = 101; + +const GT_LeveledUp = 102; + +const GT_SiegeEnginePower = 103; + +const GT_CapturingPoints = 104; + +const GT_Abilities = 105; + +const GT_CardTypes = 106; + +const GT_Level6 = 107; + +const GT_HealthNugget = 108; + +const GT_ChampionOverview = 109; + +const GT_PushObjectiveAttack = 110; + +const GT_PushObjectiveDefend = 111; + +const GT_PushObjectiveEnded = 112; + +const GT_FriendlySiegeEngine = 113; + +const GT_EnemySiegeEngine = 114; + +const GT_AssaultGameMode = 115; + +const GT_CaptureThePointGameMode = 116; + +const GT_ProgressPayload = 117; + +const GT_ContestPayloadAttackers = 118; + +const GT_ContestPayloadDefenders = 119; + +const GT_PayloadTipBackwards = 120; + +const GT_CheckpiointsAttackers = 121; + +const GT_CheckpointsDefenders = 122; + +const GT_RespawnBeacon = 123; + +const GT_SurvivalMatchStarted = 124; + +const GT_SurvivalFogConverging = 125; + +const GT_RoundEndSurvivalOrSiege = 126; + +const GT_SiegeCapturePhase = 127; + +const GT_SiegeCapturedPoint = 129; + +const GT_SiegeLostPoint = 130; + +const GT_RoundLostSurvivalOrSiege = 131; + +const GT_SiegePointSpawned = 132; + +const GT_DieToCassie = 133; + +const GT_DieToEvie = 134; + +const GT_DieToFernando = 135; + +const GT_DieToGrover = 136; + +const GT_DieToKinessa = 137; + +const GT_DieToPip = 138; + +const GT_DieToBarikTurret = 139; + +const GT_DieToRuckus = 140; + +const GT_DieToSkye = 141; + +const GT_DieToAndroxusDefiance = 142; + +const GT_DieToAndroxusReversal = 143; + +const GT_DieToBombKingSticky = 144; + +const GT_DieToBombKingGrumpy = 145; + +const GT_DieToBuckNetShot = 146; + +const GT_DieToDrogozSalvo = 147; + +const GT_DieToDrogozFireSpit = 148; + +const GT_DieToGrohkChainLightning = 149; + +const GT_DieToGroverAxeThrow = 150; + +const GT_DieToRuckusDualFire = 151; + +const GT_DieToSkyePoisonBolts = 152; + +const GT_DieToYingShatter = 153; + +const GT_DieToYingIllusion = 154; + +const GT_DieToViktorFragGrenade = 155; + +const GT_DieToUltimate = 156; + +const GT_PayloadCheckpoint1ReachedAttackers = 157; + +const GT_PayloadCheckpoint1ReachedDefenders = 158; + +const GT_DieToDeathFog = 159; + +const GT_SiegeCapturingPoint = 160; + +const GT_SiegeContestingPoint = 161; + +const GT_SiegeContestingPayload = 162; + +const GT_SiegePayloadBackingUp = 163; + +const GT_Tutorial_AimUsingMouse = 164; + +const GT_Tutorial_MoveForwardsBackwards = 165; + +const GT_Tutorial_MoveLeftRight = 166; + +const GT_Tutorial_SpaceToJump = 167; + +const GT_Tutorial_MoveOnMount = 168; + +const GT_Tutorial_DismountedOnDamage = 169; + +const GT_Tutorial_ChampionsRegenerateHealth = 170; + +const GT_Tutorial_LMBToFire = 171; + +const GT_Tutorial_RToReload = 172; + +const GT_Tutorial_QToFrag = 173; + +const GT_Tutorial_FToHustle = 174; + +const GT_Tutorial_RMBToIronSights = 175; + +const GT_Tutorial_EToUlt = 176; + +const GT_Tutorial_UToLoadout = 177; + +const GT_Tutorial_SelectItemTab = 178; + +const GT_Tutorial_OneCardPerCategory = 179; + +const GT_Tutorial_UpgradeItems = 190; + +const GT_Tutorial_ItemsLastMatch = 191; + +const GT_Tutorial_ActiveObjectiveMarker = 192; + +const GT_Tutorial_StandToCapture = 193; + +const GT_Tutorial_SuccessfulCapture = 194; + +const GT_Tutorial_ProgressPayload = 195; + +const GT_Tutorial_EnemiesHaltPayload = 196; + +const GT_DieToAnchor = 187; + +const GT_DieToMakoa = 188; + +const GT_DieToMalDamba = 189; + +const GT_CounteringTorvald = 198; + +const GT_AutoPurchaseItems = 199; + +const GT_OnslaughtGameMode = 202; + +const GTP_CapturePointObjective = 1801; + +const GTP_Dismounted = 1800; + +const GTP_CardsOnCooldown = 1802; + +const GTP_LeveledUp = 1803; + +const GTP_SiegeEnginePower = 1804; + +const GTP_CapturingPoints = 1805; + +const GTP_Abilities = 1806; + +const GTP_CardTypes = 1807; + +const GTP_Level6 = 1808; + +const GTP_HealthNugget = 1809; + +const GTP_ChampionOverview = 1824; + +const GTP_PushObjectiveAttack = 1829; + +const GTP_PushObjectiveDefend = 1830; + +const GTP_PushObjectiveEnded = 1831; + +const GTP_FriendlySiegeEngine = 1833; + +const GTP_EnemySiegeEngine = 1834; + +const GTP_AssaultGameMode = 1835; + +const GTP_CaptureThePointGameMode = 1836; + +const GTP_ProgressPayload = 1842; + +const GTP_ContestPayloadAttackers = 1843; + +const GTP_ContestPayloadDefenders = 1844; + +const GTP_PayloadTipBackwards = 1845; + +const GTP_CheckpiointsAttackers = 1846; + +const GTP_CheckpointsDefenders = 1847; + +const GTP_RespawnBeacon = 1849; + +const GTP_SurvivalMatchStarted = 1850; + +const GTP_SurvivalFogConverging = 1851; + +const GTP_RoundEndSurvivalOrSiege = 1902; + +const GTP_SiegeCapturePhase = 1903; + +const GTP_SiegeCapturedPoint = 1906; + +const GTP_SiegeLostPoint = 1907; + +const GTP_RoundLostSurvivalOrSiege = 1908; + +const GTP_SiegePointSpawned = 1909; + +const GTP_DieToCassie = 1910; + +const GTP_DieToEvie = 1911; + +const GTP_DieToFernando = 1912; + +const GTP_DieToGrover = 1913; + +const GTP_DieToKinessa = 1914; + +const GTP_DieToPip = 1915; + +const GTP_DieToBarikTurret = 1916; + +const GTP_DieToRuckus = 1917; + +const GTP_DieToSkye = 1918; + +const GTP_DieToAndroxusDefiance = 1919; + +const GTP_DieToAndroxusReversal = 1920; + +const GTP_DieToBombKingSticky = 1921; + +const GTP_DieToBombKingGrumpy = 1922; + +const GTP_DieToBuckNetShot = 1923; + +const GTP_DieToDrogozSalvo = 1924; + +const GTP_DieToDrogozFireSpit = 1925; + +const GTP_DieToGrohkChainLightning = 1926; + +const GTP_DieToGroverAxeThrow = 1927; + +const GTP_DieToRuckusDualFire = 1928; + +const GTP_DieToSkyePoisonBolts = 1929; + +const GTP_DieToYingShatter = 1930; + +const GTP_DieToYingIllusion = 1931; + +const GTP_DieToViktorFragGrenade = 1932; + +const GTP_DieToUltimate = 1933; + +const GTP_PayloadCheckpoint1ReachedAttackers = 1934; + +const GTP_PayloadCheckpoint1ReachedDefenders = 1935; + +const GTP_DieToDeathFog = 1936; + +const GTP_SiegeCapturingPoint = 1937; + +const GTP_SiegeContestingPoint = 1938; + +const GTP_SiegeContestingPayload = 1939; + +const GTP_SiegePayloadBackingUp = 1940; + +const GTP_Tutorial = 1953; + +const GTP_DieToAnchor = 1956; + +const GTP_DieToMakoa = 1957; + +const GTP_DieToMalDamba = 1958; + +const GTP_CounteringTorvald = 2018; + +const GTP_AutoPurchaseItems = 2021; + +const GTP_OnslaughtGameMode = 2026; + +const TFT_ENEMY = 10133; + +const TFT_FRIENDLY = 10132; + +const LOW_PRIORITY_REMINDERS_SECS = 120.f; + +const MIN_TIME_ON_TOP = 5.f; + +const GTT_HUD = 10634; + +const GTT_HUD_POPUP = 10742; + +const GTT_WORLD_TIP = 15029; + +const GTT_HUD_SPECIAL = 15101; + +const GTT_HUD_POPUP_NO_TITLE = 15136; + +struct TipSavedState { + var int nTipId; + var int nMatchVisibleCount; + var int nTotalVisibleCount; + var float fLastVisibleTime; + var bool nCompletedCount; + var bool bSuppressed; + structdefaultproperties {} +}; + +struct GameTipInfo { + var int nTipId; + var int nPriority; + var bool bSelfSuppress; + var float fDuration; + var float fRemainingTime; + var float fTimeOnTop; + var float fMinSecondsBetweenVisible; + var bool bRemoveOnTimer; + var bool bDismissed; + var bool bWaitForDismiss; + var bool bDisplayAlways; + var bool bPopupDisplay; + var SoundCue PopupSoundCue; + var TgHelpTipActor HelpTipActor; + var int PropertyId; + structdefaultproperties {} +}; + +var globalconfig array m_TipSavedState; +var array m_GameTipQueue; +var array m_GameTipWorldQueue; +var array m_GameTipSpecialQueue; +var bool m_bIsActive; +var export editinline TgAudioComponent m_AudioComponent; +var int m_nActiveTip; +var int m_nPlaySoundTip; + +native function bool IsSuppressed(int nGameTipId); // Export UTgGameTipManager::execIsSuppressed(FFrame&, void* const) + +native function bool RequestHelpText(int nGameTipId, optional bool bIsFriend=true, optional bool bWaitForDismiss=false, optional Vector SpawnLocation, optional out TgHelpTipActor OutHelpTipActor); // Export UTgGameTipManager::execRequestHelpText(FFrame&, void* const) + +native function DismissHelpText(int nGameTipId, optional bool bDoNotSuppress); // Export UTgGameTipManager::execDismissHelpText(FFrame&, void* const) + +native function RemoveHelpText(int nGameTipId, bool bDoNotSuppress); // Export UTgGameTipManager::execRemoveHelpText(FFrame&, void* const) + +native function SuppressHelpText(int nGameTipId); // Export UTgGameTipManager::execSuppressHelpText(FFrame&, void* const) + +native function CompleteHelpText(int nGameTipId); // Export UTgGameTipManager::execCompleteHelpText(FFrame&, void* const) + +native function UnsuppressAllGameTips(); // Export UTgGameTipManager::execUnsuppressAllGameTips(FFrame&, void* const) + +native function SetActive(); // Export UTgGameTipManager::execSetActive(FFrame&, void* const) + +native function ClearSavedDataForNewRound(); // Export UTgGameTipManager::execClearSavedDataForNewRound(FFrame&, void* const) + +event SortGameTipQueue(int nGameTipType) { } + +function PostBeginPlay() { } + +function int GameTipQueueSort(GameTipInfo A, GameTipInfo B) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGame_Arena.uc b/Development/Src/TgGame/Classes/TgGame_Arena.uc new file mode 100644 index 0000000..f4ec398 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Arena.uc @@ -0,0 +1,68 @@ +class TgGame_Arena extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +var float s_fLastDespawnTime[2]; +var float s_fDespawnNotificationDelay; +var int m_nKillValueHero; +var int m_nKillValueMinion; +var int m_nKillValueTower; +var int m_MinScoreToTrackMinionKills; +var int m_nSpawnWaveTime; +var int m_nSpawnWaveDominatingTime; +var int m_nMaxDominatingPoints; +var transient bool m_bIsCrowdOnFeet; + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_Arena::execScoreKillGameType(FFrame&, void* const) + +native function MarkAsReady(Player P); // Export UTgGame_Arena::execMarkAsReady(FFrame&, void* const) + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Arena::execGetRespawnTime(FFrame&, void* const) + +native function EndGameBySurrender(int SurrenderingTaskForce); // Export UTgGame_Arena::execEndGameBySurrender(FFrame&, void* const) + +native function bool BeginEndMission(optional bool bClearNextMapGame=false, optional Actor EndMissionFocus, optional float fDelayOverride=0.0000000); // Export UTgGame_Arena::execBeginEndMission(FFrame&, void* const) + +native function ApplyTowerImmunity(); // Export UTgGame_Arena::execApplyTowerImmunity(FFrame&, void* const) + +native function SendDespawnAlert(TgRepInfo_TaskForce tfri); // Export UTgGame_Arena::execSendDespawnAlert(FFrame&, void* const) + +function float GetSetupTime() { } + +function bool StartGameTimer() { } + +function OnMinionDespawn(int Taskforce) { } + +event CheckGameState() { } + +event Actor GetEndFocusActor() { } + +function SpawnWaveTeam1Timer() { } + +function SpawnWaveTeam2Timer() { } + +function float GetTaskForceDominatingFactor(int TaskForceNum) { } + +defaultproperties +{ + s_fDespawnNotificationDelay=10.0000000 + m_nKillValueHero=5 + m_nKillValueMinion=1 + m_nKillValueTower=15 + m_MinScoreToTrackMinionKills=10 + m_nSpawnWaveTime=20 + m_nSpawnWaveDominatingTime=40 + m_nMaxDominatingPoints=150 + m_bRespawnInhibitors=false + m_bEnableCrowdEvents=true + m_fCreditsToGivePerTick=10.0000000 + m_nStartingLevel=3 + m_MinionKillerBonus=0.2500000 + m_fFirstBloodGoldReward=100.0000000 + m_fBasePlayerAssistXpRewardMultipler=1.0000000 + m_fBaseNPCAssistXpRewardMultipler=2.0000000 + m_GameType=TGT_ARENA + GoalScore=500 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Arena_Capture.uc b/Development/Src/TgGame/Classes/TgGame_Arena_Capture.uc new file mode 100644 index 0000000..1aa620e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Arena_Capture.uc @@ -0,0 +1,33 @@ +class TgGame_Arena_Capture extends TgGame_Arena + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +var int s_nCaptureHostilePointXP; +var int s_nCaptureHostilePointGold; +var int s_nReclaimPointXP; +var int s_nReclaimPointGold; +var int m_nCurrentActiveCapturePointIndex; +var float m_fNewPointTime; + +event PostBeginPlay() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +native function CapturedPoint(TgPawn_Character PC); // Export UTgGame_Arena_Capture::execCapturedPoint(FFrame&, void* const) + +native function CapturePointReclaimed(TgPawn_Character PC); // Export UTgGame_Arena_Capture::execCapturePointReclaimed(FFrame&, void* const) + +function SpawnNeutralBots() { } + +function OnPointCaptureOwnershipChanged(TgCapturePoint Point, int NewTaskForceOwner, int PreviousTaskForceOwner) { } + +function UpdateLockedPointStatus() { } + +defaultproperties +{ + m_nCurrentActiveCapturePointIndex=-1 + m_fNewPointTime=5.0000000 + m_GameType=TGT_ARENA_CAPTURE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Arena_Escort.uc b/Development/Src/TgGame/Classes/TgGame_Arena_Escort.uc new file mode 100644 index 0000000..dddeb0c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Arena_Escort.uc @@ -0,0 +1,19 @@ +class TgGame_Arena_Escort extends TgGame_Arena + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var int m_nSpawnEscortTime; +var int m_nEscortSuccessValue; +var TgSeqEvent_SpawnWise s_pEvt[2]; +var TgSeqEvent_Escort_Despawn_Success s_pDespawnEvt[2]; + +native function SendEscortSpawnAlert(TgRepInfo_TaskForce tfri); // Export UTgGame_Arena_Escort::execSendEscortSpawnAlert(FFrame&, void* const) + +function OnEscortDespawn(int Taskforce) { } + +defaultproperties +{ + m_nEscortSuccessValue=14 + m_GameType=TGT_ARENA_ESCORT +} diff --git a/Development/Src/TgGame/Classes/TgGame_Arena_Escort_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Arena_Escort_Practice.uc new file mode 100644 index 0000000..3a63ce6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Arena_Escort_Practice.uc @@ -0,0 +1,14 @@ +class TgGame_Arena_Escort_Practice extends TgGame_Arena_Escort + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +function SpawnBots() { } + +defaultproperties +{ + m_GameType=TGT_ARENA_ESCORT_PRACTICE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Arena_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Arena_Practice.uc new file mode 100644 index 0000000..5deaeef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Arena_Practice.uc @@ -0,0 +1,14 @@ +class TgGame_Arena_Practice extends TgGame_Arena + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +function SpawnBots() { } + +defaultproperties +{ + m_GameType=TGT_ARENA_PRACTICE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle.uc b/Development/Src/TgGame/Classes/TgGame_Battle.uc old mode 100755 new mode 100644 index 18b2a22..7b7bb03 --- a/Development/Src/TgGame/Classes/TgGame_Battle.uc +++ b/Development/Src/TgGame/Classes/TgGame_Battle.uc @@ -1,6 +1,93 @@ -class TgGame_Battle extends TgGame_Mission - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - -event int GetPlayerCount() {} \ No newline at end of file +class TgGame_Battle extends TgGame_Mission + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgGame, TgObject); + +const MAX_GENERAL_PHYSICAL_STAT = 180.0f; + +const MAX_GENERAL_MAGICAL_STAT = 540.0f; + +const MAX_GENERAL_DEFENSE_STAT = 228.0f; + +const MAX_GENERAL_UTILITY_STAT = 318.0f; + +var float m_MultiLaneXpBonus; +var bool m_bRespawnInhibitors; +var bool m_bEnableCrowdEvents; +var bool m_bRestrictStoreInteractions; +var bool m_bWinGameOnNexusDestroyed; +var int m_nBumbasMaskId; +var int m_nSupportStarterId; +var array m_MercsToSpawn; +var int m_nPIESpawnTable; +var int m_nTargetPlayerCountForMercs; + +native function UpdateGameWinState(TgPawn nexus); // Export UTgGame_Battle::execUpdateGameWinState(FFrame&, void* const) + +native function SendBonusMinionAlerts(TgRepInfo_TaskForce tf, int nLane); // Export UTgGame_Battle::execSendBonusMinionAlerts(FFrame&, void* const) + +native function SendGameStartAlert(); // Export UTgGame_Battle::execSendGameStartAlert(FFrame&, void* const) + +native function StructureDied(TgPawn_Structure theStructure); // Export UTgGame_Battle::execStructureDied(FFrame&, void* const) + +native function PlayerDied(TgPlayerController PC); // Export UTgGame_Battle::execPlayerDied(FFrame&, void* const) + +native function BotDied(TgAIController aic); // Export UTgGame_Battle::execBotDied(FFrame&, void* const) + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle::execGetRespawnTime(FFrame&, void* const) + +native function ApplyTowerImmunity(); // Export UTgGame_Battle::execApplyTowerImmunity(FFrame&, void* const) + +native function int GetNextVulnerableTowerId(int nBotId); // Export UTgGame_Battle::execGetNextVulnerableTowerId(FFrame&, void* const) + +native function CheckTeamAce(Controller Killer, Controller Killed); // Export UTgGame_Battle::execCheckTeamAce(FFrame&, void* const) + +native function SetInhibitorRespawn(bool bRespawn); // Export UTgGame_Battle::execSetInhibitorRespawn(FFrame&, void* const) + +native function bool ShouldSpawnSuperMinions(TgBotFactory_Minions minionFactory); // Export UTgGame_Battle::execShouldSpawnSuperMinions(FFrame&, void* const) + +native function CheckMercenaries(); // Export UTgGame_Battle::execCheckMercenaries(FFrame&, void* const) + +native function ForceLoadMercenaries(int SpawnTableID); // Export UTgGame_Battle::execForceLoadMercenaries(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_Battle::execScoreKillGameType(FFrame&, void* const) + +native function SendLanePusherSpawnAlert(int Taskforce); // Export UTgGame_Battle::execSendLanePusherSpawnAlert(FFrame&, void* const) + +native function int CalcWeakestLane(TgRepInfo_TaskForce tf); // Export UTgGame_Battle::execCalcWeakestLane(FFrame&, void* const) + +event NexusWasDestroyed(TgPawn nexus) { } + +event OnBossMonsterKilled(TgPawn BossMonster, TgPawn KillerPawn) { } + +event TriggerBonusMinions(TgRepInfo_TaskForce tf, int nLane) { } + +function bool StartGameTimer() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +function CreateMinimapManagers(Class managerClass) { } + +event int GetPlayerCount() { } + +function SpawnBots() { } + +simulated event SendLanePusherUpdateAlert(bool isAlive, int tf) { } + +defaultproperties +{ + m_MultiLaneXpBonus=0.5000000 + m_bRespawnInhibitors=true + m_nBumbasMaskId=8987 + m_nSupportStarterId=9089 + m_nStartingCurrency=1500 + m_nWinPlayerXp=20 + m_nLosePlayerXp=20 + m_fGodXpCoefficient=0.2000000 + m_fGodXpCoefficientLoss=0.2000000 + m_fGodXpWinBonus=4.0000000 + m_fBaseTokens=1.5000000 + m_GameType=TGT_BATTLE + m_bStatsIsSymmetric=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Aram.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Aram.uc new file mode 100644 index 0000000..7780cfd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Aram.uc @@ -0,0 +1,17 @@ +class TgGame_Battle_Aram extends TgGame_Battle_Conquest + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Aram::execGetRespawnTime(FFrame&, void* const) + +defaultproperties +{ + m_bRestrictStoreInteractions=true + m_nStartingCurrency=3000 + m_nStartingLevel=5 + m_fGodXpCoefficient=0.2000000 + m_fGodXpCoefficientLoss=0.2000000 + m_fGodXpWinBonus=4.0000000 + m_GameType=TGT_BATTLE_ARAM +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Aram_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Aram_Practice.uc new file mode 100644 index 0000000..d4f11ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Aram_Practice.uc @@ -0,0 +1,12 @@ +class TgGame_Battle_Aram_Practice extends TgGame_Battle_Aram + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +defaultproperties +{ + m_GameType=TGT_BATTLE_ARAM_PRACTICE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Casual.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Casual.uc new file mode 100644 index 0000000..96e9d32 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Casual.uc @@ -0,0 +1,19 @@ +class TgGame_Battle_Casual extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Casual::execGetRespawnTime(FFrame&, void* const) + +native function bool ShouldSpawnSuperMinions(TgBotFactory_Minions minionFactory); // Export UTgGame_Battle_Casual::execShouldSpawnSuperMinions(FFrame&, void* const) + +native function StructureDied(TgPawn_Structure theStructure); // Export UTgGame_Battle_Casual::execStructureDied(FFrame&, void* const) + +defaultproperties +{ + m_bRespawnInhibitors=false + m_nStartingCurrency=3000 + m_MinionKillerBonus=0.0000000 + m_BasePlayerGoldReward=45.0000000 + m_GameType=TGT_BATTLE_CASUAL +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Conquest.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest.uc new file mode 100644 index 0000000..5759cbb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest.uc @@ -0,0 +1,12 @@ +class TgGame_Battle_Conquest extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_fGodXpCoefficient=0.2500000 + m_fGodXpCoefficientLoss=0.2500000 + m_fGodXpWinBonus=5.0000000 + m_BasePlayerGoldReward=150.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Erez.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Erez.uc new file mode 100644 index 0000000..53a9c0f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Erez.uc @@ -0,0 +1,27 @@ +class TgGame_Battle_Conquest_Erez extends TgGame_Battle_Conquest + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +const LANE_PUSHER_BOT_ID = 2004; + +var int m_nSpawnSiegeWeaponThreshold; + +native function int GetNextVulnerableTowerId(int nBotId); // Export UTgGame_Battle_Conquest_Erez::execGetNextVulnerableTowerId(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_Battle_Conquest_Erez::execScoreKillGameType(FFrame&, void* const) + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Conquest_Erez::execGetRespawnTime(FFrame&, void* const) + +event PostBeginPlay() { } + +event TriggerLanePusher(TgRepInfo_TaskForce tf, int nLane) { } + +defaultproperties +{ + m_nSpawnSiegeWeaponThreshold=100 + m_MultiLaneXpBonus=0.0000000 + m_nStartingCurrency=2000 + m_nStartingLevel=3 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Practice.uc new file mode 100644 index 0000000..1731278 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Practice.uc @@ -0,0 +1,12 @@ +class TgGame_Battle_Conquest_Practice extends TgGame_Battle_Conquest + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +defaultproperties +{ + m_GameType=TGT_BATTLE_PRACTICE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Tc.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Tc.uc new file mode 100644 index 0000000..13ace16 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Conquest_Tc.uc @@ -0,0 +1,11 @@ +class TgGame_Battle_Conquest_Tc extends TgGame_Battle_Conquest + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Conquest_Tc::execGetRespawnTime(FFrame&, void* const) + +defaultproperties +{ + m_GameType=TGT_BATTLE_TC +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Expert.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Expert.uc new file mode 100644 index 0000000..751ff27 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Expert.uc @@ -0,0 +1,11 @@ +class TgGame_Battle_Expert extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +event TriggerBonusMinions(TgRepInfo_TaskForce tf, int nLane) { } + +defaultproperties +{ + m_GameType=TGT_BATTLE_EXPERT +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Joust.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Joust.uc new file mode 100644 index 0000000..123bbe7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Joust.uc @@ -0,0 +1,25 @@ +class TgGame_Battle_Joust extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +const AUTO_FORFEIT_TIME_SEC = 120.0f; + +native function int GetNextVulnerableTowerId(int nBotId); // Export UTgGame_Battle_Joust::execGetNextVulnerableTowerId(FFrame&, void* const) + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Joust::execGetRespawnTime(FFrame&, void* const) + +native function MarkAsReady(Player P); // Export UTgGame_Battle_Joust::execMarkAsReady(FFrame&, void* const) + +native function CheckTeamAce(Controller Killer, Controller Killed); // Export UTgGame_Battle_Joust::execCheckTeamAce(FFrame&, void* const) + +native function AutoForfeit(); // Export UTgGame_Battle_Joust::execAutoForfeit(FFrame&, void* const) + +function float GetSetupTime() { } + +defaultproperties +{ + m_bEnableCrowdEvents=true + m_nStartingLevel=3 + m_GameType=TGT_BATTLE_JOUST +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Joust_3v3.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Joust_3v3.uc new file mode 100644 index 0000000..b7c9b33 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Joust_3v3.uc @@ -0,0 +1,12 @@ +class TgGame_Battle_Joust_3v3 extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +native function int GetNextVulnerableTowerId(int nBotId); // Export UTgGame_Battle_Joust_3v3::execGetNextVulnerableTowerId(FFrame&, void* const) + +defaultproperties +{ + m_nStartingLevel=3 + m_GameType=TGT_BATTLE_JOUST +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Practice.uc new file mode 100644 index 0000000..7b8e580 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Practice.uc @@ -0,0 +1,23 @@ +class TgGame_Battle_Practice extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +native function int GetNextVulnerableTowerId(int nBotId); // Export UTgGame_Battle_Practice::execGetNextVulnerableTowerId(FFrame&, void* const) + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Practice::execGetRespawnTime(FFrame&, void* const) + +native function MarkAsReady(Player P); // Export UTgGame_Battle_Practice::execMarkAsReady(FFrame&, void* const) + +native function CheckTeamAce(Controller Killer, Controller Killed); // Export UTgGame_Battle_Practice::execCheckTeamAce(FFrame&, void* const) + +function float GetSetupTime() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +defaultproperties +{ + m_nStartingLevel=3 + m_GameType=TGT_BATTLE_PRACTICE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Battle_Training.uc b/Development/Src/TgGame/Classes/TgGame_Battle_Training.uc new file mode 100644 index 0000000..bc96477 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Battle_Training.uc @@ -0,0 +1,27 @@ +class TgGame_Battle_Training extends TgGame_Battle_Practice + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var bool m_bNewTutorial; +var array m_StartingItems; +var int m_StartingSkills[4]; +var array m_RecommendedItems; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Battle_Training::execGetRespawnTime(FFrame&, void* const) + +native function TgPawn SpawnPlayerCharacter(Controller C, Vector vLocation); // Export UTgGame_Battle_Training::execSpawnPlayerCharacter(FFrame&, void* const) + +function float GetSetupTime() { } + +function SpawnBots() { } + +defaultproperties +{ + m_bNewTutorial=true + m_RecommendedItems[0]=7573 + m_bAllowAutoUpgrades=false + m_nStartingLevel=1 + m_GameType=TGT_BATTLE_TRAINING + m_fMaxRepawnTime=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_CTF.uc b/Development/Src/TgGame/Classes/TgGame_CTF.uc new file mode 100644 index 0000000..d5b2c9e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_CTF.uc @@ -0,0 +1,48 @@ +class TgGame_CTF extends TgGame_Mission + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +var transient TgCTFFlagBase m_FlagBases[2]; +var float m_fRoundTime; +var float m_fRoundSetupTime; +var float m_fEndOfRoundTime; +var transient int m_nCurrentRound; +var int m_nNumRounds; +var int m_nSpawnWaveTime; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_CTF::execGetRespawnTime(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_CTF::execScoreKillGameType(FFrame&, void* const) + +function float GetSetupTime() { } + +function bool StartGameTimer() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +event MissionTimer() { } + +function RegisterFlagBase(TgCTFFlagBase FlagBase) { } + +function ScoreFlag(TgPawn_Character FlagCarrier) { } + +function SpawnWaveTimer() { } + +defaultproperties +{ + m_fRoundTime=300.0000000 + m_fRoundSetupTime=45.0000000 + m_fEndOfRoundTime=5.0000000 + m_nCurrentRound=1 + m_nNumRounds=3 + m_nSpawnWaveTime=60 + m_nStartingCurrency=5000 + m_nStartingLevel=10 + m_nWinPlayerXp=20 + m_nLosePlayerXp=20 + m_fBaseTokens=1.5000000 + m_fFirstBloodGoldReward=100.0000000 + m_GameType=TGT_POINTCAPTURE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Chaos.uc b/Development/Src/TgGame/Classes/TgGame_Chaos.uc deleted file mode 100755 index 805137e..0000000 --- a/Development/Src/TgGame/Classes/TgGame_Chaos.uc +++ /dev/null @@ -1,4 +0,0 @@ -class TgGame_Chaos extends TgGame_Battle - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgGame_ChaosSiege.uc b/Development/Src/TgGame/Classes/TgGame_ChaosSiege.uc deleted file mode 100755 index e602092..0000000 --- a/Development/Src/TgGame/Classes/TgGame_ChaosSiege.uc +++ /dev/null @@ -1,4 +0,0 @@ -class TgGame_ChaosSiege extends TgGame_Chaos - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgGame_ChaosSiege_CaptureAndPayload.uc b/Development/Src/TgGame/Classes/TgGame_ChaosSiege_CaptureAndPayload.uc deleted file mode 100755 index f8f8eb2..0000000 --- a/Development/Src/TgGame/Classes/TgGame_ChaosSiege_CaptureAndPayload.uc +++ /dev/null @@ -1,4 +0,0 @@ -class TgGame_ChaosSiege_CaptureAndPayload extends TgGame_ChaosSiege - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgGame_Domination.uc b/Development/Src/TgGame/Classes/TgGame_Domination.uc new file mode 100644 index 0000000..37b8d88 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Domination.uc @@ -0,0 +1,19 @@ +class TgGame_Domination extends TgGame_PointCapture + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var float m_fRespawnTime; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Domination::execGetRespawnTime(FFrame&, void* const) + +function UpdateLockedPointStatus() { } + +function CheckPointLocked(TgCapturePoint Point) { } + +defaultproperties +{ + m_fRespawnTime=20.0000000 + m_GameType=TGT_DOMINATION + GoalScore=500 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Idol.uc b/Development/Src/TgGame/Classes/TgGame_Idol.uc new file mode 100644 index 0000000..f9c5538 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Idol.uc @@ -0,0 +1,30 @@ +class TgGame_Idol extends TgGame_Mission + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +var transient TgIdol m_Idols[2]; +var int m_nSpawnWaveTime; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Idol::execGetRespawnTime(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_Idol::execScoreKillGameType(FFrame&, void* const) + +function float GetSetupTime() { } + +function bool StartGameTimer() { } + +event MissionTimer() { } + +function SpawnWaveTimer() { } + +defaultproperties +{ + m_nSpawnWaveTime=60 + m_nStartingCurrency=5000 + m_nWinPlayerXp=20 + m_nLosePlayerXp=20 + m_fBaseTokens=1.5000000 + m_GameType=TGT_IDOL +} diff --git a/Development/Src/TgGame/Classes/TgGame_JeffPrototype.uc b/Development/Src/TgGame/Classes/TgGame_JeffPrototype.uc new file mode 100644 index 0000000..382a2fe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_JeffPrototype.uc @@ -0,0 +1,18 @@ +class TgGame_JeffPrototype extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nWinningScore=3 + m_fWinningTickets=300.0000000 + m_bAutoMountAtRoundBegin=false + m_bResetPlayersNotInSpawnRoom=false + m_fTicketsPerCaptureTick=1.0000000 + m_fTicketsBonusPerMultiCapture=0.2500000 + m_fTicketsPerPointCapture=150.0000000 + m_fObjectivePickTime=15.0000000 + m_fSetupObjectivePickTime=15.0000000 + m_fSpawnGateOpenTime=15.0000000 + m_fSetupSpawnGateOpenTime=15.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Mission.uc b/Development/Src/TgGame/Classes/TgGame_Mission.uc old mode 100755 new mode 100644 index f8bf95b..b162c73 --- a/Development/Src/TgGame/Classes/TgGame_Mission.uc +++ b/Development/Src/TgGame/Classes/TgGame_Mission.uc @@ -1,50 +1,228 @@ -class TgGame_Mission extends TgGame - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - -var bool m_bSpawnInTaskForceArea; -var bool s_bPreGuardianPhasePulsed; -var bool s_bGuardianPhasePulsed; -var bool s_bWasSurrendered; -var bool m_bSurrenderAvailable; -var bool m_bFirstBloodAwarded; -var bool m_bAllowAutoUpgrades; -var bool m_bUsePlayerCharacterIntros; -var bool m_bUseKillEmotes; -var bool m_bNotifyKillCombos; -var float m_fMissionTime; -var float m_fSecondaryMissionTime; -var private const float m_fWaitingForPlayersTime; -var config float m_fSetupTime; -var float m_fPausedAtTime; -var float m_fGameMissionTime; -var float s_MissionTimeAccumulator; -var array s_ReadyPlayers; -var int s_nReadyMercs; -var config float m_fTickCreditsFreq; -var config float m_fCreditsToGivePerTick; -var int m_nStartingCurrency; -var int m_nStartingLevel; -var int m_nWinBonusXp; -var int m_nWinPlayerXp; -var int m_nLosePlayerXp; -var float m_fGodXpCoefficient; -var float m_fGodXpCoefficientLoss; -var float m_fGodXpWinBonus; -var float m_fFreeVIPWinPoints; -var float m_fFreeVIPLossPoints; -var float m_fPaidVIPWinPoints; -var float m_fPaidVIPLossPoints; -var float m_fBaseTokens; -var float m_fSurrenderTime; -var int m_XPRadius; -var float m_MinionKillerBonus; -var float m_BasePlayerGoldReward; -var float m_fFirstBloodGoldReward; -var float m_fBasePlayerAssistGoldRewardMultipler; -var float m_fBasePlayerAssistXpRewardMultipler; -var float m_fBaseNPCAssistGoldRewardMultipler; -var float m_fBaseNPCAssistXpRewardMultipler; - -event PostLogin(PlayerController NewPlayer){} +class TgGame_Mission extends TgGame + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject, TgRepInfo_Game); + +const SURRENDER_TIME_SECS = 60.0; + +const SURRENDER_TIME_BETWEEN = 180.0; + +const MISSION_TIME_SETUP_SECS = 90.0; + +const PLAYER_END_GAME_DELAY = 10.0f; + +const FINISH_END_MISSION_DELAY = 300.0; + +const PRE_GUARDIAN_PHASE_START = 7110.0f; + +const GUARDIAN_PHASE_START = 7200.0f; + +const PRE_MATCH_FROZEN_TIME_SECS = 3.0f; + +struct SurrenderVote { + var int nPlayerId; + var bool bSurrender; + structdefaultproperties {} +}; + +struct SurrenderData { + var float fLastSurrenderTime; + var array SurrenderVotes; + var int nSurrenderTotal; + var int nSurrenderNeeded; + var int nSurrenderVoteCount; + var int nNoSurrenderVoteCount; + structdefaultproperties {} +}; + +var bool m_bSpawnInTaskForceArea; +var bool s_bPreGuardianPhasePulsed; +var bool s_bGuardianPhasePulsed; +var bool s_bWasSurrendered; +var bool m_bSurrenderAvailable; +var bool m_bFirstBloodAwarded; +var bool m_bAllowAutoUpgrades; +var bool m_bUsePlayerCharacterIntros; +var bool m_bUseKillEmotes; +var bool m_bNotifyKillCombos; +var TgObject.GameTimerState m_eTimerState; +var TgObject.GameTimerState m_eTimerStatePaused; +var float m_fMissionTime; +var float m_fSecondaryMissionTime; +var private const float m_fWaitingForPlayersTime; +var config float m_fSetupTime; +var float m_fPausedAtTime; +var float m_fGameMissionTime; +var float s_MissionTimeAccumulator; +var array s_ReadyPlayers; +var int s_nReadyMercs; +var config float m_fTickCreditsFreq; +var config float m_fCreditsToGivePerTick; +var int m_nStartingCurrency; +var int m_nStartingLevel; +var int m_nWinBonusXp; +var int m_nWinPlayerXp; +var int m_nLosePlayerXp; +var float m_fGodXpCoefficient; +var float m_fGodXpCoefficientLoss; +var float m_fGodXpWinBonus; +var float m_fFreeVIPWinPoints; +var float m_fFreeVIPLossPoints; +var float m_fPaidVIPWinPoints; +var float m_fPaidVIPLossPoints; +var float m_fBaseTokens; +var Class m_MinimapManagerClass; +var SurrenderData s_SurrenderData[2]; +var float m_fSurrenderTime; +var int m_XPRadius; +var float m_MinionKillerBonus; +var float m_BasePlayerGoldReward; +var float m_fFirstBloodGoldReward; +var float m_fBasePlayerAssistGoldRewardMultipler; +var float m_fBasePlayerAssistXpRewardMultipler; +var float m_fBaseNPCAssistGoldRewardMultipler; +var float m_fBaseNPCAssistXpRewardMultipler; +var transient array m_MinionGoals; + +native function bool BeginEndMission(optional bool bClearNextMapGame=false, optional Actor EndMissionFocus, optional float fDelayOverride=0.0000000); // Export UTgGame_Mission::execBeginEndMission(FFrame&, void* const) + +native function LoadGameConfig(); // Export UTgGame_Mission::execLoadGameConfig(FFrame&, void* const) + +native function SpoolCredits(); // Export UTgGame_Mission::execSpoolCredits(FFrame&, void* const) + +native function TgPawn SpawnPlayerCharacter(Controller C, Vector vLocation); // Export UTgGame_Mission::execSpawnPlayerCharacter(FFrame&, void* const) + +native function SendMissionTimerEvent(int nEventId); // Export UTgGame_Mission::execSendMissionTimerEvent(FFrame&, void* const) + +native function UpdateMissionTimerEventWinVar(); // Export UTgGame_Mission::execUpdateMissionTimerEventWinVar(FFrame&, void* const) + +native function float MissionTimeRemaining(); // Export UTgGame_Mission::execMissionTimeRemaining(FFrame&, void* const) + +native function float MissionTimeElapsed(); // Export UTgGame_Mission::execMissionTimeElapsed(FFrame&, void* const) + +native function MarkAsReady(Player P); // Export UTgGame_Mission::execMarkAsReady(FFrame&, void* const) + +native function AllPlayersRevive(); // Export UTgGame_Mission::execAllPlayersRevive(FFrame&, void* const) + +native function AllPlayersFullVitals(); // Export UTgGame_Mission::execAllPlayersFullVitals(FFrame&, void* const) + +native function AllPlayersRecall(); // Export UTgGame_Mission::execAllPlayersRecall(FFrame&, void* const) + +native function PlayerSurrender(int nPlayerId, optional bool bSurrender=true); // Export UTgGame_Mission::execPlayerSurrender(FFrame&, void* const) + +native function SurrenderCompleteTimer1(); // Export UTgGame_Mission::execSurrenderCompleteTimer1(FFrame&, void* const) + +native function SurrenderCompleteTimer2(); // Export UTgGame_Mission::execSurrenderCompleteTimer2(FFrame&, void* const) + +native function SurrenderComplete(int nTaskForce); // Export UTgGame_Mission::execSurrenderComplete(FFrame&, void* const) + +native function EndGameBySurrender(int SurrenderingTaskForce); // Export UTgGame_Mission::execEndGameBySurrender(FFrame&, void* const) + +native function CapturedPoint(TgPawn_Character PC); // Export UTgGame_Mission::execCapturedPoint(FFrame&, void* const) + +native function CapturePointReclaimed(TgPawn_Character PC); // Export UTgGame_Mission::execCapturePointReclaimed(FFrame&, void* const) + +native function float GetMinIntroWait(); // Export UTgGame_Mission::execGetMinIntroWait(FFrame&, void* const) + +native function ScoreKill(Controller Killer, Controller Other); // Export UTgGame_Mission::execScoreKill(FFrame&, void* const) + +native function ScoreKillCommon(out ScoreKillData Data); // Export UTgGame_Mission::execScoreKillCommon(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_Mission::execScoreKillGameType(FFrame&, void* const) + +native function ScoreKillAchievements(out ScoreKillData Data); // Export UTgGame_Mission::execScoreKillAchievements(FFrame&, void* const) + +native function bool GetScoreKillData(Controller Killer, Controller Other, out ScoreKillData Data); // Export UTgGame_Mission::execGetScoreKillData(FFrame&, void* const) + +native function NativeUpdateTimerState(); // Export UTgGame_Mission::execNativeUpdateTimerState(FFrame&, void* const) + +native function bool IsFlankKill(out ScoreKillData Data); // Export UTgGame_Mission::execIsFlankKill(FFrame&, void* const) + +event PostBeginPlay() { } + +function CreateMinimapManagers(Class managerClass) { } + +event PostLogin(PlayerController NewPlayer) { } + +function StartMatch() { } + +function AddObjectiveScore(PlayerReplicationInfo Scorer, Int Score) { } + +function OnPointCaptureOwnershipChanged(TgCapturePoint Point, int NewTaskForceOwner, int PreviousTaskForceOwner) { } + +function UpdateLockedPointStatus() { } + +function bool CheckScore(PlayerReplicationInfo Scorer) { } + +event QuickEndGame(int nWinnerTF) { } + +event TgTimer(out string sTimerCommand) { } + +function bool StartGameTimer() { } + +function KeepClientsInSync() { } + +event SetMissionTime(float fTime) { } + +event SetSecondaryMissionTime(float fTime) { } + +event MissionTimerStart() { } + +event MissionTimerStop() { } + +event MissionTimerPause() { } + +event MissionTimer() { } + +event AllPlayersReady() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +event bool MissionTimerActive() { } + +event float ElapsedTime() { } + +event MissionTimerModify(bool bPause, int nNewTime) { } + +event MissionTimeIncrement(float fInc) { } + +event SendMissionTimerNotify(TgRepInfo_Game.MissionTimerState eState, float fRemainingSecs) { } + +event SendSecondaryMissionTimerNotify(TgRepInfo_Game.MissionTimerState eState, float fRemainingSecs) { } + +function float GetSetupTime() { } + +function float GetPlayerWaitTime() { } + +event TgObject.GameTimerState GetMissionTimerStatus() { } + +defaultproperties +{ + m_bSpawnInTaskForceArea=true + m_bSurrenderAvailable=true + m_bAllowAutoUpgrades=true + m_bUsePlayerCharacterIntros=true + m_bUseKillEmotes=true + m_bNotifyKillCombos=true + m_fWaitingForPlayersTime=90.0000000 + m_fSetupTime=90.0000000 + m_fGameMissionTime=14400.0000000 + m_fTickCreditsFreq=1.0000000 + m_fCreditsToGivePerTick=1.0000000 + m_nStartingLevel=1 + m_fFreeVIPWinPoints=2700.0000000 + m_fFreeVIPLossPoints=1350.0000000 + m_fPaidVIPWinPoints=8100.0000000 + m_fPaidVIPLossPoints=3240.0000000 + m_MinimapManagerClass=Class'TgMinimapManager' + m_fSurrenderTime=600.0000000 + m_XPRadius=1280 + m_MinionKillerBonus=0.5000000 + m_BasePlayerGoldReward=300.0000000 + m_fFirstBloodGoldReward=200.0000000 + m_fBasePlayerAssistGoldRewardMultipler=0.5000000 + m_fBasePlayerAssistXpRewardMultipler=0.5000000 + m_fBaseNPCAssistGoldRewardMultipler=1.0000000 + m_fBaseNPCAssistXpRewardMultipler=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins.uc b/Development/Src/TgGame/Classes/TgGame_Paladins.uc old mode 100755 new mode 100644 index de250a9..7ec9d1e --- a/Development/Src/TgGame/Classes/TgGame_Paladins.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins.uc @@ -1,49 +1,214 @@ -class TgGame_Paladins extends TgGame_Battle - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - - -var config int m_nGoalScore; -var transient int m_nTF1Score; -var transient int m_nTF2Score; -var config transient int m_nWinningScore; -var bool m_bScoringEnabled; -var config bool m_bCanPurchaseItemsAnywhere; -var config bool m_bLimitBurnCardsToOnePerCategory; -var config bool m_bAutoMountOnRespawn; -var config bool m_bDropHealthNuggetOnDeath; -var bool m_bRespawnBots; -var config bool m_bDisableKillcam; -var config bool m_bCanApplyCardEquipStats; -var config bool m_bTalentsEnabled; -var config bool m_bAutoMountAtRoundBegin; -var config bool m_bResetPlayersNotInSpawnRoom; -var config bool m_bDeckSwappingAlwaysEnabled; -var bool m_bDiminishingReturnsOnCCEnabled; -var int m_nCanSpoolCredits; -var const float m_fPlayerWaitTime; -var int m_nHealthNuggetDeployableId; -var int m_nHealthNuggetTeamOnlyDeployableId; -var int m_fHealthNuggetPersistTime; -var config float m_fPlayerViewDistance; -var config float m_fVisibilityVolumeViewDistance; -var float m_fCardCooldownIncrease; -var config float m_fCardCooldownMultiplier; -var config float m_fGameTypeReminderTime; -var config float m_fRespawnBeaconLifeSpan; -var config float m_fBaseRespawnTime; -var const float m_fMapLaneChangeDelay; -var config int m_nStartingCredits; -var config int m_nMaxCredits; -var config string m_GameplayEventsWriterClassName; -var GameplayEventsWriter GameplayEventsWriter; -var config float m_fFlankerSoloKillRewardDistance; -var config float m_fDamageRoleMultiplier; -var config float m_fFlankRoleMultiplier; -var config float m_fFrontLineRoleMultiplier; -var config float m_fSupportRoleMultiplier; -var int m_nNextUniquePlayerID; - -// Export UTgGame_Paladins::execBeginEndMission(FFrame&, void* const) -native function bool BeginEndMission(optional bool bClearNextMapGame = false, optional Actor EndMissionFocus, optional float fDelayOverride = 0.0000000); \ No newline at end of file +class TgGame_Paladins extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgAIController_Behavior, TgObject, TgPawn); + +const GAMEEVENT_PALADINS_PLAYER_KILL = 1001; + +const GAMEEVENT_PALADINS_PLAYER_DEATH = 1002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_SUICIDE = 2001; + +const GAMEEVENT_PALADINS_PLAYER_KILL_NORMAL = 2002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_ASSIST = 2003; + +const GAMEEVENT_MATCH_STARTED = 0; + +const GAMEEVENT_MATCH_ENDED = 1; + +const GAMEEVENT_ROUND_STARTED = 2; + +const GAMEEVENT_ROUND_ENDED = 3; + +const GAMEEVENT_GAME_CLASS = 6; + +const GAMEEVENT_GAME_OPTION_URL = 7; + +const GAMEEVENT_GAME_MAPNAME = 8; + +const GAMEEVENT_MEMORYUSAGE_POLL = 35; + +const GAMEEVENT_FRAMERATE_POLL = 36; + +const GAMEEVENT_NETWORKUSAGEIN_POLL = 37; + +const GAMEEVENT_NETWORKUSAGEOUT_POLL = 38; + +const GAMEEVENT_PING_POLL = 39; + +const GAMEEVENT_RENDERTHREAD_POLL = 40; + +const GAMEEVENT_GAMETHREAD_POLL = 41; + +const GAMEEVENT_GPUFRAMETIME_POLL = 42; + +const GAMEEVENT_FRAMETIME_POLL = 43; + +const GAMEEVENT_TEAM_CREATED = 50; + +const GAMEEVENT_TEAM_GAME_SCORE = 51; + +const GAMEEVENT_TEAM_MATCH_WON = 4; + +const GAMEEVENT_TEAM_ROUND_WON = 5; + +const GAMEEVENT_TEAM_ROUND_STALEMATE = 52; + +const GAMEEVENT_PLAYER_LOGIN = 100; + +const GAMEEVENT_PLAYER_LOGOUT = 101; + +const GAMEEVENT_PLAYER_SPAWN = 102; + +const GAMEEVENT_PLAYER_MATCH_WON = 103; + +const GAMEEVENT_PLAYER_KILL = 104; + +const GAMEEVENT_PLAYER_LOCATION_POLL = 105; + +const GAMEEVENT_PLAYER_TEAMCHANGE = 106; + +const GAMEEVENT_PLAYER_KILL_STREAK = 107; + +const GAMEEVENT_PLAYER_DEATH = 108; + +const GAMEEVENT_PLAYER_ROUND_WON = 109; + +const GAMEEVENT_PLAYER_ROUND_STALEMATE = 110; + +const GAMEEVENT_WEAPON_DAMAGE = 150; + +const GAMEEVENT_WEAPON_DAMAGE_MELEE = 151; + +const GAMEEVENT_WEAPON_FIRED = 152; + +const GAMEEVENT_PLAYER_KILL_NORMAL = 200; + +const GAMEEVENT_GENERIC_PARAM_LIST_START = 300; + +const GAMEEVENT_GENERIC_PARAM_LIST_END = 400; + +const GAMEEVENT_GAME_SPECIFIC = 1000; + +const GAMEEVENT_MAX_EVENTID = 0x0000FFFF; + +struct TeamDifficultyData { + var TgAIController_Behavior.EBotDifficultyLevel CurrentBotDifficultyLevel; + var float TeamSkillLevel; + structdefaultproperties {} +}; + +var config int m_nGoalScore; +var config bool m_bCanPurchaseItemsAnywhere; +var config bool m_bAutoMountOnRespawn; +var config bool m_bDropHealthNuggetOnDeath; +var bool m_bRespawnBots; +var config bool m_bDisableKillcam; +var config bool m_bCanApplyCardEquipStats; +var config bool m_bTalentsEnabled; +var config bool m_bDeckSwappingAlwaysEnabled; +var bool m_bDiminishingReturnsOnCCEnabled; +var const float m_fPlayerWaitTime; +var int m_nHealthNuggetDeployableId; +var int m_nHealthNuggetTeamOnlyDeployableId; +var int m_fHealthNuggetPersistTime; +var config float m_fPlayerViewDistance; +var config float m_fVisibilityVolumeViewDistance; +var float m_fCardCooldownIncrease; +var config float m_fCardCooldownMultiplier; +var config float m_fGameTypeReminderTime; +var config float m_fRespawnBeaconLifeSpan; +var config float m_fBaseRespawnTime; +var const float m_fMapLaneChangeDelay; +var config int m_nStartingCredits; +var config int m_nMaxCredits; +var config string m_GameplayEventsWriterClassName; +var GameplayEventsWriter GameplayEventsWriter; +var TeamDifficultyData DifficultyData[2]; +var TgAIDirector AIDirector; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Paladins::execGetRespawnTime(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_Paladins::execScoreKillGameType(FFrame&, void* const) + +native function bool GetScoreKillData(Controller Killer, Controller Other, out ScoreKillData Data); // Export UTgGame_Paladins::execGetScoreKillData(FFrame&, void* const) + +native function ScoreKillCommon(out ScoreKillData Data); // Export UTgGame_Paladins::execScoreKillCommon(FFrame&, void* const) + +native function OnBeaconReset(int nTaskForce, Controller Killer); // Export UTgGame_Paladins::execOnBeaconReset(FFrame&, void* const) + +native function bool BeginEndMission(optional bool bClearNextMapGame=false, optional Actor EndMissionFocus, optional float fDelayOverride=0.0000000); // Export UTgGame_Paladins::execBeginEndMission(FFrame&, void* const) + +native function TriggerMapLaneChange(); // Export UTgGame_Paladins::execTriggerMapLaneChange(FFrame&, void* const) + +native function BeginGameStatsLogging(); // Export UTgGame_Paladins::execBeginGameStatsLogging(FFrame&, void* const) + +native function EndGameStatsLogging(); // Export UTgGame_Paladins::execEndGameStatsLogging(FFrame&, void* const) + +event FadeAllClients() { } + +event PostBeginPlay() { } + +function RestartPlayer(Controller aPlayer) { } + +function InitializeCreditsFor(TgPaladinsController TgPC) { } + +event SetCredits(TgPaladinsController TgPC, int nCreditsAmount) { } + +event GiveCredits(TgPaladinsController TgPC, int nCreditsAmount) { } + +event TakeCredits(TgPaladinsController TgPC, int nCreditsAmount) { } + +function ResetCreditsForAllPlayers() { } + +function ResetKillstreaksForAllPlayers() { } + +function ResetUltForAllPlayers() { } + +function int GetGameTypeHelpTipIndex(TgPlayerController TgPC) { } + +function ShowGameTypeHelpTip() { } + +function SendClientsRequestHelpText(int GameTipId) { } + +function Killed(Controller Killer, Controller KilledPlayer, Pawn KilledPawn, class damageType) { } + +function OnPawnDied(TgPawn Victim) { } + +function OnKillConfirmed(TgRepInfo_Player PRI, TgRepInfo_TaskForce Taskforce, optional int bonusScore=0) { } + +function UpdateTgPawnMetaGameState(TgPawn CurPawn, optional TgPawn.EMetaGameState NewState=0) { } + +function UpdateAllPawnsMetaGameState(optional TgPawn.EMetaGameState NewState=0) { } + +function float GetPlayerWaitTime() { } + +event CheckGameState() { } + +function EndTheGame() { } + +defaultproperties +{ + m_nGoalScore=100 + m_bRespawnBots=true + m_bTalentsEnabled=true + m_bDiminishingReturnsOnCCEnabled=true + m_fPlayerWaitTime=20.0000000 + m_nHealthNuggetDeployableId=643 + m_nHealthNuggetTeamOnlyDeployableId=754 + m_fHealthNuggetPersistTime=30 + m_fPlayerViewDistance=7200.0000000 + m_fVisibilityVolumeViewDistance=256.0000000 + m_fCardCooldownMultiplier=1.0000000 + m_fRespawnBeaconLifeSpan=120.0000000 + m_fBaseRespawnTime=12.0000000 + m_fMapLaneChangeDelay=8.0000000 + m_nStartingCredits=400 + m_nMaxCredits=7500 + m_GameplayEventsWriterClassName="TgGame.TgGameplayEventsWriter" + DifficultyData[0]=(CurrentBotDifficultyLevel=AIDifficulty_Easy1,TeamSkillLevel=0.0000000) + DifficultyData[1]=(CurrentBotDifficultyLevel=AIDifficulty_Easy1,TeamSkillLevel=0.0000000) + m_fSetupTime=0.1000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_PaladinsExtended.uc b/Development/Src/TgGame/Classes/TgGame_PaladinsExtended.uc old mode 100755 new mode 100644 index eae4f4f..acf48ad --- a/Development/Src/TgGame/Classes/TgGame_PaladinsExtended.uc +++ b/Development/Src/TgGame/Classes/TgGame_PaladinsExtended.uc @@ -1,143 +1,481 @@ -class TgGame_PaladinsExtended extends TgGame_Paladins - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - -enum EVictoryType -{ - EVT_Default, // 0 - EVT_Capture, // 1 - EVT_Defend, // 2 - EVT_Payload, // 3 - EVT_Siege, // 4 - EVT_Survival, // 5 - EVT_Kill, // 6 - EVT_Ticket, // 7 - EVT_TimeLimit, // 8 -}; - -var config float m_fWinningTickets; -var config bool m_bTicketsPersist; -var const config bool m_bKillLanePusherOnWallDestroyed; -var bool m_bKeepThisPointForNextRound; -var bool m_bConvergeCompletely; -var bool m_bCanCaptureDuringSurvival; -var const config bool m_bCanAutoPushForward; -var bool m_bConvergeCompletelyAfterDelay; -var bool m_bOverrideSpawnTableID; -var config bool m_bActivateSpawnGatesAtStart; -var config bool m_bRevivePlayersWhenSiegeEngineDies; -var bool m_bStasisTimerOn; -var config bool m_bActivateAllCapturePoints; -var bool m_bPointContested; -var bool m_bPointCaptureOvertimeTF1; -var bool m_bPointCaptureOvertimeTF2; -var bool m_bSimpleOvertime; -var bool m_bSimpleOvertimeEnabled; -var bool m_bCapturePointContestDurationEnabled; -var bool m_bTF1Backsliding; -var bool m_bTF2Backsliding; -var bool m_bEndRoundWhenPointCaptured; -var bool m_bSpawnLanePusherWhenPointCaptured; -var bool m_bCaptureSpawnAlerts; -var bool m_bResetPlayersNotInSpawnRoomDisabled; -var config float m_fTicketsForKill; -var config float m_fTicketsPerCaptureTick; -var config float m_fTicketsBonusPerMultiCapture; -var config float m_fTicketsPerPointCapture; -var float m_fTF1Tickets; -var float m_fTF2Tickets; -var config float m_fTicketsPerTicketDisparity; -var config float m_fSecondsPerTicketDisparity; -var config float m_fMaximumDisparitySeconds; -var config float m_fObjectiveRepickTickets; -var float m_fLastObjectiveRepickTickets; -var config float m_fRoundLimitDuration; -var float s_fRoundLimitElapsed; -var config int m_nPointsForReachingTicketMax; -var config int m_nPointsForReachingRoundTimeLimit; -var config float m_fSecondaryGoalScore; -var const config float m_fSecondaryScoreAmount; -var const config float m_fObjectivePickTime; -var const config float m_fSetupObjectivePickTime; -var const config float m_fSpawnGateOpenTime; -var const config float m_fAttackersSpawnGateOpenTime; -var const config float m_fDefendersSpawnGateOpenTime; -var const config float m_fSetupSpawnGateOpenTime; -var const float m_fObjectiveActivationTime; -var int m_SpawnTableIndex; -var int s_nCurrentCapturePointQueueIndex; -var const config int m_nRegLanePusherHPScaling; -var const config int m_nRegLanePusherPowerScaling; -var const config int m_nGuardianHPScaling; -var const config int m_nGuardianPowerScaling; -var const config int m_nOuterGateHPScaling; -var const config int m_nInnerGateHPScaling; -var const config int m_nBaseObjectiveHPScaling; -var int m_nForcedObjectiveIndex; -var int m_nCountdown; -var protected float m_fSpeedScale; -var float m_fRespawnOffset; -var float m_fRespawnIncreaseOverTime; -var float m_fTimeDeltaRespawnIncrease; -var config float m_fDefenseRespawnIncrease; -var config float m_fAttackRespawnIncrease; -var config float m_fRespawnTimeCap; -var config float m_fNoSiegeEngineRespawnModification; -var const name m_AttackDefendState; -var() config float m_fConvergeStartDistance; -var() config float m_fConvergeRate; -var() config float m_fStartConvergeTime; -var() config float m_fConvergeSafeDistance; -var TgDevice ConvergeDevice; -var const config float m_fAutoPushForwardDelay; -var const config float m_fAutoPushForwardSpeedScale; -var const config float m_fStopAutoPushDelay; -var config int m_nCreditsForHoldingObjective; -var config int m_nCreditsBonusPerContested; -var config int m_nCreditsForHoldingPayload; -var float m_fFogCompleteConvergeDelay; -var config float m_fCapturePointsPerSecond1; -var config float m_fCapturePointsPerSecond2; -var config float m_fCapturePointsPerSecond3; -var config float m_fCapturePointsPerSecond4; -var config float m_fCapturePointsPerSecond5; -var config float m_fPointContestDuration; -var config float m_fPointOvertimeDuration; -var config float m_fPointOvertimeDrainPercPerSec; -var config float m_fPointClaimDuration; -var float m_fOvertimeActiveTime; -var float m_fOvertimeActiveTimeMemory[3]; -var int m_nOvertimeActiveTimeEntry; -var float m_fOvertimeLeft; -var config float m_fBackslidePercent; -var config float m_fBackslideDelay; -var config float m_fBackslideRate; -var int s_nCurrentActivePointIndex; -var int m_nAttackingTaskforce; -var Vector m_SnappedWaypointIndicatorOffset; -var float m_fGamePauseDelay; -var TgChaosCapturePoint m_LastActiveCapturePoint; -var array m_CapturePointQueue; - -// Export UTgGame_PaladinsExtended::execGetRespawnTime(FFrame&, void* const) -native function float GetRespawnTime(int TaskForceNum); - -// Export UTgGame_PaladinsExtended::execScoreObjectiveHold(FFrame&, void* const) -native function ScoreObjectiveHold(TgPawn ScorePawn, int NumContested); - -// Export UTgGame_PaladinsExtended::execScorePayloadHold(FFrame&, void* const) -native function ScorePayloadHold(TgPawn ScorePawn, int NumContested); - -// Export UTgGame_PaladinsExtended::execLoadCardVendor(FFrame&, void* const) -native function LoadCardVendor(); - -// Export UTgGame_PaladinsExtended::execCaptureSpawnAlert(FFrame&, void* const) -native function CaptureSpawnAlert(float TimeRemaining); - -event RespawnAllPlayers(bool bResetLivingPlayers, optional bool bResetDeadPlayers = true, optional bool bResetHealth = true, optional bool bResetDevices = false){} - -function GlobalRespawnTimeUpdate(float fRespawnTime, bool bEnsureRespawnTimeDoesntIncrease){} -function GlobalRespawnTimeUpdateHelper(Controller C, TgPawn TgP, float fRespawnTime, bool bEnsureRespawnTimeDoesntIncrease){} - -function StartGameMode(){} \ No newline at end of file +class TgGame_PaladinsExtended extends TgGame_Paladins + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject, TgPawn, TgRepInfo_Game); + +enum ETeamStatus { + TEAM_WINNING, // 0 + TEAM_LOSING, // 1 + TEAM_TIED, // 2 +}; + +enum EVictoryType { + EVT_Default, // 0 + EVT_Capture, // 1 + EVT_Defend, // 2 + EVT_Payload, // 3 + EVT_Siege, // 4 + EVT_Survival, // 5 + EVT_Kill, // 6 + EVT_Ticket, // 7 + EVT_TimeLimit, // 8 +}; + +var transient int m_nTF1Score; +var transient int m_nTF2Score; +var config transient int m_nWinningScore; +var config float m_fWinningTickets; +var config bool m_bTicketsPersist; +var bool m_bScoringEnabled; +var const config bool m_bKillLanePusherOnWallDestroyed; +var bool m_bKeepThisPointForNextRound; +var bool m_bConvergeCompletely; +var bool m_bCanCaptureDuringSurvival; +var const config bool m_bCanAutoPushForward; +var bool m_bCanSpoolCredits; +var bool m_bConvergeCompletelyAfterDelay; +var bool m_bOverrideSpawnTableID; +var config bool m_bActivateSpawnGatesAtStart; +var config bool m_bRevivePlayersWhenSiegeEngineDies; +var bool m_bStasisTimerOn; +var config bool m_bActivateAllCapturePoints; +var bool m_bPointContested; +var bool m_bPointCaptureOvertime; +var bool m_bCapturePointContestDurationEnabled; +var bool m_bTF1Backsliding; +var bool m_bTF2Backsliding; +var bool m_bEndRoundWhenPointCaptured; +var bool m_bSpawnLanePusherWhenPointCaptured; +var bool m_bCaptureSpawnAlerts; +var bool m_bResetPlayersNotInSpawnRoomDisabled; +var config bool m_bAutoMountAtRoundBegin; +var config bool m_bResetPlayersNotInSpawnRoom; +var config float m_fTicketsForKill; +var config float m_fTicketsPerCaptureTick; +var config float m_fTicketsBonusPerMultiCapture; +var config float m_fTicketsPerPointCapture; +var float m_fTF1Tickets; +var float m_fTF2Tickets; +var config float m_fTicketsPerTicketDisparity; +var config float m_fSecondsPerTicketDisparity; +var config float m_fMaximumDisparitySeconds; +var config float m_fObjectiveRepickTickets; +var float m_fLastObjectiveRepickTickets; +var config float m_fRoundLimitDuration; +var float s_fRoundLimitElapsed; +var config int m_nPointsForReachingTicketMax; +var config int m_nPointsForReachingRoundTimeLimit; +var config float m_fSecondaryGoalScore; +var const config float m_fSecondaryScoreAmount; +var const config float m_fObjectivePickTime; +var const config float m_fSetupObjectivePickTime; +var const config float m_fSpawnGateOpenTime; +var const config float m_fAttackersSpawnGateOpenTime; +var const config float m_fDefendersSpawnGateOpenTime; +var const config float m_fSetupSpawnGateOpenTime; +var const float m_fObjectiveActivationTime; +var int m_SpawnTableIndex; +var TgChaosCapturePoint m_CapturedPoint; +var TgChaosCapturePoint m_LastActiveCapturePoint; +var array m_CapturePointQueue; +var int s_nCurrentCapturePointQueueIndex; +var array m_CardVendor; +var const config int m_nRegLanePusherHPScaling; +var const config int m_nRegLanePusherPowerScaling; +var const config int m_nGuardianHPScaling; +var const config int m_nGuardianPowerScaling; +var const config int m_nOuterGateHPScaling; +var const config int m_nInnerGateHPScaling; +var const config int m_nBaseObjectiveHPScaling; +var TgPawn_SiegeWall m_TF1InnerWall; +var TgPawn_SiegeWall m_TF1OuterWall; +var TgPawn_SiegeWall m_TF1BaseObjective; +var TgPawn_SiegeWall m_TF2InnerWall; +var TgPawn_SiegeWall m_TF2OuterWall; +var TgPawn_SiegeWall m_TF2BaseObjective; +var int m_nForcedObjectiveIndex; +var int m_nCountdown; +var protected float m_fSpeedScale; +var config float m_fRespawnIncreaseOverTime; +var config float m_fDefenseRespawnIncrease; +var config float m_fAttackRespawnIncrease; +var config float m_fRespawnTimeCap; +var config float m_fNoSiegeEngineRespawnModification; +var const name m_AttackDefendState; +var const TgObject.EGameMode m_DefaultGameMode; +var () config float m_fConvergeStartDistance; +var () config float m_fConvergeRate; +var () config float m_fStartConvergeTime; +var () config float m_fConvergeSafeDistance; +var TgDevice ConvergeDevice; +var const config float m_fAutoPushForwardDelay; +var const config float m_fAutoPushForwardSpeedScale; +var const config float m_fStopAutoPushDelay; +var config int m_nCreditsForHoldingObjective; +var config int m_nCreditsBonusPerContested; +var config int m_nCreditsForHoldingPayload; +var float m_fFogCompleteConvergeDelay; +var config float m_fCapturePointsPerSecond1; +var config float m_fCapturePointsPerSecond2; +var config float m_fCapturePointsPerSecond3; +var config float m_fCapturePointsPerSecond4; +var config float m_fCapturePointsPerSecond5; +var config float m_fPointContestDuration; +var config float m_fPointOvertimeDuration; +var config float m_fPointOvertimeDrainPercPerSec; +var config float m_fPointClaimDuration; +var float m_fOvertimeActiveTime; +var config float m_fBackslidePercent; +var config float m_fBackslideDelay; +var config float m_fBackslideRate; +var int s_nCurrentActivePointIndex; +var int m_nAttackingTaskforce; +var config float m_fFlankerSoloKillRewardDistance; +var config float m_fDamageRoleMultiplier; +var config float m_fFlankRoleMultiplier; +var config float m_fFrontLineRoleMultiplier; +var config float m_fSupportRoleMultiplier; +var Vector m_SnappedWaypointIndicatorOffset; +var float m_fGamePauseDelay; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_PaladinsExtended::execGetRespawnTime(FFrame&, void* const) + +native function ScoreObjectiveHold(TgPawn ScorePawn, int NumContested); // Export UTgGame_PaladinsExtended::execScoreObjectiveHold(FFrame&, void* const) + +native function ScorePayloadHold(TgPawn ScorePawn, int NumContested); // Export UTgGame_PaladinsExtended::execScorePayloadHold(FFrame&, void* const) + +native function BotDied(TgAIController aic); // Export UTgGame_PaladinsExtended::execBotDied(FFrame&, void* const) + +native function LoadCardVendor(); // Export UTgGame_PaladinsExtended::execLoadCardVendor(FFrame&, void* const) + +native function CaptureSpawnAlert(float TimeRemaining); // Export UTgGame_PaladinsExtended::execCaptureSpawnAlert(FFrame&, void* const) + +native function SiegeEnginePreDamageMitigation(TgPawn attacker, TgEffectGroup eg, out float fDamage, int nPropertyId); // Export UTgGame_PaladinsExtended::execSiegeEnginePreDamageMitigation(FFrame&, void* const) + +native function SiegeEngineAdjustDamage(const out AdjustDamageParams Params, out float fDamage); // Export UTgGame_PaladinsExtended::execSiegeEngineAdjustDamage(FFrame&, void* const) + +native function CacheConvergeDevice(); // Export UTgGame_PaladinsExtended::execCacheConvergeDevice(FFrame&, void* const) + +native function bool CanSpoolCredits(); // Export UTgGame_PaladinsExtended::execCanSpoolCredits(FFrame&, void* const) + +native function TickOvertime(float DeltaSeconds); // Export UTgGame_PaladinsExtended::execTickOvertime(FFrame&, void* const) + +native function float GetRewardScale(Actor Rewardee, TgObject.ERewardValueType RewardType, optional bool bFlankKill=false); // Export UTgGame_PaladinsExtended::execGetRewardScale(FFrame&, void* const) + +native function bool IsFlankKill(out ScoreKillData Data); // Export UTgGame_PaladinsExtended::execIsFlankKill(FFrame&, void* const) + +native function int GetTaskForceObjectiveTime(int TaskForceNum); // Export UTgGame_PaladinsExtended::execGetTaskForceObjectiveTime(FFrame&, void* const) + +native function SendStartRoundOnePointFromWinningAlert(int nTaskForceNum); // Export UTgGame_PaladinsExtended::execSendStartRoundOnePointFromWinningAlert(FFrame&, void* const) + +event PostBeginPlay() { } + +function int GetScore(int nTaskForce) { } + +function SetScore(int nTaskForce, int nScore) { } + +function bool SetTaskforceScore(TgRepInfo_TaskForce Taskforce, int nScore, out int nStoredScore) { } + +function GainPoints(int nTaskForce, int numPoints, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +function TaskforceWin(int nTaskForce, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +function NotifyClientsOfTF1ScoreChange(int nScore) { } + +function NotifyClientsOfTF2ScoreChange(int nScore) { } + +event SendRoundLimitTimerNotify(TgRepInfo_Game.MissionTimerState eState, float fElapsedSecs) { } + +event RoundTimeLimitReached() { } + +function int ResolveTie() { } + +function BeginPlayConverge() { } + +function EndPlayConverge() { } + +event CheckCorePower(optional TgChaosCapturePoint capturePoint) { } + +function RewardPointCapture(int nTaskForce) { } + +function NotifyPlayersOfPointCapture() { } + +function float GetPointCaptureScoreMultiplier(int nTaskForce) { } + +event TgGame_PaladinsExtended.ETeamStatus GetTeamStatus(byte TaskForceNum, optional out float CaptureRateModifier) { } + +function bool IsSurivivalMode() { } + +function Pawn SpawnDefaultPawnFor(Controller NewPlayer, NavigationPoint StartSpot) { } + +event AllPlayersReady() { } + +function ContestPoint() { } + +function PointContestEnd() { } + +function SetCapturePointOvertimeEnabled(bool bEnabled) { } + +function float GetOvertimeDuration() { } + +function BeginPointOvertime() { } + +function RestartPointOvertime() { } + +function PointOvertimeEnd() { } + +function TgChaosCapturePoint GetCurrentCapturePoint() { } + +function bool ShouldHandlePointCaptureBacksliding() { } + +function BackslideDelayTF1() { } + +function BackslideDelayTF2() { } + +function ManageCapturePointScore() { } + +function CheckAwardObjectiveScore(byte TaskForceNum, TgChaosCapturePoint capturePoint, int NumOnPoint, int NumContested) { } + +function bool CapturePointContestDurationEnabled() { } + +function bool ShouldGoIntoOvertimeOnPointCapture(int TaskForceNum) { } + +event GoalReached() { } + +function bool CanGoToObjectiveActiveState() { } + +function bool CanGoToObjectiveInactiveState() { } + +function UpdateObjectiveStates() { } + +function EnableUltWhenObjectiveStateUpdated() { } + +function EnableCreditSpoolingWhenObjectiveStateUpdated() { } + +function bool ShouldNextRoundBeASurvivalRound() { } + +function SetCapturePointActive(TgObjective Objective) { } + +function int GetNextSpawnTableId() { } + +function PickNextObjective() { } + +function PreFillCapturePointQueue() { } + +function PointCaptured(int nTaskForce, optional bool bSuppressPointsForCapture) { } + +function OpenSpawnGates() { } + +function CloseSpawnGates() { } + +function PayloadCheckpointReached(TgSplineActor_Payload Checkpoint) { } + +function EndPreRoundSetup() { } + +function StartBroadcastTimer() { } + +function EndBroadcastTimer() { } + +function BroadcastTimer() { } + +function float GetPickNextObjectiveTime() { } + +function float GetSpawnGateOpenTime() { } + +function StartStasisTimer() { } + +function EndStasisTimer() { } + +event OnBotDied(TgAIController TgAIC) { } + +function KillSiegeWallTowers(int nTaskForce) { } + +function ConsoleEvent(name EventName) { } + +function OpenInnerGates(byte TaskForceNum, bool bOpen) { } + +function OpenOuterGates(byte TaskForceNum, bool bOpen) { } + +function OpenAllAliveGates(bool bOpen) { } + +function GlobalRespawnTimeUpdate(float fRespawnTime, bool bEnsureRespawnTimeDoesntIncrease) { } + +function GlobalRespawnTimeUpdateHelper(Controller C, TgPawn TgP, float fRespawnTime, bool bEnsureRespawnTimeDoesntIncrease) { } + +event RespawnAllPlayers(bool bResetLivingPlayers, optional bool bResetDeadPlayers=true, optional bool bResetHealth=true, optional bool bResetDevices=false) { } + +function ResetAllPlayersNotInSpawnRoom() { } + +function ResetAttackersNotInSpawnRoom() { } + +function ResetDefendersNotInSpawnRoom() { } + +function ResetPlayersNotInSpawnRoom(bool bResetAttackers, bool bResetDefenders) { } + +function KillAllProjectiles() { } + +function RemoveAllBurnCards() { } + +function PlayLanePusherHelpText() { } + +event LanePusherReachedOuterWall(TgPawn_LanePusher LanePusher) { } + +event LanePusherReachedInnerWall(TgPawn_LanePusher LanePusher) { } + +event LanePusherReachedBaseObjective(TgPawn_LanePusher LanePusher) { } + +function RevivePlayers(optional TgRepInfo_TaskForce ReviveTF) { } + +function TransitionToNextRound() { } + +function UpdateAttackingTaskforceForRoundTransition() { } + +function ResetScores() { } + +function GotoGameRunningState() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +function SendClientRoundObjectivesCompleted() { } + +function SendClientRoundEnded() { } + +function AutoMountPlayersOnTaskForce(optional int nTaskForceNum=-1, optional bool bInvertTaskForce=false) { } + +function AutoMountAllPlayers() { } + +function AutoMountAttackers() { } + +function AutoMountDefenders() { } + +function StartNewObjectiveRound(bool bFirstRound) { } + +function SetSpawnGateTimers(bool bFirstRound) { } + +function SetAutoMountTimers(bool bFirstRound) { } + +function SetResetEscapedPlayersTimers(bool bFirstRound) { } + +function StartGameMode() { } + +event bool IsInGrimReaperMode() { } + +function TgRepInfo_TaskForce GetAttackingTaskForce() { } + +function TgRepInfo_TaskForce GetDefendingTaskForce() { } + +function OnRoundEnded() { } + +function CleanupTicketsForRound() { } + +function ResetGameMode() { } + +function UpdateObjectiveTimer() { } + +function UpdateTgPawnMetaGameState(TgPawn CurPawn, optional TgPawn.EMetaGameState NewState=0) { } + +function UpdateAllPawnsMetaGameState(optional TgPawn.EMetaGameState NewState=0) { } + +function bool KillLanePusherWhenGateIsDestroyed() { } + +function StartFogConverging() { } + +function ResumeConvergeCompletely() { } + +function ConvergeFog() { } + +simulated function float GetTotalSplineDist(SplineActor Spline) { } + +function ScorePayload() { } + +function InitGameReplicationInfo() { } + +function SetLanePusherSpeedScale(float fNewSpeedScale) { } + +function SetTickets(int nTaskForce, float fNumTickets) { } + +function GainTickets(int nTaskForce, float fNumTickets, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +function ReachTicketLimit(int nTaskForce, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +function OnPawnDied(TgPawn Victim) { } + +function UpdateOccupationStatus(TgChaosCapturePoint capturePoint, int nNumTF1, int nNumTF2) { } + +function bool AllowPausing(optional PlayerController PC) { } + +function PauseDelay() { } + +native function NotifyPauseDelay(PlayerController PC); // Export UTgGame_PaladinsExtended::execNotifyPauseDelay(FFrame&, void* const) + +state AttackDefend {} + +state PreRoundSetup {} + +state GameRunning {} + +defaultproperties +{ + m_nWinningScore=1 + m_bScoringEnabled=true + m_bKillLanePusherOnWallDestroyed=true + m_bConvergeCompletelyAfterDelay=true + m_bActivateSpawnGatesAtStart=true + m_bRevivePlayersWhenSiegeEngineDies=true + m_bStasisTimerOn=true + m_bCapturePointContestDurationEnabled=true + m_bSpawnLanePusherWhenPointCaptured=true + m_bCaptureSpawnAlerts=true + m_nPointsForReachingTicketMax=1 + m_nPointsForReachingRoundTimeLimit=1 + m_fSecondaryGoalScore=100.0000000 + m_fSecondaryScoreAmount=2.0000000 + m_fObjectivePickTime=20.0000000 + m_fSetupObjectivePickTime=40.0000000 + m_fObjectiveActivationTime=1.0000000 + m_nRegLanePusherHPScaling=4840 + m_nGuardianHPScaling=6200 + m_nOuterGateHPScaling=1620 + m_nInnerGateHPScaling=3240 + m_nBaseObjectiveHPScaling=4860 + m_nForcedObjectiveIndex=-1 + m_nCountdown=30 + m_fSpeedScale=1.0000000 + m_fRespawnTimeCap=30.0000000 + m_fNoSiegeEngineRespawnModification=-5.0000000 + m_AttackDefendState="AttackDefend" + m_fConvergeStartDistance=13000.0000000 + m_fConvergeRate=208.0000000 + m_fStartConvergeTime=10.0000000 + m_fConvergeSafeDistance=400.0000000 + m_fAutoPushForwardDelay=2.0000000 + m_fAutoPushForwardSpeedScale=0.5000000 + m_nCreditsForHoldingObjective=2 + m_nCreditsBonusPerContested=2 + m_nCreditsForHoldingPayload=2 + m_fFogCompleteConvergeDelay=60.0000000 + m_fPointContestDuration=6.0000000 + m_fPointOvertimeDuration=6.0000000 + m_fPointOvertimeDrainPercPerSec=3.2000000 + m_fPointClaimDuration=6.0000000 + s_nCurrentActivePointIndex=-1 + m_fFlankerSoloKillRewardDistance=100.0000000 + m_fDamageRoleMultiplier=2.0000000 + m_fFlankRoleMultiplier=1.3000000 + m_fFrontLineRoleMultiplier=1.0000000 + m_fSupportRoleMultiplier=2.0000000 + m_fGamePauseDelay=10.0000000 + m_bAutoMountOnRespawn=true + m_fGameTypeReminderTime=60.0000000 + m_bRespawnInhibitors=false + m_nWinBonusXp=15000 + m_nWinPlayerXp=2750 + m_nLosePlayerXp=2750 + m_fBaseTokens=4.0000000 + m_fFirstBloodGoldReward=100.0000000 + m_fBasePlayerAssistXpRewardMultipler=1.0000000 + m_fBaseNPCAssistXpRewardMultipler=2.0000000 + m_GameType=TGT_CHAOS + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Assault.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Assault.uc old mode 100755 new mode 100644 index ee0481c..ad60e3f --- a/Development/Src/TgGame/Classes/TgGame_Paladins_Assault.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Assault.uc @@ -1,4 +1,50 @@ -class TgGame_Paladins_Assault extends TgGame_Paladins_Siege - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file +class TgGame_Paladins_Assault extends TgGame_Paladins_Siege + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var config float m_fAttackDuration; +var const config float m_fAttackPhaseOvertimeDuration; +var config float m_fAttackCaptureRateMultiplier; +var TgChaosCapturePoint m_AttackPoint; +var bool m_bInAttackPhaseOvertime; +var float m_fTakeoverSecondPhaseInstructionDelay; + +native function SendAssaultPointCapturedAlert(int Taskforce); // Export UTgGame_Paladins_Assault::execSendAssaultPointCapturedAlert(FFrame&, void* const) + +function ActivateTaskforceSpecificCapturePoint(int TaskForceId) { } + +function float GetPointCaptureScoreMultiplier(int nTaskForce) { } + +function NotifyPlayersOfPointCapture() { } + +function InstructClientsOnTakeoverSecondPhase() { } + +function bool ShouldHandlePointCaptureBacksliding() { } + +function TgChaosCapturePoint GetCurrentCapturePoint() { } + +function CaptureAndPayloadRoundEnded() { } + +function bool AttackersOnPoint() { } + +state GameRunning {} + +state AttackDefend {} + +defaultproperties +{ + m_fAttackDuration=180.0000000 + m_fAttackPhaseOvertimeDuration=6.0000000 + m_fAttackCaptureRateMultiplier=2.0000000 + m_fTakeoverSecondPhaseInstructionDelay=3.0000000 + m_fPayloadDuration=180.0000000 + m_nWinningScore=5 + m_bSpawnLanePusherWhenPointCaptured=false + m_fSetupObjectivePickTime=30.0000000 + m_fSpawnGateOpenTime=30.0000000 + m_fSetupSpawnGateOpenTime=30.0000000 + m_fBackslidePercent=75.0000000 + m_fBackslideDelay=5.0000000 + m_fBackslideRate=2.5000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Assault_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Assault_Practice.uc new file mode 100644 index 0000000..92ce264 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Assault_Practice.uc @@ -0,0 +1,10 @@ +class TgGame_Paladins_Assault_Practice extends TgGame_Paladins_Assault + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nPIESpawnTable=387 + m_nTargetPlayerCountForMercs=10 + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Assault_Ranked.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Assault_Ranked.uc new file mode 100644 index 0000000..8a53283 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Assault_Ranked.uc @@ -0,0 +1,3 @@ +class TgGame_Paladins_Assault_Ranked extends TgGame_Paladins_Assault + config(Game) + hidecategories(Navigation,Movement,Collision); diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_CaptureOnly.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_CaptureOnly.uc new file mode 100644 index 0000000..0d692fa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_CaptureOnly.uc @@ -0,0 +1,13 @@ +class TgGame_Paladins_CaptureOnly extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nWinningScore=2 + m_bEndRoundWhenPointCaptured=true + m_fObjectivePickTime=15.0000000 + m_fSetupObjectivePickTime=15.0000000 + m_fSpawnGateOpenTime=15.0000000 + m_fSetupSpawnGateOpenTime=15.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Halloween2017.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Halloween2017.uc new file mode 100644 index 0000000..5ea7a79 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Halloween2017.uc @@ -0,0 +1,7 @@ +class TgGame_Paladins_Halloween2017 extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +event AllPlayersReady() { } + +function UpdateSilhouetteRendering() { } diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught.uc old mode 100755 new mode 100644 index 8e56809..d278672 --- a/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught.uc @@ -1,4 +1,32 @@ -class TgGame_Paladins_Onslaught extends TgGame_Paladins_Siege - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file +class TgGame_Paladins_Onslaught extends TgGame_Paladins_Siege + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +native function SendStartRoundOnePointFromWinningAlert(int nTaskForceNum); // Export UTgGame_Paladins_Onslaught::execSendStartRoundOnePointFromWinningAlert(FFrame&, void* const) + +function int GetGameTypeHelpTipIndex(TgPlayerController TgPC) { } + +defaultproperties +{ + m_nWinningScore=1 + m_fWinningTickets=400.0000000 + m_fTicketsForKill=5.0000000 + m_fTicketsPerCaptureTick=1.0000000 + m_fTicketsPerTicketDisparity=10.0000000 + m_fSecondsPerTicketDisparity=1.0000000 + m_fMaximumDisparitySeconds=4.0000000 + m_fRoundLimitDuration=600.0000000 + m_nCreditsForHoldingObjective=4 + m_nCreditsBonusPerContested=0 + m_fCapturePointsPerSecond1=0.0000000 + m_fCapturePointsPerSecond2=0.0000000 + m_fCapturePointsPerSecond3=0.0000000 + m_fCapturePointsPerSecond4=0.0000000 + m_fCapturePointsPerSecond5=0.0000000 + m_SnappedWaypointIndicatorOffset=(X=0.0000000,Y=10.0000000,Z=0.0000000) + m_fGameTypeReminderTime=15.0000000 + m_fBaseRespawnTime=8.0000000 + m_fCreditsToGivePerTick=5.0000000 + m_GameType=TGT_CHAOS_ONSLAUGHT +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught_Practice.uc new file mode 100644 index 0000000..d0c4247 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Onslaught_Practice.uc @@ -0,0 +1,11 @@ +class TgGame_Paladins_Onslaught_Practice extends TgGame_Paladins_Onslaught + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nPIESpawnTable=426 + m_nTargetPlayerCountForMercs=10 + m_GameType=TGT_CHAOS_CAPTUREANDPAYLOAD_PRACTICE + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Payload.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Payload.uc old mode 100755 new mode 100644 index 284f711..a7fa921 --- a/Development/Src/TgGame/Classes/TgGame_Paladins_Payload.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Payload.uc @@ -1,58 +1,107 @@ -class TgGame_Paladins_Payload extends TgGame_Paladins_Siege - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - -var int m_nPayloadOnlyCurrentAttackingTeam; -var int s_nCurrentTurn; - -function OnRoundEnded(){} -function CaptureAndPayloadRoundEnded(){} -function ToggleAttackingTaskforce(){} -function SetResetEscapedPlayersTimers(bool bFirstRound){} - -state GameRunning -{ - - function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName) - { - } - - function PointCaptured(int nTaskForce, optional bool bSuppressPointsForCapture) - { - - } - stop; -} - -state AttackDefend -{ - - function BeginState(name PreviousStateName) - { - } - - function float GetPayloadStartingDuration() - { - } - - function float GetOvertimeDuration() - { - } - - function bool OvertimePreventsPayloadExpiring() - { - } - - function TgChaosCapturePoint GetCapturePointToSpawnSiegeEngineAt() - { - } - - function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName) - { - } - - function Tick(float DeltaTime) - { - } -} \ No newline at end of file +class TgGame_Paladins_Payload extends TgGame_Paladins_Siege + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +const TG_DISTANCE_CAP = 100000.0f; + +var float s_fCurrentTF1FarthestPushDistance; +var float s_fCurrentTF2FarthestPushDistance; +var float s_fCurrentPushTimer; +var float s_fCurrentTF1FarthestPushDistanceTimestamp; +var float s_fCurrentTF2FarthestPushDistanceTimestamp; +var float s_fTimeTF1HadToPush; +var int m_nPayloadOnlyCurrentAttackingTeam; +var int s_nCurrentTurn; +var Vector s_vPayloadGhostLocation; +var () Vector s_vPayloadGhostOffset; +var Rotator s_PayloadGhostRotation; +var int m_nPayloadGhostID; +var TgDeployable m_PayloadGhost; + +native function SpawnPayloadGhost(); // Export UTgGame_Paladins_Payload::execSpawnPayloadGhost(FFrame&, void* const) + +native function SendStartRoundOnePointFromWinningAlert(int nTaskForceNum); // Export UTgGame_Paladins_Payload::execSendStartRoundOnePointFromWinningAlert(FFrame&, void* const) + +function StartGameMode() { } + +function SetSpawnGateTimers(bool bFirstRound) { } + +function OpenAttackersSpawnGates() { } + +function OpenDefendersSpawnGates() { } + +function float GetAttackersSpawnGateOpenTime() { } + +function float GetDefendersSpawnGateOpenTime() { } + +function SetAutoMountTimers(bool bFirstRound) { } + +function SetResetEscapedPlayersTimers(bool bFirstRound) { } + +event LanePusherReachedOuterWall(TgPawn_LanePusher LanePusher) { } + +function BroadcastTimer() { } + +function UpdateAttackingTaskforceForRoundTransition() { } + +event UpdatePayloadProgress() { } + +function float GetDistanceToEndOfSpline() { } + +function TF2PushesPastTF1() { } + +function TF2ReachesTF1Faster() { } + +function TF2TakesLongerThanTF1() { } + +function ManageComparativeScoring() { } + +function OnRoundEnded() { } + +function OvertimeExpired() { } + +function PayloadExpired() { } + +function float GetPayloadTimer() { } + +function PayloadCheckpointReached(TgSplineActor_Payload Checkpoint) { } + +simulated function SetCheckpoint1Reached() { } + +simulated function SetCheckpoint2Reached() { } + +simulated function ClearCheckpointsReached() { } + +function ToggleAttackingTaskforce() { } + +function CaptureAndPayloadRoundEnded() { } + +state GameRunning {} + +state AttackDefend {} + +defaultproperties +{ + m_nPayloadOnlyCurrentAttackingTeam=1 + s_nCurrentTurn=1 + s_vPayloadGhostOffset=(X=0.0000000,Y=0.0000000,Z=-60.0000000) + m_nPayloadGhostID=828 + m_nPointsForCapturing=0 + m_nPointsForPayload=0 + m_nPointsForDefending=0 + m_bFadeOutAtRoundEnd=true + m_fPayloadDuration=420.0000000 + m_nWinningScore=1 + m_bKeepThisPointForNextRound=true + m_fObjectivePickTime=50.0000000 + m_fSetupObjectivePickTime=50.0000000 + m_fSpawnGateOpenTime=50.0000000 + m_fAttackersSpawnGateOpenTime=50.0000000 + m_fDefendersSpawnGateOpenTime=10.0000000 + m_fSpeedScale=0.4000000 + m_nStartingCredits=1000 + m_fCreditsToGivePerTick=2.0000000 + m_GameType=TGT_CHAOS_PAYLOAD + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Payload_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Payload_Practice.uc new file mode 100644 index 0000000..ef1b9bf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Payload_Practice.uc @@ -0,0 +1,11 @@ +class TgGame_Paladins_Payload_Practice extends TgGame_Paladins_Payload + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nPIESpawnTable=402 + m_nTargetPlayerCountForMercs=10 + m_GameType=TGT_CHAOS_PAYLOAD_PRACTICE + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype1.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype1.uc new file mode 100644 index 0000000..1a440c0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype1.uc @@ -0,0 +1,21 @@ +class TgGame_Paladins_Prototype1 extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nWinningScore=1 + m_fWinningTickets=400.0000000 + m_fTicketsForKill=5.0000000 + m_fTicketsPerCaptureTick=2.0000000 + m_fSetupObjectivePickTime=30.0000000 + m_fSpawnGateOpenTime=30.0000000 + m_fSetupSpawnGateOpenTime=30.0000000 + m_fCapturePointsPerSecond1=0.0000000 + m_fCapturePointsPerSecond2=0.0000000 + m_fCapturePointsPerSecond3=0.0000000 + m_fCapturePointsPerSecond4=0.0000000 + m_fCapturePointsPerSecond5=0.0000000 + m_fBaseRespawnTime=10.0000000 + m_fCreditsToGivePerTick=4.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype2.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype2.uc new file mode 100644 index 0000000..36fd00f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype2.uc @@ -0,0 +1,21 @@ +class TgGame_Paladins_Prototype2 extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_bDoNotSwitchPoints=false + m_nWinningScore=1 + m_fWinningTickets=500.0000000 + m_fTicketsForKill=3.0000000 + m_fTicketsPerCaptureTick=1.0000000 + m_fTicketsBonusPerMultiCapture=0.2500000 + m_fObjectiveRepickTickets=100.0000000 + m_fCapturePointsPerSecond1=0.0000000 + m_fCapturePointsPerSecond2=0.0000000 + m_fCapturePointsPerSecond3=0.0000000 + m_fCapturePointsPerSecond4=0.0000000 + m_fCapturePointsPerSecond5=0.0000000 + m_bDeckSwappingAlwaysEnabled=true + m_fBaseRespawnTime=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype3.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype3.uc new file mode 100644 index 0000000..50dfdc3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype3.uc @@ -0,0 +1,22 @@ +class TgGame_Paladins_Prototype3 extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nWinningScore=1 + m_fWinningTickets=500.0000000 + m_fTicketsForKill=5.0000000 + m_fTicketsPerCaptureTick=2.0000000 + m_fSetupObjectivePickTime=30.0000000 + m_fSpawnGateOpenTime=30.0000000 + m_fSetupSpawnGateOpenTime=30.0000000 + m_fCapturePointsPerSecond1=0.0000000 + m_fCapturePointsPerSecond2=0.0000000 + m_fCapturePointsPerSecond3=0.0000000 + m_fCapturePointsPerSecond4=0.0000000 + m_fCapturePointsPerSecond5=0.0000000 + m_bDisableKillcam=true + m_fBaseRespawnTime=5.0000000 + m_fCreditsToGivePerTick=4.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype4.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype4.uc new file mode 100644 index 0000000..9079839 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype4.uc @@ -0,0 +1,3 @@ +class TgGame_Paladins_Prototype4 extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype5.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype5.uc new file mode 100644 index 0000000..76cea1d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Prototype5.uc @@ -0,0 +1,3 @@ +class TgGame_Paladins_Prototype5 extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_PvE.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_PvE.uc new file mode 100644 index 0000000..b23f012 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_PvE.uc @@ -0,0 +1,15 @@ +class TgGame_Paladins_PvE extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nPointsForDefending=0 + m_nWinningScore=2 + m_bEndRoundWhenPointCaptured=true + m_nStartingCredits=3200 + m_nPIESpawnTable=418 + m_nTargetPlayerCountForMercs=10 + m_GameType=TGT_CHAOS_PVE + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_PvE_Survival.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_PvE_Survival.uc new file mode 100644 index 0000000..4a723a5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_PvE_Survival.uc @@ -0,0 +1,12 @@ +class TgGame_Paladins_PvE_Survival extends TgGame_Paladins_Survival + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nStartingCredits=2000 + m_nPIESpawnTable=395 + m_nTargetPlayerCountForMercs=10 + m_GameType=TGT_CHAOS_PVE_SURVIVAL + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_ShootingRange.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_ShootingRange.uc old mode 100755 new mode 100644 index 5833b65..a77a278 --- a/Development/Src/TgGame/Classes/TgGame_Paladins_ShootingRange.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_ShootingRange.uc @@ -1,4 +1,13 @@ -class TgGame_Paladins_ShootingRange extends TgGame_Paladins - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file +class TgGame_Paladins_ShootingRange extends TgGame_Paladins + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_bDeckSwappingAlwaysEnabled=true + m_fBaseRespawnTime=3.0000000 + m_nStartingCredits=9999 + m_fCreditsToGivePerTick=2.0000000 + m_GameType=TGT_CHAOS_SHOOTINGRANGE +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Siege.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Siege.uc old mode 100755 new mode 100644 index 485f632..94f76ca --- a/Development/Src/TgGame/Classes/TgGame_Paladins_Siege.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Siege.uc @@ -1,38 +1,145 @@ -class TgGame_Paladins_Siege extends TgGame_PaladinsExtended - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - - -var config transient int m_nPointsForCapturing; -var config transient int m_nPointsForPayload; -var config transient int m_nPointsForDefending; -var config transient int m_nPointsForPayloadCheckpoint; -var config int m_nCreditsForWinningARound; -var config int m_nCreditsForCapturingPoint; -var config int m_nCreditsForSuccessfulDefend; -var config int m_nCreditsForSuccessfulPush; -var config bool m_bRespawnDeadPlayersAfterRound; -var config bool m_bRespawnLivePlayersAfterRound; -var config bool m_bRoundTreatment; -var config bool m_bCanWinOnDefense; -var bool m_bInCapturePointOvertime; -var bool m_bInPayloadOvertime; -var bool m_bDestroyPayloadCartAfterPayloadPhase; -var config bool m_bDoNotSwitchPoints; -var transient bool m_bHasHitCheckpoint; -var config bool m_bFadeOutAtRoundEnd; -var config float m_fLosingCaptureRateModifier; -var config float m_fDurationUntilCaptureOvertime; -var config float m_fCaptureOvertimeWarningDuration; -var const config float m_fPayloadDuration; -var const config float m_fPayloadOvertimeDuration; -var const config float m_fPayloadDurationCheckpoint; -var const config float m_fRoundEndRespawnDelay; -var int s_nCurrentRound; - -function PostBeginPlay(){} -function TaskforceWin(int nTaskForce, TgGame_PaladinsExtended.EVictoryType VictoryType){} -function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName){} - -//event LanePusherReachedOuterWall(TgPawn_LanePusher LanePusher){} \ No newline at end of file +class TgGame_Paladins_Siege extends TgGame_PaladinsExtended + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var config transient int m_nPointsForCapturing; +var config transient int m_nPointsForPayload; +var config transient int m_nPointsForDefending; +var config transient int m_nPointsForPayloadCheckpoint; +var config int m_nCreditsForWinningARound; +var config int m_nCreditsForCapturingPoint; +var config int m_nCreditsForSuccessfulDefend; +var config int m_nCreditsForSuccessfulPush; +var config bool m_bRespawnDeadPlayersAfterRound; +var config bool m_bRespawnLivePlayersAfterRound; +var config bool m_bRoundTreatment; +var config bool m_bCanWinOnDefense; +var bool m_bInCapturePointOvertime; +var bool m_bInPayloadOvertime; +var bool m_bDestroyPayloadCartAfterPayloadPhase; +var config bool m_bDoNotSwitchPoints; +var transient bool m_bHasHitCheckpoint; +var config bool m_bFadeOutAtRoundEnd; +var config float m_fLosingCaptureRateModifier; +var config float m_fDurationUntilCaptureOvertime; +var config float m_fCaptureOvertimeWarningDuration; +var const config float m_fPayloadDuration; +var const config float m_fPayloadOvertimeDuration; +var const config float m_fPayloadDurationCheckpoint; +var const config float m_fRoundEndRespawnDelay; +var int s_nCurrentRound; + +native function TrackPushAttempt(TgRepInfo_TaskForce Taskforce); // Export UTgGame_Paladins_Siege::execTrackPushAttempt(FFrame&, void* const) + +native function TrackPushSuccess(TgRepInfo_TaskForce Taskforce); // Export UTgGame_Paladins_Siege::execTrackPushSuccess(FFrame&, void* const) + +native function TrackMapLane(int laneID); // Export UTgGame_Paladins_Siege::execTrackMapLane(FFrame&, void* const) + +native function TickOvertime(float DeltaSeconds); // Export UTgGame_Paladins_Siege::execTickOvertime(FFrame&, void* const) + +function PostBeginPlay() { } + +function TaskforceWin(int nTaskForce, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +function SetOvertime(float fOvertime, float fOvertimeWarning) { } + +function float GetPointCaptureScoreMultiplier(int nTaskForce) { } + +function RewardPointCapture(int nTaskForce) { } + +function TgChaosCapturePoint GetCurrentCapturePoint() { } + +function PickNextObjective() { } + +function EnableUltWhenObjectiveStateUpdated() { } + +function EnableCreditSpoolingWhenObjectiveStateUpdated() { } + +function TgPawn_SiegeEngine_Payload GetSiegeEnginePush() { } + +event LanePusherReachedInnerWall(TgPawn_LanePusher LanePusher) { } + +event LanePusherReachedOuterWall(TgPawn_LanePusher LanePusher) { } + +function SetPayloadTimer(float fDuration, bool overtime) { } + +function OnRoundEnded() { } + +function AwardTPOnRoundEnded() { } + +function bool ShouldSelectNextCapturePointForLoading() { } + +function CaptureAndPayloadRoundEnded() { } + +function OpenSpawnGates() { } + +function BroadcastTimer() { } + +function PointCapturePhaseCleanup() { } + +function PayloadPhaseCleanup() { } + +function NavigationPoint FindPlayerStart(Controller Player, optional byte InTeam, optional string IncomingName) { } + +function TriggerSuccessfulDefense(int nTaskForce) { } + +function TriggerSuccessfulPush(int nTaskForce) { } + +simulated function TriggerCapturePointVictory() { } + +simulated function TriggerPayloadVictory(int nTaskForce) { } + +function FogOvertimeWarning() { } + +function FogOvertime() { } + +function FogOvertimeEnd() { } + +function int GetGameSpawnPhase(TgPawn TgP) { } + +function int GetCurrentLane() { } + +state AttackDefend {} + +state RoundEnded {} + +state GameRunning {} + +defaultproperties +{ + m_nPointsForCapturing=1 + m_nPointsForPayload=1 + m_nPointsForDefending=1 + m_nPointsForPayloadCheckpoint=1 + m_nCreditsForCapturingPoint=300 + m_bRespawnDeadPlayersAfterRound=true + m_bRespawnLivePlayersAfterRound=true + m_bRoundTreatment=true + m_bDestroyPayloadCartAfterPayloadPhase=true + m_bDoNotSwitchPoints=true + m_fLosingCaptureRateModifier=15.0000000 + m_fPayloadDuration=150.0000000 + m_fPayloadOvertimeDuration=6.0000000 + m_fPayloadDurationCheckpoint=120.0000000 + m_fRoundEndRespawnDelay=5.0000000 + s_nCurrentRound=1 + m_nWinningScore=4 + m_bCanCaptureDuringSurvival=true + m_bRevivePlayersWhenSiegeEngineDies=false + m_bAutoMountAtRoundBegin=true + m_bResetPlayersNotInSpawnRoom=true + m_fObjectivePickTime=30.0000000 + m_fSetupObjectivePickTime=25.0000000 + m_fSpawnGateOpenTime=40.0000000 + m_fSetupSpawnGateOpenTime=50.0000000 + m_fDefenseRespawnIncrease=2.0000000 + m_fAttackRespawnIncrease=-4.0000000 + m_fCapturePointsPerSecond1=3.0000000 + m_fCapturePointsPerSecond2=3.0000000 + m_fCapturePointsPerSecond3=3.0000000 + m_fCapturePointsPerSecond4=3.0000000 + m_fCapturePointsPerSecond5=3.0000000 + m_GameType=TGT_CHAOS_CAPTUREANDPAYLOAD + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Siege_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Siege_Practice.uc new file mode 100644 index 0000000..943e809 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Siege_Practice.uc @@ -0,0 +1,11 @@ +class TgGame_Paladins_Siege_Practice extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nPIESpawnTable=402 + m_nTargetPlayerCountForMercs=10 + m_GameType=TGT_CHAOS_CAPTUREANDPAYLOAD_PRACTICE + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Siege_Ranked.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Siege_Ranked.uc new file mode 100644 index 0000000..b415336 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Siege_Ranked.uc @@ -0,0 +1,3 @@ +class TgGame_Paladins_Siege_Ranked extends TgGame_Paladins_Siege + config(Game) + hidecategories(Navigation,Movement,Collision); diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Survival.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Survival.uc old mode 100755 new mode 100644 index 74ea362..f537294 --- a/Development/Src/TgGame/Classes/TgGame_Paladins_Survival.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Survival.uc @@ -1,4 +1,49 @@ -class TgGame_Paladins_Survival extends TgGame_Paladins_Siege - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file +class TgGame_Paladins_Survival extends TgGame_Paladins_Siege + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgGame_PaladinsExtended); + +var int m_nWinningTaskforceThisRound; +var float m_fRoundStartTime; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Paladins_Survival::execGetRespawnTime(FFrame&, void* const) + +native function SendStartRoundOnePointFromWinningAlert(int nTaskForceNum); // Export UTgGame_Paladins_Survival::execSendStartRoundOnePointFromWinningAlert(FFrame&, void* const) + +event PostBeginPlay() { } + +function CheckAwardObjectiveScore(byte TaskForceNum, TgChaosCapturePoint capturePoint, int NumOnPoint, int NumContested) { } + +function bool ShouldNextRoundBeASurvivalRound() { } + +function float GetSpawnGateOpenTime() { } + +function float GetPickNextObjectiveTime() { } + +function OnPawnDied(TgPawn Victim) { } + +function SurvivalModeRoundWon(TgRepInfo_TaskForce RoundWinningTF) { } + +function SurvivalModeRoundEnded() { } + +function bool ShouldSelectNextCapturePointForLoading() { } + +function TaskforceWin(int nTaskForce, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +function StartNewObjectiveRound(bool bFirstRound) { } + +function SetCapturePointActive(TgObjective Objective) { } + +defaultproperties +{ + m_nWinningScore=5 + m_bEndRoundWhenPointCaptured=true + m_fSetupObjectivePickTime=30.0000000 + m_fSpawnGateOpenTime=0.0000000 + m_fSetupSpawnGateOpenTime=0.0000000 + m_nStartingCredits=1500 + m_fCreditsToGivePerTick=2.0000000 + m_GameType=TGT_CHAOS_SURVIVAL + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Survival_Practice.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Survival_Practice.uc new file mode 100644 index 0000000..af86ed0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Survival_Practice.uc @@ -0,0 +1,11 @@ +class TgGame_Paladins_Survival_Practice extends TgGame_Paladins_Survival + config(Game) + hidecategories(Navigation,Movement,Collision); + +defaultproperties +{ + m_nPIESpawnTable=395 + m_nTargetPlayerCountForMercs=10 + m_GameType=TGT_CHAOS_SURVIVAL_PRACTICE + m_bIsPracticeGametype=true +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_TeamDeathMatch.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_TeamDeathMatch.uc old mode 100755 new mode 100644 index c93a009..1f6c67f --- a/Development/Src/TgGame/Classes/TgGame_Paladins_TeamDeathMatch.uc +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_TeamDeathMatch.uc @@ -1,4 +1,23 @@ -class TgGame_Paladins_TeamDeathMatch extends TgGame_Paladins - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); \ No newline at end of file +class TgGame_Paladins_TeamDeathMatch extends TgGame_Paladins_Siege + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var int m_lastPointTF; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_Paladins_TeamDeathMatch::execGetRespawnTime(FFrame&, void* const) + +function OpenSpawnGates() { } + +defaultproperties +{ + m_lastPointTF=1 + m_nWinningScore=1 + m_fWinningTickets=50.0000000 + m_fTicketsForKill=1.0000000 + m_bCanPurchaseItemsAnywhere=true + m_bAutoMountOnRespawn=false + m_fBaseRespawnTime=5.0000000 + m_fCreditsToGivePerTick=5.0000000 + m_GameType=TGT_CHAOS_TEAM_DEATH_MATCH +} diff --git a/Development/Src/TgGame/Classes/TgGame_Paladins_Tutorial.uc b/Development/Src/TgGame/Classes/TgGame_Paladins_Tutorial.uc new file mode 100644 index 0000000..a8c7d35 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Paladins_Tutorial.uc @@ -0,0 +1,311 @@ +class TgGame_Paladins_Tutorial extends TgGame_Paladins_Siege + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgGame_PaladinsExtended, TgObject, TgPlayerController); + +const PALADINS_ACTIVITY_WELL_TRAINED = 1975; + +enum ETutorialState { + ETutState_Invalid, // 0 + ETutState_TutorialIntro, // 1 + ETutState_MoveForwardBackward, // 2 + ETutState_MoveRightLeft, // 3 + ETutState_PlayerApproachBot, // 4 + ETutState_PlayerMoveToShootingRange, // 5 + ETutState_HealthBar, // 6 + ETutState_AutoAbility, // 7 + ETutState_AutoAbilityMultipleEnemies, // 8 + ETutState_BattleAbility, // 9 + ETutState_CooldownExplain, // 10 + ETutState_MovementAbility, // 11 + ETutState_PlayerMoveToUltimateShootingRange, // 12 + ETutState_AltAbility, // 13 + ETutState_UltimateAbilityCharge, // 14 + ETutState_UltimateAbility, // 15 + ETutState_Mount, // 16 + ETutState_PlayerMovingToJumpArea, // 17 + ETutState_Jump, // 18 + ETutState_PlayerMovingToObjective, // 19 + ETutState_CapturingObjective, // 20 + ETutState_ContestingObjective, // 21 + ETutState_PayloadSpawn, // 22 + ETutState_PayloadContest, // 23 + ETutState_PayloadPush, // 24 + ETutState_TutorialComplete, // 25 +}; + +enum ETutorialAnnouncerLine { + Announcer_Line_Tutorial_A_PortalRoom_010, // 0 + Announcer_Line_Tutorial_A_PortalRoom_020, // 1 + Announcer_Line_Tutorial_A_PortalRoom_030, // 2 + Announcer_Line_Tutorial_A_PortalRoom_040, // 3 + Announcer_Line_Tutorial_A_PortalRoom_050, // 4 + Announcer_Line_Tutorial_A_PortalRoom_060, // 5 + Announcer_Line_Tutorial_A_PortalRoom_070, // 6 + Announcer_Line_Tutorial_A_PortalRoom_080, // 7 + Announcer_Line_Tutorial_A_PortalRoom_090, // 8 + Announcer_Line_Tutorial_A_PortalRoom_100, // 9 + Announcer_Line_Tutorial_A_PortalRoom_110, // 10 + Announcer_Line_Tutorial_B_BasicTraining_020, // 11 + Announcer_Line_Tutorial_B_BasicTraining_030, // 12 + Announcer_Line_Tutorial_B_BasicTraining_050, // 13 + Announcer_Line_Tutorial_B_BasicTraining_060, // 14 + Announcer_Line_Tutorial_B_BasicTraining_070, // 15 + Announcer_Line_Tutorial_B_BasicTraining_080, // 16 + Announcer_Line_Tutorial_B_BasicTraining_090, // 17 + Announcer_Line_Tutorial_B_BasicTraining_110, // 18 + Announcer_Line_Tutorial_B_BasicTraining_120, // 19 + Announcer_Line_Tutorial_B_BasicTraining_130, // 20 + Announcer_Line_Tutorial_B_BasicTraining_140, // 21 + Announcer_Line_Tutorial_B_BasicTraining_150, // 22 + Announcer_Line_Tutorial_B_BasicTraining_160, // 23 + Announcer_Line_Tutorial_B_BasicTraining_170, // 24 + Announcer_Line_Tutorial_B_BasicTraining_180, // 25 + Announcer_Line_Tutorial_B_BasicTraining_190, // 26 + Announcer_Line_Tutorial_B_BasicTraining_200, // 27 + Announcer_Line_Tutorial_B_BasicTraining_210, // 28 + Announcer_Line_Tutorial_B_BasicTraining_220, // 29 + Announcer_Line_Tutorial_B_BasicTraining_230, // 30 + Announcer_Line_Tutorial_B_BasicTraining_240, // 31 + Announcer_Line_Tutorial_B_BasicTraining_250, // 32 + Announcer_Line_Tutorial_B_BasicTraining_260, // 33 + Announcer_Line_Tutorial_B_BasicTraining_270, // 34 + Announcer_Line_Tutorial_B_BasicTraining_280, // 35 + Announcer_Line_Tutorial_B_BasicTraining_290, // 36 + Announcer_Line_Tutorial_B_BasicTraining_300, // 37 + Announcer_Line_Tutorial_B_BasicTraining_310, // 38 + Announcer_Line_Tutorial_B_BasicTraining_320, // 39 + Announcer_Line_Tutorial_B_BasicTraining_330, // 40 + Announcer_Line_Tutorial_B_BasicTraining_340, // 41 + Announcer_Line_Tutorial_B_BasicTraining_350, // 42 + Announcer_Line_Tutorial_B_BasicTraining_360, // 43 + Announcer_Line_Tutorial_B_BasicTraining_370, // 44 + Announcer_Line_Tutorial_B_BasicTraining_380, // 45 + Announcer_Line_Tutorial_B_BasicTraining_390, // 46 + Announcer_Line_Tutorial_B_BasicTraining_400, // 47 + Announcer_Line_Tutorial_B_BasicTraining_410, // 48 + Announcer_Line_Tutorial_B_BasicTraining_420, // 49 + Announcer_Line_Tutorial_B_BasicTraining_430, // 50 + Announcer_Line_Tutorial_B_BasicTraining_440, // 51 + Announcer_Line_Tutorial_B_BasicTraining_450, // 52 + Announcer_Line_Tutorial_B_BasicTraining_460, // 53 + Announcer_Line_Tutorial_B_BasicTraining_470, // 54 + Announcer_Line_Tutorial_C_PortalRoom2_010, // 55 + Announcer_Line_Tutorial_C_PortalRoom2_020, // 56 + Announcer_Line_Tutorial_C_PortalRoom2_030, // 57 + Announcer_Line_Tutorial_C_PortalRoom2_040, // 58 + Announcer_Line_Tutorial_C_PortalRoom2_050, // 59 + Announcer_Line_Tutorial_C_PortalRoom2_060, // 60 + Announcer_Line_Tutorial_C_PortalRoom2_070, // 61 + Announcer_Line_Tutorial_C_PortalRoom2_080, // 62 + Announcer_Line_Tutorial_C_PortalRoom2_085, // 63 + Announcer_Line_Tutorial_C_PortalRoom2_090, // 64 + Announcer_Line_Tutorial_C_PortalRoom2_100, // 65 + Announcer_Line_Tutorial_C_PortalRoom2_110, // 66 + Announcer_Line_Tutorial_D_Objective_012, // 67 + Announcer_Line_Tutorial_D_Objective_015, // 68 + Announcer_Line_Tutorial_D_Objective_018, // 69 + Announcer_Line_Tutorial_D_Objective_020, // 70 + Announcer_Line_Tutorial_D_Objective_022, // 71 + Announcer_Line_Tutorial_D_Objective_025, // 72 + Announcer_Line_Tutorial_D_Objective_028, // 73 + Announcer_Line_Tutorial_D_Objective_030, // 74 + Announcer_Line_Tutorial_D_Objective_040, // 75 + Announcer_Line_Tutorial_D_Objective_050, // 76 + Announcer_Line_Tutorial_D_Objective_060, // 77 + Announcer_Line_Tutorial_D_Objective_065, // 78 + Announcer_Line_Tutorial_D_Objective_070, // 79 + Announcer_Line_Tutorial_D_Objective_080, // 80 + Announcer_Line_Tutorial_D_Objective_090, // 81 + Announcer_Line_Tutorial_D_Objective_100, // 82 + Announcer_Line_Tutorial_D_Objective_110, // 83 + Announcer_Line_Tutorial_D_Objective_120, // 84 + Announcer_Line_Tutorial_D_Objective_130, // 85 + Announcer_Line_Tutorial_D_Objective_140, // 86 + Announcer_Line_Tutorial_D_Objective_150, // 87 + Announcer_Line_Tutorial_D_Objective_160, // 88 + Announcer_Line_Tutorial_D_Objective_170, // 89 +}; + +enum ETutorialUI { + ETUI_Health, // 0 + ETUI_Auto, // 1 + ETUI_BattleAbility, // 2 + ETUI_MovementAbility, // 3 + ETUI_Alt, // 4 + ETUI_Ultimate, // 5 + ETUI_CapturePoint, // 6 + ETUI_Payload, // 7 + ETUI_ScoreSection, // 8 + ETUI_PushTime, // 9 + ETUI_Cards, // 10 + ETUI_Prompt, // 11 + ETUI_Killfeed, // 12 +}; + +var transient TgGame_Paladins_Tutorial.ETutorialState m_eCurrentState; +var private transient TgTutorialInfo TutorialInfo; +var float m_fSetupPauseTime; +var bool m_bSetupTimerPaused; +var transient bool m_bReceivedMovementAbility; +var transient bool m_bReachedJumpLowerArea; +var transient bool m_bReachedJumpUpperArea; +var transient bool m_bDamagedWithAlt; +var transient bool m_bDamagedWithBattle; +var transient bool m_bDamagedWithUlt; +var transient bool m_bPointCaptured; +var transient bool m_bWaitingForUIReady; +var transient float m_fReceivedMoveForwardSeconds; +var transient float m_fReceivedMoveBackwardSeconds; +var transient float m_fReceivedMoveLeftSeconds; +var transient float m_fReceivedMoveRightSeconds; +var transient float m_fVolumeStandTime; +var transient float m_fLastFrameDeltaTime; +var AkEvent m_EndAnnouncerAudioEvent; + +native exec function EnableTutorialUI(TgGame_Paladins_Tutorial.ETutorialUI TutUIElement, bool bEnable, optional float fFadeTime=0.5000000); // Export UTgGame_Paladins_Tutorial::execEnableTutorialUI(FFrame&, void* const) + +native function AwardAchievement(); // Export UTgGame_Paladins_Tutorial::execAwardAchievement(FFrame&, void* const) + +native function int GetWinningTaskforce(); // Export UTgGame_Paladins_Tutorial::execGetWinningTaskforce(FFrame&, void* const) + +native function HideWorldOverlays(); // Export UTgGame_Paladins_Tutorial::execHideWorldOverlays(FFrame&, void* const) + +native function bool IsUIReady(); // Export UTgGame_Paladins_Tutorial::execIsUIReady(FFrame&, void* const) + +native function int GetObjectiveMsg(); // Export UTgGame_Paladins_Tutorial::execGetObjectiveMsg(FFrame&, void* const) + +native function int GetGamepadObjectiveMsg(); // Export UTgGame_Paladins_Tutorial::execGetGamepadObjectiveMsg(FFrame&, void* const) + +native function int GetAnnouncerSTM(TgGame_Paladins_Tutorial.ETutorialAnnouncerLine eLine); // Export UTgGame_Paladins_Tutorial::execGetAnnouncerSTM(FFrame&, void* const) + +function StartMatch() { } + +function StartGameMode() { } + +function LocalPlayerInputReceived(TgPlayerController.EPlayerInputType InputType) { } + +event LocalPlayerDeviceOnDamaged(out OnDamagedParams Params) { } + +function PointCaptured(int nTaskForce, optional bool bSuppressPointsForCapture) { } + +function bool IsAllAudioFinished() { } + +function HaltAllAudio() { } + +function float GetRepeatInstructionTime() { } + +function StartRepeatInstructions() { } + +function StopRepeatInstructions() { } + +function RepeatInstructions() { } + +function DisableUI() { } + +function SpawnCurrentBots() { } + +event bool CurrentBotsDead() { } + +function TgBotFactory GetCurrentBotFactory() { } + +function KillHelper() { } + +function TgGame_Paladins_Tutorial.ETutorialState GetTutorialState() { } + +event Tick(float DeltaSeconds) { } + +function float GetPointCaptureScoreMultiplier(int nTaskForce) { } + +function PauseSetupTimerAt(float TimeRemaining) { } + +function PauseSetupTimer() { } + +function UnpauseSetupTimer() { } + +function TrySetTimer(float fLength, optional bool bLoop=false, optional name FunctionToCall='Timer') { } + +function TryClearTimer(name TimerName) { } + +function TgPlayerController GetLocalTgPlayerController() { } + +function TgPawn GetLocalPlayerPawn() { } + +function TgDevice GetLocalPlayerDevice(TgObject.TG_EQUIP_POINT eqp) { } + +function TgTutorialInfo GetTutorialInfo() { } + +function PlayAK(AkBaseSoundObject AKObj, optional float fLength, optional name NextFunction='None') { } + +function PlayAnnouncer(TgGame_Paladins_Tutorial.ETutorialAnnouncerLine eAnnouncerLine, optional float fLength, optional name NextFunction='None') { } + +function GainPoints(int nTaskForce, int numPoints, TgGame_PaladinsExtended.EVictoryType VictoryType) { } + +event CheckGameState() { } + +state TutorialIntro {} + +state MoveForwardBackward {} + +state MoveRightLeft {} + +state PlayerApproachBot {} + +state PlayerMoveToShootingRange {} + +state HealthBar {} + +state AutoAbility {} + +state AutoAbilityMultipleEnemies {} + +state BattleAbility {} + +state CooldownExplain {} + +state MovementAbility {} + +state PlayerMoveToUltimateShootingRange {} + +state AltAbility {} + +state UltimateAbilityCharge {} + +state UltimateAbility {} + +state Mount {} + +state PlayerMovingToJumpArea {} + +state Jump {} + +state PlayerMovingToObjective {} + +state CapturingObjective {} + +state ContestingObjective {} + +state PayloadSpawn {} + +state PayloadContest {} + +state PayloadPush {} + +state TutorialComplete {} + +defaultproperties +{ + m_fSetupPauseTime=-1.0000000 + m_EndAnnouncerAudioEvent=AkEvent'Tutorial_Announcer_KillVox_Stop' + m_nWinningScore=2 + m_bCaptureSpawnAlerts=false + m_bRespawnBots=false + m_bRestrictStoreInteractions=true + m_bFirstBloodAwarded=true + m_bUsePlayerCharacterIntros=false + m_bUseKillEmotes=false + m_bNotifyKillCombos=false + m_GameType=TGT_CHAOS_TUTORIAL + m_fSpawnProtectionTime=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgGame_PointCapture.uc b/Development/Src/TgGame/Classes/TgGame_PointCapture.uc new file mode 100644 index 0000000..a1cb29e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_PointCapture.uc @@ -0,0 +1,92 @@ +class TgGame_PointCapture extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgObject); + +var float s_TicketCheckInterval; +var int s_nCaptureHostilePointXP; +var int s_nCaptureHostilePointGold; +var int s_nReclaimPointXP; +var int s_nReclaimPointGold; +var transient int s_nCurrentPhase; +var int s_nPhase2Threshold; +var int s_nPhase3Threshold; +var int m_nSpawnWaveTime; +var int m_nSpawnWaveDominatingTime; +var int m_nMaxDominatingPoints; +var int s_nAboutToLoseThreshold; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_PointCapture::execGetRespawnTime(FFrame&, void* const) + +native function MarkAsReady(Player P); // Export UTgGame_PointCapture::execMarkAsReady(FFrame&, void* const) + +native function EndGameBySurrender(int SurrenderingTaskForce); // Export UTgGame_PointCapture::execEndGameBySurrender(FFrame&, void* const) + +native function bool BeginEndMission(optional bool bClearNextMapGame=false, optional Actor EndMissionFocus, optional float fDelayOverride=0.0000000); // Export UTgGame_PointCapture::execBeginEndMission(FFrame&, void* const) + +native function ScoreKillGameType(out ScoreKillData Data); // Export UTgGame_PointCapture::execScoreKillGameType(FFrame&, void* const) + +native function CapturedPoint(TgPawn_Character PC); // Export UTgGame_PointCapture::execCapturedPoint(FFrame&, void* const) + +native function CapturePointReclaimed(TgPawn_Character PC); // Export UTgGame_PointCapture::execCapturePointReclaimed(FFrame&, void* const) + +native function AlertAboutToLose(int nTaskForce); // Export UTgGame_PointCapture::execAlertAboutToLose(FFrame&, void* const) + +native function UpdateGameWinState(TgPawn nexus); // Export UTgGame_PointCapture::execUpdateGameWinState(FFrame&, void* const) + +native function SendBonusMinionAlerts(TgRepInfo_TaskForce tf, int nLane); // Export UTgGame_PointCapture::execSendBonusMinionAlerts(FFrame&, void* const) + +native function StructureDied(TgPawn_Structure theStructure); // Export UTgGame_PointCapture::execStructureDied(FFrame&, void* const) + +native function ApplyTowerImmunity(); // Export UTgGame_PointCapture::execApplyTowerImmunity(FFrame&, void* const) + +native function int GetNextVulnerableTowerId(int nBotId); // Export UTgGame_PointCapture::execGetNextVulnerableTowerId(FFrame&, void* const) + +native function bool ShouldSpawnSuperMinions(TgBotFactory_Minions minionFactory); // Export UTgGame_PointCapture::execShouldSpawnSuperMinions(FFrame&, void* const) + +event Actor GetEndFocusActor() { } + +function float GetSetupTime() { } + +function bool StartGameTimer() { } + +function SpawnNeutralBots() { } + +event ChangeTimerState(TgObject.GameTimerState eTimerState) { } + +function CheckTickets() { } + +function CheckWinCondition() { } + +event CheckWinState() { } + +function SpawnWaveTeam1Timer() { } + +function SpawnWaveTeam2Timer() { } + +function float GetTaskForceDominatingFactor(int TaskForceNum) { } + +function UpdateLockedPointStatus() { } + +function OnPointCaptureOwnershipChanged(TgCapturePoint Point, int NewTaskForceOwner, int PreviousTaskForceOwner) { } + +defaultproperties +{ + s_TicketCheckInterval=3.6000000 + s_nCaptureHostilePointXP=65 + s_nCaptureHostilePointGold=20 + s_nReclaimPointXP=65 + s_nReclaimPointGold=20 + s_nCurrentPhase=1 + s_nPhase2Threshold=200 + m_nSpawnWaveTime=20 + m_nSpawnWaveDominatingTime=40 + m_nMaxDominatingPoints=150 + s_nAboutToLoseThreshold=100 + m_fCreditsToGivePerTick=5.0000000 + m_nStartingLevel=3 + m_fFirstBloodGoldReward=100.0000000 + m_GameType=TGT_POINTCAPTURE + GoalScore=400 +} diff --git a/Development/Src/TgGame/Classes/TgGame_Siege.uc b/Development/Src/TgGame/Classes/TgGame_Siege.uc new file mode 100644 index 0000000..af5c8d8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_Siege.uc @@ -0,0 +1,30 @@ +class TgGame_Siege extends TgGame_Battle + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +enum SIEGE_TIER { + SGT_NONE, // 0 + SGT_TOWERA, // 1 + SGT_TOWERB, // 2 + SGT_CASTLE, // 3 +}; + +function float GetSetupTime() { } + +function bool StartGameTimer() { } + +event ReachedCheckpoint(int Taskforce, int Tier) { } + +function DestroyTower(int Taskforce, int Index) { } + +function WinGame(int WinningTaskForce) { } + +defaultproperties +{ + m_bRespawnInhibitors=false + m_nStartingCurrency=2000 + m_nStartingLevel=3 + m_MinionKillerBonus=0.2500000 + m_GameType=TGT_SIEGE +} diff --git a/Development/Src/TgGame/Classes/TgGame_SinglePointCaptureAndHold.uc b/Development/Src/TgGame/Classes/TgGame_SinglePointCaptureAndHold.uc new file mode 100644 index 0000000..761ef7c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGame_SinglePointCaptureAndHold.uc @@ -0,0 +1,30 @@ +class TgGame_SinglePointCaptureAndHold extends TgGame_PointCapture + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision); + +var int m_nCurrentActiveCapturePointIndex; +var int m_nNumTicketsForCapturingPoint; +var int m_nNumTicketsForHoldingPoint; +var float m_fNewPointTime; +var float m_fDefendingTeamRespawnTime; + +native function float GetRespawnTime(int TaskForceNum); // Export UTgGame_SinglePointCaptureAndHold::execGetRespawnTime(FFrame&, void* const) + +function SpawnNeutralBots() { } + +function OnPointCaptureOwnershipChanged(TgCapturePoint Point, int NewTaskForceOwner, int PreviousTaskForceOwner) { } + +function CheckTickets() { } + +function UpdateLockedPointStatus() { } + +defaultproperties +{ + m_nCurrentActiveCapturePointIndex=-1 + m_nNumTicketsForHoldingPoint=1 + m_fNewPointTime=5.0000000 + m_fDefendingTeamRespawnTime=40.0000000 + m_GameType=TGT_SINGLEPOINTCAPTUREANDHOLD + GoalScore=100 +} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurveOwner.uc b/Development/Src/TgGame/Classes/TgGameplayCurveOwner.uc new file mode 100644 index 0000000..428e130 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurveOwner.uc @@ -0,0 +1,6 @@ +interface TgGameplayCurveOwner extends Interface + dependson(TgGameplayCurvesSet); + +function TgGameplayCurvesSet GetCurrentGameplayCurveSet(TgGameplayCurvesSet.ECurveSetTypes Type); // Export UTgGameplayCurveOwner::execGetCurrentGameplayCurveSet(FFrame&, void* const) + +function bool UseRangeFalloffCurve(); // Export UTgGameplayCurveOwner::execUseRangeFalloffCurve(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgGameplayCurves.uc b/Development/Src/TgGame/Classes/TgGameplayCurves.uc new file mode 100644 index 0000000..e0e9e36 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurves.uc @@ -0,0 +1,15 @@ +class TgGameplayCurves extends Object + native(GameplayCurves) + editinlinenew + config(Engine) + dependson(TgGameplayCurvesSet); + +var () noclear editinline array CurveSets; +var () noclear editinlineuse array InheritedCurves; +var () editoronly transient bool bShowInheritedCurves; +var () editoronly transient bool bInheritedCurvesShareEditorTab; +var export InterpCurveEdSetup CurveEdSetup; + +native function TgGameplayCurvesSet GetCurvesSetByType(TgGameplayCurvesSet.ECurveSetTypes curveType); // Export UTgGameplayCurves::execGetCurvesSetByType(FFrame&, void* const) + +native function bool GetPrimaryDistributionValueByType(TgGameplayCurvesSet.ECurveSetTypes curveType, float T, out float Value); // Export UTgGameplayCurves::execGetPrimaryDistributionValueByType(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet.uc new file mode 100644 index 0000000..c3c1a1c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet.uc @@ -0,0 +1,42 @@ +class TgGameplayCurvesSet extends Object + abstract + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +enum ECurveSetTypes { + CST_None, // 0 + CST_Recoil, // 1 + CST_RecoilSimple, // 2 + CST_AccuracyBloom, // 3 + CST_DamageFalloff, // 4 + CST_DamageFalloffAOE, // 5 + CST_DamagePerShotHit, // 6 + CST_SpreadTendency, // 7 + CST_RuckusSpinUpControl, // 8 + CST_GravityFromZVelocity, // 9 + CST_AirControlFromZVelocity, // 10 + CST_WallRunVerticalMovement, // 11 + CST_AimAssist, // 12 + CST_AimAssistKeyframes, // 13 + CST_AimAcceleration, // 14 + CST_TargetTracking, // 15 + CST_HitMarkerScaleByDamage, // 16 + CST_GravityFromCustom, // 17 + CST_ProjectileSpeedOverTime, // 18 + CST_FlakInhandSlow, // 19 + CST_FlakInhandKnockback, // 20 + CST_ThreatLevelByRange, // 21 + CST_AimAssistBoundsScale, // 22 + CST_ProjFrictionOverTime, // 23 + CST_ProjGravityOverTime, // 24 + CST_ScopeWeaponFOV, // 25 + CST_AimAssistBoundsByFOV, // 26 +}; + +var (CurveSet) const editconst TgGameplayCurvesSet.ECurveSetTypes CurveSetType; + +native function float GetDistributionValue(const out RawDistributionFloat Distribution, float T); // Export UTgGameplayCurvesSet::execGetDistributionValue(FFrame&, void* const) + +native function bool GetPrimaryDistributionValue(float T, out float Value); // Export UTgGameplayCurvesSet::execGetPrimaryDistributionValue(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Accuracy.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Accuracy.uc new file mode 100644 index 0000000..fd21ebf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Accuracy.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_Accuracy extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAcceleration.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAcceleration.uc new file mode 100644 index 0000000..82fad34 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAcceleration.uc @@ -0,0 +1,14 @@ +class TgGameplayCurvesSet_AimAcceleration extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +var (CurveSet) noclear editinline array AimAccelerationCurves; + +native simulated function UpdateAimAcceleration(out float TurnSpeedX, out float TurnSpeedY, out float aTurn, out float aLookUp, float DeltaTime, int CurveSetToUse, int AccelerationBoost, int Algorithm); // Export UTgGameplayCurvesSet_AimAcceleration::execUpdateAimAcceleration(FFrame&, void* const) + +defaultproperties +{ + CurveSetType=CST_AimAcceleration +} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistBounds.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistBounds.uc new file mode 100644 index 0000000..a3f88f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistBounds.uc @@ -0,0 +1,16 @@ +class TgGameplayCurvesSet_AimAssistBounds extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +var (CurveSet) RawDistributionFloat BoundsScaleHorizByDistance; +var (CurveSet) RawDistributionFloat BoundsScaleVertByDistance; +var (CurveSet) bool bUseHorizCurveForVert; +var (CurveSet) float fBaseHorizMultiplier; +var (CurveSet) float fBaseVertMultiplier; + +simulated function GetBoundsScale(float fDistance, out float fHorizBoundsScale, out float fVertBoundsScale) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistBoundsByFOV.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistBoundsByFOV.uc new file mode 100644 index 0000000..d1b91ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistBoundsByFOV.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_AimAssistBoundsByFOV extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistKeyframes.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistKeyframes.uc new file mode 100644 index 0000000..6e67aa4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AimAssistKeyframes.uc @@ -0,0 +1,52 @@ +class TgGameplayCurvesSet_AimAssistKeyframes extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine) + dependson(TgAimAssistKeyframe); + +struct AimAssistKeyframeDebugVals { + var int DebugState; + var name curveMin[7]; + var name curveMax[7]; + var float valMin[7]; + var float valMax[7]; + var float valInterp[7]; + var float valFinal[7]; + structdefaultproperties {} +}; + +var transient AimAssistKeyframeDebugVals DebugVals; +var transient bool bSaveDebugVals; +var (CurveSet) noclear editinline array HorizMagnetKeyframes; +var (CurveSet) noclear editinline array VertMagnetKeyframes; +var (CurveSet) noclear editinline array FrictionKeyframes; +var (CurveSet) noclear editinline array TrackingByAccuracyKeyframes; +var (CurveSet) noclear editinline array TrackingByAngleKeyframes; + +simulated function float GetHorizMagnetValue(float assistValue, float Distance, const out array MagnetHorizKeyframeData) { } + +simulated function float GetVertMagnetValue(float assistValue, float Distance, const out array MagnetVertKeyframeData) { } + +simulated function float GetFrictionValue(float assistValue, float Distance, const out array FrictionKeyframeData) { } + +simulated function float GetHorizTrackingValue(float assistValue, float DesiredTurnAmtPerSec, float Distance, const out array HorizTrackingByAccuracyKeyframeData, const out array HorizTrackingByAngleKeyframeData) { } + +simulated function float GetVertTrackingValue(float assistValue, float DesiredTurnAmtPerSec, float Distance, const out array VertTrackingByAccuracyKeyframeData, const out array VertTrackingByAngleKeyframeData) { } + +simulated function SaveDebugInfo(bool bShouldSave) { } + +simulated function float GetAimAssistValue(float assistValue, float Distance, const out array keyframeData, const out array keyframesToCheck) { } + +simulated function float GetKeyframeDistributionValue(const out TgAimAssistKeyframe keyframe, float T) { } + +simulated function bool GetKeyframesToUse(float Distance, const out array keyframeData, const out array keyframesToCheck, out TgAimAssistKeyframe keyframe1, out TgAimAssistKeyframe keyframe2, out float keyframe1Dist, out float keyframe2Dist) { } + +simulated function bool GetKeyframeByName(name KeyframeName, const out array keyframesToCheck, out TgAimAssistKeyframe outKeyframe) { } + +simulated function float GetInterpValBetweenFrames(float Time, float inKeyTime, float outKeyTime) { } + +defaultproperties +{ + CurveSetType=CST_AimAssistKeyframes +} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AirControlFromZVelocity.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AirControlFromZVelocity.uc new file mode 100644 index 0000000..b645710 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_AirControlFromZVelocity.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_AirControlFromZVelocity extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamageFalloff.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamageFalloff.uc new file mode 100644 index 0000000..05e39a6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamageFalloff.uc @@ -0,0 +1,12 @@ +class TgGameplayCurvesSet_DamageFalloff extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +var (CurveSet) RawDistributionFloat DamageFalloff; +var (CurveSet) bool bIsRangeNormalized; +var (CurveSet) bool bExcludeEffectiveRange; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamageFalloffAOE.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamageFalloffAOE.uc new file mode 100644 index 0000000..183dd93 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamageFalloffAOE.uc @@ -0,0 +1,12 @@ +class TgGameplayCurvesSet_DamageFalloffAOE extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +var (CurveSet) RawDistributionFloat DamageFalloff; +var (CurveSet) bool bIsRangeNormalized; +var (CurveSet) bool bExcludeEffectiveRange; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamagePerShotHit.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamagePerShotHit.uc new file mode 100644 index 0000000..64d9332 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_DamagePerShotHit.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_DamagePerShotHit extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_FlakInhandKnockback.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_FlakInhandKnockback.uc new file mode 100644 index 0000000..1a78e7c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_FlakInhandKnockback.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_FlakInhandKnockback extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_FlakInhandSlow.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_FlakInhandSlow.uc new file mode 100644 index 0000000..5efec89 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_FlakInhandSlow.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_FlakInhandSlow extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_GravityFromCustom.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_GravityFromCustom.uc new file mode 100644 index 0000000..e6a185f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_GravityFromCustom.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_GravityFromCustom extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_GravityFromZVelocity.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_GravityFromZVelocity.uc new file mode 100644 index 0000000..7703adf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_GravityFromZVelocity.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_GravityFromZVelocity extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_HitMarkerScaleByDamage.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_HitMarkerScaleByDamage.uc new file mode 100644 index 0000000..f0e1cf6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_HitMarkerScaleByDamage.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_HitMarkerScaleByDamage extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjFrictionOverTime.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjFrictionOverTime.uc new file mode 100644 index 0000000..da8dc3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjFrictionOverTime.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_ProjFrictionOverTime extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjGravityOverTime.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjGravityOverTime.uc new file mode 100644 index 0000000..8beec5d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjGravityOverTime.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_ProjGravityOverTime extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjectileSpeedOverTime.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjectileSpeedOverTime.uc new file mode 100644 index 0000000..54798d7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ProjectileSpeedOverTime.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_ProjectileSpeedOverTime extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Recoil.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Recoil.uc new file mode 100644 index 0000000..a14df14 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Recoil.uc @@ -0,0 +1,28 @@ +class TgGameplayCurvesSet_Recoil extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +enum EPaladinsRecoilType { + PRT_Normal, // 0 + PRT_AimDownSights, // 1 + PRT_StimActive, // 2 +}; + +var (CurveSet) noclear editinline array HorizRecoil; +var (CurveSet) noclear editinline array VertRecoil; +var (CurveSet) TgGameplayCurvesSet_Recoil.EPaladinsRecoilType RecoilType; + +simulated function bool GetHorizRecoilValue(float firingTime, float randInput, out float recoilAmt) { } + +simulated function bool GetVertRecoilValue(float firingTime, float randInput, out float recoilAmt) { } + +simulated function bool GetRecoilValue(float firingTime, float randInput, out float recoilAmt, const out array keyframesToCheck) { } + +simulated function float GetInterpValBetweenFrames(float Time, float inKeyTime, float outKeyTime) { } + +defaultproperties +{ + CurveSetType=CST_Recoil +} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_RecoilSimple.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_RecoilSimple.uc new file mode 100644 index 0000000..11e31cc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_RecoilSimple.uc @@ -0,0 +1,19 @@ +class TgGameplayCurvesSet_RecoilSimple extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine) + dependson(TgGameplayCurvesSet_Recoil); + +var (CurveSet) RawDistributionFloat HorizRecoil1; +var (CurveSet) RawDistributionFloat HorizRecoil2; +var (CurveSet) RawDistributionFloat VertRecoil1; +var (CurveSet) RawDistributionFloat VertRecoil2; +var (CurveSet) TgGameplayCurvesSet_Recoil.EPaladinsRecoilType RecoilType; + +simulated function float GetHorizRecoilValue(float firingTime, float randInput) { } + +simulated function float GetVertRecoilValue(float firingTime, float randInput) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_RuckusSpinUpControl.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_RuckusSpinUpControl.uc new file mode 100644 index 0000000..f821dd0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_RuckusSpinUpControl.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_RuckusSpinUpControl extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ScopeWeaponFOV.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ScopeWeaponFOV.uc new file mode 100644 index 0000000..865d380 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ScopeWeaponFOV.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_ScopeWeaponFOV extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Simple.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Simple.uc new file mode 100644 index 0000000..c5f3d77 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_Simple.uc @@ -0,0 +1,15 @@ +class TgGameplayCurvesSet_Simple extends TgGameplayCurvesSet + abstract + native(GameplayCurves) + editinlinenew + hidecategories(Object,Object) + config(Engine); + +var (CurveSet) RawDistributionFloat PrimaryCurve; +var const name PrimaryCurveTabName; +var const name PrimaryCurveName; + +native function bool GetPrimaryDistributionValue(float T, out float Value); // Export UTgGameplayCurvesSet_Simple::execGetPrimaryDistributionValue(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_SpreadTendency.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_SpreadTendency.uc new file mode 100644 index 0000000..68d580e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_SpreadTendency.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_SpreadTendency extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_TargetAimTracking.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_TargetAimTracking.uc new file mode 100644 index 0000000..8779be0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_TargetAimTracking.uc @@ -0,0 +1,34 @@ +class TgGameplayCurvesSet_TargetAimTracking extends TgGameplayCurvesSet + native(GameplayCurves) + editinlinenew + hidecategories(Object) + config(Engine); + +struct TargetAimTrackingDebugVals { + var int DebugState; + var name trackingCurveSetName; + var float strengthMultiplier[2]; + var float strengthByAccuracy[2]; + var float strengthByDesiredAngle[2]; + var float strengthFinal[2]; + var float rawDesiredTurnAmt[2]; + var float rawDesiredTurnAmtPerSec[2]; + structdefaultproperties {} +}; + +var (CurveSet) noclear editinline array TargetTrackingCurves; +var transient TargetAimTrackingDebugVals DebugVals; +var transient bool bSaveDebugVals; + +simulated function float GetTargetTrackingPercX(float HorizAssistAmt, float DesiredTurnAmt, int CurveSetToUse, int TargetTrackingStrength, float DeltaTime) { } + +simulated function float GetTargetTrackingPercY(float VertAssistAmt, float DesiredTurnAmt, int CurveSetToUse, int TargetTrackingStrength, float DeltaTime) { } + +simulated function float GetTargetTrackingStrength(float AssistAmt, float DesiredTurnAmtPerSec, const out RawDistributionFloat StrengthByAccuracyCurve, const out RawDistributionFloat StrengthByDesiredAngleCurve, int TargetTrackingStrength) { } + +simulated function SaveDebugInfo(bool bShouldSave) { } + +defaultproperties +{ + CurveSetType=CST_TargetTracking +} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ThreatLevelByRange.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ThreatLevelByRange.uc new file mode 100644 index 0000000..b25e1da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_ThreatLevelByRange.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_ThreatLevelByRange extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayCurvesSet_WallRunVerticalMovement.uc b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_WallRunVerticalMovement.uc new file mode 100644 index 0000000..9c8c025 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayCurvesSet_WallRunVerticalMovement.uc @@ -0,0 +1,7 @@ +class TgGameplayCurvesSet_WallRunVerticalMovement extends TgGameplayCurvesSet_Simple + editinlinenew + hidecategories(Object,Object) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgGameplayEventsWriter.uc b/Development/Src/TgGame/Classes/TgGameplayEventsWriter.uc new file mode 100644 index 0000000..2db2bde --- /dev/null +++ b/Development/Src/TgGame/Classes/TgGameplayEventsWriter.uc @@ -0,0 +1,12 @@ +class TgGameplayEventsWriter extends GameplayEventsWriter + native(GameStats) + config(Engine); + +native function native int ResolvePlayerIndex(Controller Player); // Export UTgGameplayEventsWriter::execResolvePlayerIndex(FFrame&, void* const) + +native function LogPaladinsPlayerKillDeath(int EventID, int KillType, Controller Killer, Class dmgType, Controller Dead); // Export UTgGameplayEventsWriter::execLogPaladinsPlayerKillDeath(FFrame&, void* const) + +defaultproperties +{ + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgHUD.uc b/Development/Src/TgGame/Classes/TgHUD.uc new file mode 100644 index 0000000..45ddca2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHUD.uc @@ -0,0 +1,62 @@ +class TgHUD extends HUD + transient + native + config(Game) + hidecategories(Navigation) + dependson(TgDevice, TgObject); + +var TgPlayerController m_TgPlayerController; + +native function DeviceChangeEvent(TgDevice Dev, TgDevice.EDeviceChangeEvent Event); // Export UTgHUD::execDeviceChangeEvent(FFrame&, void* const) + +native function bool UpdateGameClockUI(); // Export UTgHUD::execUpdateGameClockUI(FFrame&, void* const) + +native function bool UpdateGameScoreUI(); // Export UTgHUD::execUpdateGameScoreUI(FFrame&, void* const) + +native function bool UpdateGameCapturePointsUI(); // Export UTgHUD::execUpdateGameCapturePointsUI(FFrame&, void* const) + +native function bool UpdatePlayerInfoUI(TgRepInfo_Player PRI); // Export UTgHUD::execUpdatePlayerInfoUI(FFrame&, void* const) + +native function bool UpdatePlayerVitalsUI(TgPlayerController PC); // Export UTgHUD::execUpdatePlayerVitalsUI(FFrame&, void* const) + +native function bool UpdatePlayerStatUI(TgPawn changedPawn); // Export UTgHUD::execUpdatePlayerStatUI(FFrame&, void* const) + +native function PlayTakeHit(Rotator HitDir, int nDamage, Class DamageType); // Export UTgHUD::execPlayTakeHit(FFrame&, void* const) + +native function UpdateReleaseTimeRemaining(float fTimeRemaining); // Export UTgHUD::execUpdateReleaseTimeRemaining(FFrame&, void* const) + +native function UpdateScoreboard(); // Export UTgHUD::execUpdateScoreboard(FFrame&, void* const) + +native function bool UpdateItemStoreItems(TgRepInfo_Player PRI); // Export UTgHUD::execUpdateItemStoreItems(FFrame&, void* const) + +native function EndMission(bool bPlayerAttacker, TgObject.GAME_WIN_STATE finalWinState); // Export UTgHUD::execEndMission(FFrame&, void* const) + +native function OnPingInfoUpdate(TgRepInfo_Player updatedPri); // Export UTgHUD::execOnPingInfoUpdate(FFrame&, void* const) + +native function PingWorldLocation(Vector PingLocation, TgObject.PING_TYPE Type); // Export UTgHUD::execPingWorldLocation(FFrame&, void* const) + +native function ShowGameTip(int nTipId, optional bool bNoSound=false, optional bool bPopup=false); // Export UTgHUD::execShowGameTip(FFrame&, void* const) + +native function HideGameTip(optional bool bNoSound=false); // Export UTgHUD::execHideGameTip(FFrame&, void* const) + +native function TutorialMessage(int msgId, bool bTips); // Export UTgHUD::execTutorialMessage(FFrame&, void* const) + +native function ShowCursor(bool bShow); // Export UTgHUD::execShowCursor(FFrame&, void* const) + +native function ShowHit(Actor Target, float fDamageAmount, bool bIsShieldHit, const out ExtraDamageInfo ExtraInfo); // Export UTgHUD::execShowHit(FFrame&, void* const) + +native function MapOutroFinished(); // Export UTgHUD::execMapOutroFinished(FFrame&, void* const) + +event CommitClassSelectionChange() { } + +function ShowTargetingMap(bool bShow) { } + +function PlayDeviceFailResponse(TgObject.EDeviceFailType failType, bool IsAbility) { } + +function OnRoundSetupStarted() { } + +function UpdateRoundEndedTimer(float RoundEndTimeRemaining, float RoundEndTotalTime) { } + +function UpdateRoundSetupTimer(float SetupTimeRemaining, float TimeStamp) { } + +function bool FinishIntro() { } diff --git a/Development/Src/TgGame/Classes/TgHavokNavigationHandleAudio.uc b/Development/Src/TgGame/Classes/TgHavokNavigationHandleAudio.uc new file mode 100644 index 0000000..5d8c0c3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHavokNavigationHandleAudio.uc @@ -0,0 +1,7 @@ +class TgHavokNavigationHandleAudio extends HavokNavigationHandle within Actor + config(Engine); + +defaultproperties +{ + PathingNavMeshType=HavokNavMesh_Obstacle +} diff --git a/Development/Src/TgGame/Classes/TgHeadShotComponent.uc b/Development/Src/TgGame/Classes/TgHeadShotComponent.uc new file mode 100644 index 0000000..3e49462 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHeadShotComponent.uc @@ -0,0 +1,16 @@ +class TgHeadShotComponent extends CylinderComponent + native(Pawns) + editinlinenew + collapsecategories + config(Engine); + +var export editinline TgSkeletalMeshComponent m_SkelComp; +var name m_HeadBone; +var Vector m_vHeadOffset; + +defaultproperties +{ + ReplacementPrimitive=none + CollideActors=true + BlockNonZeroExtent=false +} diff --git a/Development/Src/TgGame/Classes/TgHeightFog.uc b/Development/Src/TgGame/Classes/TgHeightFog.uc new file mode 100644 index 0000000..0089a31 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHeightFog.uc @@ -0,0 +1,9 @@ +class TgHeightFog extends Info + native(Volumes) + hidecategories(Navigation,Movement,Collision) + config(Engine); + +var export editinline HeightFogComponent FogComponent; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgHelpAlertVolume.uc b/Development/Src/TgGame/Classes/TgHelpAlertVolume.uc new file mode 100644 index 0000000..12ca132 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHelpAlertVolume.uc @@ -0,0 +1,18 @@ +class TgHelpAlertVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int TaskForceNumber; +var () array GameTipIdList; + +native function AddGameTips(TgPlayerController aPC); // Export UTgHelpAlertVolume::execAddGameTips(FFrame&, void* const) + +native function RemoveGameTips(TgPlayerController aPC); // Export UTgHelpAlertVolume::execRemoveGameTips(FFrame&, void* const) + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgHelpTipActor.uc b/Development/Src/TgGame/Classes/TgHelpTipActor.uc new file mode 100644 index 0000000..2dcb105 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHelpTipActor.uc @@ -0,0 +1,20 @@ +class TgHelpTipActor extends Actor + native(Game) + notplaceable + hidecategories(Navigation) + config(Engine); + +var string m_strTitle; +var string m_strTip; +var int m_nGameTipId; +var transient float m_fAlpha; +var float m_fAlphaNearDistanceSq; +var float m_fAlphaFarDistanceSq; + +event Remove(bool bSuppress) { } + +defaultproperties +{ + m_fAlphaNearDistanceSq=160000.0000000 + m_fAlphaFarDistanceSq=490000.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgHoldSpot.uc b/Development/Src/TgGame/Classes/TgHoldSpot.uc new file mode 100644 index 0000000..8327dd7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgHoldSpot.uc @@ -0,0 +1,12 @@ +class TgHoldSpot extends TgDefensePoint + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var Vehicle HoldVehicle; + +function Actor GetMoveTarget() { } + +function FreePoint() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgHud.uc b/Development/Src/TgGame/Classes/TgHud.uc deleted file mode 100755 index cc764a8..0000000 --- a/Development/Src/TgGame/Classes/TgHud.uc +++ /dev/null @@ -1,5 +0,0 @@ -class TgHUD extends HUD - transient - native - config(Game) - hidecategories(Navigation); \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgIdol.uc b/Development/Src/TgGame/Classes/TgIdol.uc new file mode 100644 index 0000000..f3f7cbc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgIdol.uc @@ -0,0 +1,16 @@ +class TgIdol extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +var transient int r_nDefenderTaskForce; +var transient TgPawn_Character m_Holder; +var repnotify transient TgRepInfo_Player r_HolderPRI; +var transient TgPawn_Character m_OldHolder; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_HolderPRI, r_nDefenderTaskForce; +} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgImpactFx.uc b/Development/Src/TgGame/Classes/TgImpactFx.uc new file mode 100644 index 0000000..da1c5c6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgImpactFx.uc @@ -0,0 +1,41 @@ +class TgImpactFx extends Object + native(FX) + config(Engine); + +const TGIFGT_FOOTSTEP_RUN = 760; + +const TGIFGT_FOOTSTEP_WALK = 815; + +const TGIFGT_FOOTSTEP_SCUFF = 816; + +const TGIFGT_GRENADE_BOUNCE = 761; + +const TGIFGT_WEAPON_IMPACT = 762; + +struct IMPACT_FX { + var name nmMaterialType; + var SoundCue Sound; + var MaterialInterface DecalMaterial; + var float fDecalWidth; + var float fDecalHeight; + var bool bRandomRotation; + var ParticleSystem Particles; + var TgSpecialFx SpecialFx; + structdefaultproperties {} +}; + +var float c_fMaxFxDistance; +var bool c_bAlignToSurfaceNormal; +var IMPACT_FX c_EmptyImpact; +var array c_Impacts; + +function bool IsEffectRelevant(Actor Viewer, Vector HitLocation) { } + +function IMPACT_FX GetImpactFx(optional PhysicalMaterial HitMaterial) { } + +function ApplyImpact(Actor Instigator, Actor HitActor, Vector HitLocation, Vector HitNormal, optional IMPACT_FX Impact) { } + +defaultproperties +{ + c_EmptyImpact=(nmMaterialType="None",Sound=none,DecalMaterial=none,fDecalWidth=0.0000000,fDecalHeight=0.0000000,bRandomRotation=true,Particles=none,SpecialFx=none) +} diff --git a/Development/Src/TgGame/Classes/TgInteractiveAudio.uc b/Development/Src/TgGame/Classes/TgInteractiveAudio.uc new file mode 100644 index 0000000..26aea1b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInteractiveAudio.uc @@ -0,0 +1 @@ +interface TgInteractiveAudio extends Interface; diff --git a/Development/Src/TgGame/Classes/TgInterface_YingIllusion.uc b/Development/Src/TgGame/Classes/TgInterface_YingIllusion.uc old mode 100755 new mode 100644 index ff7802a..1b00c10 --- a/Development/Src/TgGame/Classes/TgInterface_YingIllusion.uc +++ b/Development/Src/TgGame/Classes/TgInterface_YingIllusion.uc @@ -1,2 +1,17 @@ -interface TgInterface_YingIllusion extends Interface - native; \ No newline at end of file +interface TgInterface_YingIllusion extends Interface; + +delegate DestroyedEvent(Actor destroyedActor); + +function AddOnDestroyDelegate(delegate delDestroy); + +simulated function TriggerShatter(float fDelay); + +event Shatter(); + +simulated function PlayDimensionalLinkFX(); + +function bool IsNotDestroyed(); // Export UTgInterface_YingIllusion::execIsNotDestroyed(FFrame&, void* const) + +function Actor GetActorFromInterface(); // Export UTgInterface_YingIllusion::execGetActorFromInterface(FFrame&, void* const) + +function TgPawn_Ying GetOwningYing(); diff --git a/Development/Src/TgGame/Classes/TgInterpolatingCameraActor.uc b/Development/Src/TgGame/Classes/TgInterpolatingCameraActor.uc new file mode 100644 index 0000000..77c98fd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInterpolatingCameraActor.uc @@ -0,0 +1,33 @@ +class TgInterpolatingCameraActor extends CameraActor + hidecategories(Navigation) + config(Engine); + +struct InterpolatingCameraInfo { + var () bool m_bInterpLocation; + var () bool m_bInterpRotation; + var () bool m_bInterpFOVAngle; + var () Vector m_BaseLocation; + var () Vector m_TargetLocation; + var () Rotator m_BaseRotation; + var () Rotator m_TargetRotation; + var () float m_fBaseFOVAngle; + var () float m_fTargetFOVAngle; + var () float m_fInterpSpeed; + structdefaultproperties {} +}; + +var () array m_CameraArray; +var () int m_nCurrentCameraIndex; +var float m_fCurrentInterpValue; +var () float m_fTargetInterpValue; + +simulated event GetActorEyesViewPoint(out vector out_Location, out Rotator out_Rotation) { } + +simulated function GetCameraView(float DeltaTime, out TPOV OutPOV) { } + +event Tick(float DeltaTime) { } + +defaultproperties +{ + Physics=PHYS_None +} diff --git a/Development/Src/TgGame/Classes/TgInvListener.uc b/Development/Src/TgGame/Classes/TgInvListener.uc new file mode 100644 index 0000000..528eea6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener.uc @@ -0,0 +1,3 @@ +class TgInvListener extends TgInventoryObject_Device + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_ActiveDeployableEffect.uc b/Development/Src/TgGame/Classes/TgInvListener_ActiveDeployableEffect.uc new file mode 100644 index 0000000..354d135 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ActiveDeployableEffect.uc @@ -0,0 +1,3 @@ +class TgInvListener_ActiveDeployableEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_ActiveWhileWeaponSwap.uc b/Development/Src/TgGame/Classes/TgInvListener_ActiveWhileWeaponSwap.uc new file mode 100644 index 0000000..8994463 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ActiveWhileWeaponSwap.uc @@ -0,0 +1,7 @@ +class TgInvListener_ActiveWhileWeaponSwap extends TgInvListener + native(ChampOwl) + config(Engine); + +var TgPawn_Owl m_CachedOwlPawn; +var bool m_bActivateWhileInhandActive; +var bool m_bIsActive; diff --git a/Development/Src/TgGame/Classes/TgInvListener_AddDamageMissingHealthPercent.uc b/Development/Src/TgGame/Classes/TgInvListener_AddDamageMissingHealthPercent.uc new file mode 100644 index 0000000..dead98e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_AddDamageMissingHealthPercent.uc @@ -0,0 +1,3 @@ +class TgInvListener_AddDamageMissingHealthPercent extends TgInventoryObject_Listen_AddDamage + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_AerialAssault.uc b/Development/Src/TgGame/Classes/TgInvListener_AerialAssault.uc new file mode 100644 index 0000000..7e9fbe4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_AerialAssault.uc @@ -0,0 +1,3 @@ +class TgInvListener_AerialAssault extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampRuckus) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_AffectedByDeviceApplyEffect.uc b/Development/Src/TgGame/Classes/TgInvListener_AffectedByDeviceApplyEffect.uc new file mode 100644 index 0000000..b01f25d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_AffectedByDeviceApplyEffect.uc @@ -0,0 +1,3 @@ +class TgInvListener_AffectedByDeviceApplyEffect extends TgInventoryObject_Listen_AffectedByDevice + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_ApplyHitSpecialOnKill.uc b/Development/Src/TgGame/Classes/TgInvListener_ApplyHitSpecialOnKill.uc new file mode 100644 index 0000000..e6296d4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ApplyHitSpecialOnKill.uc @@ -0,0 +1,3 @@ +class TgInvListener_ApplyHitSpecialOnKill extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_Combustible.uc b/Development/Src/TgGame/Classes/TgInvListener_Combustible.uc new file mode 100644 index 0000000..11553a5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Combustible.uc @@ -0,0 +1,3 @@ +class TgInvListener_Combustible extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampDrogoz) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_CooledMags.uc b/Development/Src/TgGame/Classes/TgInvListener_CooledMags.uc new file mode 100644 index 0000000..2f2d3d4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_CooledMags.uc @@ -0,0 +1,13 @@ +class TgInvListener_CooledMags extends TgInvListener + native(ChampOwl) + config(Engine); + +var TgPawn_Owl m_CachedOwlPawn; +var TgDevice m_CachedSidearm; +var TgDevice m_CachedInhand; +var float m_fAmmoFillTime; + +defaultproperties +{ + m_fAmmoFillTime=9999999.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInvListener_Counter.uc b/Development/Src/TgGame/Classes/TgInvListener_Counter.uc new file mode 100644 index 0000000..23c6a82 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Counter.uc @@ -0,0 +1,5 @@ +class TgInvListener_Counter extends TgInvListener + native(ChampDarklord) + config(Engine); + +var float m_fLastCounterTime; diff --git a/Development/Src/TgGame/Classes/TgInvListener_CounterLegendary.uc b/Development/Src/TgGame/Classes/TgInvListener_CounterLegendary.uc new file mode 100644 index 0000000..1308d6b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_CounterLegendary.uc @@ -0,0 +1,3 @@ +class TgInvListener_CounterLegendary extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampDarklord) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_CrackShot.uc b/Development/Src/TgGame/Classes/TgInvListener_CrackShot.uc new file mode 100644 index 0000000..82a763d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_CrackShot.uc @@ -0,0 +1,11 @@ +class TgInvListener_CrackShot extends TgInvListener + native(ChampOwl) + config(Engine); + +struct CrackShotBonusDamageTarget { + var Actor pTarget; + var float fBonusDamageEndTime; + structdefaultproperties {} +}; + +var array m_Targets; diff --git a/Development/Src/TgGame/Classes/TgInvListener_Demolition.uc b/Development/Src/TgGame/Classes/TgInvListener_Demolition.uc new file mode 100644 index 0000000..7f18c89 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Demolition.uc @@ -0,0 +1,3 @@ +class TgInvListener_Demolition extends TgInventoryObject_Listen_HitWithDevice + native(ChampBombKing) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_Enlightenment.uc b/Development/Src/TgGame/Classes/TgInvListener_Enlightenment.uc new file mode 100644 index 0000000..e7da686 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Enlightenment.uc @@ -0,0 +1,5 @@ +class TgInvListener_Enlightenment extends TgInvListener + native(ChampPrincess) + config(Engine); + +var bool m_bCanRefundEnergy; diff --git a/Development/Src/TgGame/Classes/TgInvListener_ExtraDamageAboveHealthPercent.uc b/Development/Src/TgGame/Classes/TgInvListener_ExtraDamageAboveHealthPercent.uc new file mode 100644 index 0000000..f49257c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ExtraDamageAboveHealthPercent.uc @@ -0,0 +1,8 @@ +class TgInvListener_ExtraDamageAboveHealthPercent extends TgInventoryObject_Listen_AddDamage + native(Inventory) + config(Engine); + +defaultproperties +{ + m_bAutoProcOnInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInvListener_ExtraDamageBelowHealthPercent.uc b/Development/Src/TgGame/Classes/TgInvListener_ExtraDamageBelowHealthPercent.uc new file mode 100644 index 0000000..4c8e483 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ExtraDamageBelowHealthPercent.uc @@ -0,0 +1,8 @@ +class TgInvListener_ExtraDamageBelowHealthPercent extends TgInventoryObject_Listen_AddDamage + native(Inventory) + config(Engine); + +defaultproperties +{ + m_bAutoProcOnInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInvListener_Firefight.uc b/Development/Src/TgGame/Classes/TgInvListener_Firefight.uc new file mode 100644 index 0000000..f5c66ad --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Firefight.uc @@ -0,0 +1,3 @@ +class TgInvListener_Firefight extends TgInvListener + native(ChampViktor) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_GuerillaTactics.uc b/Development/Src/TgGame/Classes/TgInvListener_GuerillaTactics.uc new file mode 100644 index 0000000..2dc867c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_GuerillaTactics.uc @@ -0,0 +1,5 @@ +class TgInvListener_GuerillaTactics extends TgInvListener + native(ChampOwl) + config(Engine); + +var TgPawn_Owl m_CachedOwlPawn; diff --git a/Development/Src/TgGame/Classes/TgInvListener_Gunnery.uc b/Development/Src/TgGame/Classes/TgInvListener_Gunnery.uc new file mode 100644 index 0000000..21cc8cf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Gunnery.uc @@ -0,0 +1,3 @@ +class TgInvListener_Gunnery extends TgInvListener_Firefight + native(ChampViktor) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_Halfshell.uc b/Development/Src/TgGame/Classes/TgInvListener_Halfshell.uc new file mode 100644 index 0000000..b02261d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Halfshell.uc @@ -0,0 +1,3 @@ +class TgInvListener_Halfshell extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampMakoa) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_HitSelfOnHeadshot.uc b/Development/Src/TgGame/Classes/TgInvListener_HitSelfOnHeadshot.uc new file mode 100644 index 0000000..5e4e1d8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_HitSelfOnHeadshot.uc @@ -0,0 +1,3 @@ +class TgInvListener_HitSelfOnHeadshot extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_HitWithDeviceFiremode.uc b/Development/Src/TgGame/Classes/TgInvListener_HitWithDeviceFiremode.uc new file mode 100644 index 0000000..8cbfa29 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_HitWithDeviceFiremode.uc @@ -0,0 +1,3 @@ +class TgInvListener_HitWithDeviceFiremode extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_ImpasseEffect.uc b/Development/Src/TgGame/Classes/TgInvListener_ImpasseEffect.uc new file mode 100644 index 0000000..94ea057 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ImpasseEffect.uc @@ -0,0 +1,3 @@ +class TgInvListener_ImpasseEffect extends TgInvListener + native(ChampBarrierTank) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_KillVengeanceTarget.uc b/Development/Src/TgGame/Classes/TgInvListener_KillVengeanceTarget.uc new file mode 100644 index 0000000..c823581 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_KillVengeanceTarget.uc @@ -0,0 +1,5 @@ +class TgInvListener_KillVengeanceTarget extends TgInvListener + native(ChampLex) + config(Engine); + +var TgDevice_Vengeance_Lex m_CachedVengeance; diff --git a/Development/Src/TgGame/Classes/TgInvListener_MegaPotion.uc b/Development/Src/TgGame/Classes/TgInvListener_MegaPotion.uc new file mode 100644 index 0000000..85d03f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_MegaPotion.uc @@ -0,0 +1,3 @@ +class TgInvListener_MegaPotion extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampPip) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_NearVengeanceTarget.uc b/Development/Src/TgGame/Classes/TgInvListener_NearVengeanceTarget.uc new file mode 100644 index 0000000..ec14c16 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_NearVengeanceTarget.uc @@ -0,0 +1,6 @@ +class TgInvListener_NearVengeanceTarget extends TgInvListener + native(ChampLex) + config(Engine); + +var bool m_bIsActive; +var TgDevice_Vengeance_Lex m_CachedVengeance; diff --git a/Development/Src/TgGame/Classes/TgInvListener_Recycler.uc b/Development/Src/TgGame/Classes/TgInvListener_Recycler.uc new file mode 100644 index 0000000..5e85445 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Recycler.uc @@ -0,0 +1,3 @@ +class TgInvListener_Recycler extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampRuckus) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_ReplaceCurveSets.uc b/Development/Src/TgGame/Classes/TgInvListener_ReplaceCurveSets.uc new file mode 100644 index 0000000..b0141f0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_ReplaceCurveSets.uc @@ -0,0 +1,3 @@ +class TgInvListener_ReplaceCurveSets extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_SetChildFiremode.uc b/Development/Src/TgGame/Classes/TgInvListener_SetChildFiremode.uc new file mode 100644 index 0000000..d48ba11 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SetChildFiremode.uc @@ -0,0 +1,3 @@ +class TgInvListener_SetChildFiremode extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_SetPetFiremode.uc b/Development/Src/TgGame/Classes/TgInvListener_SetPetFiremode.uc new file mode 100644 index 0000000..a3dd182 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SetPetFiremode.uc @@ -0,0 +1,3 @@ +class TgInvListener_SetPetFiremode extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_SoulChargesActive.uc b/Development/Src/TgGame/Classes/TgInvListener_SoulChargesActive.uc new file mode 100644 index 0000000..06ed9a3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SoulChargesActive.uc @@ -0,0 +1,6 @@ +class TgInvListener_SoulChargesActive extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bIsListenerActive; +var bool m_bIsCardLogicActive; diff --git a/Development/Src/TgGame/Classes/TgInvListener_SoulChargesConsumed.uc b/Development/Src/TgGame/Classes/TgInvListener_SoulChargesConsumed.uc new file mode 100644 index 0000000..187527c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SoulChargesConsumed.uc @@ -0,0 +1,6 @@ +class TgInvListener_SoulChargesConsumed extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bIsListenerActive; +var int m_nNumSoulCharges; diff --git a/Development/Src/TgGame/Classes/TgInvListener_SpiritsChosen.uc b/Development/Src/TgGame/Classes/TgInvListener_SpiritsChosen.uc new file mode 100644 index 0000000..e4008ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SpiritsChosen.uc @@ -0,0 +1,3 @@ +class TgInvListener_SpiritsChosen extends TgInventoryObject_Listen_MendingSpiritsActive + native(ChampMalDamba) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_SpiteLegendary.uc b/Development/Src/TgGame/Classes/TgInvListener_SpiteLegendary.uc new file mode 100644 index 0000000..5969e86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SpiteLegendary.uc @@ -0,0 +1,3 @@ +class TgInvListener_SpiteLegendary extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampDarklord) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInvListener_SteadyAim.uc b/Development/Src/TgGame/Classes/TgInvListener_SteadyAim.uc new file mode 100644 index 0000000..467c870 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_SteadyAim.uc @@ -0,0 +1,11 @@ +class TgInvListener_SteadyAim extends TgInvListener + native(ChampKinessa) + config(Engine); + +var int m_nSteadyAimStackCount; +var float m_fFullyChargedHitTime; + +defaultproperties +{ + m_fFullyChargedHitTime=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInvListener_Tremors.uc b/Development/Src/TgGame/Classes/TgInvListener_Tremors.uc new file mode 100644 index 0000000..f5e6edd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInvListener_Tremors.uc @@ -0,0 +1,3 @@ +class TgInvListener_Tremors extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampBarrierTank) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryManager.uc b/Development/Src/TgGame/Classes/TgInventoryManager.uc old mode 100755 new mode 100644 index 3bb7acd..1296df1 --- a/Development/Src/TgGame/Classes/TgInventoryManager.uc +++ b/Development/Src/TgGame/Classes/TgInventoryManager.uc @@ -1,45 +1,74 @@ -class TgInventoryManager extends InventoryManager - native(Inventory) - hidecategories(Navigation); - -struct native transient InventoryData -{ - var init int nInvId; - var init int nItemId; - var init int nPower; - var init int nInstanceCount; - var init bool bBoundFlag; - var init float fAcquiredDatetime; - var init int nEquipSlotValueId; - - structdefaultproperties - { - nInvId=0 - nItemId=0 - nPower=0 - nInstanceCount=0 - bBoundFlag=false - fAcquiredDatetime=0.0000000 - nEquipSlotValueId=0 - } -}; - -var int r_ItemCount; -var int m_nPreviousDeviceInstanceId; -var bool m_bNeedsInvUpdate; -var Weapon m_PreviousWeapon; -var init native map{int,TgInventoryObject} m_InventoryMap; -var init native map{int,TgInventoryObject} s_ReplicateMap; -var init native map{int,TgInventoryObject} s_DeletionMap; - -// Export UTgInventoryManager::execSetInventoryDirty(FFrame&, void* const) -native function SetInventoryDirty(); - -// Export UTgInventoryManager::execRequestInventory(FFrame&, void* const) -native function RequestInventory(); - -// Export UTgInventoryManager::execAddDevice(FFrame&, void* const) -native function TgDevice AddDevice(int nDeviceId, int nEquipPoint, optional TgDevice parentDevice, optional bool bReplaceIfOccupied, optional int nPower); - -// Export UTgInventoryManager::execRemoveDevice(FFrame&, void* const) -native function RemoveDevice(TgInventoryObject_Device pInv); +class TgInventoryManager extends InventoryManager + native(Inventory) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +struct transient InventoryData { + var init int nInvId; + var init int nItemId; + var init int nPower; + var init int nInstanceCount; + var init bool bBoundFlag; + var init float fAcquiredDatetime; + var init int nEquipSlotValueId; + structdefaultproperties {} +}; + +var int r_ItemCount; +var int m_nPreviousDeviceInstanceId; +var bool m_bNeedsInvUpdate; +var Weapon m_PreviousWeapon; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetOwner) r_ItemCount; +} + +native function RequestInventory(); // Export UTgInventoryManager::execRequestInventory(FFrame&, void* const) + +native function TgDevice AddDevice(int nDeviceId, int nEquipPoint, optional TgDevice parentDevice, optional bool bReplaceIfOccupied, optional int nPower); // Export UTgInventoryManager::execAddDevice(FFrame&, void* const) + +native function RemoveDevice(TgInventoryObject_Device pInv); // Export UTgInventoryManager::execRemoveDevice(FFrame&, void* const) + +native function SwapDevices(TgInventoryObject_Device pInv, int nEquipPoint); // Export UTgInventoryManager::execSwapDevices(FFrame&, void* const) + +native function TgDevice GetDeviceByInstanceId(int nDeviceInstanceId); // Export UTgInventoryManager::execGetDeviceByInstanceId(FFrame&, void* const) + +native function TgInventoryObject GetInventoryById(int nInventoryId); // Export UTgInventoryManager::execGetInventoryById(FFrame&, void* const) + +native function TgInventoryObject GetInventoryByEquipPoint(TgObject.TG_EQUIP_POINT ePoint, int nItemType); // Export UTgInventoryManager::execGetInventoryByEquipPoint(FFrame&, void* const) + +native function TgInventoryObject GetInventoryByName(string sName); // Export UTgInventoryManager::execGetInventoryByName(FFrame&, void* const) + +native function bool IsValid(); // Export UTgInventoryManager::execIsValid(FFrame&, void* const) + +native function SetInventoryDirty(); // Export UTgInventoryManager::execSetInventoryDirty(FFrame&, void* const) + +native function ApplyAllPassiveItemEffects(bool bRemove); // Export UTgInventoryManager::execApplyAllPassiveItemEffects(FFrame&, void* const) + +native function TestShowInventory(); // Export UTgInventoryManager::execTestShowInventory(FFrame&, void* const) + +native function InventoryCleanup(); // Export UTgInventoryManager::execInventoryCleanup(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +event Destroyed() { } + +reliable server event ServerTestShowInventory() { } + +reliable server event ServerSetInventoryDirty() { } + +simulated function SetPendingWeapon(Weapon DesiredWeapon) { } + +reliable client function SetCurrentWeapon(Weapon DesiredWeapon) { } + +reliable server event ServerSetCurrentWeapon(Weapon DesiredWeapon) { } + +simulated function ChangedWeapon() { } + +defaultproperties +{ + r_ItemCount=-1 + s_bThrottleNetRelevancy=true + bAlwaysTick=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryManager_Player.uc b/Development/Src/TgGame/Classes/TgInventoryManager_Player.uc new file mode 100644 index 0000000..bbf2859 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryManager_Player.uc @@ -0,0 +1,8 @@ +class TgInventoryManager_Player extends TgInventoryManager + native(Inventory) + hidecategories(Navigation) + config(Engine); + +native function RemoveBurnCards(); // Export UTgInventoryManager_Player::execRemoveBurnCards(FFrame&, void* const) + +native function int CountFilledBurnCardSlots(); // Export UTgInventoryManager_Player::execCountFilledBurnCardSlots(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject.uc b/Development/Src/TgGame/Classes/TgInventoryObject.uc old mode 100755 new mode 100644 index b336653..6fff607 --- a/Development/Src/TgGame/Classes/TgInventoryObject.uc +++ b/Development/Src/TgGame/Classes/TgInventoryObject.uc @@ -1,19 +1,44 @@ -class TgInventoryObject extends Object - native(Inventory); - -enum EReplicatedState -{ - IORS_Ok, // 0 - IORS_Edited, // 1 - IORS_Deleted, // 2 -}; - - -var protected InventoryData m_InventoryData; -var int m_nRefData; -var TgInventoryManager m_InvManager; -var bool m_bTemporary; -var TgInventoryObject.EReplicatedState s_ReplicatedState; -var native const Pointer m_pAmItem; -var int c_nNbrAcquired; -var float c_fTimeAcquired; \ No newline at end of file +class TgInventoryObject extends Object + native(Inventory) + config(Engine) + dependson(TgInventoryManager); + +enum EReplicatedState { + IORS_Ok, // 0 + IORS_Edited, // 1 + IORS_Deleted, // 2 +}; + +struct sInventoryReq { + var bool m_bLevelFail; + var bool m_bSkillFail; + var int m_nSkillLevelReq; + var int m_nSkillIdReq; + var bool m_bFlairFail; + var bool m_bLocationFail; + structdefaultproperties {} +}; + +var protected InventoryData m_InventoryData; +var int m_nRefData; +var TgInventoryManager m_InvManager; +var bool m_bTemporary; +var TgInventoryObject.EReplicatedState s_ReplicatedState; +var native const Pointer m_pAmItem; +var int c_nNbrAcquired; +var float c_fTimeAcquired; + +native function bool IsUsableType(); // Export UTgInventoryObject::execIsUsableType(FFrame&, void* const) + +native function bool IsEquippableType(); // Export UTgInventoryObject::execIsEquippableType(FFrame&, void* const) + +native function InventoryData GetInventoryData(); // Export UTgInventoryObject::execGetInventoryData(FFrame&, void* const) + +native function SetInstanceCount(int nInstanceCount); // Export UTgInventoryObject::execSetInstanceCount(FFrame&, void* const) + +native function int GetInstanceCount(); // Export UTgInventoryObject::execGetInstanceCount(FFrame&, void* const) + +defaultproperties +{ + m_InventoryData=(nInvId=0,nItemId=0,nPower=0,nInstanceCount=1,bBoundFlag=false,fAcquiredDatetime=0.0000000,nEquipSlotValueId=0) +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Device.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Device.uc old mode 100755 new mode 100644 index 5777d9d..f605331 --- a/Development/Src/TgGame/Classes/TgInventoryObject_Device.uc +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Device.uc @@ -1,14 +1,13 @@ -class TgInventoryObject_Device extends TgInventoryObject - native(Inventory); - -var TgDevice s_Device; -var int m_nDeviceInstanceId; -var int c_nNumFindDeviceFails; -var int m_nStackCount; -var native const Pointer m_pAmDevice; - -// Export UTgInventoryObject_Device::execSetInstanceCount(FFrame&, void* const) -native function SetInstanceCount(int nInstanceCount); - -// Export UTgInventoryObject_Device::execIsCard(FFrame&, void* const) -native final function bool IsCard(); \ No newline at end of file +class TgInventoryObject_Device extends TgInventoryObject + native(Inventory) + config(Engine); + +var TgDevice s_Device; +var int m_nDeviceInstanceId; +var int c_nNumFindDeviceFails; +var int m_nStackCount; +var native const Pointer m_pAmDevice; + +native function SetInstanceCount(int nInstanceCount); // Export UTgInventoryObject_Device::execSetInstanceCount(FFrame&, void* const) + +native function bool IsCard(); // Export UTgInventoryObject_Device::execIsCard(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Ability.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Ability.uc new file mode 100644 index 0000000..5f56f8b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Ability.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Ability extends TgInventoryObject_Listen_AbilityInstant + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityEnd.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityEnd.uc new file mode 100644 index 0000000..a87ce64 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityEnd.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AbilityEnd extends TgInventoryObject_Listen_AbilityInstant + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityEndTargetFiremodeOnly.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityEndTargetFiremodeOnly.uc new file mode 100644 index 0000000..2d875ed --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityEndTargetFiremodeOnly.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AbilityEndTargetFiremodeOnly extends TgInventoryObject_Listen_AbilityEnd + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityInstant.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityInstant.uc new file mode 100644 index 0000000..8456a86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityInstant.uc @@ -0,0 +1,4 @@ +class TgInventoryObject_Listen_AbilityInstant extends TgInventoryObject_Listen_AbilityProcBase + abstract + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityProcBase.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityProcBase.uc new file mode 100644 index 0000000..1d4882a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityProcBase.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_AbilityProcBase extends TgInvListener + abstract + native(Inventory) + config(Engine); + +var const int m_nAbilitySlotRestriction; +var const int m_nAbilityTypeRestriction; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityProcDeployables.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityProcDeployables.uc new file mode 100644 index 0000000..c3f1b70 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityProcDeployables.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AbilityProcDeployables extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityShieldDamage.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityShieldDamage.uc new file mode 100644 index 0000000..7812cbb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityShieldDamage.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AbilityShieldDamage extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityStart.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityStart.uc new file mode 100644 index 0000000..715c86e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityStart.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AbilityStart extends TgInventoryObject_Listen_AbilityInstant + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityStart_LowHealth.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityStart_LowHealth.uc new file mode 100644 index 0000000..355dcda --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AbilityStart_LowHealth.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AbilityStart_LowHealth extends TgInventoryObject_Listen_AbilityStart + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Accelerant.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Accelerant.uc new file mode 100644 index 0000000..08659df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Accelerant.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Accelerant extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Acrobatics.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Acrobatics.uc new file mode 100644 index 0000000..ca820b6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Acrobatics.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Acrobatics extends TgInventoryObject_Listen_UseWhileCCed + native(ChampPip) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility.uc new file mode 100644 index 0000000..86efb88 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ActiveDuringAbility extends TgInventoryObject_Listen_DuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility_NotFiringInhand.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility_NotFiringInhand.uc new file mode 100644 index 0000000..656006a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility_NotFiringInhand.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ActiveDuringAbility_NotFiringInhand extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility_WhileOutOfCombat.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility_WhileOutOfCombat.uc new file mode 100644 index 0000000..2ae608b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringAbility_WhileOutOfCombat.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_ActiveDuringAbility_WhileOutOfCombat extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); + +var bool m_bPawnInCombat; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringDimensionalLink.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringDimensionalLink.uc new file mode 100644 index 0000000..1f4d990 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringDimensionalLink.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_ActiveDuringDimensionalLink extends TgInvListener + native(Inventory) + config(Engine); + +var TgDevice_DimensionalLink m_CachedLinkDevice; +var bool m_bCardIsActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPassive.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPassive.uc new file mode 100644 index 0000000..d79b9a7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPassive.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_ActiveDuringPassive extends TgInventoryObject_Listen_ActiveDuringAbility + config(Engine); + +defaultproperties +{ + m_nAbilityTypeRestriction=10964 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPassive_WhileOutOfCombat.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPassive_WhileOutOfCombat.uc new file mode 100644 index 0000000..7d22cb7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPassive_WhileOutOfCombat.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_ActiveDuringPassive_WhileOutOfCombat extends TgInventoryObject_Listen_ActiveDuringAbility_WhileOutOfCombat + config(Engine); + +defaultproperties +{ + m_nAbilityTypeRestriction=10964 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPostFire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPostFire.uc new file mode 100644 index 0000000..80d0612 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPostFire.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_ActiveDuringPostFire extends TgInventoryObject_Listen_ActiveDuringAbility + config(Engine); + +defaultproperties +{ + m_eDuringType=DURINGABILITY_POSTFIRE +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPreFire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPreFire.uc new file mode 100644 index 0000000..2b037d6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveDuringPreFire.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_ActiveDuringPreFire extends TgInventoryObject_Listen_ActiveDuringAbility + config(Engine); + +defaultproperties +{ + m_eDuringType=DURINGABILITY_PREFIRE +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveMovementHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveMovementHit.uc new file mode 100644 index 0000000..6154262 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveMovementHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ActiveMovementHit extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileDeployableActive.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileDeployableActive.uc new file mode 100644 index 0000000..f669c4c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileDeployableActive.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_ActiveWhileDeployableActive extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); + +var int m_nActiveDeployableCount; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileDeployableInactive.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileDeployableInactive.uc new file mode 100644 index 0000000..46cdafa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileDeployableInactive.uc @@ -0,0 +1,10 @@ +class TgInventoryObject_Listen_ActiveWhileDeployableInactive extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); + +var int m_nActiveDeployableCount; + +defaultproperties +{ + m_nActiveDeployableCount=-1 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileInGrass.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileInGrass.uc new file mode 100644 index 0000000..b3eaa01 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileInGrass.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_ActiveWhileInGrass extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bCachedIsInGrass; +var float s_fExitTimestamp; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileOffCooldown.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileOffCooldown.uc new file mode 100644 index 0000000..2ea506b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ActiveWhileOffCooldown.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_ActiveWhileOffCooldown extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bIsActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamage.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamage.uc new file mode 100644 index 0000000..08b7d59 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamage.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_AddDamage extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bAutoProcOnInhand; +var bool m_bCheckIsValidTarget; + +defaultproperties +{ + m_bCheckIsValidTarget=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamageMaxHealthPercent.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamageMaxHealthPercent.uc new file mode 100644 index 0000000..bbb339e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamageMaxHealthPercent.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AddDamageMaxHealthPercent extends TgInventoryObject_Listen_AddDamage + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamagePerTarget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamagePerTarget.uc new file mode 100644 index 0000000..0dc939a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddDamagePerTarget.uc @@ -0,0 +1,8 @@ +class TgInventoryObject_Listen_AddDamagePerTarget extends TgInventoryObject_Listen_AddDamage + native(Inventory) + config(Engine); + +defaultproperties +{ + m_bAutoProcOnInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddShieldDamage.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddShieldDamage.uc new file mode 100644 index 0000000..706f4df --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AddShieldDamage.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AddShieldDamage extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDevice.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDevice.uc new file mode 100644 index 0000000..07405f4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDevice.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AffectedByDevice extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceActiveWhile.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceActiveWhile.uc new file mode 100644 index 0000000..ed1681a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceActiveWhile.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_AffectedByDeviceActiveWhile extends TgInventoryObject_Listen_AffectedByDevice + native(Inventory) + config(Engine); + +var bool m_bIsCardActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceDamage.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceDamage.uc new file mode 100644 index 0000000..b1d8ed4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceDamage.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AffectedByDeviceDamage extends TgInventoryObject_Listen_AffectedByDevice + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceKill.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceKill.uc new file mode 100644 index 0000000..049be55 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceKill.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AffectedByDeviceKill extends TgInventoryObject_Listen_AffectedByDevice + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceLifesteal.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceLifesteal.uc new file mode 100644 index 0000000..2b1b2bc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceLifesteal.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_AffectedByDeviceLifesteal extends TgInventoryObject_Listen_AffectedByDevice + native(Inventory) + config(Engine); + +var TgDeviceFire_MirrorDamageToHeal m_CachedFiremode; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceTarget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceTarget.uc new file mode 100644 index 0000000..7806625 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AffectedByDeviceTarget.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_AffectedByDeviceTarget extends TgInventoryObject_Listen_AffectedByDevice + native(Inventory) + config(Engine); + +var bool m_bIsCardActive; +var array m_HitActors; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AirBlast.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AirBlast.uc new file mode 100644 index 0000000..e100ee0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AirBlast.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AirBlast extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ArcingBeam.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ArcingBeam.uc new file mode 100644 index 0000000..3dc0b7e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ArcingBeam.uc @@ -0,0 +1,19 @@ +class TgInventoryObject_Listen_ArcingBeam extends TgInvListener + native(Inventory) + config(Engine); + +var int m_nDeviceId; +var array m_MarkedTargets; + +simulated event AddUIMarks(Actor Target, int nNumMarks) { } + +simulated event RemoveUIMarks(Actor Target, int nNumMarks) { } + +simulated function ExpireUIMarks() { } + +function int CountMarksForActor(Actor Actor) { } + +defaultproperties +{ + m_nDeviceId=14475 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AtTheReady.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AtTheReady.uc new file mode 100644 index 0000000..950e1f0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AtTheReady.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AtTheReady extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AugmentPetHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AugmentPetHit.uc new file mode 100644 index 0000000..44b7f49 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AugmentPetHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AugmentPetHit extends TgInventoryObject_Listen_PetAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AuraMod.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AuraMod.uc new file mode 100644 index 0000000..03f23c3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AuraMod.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_AuraMod extends TgInvListener + native(Inventory) + config(Engine); + +var array m_AffectedActors; +var bool m_bAuraIsActive; +var TgDevice_Aura m_CachedAuraDevice; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AuraNearObjective.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AuraNearObjective.uc new file mode 100644 index 0000000..ad761e2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_AuraNearObjective.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_AuraNearObjective extends TgInventoryObject_Listen_NearObjective + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Backstab.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Backstab.uc new file mode 100644 index 0000000..bda42c1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Backstab.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Backstab extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BackstabExtraDamage.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BackstabExtraDamage.uc new file mode 100644 index 0000000..c78682c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BackstabExtraDamage.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_BackstabExtraDamage extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BarricadeEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BarricadeEffect.uc new file mode 100644 index 0000000..2582d3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BarricadeEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_BarricadeEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BarrierReef.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BarrierReef.uc new file mode 100644 index 0000000..e3c61d8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BarrierReef.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_BarrierReef extends TgInventoryObject_Listen_ShellShieldEffect + native(ChampDrogoz) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BigGame.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BigGame.uc new file mode 100644 index 0000000..c706a74 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BigGame.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_BigGame extends TgInvListener + native(ChampCassie) + config(Engine); + +var float m_fDisengageHitTime; +var Actor m_DisengageHitTarget; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BlastShotHitEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BlastShotHitEffect.uc new file mode 100644 index 0000000..2fcee3f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BlastShotHitEffect.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_BlastShotHitEffect extends TgInvListener + native(Inventory) + config(Engine); + +var array m_PreviouslyHitActors; +var const int m_nTargetType; + +defaultproperties +{ + m_nTargetType=3 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BlastShotHitSelfEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BlastShotHitSelfEffect.uc new file mode 100644 index 0000000..70a75a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BlastShotHitSelfEffect.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_BlastShotHitSelfEffect extends TgInventoryObject_Listen_BlastShotHitEffect + config(Engine); + +defaultproperties +{ + m_nTargetType=1 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BowlingBall.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BowlingBall.uc new file mode 100644 index 0000000..7df8fd8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_BowlingBall.uc @@ -0,0 +1,12 @@ +class TgInventoryObject_Listen_BowlingBall extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); + +var float m_fRocketBootsEndTime; +var float m_fPostRocketBootsTime; + +defaultproperties +{ + m_fRocketBootsEndTime=-4.0000000 + m_fPostRocketBootsTime=4.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CatBurglar.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CatBurglar.uc new file mode 100644 index 0000000..c56da5a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CatBurglar.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_CatBurglar extends TgInventoryObject_Listen_FirstShotDuringOrAfterMovementAbility + native(ChampBlades) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CombatRepair.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CombatRepair.uc new file mode 100644 index 0000000..17ae570 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CombatRepair.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_CombatRepair extends TgInvListener + native(Inventory) + config(Engine); + +var TgPawn m_CachedPawnOwner; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo.uc new file mode 100644 index 0000000..83b404e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_Combo extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +simulated event AddUIMarks(Actor Target, int nNumMarks) { } + +simulated event RemoveUIMarks(Actor Target, int nNumMarks) { } diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Androxus.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Androxus.uc new file mode 100644 index 0000000..3d59b9a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Androxus.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_Combo_Androxus extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var int m_DefianceHitCount; +var int m_DefianceHitsToActivate; + +defaultproperties +{ + m_DefianceHitsToActivate=3 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Barik.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Barik.uc new file mode 100644 index 0000000..86ef18a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Barik.uc @@ -0,0 +1,34 @@ +class TgInventoryObject_Listen_Combo_Barik extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +struct ComboInfo { + var Actor Target; + var Actor Instigator; + var float fMarkTime; + structdefaultproperties {} +}; + +struct UIMarkInfo { + var Actor Target; + var int nUIMarkCount; + structdefaultproperties {} +}; + +struct BurningMarkInfo { + var Actor Target; + var int nMarkCount; + structdefaultproperties {} +}; + +var array m_ComboInfoList; +var array m_UIMarkInfoList; +var array m_BurningMarks; + +native function TouchedBarricade(Actor Target, Actor barricade); // Export UTgInventoryObject_Listen_Combo_Barik::execTouchedBarricade(FFrame&, void* const) + +native function UpdateExpiredComboInfos(); // Export UTgInventoryObject_Listen_Combo_Barik::execUpdateExpiredComboInfos(FFrame&, void* const) + +native function UpdateUIMarks(); // Export UTgInventoryObject_Listen_Combo_Barik::execUpdateUIMarks(FFrame&, void* const) + +native function TriggerBurningMarks(Actor Target); // Export UTgInventoryObject_Listen_Combo_Barik::execTriggerBurningMarks(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_BombKing.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_BombKing.uc new file mode 100644 index 0000000..91384f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_BombKing.uc @@ -0,0 +1,15 @@ +class TgInventoryObject_Listen_Combo_BombKing extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +const BOMBKING_COMBO_DEVICE_ID_AUTO = 14308; + +const BOMBKING_COMBO_DEVICE_ID_DETONATOR = 14309; + +struct StickyHitInfo { + var Actor HitActor; + var int NumHits; + structdefaultproperties {} +}; + +var array m_HitActors; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Buck.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Buck.uc new file mode 100644 index 0000000..30d0247 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Buck.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Combo_Buck extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Cassie.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Cassie.uc new file mode 100644 index 0000000..99f5165 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Cassie.uc @@ -0,0 +1,8 @@ +class TgInventoryObject_Listen_Combo_Cassie extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var float m_fDodgeRollFireTime; +var float m_fDisengageHitTime; +var TgPawn m_DisengageHitPawn; +var TgPawn_Cassie m_CachedCassiePawn; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Drogoz.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Drogoz.uc new file mode 100644 index 0000000..bf66ba7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Drogoz.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_Combo_Drogoz extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var float m_fLastThrustTime; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Evie.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Evie.uc new file mode 100644 index 0000000..76da34b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Evie.uc @@ -0,0 +1,15 @@ +class TgInventoryObject_Listen_Combo_Evie extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +const EVIE_COMBO_DEVICE_ID_BLINK = 10315; + +const EVIE_COMBO_DEVICE_ID_ICE_BLOCK = 11414; + +const EVIE_COMBO_DEVICE_ID_ICE_BLOCK_SUB = 14403; + +var array m_MarkedTargets; +var float m_fBlinkTimestamp; +var float m_fIceBlockTimestamp; + +native function MarksExpired(); // Export UTgInventoryObject_Listen_Combo_Evie::execMarksExpired(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Fernando.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Fernando.uc new file mode 100644 index 0000000..8d61db5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Fernando.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_Combo_Fernando extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +const FERNANDO_COMBO_DEVICE_ID_FIREBALL = 11481; + +var int m_nNumContacts; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Grohk.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Grohk.uc new file mode 100644 index 0000000..8781d0b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Grohk.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_Combo_Grohk extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var float m_fFirstHitThisTickTimestamp; +var int m_nHitsThisChain; +var bool m_bBonusActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Grover.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Grover.uc new file mode 100644 index 0000000..d15bd6a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Grover.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_Combo_Grover extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +const GROVER_COMBO_DEVICE_ID_AUTO = 13026; + +var Vector m_vAxeStartingLocation; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Kinessa.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Kinessa.uc new file mode 100644 index 0000000..0ef1265 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Kinessa.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_Combo_Kinessa extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +native function bool IsOppressorMineTarget(Actor TgP); // Export UTgInventoryObject_Listen_Combo_Kinessa::execIsOppressorMineTarget(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Makoa.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Makoa.uc new file mode 100644 index 0000000..2e53b4e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Makoa.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_Combo_Makoa extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var array m_MarkedTargetsHook; +var array m_fMarkedTimesHook; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Pip.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Pip.uc new file mode 100644 index 0000000..4c2b81e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Pip.uc @@ -0,0 +1,8 @@ +class TgInventoryObject_Listen_Combo_Pip extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var array m_Projectiles; +var array m_SpawnLocations; +var array m_MarkedTargetsFlask; +var array m_fMarkedTimesFlask; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Ruckus.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Ruckus.uc new file mode 100644 index 0000000..ed478d0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Ruckus.uc @@ -0,0 +1,12 @@ +class TgInventoryObject_Listen_Combo_Ruckus extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var TgPawn_Ruckus m_CachedRuckusOwner; +var int m_nDamageReductionStacks; +var int m_nBonusDamageStacks; +var float m_fDamageReductionStackTime; +var float m_fBonusDamageStackTime; +var bool m_bEmitterActive; +var bool m_bComboEffectsOn; +var float m_fComboBonusTime; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Skye.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Skye.uc new file mode 100644 index 0000000..7af48ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Skye.uc @@ -0,0 +1,8 @@ +class TgInventoryObject_Listen_Combo_Skye extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var float m_fLastStealthTime; +var bool m_bComboActive; +var bool m_bCanTriggerCombo; +var int m_nHitStacks; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Viktor.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Viktor.uc new file mode 100644 index 0000000..421ecae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Viktor.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_Combo_Viktor extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +struct TimedMarkedTarget { + var Actor Target; + var float EndTimestamp; + structdefaultproperties {} +}; + +var array m_MarkedTargets; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Ying.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Ying.uc new file mode 100644 index 0000000..5265468 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Combo_Ying.uc @@ -0,0 +1,17 @@ +class TgInventoryObject_Listen_Combo_Ying extends TgInventoryObject_Listen_Combo + native(Inventory) + config(Engine); + +var float m_fCombo1MaxDuration; +var float m_fCombo1BonusDamagePercent; +var float m_fCombo2BonusDamage; +var array m_MarkedTargets; +var array m_fMarkTimes; +var Actor m_InhandTarget; +var int m_nInhandHits; +var int m_nCombo1DeviceId; + +defaultproperties +{ + m_nCombo1DeviceId=13284 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Compensate.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Compensate.uc new file mode 100644 index 0000000..7f65306 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Compensate.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Compensate extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Conduit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Conduit.uc new file mode 100644 index 0000000..4f35f53 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Conduit.uc @@ -0,0 +1,13 @@ +class TgInventoryObject_Listen_Conduit extends TgInvListener + native(Inventory) + config(Engine); + +var int m_nDeviceIdShockPulseMain; +var int m_nDeviceIdShockPulseSupport; +var array m_EnemiesHitThisPulse; + +defaultproperties +{ + m_nDeviceIdShockPulseMain=14475 + m_nDeviceIdShockPulseSupport=14476 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayAbility1.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayAbility1.uc new file mode 100644 index 0000000..7ecb2c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayAbility1.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_CooldownDelayAbility1 extends TgInventoryObject_Listen_CooldownDelayer + config(Engine); + +defaultproperties +{ + m_nAbilitySlotRestriction=2 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayAbility2.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayAbility2.uc new file mode 100644 index 0000000..44e3543 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayAbility2.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_CooldownDelayAbility2 extends TgInventoryObject_Listen_CooldownDelayer + config(Engine); + +defaultproperties +{ + m_nAbilitySlotRestriction=3 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayMovementAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayMovementAbility.uc new file mode 100644 index 0000000..d8601c5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayMovementAbility.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_CooldownDelayMovementAbility extends TgInventoryObject_Listen_CooldownDelayer + config(Engine); + +defaultproperties +{ + m_nAbilityTypeRestriction=11070 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayer.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayer.uc new file mode 100644 index 0000000..34a48c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_CooldownDelayer.uc @@ -0,0 +1,17 @@ +class TgInventoryObject_Listen_CooldownDelayer extends TgInventoryObject_Listen_AbilityInstant + native(Inventory) + config(Engine); + +enum TG_FIRE_FX_DUMMY_ON { + TARGET_NEVER, // 0 + TARGET_STARTFIRE, // 1 + TARGET_STOPFIRE, // 2 +}; + +var float m_fDelayTime; +var TgInventoryObject_Listen_CooldownDelayer.TG_FIRE_FX_DUMMY_ON m_FireFxDummyOn; + +defaultproperties +{ + m_fDelayTime=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeepRoots.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeepRoots.uc new file mode 100644 index 0000000..059b3aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeepRoots.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_DeepRoots extends TgInvListener + native(ChampGrover) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DefianceHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DefianceHit.uc new file mode 100644 index 0000000..fd60354 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DefianceHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_DefianceHit extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbility.uc new file mode 100644 index 0000000..cc39fac --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbility.uc @@ -0,0 +1,16 @@ +class TgInventoryObject_Listen_DeployOnAbility extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +enum EDeployOnAbilityType { + DEPLOYON_STARTFIRE, // 0 + DEPLOYON_FIRE, // 1 + DEPLOYON_STOPFIRE, // 2 +}; + +var const TgInventoryObject_Listen_DeployOnAbility.EDeployOnAbilityType m_eDeployType; + +defaultproperties +{ + m_eDeployType=DEPLOYON_FIRE +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbilityEnd.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbilityEnd.uc new file mode 100644 index 0000000..0d0413d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbilityEnd.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_DeployOnAbilityEnd extends TgInventoryObject_Listen_DeployOnAbility + config(Engine); + +defaultproperties +{ + m_eDeployType=DEPLOYON_STOPFIRE +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbilityStart.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbilityStart.uc new file mode 100644 index 0000000..ffe671a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnAbilityStart.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_DeployOnAbilityStart extends TgInventoryObject_Listen_DeployOnAbility + config(Engine); + +defaultproperties +{ + m_eDeployType=DEPLOYON_STARTFIRE +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnDeployable.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnDeployable.uc new file mode 100644 index 0000000..741c1c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnDeployable.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_DeployOnDeployable extends TgInvListener + native(Inventory) + config(Engine); + +var array m_ValidDeployableIds; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnDeviceHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnDeviceHit.uc new file mode 100644 index 0000000..c49b1da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployOnDeviceHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_DeployOnDeviceHit extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployWithProjectile.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployWithProjectile.uc new file mode 100644 index 0000000..9cd1424 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployWithProjectile.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_DeployWithProjectile extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployedDuringAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployedDuringAbility.uc new file mode 100644 index 0000000..b1c0cfa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployedDuringAbility.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_DeployedDuringAbility extends TgInventoryObject_Listen_DuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployedWhileMounted.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployedWhileMounted.uc new file mode 100644 index 0000000..f405df3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DeployedWhileMounted.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_DeployedWhileMounted extends TgInventoryObject_Listen_DeployedDuringAbility + config(Engine); + +defaultproperties +{ + m_nAbilityTypeRestriction=11077 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DirectHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DirectHit.uc new file mode 100644 index 0000000..646e809 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DirectHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_DirectHit extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DoubleTap.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DoubleTap.uc new file mode 100644 index 0000000..10d14f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DoubleTap.uc @@ -0,0 +1,13 @@ +class TgInventoryObject_Listen_DoubleTap extends TgInvListener + native(Inventory) + config(Engine); + +var float m_fBaseWeaponDamage; +var float m_fDoubleTapDelay; +var array m_PendingDoubleTapActors; +var array m_PendingDoubleTapTimes; + +defaultproperties +{ + m_fDoubleTapDelay=0.2000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DuringAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DuringAbility.uc new file mode 100644 index 0000000..9939778 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_DuringAbility.uc @@ -0,0 +1,19 @@ +class TgInventoryObject_Listen_DuringAbility extends TgInventoryObject_Listen_AbilityProcBase + abstract + native(Inventory) + config(Engine); + +enum EDuringAbilityType { + DURINGABILITY_PREFIRE, // 0 + DURINGABILITY_FIRE, // 1 + DURINGABILITY_POSTFIRE, // 2 +}; + +var bool m_bAbilityInActiveState; +var bool m_bIsActive; +var const TgInventoryObject_Listen_DuringAbility.EDuringAbilityType m_eDuringType; + +defaultproperties +{ + m_eDuringType=DURINGABILITY_FIRE +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EarthenGuard.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EarthenGuard.uc new file mode 100644 index 0000000..4a2b225 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EarthenGuard.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_EarthenGuard extends TgInvListener + native(ChampBarrierTank) + config(Engine); + +native function bool IsValidDeployable(TgDeployable deployable); // Export UTgInventoryObject_Listen_EarthenGuard::execIsValidDeployable(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EmitterEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EmitterEffect.uc new file mode 100644 index 0000000..2cba77d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EmitterEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_EmitterEffect extends TgInventoryObject_Listen_DuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EnergyCharge.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EnergyCharge.uc new file mode 100644 index 0000000..626fb48 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EnergyCharge.uc @@ -0,0 +1,15 @@ +class TgInventoryObject_Listen_EnergyCharge extends TgInvListener + native(Inventory) + config(Engine); + +var TgPawn m_CachedTgPawn; +var float m_fChargeMultiplierDamageDealt; +var float m_fChargeMultiplierDamageTaken; +var float m_fChargeMultiplierPetDamage; + +defaultproperties +{ + m_fChargeMultiplierDamageDealt=1.0000000 + m_fChargeMultiplierDamageTaken=1.0000000 + m_fChargeMultiplierPetDamage=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EquivalentExchange.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EquivalentExchange.uc new file mode 100644 index 0000000..4cddc55 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_EquivalentExchange.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_EquivalentExchange extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Exaction.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Exaction.uc new file mode 100644 index 0000000..5aecc00 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Exaction.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_Exaction extends TgInventoryObject_Listen_FirstShotAfterMovementAbility + native(Inventory) + config(Engine); + +var TgDeviceFire_MirrorDamageToHeal m_CachedFiremode; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Exhilarate.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Exhilarate.uc new file mode 100644 index 0000000..5c1417b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Exhilarate.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Exhilarate extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Featherlite.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Featherlite.uc new file mode 100644 index 0000000..937d6ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Featherlite.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Featherlite extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(ChampBlades) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Featherweight.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Featherweight.uc new file mode 100644 index 0000000..c64498b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Featherweight.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Featherweight extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireInsteadOfDeath.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireInsteadOfDeath.uc new file mode 100644 index 0000000..d372fed --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireInsteadOfDeath.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireInsteadOfDeath extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnDamageInterruptedStealth.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnDamageInterruptedStealth.uc new file mode 100644 index 0000000..61fa4b5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnDamageInterruptedStealth.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnDamageInterruptedStealth extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnElimination.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnElimination.uc new file mode 100644 index 0000000..0d68fd0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnElimination.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnElimination extends TgInventoryObject_Listen_FireOnKill + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnKill.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnKill.uc new file mode 100644 index 0000000..cfdaf2f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnKill.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnKill extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnKillWithChildDevice.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnKillWithChildDevice.uc new file mode 100644 index 0000000..5e78a9b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnKillWithChildDevice.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnKillWithChildDevice extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnLandAfterLeap.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnLandAfterLeap.uc new file mode 100644 index 0000000..88ee2e7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnLandAfterLeap.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnLandAfterLeap extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnLowHealth.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnLowHealth.uc new file mode 100644 index 0000000..0884b86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnLowHealth.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnLowHealth extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnMiss.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnMiss.uc new file mode 100644 index 0000000..79a41dc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnMiss.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnMiss extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnTeleport.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnTeleport.uc new file mode 100644 index 0000000..1db7bf8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireOnTeleport.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireOnTeleport extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireWithDeployable.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireWithDeployable.uc new file mode 100644 index 0000000..70105de --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireWithDeployable.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireWithDeployable extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireWithProjectile.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireWithProjectile.uc new file mode 100644 index 0000000..c81d40b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FireWithProjectile.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FireWithProjectile extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FiringDuringAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FiringDuringAbility.uc new file mode 100644 index 0000000..96236f8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FiringDuringAbility.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FiringDuringAbility extends TgInventoryObject_Listen_DuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FiringDuringAbilityAltMode.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FiringDuringAbilityAltMode.uc new file mode 100644 index 0000000..a5cb1aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FiringDuringAbilityAltMode.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FiringDuringAbilityAltMode extends TgInventoryObject_Listen_FiringDuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstAidKit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstAidKit.uc new file mode 100644 index 0000000..3facabe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstAidKit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FirstAidKit extends TgInventoryObject_Listen_SpawnTeamHealthNugget + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotAfterMovementAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotAfterMovementAbility.uc new file mode 100644 index 0000000..c3d2d47 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotAfterMovementAbility.uc @@ -0,0 +1,13 @@ +class TgInventoryObject_Listen_FirstShotAfterMovementAbility extends TgInvListener + native(Inventory) + config(Engine); + +var float m_fLastMovementAbilityTime; +var bool m_bJustFinishedMovementAbility; +var int m_nNumApplicationsRemaining; +var float m_fLastAppliedTime; + +defaultproperties +{ + m_fLastMovementAbilityTime=-10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotDuringOrAfterMovementAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotDuringOrAfterMovementAbility.uc new file mode 100644 index 0000000..4ff003e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotDuringOrAfterMovementAbility.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_FirstShotDuringOrAfterMovementAbility extends TgInventoryObject_Listen_FirstShotAfterMovementAbility + native(Inventory) + config(Engine); + +var bool m_bMovementAbilityActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotDuringOrAfterStealth.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotDuringOrAfterStealth.uc new file mode 100644 index 0000000..a9e9834 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FirstShotDuringOrAfterStealth.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_FirstShotDuringOrAfterStealth extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bWasStealthed; +var float m_fLastStealthTime; + +defaultproperties +{ + m_fLastStealthTime=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FragGrenade.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FragGrenade.uc new file mode 100644 index 0000000..bcdef21 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FragGrenade.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FragGrenade extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FrigidField.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FrigidField.uc new file mode 100644 index 0000000..117d873 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_FrigidField.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_FrigidField extends TgInventoryObject_Listen_DeployedDuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Get_Nugget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Get_Nugget.uc new file mode 100644 index 0000000..7f06ea5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Get_Nugget.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Get_Nugget extends TgInventoryObject_Listen_Stack + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_GiftGiver.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_GiftGiver.uc new file mode 100644 index 0000000..3092f05 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_GiftGiver.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_GiftGiver extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bHasActivated; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_GourdEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_GourdEffect.uc new file mode 100644 index 0000000..1ed2f2f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_GourdEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_GourdEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Headhunter.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Headhunter.uc new file mode 100644 index 0000000..26549e5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Headhunter.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Headhunter extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HealthByPercent.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HealthByPercent.uc new file mode 100644 index 0000000..395ef10 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HealthByPercent.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_HealthByPercent extends TgInvListener + native(Inventory) + config(Engine); + +var int m_iAppliedStacks; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HealthPCT_In_Range.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HealthPCT_In_Range.uc new file mode 100644 index 0000000..8dd38db --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HealthPCT_In_Range.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_HealthPCT_In_Range extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bApplied; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitAirborne.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitAirborne.uc new file mode 100644 index 0000000..26e3c00 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitAirborne.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_HitAirborne extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitAirborneOwner.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitAirborneOwner.uc new file mode 100644 index 0000000..b10ad59 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitAirborneOwner.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_HitAirborneOwner extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitOnHeadshot.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitOnHeadshot.uc new file mode 100644 index 0000000..66eccfb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitOnHeadshot.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_HitOnHeadshot extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitStealthTarget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitStealthTarget.uc new file mode 100644 index 0000000..6db03d2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitStealthTarget.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_HitStealthTarget extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDevice.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDevice.uc new file mode 100644 index 0000000..6ca0ab2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDevice.uc @@ -0,0 +1,10 @@ +class TgInventoryObject_Listen_HitWithDevice extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bIgnoreChildDevice; +var bool m_bAutoProcOnInhand; +var bool m_bAutoProcOnAsIfInhand; +var bool m_bSkipActiveCheck; +var bool m_bSkipStartCooldown; +var bool m_bUseAllyTargets; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceAllyTarget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceAllyTarget.uc new file mode 100644 index 0000000..3825791 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceAllyTarget.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_HitWithDeviceAllyTarget extends TgInventoryObject_Listen_HitWithDevice + config(Engine); + +defaultproperties +{ + m_bUseAllyTargets=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceAsIfInhand.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceAsIfInhand.uc new file mode 100644 index 0000000..444ea1b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceAsIfInhand.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_HitWithDeviceAsIfInhand extends TgInventoryObject_Listen_HitWithDeviceInhand + config(Engine); + +defaultproperties +{ + m_bAutoProcOnAsIfInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceInhand.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceInhand.uc new file mode 100644 index 0000000..fa4dce6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceInhand.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_HitWithDeviceInhand extends TgInventoryObject_Listen_HitWithDevice + config(Engine); + +defaultproperties +{ + m_bAutoProcOnInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceInhandOnly.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceInhandOnly.uc new file mode 100644 index 0000000..a1b5dff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceInhandOnly.uc @@ -0,0 +1,8 @@ +class TgInventoryObject_Listen_HitWithDeviceInhandOnly extends TgInventoryObject_Listen_HitWithDevice + config(Engine); + +defaultproperties +{ + m_bIgnoreChildDevice=true + m_bAutoProcOnInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceSpecial.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceSpecial.uc new file mode 100644 index 0000000..f942d7c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithDeviceSpecial.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_HitWithDeviceSpecial extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bSkipActiveCheck; +var bool m_bSkipStartCooldown; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithInhandWhileDeviceFiring.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithInhandWhileDeviceFiring.uc new file mode 100644 index 0000000..02aeb69 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithInhandWhileDeviceFiring.uc @@ -0,0 +1,8 @@ +class TgInventoryObject_Listen_HitWithInhandWhileDeviceFiring extends TgInventoryObject_Listen_HitWithDevice + native(Inventory) + config(Engine); + +defaultproperties +{ + m_bAutoProcOnInhand=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithPetDevice.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithPetDevice.uc new file mode 100644 index 0000000..03f2b7b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_HitWithPetDevice.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_HitWithPetDevice extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bSkipActiveCheck; +var bool m_bSkipStartCooldown; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Hustle.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Hustle.uc new file mode 100644 index 0000000..9cbd47d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Hustle.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Hustle extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ImpalerArrowHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ImpalerArrowHit.uc new file mode 100644 index 0000000..3391763 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ImpalerArrowHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ImpalerArrowHit extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_InHand_HitMissStacker.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_InHand_HitMissStacker.uc new file mode 100644 index 0000000..2ca0070 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_InHand_HitMissStacker.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_InHand_HitMissStacker extends TgInvListener + native(Inventory) + config(Engine); + +var float m_fLastStackTime; +var int m_nAppliedStacks; + +defaultproperties +{ + m_fLastStackTime=-1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Jolt.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Jolt.uc new file mode 100644 index 0000000..304eb83 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Jolt.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Jolt extends TgInvListener_SetChildFiremode + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Kindling.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Kindling.uc new file mode 100644 index 0000000..b9d32cb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Kindling.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Kindling extends TgInventoryObject_Listen_AbilityStart + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LastStand.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LastStand.uc new file mode 100644 index 0000000..112c920 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LastStand.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_LastStand extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); + +var bool m_bHealthInActiveRange; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LazarusResurrect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LazarusResurrect.uc new file mode 100644 index 0000000..aa266b7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LazarusResurrect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_LazarusResurrect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LiftOff.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LiftOff.uc new file mode 100644 index 0000000..83d240a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LiftOff.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_LiftOff extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieExploded.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieExploded.uc new file mode 100644 index 0000000..f3c056c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieExploded.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_LoogieExploded extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieExplodedHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieExplodedHit.uc new file mode 100644 index 0000000..9c9862c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieExplodedHit.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_LoogieExplodedHit extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var bool m_bNeedToApplyCooldown; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieHit.uc new file mode 100644 index 0000000..bbf65d3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_LoogieHit.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_LoogieHit extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +const DEVICE_ID_FIRE_SPIT = 13327; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Marksman.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Marksman.uc new file mode 100644 index 0000000..c49e060 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Marksman.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_Marksman extends TgInvListener + native(Inventory) + config(Engine); + +var int m_nHitCombo; +var int m_nComboToActivate; + +defaultproperties +{ + m_nComboToActivate=3 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MendingSpiritsActive.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MendingSpiritsActive.uc new file mode 100644 index 0000000..e86f3ac --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MendingSpiritsActive.uc @@ -0,0 +1,10 @@ +class TgInventoryObject_Listen_MendingSpiritsActive extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +const MENDING_SPIRITS_DEVICE_ID = 14822; + +const MENDING_SPIRITS_EFFECT_GROUP_ID = 55837; + +var array m_PawnTargets; +var bool m_bEffectsAreActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorDamageToHeal.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorDamageToHeal.uc new file mode 100644 index 0000000..92ae9bd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorDamageToHeal.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_MirrorDamageToHeal extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var TgDeviceFire_MirrorDamageToHeal m_CachedFiremode; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorDamageToHealBlock.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorDamageToHealBlock.uc new file mode 100644 index 0000000..9db4f6e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorDamageToHealBlock.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_MirrorDamageToHealBlock extends TgInvListener + native(Inventory) + config(Engine); + +var TgDeviceFire_MirrorDamageToHealBlock m_CachedFiremode; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorInhandDamageToHeal.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorInhandDamageToHeal.uc new file mode 100644 index 0000000..ddc7fa2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorInhandDamageToHeal.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_MirrorInhandDamageToHeal extends TgInventoryObject_Listen_MirrorDamageToHeal + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorPetDamageToHeal.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorPetDamageToHeal.uc new file mode 100644 index 0000000..369aba6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MirrorPetDamageToHeal.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_MirrorPetDamageToHeal extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var TgDeviceFire_MirrorDamageToHeal m_CachedFiremode; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MoraleBoost.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MoraleBoost.uc new file mode 100644 index 0000000..88a18c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MoraleBoost.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_MoraleBoost extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Mount.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Mount.uc new file mode 100644 index 0000000..10c32ed --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Mount.uc @@ -0,0 +1,9 @@ +class TgInventoryObject_Listen_Mount extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); + +defaultproperties +{ + m_eDuringType=DURINGABILITY_POSTFIRE + m_nAbilityTypeRestriction=11077 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MountEnd.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MountEnd.uc new file mode 100644 index 0000000..7a110de --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MountEnd.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_MountEnd extends TgInventoryObject_Listen_AbilityEnd + config(Engine); + +defaultproperties +{ + m_nAbilityTypeRestriction=11077 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MountShield.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MountShield.uc new file mode 100644 index 0000000..6e0732d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_MountShield.uc @@ -0,0 +1,11 @@ +class TgInventoryObject_Listen_MountShield extends TgInventoryObject_Listen_Mount + native(Inventory) + config(Engine); + +var float m_fNextMountShieldTime; +var const float m_fMinMountShieldTime; + +defaultproperties +{ + m_fMinMountShieldTime=10.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_NearObjective.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_NearObjective.uc new file mode 100644 index 0000000..5a9dea3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_NearObjective.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_NearObjective extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bIsActive; +var TgPawn_Character m_CachedCharacterPawn; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_NearOwnTurret.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_NearOwnTurret.uc new file mode 100644 index 0000000..f7f962a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_NearOwnTurret.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_NearOwnTurret extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bIsActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_OppressorMineEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_OppressorMineEffect.uc new file mode 100644 index 0000000..aea4803 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_OppressorMineEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_OppressorMineEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_OutOfCombat.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_OutOfCombat.uc new file mode 100644 index 0000000..adc330d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_OutOfCombat.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_OutOfCombat extends TgInvListener + native(Inventory) + config(Engine); + +var bool m_bEffectIsApplied; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbility.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbility.uc new file mode 100644 index 0000000..943560d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbility.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_PetAbility extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbilityWhileDeployableActive.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbilityWhileDeployableActive.uc new file mode 100644 index 0000000..7ae381d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbilityWhileDeployableActive.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_PetAbilityWhileDeployableActive extends TgInventoryObject_Listen_PetAbility + native(Inventory) + config(Engine); + +var int m_nActiveDeployableCount; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbility_Deploy.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbility_Deploy.uc new file mode 100644 index 0000000..dadc098 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetAbility_Deploy.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_PetAbility_Deploy extends TgInventoryObject_Listen_PetAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetDied.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetDied.uc new file mode 100644 index 0000000..f678983 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PetDied.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_PetDied extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PipConsequential.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PipConsequential.uc new file mode 100644 index 0000000..3137335 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PipConsequential.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_PipConsequential extends TgInvListener + native(Inventory) + config(Engine); + +var int s_nHitCounter; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PoisonBolts.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PoisonBolts.uc new file mode 100644 index 0000000..8409969 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_PoisonBolts.uc @@ -0,0 +1,18 @@ +class TgInventoryObject_Listen_PoisonBolts extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +struct PoisonBoltInfo { + var TgPawn PawnTarget; + var TgDeployable DeployableTarget; + var bool bEffectActive; + structdefaultproperties {} +}; + +var array m_PoisonBoltTargets; +var const int m_EffectGroupID; + +defaultproperties +{ + m_EffectGroupID=55144 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Proximity.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Proximity.uc new file mode 100644 index 0000000..427618e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Proximity.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Proximity extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_RainOfFire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_RainOfFire.uc new file mode 100644 index 0000000..107d531 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_RainOfFire.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_RainOfFire extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReachOut.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReachOut.uc new file mode 100644 index 0000000..1cdddf9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReachOut.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReachOut extends TgInventoryObject_Listen_NearObjective + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceInhandSelfDamage.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceInhandSelfDamage.uc new file mode 100644 index 0000000..08cbdc4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceInhandSelfDamage.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_ReduceInhandSelfDamage extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); + +var float m_fCachedBaseDamage; +var float m_fCachedBaseKnockback; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnHit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnHit.uc new file mode 100644 index 0000000..443b330 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnHit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReduceOtherCooldownOnHit extends TgInventoryObject_Listen_HitWithDevice + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnStartFire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnStartFire.uc new file mode 100644 index 0000000..7b4481d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnStartFire.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReduceOtherCooldownOnStartFire extends TgInventoryObject_Listen_AbilityStart + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnStopFire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnStopFire.uc new file mode 100644 index 0000000..745490c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceOtherCooldownOnStopFire.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReduceOtherCooldownOnStopFire extends TgInventoryObject_Listen_AbilityEnd + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceSelfDamageDeployable.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceSelfDamageDeployable.uc new file mode 100644 index 0000000..6eaa167 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceSelfDamageDeployable.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReduceSelfDamageDeployable extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceSelfDamageProjectile.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceSelfDamageProjectile.uc new file mode 100644 index 0000000..d581a14 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReduceSelfDamageProjectile.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReduceSelfDamageProjectile extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReloadCard.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReloadCard.uc new file mode 100644 index 0000000..b3a10db --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReloadCard.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_ReloadCard extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var int m_StacksNeededOnCooldown; +var int m_nPendingHitCounter; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReversalEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReversalEffect.uc new file mode 100644 index 0000000..372711b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ReversalEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ReversalEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SalvoExplode.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SalvoExplode.uc new file mode 100644 index 0000000..829c994 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SalvoExplode.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_SalvoExplode extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Scramble.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Scramble.uc new file mode 100644 index 0000000..60c5796 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Scramble.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_Scramble extends TgInvListener + native(Inventory) + config(Engine); + +var TgDevice_Scramble m_CachedScrambleDevice; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ShellShieldEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ShellShieldEffect.uc new file mode 100644 index 0000000..7346a45 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ShellShieldEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ShellShieldEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ShieldEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ShieldEffect.uc new file mode 100644 index 0000000..4d83f79 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_ShieldEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_ShieldEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SizeOfTheFight.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SizeOfTheFight.uc new file mode 100644 index 0000000..dd174a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SizeOfTheFight.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_SizeOfTheFight extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SmokeScreenEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SmokeScreenEffect.uc new file mode 100644 index 0000000..0cf58de --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SmokeScreenEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_SmokeScreenEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SpawnTeamHealthNugget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SpawnTeamHealthNugget.uc new file mode 100644 index 0000000..3b73c6d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SpawnTeamHealthNugget.uc @@ -0,0 +1,15 @@ +class TgInventoryObject_Listen_SpawnTeamHealthNugget extends TgInvListener + native(Inventory) + config(Engine); + +var TgSpecialFx m_NuggetSpawnFX; +var int m_NuggetSpawnFXID; +var bool m_bUseCV1ForSpawnChance; + +native function SpawnTeamHealthNugget(TgPawn Target, Vector SpawnDirection); // Export UTgInventoryObject_Listen_SpawnTeamHealthNugget::execSpawnTeamHealthNugget(FFrame&, void* const) + +defaultproperties +{ + m_NuggetSpawnFXID=6488 + m_bUseCV1ForSpawnChance=true +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Spite.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Spite.uc new file mode 100644 index 0000000..638e3f5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Spite.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_Spite extends TgInvListener + native(Inventory) + config(Engine); + +var int m_nHitCombo; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Spitfire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Spitfire.uc new file mode 100644 index 0000000..8cc2823 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Spitfire.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Spitfire extends TgInvListener + native(ChampDrogoz) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SpringBloom.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SpringBloom.uc new file mode 100644 index 0000000..e612322 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_SpringBloom.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_SpringBloom extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Sprint.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Sprint.uc new file mode 100644 index 0000000..c835827 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Sprint.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Sprint extends TgInventoryObject_Listen_ActiveWhileOffCooldown + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Stack.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Stack.uc new file mode 100644 index 0000000..15dfde2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Stack.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_Stack extends TgInvListener + native(Inventory) + config(Engine); + +native function AddStackCount(int nStackCount); // Export UTgInventoryObject_Listen_Stack::execAddStackCount(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StackPerPetAlive.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StackPerPetAlive.uc new file mode 100644 index 0000000..5985628 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StackPerPetAlive.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_StackPerPetAlive extends TgInventoryObject_Listen_Stack + native(Inventory) + config(Engine); + +native function UpdatePetCountStacks(optional bool bEmptyStacks=false); // Export UTgInventoryObject_Listen_StackPerPetAlive::execUpdatePetCountStacks(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StandingStill.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StandingStill.uc new file mode 100644 index 0000000..6a974d4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StandingStill.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_StandingStill extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StandingStillSelfEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StandingStillSelfEffect.uc new file mode 100644 index 0000000..f1129f3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StandingStillSelfEffect.uc @@ -0,0 +1,12 @@ +class TgInventoryObject_Listen_StandingStillSelfEffect extends TgInvListener + native(Inventory) + config(Engine); + +var float m_fRestTime; +var bool m_bIsApplied; +var TgPawn m_CachedPawnOwner; + +defaultproperties +{ + m_fRestTime=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StatusIsOnTarget.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StatusIsOnTarget.uc new file mode 100644 index 0000000..9b292de --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StatusIsOnTarget.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_StatusIsOnTarget extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StickyBombDetonate.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StickyBombDetonate.uc new file mode 100644 index 0000000..175d39e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_StickyBombDetonate.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_StickyBombDetonate extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TagForLifesteal.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TagForLifesteal.uc new file mode 100644 index 0000000..fc0cd2e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TagForLifesteal.uc @@ -0,0 +1,7 @@ +class TgInventoryObject_Listen_TagForLifesteal extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var array m_TagActors; +var array m_TagTimes; +var TgDeviceFire_MirrorDamageToHeal m_CachedFiremode; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Thunderstruck.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Thunderstruck.uc new file mode 100644 index 0000000..e597da0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Thunderstruck.uc @@ -0,0 +1,6 @@ +class TgInventoryObject_Listen_Thunderstruck extends TgInventoryObject_Listen_AbilityProcBase + native(Inventory) + config(Engine); + +var array m_UniqueTargets; +var bool m_bCachedIsArcing; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TotemEffect.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TotemEffect.uc new file mode 100644 index 0000000..7ff4524 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TotemEffect.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_TotemEffect extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TripWire.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TripWire.uc new file mode 100644 index 0000000..51cc969 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TripWire.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_TripWire extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TrueGrit.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TrueGrit.uc new file mode 100644 index 0000000..4c3a3c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_TrueGrit.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_TrueGrit extends TgInvListener + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Undying.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Undying.uc new file mode 100644 index 0000000..5d28c37 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Undying.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Undying extends TgInventoryObject_Listen_ActiveDuringAbility + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Unveil.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Unveil.uc new file mode 100644 index 0000000..5e5c2c4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Unveil.uc @@ -0,0 +1,3 @@ +class TgInventoryObject_Listen_Unveil extends TgInventoryObject_Listen_AugmentPetHit + native(Inventory) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_UseWhileCCed.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_UseWhileCCed.uc new file mode 100644 index 0000000..56fc8b2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_UseWhileCCed.uc @@ -0,0 +1,5 @@ +class TgInventoryObject_Listen_UseWhileCCed extends TgInventoryObject_Listen_Ability + native(Inventory) + config(Engine); + +var bool m_bIsActive; diff --git a/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Weaken.uc b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Weaken.uc new file mode 100644 index 0000000..092c97a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgInventoryObject_Listen_Weaken.uc @@ -0,0 +1,14 @@ +class TgInventoryObject_Listen_Weaken extends TgInventoryObject_Listen_HitWithDevice + native(Inventory) + config(Engine); + +var int m_nAppliedCategoryCodeToCheck; + +defaultproperties +{ + m_nAppliedCategoryCodeToCheck=15071 + m_bAutoProcOnInhand=true + m_bAutoProcOnAsIfInhand=true + m_bSkipActiveCheck=true + m_bSkipStartCooldown=true +} diff --git a/Development/Src/TgGame/Classes/TgItemShopVolume.uc b/Development/Src/TgGame/Classes/TgItemShopVolume.uc old mode 100755 new mode 100644 index 8f7133b..d5f855a --- a/Development/Src/TgGame/Classes/TgItemShopVolume.uc +++ b/Development/Src/TgGame/Classes/TgItemShopVolume.uc @@ -1,35 +1,17 @@ -class TgItemShopVolume extends Volume - native(Volumes) - hidecategories(Navigation,Object,Movement,Display); - -var() int TaskforceIndex; - -simulated function int GetSupportedTaskforce() -{ - local TgRepInfo_Game GRI; - - GRI = TgRepInfo_Game(WorldInfo.GRI); - // End:0x154 - if(GRI != none) - { - // End:0x14A - if(true) - { - // End:0x14A - if(GRI.r_AttackingTaskForce != none) - { - // End:0x106 - if(TaskforceIndex == 1) - { - return int(GRI.r_AttackingTaskForce.r_nTaskForce); - } - else - { - return ((int(GRI.r_AttackingTaskForce.r_nTaskForce) == 1) ? 2 : 1); - } - } - } - return TaskforceIndex; - } - //return ReturnValue; -} \ No newline at end of file +class TgItemShopVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int TaskforceIndex; + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event UnTouch(Actor Other) { } + +simulated function int GetSupportedTaskforce() { } + +event SetPurchaseFlag(Actor Other, bool bCanPurchase) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgKActorSpawnable.uc b/Development/Src/TgGame/Classes/TgKActorSpawnable.uc new file mode 100644 index 0000000..51cf9da --- /dev/null +++ b/Development/Src/TgGame/Classes/TgKActorSpawnable.uc @@ -0,0 +1,6 @@ +class TgKActorSpawnable extends KActorSpawnable + native + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgKAssetSpawnable.uc b/Development/Src/TgGame/Classes/TgKAssetSpawnable.uc new file mode 100644 index 0000000..12c02bd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgKAssetSpawnable.uc @@ -0,0 +1,6 @@ +class TgKAssetSpawnable extends KAssetSpawnable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgKAsset_ClientSideSim.uc b/Development/Src/TgGame/Classes/TgKAsset_ClientSideSim.uc new file mode 100644 index 0000000..74d6677 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgKAsset_ClientSideSim.uc @@ -0,0 +1,31 @@ +class TgKAsset_ClientSideSim extends KAsset + native + hidecategories(Navigation) + config(Engine); + +var () float m_fDamageImpulse; +var export editinline ArrowComponent m_Arrow; +var export editinline SpriteComponent m_ForceSprite; +var (Wind) bool m_bEnableWind; +var (Wind) bool m_bEnableGusts; +var () bool bAnimates; +var (Wind) float m_fWindForceMin; +var (Wind) float m_fWindForceMax; +var float m_fWindForceStrength; +var float m_fWindForceTargetStrength; +var (Wind) float m_fWindFrequency; +var float m_fWindForceRemainingTime; +var (Wind) Vector m_vWindDirection; +var (Wind) float m_fForceDistance; +var (Wind) float m_fForceZOffsetMultiplier; +var (Wind) float m_fGustActiveTime; +var (Wind) Vector2D m_vTimeBetweenGusts; +var float m_fGustActiveRemainingTime; +var float m_fTimeTillNextGust; +var (WindManager) Vector2D m_WindFrequencyMultiplier; +var (WindManager) Vector2D m_WindForceMultiplier; + +native function OnHit(Vector HitLocation, Vector HitNormal, optional Actor SourceActor, optional TraceHitInfo HitInfo); // Export UTgKAsset_ClientSideSim::execOnHit(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgKismetTestActor.uc b/Development/Src/TgGame/Classes/TgKismetTestActor.uc new file mode 100644 index 0000000..b02fd1f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgKismetTestActor.uc @@ -0,0 +1,35 @@ +class TgKismetTestActor extends DynamicSMActor + hidecategories(Navigation) + config(Engine); + +var () int m_nTestCount; +var () repnotify int r_nCurrentTest; +var repnotify int r_nPassCount; +var repnotify int r_nFailCount; +var () array c_aTextures; +var () SoundCue c_PassSound; +var () SoundCue c_FailSound; +var () array c_aResultActors; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nCurrentTest, r_nFailCount, r_nPassCount; +} + +simulated function OnTestResult(TgSeqAct_TestResult Action) { } + +simulated function PlayerController GetLocalPlayer() { } + +unreliable client simulated function SetTestColor(int Num, LinearColor Col) { } + +simulated event PostBeginPlay() { } + +unreliable client simulated function PassTest(int Num) { } + +unreliable client simulated function FailTest(int Num) { } + +unreliable client simulated function StartTest(int Num) { } + +simulated event ReplicatedEvent(name VarName) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgLanePylon.uc b/Development/Src/TgGame/Classes/TgLanePylon.uc new file mode 100644 index 0000000..045dee7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLanePylon.uc @@ -0,0 +1,9 @@ +class TgLanePylon extends Pylon + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force,Lighting,LightColor,Force) + config(Engine); + +var () int m_nLane; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgLevelStreamingSpectator.uc b/Development/Src/TgGame/Classes/TgLevelStreamingSpectator.uc new file mode 100644 index 0000000..da60cb9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLevelStreamingSpectator.uc @@ -0,0 +1,17 @@ +class TgLevelStreamingSpectator extends LevelStreaming + native + editinlinenew + config(Engine); + +enum SpectatorStreamingMethod { + SSM_OnlyLoadIfSpectating, // 0 + SSM_OnlyLoadIfNotSpectating, // 1 + SSM_AlwaysLoad, // 2 +}; + +var () TgLevelStreamingSpectator.SpectatorStreamingMethod m_LoadingMethod; + +defaultproperties +{ + m_LoadingMethod=SSM_AlwaysLoad +} diff --git a/Development/Src/TgGame/Classes/TgLevelStreamingWorldDetail.uc b/Development/Src/TgGame/Classes/TgLevelStreamingWorldDetail.uc new file mode 100644 index 0000000..6dbc753 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLevelStreamingWorldDetail.uc @@ -0,0 +1,16 @@ +class TgLevelStreamingWorldDetail extends LevelStreaming + native + editinlinenew + config(Engine); + +var (WorldDetail) int MinimumWorldDetailLevel; +var (WorldDetail) int MaximumWorldDetailLevel; +var transient byte CachedDetailCheck; +var transient int LastUpdateTime; + +defaultproperties +{ + MinimumWorldDetailLevel=1 + MaximumWorldDetailLevel=-1 + LastUpdateTime=-1 +} diff --git a/Development/Src/TgGame/Classes/TgLian.uc b/Development/Src/TgGame/Classes/TgLian.uc new file mode 100644 index 0000000..a6dd2f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLian.uc @@ -0,0 +1,5 @@ +class TgLian extends Object + native(ChampPrincess) + config(Engine); + +const MAX_GRACE_TARGETS = 15; diff --git a/Development/Src/TgGame/Classes/TgLobbyCamera.uc b/Development/Src/TgGame/Classes/TgLobbyCamera.uc new file mode 100644 index 0000000..a302fbe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLobbyCamera.uc @@ -0,0 +1,73 @@ +class TgLobbyCamera extends CameraActor + native(View) + hidecategories(Navigation) + config(Engine); + +enum ELobbyCameraTag { + LobbyCam_Login, // 0 + LobbyCam_TitleHome, // 1 + LobbyCam_TitlePlay, // 2 + LobbyCam_SearchingForMatch, // 3 + LobbyCam_MatchLobby, // 4 + LobbyCam_TitleChampions, // 5 + LobbyCam_ViewAllChampions, // 6 + LobbyCam_ViewChampion, // 7 + LobbyCam_TitleChests, // 8 + LobbyCam_LootChest, // 9 + LobbyCam_Store, // 10 + LobbyCam_StoreDetail, // 11 + LobbyCam_EndOfMatchLobby, // 12 + LobbyCam_WisdomDetail, // 13 + LobbyCam_ViewChampionWeapon, // 14 + LobbyCam_TeamMatchLobby, // 15 +}; + +var (CameraActor) TgSkeletalMeshActor_Lobby m_ViewTarget; +var (CameraActor) array m_FriendlyTargets; +var (CameraActor) array m_EnemyTargets; +var (CameraActor) Vector m_RenderCenterPointOffset; +var transient bool m_bActive; +var () bool m_bAdjustCameraToTarget; +var bool m_bFirstCameraEyeCheck; +var transient int m_nPosition; +var float m_fRemainingTweenTime; +var float m_fTotalTweenTime; +var transient TPOV m_TweenSourcePOV; +var () float m_fLateralOffsetMultiplier; +var () float m_fHorizontalOffsetMultiplier; +var () float m_fViewLateralOffsetMultiplier; +var () float m_fViewHorizontalOffsetMultiplier; +var () float m_fMaxAdjustSpeedTranslation; +var () float m_fMaxAdjustSpeedRotation; +var () Vector m_vViewOffset; +var float m_fFirstCameraEyeCheckTimestamp; +var (CameraActor) TgLobbyCamera.ELobbyCameraTag m_CameraTag; + +native function SetActive(bool bActive); // Export UTgLobbyCamera::execSetActive(FFrame&, void* const) + +native function ClearFriendlyTargets(); // Export UTgLobbyCamera::execClearFriendlyTargets(FFrame&, void* const) + +native function ClearEnemyTargets(); // Export UTgLobbyCamera::execClearEnemyTargets(FFrame&, void* const) + +event TriggerKismetActivationEvent(bool bActive, optional int nPosition=0) { } + +event SetPosition(int nPosition) { } + +simulated function StartTween(float TweenTime) { } + +simulated event GetActorEyesViewPoint(out vector out_Location, out Rotator out_Rotation) { } + +simulated function GetCameraView(float DeltaTime, out TPOV OutPOV) { } + +defaultproperties +{ + m_bFirstCameraEyeCheck=true + m_TweenSourcePOV=(Location=(X=0.0000000,Y=0.0000000,Z=0.0000000),Rotation=(Pitch=0,Yaw=0,Roll=0),FOV=90.0000000,HUDOffset=(X=0.0000000,Y=0.0000000)) + m_fLateralOffsetMultiplier=3.0000000 + m_fHorizontalOffsetMultiplier=2.0000000 + m_fViewLateralOffsetMultiplier=1.0000000 + m_fViewHorizontalOffsetMultiplier=1.0000000 + m_fMaxAdjustSpeedTranslation=10000.0000000 + m_fMaxAdjustSpeedRotation=10000.0000000 + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgLobbyCaptureActor.uc b/Development/Src/TgGame/Classes/TgLobbyCaptureActor.uc new file mode 100644 index 0000000..ae76c0f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLobbyCaptureActor.uc @@ -0,0 +1,9 @@ +class TgLobbyCaptureActor extends SceneCapture2DActor + native(View) + hidecategories(Navigation) + config(Engine); + +var (CameraActor) TgSkeletalMeshActor_Lobby m_ViewTarget; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgLocalPlayer.uc b/Development/Src/TgGame/Classes/TgLocalPlayer.uc new file mode 100644 index 0000000..a5fe58f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgLocalPlayer.uc @@ -0,0 +1,40 @@ +class TgLocalPlayer extends LocalPlayer within Engine + transient + native + config(Engine); + +var float m_fViewScale; +var Vector m_vViewPan; +var bool m_bEnableOutlineEffect; +var bool m_bEnableColorBlindEffect; +var bool m_bColorBlindSimulate; +var bool m_bBlurForeground; +var float m_fHitOnlyAlpha; +var float m_fHealthOnlyAlpha; +var float m_fHealthPPAlpha; +var float m_fDeathDesatPPAlpha; +var int m_eColorBlindEffectType; +var float m_fTargetBlurAmount; +var float m_fBlurAmount; +var float m_fBlurInterpSpeed; +var float m_fBlurKernelSize; +var DOFAndBloomEffect.EDOFType m_eCurrentDOFType; + +native function InitMaterialEffects(); // Export UTgLocalPlayer::execInitMaterialEffects(FFrame&, void* const) + +native function EnableOutlineEffect(optional bool bEnable=true); // Export UTgLocalPlayer::execEnableOutlineEffect(FFrame&, void* const) + +native function EnableColorBlindEffect(optional bool bEnable=false, optional int Type=1, optional bool bSimulateMode=false); // Export UTgLocalPlayer::execEnableColorBlindEffect(FFrame&, void* const) + +native function UpdateLowHealthEffect(float DeltaSeconds, optional float fHealthPCT=1.0000000, optional float fHealthLostPCT=0.0000000, optional bool bDeathVision=false); // Export UTgLocalPlayer::execUpdateLowHealthEffect(FFrame&, void* const) + +native function SetBlurAmount(float TargetBlurAmount, float InterpSpeed, float BlurKernelSize, optional bool bForeground=false); // Export UTgLocalPlayer::execSetBlurAmount(FFrame&, void* const) + +event PostProcessEffect GetPostProcessEffect(name EffectName) { } + +defaultproperties +{ + m_fViewScale=1.0000000 + m_eColorBlindEffectType=1 + m_fBlurKernelSize=16.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgManifestGroup.uc b/Development/Src/TgGame/Classes/TgManifestGroup.uc new file mode 100644 index 0000000..a92fb2c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgManifestGroup.uc @@ -0,0 +1,17 @@ +class TgManifestGroup extends Object + native + config(Engine); + +var init native array m_ManifestList; +var init array m_pObjectReferencers; +var Object m_OwningObject; +var bool m_bIsInCallback; +var bool m_bInitialized; +var bool m_bResetOnMapLoad; + +delegate OnAllManifestsLoaded(); + +defaultproperties +{ + m_bResetOnMapLoad=true +} diff --git a/Development/Src/TgGame/Classes/TgMapBoundsVolume.uc b/Development/Src/TgGame/Classes/TgMapBoundsVolume.uc new file mode 100644 index 0000000..43d6db1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMapBoundsVolume.uc @@ -0,0 +1,11 @@ +class TgMapBoundsVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () Texture2D MinimapImage; + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMapInfo.uc b/Development/Src/TgGame/Classes/TgMapInfo.uc new file mode 100644 index 0000000..fe5d35f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMapInfo.uc @@ -0,0 +1,30 @@ +class TgMapInfo extends MapInfo + native + editinlinenew + config(Engine); + +var () Actor m_EndFocusActor_TF1; +var () Actor m_EndFocusActor_TF2; +var () TgFatalityFactory m_FatalityFactory_TF1_1; +var () TgFatalityFactory m_FatalityFactory_TF1_2; +var () TgFatalityFactory m_FatalityFactory_TF1_3; +var () TgFatalityFactory m_FatalityFactory_TF2_1; +var () TgFatalityFactory m_FatalityFactory_TF2_2; +var () TgFatalityFactory m_FatalityFactory_TF2_3; +var () StaticMeshActor m_OverlayPathMesh; +var () Vector2D m_vMapCenter; +var () Vector2D m_vTaskForce1BaseLocation; +var () Vector2D m_vTaskForce2BaseLocation; +var () float m_fLockViewBufferZoneSize; +var () bool m_bSupportsGuardianThrone; +var () float m_LitParticleBrightness; + +simulated function TgFatalityFactory GetEmptyFatalityFactory(byte TaskForceNumber) { } + +defaultproperties +{ + m_vTaskForce1BaseLocation=(X=-10500.0000000,Y=0.0000000) + m_vTaskForce2BaseLocation=(X=10500.0000000,Y=0.0000000) + m_fLockViewBufferZoneSize=1500.0000000 + m_LitParticleBrightness=12.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgMarkComponent.uc b/Development/Src/TgGame/Classes/TgMarkComponent.uc new file mode 100644 index 0000000..8182b98 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMarkComponent.uc @@ -0,0 +1,40 @@ +class TgMarkComponent extends ActorComponent + native + config(Engine); + +struct TargetMark { + var Actor Target; + var float fTimeLeft; + var int nNumMarks; + var init array AppliedEffects; + structdefaultproperties {} +}; + +var init transient array s_MarkList; +var init transient array s_MarkEffectGroup; +var const int m_nHostItemId; +var const bool m_bStackEffects; +var const bool m_bRemoveMarksOnDeath; +var const float m_fMarkDuration; +var const int m_nMaxMarks; +var const int m_nPhysicalType; + +native function AddMark(Actor Target); // Export UTgMarkComponent::execAddMark(FFrame&, void* const) + +native function RemoveAllMarksByActor(Actor Target); // Export UTgMarkComponent::execRemoveAllMarksByActor(FFrame&, void* const) + +native function RemoveMarkByActor(Actor Target); // Export UTgMarkComponent::execRemoveMarkByActor(FFrame&, void* const) + +native function RemoveAllMarksByIndex(int nIndex); // Export UTgMarkComponent::execRemoveAllMarksByIndex(FFrame&, void* const) + +native function RemoveMarkByIndex(int nIndex); // Export UTgMarkComponent::execRemoveMarkByIndex(FFrame&, void* const) + +native function RemoveAllMarks(); // Export UTgMarkComponent::execRemoveAllMarks(FFrame&, void* const) + +native function int GetNumMarksFor(Actor Target); // Export UTgMarkComponent::execGetNumMarksFor(FFrame&, void* const) + +defaultproperties +{ + m_bRemoveMarksOnDeath=true + m_nPhysicalType=860 +} diff --git a/Development/Src/TgGame/Classes/TgMenuContentData.uc b/Development/Src/TgGame/Classes/TgMenuContentData.uc new file mode 100644 index 0000000..c48a2d7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMenuContentData.uc @@ -0,0 +1,47 @@ +class TgMenuContentData extends Object + native + config(Engine); + +enum MenuContentDataType { + MCDT_None, // 0 + MCDT_Login, // 1 + MCDT_MainMenu, // 2 + MCDT_MainMenu_Featured_1, // 3 + MCDT_MainMenu_Featured_2, // 4 + MCDT_MainMenu_Featured_3, // 5 + MCDT_MainMenu_Featured_4, // 6 + MCDT_MainMenu_Featured_5, // 7 + MCDT_MainMenu_Featured_6, // 8 + MCDT_MainMenu_BetaPromo, // 9 + MCDT_MainMenu_GodPack, // 10 + MCDT_MainMenu_FacebookPromo, // 11 + MCDT_MainMenu_TwitterPromo, // 12 + MCDT_MainMenu_NewPlayer_Feature_1, // 13 + MCDT_MainMenu_NewPlayer_Feature_2, // 14 + MCDT_MainMenu_NewPlayer_Feature_3, // 15 + MCDT_Play, // 16 + MCDT_Store, // 17 + MCDT_Social_Friends, // 18 + MCDT_Social_Followers, // 19 + MCDT_Social_Blocked, // 20 + MCDT_Settings, // 21 + MCDT_Lobby, // 22 +}; + +struct MeshData { + var TgMenuContentData.MenuContentDataType ContentDataType; + var TgMenuMeshInfo MainMeshInfo; + var name CameraName; + structdefaultproperties {} +}; + +var array m_MeshData; +var SoundCue m_LoginMusic; +var SoundCue m_GodSelectionMusic; +var SoundCue m_BattleReadyMusic; + +function Init() { } + +event GetMeshData(TgMenuContentData.MenuContentDataType ContentDataType, out MeshData Data) { } + +function PreloadTextures(float ForceDuration) { } diff --git a/Development/Src/TgGame/Classes/TgMenuMeshInfo.uc b/Development/Src/TgGame/Classes/TgMenuMeshInfo.uc new file mode 100644 index 0000000..477b2b5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMenuMeshInfo.uc @@ -0,0 +1,47 @@ +class TgMenuMeshInfo extends Object + native + editinlinenew + hidecategories(Object) + config(Engine); + +struct LobbyMeshInfo { + var () Vector Translation; + var () Rotator Rotation; + var () float Scale; + var () SkeletalMesh SkelMesh; + var () PhysicsAsset PhysAsset; + var () AnimTree AnimTreeTemplate; + var () array AnimSets; + var () MorphTargetSet MorphTargetSet; + var () bool bOnlySelfShadow; + var () array MaterialOverrides; + var () bool bUseIndividualLightEnvironment; + var () bool bUseOverlayMesh; + structdefaultproperties {} +}; + +struct ParticleSystemInfo { + var () ParticleSystem ParticleSystem; + var () name SocketName; + structdefaultproperties {} +}; + +var () LobbyMeshInfo MeshInfo; +var () editinline array Children; +var name ParentSocketName; +var () array AttachedParticleSystems; + +native function ConfigureMesh(TgSkeletalMeshActor_Loader lobbyOwner); // Export UTgMenuMeshInfo::execConfigureMesh(FFrame&, void* const) + +native function SetupMeshFromMeshInfo(TgSkeletalMeshComponent SkelComp); // Export UTgMenuMeshInfo::execSetupMeshFromMeshInfo(FFrame&, void* const) + +native function AddFxAttachments(TgSkeletalMeshComponent SkelComp); // Export UTgMenuMeshInfo::execAddFxAttachments(FFrame&, void* const) + +native function bool IsFullyConfigured(); // Export UTgMenuMeshInfo::execIsFullyConfigured(FFrame&, void* const) + +function PreloadTextures(float ForceDuration) { } + +defaultproperties +{ + MeshInfo=(Translation=(X=0.0000000,Y=0.0000000,Z=0.0000000),Rotation=(Pitch=0,Yaw=0,Roll=0),Scale=1.0000000,SkelMesh=none,PhysAsset=none,AnimTreeTemplate=none,AnimSets=none,MorphTargetSet=none,bOnlySelfShadow=false,MaterialOverrides=none,bUseIndividualLightEnvironment=true,bUseOverlayMesh=true) +} diff --git a/Development/Src/TgGame/Classes/TgMenuTransitionActor.uc b/Development/Src/TgGame/Classes/TgMenuTransitionActor.uc new file mode 100644 index 0000000..553bda3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMenuTransitionActor.uc @@ -0,0 +1,16 @@ +class TgMenuTransitionActor extends Actor + notplaceable + hidecategories(Navigation) + config(Engine); + +var export editinline ParticleSystemComponent m_IntroPSC; +var export editinline ParticleSystemComponent m_LoopPSC; +var export editinline ParticleSystemComponent m_OutroPSC; + +simulated function PlayIntro() { } + +simulated function PlayOutro() { } + +simulated function PlayLoop() { } + +simulated function StopLoop() { } diff --git a/Development/Src/TgGame/Classes/TgMeshAssembly.uc b/Development/Src/TgGame/Classes/TgMeshAssembly.uc new file mode 100644 index 0000000..b3cd582 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMeshAssembly.uc @@ -0,0 +1,21 @@ +class TgMeshAssembly extends Actor + native + placeable + hidecategories(Navigation) + config(Engine); + +var () int m_nMeshAsmId; +var () int m_nTeam; +var export editinline transient MeshComponent m_Mesh; +var const editconst export editinline LightEnvironmentComponent m_LightEnvironment; + +native function LoadMesh(); // Export UTgMeshAssembly::execLoadMesh(FFrame&, void* const) + +native function RecalculateTeamColor(); // Export UTgMeshAssembly::execRecalculateTeamColor(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function NotifyLocalPlayerTeamReceived() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMidnightFogVolumeDensityInfo.uc b/Development/Src/TgGame/Classes/TgMidnightFogVolumeDensityInfo.uc new file mode 100644 index 0000000..3865a66 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMidnightFogVolumeDensityInfo.uc @@ -0,0 +1,31 @@ +class TgMidnightFogVolumeDensityInfo extends FogVolumeSphericalDensityInfo + hidecategories(Navigation,Collision) + autoexpandcategories(FogVolumeDensityInfo) + config(Engine); + +var bool m_bFogOn; +var bool m_bFogUpdateNeeded; +var bool m_bIsFadingOut; +var float m_fCurrentStartDistance; +var float m_fFadeOutDuration; +var float m_fFadeOutTimer; +var float m_fTargetMaxDensity; +var float m_fDestroyTimer; +var export editinline FogVolumeSphericalDensityComponent SphericalDensityComponent; + +simulated event PostBeginPlay() { } + +simulated function ToggleFog(bool bOn) { } + +simulated function SetOrigin(Vector vOrigin) { } + +simulated function SetStartDistance(float fNewStartDistance) { } + +simulated function FadeOut(float fFadeTime) { } + +simulated function Tick(float DeltaTime) { } + +simulated function SetAlpha(float fNewAlpha) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMinimapManager.uc b/Development/Src/TgGame/Classes/TgMinimapManager.uc new file mode 100644 index 0000000..5854961 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMinimapManager.uc @@ -0,0 +1,54 @@ +class TgMinimapManager extends Object + native(Game) + config(Engine) + dependson(TgObject); + +struct MiniMapServerEntity { + var Vector vLocation; + var TgObject.MiniMapEntityType eType; + var int nSubType; + var int nProfileId; + var TgObject.TgMapTeam Team; + var int nVisionRange; + var bool bIsDead; + var ReplicationInfo RepInfo; + var int nIdx; + var bool bMarked; + var byte bVisibleOnMap; + var byte bVisibleBySentinel; + var bool bVisibleByDetector; + var float fLastPingTime; + var bool bRequireLOS; + var bool bDetector; + var bool bSentinel; + var byte byVisionMask; + var float fHealthPCT; + var Actor FogOfWarArea; + var bool FogOfWarAreaRevealed; + structdefaultproperties {} +}; + +var TgObject.TgMapTeam m_LocalTeam; +var bool m_bShouldDisableVisionRange; +var bool m_bSkipWorldGeometryLOS; +var bool m_bRequiresVisionUpdate; +var float m_fFogOfWarAreaRevealTime; +var float m_fUpdateTimer; +var float m_fLastEntityUpdateTime; +var init array m_ReferencedRepInfos; + +native function Update(optional bool bForce=true); // Export UTgMinimapManager::execUpdate(FFrame&, void* const) + +native function UpdateThreaded(); // Export UTgMinimapManager::execUpdateThreaded(FFrame&, void* const) + +native function RemoveAllEntities(); // Export UTgMinimapManager::execRemoveAllEntities(FFrame&, void* const) + +native function ForceUpdate(ReplicationInfo ri); // Export UTgMinimapManager::execForceUpdate(FFrame&, void* const) + +event InitForTaskforce(TgRepInfo_TaskForce tf) { } + +defaultproperties +{ + m_fFogOfWarAreaRevealTime=1.0000000 + m_fUpdateTimer=0.1000000 +} diff --git a/Development/Src/TgGame/Classes/TgMinionGoal.uc b/Development/Src/TgGame/Classes/TgMinionGoal.uc new file mode 100644 index 0000000..19ba991 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMinionGoal.uc @@ -0,0 +1,14 @@ +class TgMinionGoal extends NavigationPoint + native(AI) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var () int m_nLaneNum; +var () int m_nTaskForce; +var () TgActionPoint m_EndPoint; +var () bool m_bUseForFinalDestination; + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMinionGoal_Aphrodite.uc b/Development/Src/TgGame/Classes/TgMinionGoal_Aphrodite.uc new file mode 100644 index 0000000..a93eb52 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMinionGoal_Aphrodite.uc @@ -0,0 +1,9 @@ +class TgMinionGoal_Aphrodite extends TgMinionGoal + native(AI) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMissionListVolume.uc b/Development/Src/TgGame/Classes/TgMissionListVolume.uc new file mode 100644 index 0000000..d3e37e3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMissionListVolume.uc @@ -0,0 +1,12 @@ +class TgMissionListVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var (Object) editconst int m_nMapObjectId; +var () int s_nQueueTableId; +var () int s_nQueueTableMsgId; +var () Teleporter m_Teleporter; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMobileAmbientSound.uc b/Development/Src/TgGame/Classes/TgMobileAmbientSound.uc new file mode 100644 index 0000000..b51fccd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMobileAmbientSound.uc @@ -0,0 +1,8 @@ +class TgMobileAmbientSound extends AkAmbientSound + hidecategories(Navigation) + config(Engine); + +defaultproperties +{ + bStatic=false +} diff --git a/Development/Src/TgGame/Classes/TgModifyPawnPropertiesVolume.uc b/Development/Src/TgGame/Classes/TgModifyPawnPropertiesVolume.uc new file mode 100644 index 0000000..42f6309 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgModifyPawnPropertiesVolume.uc @@ -0,0 +1,28 @@ +class TgModifyPawnPropertiesVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var (Object) editconst int m_nMapObjectId; +var () bool m_bDisableJump; +var () bool m_bDisableBlockActors; +var () bool m_bDisableHanging; +var () bool m_bDisableAllDevices; +var () bool m_bTriggerUseEvent; +var () bool m_bOneWayMovement; +var Rotator m_vOnewWay; +var export editinline ArrowComponent m_DirArrow; +var () int s_nLootTableId; + +native function LoadObjectConfig(); // Export UTgModifyPawnPropertiesVolume::execLoadObjectConfig(FFrame&, void* const) + +native function Used(Actor Other); // Export UTgModifyPawnPropertiesVolume::execUsed(FFrame&, void* const) + +event PostBeginPlay() { } + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash.uc new file mode 100644 index 0000000..cceb222 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash.uc @@ -0,0 +1,14 @@ +class TgMuzzleFlash extends TgExplosionLight + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + HighDetailFrameTime=0.0200000 + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=255,G=255,B=128,A=255)) + TimeShift[2]=(StartTime=0.1500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=255,G=255,B=64,A=255)) + Radius=192.0000000 + bAffectCompositeShadowDirection=false +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_Bow.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_Bow.uc new file mode 100644 index 0000000..5f176a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_Bow.uc @@ -0,0 +1,11 @@ +class TgMuzzleFlash_Bow extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=0,G=255,B=255,A=255)) + TimeShift[2]=(StartTime=0.1500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=0,G=128,B=128,A=255)) +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_IceStaff.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_IceStaff.uc new file mode 100644 index 0000000..312416c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_IceStaff.uc @@ -0,0 +1,11 @@ +class TgMuzzleFlash_IceStaff extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=128,G=128,B=255,A=255)) + TimeShift[2]=(StartTime=0.1500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=64,G=64,B=255,A=255)) +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_Lance.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_Lance.uc new file mode 100644 index 0000000..aa56584 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_Lance.uc @@ -0,0 +1,12 @@ +class TgMuzzleFlash_Lance extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=200,B=128,A=255),EnemyLightColor=(R=255,G=200,B=128,A=255),LocalLightColor=(R=255,G=200,B=128,A=255)) + TimeShift[2]=(StartTime=0.2000000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=255,G=100,B=64,A=255),EnemyLightColor=(R=255,G=100,B=64,A=255),LocalLightColor=(R=255,G=100,B=64,A=255)) + LoopIndex=1 +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_Orb.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_Orb.uc new file mode 100644 index 0000000..954ca67 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_Orb.uc @@ -0,0 +1,12 @@ +class TgMuzzleFlash_Orb extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.2000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=128,G=128,B=255,A=255)) + TimeShift[2]=(StartTime=0.2500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=64,G=64,B=255,A=255)) + LoopIndex=1 +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_PotionLauncher.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_PotionLauncher.uc new file mode 100644 index 0000000..ba9ac07 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_PotionLauncher.uc @@ -0,0 +1,11 @@ +class TgMuzzleFlash_PotionLauncher extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=0,G=200,B=255,A=255)) + TimeShift[2]=(StartTime=0.1500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=0,G=100,B=128,A=255)) +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_SkyeInHand.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_SkyeInHand.uc new file mode 100644 index 0000000..b97b437 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_SkyeInHand.uc @@ -0,0 +1,11 @@ +class TgMuzzleFlash_SkyeInHand extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=255,G=100,B=255,A=255)) + TimeShift[2]=(StartTime=0.1500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=255,G=0,B=255,A=255)) +} diff --git a/Development/Src/TgGame/Classes/TgMuzzleFlash_Sniper.uc b/Development/Src/TgGame/Classes/TgMuzzleFlash_Sniper.uc new file mode 100644 index 0000000..f2486a2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgMuzzleFlash_Sniper.uc @@ -0,0 +1,11 @@ +class TgMuzzleFlash_Sniper extends TgMuzzleFlash + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + TimeShift[0]=(StartTime=0.0000000,Radius=256.0000000,Brightness=8.0000000,LightColor=(R=255,G=255,B=255,A=255),EnemyLightColor=(R=255,G=255,B=255,A=255),LocalLightColor=(R=255,G=255,B=255,A=255)) + TimeShift[1]=(StartTime=0.1000000,Radius=128.0000000,Brightness=8.0000000,LightColor=(R=128,G=128,B=255,A=255),EnemyLightColor=(R=255,G=128,B=128,A=255),LocalLightColor=(R=128,G=128,B=255,A=255)) + TimeShift[2]=(StartTime=0.1500000,Radius=128.0000000,Brightness=0.0000000,LightColor=(R=64,G=64,B=255,A=255),EnemyLightColor=(R=255,G=64,B=64,A=255),LocalLightColor=(R=64,G=64,B=255,A=255)) +} diff --git a/Development/Src/TgGame/Classes/TgNavMeshPath_AlongLane.uc b/Development/Src/TgGame/Classes/TgNavMeshPath_AlongLane.uc new file mode 100644 index 0000000..208ecee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgNavMeshPath_AlongLane.uc @@ -0,0 +1,9 @@ +class TgNavMeshPath_AlongLane extends NavMeshPathConstraint + native(Navigation) + config(Engine); + +var int m_nLane; + +function bool AlongLane(NavigationHandle NavHandle, int nLane) { } + +function Recycle() { } diff --git a/Development/Src/TgGame/Classes/TgNavRouteIndicator.uc b/Development/Src/TgGame/Classes/TgNavRouteIndicator.uc new file mode 100644 index 0000000..4a3701b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgNavRouteIndicator.uc @@ -0,0 +1,71 @@ +class TgNavRouteIndicator extends TgSkeletalMeshActorSpawnable + native(Navigation) + hidecategories(Navigation) + implements(Interface_NavigationHandle) + config(Engine); + +const TG_NAV_ROUTE_INDICATOR_SPINUP_FX_ID = 0; + +const TG_NAV_ROUTE_INDICATOR_PATHING_FX_ID = 2276; + +const TG_NAV_ROUTE_INDICATOR_SPINDOWN_FX_ID = 0; + +enum eSetRouteResult { + SetRoute_Failed, // 0 + SetRoute_OK, // 1 + SetRoute_AtDestination, // 2 +}; + +var init array WayPoints; +var int Position; +var float m_fPositionStartTime; +var float m_fPositionMaxSeekTime; +var float m_fSpinUpTime; +var float m_fSpinDownTime; +var TgSpecialFx m_SpinUpFx; +var TgSpecialFx m_PathingFx; +var TgSpecialFx m_SpinDownFx; +var editinline NavigationHandle NavigationHandle; + +native function ActivateSpinUpFx(); // Export UTgNavRouteIndicator::execActivateSpinUpFx(FFrame&, void* const) + +native function ActivateSpinDownFx(); // Export UTgNavRouteIndicator::execActivateSpinDownFx(FFrame&, void* const) + +native function ActivatePathingFx(); // Export UTgNavRouteIndicator::execActivatePathingFx(FFrame&, void* const) + +native function DeactivateFx(); // Export UTgNavRouteIndicator::execDeactivateFx(FFrame&, void* const) + +native function DeactivatePathingFx(); // Export UTgNavRouteIndicator::execDeactivatePathingFx(FFrame&, void* const) + +native function TgNavRouteIndicator.eSetRouteResult SetRoute(Actor destActor); // Export UTgNavRouteIndicator::execSetRoute(FFrame&, void* const) + +native function Vector GetCurrentWayPoint(); // Export UTgNavRouteIndicator::execGetCurrentWayPoint(FFrame&, void* const) + +native function bool AdvanceWayPoint(); // Export UTgNavRouteIndicator::execAdvanceWayPoint(FFrame&, void* const) + +native function UpdateRotation(float fDeltaSeconds); // Export UTgNavRouteIndicator::execUpdateRotation(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +simulated function Destroyed() { } + +simulated function TgNavRouteIndicator.eSetRouteResult SetRouteTo(Actor destActor) { } + +simulated event FindNavHandlePath(Actor destActor, float Dist) { } + +simulated function StartSeeking() { } + +simulated function StartNextPath() { } + +function float GetMaxSpeed() { } + +event NotifyPathChanged() { } + +state SpinUp {} + +state SpinDown {} + +state Pathing {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgNavigationPoint.uc b/Development/Src/TgGame/Classes/TgNavigationPoint.uc new file mode 100644 index 0000000..9a1c4bd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgNavigationPoint.uc @@ -0,0 +1,10 @@ +class TgNavigationPoint extends NavigationPoint + abstract + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var (Object) editconst int m_nMapObjectId; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgNavigationPointSpawnable.uc b/Development/Src/TgGame/Classes/TgNavigationPointSpawnable.uc new file mode 100644 index 0000000..a4ac19b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgNavigationPointSpawnable.uc @@ -0,0 +1,7 @@ +class TgNavigationPointSpawnable extends TgNavigationPoint + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgNearObjectiveVolume.uc b/Development/Src/TgGame/Classes/TgNearObjectiveVolume.uc new file mode 100644 index 0000000..0b69b87 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgNearObjectiveVolume.uc @@ -0,0 +1,10 @@ +class TgNearObjectiveVolume extends Volume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgNewUserSettings.uc b/Development/Src/TgGame/Classes/TgNewUserSettings.uc new file mode 100644 index 0000000..a59bad5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgNewUserSettings.uc @@ -0,0 +1,5 @@ +class TgNewUserSettings extends Object + native + config(Game); + +var () globalconfig array WatchedVideoIds; diff --git a/Development/Src/TgGame/Classes/TgObject.uc b/Development/Src/TgGame/Classes/TgObject.uc old mode 100755 new mode 100644 index 1eb8b0d..035a22c --- a/Development/Src/TgGame/Classes/TgObject.uc +++ b/Development/Src/TgGame/Classes/TgObject.uc @@ -1,83 +1,1111 @@ -class TgObject extends Object - native; - -enum GAME_WIN_STATE -{ - GWS_NONE, // 0 - GWS_TASKFORCE_TWO_WON, // 1 - GWS_TASKFORCE_ONE_WON, // 2 - GWS_TIE, // 3 -}; - -enum eTutorialForceableElements -{ - ETBUI_Skills, - ETBUI_ItemShop, - ETBUI_ItemShopButton, - ETBUI_Intro, - ETBUI_ItemShopWalkthrough, - ETBUI_ActiveItems, - ETBUI_ConsumableItems, - ETBUI_Escape -}; - -enum TG_GAME_TYPE -{ - TGT_UNSET, - TGT_CITY, - TGT_ARENA, - TGT_ARENA_PRACTICE, - TGT_ARENA_CAPTURE, - TGT_ARENA_ESCORT, - TGT_ARENA_ESCORT_PRACTICE, - TGT_BATTLE, - TGT_BATTLE_EXPERT, - TGT_BATTLE_PRACTICE, - TGT_BATTLE_JOUST, - TGT_BATTLE_CASUAL, - TGT_BATTLE_TRAINING, - TGT_BATTLE_ARAM, - TGT_BATTLE_ARAM_PRACTICE, - TGT_POINTCAPTURE, - TGT_DOMINATION, - TGT_SINGLEPOINTCAPTUREANDHOLD, - TGT_IDOL, - TGT_SIEGE, - TGT_BATTLE_TC, - TGT_BATTLE_SHOOTINGRANGE, - TGT_CHAOS, - TGT_CHAOS_PRACTICE, - TGT_CHAOSRACE, - TGT_CHAOS_PUSH, - TGT_CHAOS_PAYLOAD, - TGT_CHAOS_PAYLOAD_PRACTICE, - TGT_CHAOS_CAPTUREANDPAYLOAD, - TGT_CHAOS_CAPTUREANDPAYLOAD_PRACTICE, - TGT_CHAOS_CAPTUREPOINT, - TGT_CHAOS_CAPTUREPOINT_PRACTICE, - TGT_CHAOS_SURVIVAL, - TGT_CHAOS_SURVIVAL_PRACTICE, - TGT_CHAOS_SHOOTINGRANGE, - TGT_CHAOS_TUTORIAL, - TGT_CHAOS_PVE, - TGT_CHAOS_PVE_SURVIVAL, - TGT_CHAOS_TEAM_DEATH_MATCH, - TGT_CHAOS_ONSLAUGHT, - TGT_CHAOS_ONSLAUGHT_PRACTICE, - TGT_CHAOS_ROYALE, - TGT_CHAOS_ASCENDED_ASSAULT, - TGT_CHAOS_FLAGBALL, - TGT_CHAOS_EVENT, - TGT_CHAOS_END_TIMES, - TGT_CHAOS_CRAZY_KING, - TGT_CHAOS_CAPTURE_THE_FLAG, -}; - -enum AlertType -{ - ATT_Regular, - ATT_Beneficial, - ATT_Detrimental, - ATT_Spectator, - ATT_Important -}; \ No newline at end of file +class TgObject extends Object + native + config(Engine); + +const FEET_TO_UNREAL_UNITS = 16; + +const UNREAL_UNITS_TO_FEET = 0.0625; + +const MAX_DECK_SIZE = 15; + +const MIN_FOV = 80; + +const MAX_FOV = 120; + +const DODM_HIDE = 0; + +const DODM_SHOW_OWNED_INDICATOR = 1; + +const DODM_SHOW_FRIENDLY_INDICATOR = 2; + +const DODM_SHOW_ENEMY_INDICATOR = 4; + +const DODM_SHOW_OWNED_HEALTHBAR = 8; + +const DODM_SHOW_FRIENDLY_HEALTHBAR = 16; + +const DODM_SHOW_ENEMY_HEALTHBAR = 32; + +const DODM_SHOW_OWNED_SILHOUETTE = 64; + +const DODM_SHOW_FRIENDLY_SILHOUETTE = 128; + +const DODM_SHOW_ENEMY_SILHOUETTE = 256; + +const DODM_SHOW_OWNED_HEALING_INDICATOR = 256; + +const DODM_SHOW_FRIENDLY_HEALING_INDICATOR = 512; + +const DODM_SHOW_ENEMY_PROJECTILE_RING = 1024; + +const DODM_BLINK_ON_PROJECTILE_RING = 2048; + +const DODM_SHOW_PROJECTILE_AS_DEPLOYABLE = 4096; + +const DODM_SHOW_FRIENDLY_PLAYER_ICON = 8192; + +const DODM_SHOW_ENEMY_PLAYER_ICON = 16384; + +const DODM_MODIFIER_ALWAYS_SHOW = 32768; + +const DODM_MODIFIER_FULL_SCALE = 65536; + +const DODM_SHOW_OWNED_ALL_OVERLAYS = 73; + +const DODM_SHOW_FRIENDLY_ALL_OVERLAYS = 146; + +const DODM_SHOW_ENEMY_ALL_OVERLAYS = 292; + +const DODM_SHOW_ALL_INDICATORS = 7; + +const DODM_SHOW_ALL_HEALTHBAR = 56; + +const DODM_SHOW_ALL_SILHOUETTE = 448; + +const DODM_SHOW_EVERYTHING = 511; + +const EQ_MAX_LOAD_DEVICE = 15; + +const TG_EQP_POINT_MAX = 33; + +const CONTEXT_NOTIFY_ATTACK = 116959; + +const CONTEXT_NOTIFY_DEFEND = 116960; + +const CONTEXT_NOTIFY_BE_CAREFUL = 116961; + +const CONTEXT_NOTIFY_PING = 117584; + +const CONTEXT_NOTIFY_ENEMY = 117670; + +const CONTEXT_NOTIFY_MIA = 117676; + +const CONTEXT_NOTIFY_GANK = 117671; + +const CONTEXT_NOTIFY_HELP = 117672; + +const CONTEXT_NOTIFY_INCOMING = 117673; + +const CONTEXT_NOTIFY_RETREAT = 117674; + +const CONTEXT_NOTIFY_RETURNED = 117675; + +const CONTEXT_NOTIFY_SELF_ATTACK = 118524; + +const CONTEXT_NOTIFY_SELF_DEFEND = 118525; + +const CONTEXT_NOTIFY_SELF_GANK = 118526; + +const CONTEXT_NOTIFY_SELF_RETURNED = 118527; + +const CONTEXT_NOTIFY_SELF_RETREAT = 118528; + +const CONTEXT_NOTIFY_WARD_HERE = 122294; + +const ITEM_QUALITY_EPIC = 1162; + +const ITEM_QUALITY_RARE = 1163; + +const ITEM_QUALITY_UNCOMMON = 1164; + +const ITEM_QUALITY_COMMON = 1165; + +const VV_BOT_RANK_FAMILIAR = 10425; + +const VV_BOT_RANK_MINION = 10123; + +const VV_BOT_RANK_TOWER = 10127; + +const VV_BOT_RANK_GUARDIAN = 10124; + +const VV_BOT_RANK_PHOENIX = 10125; + +const VV_BOT_RANK_GOD = 10126; + +const VV_BOT_RANK_MONSTER = 10085; + +const VV_BOT_RANK_BUFFMONSTER = 10178; + +const VV_BOT_RANK_NEUTRAL_BOSS = 10270; + +const VV_BOT_RANK_DECOY = 10679; + +const VV_BOT_RANK_DEPLOYABLE = 10678; + +const VV_BOT_RANK_ELITE_MINION = 10787; + +const VV_BOT_RANK_SIEGE_WALL = 11104; + +const VV_BOT_RANK_TURRET = 15115; + +const TGPAWN_GENERIC_EFFECT_GROUP_SITUATIONAL_01 = 10693; + +const TGPAWN_GENERIC_EFFECT_GROUP_SITUATIONAL_02 = 10694; + +const TGPAWN_GENERIC_EFFECT_GROUP_SITUATIONAL_03 = 11080; + +const TGPAWN_GENERIC_EFFECT_GROUP_SITUATIONAL_04 = 11081; + +const TGPAWN_GENERIC_EFFECT_GROUP_SITUATIONAL_05 = 11082; + +const TGPAWN_GENERIC_EFFECT_GROUP_SITUATIONAL_06 = 11083; + +const EFFECT_GROUP_SITUATIONAL_BOOST = 10915; + +const TGPAWN_ON_LANDED = 15043; + +const TG_BACK_HIT_ANGLE = 120.0; + +const BOT_ID_BARIK_TURRET = 2151; + +const BOT_ID_YING_ILLUSION = 2273; + +const CHAMPION_ID_BARIK = 2073; + +const CHAMPION_ID_CASSIE = 2092; + +const CHAMPION_ID_EVIE = 2094; + +const CHAMPION_ID_FERNANDO = 2071; + +const CHAMPION_ID_GROHK = 2093; + +const CHAMPION_ID_BUCK = 2147; + +const CHAMPION_ID_PIP = 2056; + +const CHAMPION_ID_RUCKUS = 2149; + +const CHAMPION_ID_SKYE = 2057; + +const CHAMPION_ID_ANDROXUS = 2205; + +const CHAMPION_ID_GROVER = 2254; + +const CHAMPION_ID_KINESSA = 2249; + +const CHAMPION_ID_YING = 2267; + +const CHAMPION_ID_DROGOZ = 2277; + +const CHAMPION_ID_BOMBKING = 2281; + +const CHAMPION_ID_VIKTOR = 2285; + +const CHAMPION_ID_MAKOA = 2288; + +const CHAMPION_ID_MALDAMBA = 2303; + +const CHAMPION_ID_SHALIN = 2307; + +const CHAMPION_ID_TYRA = 2314; + +const CHAMPION_ID_MAEVE = 2338; + +const CHAMPION_ID_TORVALD = 2322; + +const CHAMPION_ID_INARA = 2348; + +const CHAMPION_ID_LEX = 2362; + +const CHAMPION_ID_ORACLE = 2372; + +const CHAMPION_ID_WILLO = 2393; + +const CHAMPION_ID_FLAK = 2404; + +const CHAMPION_ID_DARKLORD = 2420; + +const CHAMPION_ID_PRINCESS = 2417; + +const CHAMPION_ID_ASTRO = 2431; + +const CHAMPION_ID_OWL = 2438; + +const CHAMPION_ID_DEMON = 2472; + +const CHAMPION_ID_LAZARUS = 2477; + +const CHAMPION_ID_PVE_BARIK_TURRET1 = 2326; + +const CHAMPION_ID_PVE_BARIK_TURRET2 = 2337; + +const CHAMPION_ID_PVE_FERNANDO_SHIELD = 2331; + +const CHAMPION_ID_PVE_GROVER_HEALS = 2333; + +const CHAMPION_ID_PVE_MAKOA_ULT = 2324; + +const CHAMPION_ID_PVE_MAKOA_HOOK = 2245; + +const CHAMPION_ID_PVE_MAKOA_SPIN = 2243; + +const CHAMPION_ID_PVE_MAKOA_SHIELD = 2323; + +const CHAMPION_ID_PVE_PIP_HEALS = 2339; + +const CHAMPION_ID_PVE_VIKTOR_GRENADE1 = 2354; + +const CHAMPION_ID_PVE_VIKTOR_GRENADE2 = 2356; + +const CHAMPION_ID_PVE_VIKTOR_GRENADE3 = 2357; + +const CHAMPION_ID_PVE_TORVALD_ROOT1 = 2342; + +const CHAMPION_ID_PVE_TORVALD_ROOT2 = 2373; + +const CHAMPION_ID_PVE_FERNANDO_FB1 = 2328; + +const CHAMPION_ID_PVE_FERNANDO_FB2 = 2330; + +const CHAMPION_ID_PVE_FERNANDO_FB3 = 2329; + +const CHAMPION_ID_PVE_FERNANDO_FB4 = 2367; + +const CHAMPION_ID_PVE_BUCK_LEAP1 = 2352; + +const CHAMPION_ID_PVE_BUCK_LEAP2 = 2351; + +const CHAMPION_ID_PVE_BUCK_LEAP3 = 2366; + +const CHAMPION_ID_PVE_BUCK_NET1 = 2349; + +const CHAMPION_ID_PVE_BUCK_NET2 = 2353; + +const CHAMPION_ID_PVE_PIP_POLY1 = 2361; + +const CHAMPION_ID_PVE_SKYE_POISON = 2336; + +const STARTER_DECK_BARIK = 769; + +const STARTER_DECK_CASSIE = 770; + +const STARTER_DECK_EVIE = 772; + +const STARTER_DECK_FERNANDO = 771; + +const STARTER_DECK_GROHK = 773; + +const STARTER_DECK_BUCK = 774; + +const STARTER_DECK_PIP = 775; + +const STARTER_DECK_RUCKUS = 776; + +const STARTER_DECK_SKYE = 777; + +const STARTER_DECK_ANDROXUS = 783; + +const COMPLETE_DECK_BARIK = 757; + +const COMPLETE_DECK_CASSIE = 758; + +const COMPLETE_DECK_EVIE = 760; + +const COMPLETE_DECK_FERNANDO = 759; + +const COMPLETE_DECK_GROHK = 765; + +const COMPLETE_DECK_BUCK = 764; + +const COMPLETE_DECK_PIP = 761; + +const COMPLETE_DECK_RUCKUS = 762; + +const COMPLETE_DECK_SKYE = 763; + +const COMPLETE_DECK_ANDROXUS = 782; + +const COMPLETE_DECK_GROVER = 796; + +const COMPLETE_DECK_KINESSA = 793; + +const LOCAL_SILHOUETTE_RED = 1.0f; + +const LOCAL_SILHOUETTE_GREEN = 0.7f; + +const LOCAL_SILHOUETTE_BLUE = 0.1875f; + +const LOCAL_SILHOUETTE_ALPHA = 0.25f; + +const FRIENDLY_SILHOUETTE_RED = 0.0f; + +const FRIENDLY_SILHOUETTE_GREEN = 1.0f; + +const FRIENDLY_SILHOUETTE_BLUE = 1.0f; + +const FRIENDLY_SILHOUETTE_ALPHA = 0.25f; + +const ENEMY_SILHOUETTE_RED = 1.0f; + +const ENEMY_SILHOUETTE_GREEN = 0.0f; + +const ENEMY_SILHOUETTE_BLUE = 0.0f; + +const ENEMY_SILHOUETTE_ALPHA = 0.25f; + +const WALL_HACK_DIST_SQ = 64000000; + +const SIMPROJ_VECTOR_MUNGE_FACTOR = 100; + +enum INITIALIZEABLE_BOOL { + IBOOL_UNINITIALIZED, // 0 + IBOOL_FALSE, // 1 + IBOOL_TRUE, // 2 +}; + +enum GAME_WIN_STATE { + GWS_NONE, // 0 + GWS_TASKFORCE_TWO_WON, // 1 + GWS_TASKFORCE_ONE_WON, // 2 + GWS_TIE, // 3 +}; + +enum TG_GAME_TYPE { + TGT_UNSET, // 0 + TGT_CITY, // 1 + TGT_ARENA, // 2 + TGT_ARENA_PRACTICE, // 3 + TGT_ARENA_CAPTURE, // 4 + TGT_ARENA_ESCORT, // 5 + TGT_ARENA_ESCORT_PRACTICE, // 6 + TGT_BATTLE, // 7 + TGT_BATTLE_EXPERT, // 8 + TGT_BATTLE_PRACTICE, // 9 + TGT_BATTLE_JOUST, // 10 + TGT_BATTLE_CASUAL, // 11 + TGT_BATTLE_TRAINING, // 12 + TGT_BATTLE_ARAM, // 13 + TGT_BATTLE_ARAM_PRACTICE, // 14 + TGT_POINTCAPTURE, // 15 + TGT_DOMINATION, // 16 + TGT_SINGLEPOINTCAPTUREANDHOLD, // 17 + TGT_IDOL, // 18 + TGT_SIEGE, // 19 + TGT_BATTLE_TC, // 20 + TGT_BATTLE_SHOOTINGRANGE, // 21 + TGT_CHAOS, // 22 + TGT_CHAOS_PRACTICE, // 23 + TGT_CHAOSRACE, // 24 + TGT_CHAOS_PUSH, // 25 + TGT_CHAOS_PAYLOAD, // 26 + TGT_CHAOS_PAYLOAD_PRACTICE, // 27 + TGT_CHAOS_CAPTUREANDPAYLOAD, // 28 + TGT_CHAOS_CAPTUREANDPAYLOAD_PRACTICE, // 29 + TGT_CHAOS_CAPTUREPOINT, // 30 + TGT_CHAOS_CAPTUREPOINT_PRACTICE, // 31 + TGT_CHAOS_SURVIVAL, // 32 + TGT_CHAOS_SURVIVAL_PRACTICE, // 33 + TGT_CHAOS_SHOOTINGRANGE, // 34 + TGT_CHAOS_TUTORIAL, // 35 + TGT_CHAOS_PVE, // 36 + TGT_CHAOS_PVE_SURVIVAL, // 37 + TGT_CHAOS_TEAM_DEATH_MATCH, // 38 + TGT_CHAOS_ONSLAUGHT, // 39 +}; + +enum GameTimerState { + TGMTS_UNSET, // 0 + TGMTS_WAITING_FOR_PLAYERS, // 1 + TGMTS_SETUP, // 2 + TGMTS_MISSION_RUNNING, // 3 + TGMTS_MISSION_OVERTIME, // 4 + TGMTS_MISSION_COMPLETE, // 5 + TGMTS_MISSION_PAUSED, // 6 + TGMTS_CUSTOM, // 7 + TGMTS_ROUND_COMPLETE, // 8 +}; + +enum DeviceTargetMode { + TGDTM_Self, // 0 + TGDTM_Reticle, // 1 + TGDTM_Projectile, // 2 + TGDTM_AOE, // 3 + TGDTM_Ground, // 4 + TGDTM_Cone, // 5 + TGDTM_Linear, // 6 + TGDTM_LockOn, // 7 + TGDTM_SpawnPoint, // 8 + TGDTM_WorldMap, // 9 + TGDTM_ReticleFindSpot, // 10 +}; + +enum DAMAGE_INFO_TYPE { + DIT_None, // 0 + DIT_Death, // 1 + DIT_Damage, // 2 + DIT_Status, // 3 + DIT_Healing, // 4 + DIT_ManaBurn, // 5 + DIT_ManaRestore, // 6 + DIT_Objective, // 7 + DIT_Experience, // 8 + DIT_Currency, // 9 + DIT_Level, // 10 + DIT_CritDamage, // 11 + DIT_HeadShot, // 12 + DIT_Backstab, // 13 + DIT_KillingBlow, // 14 + DIT_Assist, // 15 + DIT_KillingBlowWrath, // 16 + DIT_ShieldDamage, // 17 +}; + +enum ITEM_EVENT_TYPE { + IET_None, // 0 + IET_CastStart, // 1 + IET_CastComplete, // 2 + IET_CastInterrupt, // 3 + IET_ItemPurchase, // 4 + IET_ItemSell, // 5 + IET_AbilityPurchase, // 6 +}; + +enum PLAYER_COMBAT_EVENT_TYPE { + PCET_None, // 0 + PCET_Spawn, // 1 +}; + +enum TgMapTeam { + MAPTEAM_1, // 0 + MAPTEAM_2, // 1 + MAPTEAM_NEUTRAL, // 2 +}; + +enum MiniMapEntityType { + MMap_LocalSpectator, // 0 + MMap_LocalPlayer, // 1 + MMap_Player, // 2 + MMap_Bot, // 3 + MMap_Factory, // 4 + MMap_Deployable, // 5 + MMap_CapturePoint, // 6 + MMap_ChaosCapturePoint, // 7 +}; + +enum ETargetingLineStyle { + TLS_None, // 0 +}; + +enum ETargetingPreviewStyle { + TPS_None, // 0 +}; + +enum ETargetingReticleStyle { + TRS_None, // 0 +}; + +enum ETargetingHighlightStyle { + THS_None, // 0 + THS_Highlight, // 1 + THS_HighlightAndMark, // 2 + THS_HighlightAndBracket, // 3 + THS_HighlightAndBracketWorld, // 4 +}; + +enum AlertPriority { + APT_Minimal, // 0 + APT_Normal, // 1 + APT_High, // 2 + APT_Critical, // 3 +}; + +enum AlertType { + ATT_Regular, // 0 + ATT_Beneficial, // 1 + ATT_Detrimental, // 2 + ATT_Spectator, // 3 + ATT_Important, // 4 +}; + +enum OverlayType { + OT_UNKNOWN, // 0 + OT_LOCALPLAYER, // 1 + OT_PLAYER, // 2 + OT_DEPLOYABLE, // 3 +}; + +enum MinimapFactoryType { + MMF_None, // 0 + MMF_Speed, // 1 + MMF_Damage, // 2 + MMF_Protection, // 3 + MMF_Mana, // 4 + MMF_Cooldown, // 5 + MMF_HealthRegen, // 6 + MMF_BonusMinions, // 7 + MMF_Tower, // 8 + MMF_Phoenix, // 9 + MMF_CapturePoint, // 10 + MMF_MinorSpawn, // 11 + MMF_GoldFury, // 12 + MMF_SiegeSpawner, // 13 +}; + +enum DeployableOverlayIcon { + DOI_BLANK, // 0 + DOI_TURRET, // 1 + DOI_GRUMPY_BOMB, // 2 + DOI_ILLUSION, // 3 + DOI_ILLUSION_ULT, // 4 + DOI_TIME_BOMB, // 5 + DOI_POPPY_BOMB, // 6 + DOI_MEGA_TURRET, // 7 + DOI_OPPRESSOR_MINE, // 8 + DOI_STICKY_BOMB, // 9 + DOI_FRAG_GRENADE, // 10 + DOI_DYNAMIC, // 11 + DOI_DARK_CONVERGENCE, // 12 + DOI_SEEDLING, // 13 +}; + +enum DeployableOverlayState { + DOS_IDLE, // 0 + DOS_ACTIVE, // 1 + DOS_FINISHED, // 2 +}; + +enum ENPCVoices { + NPCVOICE_VendorMale01, // 0 + NPCVOICE_VendorMale02, // 1 + NPCVOICE_VendorMale03, // 2 + NPCVOICE_VendorMale04, // 3 + NPCVOICE_VendorMale05, // 4 + NPCVOICE_VendorMale06, // 5 + NPCVOICE_VendorMale07, // 6 + NPCVOICE_VendorMale08, // 7 + NPCVOICE_VendorMale09, // 8 + NPCVOICE_VendorMale10, // 9 + NPCVOICE_VendorFemale01, // 10 + NPCVOICE_VendorFemale02, // 11 + NPCVOICE_VendorFemale03, // 12 + NPCVOICE_VendorFemale04, // 13 + NPCVOICE_VendorFemale05, // 14 + NPCVOICE_VendorFemale06, // 15 + NPCVOICE_VendorFemale07, // 16 + NPCVOICE_VendorFemale08, // 17 + NPCVOICE_VendorFemale09, // 18 + NPCVOICE_VendorFemale10, // 19 +}; + +enum TgSupportedAspectRatios { + TgAR_4x3, // 0 + TgAR_5x4, // 1 + TgAR_16x9, // 2 + TgAR_16x10, // 3 + TgAR_Other, // 4 +}; + +enum eTutorialForceableElements { + ETBUI_Skills, // 0 + ETBUI_ItemShop, // 1 + ETBUI_ItemShopButton, // 2 + ETBUI_Intro, // 3 + ETBUI_ItemShopWalkthrough, // 4 + ETBUI_ActiveItems, // 5 + ETBUI_ConsumableItems, // 6 + ETBUI_Escape, // 7 +}; + +enum TG_EQUIP_POINT { + EQP_NONE, // 0 + EQP_AUTO, // 1 + EQP_OFFHAND_1, // 2 + EQP_OFFHAND_2, // 3 + EQP_OFFHAND_3, // 4 + EQP_CARD_1, // 5 + EQP_RECALL, // 6 + EQP_EMOTE, // 7 + EQP_BURN_CARD_1, // 8 + EQP_BURN_CARD_2, // 9 + EQP_BURN_CARD_3, // 10 + EQP_BURN_CARD_4, // 11 + EQP_SUPPORT_2, // 12 + EQP_REGEN, // 13 + EQP_EXHAUSTED, // 14 + EQP_ULT_CHARGE, // 15 + EQP_ALT_FIRE, // 16 + EQP_UNUSED_7, // 17 + EQP_SUPPORT, // 18 + EQP_CARD_2, // 19 + EQP_CARD_3, // 20 + EQP_CARD_4, // 21 + EQP_CARD_5, // 22 + EQP_MOUNT, // 23 + EQP_COMBO, // 24 + EQP_MVPPOSE, // 25 + EQP_TALENT, // 26 + EQP_ITEM_STORE_9, // 27 + EQP_ITEM_STORE_10, // 28 + EQP_ITEM_STORE_11, // 29 + EQP_ITEM_STORE_12, // 30 + EQP_ITEM_STORE_13, // 31 + EQP_ITEM_STORE_14, // 32 +}; + +enum EDeviceFailType { + DFT_None, // 0 + DFT_Unspecified, // 1 + DFT_Custom, // 2 + DFT_NotEnoughPower, // 3 + DFT_OnCooldown, // 4 + DFT_CannotPlace, // 5 + DFT_Stunned, // 6 + DFT_Silenced, // 7 + DFT_Disarmed, // 8 + DFT_Crippled, // 9 + DFT_FireLockout, // 10 + DFT_InCombat, // 11 + DFT_FullHealth, // 12 + DFT_NotOnGround, // 13 + DFT_NoAmmo, // 14 + DFT_TransitioningTo1p, // 15 +}; + +enum EUISettingUpdate { + UISU_All, // 0 + UISU_AudioVideo, // 1 + UISU_Interface, // 2 + UISU_Control, // 3 + UISU_Targeting, // 4 + UISU_Gamepad, // 5 +}; + +enum PING_TYPE { + PT_NORMAL, // 0 + PT_NORMAL_ENEMY, // 1 + PT_RETREAT, // 2 + PT_RETREAT_ENEMY, // 3 + PT_ALERT, // 4 + PT_ALERT_ENEMY, // 5 + PT_SENTINEL, // 6 + PT_SENTINEL_ENEMY, // 7 + PT_ALERT_SILENT, // 8 +}; + +enum RecoilHitDir { + RECOIL_DIR_FromFront, // 0 + RECOIL_DIR_FromBack, // 1 + RECOIL_DIR_FromLeft, // 2 + RECOIL_DIR_FromRight, // 3 +}; + +enum HitReactionMoveType { + HIT_MOVE_TYPE_ALL, // 0 + HIT_MOVE_TYPE_IDLE, // 1 + HIT_MOVE_TYPE_MOVING, // 2 +}; + +enum GOD_PANTHEON { + PANTHEON_None, // 0 + PANTHEON_Egyptian, // 1 + PANTHEON_Norse, // 2 + PANTHEON_Greek, // 3 + PANTHEON_Roman, // 4 + PANTHEON_Chinese, // 5 + PANTHEON_Mayan, // 6 + PANTHEON_Hindu, // 7 +}; + +enum ERewardValueType { + RVT_None, // 0 + RVT_Initial, // 1 + RVT_Spool, // 2 + RVT_Kill, // 3 + RVT_Assist, // 4 + RVT_Taken, // 5 + RVT_Healing, // 6 + RVT_Mitigated, // 7 + RVT_Damage, // 8 + RVT_Objective, // 9 + RVT_Captured, // 10 + RVT_Capturing, // 11 + RVT_Contesting, // 12 + RVT_Destroyed, // 13 + RVT_PushingPayload, // 14 + RVT_ContestingPayload, // 15 + RVT_RoundWon, // 16 + RVT_SuccessfulDefense, // 17 + RVT_SuccessfulPush, // 18 + RVT_Cheat, // 19 + RVT_Bounty, // 20 +}; + +enum EPurchaseFailure { + TGPF_None, // 0 + TGPF_UnknownItem, // 1 + TGPF_UnavailableItem, // 2 + TGPF_UnknownOwner, // 3 + TGPF_NotEnoughCurrency, // 4 + TGPF_AtStackLimit, // 5 + TGPF_AlreadyPurchased, // 6 + TGPF_NoAvailableSlots, // 7 + TGPF_InvalidUpgrade, // 8 + TGPF_CannotSell, // 9 + TGPF_CannotSellInUse, // 10 + TGPF_Unknown, // 11 +}; + +enum EReticuleType { + RETICULE_None, // 0 + RETICULE_Circle, // 1 + RETICULE_Drop, // 2 + RETICULE_Precise, // 3 + RETICULE_Wide, // 4 + RETICULE_Chain, // 5 + RETICULE_ShaLin, // 6 + RETICULE_Cross, // 7 + RETICULE_Maeve, // 8 +}; + +enum EAbilityInfoSlot { + SLOT_Ability1, // 0 + SLOT_Ability2, // 1 + SLOT_Ability3, // 2 + SLOT_Perk1, // 3 + SLOT_Perk2, // 4 + SLOT_Perk3, // 5 + SLOT_Perk4, // 6 + SLOT_Perk5, // 7 + SLOT_Perk6, // 8 + SLOT_Perk7, // 9 + SLOT_Perk8, // 10 + SLOT_Perk9, // 11 + SLOT_Perk10, // 12 + SLOT_Perk11, // 13 + SLOT_Perk12, // 14 + SLOT_Perk13, // 15 + SLOT_Perk14, // 16 +}; + +enum ECardOwner { + CARDOWNER_NONE, // 0 + CARDOWNER_FREE, // 1 + CARDOWNER_SELF, // 2 + CARDOWNER_TEAM, // 3 +}; + +enum EUITargetingType { + UITARGETING_None, // 0 + UITARGETING_PendingRocketLockOn, // 1 + UITARGETING_RocketLockOn, // 2 +}; + +enum ELanePusherActionPoint { + LPAP_None, // 0 + LPAP_OuterWall, // 1 + LPAP_InnerWall, // 2 + LPAP_BaseObjective, // 3 + LPAP_Checkpoint1, // 4 + LPAP_Checkpoint2, // 5 + LPAP_Goal, // 6 + LPAP_PayloadBegin, // 7 +}; + +enum ELobbyAnimState { + LobbyAnimState_None, // 0 + LobbyAnimState_Intro, // 1 + LobbyAnimState_Emote, // 2 + LobbyAnimState_MVP, // 3 +}; + +enum EMountType { + MOUNT_None, // 0 + MOUNT_Horse, // 1 + MOUNT_HorseTest, // 2 +}; + +enum EGameEnvironmentRule { + GameEnvRule_Normal, // 0 + GameEnvRule_Chill, // 1 + GameEnvRule_Foggy, // 2 + GameEnvRule_HeatWave, // 3 +}; + +enum EGameRespawnRule { + GameRespawnRule_Normal, // 0 + GameRespawnRule_Phoenix, // 1 + GameRespawnRule_GrimReaper, // 2 +}; + +enum EGameMode { + GameMode_Siege, // 0 + GameMode_Survival, // 1 + GameMode_CapturePoint, // 2 +}; + +enum EPolymorphType { + Polymorph_None, // 0 + Polymorph_Chicken, // 1 +}; + +enum EPetPhase { + PETPHASE_Default, // 0 + PETPHASE_CodeOverride, // 1 + PETPHASE_Heel, // 2 + PETPHASE_Follow, // 3 + PETPHASE_Guard, // 4 +}; + +enum EPetPosition { + PETPOS_Default, // 0 + PETPOS_Front, // 1 + PETPOS_FrontRight, // 2 + PETPOS_Right, // 3 + PETPOS_BackRight, // 4 + PETPOS_Back, // 5 + PETPOS_BackLeft, // 6 + PETPOS_Left, // 7 + PETPOS_FrontLeft, // 8 +}; + +enum EPlayOfTheGameEventType { + POTG_ScoreKill, // 0 + POTG_ScoreAssist, // 1 + POTG_MovementAbility, // 2 + POTG_OvertimeStarted, // 3 + POTG_Died, // 4 + POTG_RoundEnded, // 5 + POTG_Healing, // 6 + POTG_HealingSelf, // 7 + POTG_Damage, // 8 + POTG_EnvironmentKill, // 9 + POTG_Shielding, // 10 + POTG_DamagePrevented, // 11 + POTG_DamagePreventedSelf, // 12 + POTG_HeadShot, // 13 + POTG_ContestTime, // 14 + POTG_ObjectiveTime, // 15 + POTG_CrowdControlSoft, // 16 + POTG_CrowdControlHard, // 17 +}; + +enum EThreatLevel { + ThreatLevel_Invalid, // 0 + ThreatLevel_None, // 1 + ThreatLevel_Low, // 2 + ThreatLevel_Medium, // 3 + ThreatLevel_High, // 4 +}; + +enum EPedestalType { + PEDESTAL_FrontLine, // 0 + PEDESTAL_Flank, // 1 + PEDESTAL_Support, // 2 + PEDESTAL_Damager, // 3 +}; + +enum EModelHighlightType { + HIGHLIGHT_None, // 0 + HIGHLIGHT_Body, // 1 + HIGHLIGHT_Head, // 2 + HIGHLIGHT_Weapon, // 3 +}; + +enum EWeaponMeshSwapRetrieveStrategy { + WMSRS_None, // 0 + WMSRS_Normal, // 1 + WMSRS_PostFire, // 2 +}; + +enum EDamageLocationType { + DamageLocationType_None, // 0 + DamageLocationType_Torso, // 1 + DamageLocationType_LLeg, // 2 + DamageLocationType_RLeg, // 3 + DamageLocationType_LArm, // 4 + DamageLocationType_RArm, // 5 + DamageLocationType_Head, // 6 +}; + +struct EquipDeviceInfo { + var int nDeviceId; + var int nDeviceInstanceId; + var int nMode; + structdefaultproperties {} +}; + +struct AimData { + var Vector StartTrace; + var Vector EndTrace; + var Vector AimVector; + var Actor HitActor; + var float ClientMovementTimeStamp; + var bool bResult; + structdefaultproperties {} +}; + +struct ObjectiveMICInfo { + var int MyTeam; + var float AmountFilled; + var int ObjStatus; + var int IsContested; + var int Flip; + structdefaultproperties {} +}; + +struct MeshAssets { + var () string m_sSkeletalMesh; + var () string m_sPhysicsAsset; + var () string m_sAnimTreeTemplate; + var () string m_sAnimSets; + structdefaultproperties {} +}; + +struct RewardInfo { + var const int RequestedReward; + var int BoostReward; + var int ActualReward; + var int ActualRewardAccum; + var int BoostRewardAccum; + var int ErrorMessage; + structdefaultproperties {} +}; + +struct DateTimeWrapper { + var QWord qTime; + structdefaultproperties {} +}; + +struct TG_HUD_INFO { + var bool bEnemy; + var bool bShowNameplate; + var bool bShowOverlays; + var bool bIsTargeted; + var bool bLocalPlayerHasLOS; + structdefaultproperties {} +}; + +struct ScoreKillData { + var Controller Killer; + var TgRepInfo_Player KillerPRI; + var TgPawn KillerPawn; + var Pointer KillerBotAssembly; + var bool bKillerIsGod; + var bool bKillerIsMinion; + var bool bKillerIsTower; + var Controller Victim; + var TgPawn VictimPawn; + var TgRepInfo_Player VictimPRI; + var TgRepInfo_TaskForce VictimTaskForce; + var Pointer VictimBotAssembly; + var bool VictimCanScore; + var bool bVictimIsGod; + var bool bVictimIsMinion; + var bool bVictimIsTower; + var Controller Scorer; + var TgPawn ScorerPawn; + var TgRepInfo_Player ScorerPRI; + var TgRepInfo_TaskForce ScorerTaskForce; + var bool ScorerCanScore; + var bool bSuicide; + var init array AssistingPlayers; + structdefaultproperties {} +}; + +struct OffhandAnimation { + var name m_OffhandUseType; + var () name m_AnimName; + var () bool m_bFullBody; + structdefaultproperties {} +}; + +struct sPingInfo { + var TgRepInfo_Player pingedPri; + var float fStartTime; + var Vector vPingedLoc; + var bool bPinging; + var TgObject.PING_TYPE eType; + structdefaultproperties {} +}; + +struct ExtraDamageInfo { + var bool bCritical; + var bool bHeadShot; + var bool bKillingBlow; + var bool bCombo; + var bool bLatent; + var bool bMarked; + var bool bNoInstigator; + structdefaultproperties {} +}; + +struct OnDamagedParams { + var TgPawn attacker; + var TgDevice Dev; + var TgEffectGroup eg; + var ImpactInfo Impact; + var float fBuffedDamage; + var float fMitigatedDamage; + var float fPreDamageHealth; + var ExtraDamageInfo ExtraInfo; + var int nPropertyId; + structdefaultproperties {} +}; + +struct OnHealedParams { + var TgPawn Healer; + var TgDevice Dev; + var TgEffectGroup eg; + var ImpactInfo Impact; + var float fHealAmount; + var float fHealthChange; + var int nPropertyId; + var bool bPlayCameraHealEffect; + structdefaultproperties {} +}; + +struct AdjustDamageParams { + var TgDevice Dev; + var ImpactInfo Impact; + var float fBaseDamage; + var int nPropertyId; + var bool bCritical; + structdefaultproperties {} +}; + +struct AdjustHealParams { + var TgDevice Dev; + var ImpactInfo Impact; + var float fBaseHeal; + var int nPropertyId; + structdefaultproperties {} +}; + +struct ChargeHitInfo { + var Actor HitActor; + var float TimeStamp; + structdefaultproperties {} +}; + +struct TgAbilityInfo { + var int DeviceIds[EAbilityInfoSlot]; + structdefaultproperties {} +}; + +struct CardInfo { + var int Id; + var int Count; + var int Owner; + var init string sOwner; + structdefaultproperties {} +}; + +struct WeaponMeshSwapStrategy { + var bool bPlayPutAway; + var TgObject.EWeaponMeshSwapRetrieveStrategy RetrieveStrategy; + var bool bClearEquipPoint; + structdefaultproperties {} +}; + +event IsFriendlyWithLocalPawn() { } + +event SortDamageDisplay() { } + +event InitializeDefaultProps() { } + +event SetTaskForceNumber() { } + +event StartFire() { } + +native function TgPlayerController ScriptGetLocalTGPlayerController(); // Export UTgObject::execScriptGetLocalTGPlayerController(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgObjectReferencer.uc b/Development/Src/TgGame/Classes/TgObjectReferencer.uc new file mode 100644 index 0000000..b402cc4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgObjectReferencer.uc @@ -0,0 +1,5 @@ +class TgObjectReferencer extends ObjectReferencer + native + config(Engine); + +var private native Pointer m_Manifest; diff --git a/Development/Src/TgGame/Classes/TgObjective.uc b/Development/Src/TgGame/Classes/TgObjective.uc old mode 100755 new mode 100644 index 697de47..dbf4079 --- a/Development/Src/TgGame/Classes/TgObjective.uc +++ b/Development/Src/TgGame/Classes/TgObjective.uc @@ -1,4 +1,63 @@ -class TgObjective extends Actor - native(Game) - placeable - hidecategories(Navigation); \ No newline at end of file +class TgObjective extends Actor + native(Game) + placeable + hidecategories(Navigation) + config(Engine); + +const OBJECTIVE_NEUTRAL_SPECIALFX = 2954; + +const OBJECTIVE_FRIENDLY_SPECIALFX = 2929; + +const OBJECTIVE_ENEMY_SPECIALFX = 2928; + +const OBJECTIVE_PENDING_SPECIALFX = 2930; + +const OBJECTIVE_NEUTRAL_FOREGROUND_SPECIALFX = 6286; + +const OBJECTIVE_FRIENDLY_FOREGROUND_SPECIALFX = 6289; + +const OBJECTIVE_ENEMY_FOREGROUND_SPECIALFX = 6287; + +const OBJECTIVE_PENDING_FOREGROUND_SPECIALFX = 6288; + +const MIN_CAPTURE_FX_RENDER_DISTANCE = 750; + +enum EObjectiveStatus { + Status_Inactive, // 0 + Status_Active, // 1 + Status_PendingActive, // 2 +}; + +var byte r_nDefenderTaskForceIndex; +var byte r_nControllingTaskForceIndex; +var repnotify byte r_nContestingTaskForceIndex; +var repnotify TgObjective.EObjectiveStatus r_eStatus; +var TgSpecialFx m_InWordIndicatorFX; +var TgSpecialFx m_ForegroundIndicatorFX; +var () int m_nActiveAlertId; +var () int m_nPendingActiveAlertId; +var () int m_nInactiveAlertId; +var () int m_nWaypointMessageOverride; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_eStatus, r_nContestingTaskForceIndex, r_nControllingTaskForceIndex, r_nDefenderTaskForceIndex; +} + +simulated event ReplicatedEvent(name VarName) { } + +native function SetStatus(TgObjective.EObjectiveStatus NewStatus); // Export UTgObjective::execSetStatus(FFrame&, void* const) + +simulated event OnSetStatus() { } + +simulated event OnContestedStatusChanged() { } + +defaultproperties +{ + Components[0]=none + RemoteRole=ROLE_SimulatedProxy + bNoDelete=true + bAlwaysRelevant=true + bOnlyDirtyReplication=true + NetPriority=2.0000000 + SupportedEvents=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgObjectiveVolume.uc b/Development/Src/TgGame/Classes/TgObjectiveVolume.uc new file mode 100644 index 0000000..58872de --- /dev/null +++ b/Development/Src/TgGame/Classes/TgObjectiveVolume.uc @@ -0,0 +1,17 @@ +class TgObjectiveVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +native function bool IsObjective(Actor Other); // Export UTgObjectiveVolume::execIsObjective(FFrame&, void* const) + +native function SetCurrentObjective(Actor Other); // Export UTgObjectiveVolume::execSetCurrentObjective(FFrame&, void* const) + +native function ClearCurrentObjective(); // Export UTgObjectiveVolume::execClearCurrentObjective(FFrame&, void* const) + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgObserver_ViewTargetChanged.uc b/Development/Src/TgGame/Classes/TgObserver_ViewTargetChanged.uc new file mode 100644 index 0000000..e7d383f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgObserver_ViewTargetChanged.uc @@ -0,0 +1,3 @@ +interface TgObserver_ViewTargetChanged extends Interface; + +function OnViewTargetChanged(optional Actor aNewViewTarget); // Export UTgObserver_ViewTargetChanged::execOnViewTargetChanged(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgOnlineGameSettings.uc b/Development/Src/TgGame/Classes/TgOnlineGameSettings.uc new file mode 100644 index 0000000..173467a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgOnlineGameSettings.uc @@ -0,0 +1,7 @@ +class TgOnlineGameSettings extends OnlineGameSettings + config(Engine); + +defaultproperties +{ + NumPublicConnections=10 +} diff --git a/Development/Src/TgGame/Classes/TgOverviewCameraActor.uc b/Development/Src/TgGame/Classes/TgOverviewCameraActor.uc new file mode 100644 index 0000000..d07d93f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgOverviewCameraActor.uc @@ -0,0 +1,6 @@ +class TgOverviewCameraActor extends CameraActor + native(View) + hidecategories(Navigation) + config(Engine); + +var () bool m_bFlipped; diff --git a/Development/Src/TgGame/Classes/TgPaladinsController.uc b/Development/Src/TgGame/Classes/TgPaladinsController.uc old mode 100755 new mode 100644 index 87eb056..5f7c7d8 --- a/Development/Src/TgGame/Classes/TgPaladinsController.uc +++ b/Development/Src/TgGame/Classes/TgPaladinsController.uc @@ -1 +1,18 @@ -interface TgPaladinsController extends Interface; \ No newline at end of file +interface TgPaladinsController extends Interface + dependson(TgObject); + +function int GetCredits(); + +function SetCredits(int nCreditsAmount); + +function ResetUlt(); + +function SetRewardValues(int XP, int Currency, Actor Source, TgObject.ERewardValueType RewardType, optional bool bFlankKill=false); // Export UTgPaladinsController::execSetRewardValues(FFrame&, void* const) + +function LiveRespawn(bool bResetHealth, bool bResetDevices); + +event Revive(); + +function TgPawn GetTgPawn(); + +function int GetTaskForceNumber(); // Export UTgPaladinsController::execGetTaskForceNumber(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgParticleModuleTypeDataLight.uc b/Development/Src/TgGame/Classes/TgParticleModuleTypeDataLight.uc new file mode 100644 index 0000000..b5bc058 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgParticleModuleTypeDataLight.uc @@ -0,0 +1,12 @@ +class TgParticleModuleTypeDataLight extends ParticleModuleTypeDataBase + native(FX) + editinlinenew + collapsecategories + hidecategories(Object,Object,Object) + config(Engine); + +var (TgLight) export editinline PointLightComponent m_PointLightComponent; +var export editinline PointLightComponent m_PLCDuplicate; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgParticleSystemComponent.uc b/Development/Src/TgGame/Classes/TgParticleSystemComponent.uc new file mode 100644 index 0000000..94c16d9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgParticleSystemComponent.uc @@ -0,0 +1,13 @@ +class TgParticleSystemComponent extends ParticleSystemComponent + native + editinlinenew + hidecategories(Object,Physics,Collision) + config(Engine); + +var () export editinline SkeletalMeshComponent m_AttachedToSkelMesh; +var bool m_bReenableAfterTeleport; + +defaultproperties +{ + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgPathPreviewActor.uc b/Development/Src/TgGame/Classes/TgPathPreviewActor.uc new file mode 100644 index 0000000..0d17b7b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPathPreviewActor.uc @@ -0,0 +1,21 @@ +class TgPathPreviewActor extends Actor + native(Navigation) + placeable + hidecategories(Navigation) + implements(Interface_NavigationHandle) + config(Engine); + +var () TgPathPreviewActor m_Destination; +var TgPathPreviewActor m_Source; +var HavokNavigationHandle m_NavigationHandle; +var () editinline NavMeshPathParams m_NavMeshPathParams; + +event NotifyPathChanged() { } + +defaultproperties +{ + m_NavMeshPathParams=(bCanMantle=false,bNeedsMantleValidityTest=false,bAbleToSearch=true,SearchExtent=(X=50.0000000,Y=50.0000000,Z=100.0000000),SearchLaneMultiplier=0.0000000,SearchStart=(X=0.0000000,Y=0.0000000,Z=0.0000000),MaxDropHeight=500.0000000,MinWalkableZ=0.7000000,MaxHoverDistance=10.0000000,MaxPathLength=0.0000000) + Components[0]=none + Components[1]=none + bUpdateHavokPos=true +} diff --git a/Development/Src/TgGame/Classes/TgPathPreviewRenderingComponent.uc b/Development/Src/TgGame/Classes/TgPathPreviewRenderingComponent.uc new file mode 100644 index 0000000..e984573 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPathPreviewRenderingComponent.uc @@ -0,0 +1,10 @@ +class TgPathPreviewRenderingComponent extends PrimitiveComponent + native(Navigation) + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgPathfinder.uc b/Development/Src/TgGame/Classes/TgPathfinder.uc new file mode 100644 index 0000000..5e6bf86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPathfinder.uc @@ -0,0 +1,43 @@ +class TgPathfinder extends Actor + native(Navigation) + notplaceable + hidecategories(Navigation) + implements(Interface_NavigationHandle) + config(Engine); + +var () float m_fMaxSpeed; +var init array m_vWaypoints; +var float m_fPathCheckRadius; +var HavokNavigationHandle m_NavigationHandle; +var SplineActor m_Spline; +var SplineActor m_CurrentSpline; +var float m_fCurrentSplineDist; +var () editinline NavMeshPathParams m_NavMeshPathParams; +var array m_ActiveWalkers; +var float m_WalkerLifeSpan; + +delegate OnFinishedPathing(TgPathfinder Pathfinder); + +native function bool SetRouteTo(Actor destActor, optional bool bDrawDebugPath=false); // Export UTgPathfinder::execSetRouteTo(FFrame&, void* const) + +event NotifyPathChanged() { } + +simulated function SetupPathProperties(float PathCheckRadius, float PathSpeed) { } + +simulated event Destroyed() { } + +function StartWalkerStream(float StreamTime, float WalkerPulseTime, float WalkerLifetime, float WalkerSpeed) { } + +function StopWalkerStream() { } + +function SpawnWalker() { } + +function OnPathfinderWalkerFinishedPathing(TgPathfinderWalker Walker) { } + +defaultproperties +{ + m_fMaxSpeed=200.0000000 + m_NavMeshPathParams=(bCanMantle=false,bNeedsMantleValidityTest=false,bAbleToSearch=true,SearchExtent=(X=50.0000000,Y=50.0000000,Z=100.0000000),SearchLaneMultiplier=0.0000000,SearchStart=(X=0.0000000,Y=0.0000000,Z=0.0000000),MaxDropHeight=500.0000000,MinWalkableZ=0.7000000,MaxHoverDistance=10.0000000,MaxPathLength=0.0000000) + Physics=PHYS_Custom + bUpdateHavokPos=true +} diff --git a/Development/Src/TgGame/Classes/TgPathfinderWalker.uc b/Development/Src/TgGame/Classes/TgPathfinderWalker.uc new file mode 100644 index 0000000..bc3b313 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPathfinderWalker.uc @@ -0,0 +1,20 @@ +class TgPathfinderWalker extends Actor + native(Navigation) + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPathfinder m_Pathfinder; +var SplineActor m_CurrentSpline; +var float m_fCurrentSplineDist; + +delegate OnFinishedPathing(TgPathfinderWalker PathfinderWalker); + +native function SetPathfinder(TgPathfinder Pathfinder); // Export UTgPathfinderWalker::execSetPathfinder(FFrame&, void* const) + +function Destroyed() { } + +defaultproperties +{ + Physics=PHYS_Custom +} diff --git a/Development/Src/TgGame/Classes/TgPawn.uc b/Development/Src/TgGame/Classes/TgPawn.uc old mode 100755 new mode 100644 index f1c5ddb..8a93175 --- a/Development/Src/TgGame/Classes/TgPawn.uc +++ b/Development/Src/TgGame/Classes/TgPawn.uc @@ -1,112 +1,3101 @@ -class TgPawn extends GamePawn - abstract - native(Pawns) - nativereplication - config(Game) - hidecategories(Navigation); - //implements(TgSkinnableInterface,TgCombatActor,TgGrabSource,TgObserver_ViewTargetChanged,TgInteractiveAudio,TgSoundNotifyActorInterface,TgCallbackInterface); - -enum TG_POSTURE -{ - TG_POSTURE_DEFAULT, - TG_POSTURE_REST, - TG_POSTURE_FUSSY, - TG_POSTURE_INTRO, - TG_POSTURE_ENRAGED, - TG_POSTURE_PATROL, - TG_POSTURE_GENERICFIRE1, - TG_POSTURE_GENERICFIRE2, - TG_POSTURE_GENERICFIRE3, - TG_POSTURE_DEAD, - TG_POSTURE_SEARCHING, - TG_POSTURE_FALLING, - TG_POSTURE_MOUNT, - TG_POSTURE_STASIS, - TG_POSTURE_KNOCKBACK, - TG_POSTURE_MESMERIZE, - TG_POSTURE_DISARMED, - TG_POSTURE_SCARED, - TG_POSTURE_STUNNED, - TG_POSTURE_PULLED, - TG_POSTURE_FEARLIFT, - TG_POSTURE_SHOOTWHILEPULL, - TG_POSTURE_NONE -}; - -var bool m_bAirAccuracyPenalty; -var bool r_bIsInStasis; -var repnotify bool r_bIsMounted; - -var repnotify int r_nMountSkinId; -var int r_nVoicePackId; - -var int r_nPawnId; -var TgPawn r_Owner; - -var float r_fReconnectTime; - -var bool m_bInitialized; -var bool m_bIsInvisibleToAI; -var bool r_bIsBot; -var bool s_bInvisibleToPets; -var bool s_bCanSeePets; - -// Export UTgPawn::execGetHealth(FFrame&, void* const) -native function float GetHealth(); - -// Export UTgPawn::execGetMaxHealth(FFrame&, void* const) -native function float GetMaxHealth(); - -// Export UTgPawn::execSetTaskForceNumber(FFrame&, void* const) -native function SetTaskForceNumber(int nTaskForce); - -// Export UTgPawn::execGetTaskForceNumber(FFrame&, void* const) -native function byte GetTaskForceNumber(); - -// Export UTgPawn::execSetProperty(FFrame&, void* const) -native function SetProperty(int nPropIndex, float fNewValue); - -native function float GetEnergy(); - -// Export UTgPawn::execGetPropIndex(FFrame&, void* const) -native function int GetPropIndex(int nPropId); - -// Export UTgPawn::execGetDeviceByEqPoint(FFrame&, void* const) -native function TgDevice GetDeviceByEqPoint(int eEqPoint); - -// Export UTgPawn::execPostPawnSetupServer(FFrame&, void* const) -native function PostPawnSetupServer(); - -simulated event bool PostPawnSetup(){} - -// Export UTgPawn::execApplyPawnSetup(FFrame&, void* const) -native function bool ApplyPawnSetup(); - -// Export UTgPawn::execMySpawnGatesAreOpen(FFrame&, void* const) -native function bool MySpawnGatesAreOpen(); - -// Export UTgPawn::execFlashCooldown(FFrame&, void* const) -native function FlashCooldown(int nDeviceInstanceId, int nFireModeNum); - -// Export UTgPawn::execIsTalentEquipped(FFrame&, void* const) -native function bool IsTalentEquipped(int nTalentDeviceId); - -// Export UTgPawn::execGetDeviceByInstanceId(FFrame&, void* const) -native function TgDevice GetDeviceByInstanceId(int nDeviceInstanceId); - -// Export UTgPawn::execGetDeviceById(FFrame&, void* const) -native function TgDevice GetDeviceById(int nDeviceId); - - -//simulated event Destroyed(){} -function LiveRespawn(bool bResetHealth, bool bResetDevices){} -simulated function SetMountOnRespawn(){} -event bool ShouldRecharge(){} -simulated event HandleClientPostPawnSetup(){} -simulated event AutoMount(bool bShouldBeMounted, optional bool bToggleMount = false){} - -simulated function PlayMountingEffects(bool bPlayMountAnim, bool bPostureChange){} - - - -simulated event PreTimeLapse(bool bPlayOfTheGame){} \ No newline at end of file +class TgPawn extends GamePawn + abstract + native(Pawns) + nativereplication + config(Game) + hidecategories(Navigation) + implements(TgSkinnableInterface,TgCombatActor,TgObserver_ViewTargetChanged,TgInteractiveAudio) + dependson(TgCombatActor, TgObject); + +const TG_PAWN_PROPERTIES = 8; + +const TG_MAX_FLASH_EVENTS = 32; + +const TG_MIN_RELOAD_SCALE = 0.4f; + +const TG_PHYSICALITY_NON_STRUCTURES = 860; + +const TG_PHYSICALITY_STRUCTURES = 861; + +const TG_PHYSICALITY_PLAYERS = 10034; + +const TG_PHYSICALITY_MECHANICALS = 10035; + +const TG_PHYSICALITY_DECOYS = 15046; + +const TG_PHYSICALITY_PLAYERS_AND_DECOYS = 15047; + +const TG_PHYSICALITY_MECHANICALS_AND_DECOYS = 15050; + +const TG_SPAWNFX_VALID_DURATION = 5; + +const TG_VOLUME_STEALTH_FADE_TIME = 1.0f; + +const TG_DISTANCE_FADE_TIME = 1.0f; + +const TG_DEFAULT_WINE_MIC = 2430; + +const TG_COMBAT_DURATION = 5.0; + +const TG_STILL_THRESHOLD = 1.0; + +const TG_STILL_DURATION = 5.0; + +const TG_CARD_COOLDOWN_ON_DEATH = false; + +const MAX_OBSCURING_DEPLOYABLES = 10; + +const MAX_BLINDING_DEPLOYABLES = 10; + +const MAX_VISIBLE_THROUGH_WALL_INSTIGATORS = 12; + +const MAX_VISIBLE_THROUGH_STEALTH_INSTIGATORS = 12; + +const TG_PAWN_POLYMORPH_CHICKEN_MESH_ID = 5599; + +const TG_PAWN_POLYMORPH_OUT_FX_ID = 6674; + +const TG_PAWN_POLYMORPH_IN_FX_ID = 6675; + +const PHYS_TWEEN_FLAG_COLLIDE_WITH_WORLD = 1; + +const PHYS_TWEEN_FLAG_ROTATE_TOWARDS_TARGET = 2; + +const TG_EQP_POINT_MAX = 33; + +const GLOBAL_OFFHAND_COOLDOWN = 5.0; + +const GLOBAL_OFFHAND_CLIENT_COOLDOWN = 5.1; + +const MAX_DEVICE_EQPOINT = 15; + +const MAX_NUM_DEPLOYED_BOTS = 3; + +const MAX_NUM_PETS = 8; + +const TG_ASSIST_TIMEOUT = 5; + +const TG_ASSIST_TIMEOUT_OBJ = 10; + +const PLAYER_NOT_TAGGED = -1; + +const GAMEEVENT_PALADINS_PLAYER_KILL = 1001; + +const GAMEEVENT_PALADINS_PLAYER_DEATH = 1002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_SUICIDE = 2001; + +const GAMEEVENT_PALADINS_PLAYER_KILL_NORMAL = 2002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_ASSIST = 2003; + +const GAMEEVENT_MATCH_STARTED = 0; + +const GAMEEVENT_MATCH_ENDED = 1; + +const GAMEEVENT_ROUND_STARTED = 2; + +const GAMEEVENT_ROUND_ENDED = 3; + +const GAMEEVENT_GAME_CLASS = 6; + +const GAMEEVENT_GAME_OPTION_URL = 7; + +const GAMEEVENT_GAME_MAPNAME = 8; + +const GAMEEVENT_MEMORYUSAGE_POLL = 35; + +const GAMEEVENT_FRAMERATE_POLL = 36; + +const GAMEEVENT_NETWORKUSAGEIN_POLL = 37; + +const GAMEEVENT_NETWORKUSAGEOUT_POLL = 38; + +const GAMEEVENT_PING_POLL = 39; + +const GAMEEVENT_RENDERTHREAD_POLL = 40; + +const GAMEEVENT_GAMETHREAD_POLL = 41; + +const GAMEEVENT_GPUFRAMETIME_POLL = 42; + +const GAMEEVENT_FRAMETIME_POLL = 43; + +const GAMEEVENT_TEAM_CREATED = 50; + +const GAMEEVENT_TEAM_GAME_SCORE = 51; + +const GAMEEVENT_TEAM_MATCH_WON = 4; + +const GAMEEVENT_TEAM_ROUND_WON = 5; + +const GAMEEVENT_TEAM_ROUND_STALEMATE = 52; + +const GAMEEVENT_PLAYER_LOGIN = 100; + +const GAMEEVENT_PLAYER_LOGOUT = 101; + +const GAMEEVENT_PLAYER_SPAWN = 102; + +const GAMEEVENT_PLAYER_MATCH_WON = 103; + +const GAMEEVENT_PLAYER_KILL = 104; + +const GAMEEVENT_PLAYER_LOCATION_POLL = 105; + +const GAMEEVENT_PLAYER_TEAMCHANGE = 106; + +const GAMEEVENT_PLAYER_KILL_STREAK = 107; + +const GAMEEVENT_PLAYER_DEATH = 108; + +const GAMEEVENT_PLAYER_ROUND_WON = 109; + +const GAMEEVENT_PLAYER_ROUND_STALEMATE = 110; + +const GAMEEVENT_WEAPON_DAMAGE = 150; + +const GAMEEVENT_WEAPON_DAMAGE_MELEE = 151; + +const GAMEEVENT_WEAPON_FIRED = 152; + +const GAMEEVENT_PLAYER_KILL_NORMAL = 200; + +const GAMEEVENT_GENERIC_PARAM_LIST_START = 300; + +const GAMEEVENT_GENERIC_PARAM_LIST_END = 400; + +const GAMEEVENT_GAME_SPECIFIC = 1000; + +const GAMEEVENT_MAX_EVENTID = 0x0000FFFF; + +enum ETweenState { + TWEEN_None, // 0 + TWEEN_Default, // 1 + TWEEN_DefaultImmune, // 2 + TWEEN_TimedKnockup, // 3 + TWEEN_Damagable, // 4 +}; + +enum EGrabState { + GRAB_None, // 0 + GRAB_ShellSpin, // 1 + GRAB_LazarusRush, // 2 +}; + +enum EChargeState { + CHARGE_None, // 0 + CHARGE_NoTurn, // 1 + CHARGE_NoTurn_RotPawn, // 2 + CHARGE_NoTurnBackwards, // 3 + CHARGE_Turn, // 4 + CHARGE_Fairy, // 5 +}; + +enum EEmote { + EMOTE_None, // 0 + EMOTE_Taunt, // 1 + EMOTE_Joke, // 2 + EMOTE_Laugh, // 3 + EMOTE_Health_Low, // 4 + EMOTE_Kill_Streak, // 5 + EMOTE_Intro, // 6 + EMOTE_Death, // 7 + EMOTE_DeathGrunt, // 8 + EMOTE_DeathFall, // 9 + EMOTE_FirstBlood, // 10 + EMOTE_Weapon_1, // 11 + EMOTE_Weapon_2, // 12 + EMOTE_Ability1, // 13 + EMOTE_Ability2, // 14 + EMOTE_Ability3, // 15 + EMOTE_AbilityUltimate, // 16 + EMOTE_Mount, // 17 + EMOTE_SetOnFire, // 18 + EMOTE_StunnedOrFrozen, // 19 + EMOTE_Kill, // 20 + EMOTE_KillSiegeEngine, // 21 + EMOTE_KillGate, // 22 + EMOTE_LevelUp, // 23 + EMOTE_Victory, // 24 + EMOTE_Defeat, // 25 + EMOTE_PickWeaponCard, // 26 + EMOTE_PickArmorCard, // 27 + EMOTE_PickAbilityCard, // 28 + EMOTE_KillAssist, // 29 + EMOTE_UniqueCombat, // 30 + EMOTE_KillAbility1, // 31 + EMOTE_KillAbility2, // 32 + EMOTE_CapturePoint, // 33 + EMOTE_TakingDamage, // 34 + EMOTE_EnemyCapturingPoint, // 35 + EMOTE_OnPointAndFiring, // 36 + EMOTE_HealedByTeammate, // 37 + EMOTE_AbilityOnCooldown, // 38 + EMOTE_Mastery1, // 39 + EMOTE_Mastery9, // 40 + EMOTE_Mastery12, // 41 + EMOTE_Mastery15, // 42 + EMOTE_Train, // 43 + EMOTE_GruntHit, // 44 + EMOTE_GruntJump, // 45 + EMOTE_BehindUs, // 46 + EMOTE_AboveUs, // 47 + EMOTE_Sniper, // 48 +}; + +enum EEmoteCategory { + EMOTECAT_None, // 0 + EMOTECAT_PlayerVGS, // 1 + EMOTECAT_AbilityOnCooldown, // 2 + EMOTECAT_TakingDamage, // 3 + EMOTECAT_Celebration, // 4 + EMOTECAT_Kills, // 5 + EMOTECAT_Action, // 6 + EMOTECAT_Context, // 7 + EMOTECAT_Ultimate, // 8 + EMOTECAT_Override, // 9 + EMOTECAT_Movement, // 10 +}; + +enum EHitAudioCue { + CUEHIT_None, // 0 + CUEHIT_Pain, // 1 + CUEHIT_FromAbove, // 2 + CUEHIT_FromBehind, // 3 + CUEHIT_Sniper, // 4 +}; + +enum TG_DEATH_REASON { + DR_NORMAL, // 0 + DR_DESPAWN, // 1 + DR_RECONNECT, // 2 + DR_FREEZE_GIB, // 3 + DR_LEX_EXECUTE, // 4 +}; + +enum TG_REP_DEVICE_STATE { + RDS_INACTIVE, // 0 + RDS_FIRING, // 1 + RDS_GENERIC1, // 2 + RDS_GENERIC2, // 3 +}; + +enum STEALTH_TYPE { + STEALTH_TYPE_NONE, // 0 + STEALTH_TYPE_PULSED, // 1 + STEALTH_TYPE_FADING, // 2 + STEALTH_TYPE_INSTANT, // 3 + STEALTH_TYPE_NO_REVEAL, // 4 +}; + +enum TG_POSTURE { + TG_POSTURE_DEFAULT, // 0 + TG_POSTURE_REST, // 1 + TG_POSTURE_FUSSY, // 2 + TG_POSTURE_INTRO, // 3 + TG_POSTURE_ENRAGED, // 4 + TG_POSTURE_PATROL, // 5 + TG_POSTURE_GENERICFIRE1, // 6 + TG_POSTURE_GENERICFIRE2, // 7 + TG_POSTURE_GENERICFIRE3, // 8 + TG_POSTURE_DEAD, // 9 + TG_POSTURE_SEARCHING, // 10 + TG_POSTURE_FALLING, // 11 + TG_POSTURE_MOUNT, // 12 + TG_POSTURE_STASIS, // 13 + TG_POSTURE_KNOCKBACK, // 14 + TG_POSTURE_MESMERIZE, // 15 + TG_POSTURE_DISARMED, // 16 + TG_POSTURE_SCARED, // 17 + TG_POSTURE_STUNNED, // 18 + TG_POSTURE_PULLED, // 19 + TG_POSTURE_NONE, // 20 +}; + +enum TG_PlaySpecialEffect { + PLAYFX_Heal, // 0 + PLAYFX_RUberLaser, // 1 + PLAYFX_LUberLaser, // 2 + PLAYFX_SiegeWallImpact, // 3 + PLAYFX_GAMMARAY_BUILDUP, // 4 + PLAYFX_GAMMARAY_FIRE, // 5 + PLAYFX_Jump, // 6 + PLAYFX_SpecialJump, // 7 + PLAYFX_Land, // 8 + PLAYFX_Teleport, // 9 + PLAYFX_PreTeleport, // 10 + PLAYFX_Flourish, // 11 +}; + +enum TG_TELEPORT_STATE { + TELEPORT_NONE, // 0 + TELEPORT_ENTER, // 1 + TELEPORT_EXIT, // 2 + TELEPORT_ENTER_BLINK, // 3 + TELEPORT_EXIT_BLINK, // 4 + TELEPORT_KINESSA_TRANSPORTER_ENTER, // 5 + TELEPORT_KINESSA_TRANSPORTER_EXIT, // 6 +}; + +enum OverlayMICType { + OMT_None, // 0 + OMT_Execute, // 1 + OMT_Shield, // 2 + OMT_CCImmune, // 3 + OMT_CharacterCustom1, // 4 + OMT_Freeze, // 5 +}; + +enum OverlayState { + OMS_Normal, // 0 + OMS_ForceVisible, // 1 + OMS_ForceHidden, // 2 +}; + +enum EForcedSilhouetteVisibility { + FSV_None, // 0 + FSV_Visible, // 1 + FSV_Hidden, // 2 +}; + +enum EHitReactionType { + HIT_REACTION_Anim, // 0 + HIT_Reaction_Procedural, // 1 +}; + +enum EMetaGameState { + GAMESTATE_NONE, // 0 + GAMESTATE_NEUTRAL, // 1 + GAMESTATE_ACTIVE_POINT, // 2 + GAMESTATE_ATTACKING, // 3 + GAMESTATE_DEFENDING, // 4 + GAMESTATE_TITAN_BATTLE, // 5 +}; + +enum EBotBehaviorState { + BEHAVIORSTATE_IDLE, // 0 + BEHAVIORSTATE_ENGAGING, // 1 + BEHAVIORSTATE_FALLBACK, // 2 +}; + +enum LocalViewerRangeState { + LVRS_EffectiveRange, // 0 + LVRS_MaxRange, // 1 + LVRS_BeyondRange, // 2 +}; + +struct EEmoteCategoryChance { + var float fDefault; + var float fPlayerVGS; + var float fAbilityOnCooldown; + var float fTakingDamage; + var float fCelebration; + var float fKills; + var float fAction; + var float fContext; + var float fUltimate; + var float fOverride; + var float fMovement; + structdefaultproperties {} +}; + +struct EEmoteAbilityChance { + var float fDefault; + var float fAbility1; + var float fAbility2; + var float fAbility3; + var float fMount; + structdefaultproperties {} +}; + +struct TGEQUIP_SLOTS_STRUCT { + var int SlotIndices[33]; + var int MiscItems[33]; + structdefaultproperties {} +}; + +struct DeathInfo { + var bool bDead; + var Vector Momentum; + var Class dmgType; + var Vector HitLoc; + structdefaultproperties {} +}; + +struct PostureStack { + var array GUIDs; + var array Postures; + var int NewPostureGUID; + structdefaultproperties {} +}; + +struct PawnDamagerStruct { + var TgPawn DamagerPawn; + var float fTimestamp; + structdefaultproperties {} +}; + +struct OverlayMICList { + var init array MICs; + structdefaultproperties {} +}; + +struct OverlayInfo { + var export editinline TgSkeletalMeshComponent OverlayMesh; + var export editinline SkeletalMeshComponent ParentMesh; + var bool bIs1POverlay; + var bool bIsVisible; + var OverlayMICList OverlayMICInstances[OverlayMICType]; + structdefaultproperties {} +}; + +struct SilhouetteInfo { +}; + +struct HealingInfo { + var float HealAmount; + var float TimeStamp; + structdefaultproperties {} +}; + +struct RigidBodyImpactInfo { + var float LastImpactTime; + var PhysicalMaterial PhysMat; + structdefaultproperties {} +}; + +var Vector r_vPhysTweenTarget; +var repnotify TgPawn.ETweenState r_eTweenState; +var TgPawn.ETweenState m_eLocalTweenState; +var byte s_BitPackedHitReaction; +var repnotify TgPawn.EGrabState r_eGrabState; +var TgPawn.EGrabState m_eLocalGrabState; +var repnotify TgPawn.EChargeState r_eChargeState; +var TgPawn.TG_DEATH_REASON r_eDeathReason; +var repnotify TgPawn.TG_REP_DEVICE_STATE r_ReplicatedDeviceState[33]; +var repnotify TgObject.TG_EQUIP_POINT r_eDesiredInHand; +var TgObject.TG_EQUIP_POINT m_eEquippedInHand; +var byte r_nPackedFireMultiRanges[20]; +var TgObject.TG_EQUIP_POINT r_eDesiredAIDevice; +var repnotify TgPawn.STEALTH_TYPE r_eIsStealthed; +var TgPawn.STEALTH_TYPE c_eIsStealthed; +var byte r_nInCombatNonce; +var byte c_nInCombatNonceAck; +var const TgObject.DeployableOverlayIcon m_InitHUDOverlayIcon; +var const TgObject.DeployableOverlayState m_InitHUDOverlayState; +var TgPawn.TG_POSTURE m_ePosture; +var repnotify Controller.EStunType r_eCurrentStunType; +var byte c_nLocalRespawnBeaconHUDState; +var private TgPawn.OverlayMICType m_OverlayCurrentTypeBody; +var private TgPawn.OverlayMICType m_OverlayCurrentTypeWeapon; +var const Scene.ESceneDepthPriorityGroup m_eCharacterCustom1OverlayDepthGroup; +var () TgPawn.EForcedSilhouetteVisibility m_eForcedSilhouetteVisibility; +var () TgPawn.EHitReactionType m_HitReactionType; +var TgObject.EUITargetingType c_UITargetingType; +var protected TgPawn.EMetaGameState m_eMetaGameState; +var protected TgPawn.EBotBehaviorState m_eBotBehaviorState; +var byte m_nIsInIntroState; +var transient TgObject.EPolymorphType c_LocalPolymorph; +var repnotify TgObject.EPolymorphType r_CurrentPolymorph; +var TgObject.EThreatLevel c_ThreatLevel; +var TgObject.EThreatLevel c_LastThreatLevel; +var const TgPawn.LocalViewerRangeState m_RangeStateFromLocalViewer; +var TgPawn.EEmote c_eCurrentAudioEmotePlaying; +var float m_fPhysTweenDist; +var float r_fPhysTweenDuration; +var int m_nPhysTweenPostureId; +var bool r_bPhysTweenInterrupted; +var bool s_bIsInGrass; +var bool r_bGrabInterrupted; +var bool m_PreGrabCollideActors; +var bool m_PreGrabBlockActors; +var bool m_PreGrabCollideWorld; +var bool m_PreGrabCollideComplex; +var bool r_bUsePhysFlyingForCharge; +var bool r_bChargeIgnoreHumanoidBlocking; +var bool m_bWantsCharge; +var bool m_bCanJumpWhileCharging; +var bool m_bCanChargeInAir; +var bool m_bEndChargeInFalling; +var bool m_bIgnoreFriendlyBlocking; +var bool m_bIgnoreEnemyBlocking; +var const bool m_bHasDestroyedMesh; +var bool m_bDefaultPropsInitialized; +var bool m_bAffectedByVortices; +var bool s_LoadMeshServerSide; +var bool c_bDeviceHiddenDueToFullBodyAnim; +var bool c_bMeshHiddenDueToDeath; +var bool c_bHideMeshFromCameraPenetration; +var bool c_bHideMeshFromKismet; +var bool r_bInGlobalOffhandCooldown; +var bool bInGlobalOffhandCooldownClient; +var bool m_bInFireLock; +var bool c_bUpdatesWeaponMesh; +var bool c_bIsStealthMaterialOn; +var repnotify bool r_bIsVolumeStealthed; +var repnotify bool r_bIsVolumeStealthFading; +var bool m_bDisableVolumeStealth; +var repnotify bool r_bDisableVolumeStealth; +var const bool m_bCannotBeVolumeStealthed; +var bool m_bPlayingStealth; +var bool m_bPlayingDetected; +var bool c_bHiddenDueToStealth; +var bool c_bHiddenDueToObscuringDeployable; +var bool r_bCanStartStealthInCombat; +var const bool m_bIsVisionBlocker; +var const bool m_bIsAIVisionBlocker; +var bool m_bApplyDistanceFade; +var bool r_bIsBot; +var bool s_bInvisibleToPets; +var bool s_bCanSeePets; +var transient bool c_bIsFrametestZombie; +var bool r_bIsAnimInStrafeMode; +var bool m_ReachedTargetSoKillRootMotion; +var bool s_bCanApplyEffects; +var bool m_bInitialized; +var bool m_bUseInterrupted; +var bool c_bIgnoreInterruption; +var bool r_bNoEnergyCost; +var bool m_bCheatUseNoEnergy; +var bool m_bCheatNoRecharge; +var bool m_bIsInvisibleToAI; +var repnotify bool r_bInCombatFlag; +var bool s_bIsStill; +var bool m_bHitWallThisTick; +var bool r_bIsAFK; +var bool c_bHandIKEnabledFromAnimSet; +var bool c_bCanDoTurnInPlaceAnim; +var bool c_bIsPlayingTurnInPlaceAnim; +var bool m_bShouldApplyCCImmuneOverlay; +var bool m_bCanBeKnockedBack; +var bool m_bCausesPushblock; +var bool m_bPushblockAffectsFriendlies; +var bool m_bPushblockAffectsEnemies; +var bool m_bIsCrowdControlImmuneKismet; +var bool m_bUseSmoothNetReceiveRotation; +var bool m_bForceSmoothCorrection; +var const bool m_bAlwaysUseAccurateRotation; +var bool r_bHasAccurateRotation; +var bool c_bUpdateSkelMeshWhenNotRendered; +var bool c_bUpdateSkelMeshWhenNotRenderedServer; +var bool r_bSilenced; +var bool r_bDisarmed; +var repnotify bool r_bCrippled; +var bool r_bIsInStasis; +var bool r_bCanBePulled; +var bool s_bHasCrippleEffect; +var bool c_bEnemyMatLoaded; +var repnotify bool r_bIsFlashBang; +var bool r_bIsJumping; +var bool r_bIsShortJump; +var bool m_bIsLanding; +var bool m_bAllowHigherWallJumping; +var bool m_bIgnorePhysCheckForJump; +var bool m_bHasPlayedDeathAnimation; +var bool m_bForceDeathAnim; +var repnotify bool r_bHasRespawnBeacon; +var bool m_bDestroyOnOwnerDeathFlag; +var repnotify bool r_bNeedPlaySpawnFx; +var bool c_bSpawnFxPlayed; +var bool c_bTargeted; +var bool c_bTargetedLightup; +var bool c_bShowDecalRing; +var bool c_bShowTargetedRing; +var bool c_bTargetedRingActive; +var bool c_bApplyDropShadow; +var bool m_bShowNameplate; +var bool r_bInitialIsEnemy; +var bool c_bNeedsAssetLoad; +var bool r_bDebugShowAIDebug; +var bool m_SwapToDestroyedMeshOnTick; +var () bool m_bBlockCamera; +var bool m_bOverlaysEnabled; +var bool m_b1POverlaysActive; +var bool m_bSilhouettesVisible; +var () const bool m_bUseSilhouettes; +var () bool m_bIgnoreTearOffMomentum; +var () bool m_bAcceptsHitReactions; +var bool m_bIsFadingOut; +var bool m_bUseDamageTypeForDeathAnim; +var bool r_bDemoCanPurchaseItems; +var bool s_bHasInteractedWithStore; +var bool m_bDoSmoothCorrectionThisTick; +var bool m_bOnlyTakeHeadshotDamage; +var repnotify bool r_bIsMounted; +var bool r_bUseMountPosture; +var bool m_bIsEnteringMount; +var const bool m_bUpdateEyeHeight; +var bool m_bJustLanded; +var bool m_bLandRecovery; +var bool r_bJustJumped; +var bool m_bStunEnergyRegen; +var bool c_bHealAkEventPlaying; +var bool m_bPainAkEventPlaying; +var repnotify bool r_bIsDazed; +var repnotify bool r_bIsMarked; +var repnotify bool r_bIsBleeding; +var repnotify bool r_bIsOnFire; +var repnotify bool r_bIsRooted; +var repnotify bool r_bIsKnockedBack; +var repnotify bool r_bIsPoisoned; +var repnotify bool r_bIsSlowed; +var repnotify bool r_bIsFrozen; +var repnotify bool r_bIsCCImmune; +var bool r_bIsRevealed; +var bool r_bIsWallHacking; +var bool r_bIsInSelfKnockBack; +var () bool m_bUseOutlines; +var bool m_bIsLeaping; +var bool m_bCanSpawnHealthNuggetsOnDeath; +var bool m_bCanAutoMountOnRespawn; +var bool c_bShowingDisarm; +var bool r_bFirstSpawnWave; +var bool m_bWaitForIntroAnimToEnd; +var bool m_bIntroAnimFinished; +var bool m_bAllowIntroWhiteOut; +var bool m_bIntroWhiteOutActive; +var bool m_bAirAccuracyPenalty; +var bool m_bCanBeHeadShot; +var (Mount) bool c_bHide3PWeaponMeshWhileMounted; +var (Mount) bool r_bMorphMounted; +var transient bool m_bShouldBeFirstPersonLastFrame; +var bool m_bFadeOutOnLifeAfterDeathTimerExpired; +var bool m_bUsesRecoil; +var bool m_bUsingSecondaryPhysicsAsset; +var transient bool m_bWasKilledByEnvironment; +var bool m_bShouldSmoothEyeHeight; +var bool m_bHasAstroBuff; +var bool r_bIsLifted; +var int r_nPhysTweenFlags; +var () string m_sGameplayPackage; +var TgInteractiveAudio m_AsInteractiveAudio; +var TgPawn r_GrabSource; +var float r_fGrabDuration; +var name r_GrabAttachSocket; +var Vector r_vGrabLocationOffset; +var Rotator r_rGrabRotationOffset; +var Vector m_vGrabDestRelLocation; +var Rotator m_rGrabDestRelRotation; +var int m_nPhysGrabPostureId; +var array s_GrabbedTargets; +var int r_nCannotBeGrabSource; +var array m_TeleportNotifyList; +var float r_fChargeInitialYaw; +var float r_fChargeInitialPitch; +var Vector r_vChargeInitialLocation; +var float r_fChargeSpeed; +var float r_fChargeRange; +var const int m_nBodyMeshAsmId; +var native const Pointer m_BodyMeshAssembly; +var native const Pointer m_DestroyedMeshAssembly; +var int m_n1PHeadMeshId; +var int r_nPawnId; +var float c_fLastUpdateTime; +var repnotify TgEffectManager r_EffectManager; +var array m_Properties; +var repnotify float r_CurrentPropValues[TG_PAWN_PROPERTIES]; +var float m_LocalPropValues[TG_PAWN_PROPERTIES]; +var float s_PropValuesRepResolution[TG_PAWN_PROPERTIES]; +var float s_DefaultPropValues[TG_PAWN_PROPERTIES]; +var repnotify float r_fCachedMaxHealth; +var TgAkActorUnoccluded m_AkActorUnoccluded; +var AkEvent c_AkAttackedFromBehind; +var AkEvent c_AkAttackedFromAbove; +var AkEvent c_AkAttackedFromSniper; +var config EEmoteCategoryChance m_EmoteChances; +var config EEmoteAbilityChance m_EmoteChancesAbility; +var int c_nEmoteCameraStackId; +var transient float m_fLastEmoteTime; +var float m_fEmoteGlobalCooldown; +var array m_fLastEmoteCatTimes; +var array m_fLastPlayerVGSEmoteTimes; +var float m_fEmoteNonLocalCooldown; +var float m_fLastNonLocalEmoteTime; +var float m_fSoftLandVelocityCutoff; +var float m_fHardLandVelocityCutoff; +var float s_nSpawnTime; +var int r_nPhysicalType; +var float r_fReconnectTime; +var array m_CurrentVortexList; +var array m_CurrentBlackHoleList; +var Class m_DeathDamageType; +var Vector m_DeathHitLocation; +var repnotify EquipDeviceInfo r_EquipDeviceInfo[33]; +var TgDevice m_EquippedDevices[33]; +var TgDeviceForm c_EquipForm[33]; +var name c_EquipFormState[33]; +var name c_nmInHandSocket; +var TgDevice c_CurrentTargetingDevice; +var TgDevice c_CurrentStartActionDevice; +var float c_fShouldStartActionTimeStamp; +var TgDevice m_CurrentInHandDevice; +var int c_nLockInHandToTargetingDevice; +var TgSpecialFx c_WorldBracketFX; +var int c_nLastProcessedFlashEventIdx; +var int r_nFirstValidFlashEventIdx; +var repnotify int r_nFlashQueIndex; +var int r_nFlashEvent[32]; +var Vector r_vFlashLocation[32]; +var Vector r_vFlashRayDir[32]; +var float r_vFlashRefireTime[32]; +var Actor r_pFlashTarget[32]; +var Class r_pFlashDamageType[32]; +var int r_nFlashFireInfo[32]; +var float r_fFireMultiMaxRange; +var int r_nFireMultiSeed; +var float r_fFireMultiSpreadAngle; +var float s_fTauntAmount; +var float m_fLastPainSound; +var () const export editinline LightEnvironmentComponent LightEnvironment; +var Vector FireLocationOffsets[33]; +var float BotTurnAcceleration; +var float BotTurnSpeed; +var float m_fMaxAimAssistStacks; +var float r_fStealthFadeRate; +var TgVisibilityVolume r_CurrentVisibilityVolumes[2]; +var repnotify TgDeployable r_ObscuringDeployables[10]; +var repnotify TgDeployable r_BlindingDeployables[10]; +var Actor r_VisibleThroughWallsInstigators[12]; +var Actor r_VisibleThroughStealthInstigators[12]; +var const float m_fVolumeStealthDisableTime; +var transient float c_fVolumeFadeValue; +var transient float c_fDistanceFadeValue; +var transient float c_fStealthFadeValue; +var transient float c_fObscuringDeployableFadeValue; +var transient float c_fBlindingDeployableFadeValue; +var transient float c_fCurrentFadeValue; +var transient float c_fDistanceLastCollidingVisionRange; +var float c_fLocalStealthFadeRate; +var TgSpecialFx c_TeleporterEnterFX; +var TgSpecialFx c_TeleporterExitFX; +var TgSpecialFx c_BlinkEnterFX; +var TgSpecialFx c_BlinkExitFX; +var TgSpecialFx c_DetectedFx; +var TgSpecialFx c_PetSuccessfulHitFx; +var const float c_fFxScaleSize; +var float m_fLifeAfterDeathSecs; +var Actor r_aDebugTarget; +var Actor r_aDebugDestination; +var Actor r_aDebugNextNav; +var Vector r_vDebugNextNavMeshPoint; +var Vector r_vDebugSpreadoutLocation; +var int r_nDebugHearingRange; +var int r_nDebugSightRange; +var int r_nDebugFOV; +var string r_sDebugAction; +var string r_sDebugName; +var string r_sDebugFactory; +var Vector s_vOneWayMovement; +var Vector r_vDown; +var float m_fExhaustedPercent; +var float m_fExhaustedPropModifier; +var float m_fExhaustedMinPropModifier; +var float m_fMountFrictionMultiplier; +var float m_fBackpedalPct; +var float m_fMountBackpedalPct; +var repnotify Actor r_TargetActor; +var Actor r_LockedTarget; +var int c_TargetMethod; +var TgPawn s_Pets[8]; +var TgPawn m_PetOwner; +var int c_ActivePets; +var Actor s_LastAttacker; +var Actor s_LastAttacked; +var Actor m_CurrentMeleeTarget; +var TgPawn r_Owner; +var int s_nSpawnerDeviceInstId; +var int s_nSpawnerDeviceModeId; +var repnotify DeathInfo r_DeathInfo; +var repnotify int r_nResetCharacter; +var repnotify int r_nLiveRespawn; +var name DyingStateName; +var int m_nSpawnLocationId; +var int m_nSpawnTableId; +var int m_nSpawnTableDetailId; +var PlayerStart m_LastPlayerStart; +var float m_fStandingHeight; +var float m_fStandingRadius; +var float m_fTargetCylinderHeight; +var float m_fTargetCylinderRadius; +var int r_nPacingType; +var Actor m_CurrentUseActor; +var float m_fBaseTranslationOffset; +var float m_fCrouchTranslationOffset; +var float r_fInCombatTime; +var float m_fInCombatTime; +var float m_fPhaseChangeTime; +var float m_fPhaseChangedTimeStamp; +var float m_PhaseChangeRemainingTime; +var repnotify int r_nPhase; +var int c_PreviousPhase; +var const int m_nInitHUDOverlayDisplayMask; +var const float m_InitHUDOverlayEnemyViewDist; +var array m_SimpleTransitionerNodes; +var array m_StanceTransitionerNodes; +var array m_FireBlendNodes; +var array m_CombatWarinessBlendNodes; +var array m_PostureBlendNodes; +var array m_HitOrMissBlendNodes; +var array m_AnimNodeEmoteSwitches; +var array m_EmoteBlendNodes; +var array m_EmoteSequenceNodes; +var array m_AnimNodeBlendByIntroductions; +var array m_AnimNodeBlendByHitReactions; +var array m_DeviceModeBlendNodes; +var array m_SkelControlLocks; +var array m_SkelControlLockNames; +var TgAnimNodeSlot m_UpperBodyAnimNode; +var AnimNodeSequence m_UpperBodyAnimNodeSequence; +var TgAnimNodeSlot m_FullBodyAnimNode; +var const transient int m_nYawOffset; +var PostureStack m_PostureStack; +var float m_fKnockbackMultiplier; +var transient TgBotFactorySpawnable s_PetBotFactory; +var transient array s_PetLocationList; +var float m_fTimeBetweenPetSpawns; +var array m_DeployPetsSocketNames; +var float m_ValidPetSpawnPointDistance; +var () float m_fRBPushStrengthMultiplier; +var () Vector2D m_fRBPushStrengthRange; +var Rotator m_PreviousNetReceiveRotation; +var Rotator m_TargetNetReceiveRotation; +var float m_RotationInterpRate; +var int m_nNetRotationCount; +var int m_nSmoothedRemoteViewPitch; +var int m_nPreviousReceivedRemoteViewPitch; +var int m_nTargetRemoteViewPitch; +var float m_PitchInterpRate; +var int m_nNetViewPitchCount; +var () float m_fSmoothCorrectionRate; +var int m_UnpackedRemoteViewPitch; +var int r_nPackedPitchYawForSpectate; +var native Pointer m_pStatsTracker; +var TgPawn m_LastDamager; +var int m_LastDamagerTimeStamp; +var array s_Damagers; +var float m_fJumpLandingTime; +var config float m_fCeilingTraceDistForWallJumping; +var const float m_fHorseJumpHeightIncrease; +var float m_fDazedStartTime; +var float m_fDazedDuration; +var float m_fDazedInterval; +var const int m_iDazedOrder; +var int m_iDazedNumControlPoints; +var array m_DazedKnots; +var array m_DazedRotatorControl; +var Vector2D m_vDazedMaxRotator; +var float m_fDazedStrafeStartDirection; +var array m_DazedStrafeChangeTimes; +var Vector2D m_vDazedMinMaxStrafeDuration; +var MaterialInstanceConstant m_DazedWineMIC; +var Actor r_StunTauntTarget; +var array m_LocalTouchingRespawnBeacons; +var TgPlayerController c_LocalPC; +var export editinline TgDropShadowDecalComponent c_PlayerCircle; +var MaterialInstanceConstant c_PlayerCircleMIC; +var Material c_CircleTemplate; +var Material c_CircleTemplateSpectator; +var export editinline TgDropShadowDecalComponent c_PlayerDropShadow; +var Material c_PlayerDropShadowTemplate; +var MaterialInstanceConstant c_PlayerDropShadowMIC; +var transient float c_fPlayerDropShadowFade; +var name c_PlayerDropShadowSocketName; +var const Class DefaultControlModuleClass; +var float m_fFaceRotationInterpTime; +var float m_fRemainingFaceRotationInterpTime; +var repnotify int r_nBigTeleportCount; +var int c_nTickCheckingState; +var export editinline TgManifestGroup c_AssetManifestGroup; +var TgSpecialFx c_LevelUpFX; +var int c_nLevelUpFxId; +var int s_nKillCombo; +var int s_nKillStreak; +var repnotify int r_nProfileId; +var repnotify int r_nSettingsOverrideId; +var repnotify int r_nSkinId; +var repnotify int r_nHeadSkinId; +var repnotify int r_nWeaponSkinId; +var repnotify int r_nMountSkinId; +var int r_nWardSkinId; +var native const Pointer m_pAmBot; +var native const Pointer m_pAmSkin; +var native const Pointer m_pAmHead; +var native const Pointer m_pAmWeaponSkin; +var native const Pointer m_pAmMountSkin; +var native const array m_pAmAllSkins; +var int c_StunnedPostureID; +var int c_FearedPostureID; +var int c_DisarmedPostureID; +var array s_Viewers; +var transient TgCarriedFlag m_CurrentFlag; +var transient float m_fLastCTFVolumeTimestamp; +var float m_fDamageTakenRTPC; +var float m_fDamageTakenMax; +var float m_fDamageTakenMaxSustainDuration; +var float m_fDamageTakenRTPCSustainDuration; +var () array m_OverlayInfosBody; +var () array m_OverlayInfosWeapon; +var const MaterialInstanceConstant m_ExecuteOverlayMaterialFriend; +var const MaterialInstanceConstant m_ExecuteOverlayMaterialEnemy; +var const MaterialInstanceConstant m_ShieldOverlayMaterialFriend; +var const MaterialInstanceConstant m_ShieldOverlayMaterialEnemy; +var const MaterialInstanceConstant m_ImmortalOverlayMaterialFriend; +var const MaterialInstanceConstant m_ImmortalOverlayMaterialEnemy; +var const MaterialInstanceConstant m_CharacterCustom1OverlayMaterial; +var const MaterialInstanceConstant m_FreezeOverlayMaterial; +var transient array m_SilhouetteInfos; +var () Class m_SilhouetteClass; +var array m_IgnoredHitPulseIndicies; +var () float m_fHitReactionAIPauseTime; +var () float m_fHitReactionBlendOutTime; +var () float m_fHitReactionTweenTime; +var () float m_fFadeOutTime; +var () float m_fFadeOutSpeed; +var TgSpecialFx m_DeathAnimFX; +var array m_HitReactionSkelControls; +var float m_fRemainingHitReactionPulseTime; +var () float m_fHitReactionPulseTime; +var () float m_fDisorientSpinRate; +var float m_fMaxSmoothNetUpdateDist; +var float m_fNoSmoothNetUpdateDist; +var float m_fSmoothNetUpdateTime; +var Vector m_vMeshTranslationOffset; +var float m_fInitialHealthPercent; +var float c_fHUDHealthPercent; +var float m_fDamageDealtPercentAI; +var float m_fDamageTakenPercentAI; +var array m_RecentHealList; +var const float m_fRecentHealExpireTime; +var int m_nCloneExpirationAttacksCount; +var float m_fCloneLeashRange; +var float m_fCloneExpirationTime; +var TgRepInfo_Player r_CloneParentPRI; +var TgAnimNodeBlendList m_SprintBlendNode; +var TgWeaponMeshActor m_WeaponMesh; +var export editinline TgSkeletalMeshComponent m_HeadMesh; +var int m_HeadSilhouetteIndex; +var int m_HeadOverlayIndex; +var repnotify int r_nBodyMeshOverride; +var repnotify int r_nHeadMeshOverride; +var int c_nCurrentHeadMeshID; +var () const float m_BobFootstepFactor; +var float Bob; +var float LandBob; +var float JumpBob; +var float AppliedBob; +var float BobTime; +var Vector WalkBob; +var float m_fOldZ; +var Vector AimSpot; +var Vector AimNoise; +var float m_fAimSpotsetLastRefresh; +var float m_fAimNoiseLastRefresh; +var float m_fAimPitch; +var export editinline AudioComponent m_TakeHitAudioComponent; +var export editinline AudioComponent m_PainAudioComponent; +var AkEvent m_TakeHitAkEvent; +var AkEvent m_TakeHeadShotAkEvent; +var AkEvent c_HealPlayAkEvent; +var AkEvent c_HealStopAkEvent; +var AkEvent m_PainAkEvent; +var float m_fLastPainEvent; +var float m_fPainEventCooldown; +var TgAnimNodePlayFireAnim m_FireAnimNode; +var TgEffectGroup m_StealthPulseEffectGroup; +var float m_fStealthPulseTime; +var float r_fKnockedBackFrictionOverride; +var Vector r_vKnockedBackVelocityOverride; +var int r_nIncomingImpactCount; +var float r_fReloadScale; +var float r_fRefireSpeed; +var TgPawn r_HealTarget; +var () export editinline TgParticleSystemComponent c_HealingBeamPSC; +var export editinline transient TgSkeletalMeshComponent m_OutlineMesh; +var MaterialInstanceConstant m_OutlineMaterial; +var TgNearObjectiveVolume m_NearObjectiveVolume; +var float r_fLeapAirControl; +var float m_fBaseLeapAirControl; +var float m_fKnockAirControl; +var array m_HomeguardVolumes; +var float m_LastHomeguardTime; +var export editinline TgSkeletalMeshComponent m_MountMesh; +var int m_nMountPostureId; +var float s_fEndStealthDamage; +var float s_fDamageTakenDuringStealth; +var () float m_fHUDOverlayZOffset; +var () float m_fHUDOverlayMorphMountedZOffset; +var int m_lastDamageSourceSlot; +var float m_fLastMoveTime; +var TgDeployable s_AttachedProjBlocker; +var () float m_fScaleMesh; +var () float m_fScaleMeshChangePerSecond; +var () float m_fScaleCollisionHeight; +var () float m_fScaleCollisionHeightChangePerSecond; +var () float m_fScaleCollisionRadius; +var () float m_fScaleCollisionRadiusChangePerSecond; +var int m_IntroPostureID; +var float r_fIntroTime; +var repnotify float r_fIntroOffset; +var float s_fIntroStartTime; +var float m_fIntroProgress; +var repnotify name r_ReplicatedState; +var array m_RespawnNodes; +var array m_BuffCampIntroNodes; +var name m_IntialIntroState; +var name m_nmIntroWhiteOutParamName; +var float m_fIntroWhiteOutScale; +var float m_fIntroWhiteOutUpTime; +var float m_fIntroWhiteOutDownTime; +var int r_nInsideTaskForceBase; +var TgSpecialFx m_HealFX3P; +var TgSpecialFx m_ShieldFX3P; +var float c_fNextTakeHitDisplayGroupTimestamp; +var float c_fNextTakeHitDisplayDelay; +var repnotify Actor r_PolymorphInstigator; +var int m_PrePolymorphHealth; +var int m_PolymorphMaxHealth; +var array m_RigidBodyImpacts; +var float c_fServerTimeStamp; +var float m_fZoomDistOverride; +var float m_fZoomDurationOverride; +var float c_fThreatBehind; +var float c_fThreatInEffectiveRange; +var float c_fThreatDistanceSquared; +var float c_fThreatDistance; +var float c_fThreatFocused; +var float c_fThreatFocusTarget; +var float c_fThreatSeenBy; +var float c_fThreatDamaged; +var float c_fThreatOcclusion; +var float c_fThreatBinnedOcclusion; +var float c_fThreatShotAt; +var float c_fThreatUlt; +var float c_fThreatLevelValue; +var float c_fThreatDecayResidual; +var float c_fLastThreatLevelValue; +var float c_fDBGThreatDistanceFeet; +var TgGameplayCurves m_GameplayCurves; +var int m_nSuccessfulHitSpecialFXId; +var array LLegBoneNames; +var array RLegBoneNames; +var array LArmBoneNames; +var array RArmBoneNames; +var array HeadBoneNames; +var name m_HeadShotComponentBoneName; +var export editinline TgHeadShotComponent m_HeadShotComponent; +var (Mount) float m_fMountScaleOverride; +var TgCameraShake m_LandCameraShake; +var TgCameraShake m_JumpCameraShake; +var float m_f1PTransitionFireDelay; +var transient float m_f1PTransitionFireDelayRemaining; +var float m_fEnergyChargeMultiplier; +var float c_fRecreateTrackedProjectilesTimer; +var float m_fRecoilSmoothRate; +var Rotator m_rCurrentRecoil; +var Rotator m_rSmoothedRecoil; +var float m_fSettleDelay; +var float m_fSettleSpeed; +var private float m_fRecoilSettleDeltaTimeOverflow; +var private float m_fRecoilSmoothDeltaTimeOverflow; +var int r_nVoicePackId; +var array m_bPendingWallStunNormals; +var float m_fTimeOnNonBaseableSurface; +var float m_fNonBaseableSurfaceAirControlDuration; +var float m_fNonBaseableSurfaceLerpTime; +var float m_fNonBaseableSurfaceRampUpMult; +var float m_fNonBaseableSurfaceMaxMoveAmount; +var float m_fNonBaseableSurfaceGraceTime; +var float m_fNonBaseableSurfaceExitMaxVelocity; +var float m_fNonBaseableSurfaceControlPercent; +var array m_OriginalMaterialsBody; +var array m_OriginalMaterialsHead; +var array m_OriginalMaterialsWeapon; +var array m_ReplacementMICsBody; +var array m_ReplacementMICsHead; +var array m_ReplacementMICsWeapon; +var float m_fEyeHeightSmoothFactor; +var float m_ExecutionMaterialFadeOutTimer; +var float m_ExecutionMaterialFadeOutDuration; +var ForceFeedbackWaveform m_DeathFFWaveform; +var TgDevice m_BuffDevice; +var TgDevice m_PrincessPresenceDebuffDevice; +var TgDevice m_PrincessPresenceBuffDevice; +var float m_fFlourishTimeout; +var int c_nCurrentVGSPlaying; +var array< delegate > m_SingleUseOn3pTransitionDelegates; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_bFirstSpawnWave, r_bIsBot, r_bNeedPlaySpawnFx, r_fIntroOffset, r_fIntroTime, r_nHeadSkinId, r_nMountSkinId, r_nPacingType, r_nPawnId, r_nPhysicalType, r_nProfileId, r_nSettingsOverrideId, r_nSkinId, r_nWardSkinId, r_nWeaponSkinId, s_DefaultPropValues; + if((int(Role) == int(ENetRole.ROLE_Authority)) && !bNetOwner || bDemoRecording) r_CurrentVisibilityVolumes, r_bIsVolumeStealthFading, r_bIsVolumeStealthed; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_BlindingDeployables, r_CurrentPropValues, r_DeathInfo, r_EffectManager, r_HealTarget, r_ObscuringDeployables, r_Owner, r_ReplicatedDeviceState, r_TargetActor, r_VisibleThroughStealthInstigators, r_VisibleThroughWallsInstigators, r_aDebugDestination, r_aDebugNextNav, r_aDebugTarget, r_bDebugShowAIDebug, r_bDisableVolumeStealth, r_bInCombatFlag, r_bIsAFK, r_bIsAnimInStrafeMode, r_bIsLifted, r_bIsMounted, r_bMorphMounted, r_eCurrentStunType, r_eDeathReason, r_eIsStealthed, r_fCachedMaxHealth, r_fInCombatTime, r_fStealthFadeRate, r_nBigTeleportCount, r_nDebugFOV, r_nDebugHearingRange, r_nDebugSightRange, r_nInCombatNonce, r_nInsideTaskForceBase, r_nLiveRespawn, r_nPhase, r_nResetCharacter, r_sDebugAction, r_sDebugFactory, r_sDebugName, r_vDebugNextNavMeshPoint, r_vDebugSpreadoutLocation, r_vDown; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_CloneParentPRI, r_CurrentPolymorph, r_GrabAttachSocket, r_GrabSource, r_PolymorphInstigator, r_ReplicatedState, r_bChargeIgnoreHumanoidBlocking, r_bGrabInterrupted, r_bJustJumped, r_bPhysTweenInterrupted, r_bUseMountPosture, r_bUsePhysFlyingForCharge, r_eChargeState, r_eGrabState, r_eTweenState, r_fChargeInitialPitch, r_fChargeInitialYaw, r_fChargeRange, r_fChargeSpeed, r_fGrabDuration, r_fPhysTweenDuration, r_fRefireSpeed, r_fReloadScale, r_nBodyMeshOverride, r_nCannotBeGrabSource, r_nHeadMeshOverride, r_nPhysTweenFlags, r_nVoicePackId, r_rGrabRotationOffset, r_vChargeInitialLocation, r_vGrabLocationOffset, r_vPhysTweenTarget; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bDemoRecording) r_bDemoCanPurchaseItems; +} + +simulated delegate On3pTransitionEvent(); + +native function bool GetTurnRotatorOverride(out int nYawOffset); // Export UTgPawn::execGetTurnRotatorOverride(FFrame&, void* const) + +native function OnViewTargetChanged(optional Actor aNewViewTarget); // Export UTgPawn::execOnViewTargetChanged(FFrame&, void* const) + +native function int GetUISkillEqpSlotOverride(int nEquipSlot, optional bool bAltSlot=false); // Export UTgPawn::execGetUISkillEqpSlotOverride(FFrame&, void* const) + +native function float GetLagPredictionTime(); // Export UTgPawn::execGetLagPredictionTime(FFrame&, void* const) + +native function float GetUnclampedLagPredictionTime(); // Export UTgPawn::execGetUnclampedLagPredictionTime(FFrame&, void* const) + +native function Actor GetTargetActor(); // Export UTgPawn::execGetTargetActor(FFrame&, void* const) + +native function TgPawn GetTargetPawn(); // Export UTgPawn::execGetTargetPawn(FFrame&, void* const) + +native function SetTargetActor(Actor Target); // Export UTgPawn::execSetTargetActor(FFrame&, void* const) + +native function UpdateShieldFX(); // Export UTgPawn::execUpdateShieldFX(FFrame&, void* const) + +native function bool AreAnyOtherOffhandsLockingFiring(TgDevice CurrentDevice); // Export UTgPawn::execAreAnyOtherOffhandsLockingFiring(FFrame&, void* const) + +native function UpdateClientDevices(optional bool bForce=false); // Export UTgPawn::execUpdateClientDevices(FFrame&, void* const) + +native function TgDevice GetDeviceByEqPoint(int eEqPoint); // Export UTgPawn::execGetDeviceByEqPoint(FFrame&, void* const) + +native function TgDeviceForm CreateDeviceForm(EquipDeviceInfo Info); // Export UTgPawn::execCreateDeviceForm(FFrame&, void* const) + +native function DeviceFormChanged(optional bool bForceReload=false); // Export UTgPawn::execDeviceFormChanged(FFrame&, void* const) + +native function bool ApplyPawnSetup(); // Export UTgPawn::execApplyPawnSetup(FFrame&, void* const) + +native function InitializeDefaultProps(); // Export UTgPawn::execInitializeDefaultProps(FFrame&, void* const) + +native function AddProperty(int nPropId, float fBase, float fRaw, float FMin, float FMax); // Export UTgPawn::execAddProperty(FFrame&, void* const) + +native function TgProperty GetProperty(int nPropIndex); // Export UTgPawn::execGetProperty(FFrame&, void* const) + +native function TgProperty GetPropertyById(int nPropId); // Export UTgPawn::execGetPropertyById(FFrame&, void* const) + +native function SetProperty(int nPropIndex, float fNewValue); // Export UTgPawn::execSetProperty(FFrame&, void* const) + +native function SetPropCurrentValue(int nPropIndex, float nNewValue); // Export UTgPawn::execSetPropCurrentValue(FFrame&, void* const) + +native function ResetProperties(); // Export UTgPawn::execResetProperties(FFrame&, void* const) + +native function float GetSlowDiminishing(); // Export UTgPawn::execGetSlowDiminishing(FFrame&, void* const) + +native function bool IsDebuffImmune(); // Export UTgPawn::execIsDebuffImmune(FFrame&, void* const) + +native function bool IsDamageOverTimeImmune(); // Export UTgPawn::execIsDamageOverTimeImmune(FFrame&, void* const) + +native function bool IsSuperiorCrowdControlImmune(); // Export UTgPawn::execIsSuperiorCrowdControlImmune(FFrame&, void* const) + +native function bool IsCrowdControlImmune(); // Export UTgPawn::execIsCrowdControlImmune(FFrame&, void* const) + +native function CrowdControlBreak(); // Export UTgPawn::execCrowdControlBreak(FFrame&, void* const) + +native function bool SpecialAOEImmunity(Vector AOECenter, TgDeviceFire instigatingFiremode); // Export UTgPawn::execSpecialAOEImmunity(FFrame&, void* const) + +native function int DrawScaledString(Canvas CanvasToUse, float StartX, float StartY, string NameString, Font NameFont, Color NameColor, float Scale); // Export UTgPawn::execDrawScaledString(FFrame&, void* const) + +native function int DrawNameText(Canvas CanvasToUse, float StartX, float StartY, string NameString, Font NameFont, Color NameColor, float Scale); // Export UTgPawn::execDrawNameText(FFrame&, void* const) + +native function Vector NativeCanvasProject(Canvas CanvasToUse, Vector vLocation); // Export UTgPawn::execNativeCanvasProject(FFrame&, void* const) + +native function FlashResetReplication(); // Export UTgPawn::execFlashResetReplication(FFrame&, void* const) + +native function FlashFireMode(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashFireMode(FFrame&, void* const) + +native function FlashTargeting(int nDeviceInstanceId, int nFireModeNum, optional int nEquipSlot, optional int nSocketIndex, optional bool bSuccessfulHit); // Export UTgPawn::execFlashTargeting(FFrame&, void* const) + +native function FlashBuildUp(int nDeviceInstanceId, int nFireModeNum, optional int nEquipSlot, optional int nSocketIndex, optional float fBuildupTime=0.0000000); // Export UTgPawn::execFlashBuildUp(FFrame&, void* const) + +native function FlashPlayEmote(TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execFlashPlayEmote(FFrame&, void* const) + +native function FlashPlayEmoteExcludeOwner(TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execFlashPlayEmoteExcludeOwner(FFrame&, void* const) + +native function FlashFire(int nDeviceInstanceId, int nFireModeNum, Vector vNewLoc, optional int nEquipSlot, optional int nSocketIndex, optional bool bsuccesfulhit, optional float RefireTime); // Export UTgPawn::execFlashFire(FFrame&, void* const) + +native function FlashFireMulti(int nDeviceInstanceId, int nFireModeNum, Vector vAimStart, Vector vAimDir, array hitRanges, float fMaxRange, int nSeed, float fSpreadAngle, optional int nEquipSlot, optional int nSocketIndex, optional bool bsuccesfulhit, optional float RefireTime); // Export UTgPawn::execFlashFireMulti(FFrame&, void* const) + +native function FlashFireNoSim(int nDeviceInstanceId, int nFireModeNum, Vector vNewLoc, optional int nEquipSlot, optional int nSocketIndex, optional bool bsuccesfulhit, optional float RefireTime); // Export UTgPawn::execFlashFireNoSim(FFrame&, void* const) + +native function FlashArcing(int nDeviceInstanceId, int nFireModeNum, Vector vNewLoc, Vector vOldLoc, Actor Target, optional int nEquipSlot, optional int nSocketIndex, optional bool bsuccesfulhit); // Export UTgPawn::execFlashArcing(FFrame&, void* const) + +native function FlashStopFire(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashStopFire(FFrame&, void* const) + +native function FlashStartFire(int nDeviceInstanceId, int nFireModeNum, float RefireTime, Actor Target, optional int nAmmoRemaining=0); // Export UTgPawn::execFlashStartFire(FFrame&, void* const) + +native function FlashReload(int nDeviceInstanceId, float fReloadTime, optional int nAmmoRemaining=0, optional int nReloadAnimType=0); // Export UTgPawn::execFlashReload(FFrame&, void* const) + +native function FlashCooldown(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashCooldown(FFrame&, void* const) + +native function FlashCooldownDone(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashCooldownDone(FFrame&, void* const) + +native function FlashBlock(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashBlock(FFrame&, void* const) + +native function FlashBlockFx(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashBlockFx(FFrame&, void* const) + +native function FlashBlockDone(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashBlockDone(FFrame&, void* const) + +native function FlashInterrupt(int nDeviceInstanceId); // Export UTgPawn::execFlashInterrupt(FFrame&, void* const) + +native function FlashSuccessfulHit(int nDeviceInstanceId, int nFireModeNum, Actor Target, float DamageAmount, Vector HitLocation, Vector HitNormal, optional ExtraDamageInfo ExtraInfo); // Export UTgPawn::execFlashSuccessfulHit(FFrame&, void* const) + +native function FlashEventUpdate(); // Export UTgPawn::execFlashEventUpdate(FFrame&, void* const) + +native function FlashModeEquipDone(int nDeviceInstanceId, int nFireModeNum); // Export UTgPawn::execFlashModeEquipDone(FFrame&, void* const) + +native function FlashHitReaction(); // Export UTgPawn::execFlashHitReaction(FFrame&, void* const) + +native function FlashDestruct(int nDeviceInstanceId, Vector vLocation); // Export UTgPawn::execFlashDestruct(FFrame&, void* const) + +native function FlashChangeMesh(); // Export UTgPawn::execFlashChangeMesh(FFrame&, void* const) + +native function FlashTeleportFx(int nTeleportState, Vector vLocation); // Export UTgPawn::execFlashTeleportFx(FFrame&, void* const) + +native function FlashLevelupFx(); // Export UTgPawn::execFlashLevelupFx(FFrame&, void* const) + +native function FlashPlaySpecialEffect(int PlaySpecialEffectIndex, optional Vector vLocation, optional Vector vHitNormal, optional Actor inActor); // Export UTgPawn::execFlashPlaySpecialEffect(FFrame&, void* const) + +native function FlashSpawnSpecialFX(int nFxID, Vector vLocation, optional Vector vNormal); // Export UTgPawn::execFlashSpawnSpecialFX(FFrame&, void* const) + +native function FlashPetSuccessfulHit(int nFxID); // Export UTgPawn::execFlashPetSuccessfulHit(FFrame&, void* const) + +native function FlashGeneric1(int nDeviceInstanceId, int nFireModeNum, optional bool bIsSimulated=false, optional byte byExtraData=0); // Export UTgPawn::execFlashGeneric1(FFrame&, void* const) + +native function FlashGeneric2(int nDeviceInstanceId, int nFireModeNum, optional bool bIsSimulated=false, optional byte byExtraData=0); // Export UTgPawn::execFlashGeneric2(FFrame&, void* const) + +native function FlashGeneric3(int nDeviceInstanceId, int nFireModeNum, optional bool bIsSimulated=false, optional byte byExtraData=0); // Export UTgPawn::execFlashGeneric3(FFrame&, void* const) + +native function FlashGeneric4(int nDeviceInstanceId, int nFireModeNum, optional bool bIsSimulated=false, optional byte byExtraData=0); // Export UTgPawn::execFlashGeneric4(FFrame&, void* const) + +native function FlashGeneric5(int nDeviceInstanceId, int nFireModeNum, optional bool bIsSimulated=false, optional byte byExtraData=0); // Export UTgPawn::execFlashGeneric5(FFrame&, void* const) + +native function FlashTransitionIn(int nDeviceInstanceId, int nFireModeNum, float fTransitionPercent, float fTotalTransitionTime); // Export UTgPawn::execFlashTransitionIn(FFrame&, void* const) + +native function FlashTransitionOut(int nDeviceInstanceId, int nFireModeNum, float fTransitionPercent, float fTotalTransitionTime); // Export UTgPawn::execFlashTransitionOut(FFrame&, void* const) + +native function FlashHitDirection(Vector vLocation, int nDamageAmount, Class DamageType, const out ExtraDamageInfo ExtraInfo); // Export UTgPawn::execFlashHitDirection(FFrame&, void* const) + +native function FlashKillOrAssist(Actor Target, bool bIsKill); // Export UTgPawn::execFlashKillOrAssist(FFrame&, void* const) + +native function ReapplyLevelEffectGroups(optional int nPrevLevel=0, optional int nCurrentLevel=0, optional bool bPreserveParams=false); // Export UTgPawn::execReapplyLevelEffectGroups(FFrame&, void* const) + +native function ReapplyLoadoutEffects(optional bool bKeepFiringMount); // Export UTgPawn::execReapplyLoadoutEffects(FFrame&, void* const) + +native function bool bIsEditor(); // Export UTgPawn::execbIsEditor(FFrame&, void* const) + +native function DrawClientDebug(); // Export UTgPawn::execDrawClientDebug(FFrame&, void* const) + +native function ShowCombo(int nPawnId, optional bool bCrit=false); // Export UTgPawn::execShowCombo(FFrame&, void* const) + +native function OnSpawnGatesOpened(); // Export UTgPawn::execOnSpawnGatesOpened(FFrame&, void* const) + +native function bool TermRagdoll(); // Export UTgPawn::execTermRagdoll(FFrame&, void* const) + +native function CancelEmote(optional bool bVerifyNoRelevantEmotes, optional TgAnimNodeEmoteSequence Exclude); // Export UTgPawn::execCancelEmote(FFrame&, void* const) + +native function AddRemoveAnimSetList(array AnimSetList, bool bAdd); // Export UTgPawn::execAddRemoveAnimSetList(FFrame&, void* const) + +native function float GetGravityZ(); // Export UTgPawn::execGetGravityZ(FFrame&, void* const) + +native function bool IsJumpDisabled(); // Export UTgPawn::execIsJumpDisabled(FFrame&, void* const) + +native function bool CanSeeActor(Actor Other); // Export UTgPawn::execCanSeeActor(FFrame&, void* const) + +native function SetMeshVisibility(bool bVisible); // Export UTgPawn::execSetMeshVisibility(FFrame&, void* const) + +native function TgSpecialFx GetSpecialFx(int nSpecialFxId); // Export UTgPawn::execGetSpecialFx(FFrame&, void* const) + +native function MeshComponent CreateMeshComponent(int nMeshId, optional MeshComponent DestComponent, optional bool bPartialFixup=false); // Export UTgPawn::execCreateMeshComponent(FFrame&, void* const) + +native function AddPet(TgPawn PetPawn); // Export UTgPawn::execAddPet(FFrame&, void* const) + +native function SetPetOwner(TgPawn petOwner); // Export UTgPawn::execSetPetOwner(FFrame&, void* const) + +native function KillPet(TgPawn PetPawn); // Export UTgPawn::execKillPet(FFrame&, void* const) + +native function KillPets(); // Export UTgPawn::execKillPets(FFrame&, void* const) + +native function bool IsMyPet(Actor Other); // Export UTgPawn::execIsMyPet(FFrame&, void* const) + +native function ReportPetDeath(TgPawn PetPawn); // Export UTgPawn::execReportPetDeath(FFrame&, void* const) + +native function KillOwnedBots(); // Export UTgPawn::execKillOwnedBots(FFrame&, void* const) + +native function AdjustMeshTranslation(); // Export UTgPawn::execAdjustMeshTranslation(FFrame&, void* const) + +native function SetTaskForceNumber(int nTaskForce); // Export UTgPawn::execSetTaskForceNumber(FFrame&, void* const) + +native function byte GetTaskForceNumber(); // Export UTgPawn::execGetTaskForceNumber(FFrame&, void* const) + +native function TgRepInfo_Player GetPRI(); // Export UTgPawn::execGetPRI(FFrame&, void* const) + +native function float GetAccuracyModifier(optional float ClientMovementTimeStamp); // Export UTgPawn::execGetAccuracyModifier(FFrame&, void* const) + +native function ModifyAccuracyForReticleBloom(out float fAccuracy); // Export UTgPawn::execModifyAccuracyForReticleBloom(FFrame&, void* const) + +native function ValidateStatsTracker(); // Export UTgPawn::execValidateStatsTracker(FFrame&, void* const) + +native function StatsCleanup(); // Export UTgPawn::execStatsCleanup(FFrame&, void* const) + +native function BeginStats(); // Export UTgPawn::execBeginStats(FFrame&, void* const) + +native function EndStats(); // Export UTgPawn::execEndStats(FFrame&, void* const) + +native function TrackDamagedPlayer(TgPawn TargetPawn, int nDeviceModeID, int nDamage, int nDamageType, bool bInHand); // Export UTgPawn::execTrackDamagedPlayer(FFrame&, void* const) + +native function TrackDamagedBot(TgPawn TargetPawn, int nDeviceModeID, int nDamage, int nDamageType, optional bool bIsGod); // Export UTgPawn::execTrackDamagedBot(FFrame&, void* const) + +native function TrackKilledPlayer(int nDeviceModeID); // Export UTgPawn::execTrackKilledPlayer(FFrame&, void* const) + +native function TrackFromPlayerDeath(int nDeviceModeID); // Export UTgPawn::execTrackFromPlayerDeath(FFrame&, void* const) + +native function TrackKilledBot(int nDeviceModeID); // Export UTgPawn::execTrackKilledBot(FFrame&, void* const) + +native function TrackHealing(int nDeviceModeID, float fDamage, float fMissingHealth, int nMaxHealth); // Export UTgPawn::execTrackHealing(FFrame&, void* const) + +native function TrackSelfHealing(float fHealing, float fMissingHealth, int nMaxHealth); // Export UTgPawn::execTrackSelfHealing(FFrame&, void* const) + +native function TrackBotHealing(int nDeviceModeID, float fDamage, float fMissingHealth, int nMaxHealth); // Export UTgPawn::execTrackBotHealing(FFrame&, void* const) + +native function TrackFired(int nDeviceModeID); // Export UTgPawn::execTrackFired(FFrame&, void* const) + +native function TrackCompleteKillInfo(int nKillerCharacterID, int nKillerDeviceModeID, int nVictimCharacterID, int nVictimDeviceModeID, Vector KillerLocation, Vector VictimLocation, Vector PetLocation, bool bPetKill); // Export UTgPawn::execTrackCompleteKillInfo(FFrame&, void* const) + +native function RemoveTrackFired(int nDeviceModeID); // Export UTgPawn::execRemoveTrackFired(FFrame&, void* const) + +native function TrackHit(int nDeviceModeID, float fDistance, bool bHitPlayer); // Export UTgPawn::execTrackHit(FFrame&, void* const) + +native function TrackReleaseTime(int nDeviceModeID, float fReleaseTime); // Export UTgPawn::execTrackReleaseTime(FFrame&, void* const) + +native function TrackTeamDamage(int nDeviceModeID, int nDamage); // Export UTgPawn::execTrackTeamDamage(FFrame&, void* const) + +native function TrackSelfDamage(int nDeviceModeID, int nDamage); // Export UTgPawn::execTrackSelfDamage(FFrame&, void* const) + +native function TrackTeamKill(int nDeviceModeID); // Export UTgPawn::execTrackTeamKill(FFrame&, void* const) + +native function TrackSelfKill(int nDeviceModeID); // Export UTgPawn::execTrackSelfKill(FFrame&, void* const) + +native function TrackDamageTaken(TgPawn theInstigator, int nDamage, int nDamageType); // Export UTgPawn::execTrackDamageTaken(FFrame&, void* const) + +native function TrackDamageMitigated(int nAmount); // Export UTgPawn::execTrackDamageMitigated(FFrame&, void* const) + +native function UpdateDamagers(TgPawn Damager); // Export UTgPawn::execUpdateDamagers(FFrame&, void* const) + +native function UpdateEnemyAssists(TgPawn Assister); // Export UTgPawn::execUpdateEnemyAssists(FFrame&, void* const) + +native function TrackKill(TgPawn Killer); // Export UTgPawn::execTrackKill(FFrame&, void* const) + +native function TrackDeath(); // Export UTgPawn::execTrackDeath(FFrame&, void* const) + +native function UpdateHUDScores(); // Export UTgPawn::execUpdateHUDScores(FFrame&, void* const) + +native function SetPhase(int nNewPhase); // Export UTgPawn::execSetPhase(FFrame&, void* const) + +native function PlaySoundCue(int nSoundCueId); // Export UTgPawn::execPlaySoundCue(FFrame&, void* const) + +native function bool ShouldPawnMeshBeHiddenThisTick(); // Export UTgPawn::execShouldPawnMeshBeHiddenThisTick(FFrame&, void* const) + +native function bool ShouldInHandDeviceBeHiddenThisTick(); // Export UTgPawn::execShouldInHandDeviceBeHiddenThisTick(FFrame&, void* const) + +native function bool IsInvisibleToAI(); // Export UTgPawn::execIsInvisibleToAI(FFrame&, void* const) + +native function bool IsHittable(); // Export UTgPawn::execIsHittable(FFrame&, void* const) + +native function CalcVolumeFadeValue(float fDeltaTime); // Export UTgPawn::execCalcVolumeFadeValue(FFrame&, void* const) + +native function CalcDistanceFadeValue(float fDeltaTime); // Export UTgPawn::execCalcDistanceFadeValue(FFrame&, void* const) + +native function CalcStealthFadeValue(float fDeltaTime); // Export UTgPawn::execCalcStealthFadeValue(FFrame&, void* const) + +native function CalcObscuringDeployableFadeValue(float fDeltaTime); // Export UTgPawn::execCalcObscuringDeployableFadeValue(FFrame&, void* const) + +native function CalcBlindingDeployableFadeValue(float fDeltaTime); // Export UTgPawn::execCalcBlindingDeployableFadeValue(FFrame&, void* const) + +native function bool OverrideDistanceFadeRange(); // Export UTgPawn::execOverrideDistanceFadeRange(FFrame&, void* const) + +native function bool ShouldShowHudOverlay(TgPawn PlayerPawn); // Export UTgPawn::execShouldShowHudOverlay(FFrame&, void* const) + +native function bool CanBeAffectedByVortices(); // Export UTgPawn::execCanBeAffectedByVortices(FFrame&, void* const) + +native function ForceRecalculateMaterial(); // Export UTgPawn::execForceRecalculateMaterial(FFrame&, void* const) + +native function RecalculateMaterial(bool bIsFriendlyWithLocalPawn, optional bool bForce); // Export UTgPawn::execRecalculateMaterial(FFrame&, void* const) + +native function UpdateDropShadow(); // Export UTgPawn::execUpdateDropShadow(FFrame&, void* const) + +native function UpdateStealthMaterialBasedOnNearbyEnemies(); // Export UTgPawn::execUpdateStealthMaterialBasedOnNearbyEnemies(FFrame&, void* const) + +native function SetScalarMaterialParamOnMesh(MeshComponent MeshComp, string sName, float fValue, optional int nMaterialIndex=-1); // Export UTgPawn::execSetScalarMaterialParamOnMesh(FFrame&, void* const) + +native function float GetTerminalVelocity(); // Export UTgPawn::execGetTerminalVelocity(FFrame&, void* const) + +native function PlayCurrencyFx(TgRepInfo_Player sourcePRI, int nCurrency, int nMsgId); // Export UTgPawn::execPlayCurrencyFx(FFrame&, void* const) + +native function PlayTeleportFx(int nTeleportState, Vector vLoc); // Export UTgPawn::execPlayTeleportFx(FFrame&, void* const) + +native function PlaySpecialEffectEvent(int PlaySpecialEffectIndex, Vector vLoc, Vector vHitNormal, optional Actor inActor); // Export UTgPawn::execPlaySpecialEffectEvent(FFrame&, void* const) + +simulated function PrepareIntro() { } + +simulated function PlaySpawnFx() { } + +native function OnPawnDied(); // Export UTgPawn::execOnPawnDied(FFrame&, void* const) + +native function UpdatePhysicsAsset(); // Export UTgPawn::execUpdatePhysicsAsset(FFrame&, void* const) + +native function TgDevice GetDeviceByInstanceId(int nDeviceInstanceId); // Export UTgPawn::execGetDeviceByInstanceId(FFrame&, void* const) + +native function TgDevice GetDeviceById(int nDeviceId); // Export UTgPawn::execGetDeviceById(FFrame&, void* const) + +native function bool ShouldBlockFiringFrom1pSwitch(); // Export UTgPawn::execShouldBlockFiringFrom1pSwitch(FFrame&, void* const) + +native function TgDevice GetCurrentInhandDevice(); // Export UTgPawn::execGetCurrentInhandDevice(FFrame&, void* const) + +native function bool IsStealthed(TgRepInfo_Player Viewer); // Export UTgPawn::execIsStealthed(FFrame&, void* const) + +native function bool IsHardStealthed(); // Export UTgPawn::execIsHardStealthed(FFrame&, void* const) + +native function bool IsHardRevealed(TgRepInfo_Player Viewer); // Export UTgPawn::execIsHardRevealed(FFrame&, void* const) + +native function bool IsDetector(); // Export UTgPawn::execIsDetector(FFrame&, void* const) + +native function PlayDetectedFx(); // Export UTgPawn::execPlayDetectedFx(FFrame&, void* const) + +native function RemoveDetectedFx(); // Export UTgPawn::execRemoveDetectedFx(FFrame&, void* const) + +native function int NumVisibilityVolumesTouching(); // Export UTgPawn::execNumVisibilityVolumesTouching(FFrame&, void* const) + +native function int FindVisibilityVolume(TgVisibilityVolume VisVolume); // Export UTgPawn::execFindVisibilityVolume(FFrame&, void* const) + +native function bool IsInSameVisibilityVolume(TgPawn Other); // Export UTgPawn::execIsInSameVisibilityVolume(FFrame&, void* const) + +native function bool IsInSameVisibilityVolumeBeacon(TgRespawnBeaconExit Other); // Export UTgPawn::execIsInSameVisibilityVolumeBeacon(FFrame&, void* const) + +native function TgVisibilityVolume GetATouchingVisibilityVolume(); // Export UTgPawn::execGetATouchingVisibilityVolume(FFrame&, void* const) + +native function bool IsInFriendlyObscuringDeployable(); // Export UTgPawn::execIsInFriendlyObscuringDeployable(FFrame&, void* const) + +native function bool IsInCommonEnemyObscuringDeployable(TgPawn Viewer); // Export UTgPawn::execIsInCommonEnemyObscuringDeployable(FFrame&, void* const) + +native function bool IsInEnemyObscuringDeployable(TgPawn Viewer); // Export UTgPawn::execIsInEnemyObscuringDeployable(FFrame&, void* const) + +native function bool IsDeployableObscuredFrom(TgPawn Viewer); // Export UTgPawn::execIsDeployableObscuredFrom(FFrame&, void* const) + +native function bool IsDeployableBlindedFrom(Actor Viewer); // Export UTgPawn::execIsDeployableBlindedFrom(FFrame&, void* const) + +native function bool LocalPlayerHasLOS(); // Export UTgPawn::execLocalPlayerHasLOS(FFrame&, void* const) + +native function Vector GetLocation(); // Export UTgPawn::execGetLocation(FFrame&, void* const) + +native function KillDeployables(bool bAll); // Export UTgPawn::execKillDeployables(FFrame&, void* const) + +native function SetMeshScalarValue(name ScalarParam, float ScalarValue); // Export UTgPawn::execSetMeshScalarValue(FFrame&, void* const) + +native function SetMeshVectorValue(name ScalarParam, const out LinearColor ColorValue); // Export UTgPawn::execSetMeshVectorValue(FFrame&, void* const) + +native function SetMeshComponentScalarValue(MeshComponent theMesh, name ScalarParam, float ScalarValue); // Export UTgPawn::execSetMeshComponentScalarValue(FFrame&, void* const) + +native function SetMeshComponentVectorValue(MeshComponent theMesh, name ScalarParam, const out LinearColor ColorValue); // Export UTgPawn::execSetMeshComponentVectorValue(FFrame&, void* const) + +native function float GetHealthPercent(); // Export UTgPawn::execGetHealthPercent(FFrame&, void* const) + +native function float GetManaPercent(); // Export UTgPawn::execGetManaPercent(FFrame&, void* const) + +native function SyncMana(); // Export UTgPawn::execSyncMana(FFrame&, void* const) + +native function RegainPools(float fDelta); // Export UTgPawn::execRegainPools(FFrame&, void* const) + +native function RegainManaPool(float fDelta); // Export UTgPawn::execRegainManaPool(FFrame&, void* const) + +native function RegainEnergyPool(float fDelta); // Export UTgPawn::execRegainEnergyPool(FFrame&, void* const) + +native function bool IsFriendlyWithLocalPawn(); // Export UTgPawn::execIsFriendlyWithLocalPawn(FFrame&, void* const) + +native function bool PlayFullBodyAnim(name AnimName, float Rate, float BlendInTime, float BlendOutTime, bool bLooping, bool bOverride, optional bool bBlendOutIfVelocityIsGreaterThanZero, optional bool bHideInHandDevice); // Export UTgPawn::execPlayFullBodyAnim(FFrame&, void* const) + +native function float PlayFullBodyLoopingAnimWithTransition(name TransitionAnimName, name LoopingAnimName, float Rate, float BlendInTime, float BlendOutTime); // Export UTgPawn::execPlayFullBodyLoopingAnimWithTransition(FFrame&, void* const) + +native function PlayUpperBodyAnim(name AnimName, float Rate, float BlendInTime, float BlendOutTime, bool bLooping); // Export UTgPawn::execPlayUpperBodyAnim(FFrame&, void* const) + +native function bool CanMove(); // Export UTgPawn::execCanMove(FFrame&, void* const) + +native function bool IsNonCombat(); // Export UTgPawn::execIsNonCombat(FFrame&, void* const) + +native function LoadDazedMIC(int FxId); // Export UTgPawn::execLoadDazedMIC(FFrame&, void* const) + +native function float DazedStrafeOffset(float OffsetFromWorldTime); // Export UTgPawn::execDazedStrafeOffset(FFrame&, void* const) + +native function Vector2D DazedRotatorOffset(float OffsetFromWorldTime); // Export UTgPawn::execDazedRotatorOffset(FFrame&, void* const) + +native function PlayCustomAnimation(int nAnimResId, bool bFullBody, float fTime); // Export UTgPawn::execPlayCustomAnimation(FFrame&, void* const) + +native function UpdatePlayerStatUI(); // Export UTgPawn::execUpdatePlayerStatUI(FFrame&, void* const) + +native function UpdateSpectatorStatUI(); // Export UTgPawn::execUpdateSpectatorStatUI(FFrame&, void* const) + +native function ForceUpdateComponents(optional bool bCollisionUpdate=false, optional bool bTransformOnly=true); // Export UTgPawn::execForceUpdateComponents(FFrame&, void* const) + +native function float AdjustRespawnTime(float InRespawnTime); // Export UTgPawn::execAdjustRespawnTime(FFrame&, void* const) + +native function bool IsGod(); // Export UTgPawn::execIsGod(FFrame&, void* const) + +native function bool IsGodDecoy(); // Export UTgPawn::execIsGodDecoy(FFrame&, void* const) + +native function bool IsStatTrackable(); // Export UTgPawn::execIsStatTrackable(FFrame&, void* const) + +native function Rotator TweenRelRotation(float fDeltaSeconds, Rotator currRel, Rotator targetRel); // Export UTgPawn::execTweenRelRotation(FFrame&, void* const) + +native function ResetSkelControls(SkeletalMeshComponent SkelComp); // Export UTgPawn::execResetSkelControls(FFrame&, void* const) + +native function bool IsGrabBreakable(TgPawn.EGrabState tweenState); // Export UTgPawn::execIsGrabBreakable(FFrame&, void* const) + +native function bool IsInOffensiveGrab(); // Export UTgPawn::execIsInOffensiveGrab(FFrame&, void* const) + +native function bool IsPerformingOffensiveGrab(); // Export UTgPawn::execIsPerformingOffensiveGrab(FFrame&, void* const) + +native function bool IsTweenBreakable(TgPawn.ETweenState tweenState); // Export UTgPawn::execIsTweenBreakable(FFrame&, void* const) + +native function bool IsInOffensiveTween(); // Export UTgPawn::execIsInOffensiveTween(FFrame&, void* const) + +native function bool IsConfused(); // Export UTgPawn::execIsConfused(FFrame&, void* const) + +native function bool ShouldBeFirstPersonThisTick(); // Export UTgPawn::execShouldBeFirstPersonThisTick(FFrame&, void* const) + +native function GiveEnergy(float energy); // Export UTgPawn::execGiveEnergy(FFrame&, void* const) + +native function bool AllowBoostedJump(); // Export UTgPawn::execAllowBoostedJump(FFrame&, void* const) + +native function UpdateRespawnBeaconReticule(optional bool bForce); // Export UTgPawn::execUpdateRespawnBeaconReticule(FFrame&, void* const) + +native function TryToPlayPainAkEvent(); // Export UTgPawn::execTryToPlayPainAkEvent(FFrame&, void* const) + +native function SmoothCorrectionTranslationTick(float DeltaSeconds, optional bool bForce); // Export UTgPawn::execSmoothCorrectionTranslationTick(FFrame&, void* const) + +native function SetUncompressedRemoteViewPitch(int Pitch); // Export UTgPawn::execSetUncompressedRemoteViewPitch(FFrame&, void* const) + +native function ForceUpdateUncompressedRemoteYaw(); // Export UTgPawn::execForceUpdateUncompressedRemoteYaw(FFrame&, void* const) + +native function ReloadMeshAssemblies(); // Export UTgPawn::execReloadMeshAssemblies(FFrame&, void* const) + +native function Vector GetChargeDirection(); // Export UTgPawn::execGetChargeDirection(FFrame&, void* const) + +native simulated function PhysicalMaterial TraceWorldPhysicalGeometry(Vector StartLoc, Vector EndLoc, out Vector TraceHitLocation); // Export UTgPawn::execTraceWorldPhysicalGeometry(FFrame&, void* const) + +native function bool MySpawnGatesAreOpen(); // Export UTgPawn::execMySpawnGatesAreOpen(FFrame&, void* const) + +native function SetAkPlayerHealthPercent(float fPercent); // Export UTgPawn::execSetAkPlayerHealthPercent(FFrame&, void* const) + +native function UpdateReverbVolume(Vector WorldLocation, optional ReverbVolume VolumeTouched); // Export UTgPawn::execUpdateReverbVolume(FFrame&, void* const) + +native function ReverbVolume GetCurrentReverbVolume(); // Export UTgPawn::execGetCurrentReverbVolume(FFrame&, void* const) + +native function ReverbVolume GettReverbVolumeForAudioAltitude(); // Export UTgPawn::execGettReverbVolumeForAudioAltitude(FFrame&, void* const) + +native function PostAkEvent(AkEvent InAkEvent); // Export UTgPawn::execPostAkEvent(FFrame&, void* const) + +native function PostEmoteAkEvent(AkEvent InAkEvent, TgPawn.EEmote Emote); // Export UTgPawn::execPostEmoteAkEvent(FFrame&, void* const) + +native function bool IsCinematicMode(); // Export UTgPawn::execIsCinematicMode(FFrame&, void* const) + +native function float GetHealth(); // Export UTgPawn::execGetHealth(FFrame&, void* const) + +native function float GetMaxHealth(); // Export UTgPawn::execGetMaxHealth(FFrame&, void* const) + +native function float GetMana(); // Export UTgPawn::execGetMana(FFrame&, void* const) + +native function float GetMaxMana(); // Export UTgPawn::execGetMaxMana(FFrame&, void* const) + +native function float GetShieldHealth(); // Export UTgPawn::execGetShieldHealth(FFrame&, void* const) + +native function float GetMaxShield(); // Export UTgPawn::execGetMaxShield(FFrame&, void* const) + +native function bool CanTakeHealthDamage(); // Export UTgPawn::execCanTakeHealthDamage(FFrame&, void* const) + +native function bool CanDealHeadShots(); // Export UTgPawn::execCanDealHeadShots(FFrame&, void* const) + +native function bool CanTakeHeadShots(); // Export UTgPawn::execCanTakeHeadShots(FFrame&, void* const) + +native function bool OnlyTakeHeadShots(); // Export UTgPawn::execOnlyTakeHeadShots(FFrame&, void* const) + +native function bool IsImmuneToDamage(); // Export UTgPawn::execIsImmuneToDamage(FFrame&, void* const) + +native function bool CanBeExecuted(); // Export UTgPawn::execCanBeExecuted(FFrame&, void* const) + +native function bool IsImmuneToHealing(); // Export UTgPawn::execIsImmuneToHealing(FFrame&, void* const) + +native function BuffDamage(Actor Target, TgEffectDamage Effect, ImpactInfo Impact, float fBaseDamage, out float fProratedAmount, out ExtraDamageInfo ExtraInfo); // Export UTgPawn::execBuffDamage(FFrame&, void* const) + +native function float GetSpecialDamageDealtPercentAI(); // Export UTgPawn::execGetSpecialDamageDealtPercentAI(FFrame&, void* const) + +native function float GetSpecialDamageTakenPercentAI(); // Export UTgPawn::execGetSpecialDamageTakenPercentAI(FFrame&, void* const) + +native function MitigateHealthDamage(TgPawn pInstigator, TgEffectDamage Effect, ImpactInfo Impact, out float NewValue, out float fPercReduction); // Export UTgPawn::execMitigateHealthDamage(FFrame&, void* const) + +native function float GetDamageReductionPerc(TgDevice damageDev, TgEffectGroup eg); // Export UTgPawn::execGetDamageReductionPerc(FFrame&, void* const) + +native function TakeHealthDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgPawn::execTakeHealthDamage(FFrame&, void* const) + +native function bool WillHitSuccessfully(Actor aInstigator, ImpactInfo Impact); // Export UTgPawn::execWillHitSuccessfully(FFrame&, void* const) + +native function bool CanBeLifestealInstigator(); // Export UTgPawn::execCanBeLifestealInstigator(FFrame&, void* const) + +native function bool CanBeLifestealTarget(); // Export UTgPawn::execCanBeLifestealTarget(FFrame&, void* const) + +native function bool CanTakeManaDamage(); // Export UTgPawn::execCanTakeManaDamage(FFrame&, void* const) + +native function TakeManaDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgPawn::execTakeManaDamage(FFrame&, void* const) + +native function bool CanTakeShieldDamage(); // Export UTgPawn::execCanTakeShieldDamage(FFrame&, void* const) + +native function bool CanUsePersonalShield(); // Export UTgPawn::execCanUsePersonalShield(FFrame&, void* const) + +native function int TakePersonalShieldDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgPawn::execTakePersonalShieldDamage(FFrame&, void* const) + +native function bool ShieldDamageAppliesToHealth(); // Export UTgPawn::execShieldDamageAppliesToHealth(FFrame&, void* const) + +native function TakeStealthDamage(float fDamage); // Export UTgPawn::execTakeStealthDamage(FFrame&, void* const) + +native function float GetDamageToLeaveStealth(); // Export UTgPawn::execGetDamageToLeaveStealth(FFrame&, void* const) + +native function HandleNotificationsForAI(float fStatChange, TgPawn InstigatorPawn); // Export UTgPawn::execHandleNotificationsForAI(FFrame&, void* const) + +native function float GetPropCurrentValue(int nPropIndex); // Export UTgPawn::execGetPropCurrentValue(FFrame&, void* const) + +native function float GetPropCurrentValueByName(string propName); // Export UTgPawn::execGetPropCurrentValueByName(FFrame&, void* const) + +native function int GetPropIndex(int nPropId); // Export UTgPawn::execGetPropIndex(FFrame&, void* const) + +native function float GetMarkedPercent(Actor InstigatorPawn); // Export UTgPawn::execGetMarkedPercent(FFrame&, void* const) + +native function float GetMarkedPercentInhand(Actor InstigatorPawn); // Export UTgPawn::execGetMarkedPercentInhand(FFrame&, void* const) + +native function bool IsMarkedForMarkShot(); // Export UTgPawn::execIsMarkedForMarkShot(FFrame&, void* const) + +native function TgEffectManager GetEffectManager(); // Export UTgPawn::execGetEffectManager(FFrame&, void* const) + +native function TgCombatActor.GameplayDesignType GetDesignType(); // Export UTgPawn::execGetDesignType(FFrame&, void* const) + +native function bool IsPet(); // Export UTgPawn::execIsPet(FFrame&, void* const) + +native function Actor GetPetOwner(); // Export UTgPawn::execGetPetOwner(FFrame&, void* const) + +native function CheckUiVolumeTriggers(); // Export UTgPawn::execCheckUiVolumeTriggers(FFrame&, void* const) + +native function Vector GetTargetCenter(); // Export UTgPawn::execGetTargetCenter(FFrame&, void* const) + +native function bool NativeReplicatedEvent(name VarName); // Export UTgPawn::execNativeReplicatedEvent(FFrame&, void* const) + +native function OnLevelUp(); // Export UTgPawn::execOnLevelUp(FFrame&, void* const) + +native function OnProjectileExploded(TgProjectile ExplodedProjectile, Actor HitActor, Vector HitLocation, Vector HitNormal); // Export UTgPawn::execOnProjectileExploded(FFrame&, void* const) + +native function OnProjectileHitTarget(TgProjectile HittingProjectile, Vector HitLocation, Vector HitNormal, out byte bDestroyProjectile); // Export UTgPawn::execOnProjectileHitTarget(FFrame&, void* const) + +native function OnPostureChange(); // Export UTgPawn::execOnPostureChange(FFrame&, void* const) + +native function float NativeGetCollisionHeight(); // Export UTgPawn::execNativeGetCollisionHeight(FFrame&, void* const) + +native function float NativeGetCollisionRadius(); // Export UTgPawn::execNativeGetCollisionRadius(FFrame&, void* const) + +native function OnSetPlayerLevel(TgSeqAct_SetPlayerLevel Action); // Export UTgPawn::execOnSetPlayerLevel(FFrame&, void* const) + +native function float GetAirControl(); // Export UTgPawn::execGetAirControl(FFrame&, void* const) + +native function bool CanKnockbackAffectAC(); // Export UTgPawn::execCanKnockbackAffectAC(FFrame&, void* const) + +native function bool IsInFireLock(); // Export UTgPawn::execIsInFireLock(FFrame&, void* const) + +native function ConsumePowerPool(TgDevice Dev, int nPacingType, float fAmount); // Export UTgPawn::execConsumePowerPool(FFrame&, void* const) + +native function float GetCurrentPowerPoolValue(int nPacingType); // Export UTgPawn::execGetCurrentPowerPoolValue(FFrame&, void* const) + +native function float GetMaxPowerPoolValue(int nPacingType); // Export UTgPawn::execGetMaxPowerPoolValue(FFrame&, void* const) + +native reliable server function bool ServerUpdateLockedTarget(Actor Locked); // Export UTgPawn::execServerUpdateLockedTarget(FFrame&, void* const) + +native exec function bool HasDeathPostureAnimation(); // Export UTgPawn::execHasDeathPostureAnimation(FFrame&, void* const) + +native function UpdateMountScale(bool bIsMounted); // Export UTgPawn::execUpdateMountScale(FFrame&, void* const) + +native function float GetPhysicalPower(); // Export UTgPawn::execGetPhysicalPower(FFrame&, void* const) + +native function float GetMagicalPower(); // Export UTgPawn::execGetMagicalPower(FFrame&, void* const) + +native function float GetUtilityPower(); // Export UTgPawn::execGetUtilityPower(FFrame&, void* const) + +native function float GetPhysicalPowerBot(); // Export UTgPawn::execGetPhysicalPowerBot(FFrame&, void* const) + +native function float GetMagicalPowerBot(); // Export UTgPawn::execGetMagicalPowerBot(FFrame&, void* const) + +native function float GetUtilityPowerBot(); // Export UTgPawn::execGetUtilityPowerBot(FFrame&, void* const) + +native function float GetPhysicalPowerItem(); // Export UTgPawn::execGetPhysicalPowerItem(FFrame&, void* const) + +native function float GetMagicalPowerItem(); // Export UTgPawn::execGetMagicalPowerItem(FFrame&, void* const) + +native function float GetUtilityPowerItem(); // Export UTgPawn::execGetUtilityPowerItem(FFrame&, void* const) + +native function float GetLifeSteal(); // Export UTgPawn::execGetLifeSteal(FFrame&, void* const) + +native function float GetLifeStealInstigatorOnly(TgPawn InstigatorPawn); // Export UTgPawn::execGetLifeStealInstigatorOnly(FFrame&, void* const) + +native function float GetVengeanceLifesteal(TgPawn Target); // Export UTgPawn::execGetVengeanceLifesteal(FFrame&, void* const) + +native function float GetCombatDurationReduction(); // Export UTgPawn::execGetCombatDurationReduction(FFrame&, void* const) + +native function float GetHealthRegen(); // Export UTgPawn::execGetHealthRegen(FFrame&, void* const) + +native function float GetManaRegen(); // Export UTgPawn::execGetManaRegen(FFrame&, void* const) + +native function float GetEnergyRegen(); // Export UTgPawn::execGetEnergyRegen(FFrame&, void* const) + +native function float GetEnergy(); // Export UTgPawn::execGetEnergy(FFrame&, void* const) + +native function float GetMaxEnergy(); // Export UTgPawn::execGetMaxEnergy(FFrame&, void* const) + +native function float GetMaxHealthWithoutPercentBuff(); // Export UTgPawn::execGetMaxHealthWithoutPercentBuff(FFrame&, void* const) + +native function float GetMaxShieldHealth(); // Export UTgPawn::execGetMaxShieldHealth(FFrame&, void* const) + +native function float GetVisionRange(); // Export UTgPawn::execGetVisionRange(FFrame&, void* const) + +native function float GetHealingTakenPerc(); // Export UTgPawn::execGetHealingTakenPerc(FFrame&, void* const) + +native function float GetHealingTakenOthersPerc(); // Export UTgPawn::execGetHealingTakenOthersPerc(FFrame&, void* const) + +native function float ApplyDamageTakenScaling(float Value); // Export UTgPawn::execApplyDamageTakenScaling(FFrame&, void* const) + +native function float GetProtectionCC(); // Export UTgPawn::execGetProtectionCC(FFrame&, void* const) + +native function float GetDamageTakenPerc(); // Export UTgPawn::execGetDamageTakenPerc(FFrame&, void* const) + +native function float GetDamageTakenPercInhand(); // Export UTgPawn::execGetDamageTakenPercInhand(FFrame&, void* const) + +native function float GetDamageTakenPercAOE(); // Export UTgPawn::execGetDamageTakenPercAOE(FFrame&, void* const) + +native function float GetDamageTakenPercDirect(); // Export UTgPawn::execGetDamageTakenPercDirect(FFrame&, void* const) + +native function float GetDamageTakenPercPhys(); // Export UTgPawn::execGetDamageTakenPercPhys(FFrame&, void* const) + +native function float GetDamageCapPercMaxHP(); // Export UTgPawn::execGetDamageCapPercMaxHP(FFrame&, void* const) + +native function float GetDamageCapPercCurHP(); // Export UTgPawn::execGetDamageCapPercCurHP(FFrame&, void* const) + +native function float GetDamageDealtPerc(); // Export UTgPawn::execGetDamageDealtPerc(FFrame&, void* const) + +native function float GetDamageDealtPercBasicAttack(); // Export UTgPawn::execGetDamageDealtPercBasicAttack(FFrame&, void* const) + +native function float GetDamageDealtPercPhysical(); // Export UTgPawn::execGetDamageDealtPercPhysical(FFrame&, void* const) + +native function float GetDamageDealtPercMagical(); // Export UTgPawn::execGetDamageDealtPercMagical(FFrame&, void* const) + +native function float GetDamageDealtPercDeployableTarget(); // Export UTgPawn::execGetDamageDealtPercDeployableTarget(FFrame&, void* const) + +native function float GetDamageDealtPercShieldTarget(); // Export UTgPawn::execGetDamageDealtPercShieldTarget(FFrame&, void* const) + +native function float GetDamageDealtFlat(); // Export UTgPawn::execGetDamageDealtFlat(FFrame&, void* const) + +native function float GetHealBlock(); // Export UTgPawn::execGetHealBlock(FFrame&, void* const) + +native function bool GetMinimapRequireLOS(); // Export UTgPawn::execGetMinimapRequireLOS(FFrame&, void* const) + +native function float GetBackpedalPercent(); // Export UTgPawn::execGetBackpedalPercent(FFrame&, void* const) + +native function float GetUIGroundSpeed(); // Export UTgPawn::execGetUIGroundSpeed(FFrame&, void* const) + +native function float GetProcChanceMultiplier(); // Export UTgPawn::execGetProcChanceMultiplier(FFrame&, void* const) + +native function SetSpawnHealth(); // Export UTgPawn::execSetSpawnHealth(FFrame&, void* const) + +native function SetSpawnMana(); // Export UTgPawn::execSetSpawnMana(FFrame&, void* const) + +native function SetSpawnEnergy(); // Export UTgPawn::execSetSpawnEnergy(FFrame&, void* const) + +native function PawnOnDamaged(out OnDamagedParams Params); // Export UTgPawn::execPawnOnDamaged(FFrame&, void* const) + +native function PawnOnPreDamageMitigation(TgPawn attacker, TgEffectGroup eg, out float fDamage, int nPropertyId); // Export UTgPawn::execPawnOnPreDamageMitigation(FFrame&, void* const) + +native function PawnOnDamageMitigation(TgPawn attacker, TgEffectGroup eg, out float fDamage, int nPropertyId); // Export UTgPawn::execPawnOnDamageMitigation(FFrame&, void* const) + +native function PawnOnHealed(out OnHealedParams Params); // Export UTgPawn::execPawnOnHealed(FFrame&, void* const) + +native function PawnOnKilled(Actor pVictim); // Export UTgPawn::execPawnOnKilled(FFrame&, void* const) + +native function PawnOnAssisted(Actor pVictim); // Export UTgPawn::execPawnOnAssisted(FFrame&, void* const) + +native function PawnOnRevive(); // Export UTgPawn::execPawnOnRevive(FFrame&, void* const) + +native function PawnOnEnterCombat(); // Export UTgPawn::execPawnOnEnterCombat(FFrame&, void* const) + +native function PawnOnExitCombat(); // Export UTgPawn::execPawnOnExitCombat(FFrame&, void* const) + +native function PawnOnBecomeStill(); // Export UTgPawn::execPawnOnBecomeStill(FFrame&, void* const) + +native function PawnOnEndStill(); // Export UTgPawn::execPawnOnEndStill(FFrame&, void* const) + +native function PawnOnXp(out int nXp, Actor Source); // Export UTgPawn::execPawnOnXp(FFrame&, void* const) + +native function PawnOnCurrency(out int nCurrency, Actor Source); // Export UTgPawn::execPawnOnCurrency(FFrame&, void* const) + +native function PawnOnTaskforceRemove(TgRepInfo_TaskForce tf); // Export UTgPawn::execPawnOnTaskforceRemove(FFrame&, void* const) + +native function PawnOnTaskforceAdd(TgRepInfo_TaskForce tf); // Export UTgPawn::execPawnOnTaskforceAdd(FFrame&, void* const) + +native function PawnOnModifyEffectLifeTime(TgEffectGroup eg, out float fLifeTime); // Export UTgPawn::execPawnOnModifyEffectLifeTime(FFrame&, void* const) + +native function bool PawnCanDisplayImmuneMessage(); // Export UTgPawn::execPawnCanDisplayImmuneMessage(FFrame&, void* const) + +native function PawnOnStartSprint(); // Export UTgPawn::execPawnOnStartSprint(FFrame&, void* const) + +native function PawnOnEndSprint(); // Export UTgPawn::execPawnOnEndSprint(FFrame&, void* const) + +native function PawnOnPetSuccessfulHit(int nFxID); // Export UTgPawn::execPawnOnPetSuccessfulHit(FFrame&, void* const) + +native function PawnOnLand(); // Export UTgPawn::execPawnOnLand(FFrame&, void* const) + +native function PawnOnLandAfterJump(); // Export UTgPawn::execPawnOnLandAfterJump(FFrame&, void* const) + +native function PawnOnLandAfterLeap(); // Export UTgPawn::execPawnOnLandAfterLeap(FFrame&, void* const) + +native function PawnOnDamageInterruptedStealth(); // Export UTgPawn::execPawnOnDamageInterruptedStealth(FFrame&, void* const) + +native function PawnOnPetAdded(TgPawn Pet, TgPawn petOwner); // Export UTgPawn::execPawnOnPetAdded(FFrame&, void* const) + +native function PawnOnPetDied(TgPawn Pet, TgPawn petOwner); // Export UTgPawn::execPawnOnPetDied(FFrame&, void* const) + +native function PawnOnTeleported(TgSpawnTeleporterEntrance From, TgSpawnTeleporterExit To, Vector OriginalPawnLocation); // Export UTgPawn::execPawnOnTeleported(FFrame&, void* const) + +native function DeviceOnStartBuildup(TgDevice Dev); // Export UTgPawn::execDeviceOnStartBuildup(FFrame&, void* const) + +native function DeviceOnStopBuildup(TgDevice Dev, optional bool WasInterrupted=false); // Export UTgPawn::execDeviceOnStopBuildup(FFrame&, void* const) + +native function DeviceOnFire(TgDevice Dev); // Export UTgPawn::execDeviceOnFire(FFrame&, void* const) + +native function ProjectileOnFire(TgProjectile Proj); // Export UTgPawn::execProjectileOnFire(FFrame&, void* const) + +native function DeviceOnStartFire(TgDevice Dev); // Export UTgPawn::execDeviceOnStartFire(FFrame&, void* const) + +native function DeviceOnStopFire(TgDevice Dev, optional bool WasInterrupted=false); // Export UTgPawn::execDeviceOnStopFire(FFrame&, void* const) + +native function DeviceOnStartCooldown(TgDevice Dev, float fCooldownTime); // Export UTgPawn::execDeviceOnStartCooldown(FFrame&, void* const) + +native function DeviceOnStopCooldown(TgDevice Dev); // Export UTgPawn::execDeviceOnStopCooldown(FFrame&, void* const) + +native function DeviceOnPostHit(TgDevice Dev); // Export UTgPawn::execDeviceOnPostHit(FFrame&, void* const) + +native function DeviceOnHit(TgDevice Dev, const out ImpactInfo Impact); // Export UTgPawn::execDeviceOnHit(FFrame&, void* const) + +native function DeviceOnHitSpecial(TgDevice Dev, const out ImpactInfo Impact, int nHitSpecialSituationalType); // Export UTgPawn::execDeviceOnHitSpecial(FFrame&, void* const) + +native function DeviceOnDamaged(out OnDamagedParams Params); // Export UTgPawn::execDeviceOnDamaged(FFrame&, void* const) + +native function DeviceOnHealed(out OnHealedParams Params); // Export UTgPawn::execDeviceOnHealed(FFrame&, void* const) + +native function DeviceOnKilled(TgDevice Dev, const out ImpactInfo Impact, float fDamage); // Export UTgPawn::execDeviceOnKilled(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn::execDeviceAdjustDamage(FFrame&, void* const) + +native function DeviceAdjustHeal(const out AdjustHealParams Params, out float fHeal); // Export UTgPawn::execDeviceAdjustHeal(FFrame&, void* const) + +native function bool DeviceHasEnoughPowerPool(TgDevice Dev, byte FireModeNum); // Export UTgPawn::execDeviceHasEnoughPowerPool(FFrame&, void* const) + +native function DeviceOnSetFireMode(TgDevice Dev); // Export UTgPawn::execDeviceOnSetFireMode(FFrame&, void* const) + +native function DeployableOnDeployed(TgDeployable dep); // Export UTgPawn::execDeployableOnDeployed(FFrame&, void* const) + +native function DeployableOnDestroyed(TgDeployable dep); // Export UTgPawn::execDeployableOnDestroyed(FFrame&, void* const) + +native function DeployableOnApplyEffect(TgDeployable dep, Actor HitActor); // Export UTgPawn::execDeployableOnApplyEffect(FFrame&, void* const) + +native function DeployableOnRemoveEffect(TgDeployable dep, Actor HitActor); // Export UTgPawn::execDeployableOnRemoveEffect(FFrame&, void* const) + +native function EffectGroupOnSetActive(bool bActive, bool bRemoving, TgEffectGroup EffectGroup); // Export UTgPawn::execEffectGroupOnSetActive(FFrame&, void* const) + +native function RetouchAllVolumes(); // Export UTgPawn::execRetouchAllVolumes(FFrame&, void* const) + +native function SwapToDestroyedMesh(); // Export UTgPawn::execSwapToDestroyedMesh(FFrame&, void* const) + +native function SwapToLiveMesh(); // Export UTgPawn::execSwapToLiveMesh(FFrame&, void* const) + +native function OnMeshSwapped(); // Export UTgPawn::execOnMeshSwapped(FFrame&, void* const) + +native function PostPawnSetupServer(); // Export UTgPawn::execPostPawnSetupServer(FFrame&, void* const) + +native function CacheHitReactionSkelControls(); // Export UTgPawn::execCacheHitReactionSkelControls(FFrame&, void* const) + +native function int InitializeOverlayMeshComponent(SkeletalMeshComponent InMesh, optional bool bIs1POverlay); // Export UTgPawn::execInitializeOverlayMeshComponent(FFrame&, void* const) + +native function int InitializeOverlayIndexBody(SkeletalMeshComponent ParentMesh, bool bIs1POverlay); // Export UTgPawn::execInitializeOverlayIndexBody(FFrame&, void* const) + +native function int InitializeOverlayIndexWeapon(SkeletalMeshComponent ParentMesh, bool bIs1POverlay); // Export UTgPawn::execInitializeOverlayIndexWeapon(FFrame&, void* const) + +native function MaterialInstanceConstant InitializeOverlayInfo(TgPawn.OverlayMICType Type, Texture NormalMap, Texture MaskMap); // Export UTgPawn::execInitializeOverlayInfo(FFrame&, void* const) + +native function MaterialInstanceConstant GetOverlayMaterial(TgPawn.OverlayMICType Type); // Export UTgPawn::execGetOverlayMaterial(FFrame&, void* const) + +native function Scene.ESceneDepthPriorityGroup GetOverlayDepthPriority(TgPawn.OverlayMICType Type); // Export UTgPawn::execGetOverlayDepthPriority(FFrame&, void* const) + +native function bool Is1PBodyOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn::execIs1PBodyOverlay(FFrame&, void* const) + +native function bool Is1PWeaponOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn::execIs1PWeaponOverlay(FFrame&, void* const) + +native function bool Is3PBodyOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn::execIs3PBodyOverlay(FFrame&, void* const) + +native function bool Is3PWeaponOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn::execIs3PWeaponOverlay(FFrame&, void* const) + +native function ReinitializeOverlays(); // Export UTgPawn::execReinitializeOverlays(FFrame&, void* const) + +native function bool RemoveOverlayInfo(SkeletalMeshComponent ParentMesh); // Export UTgPawn::execRemoveOverlayInfo(FFrame&, void* const) + +native function SwapOverlayMICsBody(TgPawn.OverlayMICType Type); // Export UTgPawn::execSwapOverlayMICsBody(FFrame&, void* const) + +native function SwapOverlayMICsWeapon(TgPawn.OverlayMICType Type); // Export UTgPawn::execSwapOverlayMICsWeapon(FFrame&, void* const) + +native function UpdateOverlayVisibilityBody(); // Export UTgPawn::execUpdateOverlayVisibilityBody(FFrame&, void* const) + +native function UpdateOverlayVisibilityWeapon(); // Export UTgPawn::execUpdateOverlayVisibilityWeapon(FFrame&, void* const) + +native function ToggleOverlay1P3P(bool bActivate1P); // Export UTgPawn::execToggleOverlay1P3P(FFrame&, void* const) + +native function bool ShouldForceHideOverlaysBody(); // Export UTgPawn::execShouldForceHideOverlaysBody(FFrame&, void* const) + +native function bool ShouldForceHideOverlaysWeapon(); // Export UTgPawn::execShouldForceHideOverlaysWeapon(FFrame&, void* const) + +native function ReplaceMaterial(MaterialInstanceConstant materialToUse, optional float ParamValue=0.0000000); // Export UTgPawn::execReplaceMaterial(FFrame&, void* const) + +native function ClearReplacementMaterial(); // Export UTgPawn::execClearReplacementMaterial(FFrame&, void* const) + +native function int InitializeSilhouetteComponent(MeshComponent InMesh); // Export UTgPawn::execInitializeSilhouetteComponent(FFrame&, void* const) + +native function ReinitializeSilhouettes(); // Export UTgPawn::execReinitializeSilhouettes(FFrame&, void* const) + +native function int FindSilhouetteInfo(MeshComponent ParentMesh); // Export UTgPawn::execFindSilhouetteInfo(FFrame&, void* const) + +native function bool RemoveSilhouetteInfo(MeshComponent ParentMesh); // Export UTgPawn::execRemoveSilhouetteInfo(FFrame&, void* const) + +native function SetSilhouetteState(MeshComponent ParentMesh, TgPawn.OverlayState NewState); // Export UTgPawn::execSetSilhouetteState(FFrame&, void* const) + +native function ToggleSilhouetteVisibility(bool bVisible, optional bool bDead); // Export UTgPawn::execToggleSilhouetteVisibility(FFrame&, void* const) + +native function DropHealthNugget(optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn::execDropHealthNugget(FFrame&, void* const) + +native function DropHealthNuggetTeamOnly(int nTaskForce, optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn::execDropHealthNuggetTeamOnly(FFrame&, void* const) + +native function FxActivateGroupAllMesh(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm, optional bool bSkipWeaponMesh); // Export UTgPawn::execFxActivateGroupAllMesh(FFrame&, void* const) + +native function FxDeactivateGroupAllMesh(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bSkipWeaponMesh); // Export UTgPawn::execFxDeactivateGroupAllMesh(FFrame&, void* const) + +native function FxActivateGroupSelf(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxActivateGroupSelf(FFrame&, void* const) + +native function FxReactivateGroupSelf(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxReactivateGroupSelf(FFrame&, void* const) + +native function FxDeactivateGroupSelf(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgPawn::execFxDeactivateGroupSelf(FFrame&, void* const) + +native function Object FxActivateGroupBody(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxActivateGroupBody(FFrame&, void* const) + +native function Object FxReactivateGroupBody(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxReactivateGroupBody(FFrame&, void* const) + +native function FxDeactivateGroupBody(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgPawn::execFxDeactivateGroupBody(FFrame&, void* const) + +native function Object FxActivateGroupHead(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxActivateGroupHead(FFrame&, void* const) + +native function Object FxReactivateGroupHead(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxReactivateGroupHead(FFrame&, void* const) + +native function FxDeactivateGroupHead(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgPawn::execFxDeactivateGroupHead(FFrame&, void* const) + +native function FxActivateGroupWeapon(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxActivateGroupWeapon(FFrame&, void* const) + +native function FxReactivateGroupWeapon(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxReactivateGroupWeapon(FFrame&, void* const) + +native function FxDeactivateGroupWeapon(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgPawn::execFxDeactivateGroupWeapon(FFrame&, void* const) + +native function Object FxActivateGroupWeapon1P(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxActivateGroupWeapon1P(FFrame&, void* const) + +native function Object FxReactivateGroupWeapon1P(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxReactivateGroupWeapon1P(FFrame&, void* const) + +native function FxDeactivateGroupWeapon1P(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgPawn::execFxDeactivateGroupWeapon1P(FFrame&, void* const) + +native function Object FxActivateGroupWeapon3P(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxActivateGroupWeapon3P(FFrame&, void* const) + +native function Object FxReactivateGroupWeapon3P(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgPawn::execFxReactivateGroupWeapon3P(FFrame&, void* const) + +native function FxDeactivateGroupWeapon3P(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgPawn::execFxDeactivateGroupWeapon3P(FFrame&, void* const) + +native function BeginLocalKillRTPC(); // Export UTgPawn::execBeginLocalKillRTPC(FFrame&, void* const) + +native function EndLocalKillRTPC(); // Export UTgPawn::execEndLocalKillRTPC(FFrame&, void* const) + +native function BeginLocalDeathRTPC(); // Export UTgPawn::execBeginLocalDeathRTPC(FFrame&, void* const) + +native function EndLocalDeathRTPC(); // Export UTgPawn::execEndLocalDeathRTPC(FFrame&, void* const) + +native function OnEnterItemShop(); // Export UTgPawn::execOnEnterItemShop(FFrame&, void* const) + +native function OnLeaveItemShop(); // Export UTgPawn::execOnLeaveItemShop(FFrame&, void* const) + +native function OnDismount(); // Export UTgPawn::execOnDismount(FFrame&, void* const) + +simulated event int PushPosture(TgPawn.TG_POSTURE Posture) { } + +simulated event bool PopPosture(int PostureID) { } + +simulated function GetAimAssistBounds(const out Vector ObserverLocation, out float Width, out float Height, out Vector Center) { } + +simulated function Actor GetActorFromCombatActor() { } + +function PossessedBy(Controller C, bool bVehicleTransition) { } + +function UnPossessed() { } + +simulated function OnGetTeamIndex(TgSeqAct_GetTeamIndex Action) { } + +simulated function OnGetTaskForceNumber(TgSeqAct_GetTaskForceNumber Action) { } + +simulated function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +simulated function OnUIAlert(TgSeqAct_UIAlert Action) { } + +function OnSetCrowdControlImmune(TgSeqAct_SetCrowdControlImmune inAction) { } + +event CollisionChanged() { } + +event Falling() { } + +simulated function OnKillpawns(TgSeqAct_Killpawns Action) { } + +function OnDespawnBots(TgSeqAct_DespawnBots inAction) { } + +simulated event PostInitAnimTree(SkeletalMeshComponent SkelComp) { } + +simulated function CacheMainMeshReferences(TgSkeletalMeshComponent smcomp) { } + +simulated function ClearMultiMeshAnimNodeReferences() { } + +simulated function CacheMultiMeshAnimNodeReferences(TgSkeletalMeshComponent smcomp) { } + +simulated function CacheSkelControlLocks(TgSkeletalMeshComponent smcomp) { } + +simulated function ToggleSkelControlLocks(bool bOn) { } + +native simulated function AllManifestsLoaded(); // Export UTgPawn::execAllManifestsLoaded(FFrame&, void* const) + +simulated event PreBeginPlay() { } + +simulated function SetLocalPlayer() { } + +simulated function PostBeginPlay() { } + +function ClearSpawnFxTimer() { } + +function SetupPIEMesh(GameInfo.PIEPawnMeshTypes PIEPawnType, int BotId) { } + +function CrushedBy(Pawn OtherPawn) { } + +simulated event bool PostPawnSetup() { } + +reliable server function MissionTimeUpdate() { } + +simulated event bool IsCustomCharacter() { } + +simulated function PreRender(Canvas Canvas) { } + +function SetDeathZoomInfo(TgPawn theKiller, TgRepInfo_Player theKillerPRI, int nHealthPct, int nDeviceId, optional TgRepInfo_Player OwnerPRI) { } + +event Suicide() { } + +event Despawn() { } + +event DespawnOnReconnect() { } + +simulated function OnJoinTeam(TgSeqAct_JoinTeam Action) { } + +simulated function TakeFallingDamage() { } + +event UpdateDeathReason() { } + +event bool ShouldScoreKill() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated event Destroyed() { } + +simulated event KillAllOwnedPets() { } + +simulated function bool CanChangeInHandDeviceOrMode() { } + +simulated event PutInHandDeviceAwayFast(TgDeviceForm form) { } + +exec function ShowAnimSets() { } + +simulated function EquipPendingDeviceTimer(optional bool SkipPlayAnim=false) { } + +function OnDeviceFormEnteredTargetingMode(TgDeviceForm form) { } + +function OnDeviceFormExitedTargetingMode(TgDeviceForm form) { } + +exec function UIH() { } + +simulated event AnimSwapDevice() { } + +simulated event bool StartAction(TgDevice Dev, optional out TgObject.EDeviceFailType failType, optional bool bUpdateTimeStamp=true) { } + +simulated event StopAction(TgDevice Dev) { } + +simulated event StopFiringAllDevices(optional bool bClearEquipEffectFlag, optional bool bResetCooldowns, optional bool bKeepFiringMount, optional bool bServerDeviceLockout=false) { } + +function PutAllCardsOnCooldown() { } + +reliable client simulated function ClientStopFiringAllDevices(optional bool bClearEquipEffectFlag, optional bool bResetCooldowns, optional bool bKeepFiringMount, optional bool bServerDeviceLockout=false) { } + +simulated event RestartAllDevices() { } + +native function SwapEquippedDevices(TgDevice newDev, int nEqpSlot); // Export UTgPawn::execSwapEquippedDevices(FFrame&, void* const) + +native function SyncDeviceTimers(TgDevice SourceDevice, TgDevice DestinationDevice); // Export UTgPawn::execSyncDeviceTimers(FFrame&, void* const) + +simulated function OnDeviceFormBuildup(int nEquipSlot, float fBuildupTime) { } + +simulated function OnDeviceFormStartFire(int nEquipSlot, float FireDuration, int nFireMode, optional int nAmmoRemaining) { } + +simulated function OnDeviceFormFire(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function OnDeviceFormHit(int nEquipSlot, Actor Target, float DamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } + +simulated function PostRecallTimerToKillParticles() { } + +simulated function OnDeviceFormStopFire(int nEquipSlot) { } + +simulated function bool ShouldStopWeaponMeshFireEffectsOnDeviceFormStopFire(int nEquipSlot) { } + +simulated function OnDeviceFormInterruptFire(int nEquipSlot) { } + +event bool CanApplyEffects() { } + +simulated function ForceUpdate1PMeshes() { } + +simulated function IncrementFlashCount(Weapon Who, byte FireModeNum) { } + +simulated function ClearFlashCount(Weapon Who) { } + +function ClearFlashLocation(Weapon Who) { } + +simulated function StopPlayFiring() { } + +function RememberPlayerAttackerExpired() { } + +simulated event PlayHeal3P() { } + +simulated function EndHeal3P() { } + +simulated event PlayHitReactionMaterialPulse() { } + +simulated function PlayTakeHit(Vector Direction, int Damage, Class dmgType, const out ExtraDamageInfo ExtraInfo, TgPawn.EHitAudioCue eCue) { } + +event SendNotifyTakeHit(Controller InstigatedBy, Vector HitLocation, int Damage, Class DamageType, Vector Momentum) { } + +function NotifyTakeHit(Controller InstigatedBy, vector HitLocation, int Damage, class DamageType, vector Momentum, Actor DamageCauser) { } + +simulated event DrawAIDebug(Canvas Canvas, Vector ScreenLoc) { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +event int TakeShieldDamage(int fDamage, Class DamageType) { } + +event TakeHealing(float fHealAmount) { } + +function PulseStealth() { } + +singular event EndPulseStealth() { } + +function AdjustDamage(out int InDamage, out vector Momentum, Controller InstigatedBy, vector HitLocation, class DamageType, TraceHitInfo HitInfo, Actor DamageCauser) { } + +function SetHealth(int NewHealth) { } + +event ModifyHealthProp(int nDamage) { } + +simulated event DrawMultiLineText(Canvas Canvas, string Text, int X, int Y, int LineHeight) { } + +simulated function bool LoadPlayerIcons() { } + +function DamageTakenMaxReset() { } + +function DamageTakenRTPCReset() { } + +simulated function TgPawn GetLocalPlayerPawn() { } + +simulated function int GetX1CoordBasedOnIndex(int nIndex) { } + +simulated function int GetY1CoordBasedOnIndex(int nIndex) { } + +simulated function int GetX2CoordBasedOnIndex(int nIndex) { } + +simulated function int GetY2CoordBasedOnIndex(int nIndex) { } + +simulated function int GetRowBasedOnIndex(int nIndex) { } + +simulated function int GetColumnBasedOnIndex(int nIndex) { } + +simulated function NotifyTeamChanged() { } + +simulated function NotifyLocalPlayerTeamReceived() { } + +simulated event OnGroupChange() { } + +simulated function Color GetTargetBoxColor(TgPawn LocalPlayerPawn) { } + +simulated event string GetPlayerNameForRender() { } + +simulated event string GetPlayerTagForRender() { } + +simulated event float GetPlayerHealthForRender() { } + +simulated event BecomeViewTarget(PlayerController PC) { } + +simulated event EndViewTarget(PlayerController PC) { } + +simulated function bool CalcCamera(float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV) { } + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +simulated function bool IgnoreFaceRotationWithInterp() { } + +simulated function InterceptInputDeltaRotation(out Rotator rDeltaRotation) { } + +simulated function FaceRotation(rotator NewRotation, float DeltaTime) { } + +simulated event PostureTransitionEnded(TgPawn.TG_POSTURE PostureThatEnded) { } + +function String GetDebugName() { } + +simulated event PlayJumpSound() { } + +simulated event PlayPreTeleportEffects() { } + +simulated event PlayTeleportEffects(Vector OriginLocation) { } + +simulated event PlayJumpFx() { } + +simulated event StopJumpFx() { } + +simulated event PlaySpecialJumpFx() { } + +simulated event StopSpecialJumpFx() { } + +simulated function CalculateMaterialSwitch(Vector TraceStart, Vector TraceEnd) { } + +simulated event PlayLandingSound(Vector LandingVelocity) { } + +simulated event PlayFootStepSound(int FootDown) { } + +simulated function name GetFootStepOverride() { } + +reliable client simulated event ClientTriggerGlobalEventClass(Class InEventClass, Actor InInstigator, optional int ActivateIndex=-1) { } + +simulated function bool IsFiringMelee() { } + +simulated function PlayDying(class DamageType, vector HitLoc) { } + +simulated function FindNewTargetTimer() { } + +simulated function PlayDyingEffects() { } + +simulated function bool AllowRagdoll() { } + +simulated event PlayDeathAnimation() { } + +simulated function RagdollPawn() { } + +simulated event name GetDeathAnimName() { } + +native function AttachDeathAnimationFX(int SpecialFXId, name SocketName); // Export UTgPawn::execAttachDeathAnimationFX(FFrame&, void* const) + +simulated function OnSwapToDestroyedMesh() { } + +simulated function CleanUpDyingEffects() { } + +reliable server function RemoveAllEffectsOnDeath() { } + +simulated event Vector GetPhysTweenTargetLocation() { } + +simulated event StartPhysTween(Vector Target, float fTime, TgPawn.ETweenState tweenState, optional bool bCollideWithWorld=false, optional bool bRotateTowardsTarget=false) { } + +simulated event UpdatePhysTweenTargetLocation(Vector NewTarget, float updatedTime) { } + +simulated event EndPhysTween(optional bool bInterrupted=false) { } + +simulated function BeginTween(TgPawn.ETweenState newTweenState, optional bool bCollideWithWorld=false) { } + +simulated function DefaultTweenStart(optional bool bCanBeHit=false, optional bool bRemoveRoots=false, optional bool bCollideWithWorld=false) { } + +event SendHitReaction(byte HitDirection) { } + +simulated event PlayHitReaction(int BitPackedHitReaction) { } + +simulated function EndTween(TgPawn.ETweenState endingTweenState, bool bInterrupted) { } + +simulated function DefaultTweenEnd(bool bInterrupted) { } + +simulated event StartPhysGrab(TgPawn Source, float fTime, TgPawn.EGrabState grabState, optional name grabSocket, optional Vector grabLocOffset, optional Rotator grabRotOffset) { } + +simulated event EndPhysGrab(optional bool bInterrupted=false) { } + +event ForceAllGrabTargetsDetach(optional TgPawn.EGrabState State) { } + +simulated function OnGrabTargetAttach(TgPawn.EGrabState newGrabState, TgPawn Target) { } + +simulated function OnGrabTargetDetach(TgPawn.EGrabState endingGrabState, TgPawn Target, bool bInterrupted) { } + +simulated event bool ShouldGrabBreakStealth(TgPawn.EGrabState grabState) { } + +simulated event bool IsBaselessGrab(TgPawn.EGrabState grabState) { } + +simulated function BeginGrab(TgPawn.EGrabState newGrabState) { } + +simulated function EndGrab(TgPawn.EGrabState endingGrabState, bool bInterrupted) { } + +simulated function DefaultGrabStart(optional bool bRemoveRoots=false) { } + +simulated function DefaultGrabEnd(bool bInterrupted) { } + +simulated function BaselessGrabStart(optional bool bRemoveRoots=false) { } + +simulated function BaselessGrabEnd(bool bInterrupted) { } + +event AddVelocity(vector NewVelocity, vector HitLocation, class damageType, optional TraceHitInfo HitInfo) { } + +simulated function bool CanBeBaseForPawn(Pawn aPawn) { } + +function SetMovementPhysics() { } + +simulated function TickGrab(float DeltaSeconds) { } + +event IncrementCannotBeGrabSource(optional bool bBreakGrabs=true) { } + +event DecrementCannotBeGrabSource() { } + +simulated event bool IsGrabSourceValid(TgPawn Target, optional bool bAllowTurrets=false, optional bool bAllowStealthed=false) { } + +simulated function float GetChargeTurnRate() { } + +simulated event StartPhysCharge(TgPawn.EChargeState newChargeType, Rotator InitialDirection, optional Vector InitialLocation, optional float fChargeSpeed=0.0000000, optional float fChargeRange=0.0000000, optional bool bIngoreHumanoidBlocking=false, optional bool bUsePhysFlyingForCharge) { } + +simulated event EndPhysCharge(bool bInterrupted) { } + +simulated function GetHitLocationForProximityTouch(Actor Target, out Vector HitLocation, out Vector HitNormal) { } + +simulated event bool PredictChargeHit(Vector ChargeDir, Vector ChargeStart, float fChargeRange, Vector HitLocation, Vector HitNormal, Vector TargetLocation, Actor Other) { } + +simulated event bool VerifyChargeHit(Vector HitLocation, Vector HitNormal, Vector TargetLocation, Actor Other) { } + +simulated function StopAllAnimations() { } + +simulated function TimerDestroy() { } + +event EquipBestInHandDevice(optional bool bForceFastClear) { } + +singular simulated function OnRespawn() { } + +simulated function OnLiveRespawn() { } + +simulated function SetMountOnRespawn() { } + +simulated event AutoMount(bool bShouldBeMounted, optional bool bToggleMount=false) { } + +function LiveRespawn(bool bResetHealth, bool bResetDevices) { } + +reliable client simulated function SyncClientEnergy(float energy) { } + +simulated function RemoveDeathEffects() { } + +simulated function SetPawnState(name NewState) { } + +simulated event bool IsInItemShop() { } + +simulated event bool IsInFriendlyItemShop() { } + +simulated event SetActiveWeapon(Weapon NewWeapon) { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function TgObject.TG_EQUIP_POINT GetEquipSlotOfDevice(TgDevice Dev) { } + +event LockTargetingDeviceToInHand(bool bEnable) { } + +simulated function name GetDefaultCameraMode(PlayerController RequestedBy) { } + +simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) { } + +simulated function TgPawnControllerSet() { } + +simulated event UpdateWeaponMesh() { } + +simulated event UpdateFirstValidFlashEventIdx() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event ReceivedPropValues() { } + +simulated event ReceivedCachedMaxHealth() { } + +event ApplyStealthServer(TgPawn.STEALTH_TYPE eStealthed, optional float fRate=9999.0000000, optional bool bForce=false) { } + +event InterruptStealth(optional TgDevice OriginatingDevice) { } + +event InterruptLift(optional TgDevice OriginatingDevice) { } + +simulated function bool ShouldShowAsStealthed(bool bDetected) { } + +simulated event ApplyStealthClient(optional bool bForce=false) { } + +event FixUpVisibilityVolumes() { } + +function AddVisibilityVolume(TgVisibilityVolume Vol) { } + +function RemoveVisibilityVolume(TgVisibilityVolume Vol) { } + +function VolumeStealthFadeComplete() { } + +function VolumeStealthOn(TgVisibilityVolume Vol, optional bool bFull) { } + +function VolumeStealthOff() { } + +function ClearStealthDamage() { } + +function GrassOn(TgVisibilityVolume Vol) { } + +function GrassOff() { } + +function DisableVolumeStealth() { } + +function EnableVolumeStealth() { } + +function UpdateObscuringDeployableState() { } + +function UpdateBlindingDeployableState() { } + +unreliable client simulated event ClientEnterCombat(Actor aInstigator, Actor ATarget, optional float fLength) { } + +event BeginMoving() { } + +function IsStillTimer() { } + +simulated event EnterCombat(Actor aInstigator, Actor ATarget, optional float fLength) { } + +simulated event ExitCombat() { } + +simulated function InCombatTimer() { } + +simulated event Combat(bool bInCombat) { } + +event bool InCombat() { } + +simulated event float GetEnergyPercent() { } + +simulated function ApplyPawnShadows(bool bOn) { } + +simulated event bool IsDying() { } + +event Landed(vector HitNormal, actor FloorActor) { } + +function OnJumpPenaltyEnded() { } + +function PlayHit(float Damage, Controller InstigatedBy, vector HitLocation, class damageType, vector Momentum, TraceHitInfo HitInfo) { } + +exec function FlushDebug() { } + +simulated event FellOutOfWorld(class dmgType) { } + +singular simulated event OutsideWorldBounds() { } + +event KilledBy(pawn EventInstigator) { } + +simulated function TurnOff() { } + +native simulated function bool InitRagdoll(); // Export UTgPawn::execInitRagdoll(FFrame&, void* const) + +native function DelayedRagdollConstraintBreak(); // Export UTgPawn::execDelayedRagdollConstraintBreak(FFrame&, void* const) + +simulated event HoldFlag(TgCarriedFlag NewFlag) { } + +event DropFlag(optional Controller C) { } + +simulated function BeginFadeOut() { } + +simulated function OnLifeAfterDeathTimerExpired() { } + +simulated function UpdateHealingBeamEffects() { } + +simulated event DetachDevice() { } + +simulated event AttachDevice() { } + +simulated event PropertySet(int nPropertyId, float fPreviousValue, float fNewValue) { } + +simulated event HandleClientPostPawnSetup() { } + +simulated event WaitForInventoryThenDoPostPawnSetup() { } + +simulated function OnWaitingForPawnDone() { } + +simulated event OnPawnInitialized() { } + +simulated function TriggerKismetPlayerInitialized() { } + +simulated function PlayInitialSpawnFX() { } + +simulated function DrawConeComponent AttachConeComponent(DrawConeComponent ConeComponent, float fRadius, float fAngle) { } + +simulated function DetachConeComponent(DrawConeComponent ConeComponent) { } + +function gibbedBy(actor Other) { } + +simulated event OnAnimPlay(AnimNodeSequence SeqNode) { } + +simulated event OnAnimEnd(AnimNodeSequence SeqNode, float PlayedTime, float ExcessTime) { } + +simulated function StopFullBodyAnimation(optional float BlendOutTime=0.1500000) { } + +simulated function ClientSetStun() { } + +function ResetStunnedBehavior(TgPlayerController PC, TgAIController aic) { } + +event Silence(bool bSilenced) { } + +event Disarm(bool bDisarmed) { } + +simulated function PlayDisarmFX() { } + +simulated function StopDisarmFX() { } + +event Knock(bool bKnocked, optional float fKnockbackFrictionOverride=-1.0000000, optional Vector vKnockbackVelocityOverride=vect(0.0000000, 0.0000000, 0.0000000)) { } + +event Cripple(bool bCrippled) { } + +event FlashBang(bool bIsFlashBang) { } + +event Stasis(bool bStasised) { } + +event Daze(bool bDazed, optional float Duration=8.0000000, optional int FxId=2430) { } + +reliable client simulated function ClientDaze(bool bDazed, optional float Duration=8.0000000, optional int FxId=2430) { } + +simulated function DrawHUD(HUD H) { } + +event bool CanBePulled() { } + +event bool CanBeGrabbed() { } + +event HitWall(vector HitNormal, actor Wall, PrimitiveComponent WallComp) { } + +simulated event EnableFootControls(int foot, bool bDisable) { } + +simulated event InterruptUse() { } + +simulated event bool IsUseInterrupted() { } + +simulated event InterruptAllDevices(optional bool bForceInterrupt=false) { } + +simulated function SetTriggerToUse(TgTrigger_Use Trigger, bool bEnable) { } + +simulated function ClientSetTriggerMessage(TgTrigger_Use newTrigger, int msgId) { } + +event CheckUseDuration(out float fDuration) { } + +simulated function DisplayWeaponSwitchProgressBar(float Duration) { } + +simulated function HideWeaponSwitchProgressBar() { } + +simulated event Vector GetWeaponStartTraceLocation(optional Weapon CurrentWeapon) { } + +simulated event Vector GetWeaponStartTraceLocationAlt(Vector Offset) { } + +simulated event GetBaseAimRotationNative(Weapon W, bool bIgnoreAutoLock, out Rotator Rot) { } + +simulated event GetAdjustedAimNative(Weapon W, Vector StartFireLoc, out Rotator Rot) { } + +singular simulated function Rotator GetBaseAimRotation() { } + +simulated function float ApplyPitchLimit(float fPitch) { } + +simulated event EndCrouch(float HeightAdjust) { } + +simulated event StartCrouch(float HeightAdjust) { } + +simulated event TriggerJump() { } + +reliable server function ServerCancelJump() { } + +unreliable client simulated event ClientCancelJump() { } + +function bool DoJump(bool bUpdating) { } + +simulated function FlashJumpEffects() { } + +simulated function float GetJumpHeightMultiplier() { } + +simulated function float GetJumpSpeedMultiplier() { } + +simulated function OnTeleport(SeqAct_Teleport Action) { } + +simulated event ApplyTeleportEffects(Vector StartLocation) { } + +reliable server function ServerSetVar(int varId) { } + +exec function SetVar(int varId) { } + +simulated function BlendToAnimTreeDeviceType() { } + +simulated function TgPawn FindLocalPlayerPawn() { } + +simulated exec event SetUsePhysicsWithAnimation(bool Enable) { } + +simulated event OnRigidBodySpringOverextension(RB_BodyInstance BodyInstance) { } + +event ModifyPawnPropertiesVolumeChanged() { } + +simulated function DisplayMessage(string sMessage) { } + +event bool ShouldRecharge() { } + +simulated function TickFriendlyPush() { } + +simulated function DoubleCheckSimulatedProxy() { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event UpdateRecoil(float DeltaTime) { } + +function AddRecoil(Rotator rNewRecoil, float fRecoilSmoothRate, float fSettleDelay, float fSettleSpeed) { } + +simulated function float TickScaleVariable(float fDesiredValue, float fOldValue, float fScaleChangePerSecond, float DeltaSeconds) { } + +simulated function TickScale(float DeltaSeconds) { } + +simulated function UpdateBob(float DeltaSeconds) { } + +simulated event TickTargeting(float DeltaSeconds) { } + +simulated event bool IsTargetWithInCone(Actor Target) { } + +native function bool IsTalentEquipped(int nTalentDeviceId); // Export UTgPawn::execIsTalentEquipped(FFrame&, void* const) + +native function bool WasPlayerSpawned(); // Export UTgPawn::execWasPlayerSpawned(FFrame&, void* const) + +native function TgPawn GetCurrentOwnerPawn(); // Export UTgPawn::execGetCurrentOwnerPawn(FFrame&, void* const) + +native function bool TeleportTraceCheck(Vector vTestLoc, Vector vDestLoc); // Export UTgPawn::execTeleportTraceCheck(FFrame&, void* const) + +native function bool IsAboveNonbaseableSurface(Vector vTestLoc, float fTestDist, out Actor HitActor, out Vector HitNormal); // Export UTgPawn::execIsAboveNonbaseableSurface(FFrame&, void* const) + +simulated event bool Teleport(Vector vDest, Rotator rDest, bool bPlayFx, optional int TeleportEnterState, optional int TeleportExitState, optional bool bFailOnNoSafeSpot, optional out Vector vTeleportLocation, optional bool bFakeTeleport=false) { } + +simulated function bool CanApplyAimAssist(TgPlayerController LocalPlayerController, TgPawn LocalPawn) { } + +simulated event Stun(bool bStunController, optional Controller.EStunType eType) { } + +event UpdateCooldownsOnDevices() { } + +event SaveDeathInfoForZoomCam(TgPawn KillerOwner, TgPawn Killer, int DeviceID, bool bPetKill) { } + +simulated function bool IsValidMeleeTarget(TgPawn ProspectiveMeleeTarget) { } + +simulated function bool CanPickupDroppedItem() { } + +event BaseChange() { } + +simulated event OnPhaseEnded(int nPhaseThatEnded) { } + +simulated event OnPhaseChange() { } + +simulated function OnPhaseTransitionComplete() { } + +exec function Perf2(bool bEnabled) { } + +exec function ChangePhase(int NewPhase) { } + +reliable server function ServerChangePhase(int NewPhase) { } + +event AddToTeleportNotify(Actor ToBeNotified) { } + +event RemoveFromTeleportNotify(Actor RemoveActor) { } + +event TeleportNotify() { } + +function OnTeleportNotify(Actor TeleportingActor) { } + +function bool PreTeleport(Teleporter InTeleporter) { } + +simulated function HaltFXForTeleport() { } + +simulated function ResumeFXFromTeleport() { } + +simulated function PostTeleport(Teleporter OutTeleporter) { } + +simulated function PostBigTeleport() { } + +native simulated function TgObject.TG_EQUIP_POINT GetPerCharacterAltEquipPoint(); // Export UTgPawn::execGetPerCharacterAltEquipPoint(FFrame&, void* const) + +native function int GetBotId(); // Export UTgPawn::execGetBotId(FFrame&, void* const) + +native function string GetBotName(); // Export UTgPawn::execGetBotName(FFrame&, void* const) + +native function SoundCue GetEmoteSoundCue(int BotId, TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execGetEmoteSoundCue(FFrame&, void* const) + +native function AkEvent GetEmoteAkEvent(int BotId, TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execGetEmoteAkEvent(FFrame&, void* const) + +native function AkEvent GetVoxKillAkEvent(int BotId, TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execGetVoxKillAkEvent(FFrame&, void* const) + +native function string GetEmoteSuffix(TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execGetEmoteSuffix(FFrame&, void* const) + +native function string GetEmoteCustomSuffix(TgPawn.EEmote Emote, int ExtraInfo); // Export UTgPawn::execGetEmoteCustomSuffix(FFrame&, void* const) + +native function string GetVGSCustomSuffix(); // Export UTgPawn::execGetVGSCustomSuffix(FFrame&, void* const) + +function TgPawn.EEmote GetDeviceEmoteType(TgDevice Dev) { } + +event PlayDeviceEmoteAll(TgDevice Dev, optional bool bCallOnOwner=false) { } + +event PlayEmote(TgPawn.EEmote Emote, optional int nExtraInfo) { } + +unreliable server function ServerPlayEmote(TgPawn.EEmote Emote, optional int nExtraInfo) { } + +exec event PlayEmoteAtWorldLocation(TgPawn.EEmote Emote, optional int nExtraInfo) { } + +unreliable client simulated event PlayEmoteSelfOnly(TgPawn.EEmote Emote, optional int nExtraInfo) { } + +simulated event ClientPlayEmote(TgPawn.EEmote Emote, optional int nExtraInfo) { } + +simulated event PlayEmoteSilhouetteEffect(TgPawn.EEmote Emote, optional int nExtraInfo) { } + +simulated event bool CanEmoteDuringTimelapse(TgPawn.EEmote Emote) { } + +simulated event TgPawn.EEmoteCategory GetEmoteCategory(TgPawn.EEmote Emote) { } + +simulated event int GetEmotePriority(TgPawn.EEmote Emote) { } + +simulated event float GetAbilityEmoteChance(TgPawn.EEmote Emote) { } + +simulated event float GetEmoteChance(TgPawn.EEmote Emote) { } + +simulated event bool EmoteDiceRoll(TgPawn.EEmote Emote) { } + +simulated event bool TriggersEmoteGlobalCooldown(TgPawn.EEmote Emote) { } + +simulated event bool RespectsEmoteGlobalCooldown(TgPawn.EEmote Emote) { } + +simulated event float GetEmoteInternalCooldown(TgPawn.EEmote Emote) { } + +simulated event RecordInternalEmoteTime(TgPawn.EEmote Emote) { } + +simulated event RecordGlobalEmoteTime() { } + +simulated event RecordNonLocalEmoteTime() { } + +simulated event float GetLastEmoteTime(TgPawn.EEmote Emote) { } + +simulated event bool IsEmoteOnInternalCooldown(TgPawn.EEmote Emote) { } + +simulated event bool AreEmotesOnGlobalCooldown() { } + +simulated event bool IsEmoteOnNonLocalCooldown(TgPawn.EEmote Emote) { } + +simulated event bool EmoteShouldKillAllOtherVox(TgPawn.EEmote Emote) { } + +function bool EmoteShouldForce3P(TgPawn.EEmote Emote) { } + +event SetEmote3PCamera(bool bOn) { } + +simulated event bool AnimNotifySound(SoundCue Cue) { } + +simulated event PreDemoRewind() { } + +simulated event PostDemoRewind() { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +function AdjustDevicesForNewDilation(float fPrevDilation, float fNewDilation) { } + +simulated event bool CanFlyWithoutHover() { } + +function bool CheckPhysicsStateForJumping() { } + +function bool IsFiringAny() { } + +function bool CannotJumpNow() { } + +simulated event bool IsInJumpLanding() { } + +function InterruptInhand() { } + +function TgObject.TG_EQUIP_POINT OverrideOffhandSlot(TgObject.TG_EQUIP_POINT eqp) { } + +simulated function SetMeshDepthPriority(Scene.ESceneDepthPriorityGroup NewDepth) { } + +event bool CanPlayHitReaction() { } + +function KillCloneTimer() { } + +simulated event OnCameraCutAnimNotify(TgAnimNotify_CameraCut CameraCutNotify) { } + +simulated function bool IsInputLocked() { } + +simulated function bool InputLockedDueToFiring() { } + +simulated function bool IsRotationLocked() { } + +simulated function bool IsCameraLocked() { } + +event bool CanApplyShield() { } + +function bool OnMountCancelOffhandSlotPressed(TgDevice newDev) { } + +simulated function PlayMountingEffects(bool bPlayMountAnim, bool bPostureChange) { } + +simulated function StopMountingEffects(bool bPlayDismount, bool bPostureChange) { } + +simulated function DetachMountMesh() { } + +simulated function OnMountBegin(bool bForceFireDueToRespawn, bool bPostureChange) { } + +simulated function SwitchBackToInhandInstantly() { } + +simulated event bool IsFirstPerson() { } + +function RemoveStealthEffects() { } + +simulated event PlayBleedEffects(bool bEnabled) { } + +simulated event PlayDazeEffects(bool bEnabled) { } + +simulated event PlayCCImmuneEffects(bool bEnabled) { } + +simulated event PlayOnFireEffects(bool bEnabled) { } + +simulated event PlayFreezeEffects(bool bEnabled) { } + +simulated event PlayKnockbackEffects(bool bEnabled) { } + +simulated event PlayMarkEffects(bool bEnabled) { } + +function ClientPlayGrassEffects(bool bEnabled, optional ParticleSystem Template) { } + +function ClientPlayHiddenEffects(bool bEnabled, optional ParticleSystem Template) { } + +simulated event PlayRootEffects(bool bEnabled) { } + +simulated event PlayPoisonedEffects(bool bEnabled) { } + +simulated event PlayCrippledEffects(bool bEnabled) { } + +simulated event PlayFlashBangEffects(bool bEnabled) { } + +simulated function CleanUpScreenCapturePostProcess() { } + +simulated event PlaySlowEffects(bool bEnabled) { } + +simulated event PlayRevealedEffects(bool bEnabled) { } + +simulated function InterruptAllReloads() { } + +simulated event InterruptInhandReload() { } + +event bool HasDeviceByID(int DeviceID) { } + +event bool HasActiveDeviceByID(int DeviceID) { } + +event bool HasDeviceByClass(Class DeviceClass) { } + +event bool HasActiveDeviceByClass(name DeviceClassName) { } + +native event TgDevice GetDeviceByClass(Class DeviceClass); // Export UTgPawn::execGetDeviceByClass(FFrame&, void* const) + +event TgDevice GetActiveDeviceByClass(name DeviceClassName) { } + +event InterruptDeviceFiringByClass(Class DeviceClass, optional bool bForce) { } + +event InterruptAllMovementDevices() { } + +event float GetDistanceToNearestCapturePoint() { } + +simulated event SetUITargetingType(TgObject.EUITargetingType NewTargetingType, optional bool bForceRequiredToSet, optional TgObject.EUITargetingType RequiredToSet) { } + +simulated function AddIncomingImpact(int bNumToAdd) { } + +reliable client simulated function ClientSetActiveWeapon(Weapon NewWeapon) { } + +function UpdateMetaGameState(TgPawn.EMetaGameState NewState) { } + +function TgPawn.EMetaGameState GetMetaGameState() { } + +function UpdateBotBehaviorState(TgPawn.EBotBehaviorState NewState) { } + +function TgPawn.EBotBehaviorState GetBotBehaviorState() { } + +native exec function TestFx(float Pct); // Export UTgPawn::execTestFx(FFrame&, void* const) + +exec function TgSpecialFx TestFx2(int Id) { } + +function UpdateLastPlayerStart(PlayerStart NewLastPlayerStart) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +event AddInstigatorWallReveal(Actor Viewer) { } + +event RemoveInstigatorWallReveal(Actor Viewer) { } + +simulated event bool IsInstigatorWallRevealed(Actor Viewer) { } + +event AddInstigatorStealthReveal(Actor Viewer) { } + +event RemoveInstigatorStealthReveal(Actor Viewer) { } + +native simulated function bool IsInstigatorStealthRevealed(Actor Viewer); // Export UTgPawn::execIsInstigatorStealthRevealed(FFrame&, void* const) + +event AddObscuringDeployable(TgDeployable deployable) { } + +event RemoveObscuringDeployable(TgDeployable deployable) { } + +event AddBlindingDeployable(TgDeployable deployable) { } + +event RemoveBlindingDeployable(TgDeployable deployable) { } + +native function UpdateWhiteOut(); // Export UTgPawn::execUpdateWhiteOut(FFrame&, void* const) + +native function EndWhiteOut(); // Export UTgPawn::execEndWhiteOut(FFrame&, void* const) + +function IntroTimer() { } + +simulated function SetWhiteOutStartTimer() { } + +simulated function BeginWhiteOutScaleUp() { } + +simulated event bool IsPlayingIntro() { } + +event DoIntroduction(bool bUseInitialIntro) { } + +simulated function SetupIntroAnimNodesAndTimers() { } + +simulated function EnterIntroPosture() { } + +simulated function ExitIntroPosture(optional bool bForceAnimTreeOut) { } + +simulated event FinishedIntroAnim(AnimNode IntroAnimNode) { } + +event SetInitialHUDOverlayInfo() { } + +simulated function TgRespawnBeaconExit GetTouchingRespawnBeacon() { } + +function TouchingRespawnBeaconExit(TgRespawnBeaconExit RespawnBeacon, bool IsTouching) { } + +singular simulated function UpdateHasRespawnBeacon(bool bHasRespawnBeacon) { } + +reliable client simulated function ClientUpdateHasRespawnBeacon(bool bHasRespawnBeacon) { } + +simulated function PlayFXHoldsBeacon(bool bShouldPlay) { } + +simulated function PlayGenericTakeHit(Vector HitLocation, Vector HitNormal, TgPawn HitInstigator, float fDamageAmount, const out ExtraDamageInfo ExtraInfo) { } + +simulated function OnStartTimelapseNewDeviceState() { } + +simulated function Vector GetCameraOffsetOverride(Vector originalOffset) { } + +exec function Polymorph(TgObject.EPolymorphType NewPolymorph) { } + +native function SetPolymorph(TgObject.EPolymorphType NewPolymorph, Actor instigatingActor); // Export UTgPawn::execSetPolymorph(FFrame&, void* const) + +native function int GetPolymorphMeshID(); // Export UTgPawn::execGetPolymorphMeshID(FFrame&, void* const) + +native function PlayPolymorphEffects(optional bool bForceOff); // Export UTgPawn::execPlayPolymorphEffects(FFrame&, void* const) + +native function SetAux(name AuxBusName, float Level); // Export UTgPawn::execSetAux(FFrame&, void* const) + +simulated event PreTimeLapse(bool bPlayOfTheGame) { } + +simulated event PostTimeLapse(bool bPlayOfTheGame) { } + +simulated function PrepTrackedProjectileRecreation(float recreateTimeOut) { } + +simulated event RecreateTrackedProjectiles() { } + +simulated event OnPolymorphChanged(bool bDead) { } + +simulated function Rotator ApplyCameraRotationModifier(Rotator rCameraRot) { } + +simulated function Rotator ApplyRecoilToRotation(Rotator rRot) { } + +simulated function AllowDeviceToModifyInput(TgPlayerInput tgInput) { } + +simulated event ForceUpdateAmmoAnim() { } + +simulated event OnBecameSpectatorViewTarget() { } + +simulated event OnCeaseSpectatorViewTarget() { } + +native function SetThreatLevel(TgObject.EThreatLevel NewThreatLevel); // Export UTgPawn::execSetThreatLevel(FFrame&, void* const) + +native function float CheckOcclusion(); // Export UTgPawn::execCheckOcclusion(FFrame&, void* const) + +event SetHUDOverlayDisplayMask(int dodm) { } + +event SetHUDOverlayIcon(TgObject.DeployableOverlayIcon doi) { } + +event SetHUDOverlayState(TgObject.DeployableOverlayState dos) { } + +event SetHUDOverlayEnemyViewDist(float enemyViewDist) { } + +event UpdateHUDHealthPercent(float fPercent) { } + +event ToggleHealAkEvent(bool bEnable) { } + +function SetFaceRotationToController() { } + +simulated function ForwardEffects(ImpactInfo Impact, TgEffectGroup EffectGroup, TgDevice SourceDevice, optional bool bRemove, optional int StackCount=1) { } + +simulated function bool CanBeNudged() { } + +simulated function bool ShouldNudgePlayer(TgPawn PlayerPawn) { } + +simulated function float GetReloadScale() { } + +native function float GetEnergyChargeModifier(); // Export UTgPawn::execGetEnergyChargeModifier(FFrame&, void* const) + +native function ResetUlt(); // Export UTgPawn::execResetUlt(FFrame&, void* const) + +simulated function TgDevice GetDeviceForAimAssist() { } + +simulated function float GetMaxAimAssistStacks() { } + +reliable server function ServerStartFlourish() { } + +simulated function FlourishTimeoutFinished() { } + +simulated event StartFlourish() { } + +simulated event AppliedEffectRemoved(TgEffect RemovedEffect) { } + +simulated event RegisterFor3pTransitionCB(delegate EventDelegate) { } + +simulated function Invoke3pTransitionDelegates() { } + +simulated event DisableMovementCorrection(float fDisableTime) { } + +simulated event EnableMovementCorrection() { } + +simulated function bool ShouldUseScopeSensitivity() { } + +simulated event OnVGSSoundPlayed(int nVgsId) { } + +simulated event OnVGSSoundFinished() { } + +simulated event OnEmoteSoundPlayed(TgPawn.EEmote Emote) { } + +simulated event OnEmoteSoundFinished() { } + +state Dying {} + +state Intro {} + +state Idle {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Androxus.uc b/Development/Src/TgGame/Classes/TgPawn_Androxus.uc new file mode 100644 index 0000000..7d6cc2e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Androxus.uc @@ -0,0 +1,67 @@ +class TgPawn_Androxus extends TgPawn_Character + native(ChampAndroxus) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const TGPAWN_ANDROXUS_SLOWFALL_FX_ID = 6824; + +var bool m_bIsInSlowFall; +var bool m_bForceAccursedArmDevice; +var repnotify bool r_bAccursedArmFiring; +var bool m_bUltimateReadyDisplayGroupOn; +var float m_fAccursedArmSpeedModifier; +var TgDevice m_AccursedArmInHand; +var float m_fDefianceAirControl; +var float m_fAirHangGravityModifier; +var float m_fJumpHoldMaxFallSpeed; +var TgDevice_NetherStep m_NetherStepDevice; +var float r_fFeatherweightAirControl; +var float r_fLiftOffDrift; +var int m_nAccursedArmActiveFX; +var array m_SlowFallAnimNodes; +var repnotify int r_nDesiredSlowFallAnimChild; +var TgSpecialFx m_SlowFallFX; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fFeatherweightAirControl, r_fLiftOffDrift; +} + +native function bool InitializeSlowFallFX(); // Export UTgPawn_Androxus::execInitializeSlowFallFX(FFrame&, void* const) + +native function float GetAirControl(); // Export UTgPawn_Androxus::execGetAirControl(FFrame&, void* const) + +native function float GetGravityZ(); // Export UTgPawn_Androxus::execGetGravityZ(FFrame&, void* const) + +native function bool ShouldForceHideOverlaysWeapon(); // Export UTgPawn_Androxus::execShouldForceHideOverlaysWeapon(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event bool PostPawnSetup() { } + +simulated function CacheMultiMeshAnimNodeReferences(TgSkeletalMeshComponent smcomp) { } + +simulated event SetSlowFallAnimationIndex(int nIndex) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function ApplyLiftOff() { } + +function ToggleAccursedArm(bool bEnabled, optional float SpeedModifier=1.0000000) { } + +simulated function PlayAccursedArmEffects(bool bEnabled) { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated event PlaySlowFallFx() { } + +simulated event StopSlowFallFx() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated function OnRespawn() { } + +simulated event Stun(bool bStunController, optional Controller.EStunType eType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Astro.uc b/Development/Src/TgGame/Classes/TgPawn_Astro.uc new file mode 100644 index 0000000..f9a2eb2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Astro.uc @@ -0,0 +1,67 @@ +class TgPawn_Astro extends TgPawn_Character + native(ChampAstro) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const DEVICE_LIGHT_SPEED = 19186; + +const DEVICE_GRAVITY_LIFT = 19187; + +const DEVICE_ASTRAL_MARK = 17178; + +const CARD_ASTRAL_CYCLE = 0; + +const CARD_STAR_SEEKER = 1; + +var TgDevice_Lightspeed m_LightSpeedDevice; +var TgDevice_AstroQ m_GravityLiftDevice; +var TgDevice_AstralMark m_AstralMarkDevice; +var TgDevice_AstralCycle m_AstralCycleCard; +var TgDevice_StarSeeker m_StarSeekerCard; +var TgPawn_Character m_AstralTarget; +var TgPawn_Character m_GravityLiftTarget; +var TgPawn_Character m_HitGravityLiftTarget; +var repnotify TgRepInfo_Player r_HitAstralTarget; +var repnotify TgRepInfo_Player r_RemoveAstralTarget; +var array m_AstralMarkTargets; +var float m_fDeadSpaceTimer; +var bool m_bDeadSpaceTimerActive; +var Rotator r_mUltimateAimRotation; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_HitAstralTarget, r_RemoveAstralTarget, r_mUltimateAimRotation; +} + +simulated event ReplicatedEvent(name VarName) { } + +native function bool HasDeviceCached(int DeviceID); // Export UTgPawn_Astro::execHasDeviceCached(FFrame&, void* const) + +native function bool AllowBoostedJump(); // Export UTgPawn_Astro::execAllowBoostedJump(FFrame&, void* const) + +native function bool CanKnockbackAffectAC(); // Export UTgPawn_Astro::execCanKnockbackAffectAC(FFrame&, void* const) + +native function GlobalOnPlayerDied(TgPawn_Character Player); // Export UTgPawn_Astro::execGlobalOnPlayerDied(FFrame&, void* const) + +native function OnPawnDied(); // Export UTgPawn_Astro::execOnPawnDied(FFrame&, void* const) + +native function EffectGroupOnSetActive(bool bActive, bool bRemoving, TgEffectGroup EffectGroup); // Export UTgPawn_Astro::execEffectGroupOnSetActive(FFrame&, void* const) + +native function float GetGravityZ(); // Export UTgPawn_Astro::execGetGravityZ(FFrame&, void* const) + +native function bool ShouldBeFirstPersonThisTick(); // Export UTgPawn_Astro::execShouldBeFirstPersonThisTick(FFrame&, void* const) + +native function float GetAirControl(); // Export UTgPawn_Astro::execGetAirControl(FFrame&, void* const) + +native function AddAstralMarkTarget(); // Export UTgPawn_Astro::execAddAstralMarkTarget(FFrame&, void* const) + +native function RemoveAstralMarkTarget(); // Export UTgPawn_Astro::execRemoveAstralMarkTarget(FFrame&, void* const) + +simulated function float GetJumpSpeedMultiplier() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Barik.uc b/Development/Src/TgGame/Classes/TgPawn_Barik.uc new file mode 100644 index 0000000..31f9699 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Barik.uc @@ -0,0 +1,14 @@ +class TgPawn_Barik extends TgPawn_Character + native(ChampBarik) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +native function ModifyAccuracyForReticleBloom(out float fAccuracy); // Export UTgPawn_Barik::execModifyAccuracyForReticleBloom(FFrame&, void* const) + +simulated function float GetChargeTurnRate() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_BarrierTank.uc b/Development/Src/TgGame/Classes/TgPawn_BarrierTank.uc new file mode 100644 index 0000000..d190ec3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_BarrierTank.uc @@ -0,0 +1,48 @@ +class TgPawn_BarrierTank extends TgPawn_Character + native(ChampBarrierTank) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const IMPASSE_TOTAL_WALL_SEGMENTS = 5; + +struct WallPlacementInfo { + var bool bIsValidLocation; + var Vector vSpawnLocation; + structdefaultproperties {} +}; + +var WallPlacementInfo m_WallPlacementInfos[5]; +var const Vector m_vSegmentExtent; +var const Vector m_vOpenSpotExtent; +var const float m_fWallTraceDownDistance; +var const float m_fWallOpenSpotTolerance; +var const float m_fInitialWallScaleZ; +var bool r_bInGaeBolg; +var bool m_bUseGaeBolgRetrieve; +var float m_fGaeBolgJumpZModifier; +var int r_nInhandAmmoRemaining; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && !bNetOwner || bDemoRecording) r_bInGaeBolg; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nInhandAmmoRemaining; +} + +native function UpdateWallPlacementInfos(Vector OriginLocation, Rotator originRotation); // Export UTgPawn_BarrierTank::execUpdateWallPlacementInfos(FFrame&, void* const) + +function StartGaeBolg(float fJumpZMultiplier) { } + +singular function EndGaeBolg() { } + +simulated function float GetJumpSpeedMultiplier() { } + +function bool DoJump(bool bUpdating) { } + +simulated function OnStartTimelapseNewDeviceState() { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Biped.uc b/Development/Src/TgGame/Classes/TgPawn_Biped.uc old mode 100755 new mode 100644 index 8a012e7..44b1db4 --- a/Development/Src/TgGame/Classes/TgPawn_Biped.uc +++ b/Development/Src/TgGame/Classes/TgPawn_Biped.uc @@ -1,4 +1,77 @@ -class TgPawn_Biped extends TgPawn - native(Pawns) - config(Game) - hidecategories(Navigation); \ No newline at end of file +class TgPawn_Biped extends TgPawn + native(Pawns) + config(Game) + hidecategories(Navigation); + +var () name m_nmLeftFootBone; +var () name m_nmRightFootBone; +var () name m_nmLeftFootControlName; +var () name m_nmRightFootControlName; +var float m_fOldLocationZ; +var bool m_bEnableRightFootPlacement; +var bool m_bEnableLeftFootPlacement; +var bool m_bMayDisableFootIKFromAnimNodes; +var bool m_bInitializedFootIKCachedNodeList; +var bool m_bApplyLeftHandWeaponIK; +var bool m_bSetHandIKStrengthFromAnimNodes; +var bool m_bInitializedHandIKCachedNodeList; +var bool c_bPlayingRefire; +var bool c_bRefireIsUpperBody; +var const float m_fZSmoothingRate; +var float m_fMaxFootPlacementDistSquared; +var SkelControlFootPlacement m_LeftLegControl; +var SkelControlFootPlacement m_RightLegControl; +var array m_FootIKZeroStrengthAnimNodeNameList; +var array m_FootIKZeroStrengthCachedNodeList; +var Vector m_vPreviousRightFootPosition; +var Vector m_vPreviousLeftFootPosition; +var float m_fCachedRightTracedFloor; +var float m_fCachedLeftTracedFloor; +var float m_fCachedRightFloorNormalZ; +var float m_fCachedLeftFloorNormalZ; +var int m_nCachedLeftFootBoneIndex; +var int m_nCachedRightFootBoneIndex; +var name m_SkelControl_LeftHandName; +var SkelControlLimb m_SkelControl_LeftHand; +var SkelControlSingleBone m_SkelControl_LeftHandRotate; +var name m_SkelControl_RightHandName; +var SkelControlLimb m_SkelControl_RightHand; +var SkelControlSingleBone m_SkelControl_RightHandRotate; +var SkelControlSingleBone m_SkelControl_RightToLeftPropSwitch; +var array m_HandIKFullStrengthAnimNodeNameList; +var array m_HandIKZeroStrengthAnimNodeNameList; +var array m_HandIKFullStengthCachedNodeList; +var array m_HandIKZeroStrengthCachedNodeList; +var MaterialInstanceConstant m_FadeMaterialControllerBody; +var name c_RefireBeginBlendAnimationName; +var name c_RefireEndBlendAnimationName; +var AnimSet c_RefireAnimSet; +var float c_fRefireDuration; +var float c_fRefireEndDuration; + +native function bool InitializeLeftHandIKAnimNodes(SkeletalMeshComponent SkelComp); // Export UTgPawn_Biped::execInitializeLeftHandIKAnimNodes(FFrame&, void* const) + +native function bool InitializeFootIKZeroStrengthAnimNodes(SkeletalMeshComponent SkelComp); // Export UTgPawn_Biped::execInitializeFootIKZeroStrengthAnimNodes(FFrame&, void* const) + +native function BeginRefire(); // Export UTgPawn_Biped::execBeginRefire(FFrame&, void* const) + +native function EndRefire(); // Export UTgPawn_Biped::execEndRefire(FFrame&, void* const) + +native function EndRefireTimer(); // Export UTgPawn_Biped::execEndRefireTimer(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function CacheMainMeshReferences(TgSkeletalMeshComponent smcomp) { } + +exec function zpivot(float F) { } + +simulated event EnableFootControls(int foot, bool bDisable) { } + +exec function SetAimTarget(float X, float Y, float Z) { } + +simulated function bool CanTrackATarget() { } + +event Landed(vector HitNormal, actor FloorActor) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Blades.uc b/Development/Src/TgGame/Classes/TgPawn_Blades.uc new file mode 100644 index 0000000..3982387 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Blades.uc @@ -0,0 +1,160 @@ +class TgPawn_Blades extends TgPawn_Character + native(ChampBlades) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +const DJ_BLADES_HEAD_SKIN_ID = 19277; + +const DJ_BLADES_HEAD_SKIN_LOBBY_ID = 8021; + +const MAX_DJ_BLADES_FACES = 8; + +const MAX_DJ_BLADES_FACE_PRIORITIES = 3; + +enum GemEmissiveAnim { + eGEA_None, // 0 + eGEA_Idle, // 1 + eGEA_Pounce, // 2 + eGEA_Prowl, // 3 + eGEA_AirJump, // 4 + eGEA_NineLives, // 5 + eGEA_Midnight, // 6 +}; + +enum DjBladesFace { + eDBF_Base, // 0 + eDBF_VGS_Positive, // 1 + eDBF_VGS_Negative, // 2 + eDBF_VGS_Silly, // 3 + eDBF_Ability_1, // 4 + eDBF_Ability_2, // 5 + eDBF_CrowdControl, // 6 + eDBF_Death, // 7 +}; + +enum DjBladesFacePriority { + eDBFP_Ability, // 0 + eDBFP_VGS, // 1 + eDBFP_Status, // 2 +}; + +struct DjBladesFaceConfig { + var float fShiftX; + var float fShiftY; + structdefaultproperties {} +}; + +var float m_fGravityFalloffDuration; +var float m_fGravityFalloffTimer; +var float m_fAirControlReductionDuration; +var float m_fAirControlReductionTimer; +var float m_fAirControlReductionPercent; +var repnotify bool r_bProwlActive; +var float r_fProwlAccelMultiplier; +var float r_fProwlGroundSpeedMultiplier; +var float r_fProwlJumpHeightMultiplier; +var float r_fProwlAirControlMultiplier; +var repnotify float r_fProwlFadeOutDuration; +var float m_fProwlFadeOutTimer; +var float r_fFeatherliteGravityMultiplier; +var repnotify TgPawn_Blades.GemEmissiveAnim r_eGemEmissiveAnim; +var repnotify TgPawn_Blades.GemEmissiveAnim r_eGemEmissiveEndAnim; +var TgPawn_Blades.DjBladesFace c_eCurrentDjBladesFace; +var TgPawn_Blades.DjBladesFace c_eDjBladesFace[3]; +var MaterialInstanceConstant c_pGemEmissiveMIC; +var string m_sGemEmissiveParamName; +var float m_fGemEmissiveBaseValue; +var float m_fGemEmissiveBaseAnimSpeed; +var float c_fGemEmissiveCurrentValue; +var array c_eGemEmissiveAnimType; +var array c_fGemEmissiveTargetValue; +var array c_fGemEmissiveAnimSpeed; +var array c_fGemEmissiveHoldTimer; +var float m_fGemEmissive1PBaseValue; +var float m_fGemEmissive1PAnimSpeedMult; +var float m_fGemEmissive1PValueMult; +var float m_fGemEmissiveGlobalScalar; +var float c_fDjBladesFaceTimeout[3]; +var DjBladesFaceConfig c_DjBladesFaceConfig[8]; +var string c_sDjBladesFaceXParamName; +var string c_sDjBladesFaceYParamName; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_bProwlActive, r_fFeatherliteGravityMultiplier, r_fProwlAccelMultiplier, r_fProwlAirControlMultiplier, r_fProwlFadeOutDuration, r_fProwlGroundSpeedMultiplier, r_fProwlJumpHeightMultiplier; +} + +native function float GetGravityZ(); // Export UTgPawn_Blades::execGetGravityZ(FFrame&, void* const) + +native function GravityFallOff(float fDuration); // Export UTgPawn_Blades::execGravityFallOff(FFrame&, void* const) + +native function AirControlReduction(float fDuration, float fPercentReduction); // Export UTgPawn_Blades::execAirControlReduction(FFrame&, void* const) + +native function QueueBounceCustom(const out Vector vBounceVelocity, float fDuration, float fPctAirControlReduction); // Export UTgPawn_Blades::execQueueBounceCustom(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_Blades::execDeviceAdjustDamage(FFrame&, void* const) + +native function float GetProwlAccelMultiplier(); // Export UTgPawn_Blades::execGetProwlAccelMultiplier(FFrame&, void* const) + +native function float GetProwlGroundSpeedMultiplier(); // Export UTgPawn_Blades::execGetProwlGroundSpeedMultiplier(FFrame&, void* const) + +native function float GetProwlJumpHeightMultiplier(); // Export UTgPawn_Blades::execGetProwlJumpHeightMultiplier(FFrame&, void* const) + +native function float GetProwlAirControlMultiplier(); // Export UTgPawn_Blades::execGetProwlAirControlMultiplier(FFrame&, void* const) + +native simulated function ResetGemEmissiveParam(); // Export UTgPawn_Blades::execResetGemEmissiveParam(FFrame&, void* const) + +native simulated function ClearGemEmissiveParam(TgPawn_Blades.GemEmissiveAnim eAnim); // Export UTgPawn_Blades::execClearGemEmissiveParam(FFrame&, void* const) + +native simulated function AnimateGemEmissiveParam(TgPawn_Blades.GemEmissiveAnim eAnim, float fTargetValue, float fAnimSpeed, float fHoldTime); // Export UTgPawn_Blades::execAnimateGemEmissiveParam(FFrame&, void* const) + +native function PawnOnKilled(Actor pVictim); // Export UTgPawn_Blades::execPawnOnKilled(FFrame&, void* const) + +native function PawnOnAssisted(Actor pVictim); // Export UTgPawn_Blades::execPawnOnAssisted(FFrame&, void* const) + +simulated function SetGemEmissiveAnim(TgPawn_Blades.GemEmissiveAnim eAnim) { } + +function ClearGemEmissiveAnim() { } + +simulated function SetGemEmissiveEndAnim(TgPawn_Blades.GemEmissiveAnim eEndAnim) { } + +function ClearGemEmissiveEndAnim() { } + +simulated function ApplyGemEmissveAnim(TgPawn_Blades.GemEmissiveAnim eAnim) { } + +simulated event float Get1PGemEmissiveMultiplier(TgPawn_Blades.GemEmissiveAnim eAnim) { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +function bool CannotJumpNow() { } + +function bool DoJump(bool bUpdating) { } + +simulated function float GetJumpHeightMultiplier() { } + +simulated event int GetNumAirJumps() { } + +simulated event bool RespectsEmoteGlobalCooldown(TgPawn.EEmote Emote) { } + +simulated event float GetAbilityEmoteChance(TgPawn.EEmote Emote) { } + +simulated event float GetEmoteChance(TgPawn.EEmote Emote) { } + +simulated event OnVGSSoundPlayed(int nVgsId) { } + +simulated event OnVGSSoundFinished() { } + +simulated event OnEmoteSoundPlayed(TgPawn.EEmote Emote) { } + +simulated event OnEmoteSoundFinished() { } + +simulated event SetDjBladesFace(TgPawn_Blades.DjBladesFace eFace, TgPawn_Blades.DjBladesFacePriority ePriority, optional float fTimeout=0.0000000) { } + +simulated function UpdateDjBladesFace() { } + +native simulated function ApplyDjBladesFace(TgPawn_Blades.DjBladesFace eFace); // Export UTgPawn_Blades::execApplyDjBladesFace(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_BombKing.uc b/Development/Src/TgGame/Classes/TgPawn_BombKing.uc new file mode 100644 index 0000000..b9535a0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_BombKing.uc @@ -0,0 +1,72 @@ +class TgPawn_BombKing extends TgPawn_Character + native(ChampBombKing) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +enum EWeaponMeshState { + WMS_Inhand, // 0 + WMS_Grumpy, // 1 + WMS_Poppy, // 2 +}; + +var (BouncyBomb) float m_fBounceDampingVertMin; +var (BouncyBomb) float m_fBounceDampingVertMax; +var (BouncyBomb) float m_fBounceDampingHorizMin; +var (BouncyBomb) float m_fBounceDampingHorizMax; +var bool c_bRenderKingBombMesh; +var bool m_bForced3PDuringKingBomb; +var int c_nKingBombMeshID; +var () Vector m_fKingBombCameraOffset; +var repnotify TgPawn_BombKing.EWeaponMeshState r_weaponMeshState; +var int m_nInhandID; +var int m_nGrumpyBombID; +var int m_nPoppyBombID; +var float r_fJoltKnockback; +var Class m_InhandClass; +var Class m_GrumpyBombClass; +var Class m_PoppyBombClass; + +replication { + if((bNetDirty && !bNetInitial) && !bNetOwner || bDemoRecording) r_weaponMeshState; + if(bNetDirty && int(Role) == int(ENetRole.ROLE_Authority)) r_fJoltKnockback; +} + +native function ReloadMeshAssemblies(); // Export UTgPawn_BombKing::execReloadMeshAssemblies(FFrame&, void* const) + +native function bool ShouldBeFirstPersonThisTick(); // Export UTgPawn_BombKing::execShouldBeFirstPersonThisTick(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_BombKing::execDeviceAdjustDamage(FFrame&, void* const) + +native function OnPawnDied(); // Export UTgPawn_BombKing::execOnPawnDied(FFrame&, void* const) + +simulated function OnRespawn() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function SwapToKingBombMesh() { } + +simulated function SwapFromKingBombMesh() { } + +reliable server function SwitchToStickyBomb() { } + +reliable server function SwitchToGrumpyBomb() { } + +reliable server function SwitchToPoppyBomb() { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function Vector GetCameraOffsetOverride(Vector originalOffset) { } + +simulated function PlayDyingEffects() { } + +simulated event PreTimeLapse(bool bPlayOfTheGame) { } + +simulated event PostTimeLapse(bool bPlayOfTheGame) { } + +simulated function SpecialHideStickyBomb(int projID, int deployID) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Buck.uc b/Development/Src/TgGame/Classes/TgPawn_Buck.uc new file mode 100644 index 0000000..c9be4d7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Buck.uc @@ -0,0 +1,12 @@ +class TgPawn_Buck extends TgPawn_Character + native(ChampBuck) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +native function ModifyAccuracyForReticleBloom(out float fAccuracy); // Export UTgPawn_Buck::execModifyAccuracyForReticleBloom(FFrame&, void* const) + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Cassie.uc b/Development/Src/TgGame/Classes/TgPawn_Cassie.uc new file mode 100644 index 0000000..fc12724 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Cassie.uc @@ -0,0 +1,22 @@ +class TgPawn_Cassie extends TgPawn_Character + native(ChampCassie) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var float r_fRadiusForBlastShotFX; +var repnotify bool r_bRollBonusActive; +var TgDevice_Scout m_CachedScoutDevice; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bRollBonusActive, r_fRadiusForBlastShotFX; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event UpdateBonusVisualization() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Character.uc b/Development/Src/TgGame/Classes/TgPawn_Character.uc old mode 100755 new mode 100644 index 8220541..eaa851d --- a/Development/Src/TgGame/Classes/TgPawn_Character.uc +++ b/Development/Src/TgGame/Classes/TgPawn_Character.uc @@ -1,19 +1,342 @@ -class TgPawn_Character extends TgPawn_Biped - native(Pawns) - config(Game) - hidecategories(Navigation); - -simulated function PrepareIntro(){} - -simulated function PlayIntroAnims(){} - -simulated function OnRespawn(){} - -simulated function PlaySpawnFx(){} - -function PossessedBy(Controller C, bool bVehicleTransition){} - -// Export UTgPawn_Character::execApplyPawnSetup(FFrame&, void* const) -native function bool ApplyPawnSetup(); - -simulated event bool PostPawnSetup(){} \ No newline at end of file +class TgPawn_Character extends TgPawn_Biped + native(Pawns) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +const TGC_REMEMBER_PLAYER_ATTACKED_TIME = 2; + +const TGC_KILL_COMBO_MAX_TIME = 5; + +const TG_MAX_DISTANCE_FOR_SHARED_VISIBILITY_SQ = 2560000; + +const TG_HIT_INDICATOR_POINTS_TO_INSTIGATOR = 1; + +const TG_MAX_PLAYER_STUCK_BOMBS = 6; + +const TG_ROLE_DAMAGE = 10601; + +const TG_ROLE_FLANKER = 10541; + +const TG_ROLE_FRONTLINE = 10542; + +const TG_ROLE_SUPPORT = 15060; + +enum EUITargeters { + TARGETER_KINESSA, // 0 + TARGETER_TYRA, // 1 + TARGETER_TORVALD, // 2 + TARGETER_ORACLE, // 3 + TARGETER_ASTRO, // 4 + TARGETER_YING, // 5 +}; + +struct WeaponDOF { + var bool IsActive; + var DOFAndBloomEffect.EDOFType DOFType; + var float Falloff; + var float BlurKernelSize; + var DOFEffect.EFocusType FocusType; + var float FocusInnerRadius; + var float FocusDistance; + var float MaxNearBlurAmount; + var float MinBlurAmount; + var float MaxFarBlurAmount; + structdefaultproperties {} +}; + +struct ForceFaceTargetActor { + var Actor TargetActor; + var float HeightOffset; + var Quat InitialQuat; + var float InterpTime; + var float StartTime; + var float Duration; + var Object ForceRotationInstigator; + structdefaultproperties {} +}; + +struct TeleportParams { + var Vector vTargetLocation; + var Rotator rTargetRotation; + var bool bPlayFx; + var bool bDoBackTrace; + var Vector vBackTraceDir; + var float fBackTraceIncrement; + var float fBackTraceMaxDist; + var bool bLookForGround; + var float fGroundSearchHeight; + var float fGroundSearchRayRadius; + var bool bCheckLineOfSight; + var float fMovementCorrectionDisableTime; + var int nTeleportEnterState; + var int nTeleportExitState; + var bool bFakeTeleport; + structdefaultproperties {} +}; + +var bool c_bUpdatePlayerStatUI; +var bool m_bInHandFiring; +var bool r_bNearCapturePoint; +var bool r_bNearPayload; +var bool r_bNearSiegeMonster; +var bool r_bVisibleToEnemies; +var bool s_bAmmoReloadCheat; +var bool s_bAutomountProtection; +var bool m_bAttemptingAirJump; +var bool m_bDelayingStopSpecialJumpFx; +var bool m_bPendingBounce; +var bool s_bInitiatingJoin; +var const bool s_bReplicateInhandAmmo; +var transient float m_fLastCapturePointReclaimedTime; +var float m_fMinReclaimPointTime; +var transient float m_fInHandStartFireTime; +var transient float m_fInHandStopFireTime; +var float m_fWallDamagePercent; +var float m_fSiegeDamagePercent; +var repnotify float r_fZoomAmt; +var repnotify byte r_nCriticalHit; +var () float m_fMountZoomOverride; +var TgDeploy_BombKingStickyBomb r_StuckBombs[6]; +var int m_nCharacterRole; +var () export editinline TgCustomCharacterComponent m_CustomCharacterComponent; +var () export editinline PrimitiveComponent m_MountedCollisionComponent; +var () export editinline PrimitiveComponent m_MeshEncompassingCollisionComponent; +var array m_CachedMoveSpeedModDevices; +var int m_nAirJumps; +var (Blades) float m_fAirJumpZSpeed; +var Vector m_vBounceVelocity; +var TgPawn_Character m_JoinTargetLocal; +var TgPawn_Character m_JoinSourceLocal; +var repnotify TgPawn_Character r_JoinTarget; +var Vector r_vJoinSourceLocation; +var Vector r_vJoinTargetLocation; +var float r_fJoinTweenDuration; +var repnotify TgPawn_Character r_JoinSource; +var array m_ForceFaceActors; +var repnotify int r_nInHandCurrentAmmo; +var repnotify int r_nInHandMaxAmmo; + +replication { + if(bNetDirty) r_JoinSource, r_JoinTarget, r_bNearCapturePoint, r_bNearPayload, r_bVisibleToEnemies, r_fJoinTweenDuration, r_nInHandCurrentAmmo, r_nInHandMaxAmmo, r_vJoinSourceLocation, r_vJoinTargetLocation; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_StuckBombs, r_nCriticalHit; +} + +native function bool ApplyPawnSetup(); // Export UTgPawn_Character::execApplyPawnSetup(FFrame&, void* const) + +native function SetSpawnMana(); // Export UTgPawn_Character::execSetSpawnMana(FFrame&, void* const) + +native function LoadDisconnectedPlayerState(); // Export UTgPawn_Character::execLoadDisconnectedPlayerState(FFrame&, void* const) + +native function OnHealingWell(bool bTouched); // Export UTgPawn_Character::execOnHealingWell(FFrame&, void* const) + +native function ReapplyLoadoutEffects(optional bool bKeepFiringMount); // Export UTgPawn_Character::execReapplyLoadoutEffects(FFrame&, void* const) + +native function bool ApplyItemEffects(TgInventoryObject pItem, bool bRemove); // Export UTgPawn_Character::execApplyItemEffects(FFrame&, void* const) + +native function bool ApplyMonsterRewardEffects(TgInventoryObject pItem, bool bRemove); // Export UTgPawn_Character::execApplyMonsterRewardEffects(FFrame&, void* const) + +native function OnPawnDied(); // Export UTgPawn_Character::execOnPawnDied(FFrame&, void* const) + +native function SpawnGuard(); // Export UTgPawn_Character::execSpawnGuard(FFrame&, void* const) + +native function PlayMatchStartCue(); // Export UTgPawn_Character::execPlayMatchStartCue(FFrame&, void* const) + +native function GlobalOnPlayerDied(TgPawn_Character Player); // Export UTgPawn_Character::execGlobalOnPlayerDied(FFrame&, void* const) + +native function PawnOnDamaged(out OnDamagedParams Params); // Export UTgPawn_Character::execPawnOnDamaged(FFrame&, void* const) + +native function PawnOnHealed(out OnHealedParams Params); // Export UTgPawn_Character::execPawnOnHealed(FFrame&, void* const) + +native function PawnOnKilled(Actor pVictim); // Export UTgPawn_Character::execPawnOnKilled(FFrame&, void* const) + +native function PawnOnAssisted(Actor pVictim); // Export UTgPawn_Character::execPawnOnAssisted(FFrame&, void* const) + +native function PawnOnRevive(); // Export UTgPawn_Character::execPawnOnRevive(FFrame&, void* const) + +native function PawnOnEnterCombat(); // Export UTgPawn_Character::execPawnOnEnterCombat(FFrame&, void* const) + +native function PawnOnExitCombat(); // Export UTgPawn_Character::execPawnOnExitCombat(FFrame&, void* const) + +native function PawnOnGetHealthNugget(TgDeploy_HealthNugget nugget); // Export UTgPawn_Character::execPawnOnGetHealthNugget(FFrame&, void* const) + +native function PawnOnEnterCapturePoint(TgChaosCapturePoint capturePoint); // Export UTgPawn_Character::execPawnOnEnterCapturePoint(FFrame&, void* const) + +native function PawnOnLeaveCapturePoint(TgChaosCapturePoint capturePoint); // Export UTgPawn_Character::execPawnOnLeaveCapturePoint(FFrame&, void* const) + +native function PawnOnTeleported(TgSpawnTeleporterEntrance From, TgSpawnTeleporterExit To, Vector OriginalPawnLocation); // Export UTgPawn_Character::execPawnOnTeleported(FFrame&, void* const) + +native function DeviceOnStartBuildup(TgDevice Dev); // Export UTgPawn_Character::execDeviceOnStartBuildup(FFrame&, void* const) + +native function DeviceOnStopBuildup(TgDevice Dev, optional bool WasInterrupted=false); // Export UTgPawn_Character::execDeviceOnStopBuildup(FFrame&, void* const) + +native function DeviceOnFire(TgDevice Dev); // Export UTgPawn_Character::execDeviceOnFire(FFrame&, void* const) + +native function ProjectileOnFire(TgProjectile Proj); // Export UTgPawn_Character::execProjectileOnFire(FFrame&, void* const) + +native function DeviceOnStartFire(TgDevice Dev); // Export UTgPawn_Character::execDeviceOnStartFire(FFrame&, void* const) + +native function DeviceOnStopFire(TgDevice Dev, optional bool WasInterrupted=false); // Export UTgPawn_Character::execDeviceOnStopFire(FFrame&, void* const) + +native function DeviceOnHit(TgDevice Dev, const out ImpactInfo Impact); // Export UTgPawn_Character::execDeviceOnHit(FFrame&, void* const) + +native function DeviceOnHitSpecial(TgDevice Dev, const out ImpactInfo Impact, int nHitSpecialSituationalType); // Export UTgPawn_Character::execDeviceOnHitSpecial(FFrame&, void* const) + +native function DeviceOnDamaged(out OnDamagedParams Params); // Export UTgPawn_Character::execDeviceOnDamaged(FFrame&, void* const) + +native function DeviceOnHealed(out OnHealedParams Params); // Export UTgPawn_Character::execDeviceOnHealed(FFrame&, void* const) + +native function DeviceOnKilled(TgDevice Dev, const out ImpactInfo Impact, float fDamage); // Export UTgPawn_Character::execDeviceOnKilled(FFrame&, void* const) + +native function DeviceOnReload(TgDevice Dev); // Export UTgPawn_Character::execDeviceOnReload(FFrame&, void* const) + +native function DeviceOnMiss(TgDevice Dev); // Export UTgPawn_Character::execDeviceOnMiss(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_Character::execDeviceAdjustDamage(FFrame&, void* const) + +native function DeviceAdjustHeal(const out AdjustHealParams Params, out float fHeal); // Export UTgPawn_Character::execDeviceAdjustHeal(FFrame&, void* const) + +native function DropHealthNugget(optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_Character::execDropHealthNugget(FFrame&, void* const) + +native function DropHealthNuggetTeamOnly(int nTaskForce, optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_Character::execDropHealthNuggetTeamOnly(FFrame&, void* const) + +native function float GetBaseSpeed(); // Export UTgPawn_Character::execGetBaseSpeed(FFrame&, void* const) + +native function bool OverrideDistanceFadeRange(); // Export UTgPawn_Character::execOverrideDistanceFadeRange(FFrame&, void* const) + +native function int GetDefaultHeadMeshId(); // Export UTgPawn_Character::execGetDefaultHeadMeshId(FFrame&, void* const) + +native function int GetRole(); // Export UTgPawn_Character::execGetRole(FFrame&, void* const) + +native function TakeHealthDamage(float fDamage, Controller InstigatedBy, Class DamageType, ImpactInfo Impact, ExtraDamageInfo ExtraInfo, optional Actor DamageCauser); // Export UTgPawn_Character::execTakeHealthDamage(FFrame&, void* const) + +native function QueueBounce(const out Vector vBounceVelocity); // Export UTgPawn_Character::execQueueBounce(FFrame&, void* const) + +native function bool FindGround(const out Vector vSourceLocation, out Vector vGroundLocation, out Vector vGroundNormal, const optional float fCheckDist=500.0000000, const optional float fCheckRadius=0.0000000, const optional Vector vRayDir=vect(0.0000000, 0.0000000, -1.0000000)); // Export UTgPawn_Character::execFindGround(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function PrepareIntro() { } + +simulated function PlayIntroAnims() { } + +simulated function PlaySpawnFx() { } + +simulated function PlayAnnouncerMatchStartCue() { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +function ResetKillCombo() { } + +simulated function CharacterPawnControllerSet() { } + +simulated function OnRespawn() { } + +simulated event bool PostPawnSetup() { } + +simulated function ShowHeadMesh() { } + +simulated function HideHeadMesh() { } + +simulated event ReceivedPropValues() { } + +simulated function bool IsViewPawn() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function Tick(float DeltaSeconds) { } + +function PossessedBy(Controller C, bool bVehicleTransition) { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated exec function ComposeCharacter(optional int Idx=-1, optional int MeshAsmId=-1) { } + +simulated event SetMountedCollision(bool IsActive) { } + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +simulated function bool AllowRagdoll() { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event ForceUpdateAmmoAnim() { } + +simulated function SetWeaponZoom(optional float fZoomAmt=0.0000000) { } + +simulated function UpdateWeaponZoomEffects(optional float fZoomAmt=0.0000000) { } + +simulated function StartWeaponZoomInterpolation(float fZoomAmt, float fInterpTime) { } + +simulated function OnStartTimelapseNewDeviceState() { } + +simulated event PreTimeLapse(bool bPlayOfTheGame) { } + +simulated event OnBecameSpectatorViewTarget() { } + +simulated event OnCeaseSpectatorViewTarget() { } + +event RemoveStickyBombs() { } + +event StartAutomountProtectionTimer() { } + +function AutomountProtectionTimer() { } + +function bool CannotJumpNow() { } + +function bool CheckPhysicsStateForJumping() { } + +function bool CanAirJump() { } + +function bool DoJump(bool bUpdating) { } + +simulated function FlashJumpEffects() { } + +simulated event StopSpecialJumpFx() { } + +simulated event int GetNumAirJumps() { } + +simulated function bool CanAddForcedViewTarget() { } + +reliable client simulated function ClientAddForcedViewTarget(Actor TargetActor, float InterpTime, float Duration, Object ForceRotationInstigator, optional float HeightOffset=0.0000000) { } + +simulated function AddForcedViewTarget(Actor TargetActor, float InterpTime, float Duration, Object ForceRotationInstigator, optional float HeightOffset=0.0000000) { } + +reliable client simulated function ClientRemoveForcedViewTarget(Object ForceRotationInstigator) { } + +simulated function RemoveForcedViewTarget(Object ForceRotationInstigator) { } + +simulated function ClearOldForcedViewTargets() { } + +simulated function bool HasForcedRotation() { } + +simulated event UpdateForcedRotation(float DeltaTime) { } + +function bool IsJoined() { } + +function AbortJoin() { } + +simulated event StartPhysTween(Vector Target, float fTime, TgPawn.ETweenState tweenState, optional bool bCollideWithWorld=false, optional bool bRotateTowardsTarget=false) { } + +function JoinToTarget(TgPawn_Character Target, Vector SourceLocation, Vector TargetLocation, float TweenDuration) { } + +function UnjoinFromTarget() { } + +simulated function ClientJoinToTarget() { } + +simulated function ClientUnjoinFromTarget() { } + +simulated function TweenForJoin() { } + +simulated function TweenForJoinFinished() { } + +simulated function AddJoinForcedView(TgPawn_Character Source, TgPawn_Character Target) { } + +simulated function RemoveJoinForcedView(TgPawn_Character Source, TgPawn_Character Target) { } + +simulated function UpdateJoinSourceLocal() { } + +simulated event bool AdvancedTeleport(const out TeleportParams Params, optional out Vector vTeleportLocation, optional bool bFakeTeleport=false) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Darklord.uc b/Development/Src/TgGame/Classes/TgPawn_Darklord.uc new file mode 100644 index 0000000..20d3e69 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Darklord.uc @@ -0,0 +1,24 @@ +class TgPawn_Darklord extends TgPawn_Character + native(ChampDarklord) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var bool m_bUseWhirlZoom; + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_Darklord::execDeviceAdjustDamage(FFrame&, void* const) + +simulated function AddJoinForcedView(TgPawn_Character Source, TgPawn_Character Target) { } + +simulated function RemoveJoinForcedView(TgPawn_Character Source, TgPawn_Character Target) { } + +function TgPawn.EEmote GetDeviceEmoteType(TgDevice Dev) { } + +simulated function OnDeviceFormStartFire(int nEquipSlot, float FireDuration, int nFireMode, optional int nAmmoRemaining) { } + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Demon.uc b/Development/Src/TgGame/Classes/TgPawn_Demon.uc new file mode 100644 index 0000000..cfa4be7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Demon.uc @@ -0,0 +1,37 @@ +class TgPawn_Demon extends TgPawn_Character + native(ChampDemon) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var () WeaponDOF m_CurrentDOFSettings; +var bool r_bIsUltActive; +var bool r_bIsUltTargeting; +var bool m_bUseTelepunchZoom; +var bool m_bTelepunchTargetLocked; +var TgPawn_Character m_TelepunchTarget; + +replication { + if(bNetDirty) r_bIsUltActive, r_bIsUltTargeting; +} + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +native function DeviceOnStartFire(TgDevice Dev); // Export UTgPawn_Demon::execDeviceOnStartFire(FFrame&, void* const) + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +reliable server event ServerNotifyTelepunchTarget(TgPawn_Character pTarget) { } + +function OnUltStarted() { } + +reliable client simulated function ClientOnUltStarted() { } + +function OnUltFinished() { } + +reliable client simulated function ClientOnUltFinished() { } + +simulated function PauseDeviceTimers(bool bPaused) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Drogoz.uc b/Development/Src/TgGame/Classes/TgPawn_Drogoz.uc new file mode 100644 index 0000000..edb9ef8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Drogoz.uc @@ -0,0 +1,47 @@ +class TgPawn_Drogoz extends TgPawn_Character + native(ChampDrogoz) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var bool m_bIsInBooster; +var bool m_bThrusterIsBlocking; +var bool m_bDragonSlamIsBlocking; +var bool m_bDragonSlamHasHit; +var bool m_bUseDragonSlamRetrieve; +var bool m_bInBoosterLockout; +var bool r_bSalvoActiveFlag; +var bool r_bCombustibleActive; +var (DrogozBooster) bool m_bBoosterUseConstantSpeedReduction; +var float m_fBoosterEndTime; +var TgDevice m_CachedBoosterDevice; +var float m_fBoosterLockoutTime; +var float m_fBoosterKnockbackLockoutTime; +var float m_fBoosterKnockbackLockoutTimestamp; +var int r_nInhandAmmoRemaining; +var (DrogozBooster) float m_fBoosterSpeedReductionRate; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bCombustibleActive, r_bSalvoActiveFlag, r_nInhandAmmoRemaining; +} + +native function DeviceOnStartBuildup(TgDevice Dev); // Export UTgPawn_Drogoz::execDeviceOnStartBuildup(FFrame&, void* const) + +native function bool ShouldBeFirstPersonThisTick(); // Export UTgPawn_Drogoz::execShouldBeFirstPersonThisTick(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event Knock(bool bKnocked, optional float fKnockbackFrictionOverride=-1.0000000, optional Vector vKnockbackVelocityOverride=vect(0.0000000, 0.0000000, 0.0000000)) { } + +simulated function StartKnockbackLockout() { } + +simulated event bool RespectsEmoteGlobalCooldown(TgPawn.EEmote Emote) { } + +simulated event bool CanFlyWithoutHover() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function OnStartTimelapseNewDeviceState() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Evie.uc b/Development/Src/TgGame/Classes/TgPawn_Evie.uc new file mode 100644 index 0000000..783337e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Evie.uc @@ -0,0 +1,16 @@ +class TgPawn_Evie extends TgPawn_Character + native(ChampEvie) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +simulated event KillAllOwnedPets() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +function ClearBlink() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Fairy.uc b/Development/Src/TgGame/Classes/TgPawn_Fairy.uc new file mode 100644 index 0000000..83a577d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Fairy.uc @@ -0,0 +1,26 @@ +class TgPawn_Fairy extends TgPawn_Character + native(ChampFairy) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var float m_fFairyFlySpeedModifier; +var (Fairy) float m_fFlightAccelerationPerSecond; +var (Fairy) float m_fFlightDecelerationPerSecond; +var (Fairy) float m_fFlightMaxRiseSpeed; +var (Fairy) float m_fAscentDecelerationPerSecond; +var (Fairy) float m_fFaeFlightFriction; +var float m_fPreviousAscentVelocity; +var TgDevice_Flutter m_CachedFlutterDevice; +var TgDevice_FaeFlight m_CachedFaeFlightDevice; + +native function bool HasFlutterDevice(); // Export UTgPawn_Fairy::execHasFlutterDevice(FFrame&, void* const) + +native function bool HasFaeFlightDevice(); // Export UTgPawn_Fairy::execHasFaeFlightDevice(FFrame&, void* const) + +native function Vector GetChargeDirection(); // Export UTgPawn_Fairy::execGetChargeDirection(FFrame&, void* const) + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Fernando.uc b/Development/Src/TgGame/Classes/TgPawn_Fernando.uc new file mode 100644 index 0000000..82c0594 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Fernando.uc @@ -0,0 +1,37 @@ +class TgPawn_Fernando extends TgPawn_Character + native(ChampFernando) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const ACTIVE_SHIELD_MASK = 1; + +const TOWERING_BARRIER_MASK = 2; + +const GENERAL_DEFENSIVE_MASK = 4; + +var repnotify int r_ShieldDisplayType; +var bool c_bShowingShield; + +replication { + if(bNetDirty) r_ShieldDisplayType; +} + +native function bool SpecialAOEImmunity(Vector AOECenter, TgDeviceFire instigatingFiremode); // Export UTgPawn_Fernando::execSpecialAOEImmunity(FFrame&, void* const) + +event ShowShield() { } + +event HideShield() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PlayShieldFX() { } + +simulated function PlayLargeShieldFX() { } + +simulated function StopShieldFX() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Flak.uc b/Development/Src/TgGame/Classes/TgPawn_Flak.uc new file mode 100644 index 0000000..48f5236 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Flak.uc @@ -0,0 +1,46 @@ +class TgPawn_Flak extends TgPawn_Character + native(ChampFlak) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var TgDevice_KineticBurst m_CachedKineticBurstDevice; +var TgDevice_SiegeUnit m_CachedSiegeUnitDevice; +var TgDevice_AssertDominance m_CachedUltimateDevice; +var TgDevice_ShoulderBash m_CachedShoulderBashDevice; +var TgSpecialFx m_WepIdleSound; +var float m_PreviousZHeight; +var float m_GravityMultiplier; +var bool m_bUseShoulderBashRetrieve; +var bool m_bUseShoulderBashZoom; + +native function StartZTracking(); // Export UTgPawn_Flak::execStartZTracking(FFrame&, void* const) + +native function MaxOutGravity(); // Export UTgPawn_Flak::execMaxOutGravity(FFrame&, void* const) + +native function float GetGravityZ(); // Export UTgPawn_Flak::execGetGravityZ(FFrame&, void* const) + +native function SpawnFlagDeployable(); // Export UTgPawn_Flak::execSpawnFlagDeployable(FFrame&, void* const) + +native function ResetGravTimers(); // Export UTgPawn_Flak::execResetGravTimers(FFrame&, void* const) + +native function DeployableOnDestroyed(TgDeployable dep); // Export UTgPawn_Flak::execDeployableOnDestroyed(FFrame&, void* const) + +native function bool HasCachedKineticBurstDevice(); // Export UTgPawn_Flak::execHasCachedKineticBurstDevice(FFrame&, void* const) + +function RampUpTimer() { } + +function RampDownTimer() { } + +simulated function OnRespawn() { } + +simulated function OnLiveRespawn() { } + +simulated function ResetInhandFiremode() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Gauntlet.uc b/Development/Src/TgGame/Classes/TgPawn_Gauntlet.uc new file mode 100644 index 0000000..fb200d5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Gauntlet.uc @@ -0,0 +1,27 @@ +class TgPawn_Gauntlet extends TgPawn_Character + native(ChampGauntlet) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var Actor r_InhandTarget; +var Vector r_InhandHitOffset; +var Vector c_InterpInhandHitOffset; +var float c_fInhandHitOffsetInterpSpeed; +var Actor r_RechargeTarget; +var Vector r_RechargeHitOffset; +var Vector c_InterpRechargeHitOffset; +var TgPawn_Character c_ProtectionTarget; + +replication { + if(bNetDirty) r_InhandHitOffset, r_InhandTarget, r_RechargeHitOffset, r_RechargeTarget; +} + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function Tick(float DeltaSeconds) { } + +native function bool Is1PBodyOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn_Gauntlet::execIs1PBodyOverlay(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Grohk.uc b/Development/Src/TgGame/Classes/TgPawn_Grohk.uc new file mode 100644 index 0000000..4c08295 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Grohk.uc @@ -0,0 +1,29 @@ +class TgPawn_Grohk extends TgPawn_Character + native(ChampGrohk) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +const TGPAWN_GROHK_TEMPEST_OVERLY_FX_ID = 6870; + +var Actor r_InhandTarget; +var Vector r_InhandHitOffset; +var bool c_bIsInTempest; +var float c_fTempestOverlayStrength; +var const float c_fTempestRampUpRate; +var const float c_fTempsetRampDownRate; + +replication { + if(bNetDirty) r_InhandHitOffset, r_InhandTarget; +} + +native function MaterialInstanceConstant GetOverlayMaterial(TgPawn.OverlayMICType Type); // Export UTgPawn_Grohk::execGetOverlayMaterial(FFrame&, void* const) + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function OnDeviceFormStartFire(int nEquipSlot, float FireDuration, int nFireMode, optional int nAmmoRemaining) { } + +simulated function OnDeviceFormStopFire(int nEquipSlot) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Grover.uc b/Development/Src/TgGame/Classes/TgPawn_Grover.uc new file mode 100644 index 0000000..a36c99b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Grover.uc @@ -0,0 +1,14 @@ +class TgPawn_Grover extends TgPawn_Character + native(ChampGrover) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var TgDevice_Vine m_CachedVine; + +native function bool HasCachedVine(); // Export UTgPawn_Grover::execHasCachedVine(FFrame&, void* const) + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Illusion.uc b/Development/Src/TgGame/Classes/TgPawn_Illusion.uc old mode 100755 new mode 100644 index e964e58..ab38e17 --- a/Development/Src/TgGame/Classes/TgPawn_Illusion.uc +++ b/Development/Src/TgGame/Classes/TgPawn_Illusion.uc @@ -1,9 +1,144 @@ -class TgPawn_Illusion extends TgPawn_Ying - native(ChampYing) - config(Game) - hidecategories(Navigation) - implements(TgInterface_YingIllusion); - -function TgPawn_Ying GetOwningYing(){} -// Export UTgPawn_Illusion::execPostPawnSetupServer(FFrame&, void* const) -native function PostPawnSetupServer(); \ No newline at end of file +class TgPawn_Illusion extends TgPawn_Ying + native(ChampYing) + config(Game) + hidecategories(Navigation) + implements(TgInterface_YingIllusion) + dependson(TgObject); + +const MAX_ILLUSION_TARGETS = 2; + +const HEAL_BEAM_FX_ID = 7224; + +enum EDecoyAIState { + DAIS_Normal, // 0 + DAIS_Shatter, // 1 + DAIS_Rift, // 2 +}; + +var TgPawn_Illusion.EDecoyAIState m_eAIState; +var repnotify TgObject.INITIALIZEABLE_BOOL r_eLifelike; +var float m_fDamageScale; +var float m_fDamageAccumulator; +var float m_fDamageAccumulatorReductionRatePerSec; +var float m_fFlickerDamageMin; +var float m_fFlickerDamageMax; +var float m_fDamageAccumulatorCap; +var float m_fPrevFrameHealth; +var const float m_fTimedDestroyedFXDuration; +var const float m_fTimedDestroyedFXMeshHiddenTime; +var const float m_fEarlyShatterRecheckTime; +var const bool m_bCanShatterEarly; +var bool m_bUsingReplacementMIC; +var bool m_bSpringBloomFlag; +var bool c_BeamsCreated; +var repnotify float r_fShatterDelay; +var TgDevice m_CachedShatterDevice; +var array m_replacementMICs; +var array m_headReplacementMICs; +var array m_weaponReplacementMICs; +var const MaterialInstanceConstant m_ShatterMaterialLocal; +var const MaterialInstanceConstant m_ShatterMaterialFriendly; +var const MaterialInstanceConstant m_ShatterMaterialEnemy; +var const MaterialInstanceConstant m_HitMaterialLocal; +var const MaterialInstanceConstant m_HitMaterialFriendly; +var const MaterialInstanceConstant m_HitMaterialEnemy; +var const MaterialInstanceConstant m_DestroyMaterialLocal; +var const MaterialInstanceConstant m_DestroyMaterialFriendly; +var const MaterialInstanceConstant m_DestroyMaterialEnemy; +var array< delegate > s_OnDeathDelegates; +var repnotify TgPawn_Character r_Targets[2]; +var array c_Beams; +var repnotify int r_nBeamSpawnIterator; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_Targets, r_fShatterDelay; +} + +delegate DestroyedEvent(Actor destroyedActor); + +native function SetPetOwner(TgPawn petOwner); // Export UTgPawn_Illusion::execSetPetOwner(FFrame&, void* const) + +native function SpawnGuard(); // Export UTgPawn_Illusion::execSpawnGuard(FFrame&, void* const) + +native function DropHealthNugget(optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_Illusion::execDropHealthNugget(FFrame&, void* const) + +native function DropHealthNuggetTeamOnly(int nTaskForce, optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_Illusion::execDropHealthNuggetTeamOnly(FFrame&, void* const) + +native function InitializeInhandWeapon(int DeviceID); // Export UTgPawn_Illusion::execInitializeInhandWeapon(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_Illusion::execDeviceAdjustDamage(FFrame&, void* const) + +native function DeviceOnHit(TgDevice Dev, const out ImpactInfo Impact); // Export UTgPawn_Illusion::execDeviceOnHit(FFrame&, void* const) + +native function PostPawnSetupServer(); // Export UTgPawn_Illusion::execPostPawnSetupServer(FFrame&, void* const) + +native function ReplaceMaterial(MaterialInstanceConstant materialToUse, optional float ParamValue=0.0000000); // Export UTgPawn_Illusion::execReplaceMaterial(FFrame&, void* const) + +native function ClearReplacementMaterial(); // Export UTgPawn_Illusion::execClearReplacementMaterial(FFrame&, void* const) + +native function ReplaceWithShatterMaterial(); // Export UTgPawn_Illusion::execReplaceWithShatterMaterial(FFrame&, void* const) + +native function ReplaceWithHitOverlayMaterial(); // Export UTgPawn_Illusion::execReplaceWithHitOverlayMaterial(FFrame&, void* const) + +native function ReplaceWithDestroyedMaterial(); // Export UTgPawn_Illusion::execReplaceWithDestroyedMaterial(FFrame&, void* const) + +native function CheckEarlyShatter(); // Export UTgPawn_Illusion::execCheckEarlyShatter(FFrame&, void* const) + +native function bool IsStatTrackable(); // Export UTgPawn_Illusion::execIsStatTrackable(FFrame&, void* const) + +native function bool ShouldPawnMeshBeHiddenThisTick(); // Export UTgPawn_Illusion::execShouldPawnMeshBeHiddenThisTick(FFrame&, void* const) + +native function bool ShouldInHandDeviceBeHiddenThisTick(); // Export UTgPawn_Illusion::execShouldInHandDeviceBeHiddenThisTick(FFrame&, void* const) + +native function bool IsNonCombat(); // Export UTgPawn_Illusion::execIsNonCombat(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event UpdateWeaponMesh() { } + +event bool ShouldScoreKill() { } + +simulated function PlayInitialSpawnFX() { } + +simulated event ConsiderCreateBeams() { } + +simulated event UpdateBeamAttachments() { } + +simulated function CreateBeams() { } + +simulated function int GetNumNeededBeams() { } + +simulated function PlayDyingEffects() { } + +function bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +event CacheShatterDevice() { } + +simulated function TimedDestroyedFX() { } + +simulated function TriggerShatter(float fDelay) { } + +function ApplyStartShatterEffects() { } + +event Suicide() { } + +event Shatter() { } + +function ClearDimensionalLink() { } + +function AddOnDestroyDelegate(delegate delDestroy) { } + +native function Actor GetActorFromInterface(); // Export UTgPawn_Illusion::execGetActorFromInterface(FFrame&, void* const) + +native function bool IsNotDestroyed(); // Export UTgPawn_Illusion::execIsNotDestroyed(FFrame&, void* const) + +simulated function PlayDimensionalLinkFX() { } + +simulated function bool AllowRagdoll() { } + +function TgPawn_Ying GetOwningYing() { } + +state Intro {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Juggernaut.uc b/Development/Src/TgGame/Classes/TgPawn_Juggernaut.uc new file mode 100644 index 0000000..c855426 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Juggernaut.uc @@ -0,0 +1,25 @@ +class TgPawn_Juggernaut extends TgPawn_LanePusher + native(Pawns) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var bool m_bNextLaserLeft; +var bool m_bInGenericFirePosture; + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_Juggernaut::execDeviceAdjustDamage(FFrame&, void* const) + +native function bool IsDebuffImmune(); // Export UTgPawn_Juggernaut::execIsDebuffImmune(FFrame&, void* const) + +native function PawnOnPreDamageMitigation(TgPawn attacker, TgEffectGroup eg, out float fDamage, int nPropertyId); // Export UTgPawn_Juggernaut::execPawnOnPreDamageMitigation(FFrame&, void* const) + +simulated event bool PostPawnSetup() { } + +simulated event ChangeFirePosture() { } + +simulated function OnDeviceFormStartFire(int nEquipSlot, float FireDuration, int nFireMode, optional int nAmmoRemaining) { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Kinessa.uc b/Development/Src/TgGame/Classes/TgPawn_Kinessa.uc new file mode 100644 index 0000000..0334d1e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Kinessa.uc @@ -0,0 +1,65 @@ +class TgPawn_Kinessa extends TgPawn_Character + native(ChampKinessa) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +const TGPAWN_KINESSA_OVERLAY_FRIEND_FX_ID = 6861; + +const TGPAWN_KINESSA_OVERLAY_ENEMY_FX_ID = 6862; + +var float m_fPreviousPitchMin; +var float m_fPreviousPitchMax; +var repnotify Vector r_vHyperTargetEndLocation; +var repnotify Vector r_vHyperShotEndLocation; +var bool m_bPendingMovementPenaltyOnLanded; +var bool r_bIsZoomed; +var bool m_bIsInInhandPostFire; +var bool c_bHeadHunterFiring; +var bool r_bTeleportOverlayActive; +var float m_fScopedSpeedModifier; +var float m_fZoomChargeTimestamp; +var float r_fFullChargeDelay; +var float r_fTeleportOverlayMaxStrength; +var float c_fTeleportOverlayStrength; +var float r_fTeleportOverlayUpRate; +var float r_fTeleportOverlayDownRate; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bIsZoomed, r_bTeleportOverlayActive, r_fFullChargeDelay, r_fTeleportOverlayDownRate, r_fTeleportOverlayMaxStrength, r_fTeleportOverlayUpRate, r_vHyperShotEndLocation, r_vHyperTargetEndLocation; +} + +native function MaterialInstanceConstant GetOverlayMaterial(TgPawn.OverlayMICType Type); // Export UTgPawn_Kinessa::execGetOverlayMaterial(FFrame&, void* const) + +native function PlayTeleportFx(int nTeleportState, Vector vLoc); // Export UTgPawn_Kinessa::execPlayTeleportFx(FFrame&, void* const) + +simulated function SetHyperTargetLocation(Vector beamEnd) { } + +simulated function SetHyperShotLocation(Vector beamEnd) { } + +simulated function ClearHyperShotLocations() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PlayHyperTargetEffects() { } + +simulated function PlayHyperShotEffects() { } + +simulated function SetZoomState(bool bIsZoomed, float fSpeedModifier, float fChargeDelay) { } + +simulated event float GetZoomChargePercentage() { } + +simulated function UpdateWeaponZoomEffects(optional float fZoomAmt=0.0000000) { } + +simulated function OnDeviceFormStopFire(int nEquipSlot) { } + +simulated function OnDeviceFormFire(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function SetScopeChargeSound(bool IsActive) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function bool ShouldUseScopeSensitivity() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_LanePusher.uc b/Development/Src/TgGame/Classes/TgPawn_LanePusher.uc new file mode 100644 index 0000000..9c253c0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_LanePusher.uc @@ -0,0 +1,92 @@ +class TgPawn_LanePusher extends TgPawn_LanePusherBase + native(Pawns) + config(Game) + hidecategories(Navigation); + +const TG_PROXIMITY_SPEED_MOD_RADIUS = 20.0f; + +const TG_PROXIMITY_SPEED_MAGNITUDE = 20.0f; + +const TG_PROXIMITY_SPEED_STACK_MAX = 5; + +enum EDestroyedAnimStages { + EngineDestruction_FullHealth_Idle, // 0 + EngineDestruction_FirstDestruction, // 1 + EngineDestruction_SecondDestruction, // 2 +}; + +var private bool m_bInIntroduction; +var bool r_bIsInsideBase; +var bool m_bHarvestTexturesForFadeMIC; +var bool m_bBroadcastDeath; +var TgPawn_LanePusher.EDestroyedAnimStages c_eDestroyedAnimStage; +var transient TgSpecialFx c_BeamFX; +var () float m_fBaseWheelSpeed; +var const int m_nMaxLevel; +var int m_nFriendlyFadeMaterialFXId; +var int m_nEnemyFadeMaterialFXId; +var array m_FadeMICs; +var float m_fDamageScaleWhileTraveling; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bIsInsideBase; +} + +native function SetInitialLevel(); // Export UTgPawn_LanePusher::execSetInitialLevel(FFrame&, void* const) + +native function OnPawnDied(); // Export UTgPawn_LanePusher::execOnPawnDied(FFrame&, void* const) + +native function DropHealthNugget(optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_LanePusher::execDropHealthNugget(FFrame&, void* const) + +native function DropHealthNuggetTeamOnly(int nTaskForce, optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_LanePusher::execDropHealthNuggetTeamOnly(FFrame&, void* const) + +native function PawnOnPreDamageMitigation(TgPawn attacker, TgEffectGroup eg, out float fDamage, int nPropertyId); // Export UTgPawn_LanePusher::execPawnOnPreDamageMitigation(FFrame&, void* const) + +native function ReapplyLevelEffectGroups(optional int nPrevLevel=0, optional int nCurrentLevel=0, optional bool bPreserveParams=false); // Export UTgPawn_LanePusher::execReapplyLevelEffectGroups(FFrame&, void* const) + +native function CalcDistanceFadeValue(float fDeltaTime); // Export UTgPawn_LanePusher::execCalcDistanceFadeValue(FFrame&, void* const) + +native function SetSpline(TgSplineActor NewSpline, optional bool bSnapToStart); // Export UTgPawn_LanePusher::execSetSpline(FFrame&, void* const) + +native function PostPawnSetupServer(); // Export UTgPawn_LanePusher::execPostPawnSetupServer(FFrame&, void* const) + +native function bool IsImmuneToDamage(); // Export UTgPawn_LanePusher::execIsImmuneToDamage(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +native function InitializeFadeInMaterial(); // Export UTgPawn_LanePusher::execInitializeFadeInMaterial(FFrame&, void* const) + +native function UpdateMaterialFade(); // Export UTgPawn_LanePusher::execUpdateMaterialFade(FFrame&, void* const) + +simulated function PlayInitialSpawnFX() { } + +simulated function IntroTimer() { } + +event ModifyHealthProp(int nDamage) { } + +simulated event PostInitAnimTree(SkeletalMeshComponent SkelComp) { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event ReceivedPropValues() { } + +simulated function PlayDeathAnimation() { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +event int GetHPScalingValue() { } + +event int GetPowerScalingValue() { } + +simulated function OnDeviceFormStartFire(int nEquipSlot, float FireDuration, int nFireMode, optional int nAmmoRemaining) { } + +simulated event Vector GetWeaponStartTraceLocation(optional Weapon CurrentWeapon) { } + +simulated event Destroyed() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +function ClearFromGRI() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_LanePusherBase.uc b/Development/Src/TgGame/Classes/TgPawn_LanePusherBase.uc new file mode 100644 index 0000000..d2885fb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_LanePusherBase.uc @@ -0,0 +1,97 @@ +class TgPawn_LanePusherBase extends TgPawn_Biped + abstract + native(Pawns) + config(Game) + hidecategories(Navigation); + +const TGPM_REMEMBER_PLAYER_ATTACKED_TIME = 4; + +struct ServerSplineSync { + var TgSplineActor Spline; + var float SplineDist; + var bool bMoving; + structdefaultproperties {} +}; + +var float s_fSpeedMultiplierToCatchUpToSquad; +var TgPawn_Character s_PlayerAttacker; +var float s_fMaxRelevancyDistanceSquared; +var const TgSplineActor r_StartSpline; +var repnotify const ServerSplineSync r_ServerSync; +var const bool m_bMoving; +var bool c_bServerSync; +var const bool m_bDoNotScaleCollisionBoxWithDatabase; +var const bool m_bApplySplinePitchToActor; +var const bool c_bApplySplinePitchToMesh; +var const bool m_bFullStopWhenNoDesiredSpeed; +var const bool s_bStopBackpeddlingAtCheckpoints; +var bool m_bAllowBackpeddling; +var bool m_bDestroyed; +var bool r_bAsleep; +var private TgSplineActor m_Spline; +var export editinline StaticMeshComponent m_CollisionBox; +var float m_fSplineDist; +var float c_fSplineDistCorrection; +var float c_fClientSideMovementFudgeFactor; +var float c_fClientCorrectionTolerance; +var float c_fClientCorrectionRate; +var float m_fGroundSpeedScaleLastTick; +var float r_fTrackGroundSpeed; +var float m_fAcceleration; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_ServerSync, r_StartSpline, r_bAsleep, r_fTrackGroundSpeed; +} + +native function SetInitialLevel(); // Export UTgPawn_LanePusherBase::execSetInitialLevel(FFrame&, void* const) + +native function PostPawnSetupServer(); // Export UTgPawn_LanePusherBase::execPostPawnSetupServer(FFrame&, void* const) + +native function SetTargetActor(Actor Target); // Export UTgPawn_LanePusherBase::execSetTargetActor(FFrame&, void* const) + +native function SendPing(); // Export UTgPawn_LanePusherBase::execSendPing(FFrame&, void* const) + +native function SetSpline(TgSplineActor NewSpline, optional bool bSnapToStart); // Export UTgPawn_LanePusherBase::execSetSpline(FFrame&, void* const) + +native function UpdateMoving(); // Export UTgPawn_LanePusherBase::execUpdateMoving(FFrame&, void* const) + +native function UpdateServerSync(); // Export UTgPawn_LanePusherBase::execUpdateServerSync(FFrame&, void* const) + +native function ReceiveServerSync(); // Export UTgPawn_LanePusherBase::execReceiveServerSync(FFrame&, void* const) + +native function SnapToServerSync(); // Export UTgPawn_LanePusherBase::execSnapToServerSync(FFrame&, void* const) + +native function bool IsImmuneToDamage(); // Export UTgPawn_LanePusherBase::execIsImmuneToDamage(FFrame&, void* const) + +native function bool IsImmuneToHealing(); // Export UTgPawn_LanePusherBase::execIsImmuneToHealing(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event Despawn() { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +function RememberPlayerAttackerExpired() { } + +simulated event TargetActorUpdated() { } + +simulated function ToggleAggroAlert(bool bOn) { } + +simulated function PlayDeathAnimation() { } + +simulated event ClientUpdateMoving() { } + +simulated event PropertySet(int nPropertyId, float fPreviousValue, float fNewValue) { } + +function SetMovementPhysics() { } + +simulated function Tick(float DeltaTime) { } + +simulated function DestroyIt(optional bool bSkipFx) { } + +function float GetDistanceToEndOfSpline() { } + +state Dying {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_LanePusherRace.uc b/Development/Src/TgGame/Classes/TgPawn_LanePusherRace.uc new file mode 100644 index 0000000..b2caa86 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_LanePusherRace.uc @@ -0,0 +1,29 @@ +class TgPawn_LanePusherRace extends TgPawn_LanePusherBase + native(Pawns) + config(Game) + hidecategories(Navigation); + +var const float s_fTotalSplineLength; +var const float s_fPreviousSplineLength; +var const float r_fProgressPercent; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fProgressPercent; +} + +native function PostPawnSetupServer(); // Export UTgPawn_LanePusherRace::execPostPawnSetupServer(FFrame&, void* const) + +native function SetSpline(TgSplineActor NewSpline, optional bool bSnapToStart); // Export UTgPawn_LanePusherRace::execSetSpline(FFrame&, void* const) + +native function bool IsNonCombat(); // Export UTgPawn_LanePusherRace::execIsNonCombat(FFrame&, void* const) + +native function UpdateTeamScore(); // Export UTgPawn_LanePusherRace::execUpdateTeamScore(FFrame&, void* const) + +function ClearFromGRI() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Lazarus.uc b/Development/Src/TgGame/Classes/TgPawn_Lazarus.uc new file mode 100644 index 0000000..80e0806 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Lazarus.uc @@ -0,0 +1,46 @@ +class TgPawn_Lazarus extends TgPawn_Character + native(ChampLazarus) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var TgDevice_SelfResurrection m_SelfResurrectionDevice; +var TgDevice_AbsorptionField m_AbsorptionFieldDevice; +var TgDevice_ChargeBurst m_ChargeBurstDevice; +var Controller m_Killer; +var repnotify bool r_bShouldRez; +var bool m_bHasAppliedUltimate; +var repnotify float r_fEnergy; +var repnotify float r_fAccumulatedDamage; +var int m_nChargeNumber; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_bShouldRez, r_fAccumulatedDamage, r_fEnergy; +} + +simulated event ReplicatedEvent(name VarName) { } + +native function PawnOnDamaged(out OnDamagedParams Params); // Export UTgPawn_Lazarus::execPawnOnDamaged(FFrame&, void* const) + +native function bool HasCachedResurrectionDevice(); // Export UTgPawn_Lazarus::execHasCachedResurrectionDevice(FFrame&, void* const) + +native function bool HasCachedAbsorptionDevice(); // Export UTgPawn_Lazarus::execHasCachedAbsorptionDevice(FFrame&, void* const) + +native function bool HasCachedChargeBurstDevice(); // Export UTgPawn_Lazarus::execHasCachedChargeBurstDevice(FFrame&, void* const) + +native function bool ShouldBeFirstPersonThisTick(); // Export UTgPawn_Lazarus::execShouldBeFirstPersonThisTick(FFrame&, void* const) + +native function IncrementDamageCharge(float pDamageAmt); // Export UTgPawn_Lazarus::execIncrementDamageCharge(FFrame&, void* const) + +native function UpdateChargeNumber(); // Export UTgPawn_Lazarus::execUpdateChargeNumber(FFrame&, void* const) + +native function OnPawnDied(); // Export UTgPawn_Lazarus::execOnPawnDied(FFrame&, void* const) + +native function OnDismount(); // Export UTgPawn_Lazarus::execOnDismount(FFrame&, void* const) + +event bool ShouldScoreKill() { } + +simulated event FakeDeath(Controller Killer) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Lex.uc b/Development/Src/TgGame/Classes/TgPawn_Lex.uc new file mode 100644 index 0000000..de67fc3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Lex.uc @@ -0,0 +1,66 @@ +class TgPawn_Lex extends TgPawn_Character + native(ChampLex) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const MAX_THE_LAW_TARGETS = 5; + +enum ETheLawTargetState { + ETLTS_WontExecute, // 0 + ETLTS_WillExecute, // 1 + ETLTS_Firing, // 2 +}; + +var TgDevice_Vengeance_Lex m_VengeanceDevice; +var TgDevice_CombatSlide m_CombatSlideDevice; +var TgDevice_InPursuit m_InPursuitDevice; +var TgWeaponMeshActor_LexInhand m_WeaponMeshActorLexInhand; +var init array m_TargetList; +var TgPawn m_Target; +var float m_MaxSlideCameraAngle; +var int m_PrevCameraYaw; +var bool c_bUltFiring; +var bool c_bPursuitFiring; +var bool m_bFireLeftWeapon; +var repnotify TgPawn_Character r_Targets[5]; +var repnotify TgPawn_Lex.ETheLawTargetState r_TargetStates[5]; +var repnotify int r_nInhandAmmoRemaining; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_TargetStates, r_Targets; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_nInhandAmmoRemaining; +} + +native function bool IsFiringAtMarkShotMark(); // Export UTgPawn_Lex::execIsFiringAtMarkShotMark(FFrame&, void* const) + +native function GlobalOnPlayerDied(TgPawn_Character Player); // Export UTgPawn_Lex::execGlobalOnPlayerDied(FFrame&, void* const) + +native function TgDevice_Vengeance_Lex GetCachedVengeanceDevice(); // Export UTgPawn_Lex::execGetCachedVengeanceDevice(FFrame&, void* const) + +native function float GetVengeanceLifesteal(TgPawn Target); // Export UTgPawn_Lex::execGetVengeanceLifesteal(FFrame&, void* const) + +native function Actor GetTargetActor(); // Export UTgPawn_Lex::execGetTargetActor(FFrame&, void* const) + +native function bool GetTurnRotatorOverride(out int nYawOffset); // Export UTgPawn_Lex::execGetTurnRotatorOverride(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated event PostTimeLapse(bool bPlayOfTheGame) { } + +simulated function OnRespawn() { } + +simulated function InterceptInputDeltaRotation(out Rotator rDeltaRotation) { } + +simulated function OnAmmoChange() { } + +simulated function SetDualFireParity(bool bLeftFire) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated event ManageBeams() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Longbow.uc b/Development/Src/TgGame/Classes/TgPawn_Longbow.uc new file mode 100644 index 0000000..d04872f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Longbow.uc @@ -0,0 +1,39 @@ +class TgPawn_Longbow extends TgPawn_Character + native(ChampLongbow) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var TgDevice_LongbowInhand m_CachedInhand; +var repnotify bool r_bImpalerArrowIsActive; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bImpalerArrowIsActive; +} + +native function UpdateStealthScarfMaterial(); // Export UTgPawn_Longbow::execUpdateStealthScarfMaterial(FFrame&, void* const) + +native function bool HasCachedInhandDevice(); // Export UTgPawn_Longbow::execHasCachedInhandDevice(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function ToggleImpalerArrow(bool bEnabled) { } + +simulated event ApplyStealthClient(optional bool bForce=false) { } + +simulated event KillAllOwnedPets() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated function ClearImpalerArrow() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated event bool RespectsEmoteGlobalCooldown(TgPawn.EEmote Emote) { } + +simulated event float GetEmoteInternalCooldown(TgPawn.EEmote Emote) { } + +simulated event bool CanEmoteDuringTimelapse(TgPawn.EEmote Emote) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Makoa.uc b/Development/Src/TgGame/Classes/TgPawn_Makoa.uc new file mode 100644 index 0000000..37ab6ba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Makoa.uc @@ -0,0 +1,38 @@ +class TgPawn_Makoa extends TgPawn_Character + native(ChampMakoa) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var float m_fSmashSpeedModifier; +var float m_fShellSpinZoomOverride; +var bool r_bShellShieldIsActive; +var repnotify bool r_bAncientRageActive; +var bool r_bAbility1CanEmote; +var float m_fShellShieldSpeedModifier; +var float m_fShellShieldZoomOverride; +var TgSpecialFx m_ShellShieldMovementFX; +var TgDevice m_AncientRageInHand; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bAbility1CanEmote, r_bAncientRageActive, r_bShellShieldIsActive; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PlayAncientRageEffects(bool bEnabled) { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function GetCameraZoomOverride(out float fZoom, out float fZoomDuration) { } + +simulated event float GetAbilityEmoteChance(TgPawn.EEmote Emote) { } + +simulated function name GetFootStepOverride() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated function OnDeviceFormHit(int nEquipSlot, Actor Target, float DamageAmount, Vector HitLocation, Vector HitNormal, const out ExtraDamageInfo ExtraInfo) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_MalDamba.uc b/Development/Src/TgGame/Classes/TgPawn_MalDamba.uc new file mode 100644 index 0000000..92c3c74 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_MalDamba.uc @@ -0,0 +1,12 @@ +class TgPawn_MalDamba extends TgPawn_Character + native(ChampMalDamba) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var TgDeviceFire_SnakeToss m_CachedSnakeTossDeviceFire; + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Oracle.uc b/Development/Src/TgGame/Classes/TgPawn_Oracle.uc new file mode 100644 index 0000000..d4d4b48 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Oracle.uc @@ -0,0 +1,47 @@ +class TgPawn_Oracle extends TgPawn_Character + native(ChampOracle) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const ORACLE_MAX_STACKS_PER_TARGET = 4; + +const ORACLE_MAX_STACK_TARGETS = 10; + +const ORACLE_STACK_FX_GROUP_ID = 57644; + +const ORACLE_STACK_1P_FX_ID = 7739; + +const ORACLE_STACK_3P_FX_ID = 7740; + +var Actor r_RestoreSoulTarget; +var Vector r_RestoreSoulHitOffset; +var bool r_bRestoreSoulActive; +var bool r_bHasAgonyTalent; +var int r_SoulStackTargetPawnId[10]; +var repnotify int r_SoulStackTargetCount[10]; +var int c_CachedSoulStackTargetCount[10]; +var Vector c_InterpRestoreSoulHitOffset; +var float c_fRestoreSoulHitOffsetInterpSpeed; +var () float m_fFrictionMultiplier; +var int m_nStackAddedVictimFxId; +var int m_nStackAddedSourceFxId; +var int m_nMaxStacksVictimFxId; +var int m_nMaxStacksSourceFxId; + +replication { + if(bNetDirty) r_RestoreSoulHitOffset, r_RestoreSoulTarget, r_SoulStackTargetCount, r_SoulStackTargetPawnId, r_bHasAgonyTalent, r_bRestoreSoulActive; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated function Tick(float DeltaSeconds) { } + +native function UpdateSoulStacks(); // Export UTgPawn_Oracle::execUpdateSoulStacks(FFrame&, void* const) + +native function OnSoulStacksReplicated(); // Export UTgPawn_Oracle::execOnSoulStacksReplicated(FFrame&, void* const) + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Owl.uc b/Development/Src/TgGame/Classes/TgPawn_Owl.uc new file mode 100644 index 0000000..085ad0d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Owl.uc @@ -0,0 +1,55 @@ +class TgPawn_Owl extends TgPawn_Character + native(ChampOwl) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var bool m_bUseSecondWeapon; +var bool m_bSwappingWeapons; +var bool c_bUseSecondDeathAnim; +var const int m_nAltInhandSlot; +var const int m_nAltAltfireSlot; +var float m_fOwlStealthJuice; +var float m_fMaxOwlStealthJuice; +var TgDevice_OwlStealth m_CachedOwlStealth; + +native function TgDevice GetCurrentInhandDevice(); // Export UTgPawn_Owl::execGetCurrentInhandDevice(FFrame&, void* const) + +native function int GetUISkillEqpSlotOverride(int nEquipSlot, optional bool bAltSlot=false); // Export UTgPawn_Owl::execGetUISkillEqpSlotOverride(FFrame&, void* const) + +native function bool IsInScope(); // Export UTgPawn_Owl::execIsInScope(FFrame&, void* const) + +native function OnPawnDied(); // Export UTgPawn_Owl::execOnPawnDied(FFrame&, void* const) + +simulated function PlayDying(class DamageType, vector HitLoc) { } + +simulated event name GetDeathAnimName() { } + +simulated function SwapToSecondWeapon(bool bSecondWeaponActive) { } + +simulated function FinishedWeaponSwap() { } + +simulated function ShowReticle(bool bShow) { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated event InterruptInhandReload() { } + +simulated event bool StartAction(TgDevice Dev, optional out TgObject.EDeviceFailType failType, optional bool bUpdateTimeStamp=true) { } + +event InterruptStealth(optional TgDevice OriginatingDevice) { } + +event ApplyStealthServer(TgPawn.STEALTH_TYPE eStealthed, optional float fRate=9999.0000000, optional bool bForce=false) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +event ModifyStealthJuice(int nAmtModified, optional bool bSendToClient=false) { } + +reliable client simulated function ClientModifyStealthJuice(int nAmtModified) { } + +simulated function bool ShouldUseScopeSensitivity() { } + +native function UpdateOwlStealthFX(float fPrevStealthJuice, float fCurrentStealthJuice); // Export UTgPawn_Owl::execUpdateOwlStealthFX(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Pet.uc b/Development/Src/TgGame/Classes/TgPawn_Pet.uc new file mode 100644 index 0000000..507bfa4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Pet.uc @@ -0,0 +1,71 @@ +class TgPawn_Pet extends TgPawn + native(Pawns) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var float m_fOwnerPhysPowerItemPercent; +var float m_fOwnerMagicalPowerItemPercent; +var float m_fOwnerUltilityPowerItemPercent; +var TgObject.EPetPhase s_PetPhase; +var TgObject.EPetPosition s_PetPosition; +var Rotator s_LastPositionAdjustmentRotation; +var Vector s_InterpolatedPetPosition; +var Vector s_InterpolatedPetOwnerPosition; +var float s_fPetPositionDistanceMultiplier; +var float s_fOwnerVelocityTime; +var float s_fSmoothedMaxSpeed; +var transient TgSpecialFx c_BeamFX; +var repnotify Rotator r_InitialOrientation; +var export editinline ParticleSystemComponent c_AimVisibilityMesh; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_InitialOrientation; +} + +native function float GetPhysicalPowerItem(); // Export UTgPawn_Pet::execGetPhysicalPowerItem(FFrame&, void* const) + +native function float GetMagicalPowerItem(); // Export UTgPawn_Pet::execGetMagicalPowerItem(FFrame&, void* const) + +native function float GetUtilityPowerItem(); // Export UTgPawn_Pet::execGetUtilityPowerItem(FFrame&, void* const) + +native function bool IsDamageOverTimeImmune(); // Export UTgPawn_Pet::execIsDamageOverTimeImmune(FFrame&, void* const) + +native function GetGiantCollisionCylinderSize(out float Radius, out float Height); // Export UTgPawn_Pet::execGetGiantCollisionCylinderSize(FFrame&, void* const) + +native function GetSmallCollisionCylinderSize(out float Radius, out float Height); // Export UTgPawn_Pet::execGetSmallCollisionCylinderSize(FFrame&, void* const) + +native function CorrectLocationWhileChangingSize(float HeightDelta); // Export UTgPawn_Pet::execCorrectLocationWhileChangingSize(FFrame&, void* const) + +native function float GetDefaultMeshScale(); // Export UTgPawn_Pet::execGetDefaultMeshScale(FFrame&, void* const) + +native function DirtyAttachmentTransforms(); // Export UTgPawn_Pet::execDirtyAttachmentTransforms(FFrame&, void* const) + +native function bool CanSeeActor(Actor Other); // Export UTgPawn_Pet::execCanSeeActor(FFrame&, void* const) + +native function DeviceOnStopFire(TgDevice Dev, optional bool WasInterrupted); // Export UTgPawn_Pet::execDeviceOnStopFire(FFrame&, void* const) + +native function DeviceOnKilled(TgDevice Dev, const out ImpactInfo Impact, float fDamage); // Export UTgPawn_Pet::execDeviceOnKilled(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_Pet::execDeviceAdjustDamage(FFrame&, void* const) + +native function DeviceOnDamaged(out OnDamagedParams Params); // Export UTgPawn_Pet::execDeviceOnDamaged(FFrame&, void* const) + +native function DeviceOnHit(TgDevice Dev, const out ImpactInfo Impact); // Export UTgPawn_Pet::execDeviceOnHit(FFrame&, void* const) + +function PossessedBy(Controller C, bool bVehicleTransition) { } + +simulated function PostBeginPlay() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function SetAimVisibilityMesh() { } + +function bool ShouldScoreKill() { } + +simulated function PlayDyingEffects() { } + +simulated function PlayDeathAnimation() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Pip.uc b/Development/Src/TgGame/Classes/TgPawn_Pip.uc old mode 100755 new mode 100644 index 334d337..3e3754f --- a/Development/Src/TgGame/Classes/TgPawn_Pip.uc +++ b/Development/Src/TgGame/Classes/TgPawn_Pip.uc @@ -1 +1,39 @@ -class TgPawn_Pip extends TgPawn_Character; \ No newline at end of file +class TgPawn_Pip extends TgPawn_Character + native(ChampPip) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var bool r_bWeightless; +var bool m_bWeightlessDurationEnded; +var bool r_bAcrobaticsActive; +var bool r_bHasMegaPotion; +var float m_fWeightlessMaxSpeedModifier; +var float m_fWeightlessJumpZModifier; +var float r_fRadiusForHealingPotionFX; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && !bNetOwner || bDemoRecording) r_bWeightless; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bAcrobaticsActive, r_bHasMegaPotion, r_fRadiusForHealingPotionFX; +} + +simulated event PlayJumpSound() { } + +function StartWeightless(float fMaxSpeedMultiplier, float fJumpZMultiplier) { } + +singular function EndWeightless() { } + +simulated function float GetJumpSpeedMultiplier() { } + +function bool DoJump(bool bUpdating) { } + +event Landed(vector HitNormal, actor FloorActor) { } + +simulated function SetPipGlowEnabled(bool bEnabled) { } + +simulated function TickScale(float DeltaSeconds) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Princess.uc b/Development/Src/TgGame/Classes/TgPawn_Princess.uc new file mode 100644 index 0000000..afe8ebe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Princess.uc @@ -0,0 +1,23 @@ +class TgPawn_Princess extends TgPawn_Character + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var TgDevice_Enlightenment m_CachedEnlightenment; +var TgDevice_EnlightenmentGun m_CachedEnlightenmentGun; +var TgCombatActor r_GraceTargets[15]; + +simulated event ReplicatedEvent(name VarName) { } + +simulated event ManageGraceTracers() { } + +function bool HasCachedEnlightenment() { } + +function bool HasCachedEnlightenmentGun() { } + +function ToggleEnlightenmentGun(bool bEnabled) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Ruckus.uc b/Development/Src/TgGame/Classes/TgPawn_Ruckus.uc new file mode 100644 index 0000000..353c1ac --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Ruckus.uc @@ -0,0 +1,74 @@ +class TgPawn_Ruckus extends TgPawn_Character + native(ChampRuckus) + config(Game) + hidecategories(Navigation) + dependson(TgObject, TgPawn); + +var float m_fDamageAccumulator; +var repnotify bool r_bHexaFireFiring; +var const bool bEnableHoverWallClimb; +var bool bHoverWallClimb; +var bool m_bForceHover; +var bool m_bInstancedGemArmMaterials; +var bool m_bInstancedGemBodyMaterials; +var bool m_bRegisteredAudioCallbacks; +var bool m_bHasBoltGemFX; +var float r_fBarrelSpinRate; +var float r_fBarrelSpinFactor; +var TgDevice_RuckusInhand m_cachedRuckusInhand; +var TgDevice_HexaFireGuns m_CachedHexaFireGuns; +var TgDevice_Emitter m_CachedEmitter; +var TgDevice_RepulsorField m_CachedRepulsorField; +var float m_fDesiredHeight; +var float m_fKx; +var float m_fKv; +var float m_fHoverAccelMultiplier; +var array m_ReplacementArmMICs; +var array m_ReplacementBodyMICs; +var dword m_dwGemFXBusID; +var float m_fVGSMatBlue; +var TgSpecialFx m_IdleFX; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHexaFireFiring; + if(bNetDirty) r_fBarrelSpinFactor, r_fBarrelSpinRate; +} + +native function PawnOnDamaged(out OnDamagedParams Params); // Export UTgPawn_Ruckus::execPawnOnDamaged(FFrame&, void* const) + +native function bool Is1PBodyOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn_Ruckus::execIs1PBodyOverlay(FFrame&, void* const) + +native function bool Is1PWeaponOverlay(TgPawn.OverlayMICType Type); // Export UTgPawn_Ruckus::execIs1PWeaponOverlay(FFrame&, void* const) + +native function UpdateSkinBlueChannel(); // Export UTgPawn_Ruckus::execUpdateSkinBlueChannel(FFrame&, void* const) + +native function bool IsNearAnyObjective(); // Export UTgPawn_Ruckus::execIsNearAnyObjective(FFrame&, void* const) + +native function bool InstanceBodyMaterials(); // Export UTgPawn_Ruckus::execInstanceBodyMaterials(FFrame&, void* const) + +native function bool InstanceArmMaterials(); // Export UTgPawn_Ruckus::execInstanceArmMaterials(FFrame&, void* const) + +simulated function bool HasCachedRuckusInhand() { } + +simulated function bool HasCachedHexaFireGuns() { } + +simulated function bool HasCachedEmitter() { } + +simulated function bool HasCachedRepulsorField() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event bool StartAction(TgDevice Dev, optional out TgObject.EDeviceFailType failType, optional bool bUpdateTimeStamp=true) { } + +simulated function PlayHexaFireEffects(bool bEnabled) { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function bool ShouldStopWeaponMeshFireEffectsOnDeviceFormStopFire(int nEquipSlot) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +simulated event BecomeViewTarget(PlayerController PC) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_CaptureAndPayload.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_CaptureAndPayload.uc new file mode 100644 index 0000000..3dfe68a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_CaptureAndPayload.uc @@ -0,0 +1,20 @@ +class TgPawn_SiegeEngine_CaptureAndPayload extends TgPawn_SiegeEngine_Payload + native(Pawns) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var private const float r_fMinimumPayloadTravelTime; +var private const float r_fTravelSpeedScaleBeforeBase; +var private const TgObject.ELanePusherActionPoint r_eSpeedScaledTravelPoint; +var private const bool r_bIsPassedSpeedScaledTravelPoint; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_fTravelSpeedScaleBeforeBase; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_bIsPassedSpeedScaledTravelPoint, r_eSpeedScaledTravelPoint, r_fMinimumPayloadTravelTime; +} + +native function SetSpline(TgSplineActor NewSpline, optional bool bSnapToStart); // Export UTgPawn_SiegeEngine_CaptureAndPayload::execSetSpline(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_ImmuneWhileTraveling.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_ImmuneWhileTraveling.uc new file mode 100644 index 0000000..d295972 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_ImmuneWhileTraveling.uc @@ -0,0 +1,6 @@ +class TgPawn_SiegeEngine_ImmuneWhileTraveling extends TgPawn_Juggernaut + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Payload.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Payload.uc new file mode 100644 index 0000000..ef592ef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Payload.uc @@ -0,0 +1,120 @@ +class TgPawn_SiegeEngine_Payload extends TgPawn_Juggernaut + native(Pawns) + config(Game) + hidecategories(Navigation); + +enum EAutoMovePayload { + AUTOMOVE_None, // 0 + AUTOMOVE_Forward, // 1 + AUTOMOVE_Backward, // 2 +}; + +enum EPayloadControlState { + PAYLOADCONTROL_None, // 0 + PAYLOADCONTROL_Ally, // 1 + PAYLOADCONTROL_Enemy, // 2 + PAYLOADCONTROL_Contested, // 3 +}; + +var float s_fTotalSplineLength; +var float s_fPreviousSplineLength; +var bool r_bEnable; +var const bool m_bRequireLineOfSightForNearby; +var private repnotify bool r_bMovingBackwards; +var private bool r_bCanAutoPushForward; +var const float m_fBaseSpeedScale; +var const float m_fNearbyProximityDistance; +var TgCollisionProxy m_NearbyCollisionProxy; +var array m_TouchingPlayers; +var array m_VisiblePlayers; +var const float m_fSpeedScaleIncreasePerFriendly; +var const float m_fLineOfSightUpdatePeriod; +var float m_fNextLineOfSightUpdateTime; +var const float s_fTimeUntilMoveBackwards; +var const float m_fMoveBackSpeedScale; +var private repnotify TgPawn_SiegeEngine_Payload.EAutoMovePayload r_eMoveWithoutAllies; +var private TgPawn_SiegeEngine_Payload.EPayloadControlState m_eControlState; +var repnotify byte r_nFriends; +var repnotify byte r_nEnemies; +var private const float m_fAutoPushForwardDelay; +var private const float r_fAutoPushForwardSpeedScale; +var private const float m_fStopAutoPushDelay; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bCanAutoPushForward, r_bEnable, r_bMovingBackwards, r_eMoveWithoutAllies; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_fAutoPushForwardSpeedScale; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bDemoRecording || m_bRequireLineOfSightForNearby) r_nEnemies, r_nFriends; +} + +native function PostPawnSetupServer(); // Export UTgPawn_SiegeEngine_Payload::execPostPawnSetupServer(FFrame&, void* const) + +native function CreateCollisionProxy(); // Export UTgPawn_SiegeEngine_Payload::execCreateCollisionProxy(FFrame&, void* const) + +native function SetSpline(TgSplineActor NewSpline, optional bool bSnapToStart); // Export UTgPawn_SiegeEngine_Payload::execSetSpline(FFrame&, void* const) + +native function UpdatePayloadProgress(); // Export UTgPawn_SiegeEngine_Payload::execUpdatePayloadProgress(FFrame&, void* const) + +native function bool IsNonCombat(); // Export UTgPawn_SiegeEngine_Payload::execIsNonCombat(FFrame&, void* const) + +native function bool NativeIsContested(); // Export UTgPawn_SiegeEngine_Payload::execNativeIsContested(FFrame&, void* const) + +native function bool NativeIsMovingBackwards(); // Export UTgPawn_SiegeEngine_Payload::execNativeIsMovingBackwards(FFrame&, void* const) + +native function bool VisibilityCheck(Actor Target); // Export UTgPawn_SiegeEngine_Payload::execVisibilityCheck(FFrame&, void* const) + +native function UpdateFriendEnemyCounts(); // Export UTgPawn_SiegeEngine_Payload::execUpdateFriendEnemyCounts(FFrame&, void* const) + +native function bool IsImmuneToDamage(); // Export UTgPawn_SiegeEngine_Payload::execIsImmuneToDamage(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event bool PostPawnSetup() { } + +simulated event OnGroupChange() { } + +function SetEnable(bool bEnable) { } + +simulated function OnEnableChanged() { } + +singular simulated function FullUpdate() { } + +simulated function bool HasFriendlyPlayersNearby() { } + +simulated function bool HasEnemyPlayersNearby() { } + +simulated function bool IsContested() { } + +simulated function ProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated function ProxyUnTouch(Actor Other) { } + +simulated function AddNearbyPlayer(Actor Other) { } + +simulated function RemoveNearbyPlayer(Actor Other) { } + +simulated function UpdateAlliesNearbyBehavior(optional bool bSkipCountUpdate=false) { } + +simulated function SetPayloadControlState(TgPawn_SiegeEngine_Payload.EPayloadControlState NextControlState) { } + +function StartAutoMoveForward(optional bool bSkipUpdate) { } + +function StopAutoMoveForward(optional bool bSkipUpdate) { } + +function SetMoveWithoutAllies(TgPawn_SiegeEngine_Payload.EAutoMovePayload eMove, optional bool bSkipFullUpdate) { } + +function UpdateBackwardsTimers() { } + +simulated function StartMovingBackwards() { } + +simulated function StopMovingBackwards() { } + +event ToggleCanAutoPushFoward(bool bEnable) { } + +function UpdateAutoPushState() { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Payload_Crusade.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Payload_Crusade.uc new file mode 100644 index 0000000..7968016 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Payload_Crusade.uc @@ -0,0 +1,7 @@ +class TgPawn_SiegeEngine_Payload_Crusade extends TgPawn_SiegeEngine_Payload + native(Pawns) + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Wedge.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Wedge.uc new file mode 100644 index 0000000..80a3d04 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeEngine_Wedge.uc @@ -0,0 +1,9 @@ +class TgPawn_SiegeEngine_Wedge extends TgPawn_SiegeEngine_CaptureAndPayload + native(Pawns) + config(Game) + hidecategories(Navigation); + +var int m_nCollisionMeshId; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeWall.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeWall.uc new file mode 100644 index 0000000..935062f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeWall.uc @@ -0,0 +1,59 @@ +class TgPawn_SiegeWall extends TgPawn_Tower + native(Pawns) + config(Game) + hidecategories(Navigation); + +var () float m_fImpactEffectXRange; +var () float m_fImpactEffectYRange; +var Vector r_vNextImpactEffectLocation; +var () float m_fImpactRecoveryTime; +var float m_fRemainingImpactRecoveryTime; +var () float m_fMaxImpactSize; +var MaterialInstanceConstant m_ImpactMIC; +var bool c_bIsVulnerable; +var bool m_bHasRegisteredObstacle; +var bool m_bSpawnedThisFrame; +var bool m_bQueriedBorderEdges; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_vNextImpactEffectLocation; +} + +native function bool IsDebuffImmune(); // Export UTgPawn_SiegeWall::execIsDebuffImmune(FFrame&, void* const) + +native function GenerateNewImpactEffectLocation(); // Export UTgPawn_SiegeWall::execGenerateNewImpactEffectLocation(FFrame&, void* const) + +native function PlaySpecialEffectEvent(int PlaySpecialEffectIndex, Vector vLoc, Vector vHitNormal, optional Actor inActor); // Export UTgPawn_SiegeWall::execPlaySpecialEffectEvent(FFrame&, void* const) + +native function SendAttackAlert(); // Export UTgPawn_SiegeWall::execSendAttackAlert(FFrame&, void* const) + +native function SendDeathAlert(); // Export UTgPawn_SiegeWall::execSendDeathAlert(FFrame&, void* const) + +native function PostPawnSetupServer(); // Export UTgPawn_SiegeWall::execPostPawnSetupServer(FFrame&, void* const) + +native function RegisterObstacle(); // Export UTgPawn_SiegeWall::execRegisterObstacle(FFrame&, void* const) + +native function UnRegisterObstacle(); // Export UTgPawn_SiegeWall::execUnRegisterObstacle(FFrame&, void* const) + +native function bool ApplyPawnSetup(); // Export UTgPawn_SiegeWall::execApplyPawnSetup(FFrame&, void* const) + +native function bool IsVulnerable(); // Export UTgPawn_SiegeWall::execIsVulnerable(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +event RegisterWithGRI() { } + +function UnRegisterWithGRI() { } + +simulated function name GetWallImpactKismetName() { } + +simulated event PlayWallImpact() { } + +event int GetHPScalingValue() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Base.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Base.uc new file mode 100644 index 0000000..cce5b36 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Base.uc @@ -0,0 +1,26 @@ +class TgPawn_SiegeWall_Base extends TgPawn_SiegeWall + native(Pawns) + config(Game) + hidecategories(Navigation); + +var bool m_bHasAlertedLowHealth; +var float m_fLowHealthTrigger; + +native function SendAttackAlert(); // Export UTgPawn_SiegeWall_Base::execSendAttackAlert(FFrame&, void* const) + +native function SendLowHealthAlert(); // Export UTgPawn_SiegeWall_Base::execSendLowHealthAlert(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function name GetWallImpactKismetName() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +event int GetHPScalingValue() { } + +event RegisterWithGRI() { } + +function UnRegisterWithGRI() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Inner.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Inner.uc new file mode 100644 index 0000000..1036da4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Inner.uc @@ -0,0 +1,19 @@ +class TgPawn_SiegeWall_Inner extends TgPawn_SiegeWall + native(Pawns) + config(Game) + hidecategories(Navigation); + +native function SendAttackAlert(); // Export UTgPawn_SiegeWall_Inner::execSendAttackAlert(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function name GetWallImpactKismetName() { } + +event int GetHPScalingValue() { } + +event RegisterWithGRI() { } + +function UnRegisterWithGRI() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Outer.uc b/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Outer.uc new file mode 100644 index 0000000..4d50653 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_SiegeWall_Outer.uc @@ -0,0 +1,19 @@ +class TgPawn_SiegeWall_Outer extends TgPawn_SiegeWall + native(Pawns) + config(Game) + hidecategories(Navigation); + +native function SendAttackAlert(); // Export UTgPawn_SiegeWall_Outer::execSendAttackAlert(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function name GetWallImpactKismetName() { } + +event int GetHPScalingValue() { } + +event RegisterWithGRI() { } + +function UnRegisterWithGRI() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Skye.uc b/Development/Src/TgGame/Classes/TgPawn_Skye.uc new file mode 100644 index 0000000..cc13d81 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Skye.uc @@ -0,0 +1,16 @@ +class TgPawn_Skye extends TgPawn_Character + native(ChampSkye) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +native function UpdateStealthBoltMaterial(); // Export UTgPawn_Skye::execUpdateStealthBoltMaterial(FFrame&, void* const) + +native function float GetDamageToLeaveStealth(); // Export UTgPawn_Skye::execGetDamageToLeaveStealth(FFrame&, void* const) + +simulated event ApplyStealthClient(optional bool bForce=false) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Stoker.uc b/Development/Src/TgGame/Classes/TgPawn_Stoker.uc new file mode 100644 index 0000000..e16c6d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Stoker.uc @@ -0,0 +1,31 @@ +class TgPawn_Stoker extends TgPawn_Viktor + native(ChampViktor) + config(Game) + hidecategories(Navigation); + +var Vector m_vCurrentWallRunNormal; +var bool m_bIsWallRunning; +var bool r_bWantsWallRun; +var bool m_bHasDoubleJumped; +var (Stoker) float m_fWallMagnetMovePerSec; +var (Stoker) float m_fWallRunStickinessDuration; +var float m_fWallRunStickinessTimer; +var (Stoker) float m_fWallRunLockoutJumpDuration; +var float m_fWallRunLockoutJumpTimer; +var (Stoker) float m_fWallJumpZSpeed; +var (Stoker) float m_fDoubleJumpZSpeed; +var (Stoker) float m_fNewWallAllowableRunAngle; +var float m_fWallRunTime; + +function bool DoJump(bool bUpdating) { } + +function bool CannotJumpNow() { } + +function UpdateWallRun(bool bWantsWallRun) { } + +simulated function Tick(float DeltaSeconds) { } + +native function float GetGravityZ(); // Export UTgPawn_Stoker::execGetGravityZ(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Structure.uc b/Development/Src/TgGame/Classes/TgPawn_Structure.uc new file mode 100644 index 0000000..902b779 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Structure.uc @@ -0,0 +1,28 @@ +class TgPawn_Structure extends TgPawn + native(Pawns) + config(Game) + hidecategories(Navigation); + +var float s_fLastDamageTime; +var float s_fDamageNotificationDelay; + +native function bool CanMove(); // Export UTgPawn_Structure::execCanMove(FFrame&, void* const) + +function SendAttackAlert() { } + +function SendDeathAlert() { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated event PlayDeathAnimation() { } + +simulated event PostDemoRewind() { } + +function SetMovementPhysics() { } + +state Intro {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Tower.uc b/Development/Src/TgGame/Classes/TgPawn_Tower.uc new file mode 100644 index 0000000..bc9f4e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Tower.uc @@ -0,0 +1,67 @@ +class TgPawn_Tower extends TgPawn_TowerBase + native(Pawns) + config(Game) + hidecategories(Navigation); + +var float m_TimeSinceDeath; +var array m_DestroyedMICs; +var float m_fFadeOutStartTime; +var float m_fFadeOutEndTime; +var Vector r_vInitialRotation; +var bool m_bUseDestruction; +var bool r_bSide0Destroyed; +var bool r_bSide1Destroyed; +var bool r_bSide2Destroyed; +var bool r_bSide3Destroyed; +var repnotify byte r_PlaySide0Destruction; +var repnotify byte r_PlaySide1Destruction; +var repnotify byte r_PlaySide2Destruction; +var repnotify byte r_PlaySide3Destruction; +var int m_nSide0MeshId; +var int m_nSide1MeshId; +var int m_nSide2MeshId; +var int m_nSide3MeshId; +var int m_nSide0Health; +var int m_nSide1Health; +var int m_nSide2Health; +var int m_nSide3Health; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bSide0Destroyed, r_bSide1Destroyed, r_bSide2Destroyed, r_bSide3Destroyed, r_vInitialRotation; + if((int(Role) == int(ENetRole.ROLE_Authority)) && !bNetInitial) r_PlaySide0Destruction, r_PlaySide1Destruction, r_PlaySide2Destruction, r_PlaySide3Destruction; +} + +native function SendAttackAlert(); // Export UTgPawn_Tower::execSendAttackAlert(FFrame&, void* const) + +native function SendDeathAlert(); // Export UTgPawn_Tower::execSendDeathAlert(FFrame&, void* const) + +native function SendTargetedAlert(TgPawn Target); // Export UTgPawn_Tower::execSendTargetedAlert(FFrame&, void* const) + +native function SwapToBrokenMesh(); // Export UTgPawn_Tower::execSwapToBrokenMesh(FFrame&, void* const) + +native function BroadcastDiedToGame(); // Export UTgPawn_Tower::execBroadcastDiedToGame(FFrame&, void* const) + +native function int GetMeshOverrideForScript(int MeshId); // Export UTgPawn_Tower::execGetMeshOverrideForScript(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated event bool PostPawnSetup() { } + +simulated event ReplicatedEvent(name VarName) { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +simulated function PlaySideDestructionAnim(int SideIndex) { } + +simulated function CheckSideDestructionSkelControls(optional int ForceSideIndexHidden=-1) { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +simulated function OnSwapToDestroyedMesh() { } + +simulated event PostDemoRewind() { } + +state Dying {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_TowerBase.uc b/Development/Src/TgGame/Classes/TgPawn_TowerBase.uc new file mode 100644 index 0000000..f37caa8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_TowerBase.uc @@ -0,0 +1,48 @@ +class TgPawn_TowerBase extends TgPawn_Structure + native(Pawns) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +struct NavMeshBorderEdges { + var Vector P1; + var Vector P2; + structdefaultproperties {} +}; + +var init array BorderEdges; +var transient TgSpecialFx c_BeamFX; +var export editinline TgMarkComponent s_DamageScaler; +var int m_nNumGuardianLevels; +var bool r_bLocked; +var protected transient bool m_bShouldBeFaded; +var float m_fTransparentFadeSpeed; +var float m_fMaxFadeTransparency; +var float m_fFadeDistance2D; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bLocked; +} + +native function SetTargetActor(Actor Target); // Export UTgPawn_TowerBase::execSetTargetActor(FFrame&, void* const) + +native function SendTargetedAlert(TgPawn Target); // Export UTgPawn_TowerBase::execSendTargetedAlert(FFrame&, void* const) + +native function DeviceOnDamaged(out OnDamagedParams Params); // Export UTgPawn_TowerBase::execDeviceOnDamaged(FFrame&, void* const) + +native function DeviceAdjustDamage(out AdjustDamageParams Params, out float fDamage); // Export UTgPawn_TowerBase::execDeviceAdjustDamage(FFrame&, void* const) + +native function PawnOnDamageMitigation(TgPawn attacker, TgEffectGroup eg, out float fDamage, int nPropertyId); // Export UTgPawn_TowerBase::execPawnOnDamageMitigation(FFrame&, void* const) + +native function CalcDistanceFadeValue(float fDeltaTime); // Export UTgPawn_TowerBase::execCalcDistanceFadeValue(FFrame&, void* const) + +native function SetTransparencyFaded(bool bShouldBeFaded); // Export UTgPawn_TowerBase::execSetTransparencyFaded(FFrame&, void* const) + +native function QueryBorderEdges(Vector BoundsExtent, optional bool bUseObb=false); // Export UTgPawn_TowerBase::execQueryBorderEdges(FFrame&, void* const) + +native function Vector GetPositionOnBorderEdge(const Vector FromPosition); // Export UTgPawn_TowerBase::execGetPositionOnBorderEdge(FFrame&, void* const) + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Tower_FA.uc b/Development/Src/TgGame/Classes/TgPawn_Tower_FA.uc new file mode 100644 index 0000000..e173fd7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Tower_FA.uc @@ -0,0 +1,36 @@ +class TgPawn_Tower_FA extends TgPawn_Tower + native(Pawns) + config(Game) + hidecategories(Navigation); + +enum ETowerType { + TowerType_Default, // 0 + TowerType_Inner, // 1 + TowerType_Outer, // 2 + TowerType_Upper, // 3 +}; + +var TgPawn_Tower_FA.ETowerType m_TowerType; +var repnotify Rotator r_InitialOrientation; +var export editinline ParticleSystemComponent c_AimVisibilityMesh; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_InitialOrientation; +} + +native function bool CanSeeActor(Actor Other); // Export UTgPawn_Tower_FA::execCanSeeActor(FFrame&, void* const) + +simulated function SetAimVisibilityMesh() { } + +simulated function PlayDyingEffects() { } + +simulated function PostBeginPlay() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event Vector GetWeaponStartTraceLocation(optional Weapon CurrentWeapon) { } + +simulated function OnDeviceFormFire(int nEquipSlot, float fRefireTime, int nFireMode) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Tower_Inner.uc b/Development/Src/TgGame/Classes/TgPawn_Tower_Inner.uc new file mode 100644 index 0000000..694abe5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Tower_Inner.uc @@ -0,0 +1,6 @@ +class TgPawn_Tower_Inner extends TgPawn_Tower_FA + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Tower_Outer.uc b/Development/Src/TgGame/Classes/TgPawn_Tower_Outer.uc new file mode 100644 index 0000000..3d7c3bc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Tower_Outer.uc @@ -0,0 +1,6 @@ +class TgPawn_Tower_Outer extends TgPawn_Tower_FA + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Tower_Upper.uc b/Development/Src/TgGame/Classes/TgPawn_Tower_Upper.uc new file mode 100644 index 0000000..98d4247 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Tower_Upper.uc @@ -0,0 +1,6 @@ +class TgPawn_Tower_Upper extends TgPawn_Tower_FA + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Turret.uc b/Development/Src/TgGame/Classes/TgPawn_Turret.uc new file mode 100644 index 0000000..c379c5a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Turret.uc @@ -0,0 +1,43 @@ +class TgPawn_Turret extends TgPawn_Pet + native(Pawns) + config(Game) + hidecategories(Navigation); + +var repnotify bool r_bLockdownIsOn; +var repnotify bool r_bHasHealingStation; +var bool m_bFirstAidNuggetOverride; +var int m_nLockdownPostureID; +var TgDevice m_SpawningDevice; +var AkEvent m_TargetingNotificationAkEvent; +var Actor m_PrevTargetActor; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_bHasHealingStation, r_bLockdownIsOn; +} + +native function PostPawnSetupServer(); // Export UTgPawn_Turret::execPostPawnSetupServer(FFrame&, void* const) + +native function DropHealthNuggetTeamOnly(int nTaskForce, optional Vector SpawnVelocity, optional float fHealOverride=-1.0000000, optional float fHoTOverride=-1.0000000); // Export UTgPawn_Turret::execDropHealthNuggetTeamOnly(FFrame&, void* const) + +native function ToggleLockdownMode(bool bSetActive); // Export UTgPawn_Turret::execToggleLockdownMode(FFrame&, void* const) + +native function ToggleLockdownFX(); // Export UTgPawn_Turret::execToggleLockdownFX(FFrame&, void* const) + +native function ToggleHealingStationFX(); // Export UTgPawn_Turret::execToggleHealingStationFX(FFrame&, void* const) + +native function SetTargetActor(Actor Target); // Export UTgPawn_Turret::execSetTargetActor(FFrame&, void* const) + +native function PlayTargetingSound(); // Export UTgPawn_Turret::execPlayTargetingSound(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PlayDeathAnimation() { } + +simulated function RagdollPawn() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +state Intro {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Turret_DefaultCone.uc b/Development/Src/TgGame/Classes/TgPawn_Turret_DefaultCone.uc new file mode 100644 index 0000000..9675d59 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Turret_DefaultCone.uc @@ -0,0 +1,6 @@ +class TgPawn_Turret_DefaultCone extends TgPawn_Turret + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Turret_Flamethrower.uc b/Development/Src/TgGame/Classes/TgPawn_Turret_Flamethrower.uc new file mode 100644 index 0000000..cb96123 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Turret_Flamethrower.uc @@ -0,0 +1,7 @@ +class TgPawn_Turret_Flamethrower extends TgPawn_Turret + native(Pawns) + config(Game) + hidecategories(Navigation); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Turret_Mega.uc b/Development/Src/TgGame/Classes/TgPawn_Turret_Mega.uc new file mode 100644 index 0000000..a5743c9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Turret_Mega.uc @@ -0,0 +1,9 @@ +class TgPawn_Turret_Mega extends TgPawn_Turret + native(Pawns) + config(Game) + hidecategories(Navigation); + +state Intro {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Tyra.uc b/Development/Src/TgGame/Classes/TgPawn_Tyra.uc new file mode 100644 index 0000000..a641189 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Tyra.uc @@ -0,0 +1,12 @@ +class TgPawn_Tyra extends TgPawn_Character + native(ChampTyra) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var () WeaponDOF m_CurrentDOFSettings; + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Viktor.uc b/Development/Src/TgGame/Classes/TgPawn_Viktor.uc new file mode 100644 index 0000000..c84019e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_Viktor.uc @@ -0,0 +1,35 @@ +class TgPawn_Viktor extends TgPawn_Character + native(ChampViktor) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var float r_fFragGrenadeExplodeTime; +var bool r_bFragGrenadeExplodeOnTouch; +var (Grenade) float m_fBounceDampingVertMin; +var (Grenade) float m_fBounceDampingVertMax; +var (Grenade) float m_fBounceDampingHorizMin; +var (Grenade) float m_fBounceDampingHorizMax; +var repnotify byte r_nGrenadeRefreshSound; +var repnotify byte r_nAmmoRefreshSound; +var () WeaponDOF m_CurrentDOFSettings; +var TgDevice_Hustle m_CachedHustleDevice; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_bFragGrenadeExplodeOnTouch, r_fFragGrenadeExplodeTime; +} + +simulated event bool StartAction(TgDevice Dev, optional out TgObject.EDeviceFailType failType, optional bool bUpdateTimeStamp=true) { } + +simulated event SetTargetingDevice(TgDevice Dev, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event PlayLocalPawnFX(name nmDisplayGroup) { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +native simulated function TgObject.TG_EQUIP_POINT GetPerCharacterAltEquipPoint(); // Export UTgPawn_Viktor::execGetPerCharacterAltEquipPoint(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_VoodooTotem.uc b/Development/Src/TgGame/Classes/TgPawn_VoodooTotem.uc new file mode 100644 index 0000000..8d80e35 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPawn_VoodooTotem.uc @@ -0,0 +1,42 @@ +class TgPawn_VoodooTotem extends TgPawn_Pet + native(Pawns) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const MAX_VOODOO_LINKS = 5; + +var TgPawn r_linkedEnemies[5]; +var int nBreakDist; +var int m_nBeamFXID; +var TgSpecialFx m_BeamFXs[5]; +var float fDamageAmount; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_linkedEnemies; +} + +native function PostPawnSetupServer(); // Export UTgPawn_VoodooTotem::execPostPawnSetupServer(FFrame&, void* const) + +native function UpdateLinkedEnemies(); // Export UTgPawn_VoodooTotem::execUpdateLinkedEnemies(FFrame&, void* const) + +native function UpdateAllBeams(); // Export UTgPawn_VoodooTotem::execUpdateAllBeams(FFrame&, void* const) + +native function PawnOnDamaged(out OnDamagedParams Params); // Export UTgPawn_VoodooTotem::execPawnOnDamaged(FFrame&, void* const) + +native function bool ShouldShowHudOverlay(TgPawn PlayerPawn); // Export UTgPawn_VoodooTotem::execShouldShowHudOverlay(FFrame&, void* const) + +simulated function ForwardEffects(ImpactInfo Impact, TgEffectGroup EffectGroup, TgDevice SourceDevice, optional bool bRemove, optional int StackCount=1) { } + +simulated event DestroyIt(optional bool bSkipFx) { } + +function SetMovementPhysics() { } + +event bool CanBePulled() { } + +event bool CanBeGrabbed() { } + +simulated function bool ShouldNudgePlayer(TgPawn PlayerPawn) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPawn_Ying.uc b/Development/Src/TgGame/Classes/TgPawn_Ying.uc old mode 100755 new mode 100644 index f59867d..9371023 --- a/Development/Src/TgGame/Classes/TgPawn_Ying.uc +++ b/Development/Src/TgGame/Classes/TgPawn_Ying.uc @@ -1,4 +1,36 @@ -class TgPawn_Ying extends TgPawn_Character - native(ChampYing) - config(Game) - hidecategories(Navigation); \ No newline at end of file +class TgPawn_Ying extends TgPawn_Character + native(ChampYing) + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +var Actor r_InhandTarget; +var Vector r_InhandHitOffset; +var TgPawn_Character m_TeleportTarget; +var bool m_bRetrievedIllusionListThisTick; +var bool m_bHasShatterableIllusionsThisTick; +var bool r_bHasCompensate; +var bool m_bPulledTargetFromList; +var array m_ActiveIllusions; +var () float m_fFrictionMultiplier; +var () float m_fGravityMultiplier; +var () float m_fMaxFallSpeed; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_InhandHitOffset, r_InhandTarget, r_bHasCompensate; +} + +native function float GetGravityZ(); // Export UTgPawn_Ying::execGetGravityZ(FFrame&, void* const) + +native function bool PopulateActiveDecoyList(optional out byte bHasShatterableIllusions); // Export UTgPawn_Ying::execPopulateActiveDecoyList(FFrame&, void* const) + +simulated event KillAllOwnedPets() { } + +event bool Died(Controller Killer, class DamageType, vector HitLocation) { } + +function ClearDimensionalLink() { } + +simulated function string GetAnimSetString(TgObject.EMountType MountType) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPhysAnimTestActor.uc b/Development/Src/TgGame/Classes/TgPhysAnimTestActor.uc new file mode 100644 index 0000000..7ce109f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPhysAnimTestActor.uc @@ -0,0 +1,81 @@ +class TgPhysAnimTestActor extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +enum EPATAState { + PATA_FixedAll, // 0 + PATA_FixedLower, // 1 + PATA_MotorRagdoll, // 2 + PATA_Floppy, // 3 + PATA_Recover, // 4 +}; + +var () array LowerBoneNames; +var () array LinearBoneSpringNames; +var () array AngularBoneSpringNames; +var () export editinline SkeletalMeshComponent SkeletalMeshComponent; +var TgPhysAnimTestActor.EPATAState CurrentState; +var bool bBlendToGetUp; +var bool bBlendingBack; +var bool bRampingDownMotors; +var bool bNextPokeKnocksDown; +var float GetUpBlendStartTime; +var () float GetUpBlendTime; +var () float GetUpToIdleTime; +var () float ActorOriginHeight; +var () float PokePauseTime; +var () float PokeBlendTime; +var float BlendBackStartTime; +var float MotorDownStartTime; +var () float MotorDownTime; +var () float MotorDownAnimTime; +var () float BlendStaggerAnimTime; +var () float StaggerSpeedAdj; +var () float StaggerVel; +var Vector MoveDir; +var () float AngularHipDriveScale; +var () float StaggerMuscleScale; +var AnimNodeBlend BlendNode; +var AnimNodeSequence GetUpNode; +var AnimNodeSequence RunNode; +var RB_BodyInstance HipBody; + +simulated function PostBeginPlay() { } + +simulated function BoneImpulse(Vector Impulse, name BoneName) { } + +simulated function bool PrePokeActor(Vector PokeDir) { } + +simulated function bool PreGrab() { } + +simulated function EndGrab() { } + +simulated function SetPATAState(TgPhysAnimTestActor.EPATAState NewState) { } + +simulated function EnableMotors(bool InEnabled) { } + +simulated function SetBodiesFixed(bool InFixed) { } + +simulated function bool IsLowerBodyName(name InName) { } + +simulated function DetachAttachments() { } + +simulated function SetLowerFixed() { } + +simulated function bool IsLinearBoneSpringName(name InName) { } + +simulated function bool IsAngularBoneSpringName(name InName) { } + +simulated function SetBoneSprings(bool bEnabled) { } + +simulated function RecoverFromRagdoll() { } + +simulated function SetAllMotorsAngularDriveStrength(float InAngularSpringStrength, float InAngularDampingStrength, float InAngularForceLimitStrength, SkeletalMeshComponent SkelMeshComp) { } + +simulated function Tick(float DeltaSeconds) { } + +event OnAnimEnd(AnimNodeSequence SeqNode, float PlayedTime, float ExcessTime) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPhysicalMaterialProperty.uc b/Development/Src/TgGame/Classes/TgPhysicalMaterialProperty.uc new file mode 100644 index 0000000..47f1db3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPhysicalMaterialProperty.uc @@ -0,0 +1,8 @@ +class TgPhysicalMaterialProperty extends PhysicalMaterialPropertyBase + native(FX) + editinlinenew + collapsecategories + hidecategories(Object) + config(Engine); + +var () name MaterialType; diff --git a/Development/Src/TgGame/Classes/TgPickupFactory.uc b/Development/Src/TgGame/Classes/TgPickupFactory.uc new file mode 100644 index 0000000..b4daf38 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPickupFactory.uc @@ -0,0 +1,21 @@ +class TgPickupFactory extends PickupFactory + abstract + native(Inventory) + hidecategories(Navigation,Lighting,LightColor,Force,Display,Collision) + config(Engine); + +var bool bRotatingPickup; +var float YawRotationRate; +var Controller TeamOwner[4]; +var export editinline PrimitiveComponent BaseMesh; + +function bool ShouldCamp(TgAIController B, float MaxWait) { } + +simulated function UpdateHUD(TgHUD H) { } + +function RespawnEffect() { } + +simulated function bool StopsProjectile(Projectile P) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPickupFactory_Item.uc b/Development/Src/TgGame/Classes/TgPickupFactory_Item.uc new file mode 100644 index 0000000..128e885 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPickupFactory_Item.uc @@ -0,0 +1,23 @@ +class TgPickupFactory_Item extends TgPickupFactory + abstract + hidecategories(Navigation,Lighting,LightColor,Force,Display,Collision) + config(Engine); + +var SoundCue PickupSound; +var const localized string PickupMessage; +var float RespawnTime; + +simulated function InitializePickup() { } + +static function string GetLocalString(optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, optional PlayerReplicationInfo RelatedPRI_2) { } + +function SpawnCopyFor(Pawn Recipient) { } + +function SetRespawn() { } + +function float GetRespawnTime() { } + +function float BotDesireability(Pawn P) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPlayOfTheGameCamera.uc b/Development/Src/TgGame/Classes/TgPlayOfTheGameCamera.uc new file mode 100644 index 0000000..57f36e8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPlayOfTheGameCamera.uc @@ -0,0 +1,32 @@ +class TgPlayOfTheGameCamera extends CameraActor + native(View) + hidecategories(Navigation) + config(Engine); + +var (CameraActor) TgSkeletalMeshActor_Loader m_ViewTarget; +var transient bool m_bActive; +var float m_fRemainingTweenTime; +var float m_fTotalTweenTime; +var transient TPOV m_TweenSourcePOV; +var Vector m_vRelativeLocation; +var Vector m_vRelativeRotation; +var (CameraActor) Vector m_vRelativeLocationOffset; +var (CameraActor) Vector m_vRelativeRotationOffset; + +native function SetActive(bool bActive); // Export UTgPlayOfTheGameCamera::execSetActive(FFrame&, void* const) + +native function UpdateTransform(); // Export UTgPlayOfTheGameCamera::execUpdateTransform(FFrame&, void* const) + +simulated function StartTween(float TweenTime) { } + +simulated function GetCameraView(float DeltaTime, out TPOV OutPOV) { } + +simulated event ApplyPostProcessOverrides() { } + +defaultproperties +{ + m_TweenSourcePOV=(Location=(X=0.0000000,Y=0.0000000,Z=0.0000000),Rotation=(Pitch=0,Yaw=0,Roll=0),FOV=90.0000000,HUDOffset=(X=0.0000000,Y=0.0000000)) + m_vRelativeLocation=(X=95.0000000,Y=-7.0000000,Z=64.0000000) + m_vRelativeRotation=(X=0.0000000,Y=0.0000000,Z=160.0000000) + FOVAngle=40.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgPlayerBlockingVolume.uc b/Development/Src/TgGame/Classes/TgPlayerBlockingVolume.uc new file mode 100644 index 0000000..3b682f1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPlayerBlockingVolume.uc @@ -0,0 +1,7 @@ +class TgPlayerBlockingVolume extends BlockingVolume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPlayerCamera.uc b/Development/Src/TgGame/Classes/TgPlayerCamera.uc new file mode 100644 index 0000000..5ea52c3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPlayerCamera.uc @@ -0,0 +1,213 @@ +class TgPlayerCamera extends Camera + transient + native(View) + hidecategories(Navigation) + config(Engine) + dependson(TgEmitter_CameraEffect_DamageBase, TgObject, TgPawn, TgSpecialFx); + +struct PropertyDecayState { + var float PropertyLevel; + var float PropertyMax; + var float LastDecayTimestamp; + structdefaultproperties {} +}; + +struct PropertyDecayParams { + var float LambdaImpulse; + var float LambdaAccumulation; + var float AccumulationImpulseMix; + structdefaultproperties {} +}; + +var TgPlayerController PlayerOwner; +var () editinline TgCameraModule CurrentCameraMod; +var Class DefaultCameraModuleClass; +var array CameraModuleList; +var Rotator CamAngle; +var Vector CameraLocationLocalToTarget; +var Quat CameraRotationLocalToTarget; +var bool bTweening; +var bool bInterpolatingFOV; +var bool m_bPlayingHeal; +var float fTweenStart; +var float fTweenDuration; +var TgCameraModule LastCameraMod; +var float fFOVInterpStartTimestamp; +var float fFOVInterpStartValue; +var float fFOVInterpEndTimestamp; +var float fLastAppliedFOV; +var float m_fCollisionTraceExtent; +var TgEmitter_CameraEffect_Bleed m_BleedCameraEffect; +var TgEmitter_CameraEffect_Daze m_DazeCameraEffect; +var TgEmitter_CameraEffect_Fire m_FireCameraEffect; +var TgEmitter_CameraEffect_Freeze m_FreezeCameraEffect; +var TgEmitter_CameraEffect_Heal m_HealCameraEffect; +var TgEmitter_CameraEffect_Knockback m_KnockbackCameraEffect; +var TgEmitter_CameraEffect_Mark m_MarkCameraEffect; +var TgEmitter_CameraEffect_Poison m_PoisonCameraEffect; +var TgEmitter_CameraEffect_Venom m_VenomCameraEffect; +var TgEmitter_CameraEffect_Root m_RootCameraEffect; +var TgEmitter_CameraEffect_Slow m_SlowCameraEffect; +var TgEmitter_CameraEffect_Stun m_StunCameraEffect; +var TgEmitter_CameraEffect_Hidden m_HiddenCameraEffect; +var TgEmitter_CameraEffect_Hidden m_GrassCameraEffect; +var TgEmitter_CameraEffect_Teleport m_TeleportCameraEffect; +var TgEmitter_CameraEffect_PreTeleport m_PreTeleportCameraEffect; +var TgEmitter_CameraEffect_CCImmune m_CCImmuneCameraEffect; +var TgEmitter_CameraEffect_Cripple m_CrippleCameraEffect; +var TgEmitter_CameraEffect_Revealed m_RevealedCameraEffect; +var protected transient array m_CameraEffects; +var int m_nCameraEffectIdCounter; +var Class m_HealthDamageCameraEffectClasses[EDamageEffectScreenLocation]; +var Class m_ShieldDamageCameraEffectClasses[EDamageEffectScreenLocation]; +var PropertyDecayState m_HealthDamageFXState[EDamageEffectScreenLocation]; +var PropertyDecayState m_HealingFXState; +var PropertyDecayParams m_HealthDamageFXParams; +var PropertyDecayParams m_HealingFXParams; +var float m_fAccumulateHealing; +var float m_fSecondsSinceLastHealFXUpdate; +var float m_fHealFXUpdatePeriod; +var float m_fHealingFXHalflifeAccumulation; +var float m_fHealingFXHalflifeImpulse; +var float m_fHealingFXReliefFactor; +var float m_fHealingFXAccumulationMix; +var float m_fHealingFXVisibleThreshold; +var float m_fHealingCritFXThreshold; +var float m_fHealthDamageFXHalflifeAccumulation; +var float m_fHealthDamageFXHalflifeImpulse; +var float m_fHealthDamageFXPainFactor; +var float m_fHealthDamageFXAccumulationMix; +var float m_fHealthDamageCritFXThreshold; +var float m_fHealthDamageCritFXAccumulationMix; + +native function CameraTrace(out Vector HitLocation, out Vector HitNormal, Vector End, Vector Start, Actor Target); // Export UTgPlayerCamera::execCameraTrace(FFrame&, void* const) + +native function CheckPenetration(Vector CheckLocation, float CheckRadius); // Export UTgPlayerCamera::execCheckPenetration(FFrame&, void* const) + +native function ClearPenetrationList(); // Export UTgPlayerCamera::execClearPenetrationList(FFrame&, void* const) + +native function CheckViewTarget(out TViewTarget VT); // Export UTgPlayerCamera::execCheckViewTarget(FFrame&, void* const) + +function float LambdaFromHalflife(float fHalflife) { } + +function PostBeginPlay() { } + +function InitializeFor(PlayerController PC) { } + +function ResetFOV() { } + +function SetFOV(float NewFOV) { } + +function InterpolateFOV(float NewFOV, float InterpolationTime) { } + +function float GetFOVAngle() { } + +event TgCameraModule SwitchCameras(Class CameraClass, optional float fTweenTime=0.0000000) { } + +function TgCameraModule CreateCamera(Class CameraClass) { } + +function UpdateViewTarget(out TViewTarget OutVT, float DeltaTime) { } + +function EndLastCameraTween() { } + +function ProcessInput(PlayerInput PlayerInput, float DeltaTime) { } + +function zoomIn() { } + +function ZoomOut() { } + +simulated event UpdateCamera(float DeltaTime) { } + +native function GetViewLocalToTarget(const Actor InViewTarget, out Vector LocalViewLocation, out Quat LocalViewRotation); // Export UTgPlayerCamera::execGetViewLocalToTarget(FFrame&, void* const) + +native function UpdateCameraLocalToTarget(); // Export UTgPlayerCamera::execUpdateCameraLocalToTarget(FFrame&, void* const) + + +function ApplyFOVModification(out float FOV) { } + +function float GetFOVInterpZoomPct() { } + +function PlayBleed(bool bEnabled) { } + +function PlayOnFire(bool bEnabled) { } + +function PlayFreeze(bool bEnabled) { } + +function PlayCCImmuneEffects(bool bEnabled) { } + +simulated function Tick(float DeltaSeconds) { } + +event PlayHeal(float fHealAmount) { } + +function PlayKnockback(bool bEnabled) { } + +function PlayPoisoned(bool bEnabled) { } + +function PlayVenom(bool bEnabled) { } + +function PlayCrippled(bool bEnabled) { } + +function PlayRoot(bool bEnabled) { } + +function PlaySlow(bool bEnabled) { } + +function PlayStun(bool bEnabled) { } + +function PlayDaze(bool bEnabled) { } + +function PlayMark(bool bEnabled) { } + +function PlayPreTeleportFX() { } + +function PlayTeleportFx() { } + +function PlayHidden(bool bEnabled, optional ParticleSystem Template) { } + +function PlayGrass(bool bEnabled, optional ParticleSystem Template) { } + +function PlayRevealed(bool bEnabled) { } + +event TgEmitter_CameraEffect AddCameraEffect(ParticleSystem Template, optional array SoundList) { } + +event RemoveCameraEffect(TgEmitter_CameraEffect CameraEffect) { } + +function TgEmitter_CameraEffect FindCameraEffect(Class CameraEffectClass) { } + +function PlayDamageCameraEffect(TgEmitter_CameraEffect_DamageBase.EDamageEffectScreenLocation ScreenLocation, float fDamageAmount, bool bCritical) { } + +function UpdateDecay(out PropertyDecayState PropState, const PropertyDecayParams PropParams, float fPropertyCurrent) { } + +function float MixProperty(const PropertyDecayState PropState, const PropertyDecayParams PropParams) { } + +function bool CheckCrit(int ScreenLocation) { } + +event TakeHit(Vector Direction, float fDamageAmount, Class DamageType, const out ExtraDamageInfo ExtraInfo, TgPawn.EHitAudioCue eCue) { } + +defaultproperties +{ + DefaultCameraModuleClass=Class'TgCameraModule_ThirdPerson' + m_fCollisionTraceExtent=24.0000000 + m_HealthDamageCameraEffectClasses[0]=Class'TgEmitter_CameraEffect_DamageRight' + m_HealthDamageCameraEffectClasses[1]=Class'TgEmitter_CameraEffect_DamageTopRight' + m_HealthDamageCameraEffectClasses[2]=Class'TgEmitter_CameraEffect_DamageTop' + m_HealthDamageCameraEffectClasses[3]=Class'TgEmitter_CameraEffect_DamageTopLeft' + m_HealthDamageCameraEffectClasses[4]=Class'TgEmitter_CameraEffect_DamageLeft' + m_HealthDamageCameraEffectClasses[5]=Class'TgEmitter_CameraEffect_DamageBottomLeft' + m_HealthDamageCameraEffectClasses[6]=Class'TgEmitter_CameraEffect_DamageBottom' + m_HealthDamageCameraEffectClasses[7]=Class'TgEmitter_CameraEffect_DamageBottomRight' + m_fHealFXUpdatePeriod=0.1000000 + m_fHealingFXHalflifeAccumulation=0.3500000 + m_fHealingFXHalflifeImpulse=0.6500000 + m_fHealingFXReliefFactor=0.0100000 + m_fHealingFXAccumulationMix=0.1250000 + m_fHealingFXVisibleThreshold=0.2500000 + m_fHealingCritFXThreshold=2.0000000 + m_fHealthDamageFXHalflifeAccumulation=0.6000000 + m_fHealthDamageFXHalflifeImpulse=1.5000000 + m_fHealthDamageFXPainFactor=0.0012500 + m_fHealthDamageFXAccumulationMix=0.4000000 + m_fHealthDamageCritFXThreshold=1000.0000000 + m_fHealthDamageCritFXAccumulationMix=0.2000000 + ConstrainedAspectRatio=1.7777800 + DefaultAspectRatio=1.7777800 +} diff --git a/Development/Src/TgGame/Classes/TgPlayerController.uc b/Development/Src/TgGame/Classes/TgPlayerController.uc old mode 100755 new mode 100644 index 3804137..66179ae --- a/Development/Src/TgGame/Classes/TgPlayerController.uc +++ b/Development/Src/TgGame/Classes/TgPlayerController.uc @@ -1,177 +1,1669 @@ -class TgPlayerController extends PComPlayerController - native(Pawns) - nativereplication - config(Game) - hidecategories(Navigation); - //implements(TgPaladinsController,TgCallbackInterface,TgSoundNotifyActorInterface); - - - -enum EPlayerInputType -{ - PIT_MoveForward, - PIT_MoveBackward, - PIT_MoveRight, - PIT_MoveLeft, - PIT_LookLeft, - PIT_LookRight, - PIT_LookUp, - PIT_LookDown, - PIT_Auto, - PIT_Alt, - PIT_BattleAbility, - PIT_MovementAbility, - PIT_Ultimate, - PIT_Reload, - PIT_Jump, - PIT_Mount, - PIT_LoadoutMenu, - PIT_BurnCardMenu, - PIT_Emote, - PIT_Spray, - //PIT_MAX -}; - - -var int s_nPlayerId; -var QWord s_qwNetAccessFlags; -var transient TgRepInfo_Player CachedPRI; -var float r_fServerTimeStamp; - -var transient int m_nKillCamTargetId; -var transient int m_nKillCamTargetBackupId; - -var bool bForcedTimelapseRequested; -var bool bForcedPlayOfGameRequested; - -var int m_nVoicePackId; - -var() editinline TgControlModule ControlModule; - -// Export UTgPlayerController::execSetInputAllowed(FFrame&, void* const) -native exec function SetInputAllowed(TgPlayerController.EPlayerInputType InputType, bool bEnabled); - -// Export UTgPlayerController::execLiveMatchSwitchChampion(FFrame&, void* const) -native function LiveMatchSwitchChampion(int BotId, int BodySkinId, int WeaponSkinId); - -// Export UTgPlayerController::execCanPlayKillCam(FFrame&, void* const) -native function bool CanPlayKillCam(bool bPlayOfGame); - -// Export UTgPlayerController::execSwitchChampion(FFrame&, void* const) -native function SwitchChampion(int BotId, int BodySkinId, int WeaponSkinId, int VoicePackId); - -// Export UTgPlayerController::execSetPlayerProfile(FFrame&, void* const) -native function SetPlayerProfile(int nProfileId, int nSkinId, int nWeaponSkinId, int nHeadSkinId, optional int nVoicePackId = 0); - -// Export UTgPlayerController::execGetDeviceIdByName(FFrame&, void* const) -native function int GetDeviceIdByName(string sDeviceName); - -// Export UTgPlayerController::execGetTaskForceNumber(FFrame&, void* const) -native function int GetTaskForceNumber(); - -// Export UTgPlayerController::execSpectateGM(FFrame&, void* const) -native exec function SpectateGM(string sPlayerName, optional string sSpectatePassword); - -// Export UTgPlayerController::execSpectate(FFrame&, void* const) -native exec function Spectate(string sPlayerName, optional string sSpectatePassword); - -// Export UTgPlayerController::execSpectateStop(FFrame&, void* const) -native exec function SpectateStop(); - -// Export UTgPlayerController::execSpectateDamage(FFrame&, void* const) -native exec function SpectateDamage(bool bShow); - -// Export UTgPlayerController::execSpectateHeals(FFrame&, void* const) -native exec function SpectateHeals(bool bShow); - -// Export UTgPlayerController::execSpectateCrits(FFrame&, void* const) -native exec function SpectateCrits(bool bShow); - -// Export UTgPlayerController::execSpectateGold(FFrame&, void* const) -native exec function SpectateGold(bool bShow); - -// Export UTgPlayerController::execSpectateXP(FFrame&, void* const) -native exec function SpectateXP(bool bShow); - -// Export UTgPlayerController::execSpectateOutlines(FFrame&, void* const) -native exec function SpectateOutlines(bool bShow); - -// Export UTgPlayerController::execToggleCombatInfo(FFrame&, void* const) -native exec function ToggleCombatInfo(); - -// Export UTgPlayerController::execSendCombatMessage(FFrame&, void* const) -native function SendCombatMessage(CombatMessageInfo msgInfo); - -event InitInputSystem(){} - -reliable client native simulated function ClientDebugPlayPotg(); - -function SetCredits(int nCreditsAmount) {} - -unreliable client simulated function ClientPlaySound(SoundCue ASound){} - -unreliable client simulated function ClientPlaySoundBase(AkBaseSoundObject ASound){} - -function LiveRespawn(bool bResetHealth, bool bResetDevices){} - -event SetNoSmoothedMovementCorrection(bool bNoSmoothedCorrections, optional bool bManaged = false){} - -reliable client simulated event UpdateReviveTimeRemaining(float fTimeRemaining){} - -reliable client simulated event ClientSetRotationAndDesired(Rotator NewRotation, optional bool bResetCamera){} - -exec function SetReadyToPlay(){} -function AcknowledgePossession(Pawn P){} -reliable server function ServerAcknowledgePossession(Pawn P){} -event Possess(Pawn aPawn, bool bVehicleTransition){} -event UnPossess(){} - -exec function SwitchCamera(string sCamera){} -exec function GoSpectate(){} - -// Export UTgPlayerController::execClientDebugPlayPotg(FFrame&, void* const) -//reliable client native simulated function ClientDebugPlayPotg(); - - - - - - - - - - - - - - - - - - - - - -// KILLCAMS - -function SetKillCamTarget(TgPawn KillCamTarget){} -reliable client simulated function ClientSetKillCamTarget(int KillCamTargetId, int BackupKillCamTargetId){} -function ForceKillCamViewTargetChange(optional Actor ForceTarget){} - -// Export UTgPlayerController::execGetBestKillCamTarget(FFrame&, void* const) -native final function Actor GetBestKillCamTarget(); - -// Export UTgPlayerController::execStartTimelapsePlayback(FFrame&, void* const) -native function StartTimelapsePlayback(float BeginTimeOffset, float EndTimeOffset, optional bool bPlayOfGame); - -exec function StartTimelapse(optional float Begin = -5.0000000, optional float End = 2.0000000, optional bool bPlayOfGame = false, optional bool bForced = true){} -event ControllerPreTimeLapse(){} - - - -defaultproperties -{ - CheatClass=Class'TgBattleCheatManager' -} - - +class TgPlayerController extends PComPlayerController + native(Pawns) + nativereplication + config(Game) + hidecategories(Navigation) + implements(TgPaladinsController,TgCallbackInterface) + dependson(TgObject); + +const MAX_FLASH_SIM_PROJECTILES = 32; + +const PING_LENGTH = 4; + +const VGS_SPAM_LENGTH = 0.5; + +const MAX_LAST_PURCHASED = 26; + +const CUE_ATTACKFROMBEHIND_PERIOD = 30.0; + +const CUE_ATTACKFROMSNIPER_PERIOD = 30.0; + +const CUE_ATTACKFROMABOVE_PERIOD = 30.0; + +const CUE_ATTACKANY_PERIOD = 5.0; + +const CUE_ATTACKFROMSNIPER_RANGESQR = 1000000; + +const RIGHT_CLICK_CANCELING_ENABLED = false; + +const ABILITY_ANDROXUS_DEFIANCE = 13324; + +const ABILITY_ANDROXUS_REVERSAL = 13251; + +const ABILITY_BOMBKING_STICKY = 14308; + +const ABILITY_BOMBKING_GRUMPY = 13412; + +const ABILITY_BUCK_NETSHOT = 12981; + +const ABILITY_DROGOZ_SALVO = 14140; + +const ABILITY_DROGOX_FIRESPIT = 13327; + +const ABILITY_GROHK_CHAINLIGHTNING = 11510; + +const ABILITY_GROVER_AXETHROW = 11490; + +const ABILITY_RUCKUS_DUALFIRE = 11460; + +const ABILITY_SKYE_POISONBOLTS = 11491; + +const ABILITY_VIKTOR_FRAGGRENADE = 14149; + +const ABILITY_YING_SHATTER = 13284; + +const ABILITY_YING_ILLUSION_AUTO = 13332; + +const ABILITY_MAKOA_ANCHOR = 14181; + +const DEVICE_DEATH_FOG = 13033; + +const PIT_MAX_SIZE = 20; + +const GAMEEVENT_PALADINS_PLAYER_KILL = 1001; + +const GAMEEVENT_PALADINS_PLAYER_DEATH = 1002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_SUICIDE = 2001; + +const GAMEEVENT_PALADINS_PLAYER_KILL_NORMAL = 2002; + +const GAMEEVENT_PALADINS_PLAYER_KILL_ASSIST = 2003; + +const GAMEEVENT_MATCH_STARTED = 0; + +const GAMEEVENT_MATCH_ENDED = 1; + +const GAMEEVENT_ROUND_STARTED = 2; + +const GAMEEVENT_ROUND_ENDED = 3; + +const GAMEEVENT_GAME_CLASS = 6; + +const GAMEEVENT_GAME_OPTION_URL = 7; + +const GAMEEVENT_GAME_MAPNAME = 8; + +const GAMEEVENT_MEMORYUSAGE_POLL = 35; + +const GAMEEVENT_FRAMERATE_POLL = 36; + +const GAMEEVENT_NETWORKUSAGEIN_POLL = 37; + +const GAMEEVENT_NETWORKUSAGEOUT_POLL = 38; + +const GAMEEVENT_PING_POLL = 39; + +const GAMEEVENT_RENDERTHREAD_POLL = 40; + +const GAMEEVENT_GAMETHREAD_POLL = 41; + +const GAMEEVENT_GPUFRAMETIME_POLL = 42; + +const GAMEEVENT_FRAMETIME_POLL = 43; + +const GAMEEVENT_TEAM_CREATED = 50; + +const GAMEEVENT_TEAM_GAME_SCORE = 51; + +const GAMEEVENT_TEAM_MATCH_WON = 4; + +const GAMEEVENT_TEAM_ROUND_WON = 5; + +const GAMEEVENT_TEAM_ROUND_STALEMATE = 52; + +const GAMEEVENT_PLAYER_LOGIN = 100; + +const GAMEEVENT_PLAYER_LOGOUT = 101; + +const GAMEEVENT_PLAYER_SPAWN = 102; + +const GAMEEVENT_PLAYER_MATCH_WON = 103; + +const GAMEEVENT_PLAYER_KILL = 104; + +const GAMEEVENT_PLAYER_LOCATION_POLL = 105; + +const GAMEEVENT_PLAYER_TEAMCHANGE = 106; + +const GAMEEVENT_PLAYER_KILL_STREAK = 107; + +const GAMEEVENT_PLAYER_DEATH = 108; + +const GAMEEVENT_PLAYER_ROUND_WON = 109; + +const GAMEEVENT_PLAYER_ROUND_STALEMATE = 110; + +const GAMEEVENT_WEAPON_DAMAGE = 150; + +const GAMEEVENT_WEAPON_DAMAGE_MELEE = 151; + +const GAMEEVENT_WEAPON_FIRED = 152; + +const GAMEEVENT_PLAYER_KILL_NORMAL = 200; + +const GAMEEVENT_GENERIC_PARAM_LIST_START = 300; + +const GAMEEVENT_GENERIC_PARAM_LIST_END = 400; + +const GAMEEVENT_GAME_SPECIFIC = 1000; + +const GAMEEVENT_MAX_EVENTID = 0x0000FFFF; + +enum EGiveGoldResult { + GGR_PlayerNotFound, // 0 + GGR_PlayerNotFriendly, // 1 + GGR_NotEnoughGold, // 2 + GGR_Success, // 3 +}; + +enum EAnnouncerSeries { + ANS_TimeRemaining, // 0 + ANS_TotalTimeRemaining, // 1 + ANS_Countdown, // 2 + ANS_Overtime, // 3 +}; + +enum EPlayerInputType { + PIT_MoveForward, // 0 + PIT_MoveBackward, // 1 + PIT_MoveRight, // 2 + PIT_MoveLeft, // 3 + PIT_LookLeft, // 4 + PIT_LookRight, // 5 + PIT_LookUp, // 6 + PIT_LookDown, // 7 + PIT_Auto, // 8 + PIT_Alt, // 9 + PIT_BattleAbility, // 10 + PIT_MovementAbility, // 11 + PIT_Ultimate, // 12 + PIT_Reload, // 13 + PIT_Jump, // 14 + PIT_Mount, // 15 + PIT_LoadoutMenu, // 16 + PIT_BurnCardMenu, // 17 + PIT_Emote, // 18 + PIT_Spray, // 19 +}; + +enum TG_CAMERAPOSTURE { + TG_CAMERAPOSTURE_None, // 0 + TG_CAMERAPOSTURE_Emote3P, // 1 + TG_CAMERAPOSTURE_Ability3P, // 2 + TG_CAMERAPOSTURE_Force3P, // 3 + TG_CAMERAPOSTURE_Force1P, // 4 +}; + +enum EWatchOtherPlayersMode { + WOPM_NONE, // 0 + WOPM_PLAYER, // 1 +}; + +enum EHUDOverlay { + HO_None, // 0 + HO_Sniper, // 1 + HO_Binoculars, // 2 + HO_OwlScope, // 3 +}; + +struct TG_LAST_PURCHASE { + var int nItemId; + var int nCount; + structdefaultproperties {} +}; + +struct FLOOD { + var int m_nCount; + var float m_fLastUpdate; + structdefaultproperties {} +}; + +struct CameraStackInfo { + var TgPlayerController.TG_CAMERAPOSTURE ePosture; + var int nStackId; + structdefaultproperties {} +}; + +struct InventoryChangeFlags { + var bool bDevice; + var bool bComponent; + var bool bEquipped; + var bool bDeviceFailed; + structdefaultproperties {} +}; + +struct sSimProjectileFireInfo { + var int nOwnerFireModeId; + var Vector vLocation; + var Vector vVelocity; + var Vector vDirectionMunged; + var int nActorID; + var int nClientFireRequestId; + var PComStructures.CMTargetType ActorType; + var float fGeneric1; + var float fGeneric2; + structdefaultproperties {} +}; + +struct BinocularSettings { + var int nTargets; + var Rotator rHeading; + var float fRange; + var float fTimer1; + var float fTimer2; + var float fTimer3; + var float fTimerDuration; + var float fRefireTimerPercent; + var float fDurationPercent; + structdefaultproperties {} +}; + +var int m_nAnnouncerSeriesStep[EAnnouncerSeries]; +var int s_nPlayerId; +var QWord s_qwNetAccessFlags; +var repnotify int r_nXp; +var repnotify int r_nCurrency; +var float s_fCurrencyRemainder; +var float s_fXpRemainder; +var repnotify bool r_bCanPurchaseItems; +var repnotify bool r_bCanChangeLoadout; +var repnotify bool r_bAutoPurchase; +var repnotify bool r_bAutoSkillUp; +var repnotify bool r_bToggleZoom; +var bool m_bBlockVGS; +var bool s_bSentAutoKickAlert; +var transient bool s_bAddDeadTimeStatsTracker; +var bool r_bLockYawRotation; +var bool bPressingLeftMouseButton; +var bool bPressingRightMouseButton; +var bool bPressingMovementButton; +var bool m_bPendingReload; +var bool r_bRove; +var bool m_bNoSmoothedMovementCorrection; +var bool c_bProcessedNoSmoothNotification; +var bool s_bNoSmoothedMovementCorrectionRequested; +var bool s_bIsNoSmoothMovementCorrectionManaged; +var bool s_bClearAchievementIgnoreListsOnNextTick; +var bool bDebugProjectileLagCompensation; +var bool c_bAssistModeSublevelLoaded; +var globalconfig bool c_bAllowSpecialMaterialEffects; +var transient bool m_bIgnoreSilhouettes; +var transient bool m_bForceSilhouettesOnVisibleGods; +var transient bool m_bDetailedViewEnabled; +var config bool m_bContextNotifiesEnabled; +var bool m_bShowPlayerCircles; +var bool m_bAllowUndrawnPurchase; +var const bool m_bCanHearStealthPawns; +var bool c_bShowFootstepInfoDebug; +var bool m_bDetailedDeviceLogging; +var bool m_bBehindView; +var () bool m_bOutlineEnemies; +var () bool m_bOutlineFriendlies; +var config bool c_bEnablePathfinderGuide; +var bool m_fPathfinderEnabled; +var bool c_bIsPlayingFallWindSound; +var bool m_bJustDidJumpDoubleTap; +var bool m_bThreatSystemEnabled; +var bool m_bOcclusionSystemEnabled; +var bool m_bDebugThreatSystem; +var bool c_bMatchAlmostWonSwitchPrimed; +var bool m_IsTimeDilationInterpolating; +var bool m_IsDesaturationInterpolating; +var transient bool m_bIsTrackingAimTowardTargetLocation; +var bool bForcedTimelapseRequested; +var bool bForcedPlayOfGameRequested; +var bool m_bRewindMoversForReplaySavedMoves; +var bool m_bShowDebugRewindMovers; +var bool c_bCaptureProgressAkEventPlaying; +var bool m_bShowChampionOverviewTip; +var config bool m_bEnableUltimateAkEventUnocclusion; +var bool c_bIsPlayOfTheGame; +var float c_fLastGoldNagTime; +var int m_nReviveBuybackCost; +var repnotify int r_nStatPoints; +var FLOOD s_VGSFlood; +var FLOOD s_PingFlood; +var Actor c_aLastViewTarget; +var TgPlayerInput m_CachedPlayerInput; +var TgSpectatorInput m_CachedSpectatorInput; +var Actor m_aHoverActor; +var Vector m_vHoverLocation; +var float m_fHoverActorActiveTime; +var Vector m_vWorldMapLocation; +var init transient array m_WorldMapTargetRepInfos; +var transient Vector m_vWorldMouseLocation; +var transient Vector m_vWorldMouseDirection; +var float c_fTimeTillAFK; +var float s_bAutoKickStartTime; +var TG_LAST_PURCHASE r_LastPurchasedItems[26]; +var Pawn s_LastPossessedPawn; +var float m_fRecentLostHealth; +var float m_fLastLostHealthTime; +var array m_TargetedPlayers; +var float s_fWaitForSpawnSecs; +var float c_fRespawnTime; +var float m_fDeathTime; +var int r_bInputEnabled[20]; +var () editinline TgControlModule ControlModule; +var Class DefaultControlModuleClass; +var int c_nCameraYawOffset; +var int m_nDevicesLockingInput; +var int m_nDevicesLockingCamera; +var int m_nDevicesLockingRotation; +var float m_fPendingReloadTime; +var float m_fPendingReloadMaxTime; +var transient Actor m_EndGameFocus; +var float m_fLastVGS; +var Vector m_vLastServerCorrectOrigPos; +var float s_fLastConfirmedSentSmoothedMovementTimestamp; +var float c_fLastRecievedNoSmoothTimestamp; +var byte m_byDesiredMoveSpeedReduction; +var TgPlayerController.TG_CAMERAPOSTURE c_eCameraPosture; +var TgPlayerController.EWatchOtherPlayersMode r_WatchOtherPlayer; +var TgObject.GAME_WIN_STATE c_GameWinState; +var byte m_bOldbRun; +var TgPlayerController.EHUDOverlay c_eCurrentOverlay; +var TgObject.TG_EQUIP_POINT m_eDetailedDeviceEqp; +var TgObject.TG_EQUIP_POINT m_LastEquipPoint; +var transient byte c_LastSentClientRoll; +var input byte m_UltHeld; +var input byte m_JumpHeld; +var input byte m_JumpHeldAlt; +var input byte m_PerCharacterAlt; +var array c_CameraStack; +var int c_nNextCameraStackId; +var const float m_fTimeToViewOthersCamAfterDeath; +var () const float m_fWatchOthersFadeToBlackCamTime; +var () const float m_fWatchOthersFadeFromBlackCamTime; +var array s_Achievements; +var TgAkAudioManagement c_TgAkAudio; +var int r_nFlashProjectile[32]; +var sSimProjectileFireInfo r_FlashProjectileEx[32]; +var repnotify int r_nFirstValidProjIdx; +var repnotify int r_nFlashSimProjIdx; +var int c_nLastFlashSimProjIdx; +var int r_nPerkPointsAvail; +var transient TgGameTipManager c_GameTipManager; +var native Pointer s_pCombatMessages; +var float s_fLastCombatMessageProcess; +var int c_nCurrentLevel; +var TgTutorialAnnouncer c_TutorialAnnouncer; +var repnotify int r_TutorialBlockedClientActions; +var TgSubtitledMessages c_SubtitledMessages; +var transient TgRepInfo_Player CachedPRI; +var MaterialInstanceConstant m_OverlayPathMaterial; +var int m_nContextNotifyGroundTargeterId; +var array m_HiddenPawns; +var export editinline AudioComponent c_AlertAudioComponent; +var AkEvent c_AlertAkEvent; +var array c_KismetLoadedDevices; +var TgContextNotifyActor m_ObjectiveNotify; +var () editinline TgCameraShake m_PreviewCameraShake; +var array m_CapturePoints; +var () float m_fPathfinderStreamTime; +var () float m_fPathfinderPulseTime; +var () float m_fPathfinderLifetime; +var () float m_fPathfinderSpeed; +var () float m_fPathfinderStartDist; +var transient float c_LastSentMoveTimeStamp; +var transient Vector c_LastSentMoveAcceleration; +var transient int c_LastSentMoveCompressedFlags; +var transient Vector c_LastSentClientLoc; +var transient int c_LastSentView; +var AkEvent c_FallWindSoundPlay; +var AkEvent c_FallWindSoundStop; +var transient int m_nKillCamTargetId; +var transient int m_nKillCamTargetBackupId; +var float r_fServerTimeStamp; +var float m_fLastJumpTapTime; +var float m_fMaxJumpDoubleTapTime; +var int m_nVoicePackId; +var array m_PawnsWithThreatLevels; +var TgPathfinder m_Pathfinder; +var config float m_fThreatCoefficientProximity; +var config float m_fThreatCoefficientOcclusion; +var config float m_fThreatCoefficientBinnedOcclusion; +var config float m_fThreatCoefficientUlt; +var config float m_fThreatCoefficientShotAt; +var config float m_fThreatCoefficientSeenBy; +var config float m_fThreatCoefficientDamaged; +var config float m_fThreatCoefficientFocused; +var config float m_fThreatCoefficientFocusTarget; +var config float m_fThreatCoefficientBehind; +var config float m_fThreatCoefficientInEffectiveRange; +var config float m_fThreatDecayCoefficientShotAt; +var config float m_fThreatDecayCoefficientSeenBy; +var config float m_fThreatDecayCoefficientUlt; +var string m_DebugThreatSystemChannel; +var string m_CurrentMusicEventName; +var name m_nameBuyBurnCardsTimer; +var Vector2D m_TimeDilationFromTo; +var float m_TimeDilationInterpolateSeconds; +var float m_TimeDilationUsedSeconds; +var Vector2D m_DesaturationFromTo; +var float m_DesaturationInterpolateSeconds; +var float m_DesaturationUsedSeconds; +var int m_EnergyLastFrame; +var transient Vector m_TrackingTargetLocation; +var transient float m_fTrackingTargetMaxAimDistDiff; +var AkBaseSoundObject m_RoundEndAlert; +var SeqAct_Interp m_CurrentDirectorMatinee; +var AkEvent m_CaptureProgressPlayAkEvent; +var AkEvent m_CaptureProgressStopAkEvent; +var float m_fCachedCaptureProgress; +var AkEvent m_PointGettingCapturedPlayAkEvent; +var int m_nPointGettingCapturedPlayCount; +var float m_fShowChampionOverviewTipDelay; +var float c_fLastAttackAudioCueTimestamp; +var float c_fLastAttackFromBehindAudioCueTimestamp; +var float c_fLastAttackFromAboveAudioCueTimestamp; +var float c_fLastAttackFromSniperAudioCueTimestamp; +var int s_nRoundsIdle; +var float s_fIdleTimeReduction; +var int c_nLeadingTeam; +var int c_nLeadingTeamTicketAmount; +var TgCallbackContainer m_CallbackContainer; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetOwner) r_LastPurchasedItems, r_TutorialBlockedClientActions, r_WatchOtherPlayer, r_bAutoPurchase, r_bAutoSkillUp, r_bCanChangeLoadout, r_bCanPurchaseItems, r_bInputEnabled, r_bLockYawRotation, r_bRove, r_bToggleZoom, r_fServerTimeStamp, r_nCurrency, r_nPerkPointsAvail, r_nStatPoints, r_nXp; +} + +native function SetViewTarget(Actor NewViewTarget, optional ViewTargetTransitionParams TransitionParams); // Export UTgPlayerController::execSetViewTarget(FFrame&, void* const) + +native function CanDoFullSellback(); // Export UTgPlayerController::execCanDoFullSellback(FFrame&, void* const) + +native function bool IsReadyForStart(); // Export UTgPlayerController::execIsReadyForStart(FFrame&, void* const) + +native function QueueReviveTimeChanged(); // Export UTgPlayerController::execQueueReviveTimeChanged(FFrame&, void* const) + +native function CueAttackedFromBehind(); // Export UTgPlayerController::execCueAttackedFromBehind(FFrame&, void* const) + +native function CueAttackedFromAbove(); // Export UTgPlayerController::execCueAttackedFromAbove(FFrame&, void* const) + +native function CueAttackedFromSniper(); // Export UTgPlayerController::execCueAttackedFromSniper(FFrame&, void* const) + +native function int AnnouncerGetStep(TgPlayerController.EAnnouncerSeries series); // Export UTgPlayerController::execAnnouncerGetStep(FFrame&, void* const) + +native function AnnouncerReset(); // Export UTgPlayerController::execAnnouncerReset(FFrame&, void* const) + +native function bool AnnouncerPlaySeries(TgPlayerController.EAnnouncerSeries series, optional int Step=0); // Export UTgPlayerController::execAnnouncerPlaySeries(FFrame&, void* const) + +native function PlayPointAlienFX(bool bPointWonLocal); // Export UTgPlayerController::execPlayPointAlienFX(FFrame&, void* const) + +native function NativeAnnounceEOM(bool bVictory); // Export UTgPlayerController::execNativeAnnounceEOM(FFrame&, void* const) + +native exec function LogPerfLeakData(); // Export UTgPlayerController::execLogPerfLeakData(FFrame&, void* const) + +native exec function TestVGSPOTG(int nPackId, int nBotId, int nSkinId); // Export UTgPlayerController::execTestVGSPOTG(FFrame&, void* const) + +native function Class GetHudClass(Class pNewHudType); // Export UTgPlayerController::execGetHudClass(FFrame&, void* const) + +native function bool CanCameraSeePawnCenter(TgPawn Other); // Export UTgPlayerController::execCanCameraSeePawnCenter(FFrame&, void* const) + +native function bool CanCameraSeeActorCenter(Actor Other, optional float ZOffset); // Export UTgPlayerController::execCanCameraSeeActorCenter(FFrame&, void* const) + +native reliable server function ServerSetTaskforceLead(string fsName); // Export UTgPlayerController::execServerSetTaskforceLead(FFrame&, void* const) + +native exec function Friend(string sCmd, string sName); // Export UTgPlayerController::execFriend(FFrame&, void* const) + +native function ConfirmMatchLeave(bool bLeave); // Export UTgPlayerController::execConfirmMatchLeave(FFrame&, void* const) + +native exec function MatchLeave(bool bAsTeam); // Export UTgPlayerController::execMatchLeave(FFrame&, void* const) + +native event MatchAccept(bool bAccepted); // Export UTgPlayerController::execMatchAccept(FFrame&, void* const) + +native function TgClientSettings GetClientSettings(); // Export UTgPlayerController::execGetClientSettings(FFrame&, void* const) + +native exec function Bug(); // Export UTgPlayerController::execBug(FFrame&, void* const) + +native exec function _Crash(); // Export UTgPlayerController::exec_Crash(FFrame&, void* const) + +native exec function LogTo(string fsHost, optional int nPort=4040); // Export UTgPlayerController::execLogTo(FFrame&, void* const) + +native exec function StopLogTo(); // Export UTgPlayerController::execStopLogTo(FFrame&, void* const) + +native exec function ToggleInHandTargeting(bool bHide); // Export UTgPlayerController::execToggleInHandTargeting(FFrame&, void* const) + +native exec function DisableProfanityFilter(bool bDisable); // Export UTgPlayerController::execDisableProfanityFilter(FFrame&, void* const) + +native exec function SpectateDamage(bool bShow); // Export UTgPlayerController::execSpectateDamage(FFrame&, void* const) + +native exec function SpectateHeals(bool bShow); // Export UTgPlayerController::execSpectateHeals(FFrame&, void* const) + +native exec function SpectateCrits(bool bShow); // Export UTgPlayerController::execSpectateCrits(FFrame&, void* const) + +native exec function SpectateGold(bool bShow); // Export UTgPlayerController::execSpectateGold(FFrame&, void* const) + +native exec function SpectateXP(bool bShow); // Export UTgPlayerController::execSpectateXP(FFrame&, void* const) + +native exec function SpectateOutlines(bool bShow); // Export UTgPlayerController::execSpectateOutlines(FFrame&, void* const) + +native exec function ToggleCombatInfo(); // Export UTgPlayerController::execToggleCombatInfo(FFrame&, void* const) + +native function FinalSave(); // Export UTgPlayerController::execFinalSave(FFrame&, void* const) + +native function ForceRelevant(Actor pActor, optional float fDuration=-1.0000000); // Export UTgPlayerController::execForceRelevant(FFrame&, void* const) + +native function bool bIsEditor(); // Export UTgPlayerController::execbIsEditor(FFrame&, void* const) + +native function GetValue(string fsObject, string fsValue); // Export UTgPlayerController::execGetValue(FFrame&, void* const) + +native function SetValue(string fsObject, string fsVariable, string fsValue); // Export UTgPlayerController::execSetValue(FFrame&, void* const) + +native function int GetDeviceIdByName(string sDeviceName); // Export UTgPlayerController::execGetDeviceIdByName(FFrame&, void* const) + +native function ClientLoadDevices(TgSeqAct_ClientLoadDevices Action); // Export UTgPlayerController::execClientLoadDevices(FFrame&, void* const) + +native function DumpClassInfoToFile(string sClassName); // Export UTgPlayerController::execDumpClassInfoToFile(FFrame&, void* const) + +native function SendGameOverEvent(TgObject.GAME_WIN_STATE gameWinState, bool bPlayerIsAttacker); // Export UTgPlayerController::execSendGameOverEvent(FFrame&, void* const) + +native function TgPawn GetPlayerControlPawn(); // Export UTgPlayerController::execGetPlayerControlPawn(FFrame&, void* const) + +native function ConvertTimeDisplay(int nMinutes, out string sDisplay); // Export UTgPlayerController::execConvertTimeDisplay(FFrame&, void* const) + +native simulated function bool CheckMaxEffectDistance(PlayerController P, Vector SpawnLocation, optional float CullDistance); // Export UTgPlayerController::execCheckMaxEffectDistance(FFrame&, void* const) + +native simulated function BlockVGS(bool bBlock); // Export UTgPlayerController::execBlockVGS(FFrame&, void* const) + +native exec function OutputRelevantActors(); // Export UTgPlayerController::execOutputRelevantActors(FFrame&, void* const) + +native function DoClientSidePerfTracking(int nLength); // Export UTgPlayerController::execDoClientSidePerfTracking(FFrame&, void* const) + +native exec function ToggleTick(string ClassName, bool bDisable); // Export UTgPlayerController::execToggleTick(FFrame&, void* const) + +native exec function SetPawnTickState(int nState); // Export UTgPlayerController::execSetPawnTickState(FFrame&, void* const) + +native exec function TgPerfTrack(bool bStart); // Export UTgPlayerController::execTgPerfTrack(FFrame&, void* const) + +native function DumpPerfTrackData(); // Export UTgPlayerController::execDumpPerfTrackData(FFrame&, void* const) + +native simulated function SetSoundMode(Name InSoundModeName); // Export UTgPlayerController::execSetSoundMode(FFrame&, void* const) + +native exec function DebugGetLangMsg(int nMsgId); // Export UTgPlayerController::execDebugGetLangMsg(FFrame&, void* const) + +native simulated function HandleSimulatedProjectile(); // Export UTgPlayerController::execHandleSimulatedProjectile(FFrame&, void* const) + +native simulated function SendUIXpChange(); // Export UTgPlayerController::execSendUIXpChange(FFrame&, void* const) + +native simulated function SendUICurrencyChange(); // Export UTgPlayerController::execSendUICurrencyChange(FFrame&, void* const) + +native function GetDamageAngle(Rotator HitDir, out float PitchDegrees, out float YawDegrees); // Export UTgPlayerController::execGetDamageAngle(FFrame&, void* const) + +native function AutoPurchase(); // Export UTgPlayerController::execAutoPurchase(FFrame&, void* const) + +native function AutoSkillUp(); // Export UTgPlayerController::execAutoSkillUp(FFrame&, void* const) + +native function ToggleZoom(); // Export UTgPlayerController::execToggleZoom(FFrame&, void* const) + +native function SetAutoPurchaseFlag(bool bOn, optional bool bForce=false); // Export UTgPlayerController::execSetAutoPurchaseFlag(FFrame&, void* const) + +native function SetAutoSkillUpFlag(bool bOn, optional bool bForce=false); // Export UTgPlayerController::execSetAutoSkillUpFlag(FFrame&, void* const) + +native function SetToggleZoomFlag(bool bOn, optional bool bForce=false); // Export UTgPlayerController::execSetToggleZoomFlag(FFrame&, void* const) + +exec function TgPlayerController.EGiveGoldResult GiveGoldToFriendlyPlayer(int PlayerID, int GoldCount) { } + +native reliable server function TgPlayerController.EGiveGoldResult ServerTransferGoldBetweenFriendlyPlayers(int ReceivingPlayerID, int GoldCount); // Export UTgPlayerController::execServerTransferGoldBetweenFriendlyPlayers(FFrame&, void* const) + +native function int GetPerkPointsAvailable(); // Export UTgPlayerController::execGetPerkPointsAvailable(FFrame&, void* const) + +native function int GetPerkPointsSpent(); // Export UTgPlayerController::execGetPerkPointsSpent(FFrame&, void* const) + +native function bool CanAllocateDevicePoint(int nDeviceId, TgDevice aDevice, optional bool ignorePause=false); // Export UTgPlayerController::execCanAllocateDevicePoint(FFrame&, void* const) + +native function int GetDevicePointsAvailable(); // Export UTgPlayerController::execGetDevicePointsAvailable(FFrame&, void* const) + +native function int GetDevicePointsSpent(); // Export UTgPlayerController::execGetDevicePointsSpent(FFrame&, void* const) + +native function bool HaveBasicAbilitiesBeenActivated(); // Export UTgPlayerController::execHaveBasicAbilitiesBeenActivated(FFrame&, void* const) + +native reliable server function ServerAllocateDevicePoint(int nDeviceId); // Export UTgPlayerController::execServerAllocateDevicePoint(FFrame&, void* const) + +native function bool ClientUpdateUIDeviceState(); // Export UTgPlayerController::execClientUpdateUIDeviceState(FFrame&, void* const) + +native function ClientUpdateTutorialBlockingActions(); // Export UTgPlayerController::execClientUpdateTutorialBlockingActions(FFrame&, void* const) + +native function int GetTaskForceNumber(); // Export UTgPlayerController::execGetTaskForceNumber(FFrame&, void* const) + +native function bool IsFiringUlt(); // Export UTgPlayerController::execIsFiringUlt(FFrame&, void* const) + +native reliable server function ServerPurchaseItem(int nLootTableId, int nLootTableItemId, int nItemCount); // Export UTgPlayerController::execServerPurchaseItem(FFrame&, void* const) + +native reliable server function ServerUpgradeItem(int nLootTableId, int nLootTableItemId, int nUpgradeInvId); // Export UTgPlayerController::execServerUpgradeItem(FFrame&, void* const) + +native reliable server function ServerSellItem(int nInventoryId); // Export UTgPlayerController::execServerSellItem(FFrame&, void* const) + +native reliable server function ServerPlayVGS(int nVgsId, optional int usedVPSetting=0); // Export UTgPlayerController::execServerPlayVGS(FFrame&, void* const) + +native reliable server function ServerPlayPing(float X, float Y, float Z, TgObject.PING_TYPE pingType); // Export UTgPlayerController::execServerPlayPing(FFrame&, void* const) + +native reliable client simulated function FadeHud(); // Export UTgPlayerController::execFadeHud(FFrame&, void* const) + +native reliable client simulated function ClientLogoff(bool bForced); // Export UTgPlayerController::execClientLogoff(FFrame&, void* const) + +native function LogTutorialAction(int nPlayerAction, int nEventData); // Export UTgPlayerController::execLogTutorialAction(FFrame&, void* const) + +native function TriggerTutorialEvent(int nTutEvent, int nInfoData); // Export UTgPlayerController::execTriggerTutorialEvent(FFrame&, void* const) + +native function HandleForcedClientTutorialAction(int nAction, int nActionElement); // Export UTgPlayerController::execHandleForcedClientTutorialAction(FFrame&, void* const) + +native function HandleTutorialHighlighter(bool bShow, int highlightedElement); // Export UTgPlayerController::execHandleTutorialHighlighter(FFrame&, void* const) + +native function bool HandleTutorialActionOnServer(TgSeqAct_ForceClientTutorialAction inAction); // Export UTgPlayerController::execHandleTutorialActionOnServer(FFrame&, void* const) + +native function bool IsTutorialBlockingAction(TgObject.eTutorialForceableElements Action); // Export UTgPlayerController::execIsTutorialBlockingAction(FFrame&, void* const) + +native function OnSceneLoadChange(string SceneName, bool bLoaded); // Export UTgPlayerController::execOnSceneLoadChange(FFrame&, void* const) + +native function UpdateTargetingList(array ImpactList, optional bool bLightUp=true); // Export UTgPlayerController::execUpdateTargetingList(FFrame&, void* const) + +native function ClearTargetingList(); // Export UTgPlayerController::execClearTargetingList(FFrame&, void* const) + +native function ToggleMiniMapPing(bool bStart); // Export UTgPlayerController::execToggleMiniMapPing(FFrame&, void* const) + +native function UpdatePlayerVitalsUI(); // Export UTgPlayerController::execUpdatePlayerVitalsUI(FFrame&, void* const) + +native function UpdateTransitionUI(); // Export UTgPlayerController::execUpdateTransitionUI(FFrame&, void* const) + +native function SetHUDOverlay(TgPlayerController.EHUDOverlay eOverlay); // Export UTgPlayerController::execSetHUDOverlay(FFrame&, void* const) + +native function SetSniperChargedMeter(float fPercent); // Export UTgPlayerController::execSetSniperChargedMeter(FFrame&, void* const) + +native function SetBinocularSettings(BinocularSettings BinocSettings); // Export UTgPlayerController::execSetBinocularSettings(FFrame&, void* const) + +native function ShowRespawnBuyback(int nCost); // Export UTgPlayerController::execShowRespawnBuyback(FFrame&, void* const) + +native function SendCombatMessage(CombatMessageInfo msgInfo); // Export UTgPlayerController::execSendCombatMessage(FFrame&, void* const) + +native event KickWarning(); // Export UTgPlayerController::execKickWarning(FFrame&, void* const) + +native exec function SpectateGM(string sPlayerName, optional string sSpectatePassword); // Export UTgPlayerController::execSpectateGM(FFrame&, void* const) + +native exec function Spectate(string sPlayerName, optional string sSpectatePassword); // Export UTgPlayerController::execSpectate(FFrame&, void* const) + +native exec function SpectateStop(); // Export UTgPlayerController::execSpectateStop(FFrame&, void* const) + +native function bool IsLocalPlayerController(); // Export UTgPlayerController::execIsLocalPlayerController(FFrame&, void* const) + +native exec function ResetKeysToDefault(bool bSpectator); // Export UTgPlayerController::execResetKeysToDefault(FFrame&, void* const) + +native function UpdateRuntimeInput(bool bSpectator); // Export UTgPlayerController::execUpdateRuntimeInput(FFrame&, void* const) + +native function UpdateKeybindsUI(); // Export UTgPlayerController::execUpdateKeybindsUI(FFrame&, void* const) + +native function StartFX(); // Export UTgPlayerController::execStartFX(FFrame&, void* const) + +native function PlayEventFX(); // Export UTgPlayerController::execPlayEventFX(FFrame&, void* const) + +native function CheckHealthFX(float fCurrent, float fMaximum); // Export UTgPlayerController::execCheckHealthFX(FFrame&, void* const) + +native function ClientAddCheats(); // Export UTgPlayerController::execClientAddCheats(FFrame&, void* const) + +native function SendContextNotifyVGS(int ContextId); // Export UTgPlayerController::execSendContextNotifyVGS(FFrame&, void* const) + +native unreliable server function ServerPlayContextNotify(int ContextId, Vector NotifyLocation); // Export UTgPlayerController::execServerPlayContextNotify(FFrame&, void* const) + +native reliable server function ServerGiveCard(int nDeviceId); // Export UTgPlayerController::execServerGiveCard(FFrame&, void* const) + +native reliable server function ServerRequestGraphData(); // Export UTgPlayerController::execServerRequestGraphData(FFrame&, void* const) + +native function AchievementPossess(Pawn aPawn); // Export UTgPlayerController::execAchievementPossess(FFrame&, void* const) + +native function AchievementUnPossess(); // Export UTgPlayerController::execAchievementUnPossess(FFrame&, void* const) + +native function AchievementAchievedById(int nActivityId); // Export UTgPlayerController::execAchievementAchievedById(FFrame&, void* const) + +native function AchievementModifiedHealthProp(int nHealth, int nMaxHealth); // Export UTgPlayerController::execAchievementModifiedHealthProp(FFrame&, void* const) + +native function SetSelectedTalent(int nBotId, int nDeviceIndex); // Export UTgPlayerController::execSetSelectedTalent(FFrame&, void* const) + +native function SetSelectedDeck(int nBotId, int nIndex); // Export UTgPlayerController::execSetSelectedDeck(FFrame&, void* const) + +native function SetRewardValues(int XP, int nCredits, Actor Source, optional TgObject.ERewardValueType RewardType=0, optional bool bFlankKill=false); // Export UTgPlayerController::execSetRewardValues(FFrame&, void* const) + +native function bool OnRequestCard(int nDeviceId, int nRank); // Export UTgPlayerController::execOnRequestCard(FFrame&, void* const) + +native function OnRequestTalent(int nDeviceId); // Export UTgPlayerController::execOnRequestTalent(FFrame&, void* const) + +native function OnRequestDeck(int nDeviceId); // Export UTgPlayerController::execOnRequestDeck(FFrame&, void* const) + +native function UIFade(bool bFade, optional float fTime=0.2500000, optional float fDelay=0.0000000, optional float FailSafeTime=5.0000000); // Export UTgPlayerController::execUIFade(FFrame&, void* const) + +native function UIFadeEndOfRound(bool bFade, optional float fTime=0.2500000, optional float fDelay=0.0000000, optional float FailSafeTime=5.0000000); // Export UTgPlayerController::execUIFadeEndOfRound(FFrame&, void* const) + +native function OnScoredPoints(int nValue, TgObject.ERewardValueType eType, int nPlayerId); // Export UTgPlayerController::execOnScoredPoints(FFrame&, void* const) + +native function Actor GetBestKillCamTarget(); // Export UTgPlayerController::execGetBestKillCamTarget(FFrame&, void* const) + +native function bool IsConfused(); // Export UTgPlayerController::execIsConfused(FFrame&, void* const) + +native function bool ShouldHideUIWorldOverlay(); // Export UTgPlayerController::execShouldHideUIWorldOverlay(FFrame&, void* const) + +native function bool Wants3P(); // Export UTgPlayerController::execWants3P(FFrame&, void* const) + +native function RefreshLastActiveTime(); // Export UTgPlayerController::execRefreshLastActiveTime(FFrame&, void* const) + +native function ShowAutoPurchaseTip(); // Export UTgPlayerController::execShowAutoPurchaseTip(FFrame&, void* const) + +native function bool IsTopMenu(string sName); // Export UTgPlayerController::execIsTopMenu(FFrame&, void* const) + +native function CloseHUDMenus(); // Export UTgPlayerController::execCloseHUDMenus(FFrame&, void* const) + +native function SetAkWorldTimeDilation(); // Export UTgPlayerController::execSetAkWorldTimeDilation(FFrame&, void* const) + +native function UpdateMinimap(TgMapBoundsVolume pMapBoundsVolume); // Export UTgPlayerController::execUpdateMinimap(FFrame&, void* const) + +native function bool CanPlayKillCam(bool bPlayOfGame); // Export UTgPlayerController::execCanPlayKillCam(FFrame&, void* const) + +native exec function NextScoreboardDisplayType(); // Export UTgPlayerController::execNextScoreboardDisplayType(FFrame&, void* const) + +native function SetReticleVisibility(bool bShowReticle, bool bShowReticleAccessories); // Export UTgPlayerController::execSetReticleVisibility(FFrame&, void* const) + +native function NotifyUpdatedInhandAmmoCount(int nAmmo, TgDevice pDevice, int nDeviceId); // Export UTgPlayerController::execNotifyUpdatedInhandAmmoCount(FFrame&, void* const) + +native function MaterialInstanceConstant GetMICResource(int nResourceId); // Export UTgPlayerController::execGetMICResource(FFrame&, void* const) + +native function TestCrashReport(); // Export UTgPlayerController::execTestCrashReport(FFrame&, void* const) + +native function SetNWCondition(int nPktLoss, int nPktLag); // Export UTgPlayerController::execSetNWCondition(FFrame&, void* const) + +native function float StartReviveTimer(optional bool bDoNotUpdateStatsTracker); // Export UTgPlayerController::execStartReviveTimer(FFrame&, void* const) + +native function bool OnRespawnRuleChanged(); // Export UTgPlayerController::execOnRespawnRuleChanged(FFrame&, void* const) + +native function SetLevel(int nLevel); // Export UTgPlayerController::execSetLevel(FFrame&, void* const) + +native function SetPlayerProfile(int nProfileId, int nSkinId, int nWeaponSkinId, int nHeadSkinId, optional int nVoicePackId=0); // Export UTgPlayerController::execSetPlayerProfile(FFrame&, void* const) + +native function SetPlayerWard(int nWardSkinId); // Export UTgPlayerController::execSetPlayerWard(FFrame&, void* const) + +native function ReloadKeybindsForPawn(); // Export UTgPlayerController::execReloadKeybindsForPawn(FFrame&, void* const) + +native simulated function SetAudioFriendlyAndLocal(); // Export UTgPlayerController::execSetAudioFriendlyAndLocal(FFrame&, void* const) + +native unreliable server function ServerMove(float TimeStamp, vector InAccel, vector ClientLoc, byte MoveFlags, byte ClientRoll, int View); // Export UTgPlayerController::execServerMove(FFrame&, void* const) + +function CallServerMove(SavedMove NewMove, vector ClientLoc, byte ClientRoll, int View, SavedMove OldMove) { } + +exec event AllocateDevicePoint(int nDeviceId) { } + +function Logoff(bool bForced) { } + +unreliable client simulated function ClientPlaySound(SoundCue ASound) { } + +unreliable client simulated function ClientPlaySoundBase(AkBaseSoundObject ASound) { } + +reliable client simulated event ClientShowRespawnBuyback(int nCost) { } + +event RequestShowRespawnBuyback() { } + +function ShowRespawnTimerExpired() { } + +exec function SetTaskforceLead(string fsName) { } + +exec function ShowBinoculars(bool bShow) { } + +function SetCanChangeLoadout(bool bCanChangeLoadout) { } + +function SetCanPurchaseFlag(bool bCanPurchase) { } + +exec event SetAutoPurchase(bool bAutoPurchase) { } + +reliable server function ServerSetAutoPurchase(bool bAutoPurchase) { } + +exec event SetAutoSkillUp(bool bAutoSkill) { } + +reliable server function ServerSetAutoSkillUp(bool bAutoSkill) { } + +exec event SetToggleZoom(bool bToggleZoom) { } + +reliable server function ServerSetToggleZoom(bool bToggleZoom) { } + +native function AddKillAlert(string KilledName, string KillerName, bool KillerWasPlayer); // Export UTgPlayerController::execAddKillAlert(FFrame&, void* const) + +native function AddAssistAlert(string KilledName, string KillerName); // Export UTgPlayerController::execAddAssistAlert(FFrame&, void* const) + +native function AddAutoKickAlert(); // Export UTgPlayerController::execAddAutoKickAlert(FFrame&, void* const) + +exec function WhereAmI() { } + +exec function TestScreenCapturePostProcess() { } + +function RemoveScreenCapturePostProcess() { } + +simulated exec event CauseClientEvent(optional name EventName) { } + +exec function CCE(optional name EventName) { } + +exec function OnLeftMousePressed() { } + +exec function OnLeftMouseReleased() { } + +exec function OnRightMousePressed() { } + +exec function OnRightMouseReleased() { } + +simulated function bool PingMap(Vector WorldLocation, const out array worldActorRepInfos, TgObject.PING_TYPE Type) { } + +reliable server function ServerSetViewTarget(Actor me) { } + +function SetCorrectViewTarget() { } + +exec function StartWatchOthers(optional TgPlayerController.EWatchOtherPlayersMode Mode=1) { } + +exec function StopWatchOthers() { } + +reliable server function ServerWatchOtherPlayer(TgPlayerController.EWatchOtherPlayersMode Mode) { } + +unreliable server function ServerViewSelf(optional ViewTargetTransitionParams TransitionParams) { } + +exec function ToggleRove() { } + +reliable server function ServerRove(bool bOn) { } + +reliable client simulated event ClientSetRotationAndDesired(Rotator NewRotation, optional bool bResetCamera) { } + +unreliable client simulated function ClientPingMap(Vector WorldLoc, TgObject.PING_TYPE pingType) { } + +native function AddAlertScript(TgObject.AlertPriority Priority, TgObject.AlertType Type, float fDuration, int nMsgId, optional bool bBlockDuplicates=false); // Export UTgPlayerController::execAddAlertScript(FFrame&, void* const) + +native function RemoveAlertScript(int nMsgId); // Export UTgPlayerController::execRemoveAlertScript(FFrame&, void* const) + +exec function SelfAlert(int nPriority, float fDuration, int nMsgId) { } + +exec function ServerProfileScript(string Command) { } + +reliable server function ServerProfiling(string Command) { } + +exec event PressJump(bool bOn) { } + +exec event ClientPurchaseItem(int nLootTableId, int nLootTableItemId, int nItemCount) { } + +exec event ClientSellItem(int nInventoryId) { } + +simulated event Destroyed() { } + +function InitPlayerReplicationInfo() { } + +function CleanupPRI() { } + +event CopyPropertiesTo(Controller C) { } + +event PreRender(Canvas Canvas) { } + +function SetControlModuleOnPossess() { } + +function AcknowledgePossession(Pawn P) { } + +reliable server function ServerAcknowledgePossession(Pawn P) { } + +event Possess(Pawn aPawn, bool bVehicleTransition) { } + +event UnPossess() { } + +function NotifyChangedWeapon(Weapon PreviousWeapon, Weapon NewWeapon) { } + +function NotifyTakeHit(Controller InstigatedBy, vector HitLocation, int Damage, class damageType, vector Momentum) { } + +unreliable client simulated function ClientPlayTakeHit(Rotator HitDir, int Damage, Class DamageType) { } + +function NotifyBodyUnderAttack(byte Damage) { } + +reliable client simulated function ClientNotifyBodyUnderAttack(byte Damage) { } + +simulated function NotifyInBombRange() { } + +simulated function CancelInBombRange() { } + +event RestartPlayerOnTransfer() { } + +reliable server function ServerLadderLetGo() { } + +function LadderLetGo() { } + +event Revive() { } + +function LiveRespawn(bool bResetHealth, bool bResetDevices) { } + +function ReviveTimer() { } + +function ViewPlayersTimer() { } + +simulated function FadeForViewPlayersTimer() { } + +event DisplayKillingBlowGameTip(CombatMessageInfo Info) { } + +simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) { } + +function OnToggleCinematicMode(SeqAct_ToggleCinematicMode Action) { } + +function SetCinematicMode(bool bInCinematicMode, bool bHidePlayer, bool bAffectsHUD, bool bAffectsMovement, bool bAffectsTurning, bool bAffectsButtons) { } + +reliable client simulated function ClientSetCinematicMode(bool bInCinematicMode, bool bAffectsMovement, bool bAffectsTurning, bool bAffectsHUD) { } + +function Reset() { } + +reliable client simulated event ClientReset() { } + +exec function SetRadius(float NewRadius) { } + +function bool UsingFirstPersonCamera() { } + +simulated event GetAimingViewPoint(out Vector POVLocation, out Rotator POVRotation) { } + +simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_rotation) { } + +reliable client simulated function ClientSetHUD(class newHUDType) { } + +function AddPostRenderActors() { } + +function bool AllowVoiceMessage(name MessageType) { } + +singular function EnterStartState() { } + +reliable client simulated function ClientEnterStartState() { } + +function int BlendRot(float DeltaTime, int BlendC, int NewC) { } + +event float GetFOVAngle() { } + +unreliable server function ServerViewNextPlayer() { } + +unreliable server function ServerViewPrevPlayer() { } + +function HandleViewTargetOnAdjustPosition() { } + +function ServerViewAPlayer(int Dir, optional bool bFriendlyOnly) { } + +exec function ViewPlayerByName(string PlayerName) { } + +exec event DoSetViewTarget(Actor NewTarget) { } + +reliable server function ServerViewPlayerByName(string PlayerName) { } + +function TgCameraModule GetCurrentCameraModule() { } + +exec function zoomIn() { } + +exec function ZoomOut() { } + +unreliable server function ServerSetZoomFactor(float fZoom) { } + +exec function ShowPathToNearestPOI() { } + +simulated function OnNavIndicator(TgSeqAct_NavIndicator Action) { } + +simulated function OnPingMinimap(TgSeqAct_PingMinimap Action) { } + +simulated event TutorialMessage(int msgId, bool bTip) { } + +reliable client simulated function ClientShowPathTo(Actor destActor) { } + +simulated event ShowPathTo(Actor destActor) { } + +native function AddNavFailedAlert(optional bool bAlreadyThere=false); // Export UTgPlayerController::execAddNavFailedAlert(FFrame&, void* const) + +exec function GoSpectate() { } + +function FindGoodView() { } + +event SendClientSetGameWinState(TgObject.GAME_WIN_STATE gameWinState) { } + +reliable client simulated function ClientSetGameWinState(TgObject.GAME_WIN_STATE gameWinState) { } + +simulated function PrepareIntro() { } + +simulated function PlayIntro() { } + +reliable client simulated function ClientPlayIntro() { } + +reliable client simulated event ClientFinishIntro() { } + +function FinishIntro() { } + +event ResetPlayer() { } + +function SetupIntro() { } + +function EndIntro() { } + +function GameHasEnded(optional Actor EndGameFocus, optional bool bIsWinner) { } + +reliable client simulated function ClientGameEnded(Actor EndGameFocus, bool bIsWinner) { } + +function float GetOutroTime() { } + +exec function Talk() { } + +exec function TeamTalk() { } + +function SetPlayerTeam(TeamInfo NewTeam) { } + +native function bool IsForceFeedbackEnabled(); // Export UTgPlayerController::execIsForceFeedbackEnabled(FFrame&, void* const) + +event InitInputSystem() { } + +event PlayerTick(float DeltaTime) { } + +function GoAFKTimer() { } + +unreliable server function ServerToggleAFK(bool bEnabled) { } + +function bool CanAFK(TgPawn ThePawn) { } + +exec function DisplayHiddenActors(optional float Time) { } + +function DisplayHiddenActorsTimer() { } + +reliable client simulated function ClientSetOnlineStatus() { } + +simulated event Rotator ApplyAimVectorModification(TgDevice Device, Rotator InRotation) { } + +simulated function Rotator GetAdjustedAimFor(Weapon W, vector StartFireLoc) { } + +function bool IsTargetInFrontOfPawn(Vector TargetLocation) { } + +function bool IsTargetInPawnAim(Vector TargetLocation, float MaxAimFeetOffset) { } + +function bool IsTargetDied(Actor TargetActor) { } + +function bool IsValidTarget(Actor HoverActor) { } + +function TgDeviceFire GetEqPointDevFire() { } + +function TgDevice GetEqPointDevice(TgObject.TG_EQUIP_POINT eEqPoint) { } + +simulated function TgObject.TG_EQUIP_POINT GetCurrentEqPoint() { } + +simulated function int GetCurrentDeviceType() { } + +reliable server function ServerToggleSceneCaptureState() { } + +simulated function ShowChampionOverviewTip() { } + +simulated event PostBeginPlay() { } + +simulated function SwitchControl(Class ControlModuleClass) { } + +exec function SwitchCamera(string sCamera) { } + +function int PushCameraPosture(TgPlayerController.TG_CAMERAPOSTURE eCamPosture) { } + +function bool PopCameraPosture(int nStackId) { } + +function OnCameraPostureChange() { } + +simulated event ReceivedPlayer() { } + +simulated event OnSettingsChanged(TgClientSettings Settings, optional int settingsType) { } + +exec function EnableColorBlindEffect(optional bool bEnable=true, optional int Type=1, optional bool bSimulate=false) { } + +simulated function UpdateAssistModeSubLevel() { } + +event NotifyJumpApex() { } + +function CheckJumpOrDuck() { } + +exec function SetReadyToPlay() { } + +reliable server function ServerSetReadyToPlay() { } + +reliable client simulated function ClientSetReadyState(bool bReadyToPlay) { } + +function PawnDied(Pawn P) { } + +simulated function OnCanPurchaseItemChange() { } + +simulated event UpdateFirstValidProjIdx() { } + +simulated event ReplicatedEvent(name VarName) { } + +event name GetStateNameEx() { } + +function ViewObjectiveCamerasTimer() { } + +reliable client simulated event UpdateReviveTimeRemaining(float fTimeRemaining) { } + +simulated function bool CanUseNow() { } + +unreliable server function ServerUse() { } + +reliable client simulated function ClientUse() { } + +function bool ServerPerformedUseAction() { } + +function bool ClientPerformedUseAction() { } + +function OnRestartPlayers(TgSeqAct_RestartPlayers inAction) { } + +function bool ShouldStunChangePhysics() { } + +reliable client simulated function ClientResetStunnedBehavior(bool bStunController, optional Controller.EStunType eType) { } + +simulated function Stun(bool bStunController, optional Controller.EStunType eType=0) { } + +function StunTypeChanged() { } + +exec function GotoFly() { } + +reliable server function ServerGotoFly() { } + +exec function KillPets() { } + +reliable server function ServerKillPets() { } + +reliable client simulated function ClientSetValue(string strObject, string strVariable, string StrValue) { } + +reliable server function ServerSetValue(string strObject, string strVariable, string StrValue) { } + +reliable client simulated function ClientGetValue(string strObject, string strVariable) { } + +reliable server function ServerGetValue(string strObject, string strVariable) { } + +exec function SetClientValue(string strObject, string strVariable, string StrValue) { } + +exec function SetServerValue(string strObject, string strVariable, string StrValue) { } + +exec function GetClientValue(string strObject, string strVariable) { } + +exec function GetServerValue(string strObject, string strVariable) { } + +exec function StorePlayOfGame(optional float Begin=-5.0000000, optional float End=2.0000000) { } + +reliable server function ServerStorePlayOfGame(float Begin, float End) { } + +native function SavePlayOfGame(float Begin, float End); // Export UTgPlayerController::execSavePlayOfGame(FFrame&, void* const) + +exec function StartTimelapse(optional float Begin=-5.0000000, optional float End=2.0000000, optional bool bPlayOfGame=false, optional bool bForced=true) { } + +reliable server function ServerStartTimelapse(float Begin, float End, bool bPlayOfGame, optional bool bForced=false) { } + +native function StartTimelapsePlayback(float BeginTimeOffset, float EndTimeOffset, optional bool bPlayOfGame); // Export UTgPlayerController::execStartTimelapsePlayback(FFrame&, void* const) + +function StartPlayOfTheGamePlaybackDelayed() { } + +event StartPlayOfGamePlayback() { } + +native reliable client simulated function ClientDebugPlayPotg(); // Export UTgPlayerController::execClientDebugPlayPotg(FFrame&, void* const) + +event ControllerPreTimeLapse() { } + +event ControllerPostTimeLapse() { } + +native function OnPreTimeLapse(); // Export UTgPlayerController::execOnPreTimeLapse(FFrame&, void* const) + +native function OnPostTimeLapse(); // Export UTgPlayerController::execOnPostTimeLapse(FFrame&, void* const) + +simulated function DestroySimulatedProjectiles() { } + +event NotifyDirectorControl(bool bNowControlling, SeqAct_Interp CurrentMatinee) { } + +simulated event ClientKillCurrentDirectorMatinee() { } + +reliable server function ServerKillCurrentDirectorMatinee() { } + +native simulated function KillCurrentDirectorMatinee(); // Export UTgPlayerController::execKillCurrentDirectorMatinee(FFrame&, void* const) + +function SetKillCamTarget(TgPawn KillCamTarget) { } + +reliable client simulated function ClientSetKillCamTarget(int KillCamTargetId, int BackupKillCamTargetId) { } + +function ClearKillCamTarget() { } + +function ForceKillCamViewTargetChange(optional Actor ForceTarget) { } + +reliable server function ServerSkipKillCam() { } + +native function EndTimelapsePlayback(); // Export UTgPlayerController::execEndTimelapsePlayback(FFrame&, void* const) + +exec event SkipKillCam() { } + +exec function ViewNextTeammate() { } + +exec function ViewPreviousTeammate() { } + +reliable server function ServerCycleTeammateView(bool bForward) { } + +function TgRepInfo_TaskForce GetTFRI() { } + +simulated function bool CanPlayerMove(Pawn P) { } + +exec function TestCrash() { } + +exec function DumpClassInfo(string sClassName) { } + +simulated function SpeakTTS(coerce string S, optional PlayerReplicationInfo PRI) { } + +simulated function bool CanCommunicate() { } + +reliable server event ServerUpdateStats() { } + +event CheatFly(bool bOn) { } + +reliable client simulated function ClientCheatFly(bool bOn) { } + +exec function Camera(name NewMode) { } + +reliable server function ServerCamera(name NewMode) { } + +reliable client simulated function ClientSetCameraMode(name NewCamMode) { } + +simulated function OnClientLoadDevices(TgSeqAct_ClientLoadDevices Action) { } + +exec function DoFade(bool bInToGameplay, float Time) { } + +exec function Cloth(bool bEnabled) { } + +function OnTgCameraShake(TgSeqAct_TgCameraShake inAction) { } + +exec function TestTgCameraShake(TgCameraShake CameraShake) { } + +event PlayTgCameraShake(TgCameraShake CameraShake, Vector Epicenter, Actor ShakeInstigator) { } + +event StopTgCameraShake(TgCameraShake CameraShake) { } + +exec function TestShake(int Index) { } + +function OnTutorialPlayerAction(TgSeqAct_LogTutorialAction inAction) { } + +reliable server function ServerNotifyTutorialUIEvent(int Evt, int evtData) { } + +exec event ClientNotifyTutorialUIEvent(int Evt, int evtData) { } + +function OnForceClientTutorialAction(TgSeqAct_ForceClientTutorialAction inAction) { } + +function OnTutorialHighlighter(TgSeqAct_TutorialHighlighter inAction) { } + +reliable client simulated function ClientForceTutorialAction(int Action, int ActionElement) { } + +reliable client simulated function ClientTutorialHighlighter(bool bShow, int highlightedElement) { } + +native function GivePlayerFullVitals(); // Export UTgPlayerController::execGivePlayerFullVitals(FFrame&, void* const) + +function OnGiveFullVitals(TgSeqAct_GiveFullVitals inAction) { } + +exec function AllocateAbilitySkillPoint(TgObject.TG_EQUIP_POINT eqp) { } + +event DeviceOnStartBuildup(TgDevice Device) { } + +event DeviceOnStopBuildup(TgDevice Device, bool WasInterrupted) { } + +event DeviceOnStartFire(TgDevice Device) { } + +event DeviceOnStopFire(TgDevice Device, bool WasInterrupted) { } + +exec function OnRespawnBeaconButtonPressed() { } + +exec function OnRespawnBeaconButtonReleased() { } + +exec function OnFlourish() { } + +exec function OnPerCharacterAltPressed() { } + +native exec function bool OnOffhandSlotPressed(TgObject.TG_EQUIP_POINT eqp); // Export UTgPlayerController::execOnOffhandSlotPressed(FFrame&, void* const) + +native exec function bool OnOffhandSlotReleased(TgObject.TG_EQUIP_POINT eqp); // Export UTgPlayerController::execOnOffhandSlotReleased(FFrame&, void* const) + +exec event bool OnDefaultCastOffhandSlotPressed(TgObject.TG_EQUIP_POINT eqp) { } + +exec event bool OnDefaultCastOffhandSlotReleased(TgObject.TG_EQUIP_POINT eqp) { } + +exec event bool OnQuickCastOffhandSlotPressed(TgObject.TG_EQUIP_POINT eqp) { } + +exec event bool OnQuickCastOffhandSlotReleased(TgObject.TG_EQUIP_POINT eqp) { } + +exec event bool OnInstantCastOffhandSlotPressed(TgObject.TG_EQUIP_POINT eqp) { } + +exec event ClientPlayVGS(int nId, optional int usedVPSetting=0) { } + +exec event ClientPlayPing(float X, float Y, float Z, TgObject.PING_TYPE pingType) { } + +exec event ClientSurrender(optional bool bSurrender=true) { } + +reliable server function ServerSurrender(bool bSurrender) { } + +simulated event UpdateLockedTarget(Actor LockedActor) { } + +exec function RequestScoreBoard() { } + +exec function SuppressHelpText() { } + +exec function ResetGameTips() { } + +reliable server function ServerRequestScoreBoard() { } + +reliable server function ServerToggleAIDebug(Actor Target) { } + +native function bool AllowRagdoll(); // Export UTgPlayerController::execAllowRagdoll(FFrame&, void* const) + +native function AllowRagdollUpdated(); // Export UTgPlayerController::execAllowRagdollUpdated(FFrame&, void* const) + +native exec function SetAllowParticleSystems(bool Value); // Export UTgPlayerController::execSetAllowParticleSystems(FFrame&, void* const) + +native exec function SetAllowAnimationFrameRateLOD(bool Value, optional float lLODDistanceFactor, optional int lLODFrameRate); // Export UTgPlayerController::execSetAllowAnimationFrameRateLOD(FFrame&, void* const) + +reliable client simulated function PlayTutorialAnnouncement(int SoundIndex, SoundCue OptionalCue, optional bool bPlayImmediately=false, optional bool bFlushOthers=false) { } + +exec function DropFlag() { } + +reliable server function ServerDropFlag() { } + +reliable client simulated event ArenaCrowdEvent(byte EventType) { } + +simulated function OnScoreChange(int nTeam) { } + +exec function IgnoreOverlays(bool bIgnore) { } + +reliable client simulated function InsertAdditionalPostProcess(PostProcessChain PP, optional bool bAlterMeshDepth, optional TgPawn OtherDepthTarget) { } + +reliable client simulated function RemoveAdditionalPostProcess(PostProcessChain PP, optional TgPawn OtherDepthTarget) { } + +event TgPlayerInput GetPlayerInputClass() { } + +event TgSpectatorInput GetSpectatorInputClass() { } + +exec function UnbindCommandPC(bool bSpectator, int nAlternate, string Command) { } + +exec function UnbindCommandAllPC(bool bSpectator, string Command) { } + +exec function SetBindPC(bool bSpectator, string ExtendedBinding, string Command) { } + +exec event SetCommandBindPC(bool bSpectator, int nAlternate, string ExtendedBinding, string Command) { } + +event bool IsPawnWithin(Pawn aPawn, float Distance) { } + +exec function ToggleDetailedView() { } + +reliable client simulated event PlayEpicFatality(byte TaskForceNumber, int MeshAsmId) { } + +event EnableContextNotify(int ContextId) { } + +event ReceivedContextNotify(int ContextId, Vector NotifyLocation, bool bEnemy) { } + +reliable client simulated event ClientPlayRoadkillNotify() { } + +exec function DoJump() { } + +exec function HoldJump() { } + +exec function OnJumpRelease() { } + +exec function OnJumpHeldAltPressed() { } + +exec function ToggleSprint() { } + +simulated event SetBehindView(bool bNewBehindView) { } + +function HandleWalking() { } + +simulated exec function ReloadWeapon() { } + +simulated exec function SSF(optional bool bSprint=true, optional bool bMinimapTeamVisibility=false, optional float DamageMultiplier=1.0000000, optional bool bForce3P=false, optional bool bForce1P=false, optional bool bOutOfCombatSprint=false) { } + +simulated exec function SetServerFlags(optional bool bSprint=true, optional bool bMinimapTeamVisibility=false, optional float DamageMultiplier=1.0000000, optional bool bForce3P=false, optional bool bForce1P=false, optional bool bOutOfCombatSprint=false) { } + +reliable server function ServerSetServerFlags(bool bSprint, bool bMinimapTeamVisibility, float DamageMultiplier, bool bForce3P, bool bForce1P, bool bOutOfCombatSprint) { } + +exec function AutoMelee(bool bEnabled) { } + +reliable server function ServerAutoMelee(bool bEnabled) { } + +reliable server event ServerRequestCard(int nDeviceId, int nRank) { } + +reliable server event ServerRequestTalent(int nDeviceId) { } + +reliable client simulated event ClientChangedTalent(int nBotId, int nDeviceId) { } + +reliable server event ServerRequestDeck(int nIndex) { } + +reliable client simulated event ClientChangedDeck(int nBotId, int nDeckIndex) { } + +event OnDeckUpdatedOnServer(int nBotId, int nDeckIndex) { } + +event OnCardSelection(TgDevice pDevice) { } + +exec event FrontFacingCamera(bool bEnabled) { } + +exec function SetOutlines(bool bFriendly, bool bEnemy) { } + +exec function SetJumpZ(float NewJumpZ) { } + +reliable server function ServerSetJumpZ(float NewJumpZ) { } + +reliable client simulated function ClientUpdateRoundEndedTimer(float RoundEndTimeRemaining, float RoundEndTotalTime) { } + +reliable client simulated function ClientUpdateRoundSetupTimer(float SetupTimeRemaining) { } + +reliable client simulated function ClientOnRoundEnded() { } + +reliable client simulated function ClientOnRoundObjectivesCompleted() { } + +reliable client simulated function SetTimeDilation(float DesiredDilation, float SecondsToInterpolate) { } + +reliable client simulated function SetDesaturation(float DesiredDesaturation, float SecondsToInterpolate) { } + +reliable client simulated function ClientOnRoundSetupStarted(bool bForceOpenCardMenu) { } + +simulated function TorvaldCheck() { } + +simulated function OpenUpgradeMenuTimer() { } + +reliable client simulated function ClientPlayPointCapturedEffects(TgChaosCapturePoint CapturedPoint, bool bFriendlyCapture) { } + +unreliable client simulated function ClientPlayTakeoverSecondPhaseInstructions(bool bFriendlyCapture) { } + +function OnControllerChanged(int ControllerId, bool bIsConnected) { } + +native function OnLoginStatusChange(OnlineSubsystem.ELoginStatus NewStatus, UniqueNetId NewId); // Export UTgPlayerController::execOnLoginStatusChange(FFrame&, void* const) + +native function OnConnectionStatusChange(OnlineSubsystem.EOnlineServerConnectionStatus ConnectionStatus); // Export UTgPlayerController::execOnConnectionStatusChange(FFrame&, void* const) + +native function OnCurrentUserChanged(byte LocalUserNum, string CurrentUser, string LoggedInUser); // Export UTgPlayerController::execOnCurrentUserChanged(FFrame&, void* const) + +native function OnRemoteTalkerStatusChange(UniqueNetId RemoteNetId, bool bIsTalking); // Export UTgPlayerController::execOnRemoteTalkerStatusChange(FFrame&, void* const) + +native function ShowControllerDisconnectedWarning(); // Export UTgPlayerController::execShowControllerDisconnectedWarning(FFrame&, void* const) + +native function ShowCurrentUserChangeWarning(string CurrentUser, string LoggedInUser); // Export UTgPlayerController::execShowCurrentUserChangeWarning(FFrame&, void* const) + +native function ShowNoFriendsForPartyInviteWarning(); // Export UTgPlayerController::execShowNoFriendsForPartyInviteWarning(FFrame&, void* const) + +native function ShowUnableToReadFriendsListWarning(); // Export UTgPlayerController::execShowUnableToReadFriendsListWarning(FFrame&, void* const) + +native function ShowPartyFullWarning(bool bPartySession); // Export UTgPlayerController::execShowPartyFullWarning(FFrame&, void* const) + +native function ShowPartyNoLongerAvailableWarning(); // Export UTgPlayerController::execShowPartyNoLongerAvailableWarning(FFrame&, void* const) + +native function ShowPackageNotInstalledForPartyInviteWarning(); // Export UTgPlayerController::execShowPackageNotInstalledForPartyInviteWarning(FFrame&, void* const) + +native function ShowCustomGameDisallowedPopup(); // Export UTgPlayerController::execShowCustomGameDisallowedPopup(FFrame&, void* const) + +native function bool IsInGame(); // Export UTgPlayerController::execIsInGame(FFrame&, void* const) + +native function LogoutPlayer(); // Export UTgPlayerController::execLogoutPlayer(FFrame&, void* const) + +native function bool TryAutoLogin(); // Export UTgPlayerController::execTryAutoLogin(FFrame&, void* const) + +native function BlockPartySceneInput(bool bBlockInput); // Export UTgPlayerController::execBlockPartySceneInput(FFrame&, void* const) + +native function TryOpenPartyUI(); // Export UTgPlayerController::execTryOpenPartyUI(FFrame&, void* const) + +native function UpdatePartyUI(); // Export UTgPlayerController::execUpdatePartyUI(FFrame&, void* const) + +native function OnAllMarketplaceProductDetailsRead(); // Export UTgPlayerController::execOnAllMarketplaceProductDetailsRead(FFrame&, void* const) + +function ShowPathfinder(bool bEnabled, float interval) { } + +function SpawnPathfinder() { } + +function Vector GetPathfinderStartLocation(float StartDist) { } + +function Actor GetPathfinderTarget() { } + +unreliable client simulated event ClientRequestHelpText(int HelpTipId) { } + +exec function TestHelpTip(int HelpTipId) { } + +exec function SetBlur(float TargetBlurAmount, float InterpSpeed, float BlurKernelSize) { } + +function DebugNextPlayerStart() { } + +function DebugEnableAllAI() { } + +function DebugDisableAllAI() { } + +exec function FireDebugConsoleKismetTestNode() { } + +unreliable client simulated event ClientOnScoredPoints(int nValue, TgObject.ERewardValueType eType, int nPlayerId) { } + +function ShowHit(Actor Target, float DamageAmount, const out ExtraDamageInfo ExtraInfo) { } + +native function SendProxyDamageMessage(Actor TargetActor, int DamageAmount, const out ExtraDamageInfo ExtraInfo); // Export UTgPlayerController::execSendProxyDamageMessage(FFrame&, void* const) + +reliable client simulated function ClientSendPayloadMissionEvent(int nEventId, byte nAttackingTaskForce, byte nWinningTaskForce) { } + +native function TgPawn GetTgPawn(); // Export UTgPlayerController::execGetTgPawn(FFrame&, void* const) + +native function TgRepInfo_Player GetCurrentPRI(); // Export UTgPlayerController::execGetCurrentPRI(FFrame&, void* const) + +event UpdateClientFOV() { } + +function ClientUpdatePosition() { } + +function SavePositionForSmoothServerCorrection() { } + +function UpdateCameraForServerCorrectionSmoothing() { } + +function bool ShouldInterpolateMovementCorrections() { } + +event SetNoSmoothedMovementCorrection(bool bNoSmoothedCorrections, optional bool bManaged=false) { } + +event SendClientAdjustment() { } + +unreliable server function ServerAckNoSmoothCorrection(float TimeStamp) { } + +simulated function RecievedServerMovement(float TimeStamp, bool bNoInterp) { } + +unreliable client simulated function LongClientAdjustPositionNoInterp(float TimeStamp, name NewState, Actor.EPhysics newPhysics, float NewLocX, float NewLocY, float NewLocZ, float NewVelX, float NewVelY, float NewVelZ, Actor NewBase, float NewFloorX, float NewFloorY, float NewFloorZ) { } + +unreliable client simulated function LongClientAdjustPosition(float TimeStamp, name newState, EPhysics newPhysics, float NewLocX, float NewLocY, float NewLocZ, float NewVelX, float NewVelY, float NewVelZ, Actor NewBase, float NewFloorX, float NewFloorY, float NewFloorZ) { } + +unreliable client simulated function ClientAdjustPositionNoInterp(float TimeStamp, name NewState, Actor.EPhysics newPhysics, float NewLocX, float NewLocY, float NewLocZ, float NewVelX, float NewVelY, float NewVelZ, Actor NewBase) { } + +unreliable client simulated function ClientAdjustPosition(float TimeStamp, name newState, EPhysics newPhysics, float NewLocX, float NewLocY, float NewLocZ, float NewVelX, float NewVelY, float NewVelZ, Actor NewBase) { } + +unreliable client simulated function ShortClientAdjustPositionNoInterp(float TimeStamp, name NewState, Actor.EPhysics newPhysics, float NewLocX, float NewLocY, float NewLocZ, Actor NewBase) { } + +unreliable client simulated function ShortClientAdjustPosition(float TimeStamp, name newState, EPhysics newPhysics, float NewLocX, float NewLocY, float NewLocZ, Actor NewBase) { } + +unreliable client simulated function VeryShortClientAdjustPositionNoInterp(float TimeStamp, float NewLocX, float NewLocY, float NewLocZ, Actor NewBase) { } + +unreliable client simulated function VeryShortClientAdjustPosition(float TimeStamp, float NewLocX, float NewLocY, float NewLocZ, Actor NewBase) { } + +unreliable client simulated function ClientAckGoodMoveNoInterp(float TimeStamp) { } + +unreliable client simulated function ClientAckGoodMove(float TimeStamp) { } + +event MoveAutonomous(float DeltaTime, byte CompressedFlags, vector newAccel, rotator DeltaRot) { } + +exec function PlayCameraAnim(CameraAnim CamAnim, optional float Rate=1.0000000, optional float Scale=1.0000000, optional float BlendInTime, optional float BlendOutTime, optional bool bLoop, optional bool bRandomStartTime, optional float Duration, optional bool bSingleInstance) { } + +simulated function SetViewportLocationAndScale(Vector2D InOrigin, Vector2D InSize) { } + +exec function ExecSetViewportLocationAndScale(optional float OriginX=0.0000000, optional float OriginY=0.0000000, optional float SizeX=1.0000000, optional float SizeY=1.0000000) { } + +simulated function StartBuyBurnCardsTimer() { } + +reliable client simulated function ClientStartBuyBurnCardsTimer() { } + +function BuyBurnCards() { } + +event bool IsPlayerDead() { } + +exec function HideMeshes(bool bHide1PMesh, bool bHide3PMesh) { } + +event SendEnergyUpdatedEvent() { } + +simulated function bool IsDeviceLockingInput() { } + +simulated function bool IsDeviceLockingCamera() { } + +simulated function bool IsDeviceLockingRotation() { } + +native function TgPlayerController.EPlayerInputType GetInputType(TgObject.TG_EQUIP_POINT eqp); // Export UTgPlayerController::execGetInputType(FFrame&, void* const) + +native function bool IsInputAllowed(TgPlayerController.EPlayerInputType InputType); // Export UTgPlayerController::execIsInputAllowed(FFrame&, void* const) + +native exec function SetInputAllowed(TgPlayerController.EPlayerInputType InputType, bool bEnabled); // Export UTgPlayerController::execSetInputAllowed(FFrame&, void* const) + +simulated function SetAllInputAllowed(bool bEnabled) { } + +event InputReceived(TgPlayerController.EPlayerInputType InputType) { } + +event OnBurnCardPurchased(TgDevice BurnCard, int nEquipSlot, int nFilledCardSlots) { } + +reliable client simulated function ClientUpdateTF1Score(int nScore) { } + +reliable client simulated function ClientUpdateTF2Score(int nScore) { } + +function int GetCredits() { } + +function SetCredits(int nCreditsAmount) { } + +function ResetUlt() { } + +reliable client simulated function ClientActivateSpawnGates() { } + +reliable client simulated function ClientDeactivateSpawnGates() { } + +reliable client simulated function ClientToggleSpawnGateTeamColors() { } + +reliable client simulated function ClientDeactivateAttackersSpawnGates() { } + +reliable client simulated function ClientDeactivateDefendersSpawnGates() { } + +event ToggleCaptureProgressAkEvent(bool bEnable) { } + +simulated exec function SetServerCorrectionCameraInterpVars(float SnapDist, float MinBaseSpeed, float MaxBaseSpeed, float BaseSpeedMult, float NewInfoWeight, float MinCorrectionMod, float MaxCorrectionMod, float CorrectionModMult) { } + +native function SwitchChampion(int BotId, int BodySkinId, int HeadSkinId, int WeaponSkinId, int VoicePackId); // Export UTgPlayerController::execSwitchChampion(FFrame&, void* const) + +simulated exec function LogLocalPropertyValue(int nPropId) { } + +event ResetCaptureProgressRTPC() { } + +exec function FixAll() { } + +exec function Unfix(name BoneName) { } + +reliable client simulated event ClientDrawDebugLine(float X, float Y, float Z, float X2, float Y2, float z2, byte R, byte G, byte B) { } + +reliable client simulated event ClientDrawDebugBox(float X, float Y, float Z, float extX, float extY, float extZ, byte R, byte G, byte B) { } + +reliable client simulated event ClientDrawDebugSphere(float X, float Y, float Z, float Radius, int Segments, byte R, byte G, byte B) { } + +exec function EnablePhysics(bool bEnabled) { } + +exec function SetPhysicsWeight(float Amount) { } + +simulated function bool IsForceFeedbackAllowed() { } + +state PlayerWalking {} + +state PlayerClimbing {} + +state Dead {} + +auto state PlayerWaiting {} + +state Spectating {} + +state RoundEnded {} + +state Unconscious {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPlayerCountVolume.uc b/Development/Src/TgGame/Classes/TgPlayerCountVolume.uc new file mode 100644 index 0000000..129f4c5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPlayerCountVolume.uc @@ -0,0 +1,19 @@ +class TgPlayerCountVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var () int PlayerCountTarget; +var () int TaskForceNumber; +var () int MessageId; +var array Players; +var () bool Enabled; + +native function Update(TgPawn Other); // Export UTgPlayerCountVolume::execUpdate(FFrame&, void* const) + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event int GetCount() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPlayerInput.uc b/Development/Src/TgGame/Classes/TgPlayerInput.uc new file mode 100644 index 0000000..75235c0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPlayerInput.uc @@ -0,0 +1,168 @@ +class TgPlayerInput extends PComPlayerInput within TgPlayerController + transient + native(Pawns) + config(Input) + hidecategories(Object,UIRoot) + dependson(TgAimAssistKeyframe, TgPlayerController); + +struct AimAssistTargetWeight { + var TgCombatActor Target; + var float Weight; + var float horizAssistVal; + var float vertAssistVal; + var float lastUpdateTimestamp; + structdefaultproperties {} +}; + +struct AimAssistTargetWeightVars { + var float CurrentTargetBonus; + var float NotCurrentTargetPenalty; + var float MinAccuracyBonus; + var float MaxAccuracyBonus; + var float MinInaccuracyPenalty; + var float MaxInaccuracyPenalty; + var float MaxWeight; + structdefaultproperties {} +}; + +struct DebugAimAssist { + var Actor lastAimAssistTarget; + var float targetDist; + var float assistValX; + var float assistValY; + var name curveMin[7]; + var name curveMax[7]; + var float curveMinVal[7]; + var float curveMaxVal[7]; + var float curveInterpAmt[7]; + var float rawVal[7]; + var float boundsUsedX; + var float boundsUsedY; + var float trackingScaledStrengthFinalX; + var float trackingScaledStrengthFinalY; + structdefaultproperties {} +}; + +var TgPlayerController c_TgPC; +var bool c_bASKeyCapture; +var bool c_bASSpecKeyCapture; +var bool c_bMiniMapPinging; +var bool c_bAutoRun; +var config bool bEnableAimAssist; +var transient bool bDebugAimAssist; +var globalconfig float GamepadSensitivityX; +var globalconfig float GamepadSensitivityY; +var globalconfig float fScopeSensitivity; +var float m_fMinScopeSensitivityMult; +var float m_fMaxScopeSensitivityMult; +var globalconfig int nAimAccelerationSet; +var globalconfig int nAimAccelerationBoost; +var transient float fTurnSpeedAccelAmt; +var transient float fLookUpSpeedAccelAmt; +var int nAimAccelerationAlgorithm; +var globalconfig int nInnerDeadZoneSize; +var globalconfig int nOuterDeadZoneSize; +var transient Actor BestAimAssistTarget; +var TgGameplayCurves m_AimAssistCurves; +var transient float aTurnFinalValue; +var transient float aLookUpFinalValue; +var transient array m_AimAssistTargets; +var AimAssistTargetWeightVars TargetWeightVars; +var DebugAimAssist DebugAimAssistVals; + +delegate bool OnRawInputKey(int ControllerId, name Key, Object.EInputEvent Event, float AmountDepressed); + +delegate bool OnInputAxis(int ControllerId, name Key, float Delta, float DeltaTime); + +delegate bool OnInputChar(int ControllerId, string Unicode); + +native function StoreMouseSettings(); // Export UTgPlayerInput::execStoreMouseSettings(FFrame&, void* const) + +native function ReadMouseSettings(); // Export UTgPlayerInput::execReadMouseSettings(FFrame&, void* const) + +native function ResetKeysToDefault(); // Export UTgPlayerInput::execResetKeysToDefault(FFrame&, void* const) + +native exec function SetKeyCaptureState(bool bSpectator, bool bCaptureKey); // Export UTgPlayerInput::execSetKeyCaptureState(FFrame&, void* const) + +native function KeyBind GenerateKeybindFromButton(const name ButtonName); // Export UTgPlayerInput::execGenerateKeybindFromButton(FFrame&, void* const) + +native function PreProcessJoystickInput(float fDeltaTime); // Export UTgPlayerInput::execPreProcessJoystickInput(FFrame&, void* const) + +event bool InputChar(int ControllerId, string Unicode) { } + +simulated exec function Duck() { } + +function Actor.EDoubleClickDir CheckForDoubleClickMove(float DeltaTime) { } + +function PreProcessInput(float DeltaTime) { } + +native simulated function bool ShouldUseAimAssist(); // Export UTgPlayerInput::execShouldUseAimAssist(FFrame&, void* const) + +simulated function float GetScopeSensitivity() { } + +function AdjustMouseSensitivity(float FOVScale) { } + +event PlayerInput(float DeltaTime) { } + +function HandleMovementInput(bool bIsMatchingInput, TgPlayerController.EPlayerInputType InputType, out float fAxisValue) { } + +simulated function DisplayDebug(HUD HUD, out float out_YL, out float out_YPos) { } + +simulated function DrawAimAssistVals(string assistName, int Index, out float YPos, float YL, HUD HUD) { } + +function HandleAimAssist(float DeltaTime) { } + +function SelectBestAimAssistTargetViaWeights(out float BestHorizontalAssistAmount, out float BestVerticalAssistAmount) { } + +function UpdateAimAssistTargetWeights(float DeltaTime) { } + +function ApplyAimTracking(float DeltaTime, float HorizontalAssistAmount, float VerticalAssistAmount, float DistanceToTarget, const out array TrackingAccHorizKeyframeData, const out array TrackingAngleHorizKeyframeData, const out array TrackingAccVertKeyframeData, const out array TrackingAngleVertKeyframeData, const out Vector2D AimAssistTrackingScale) { } + +function ApplyAimFrictionAndMagnet(float DeltaTime, float HorizontalAssistAmount, float VerticalAssistAmount, float DistanceToTarget, const out array MagnetHorizKeyframeData, const out array MagnetVertKeyframeData, const out array FrictionKeyframeData, const out Vector2D AimAssistMagnetScale, const out Vector2D AimAssistFrictionScale) { } + +function float Sign(float InValue) { } + +function GetDesiredTrackingAim(out float TrackingX, out float TrackingY, float DeltaTime) { } + +function bool HandleAimAssistForTarget(TgCombatActor InTarget, float DeltaTime, const out Vector InPawnFwd, const out Vector InPawnRight, const out Vector InPawnUp, out float HorizontalAssistAmount, out float VerticalAssistAmount) { } + +function float DetermineAimAssistCurveTime(Vector InPawnFwd, Vector InTargetCenter, Vector InMaxBoundsExtent, Vector InProjectPlaneA, Vector InProjectPlaneB, Vector InDetermineAssistDirectionVector) { } + +simulated function Rotator ApplyAimVectorModification(TgDevice InDevice, Rotator InRotation) { } + +simulated function float DetermineAimVectorAssistAngleDegrees(Actor InTarget, Vector InPawnFwd, Vector InTargetCenter, Vector InRealBoundsExtent, Vector InMaxBoundsExtent, Vector InProjectPlaneA, Vector InProjectPlaneB, Vector InDetermineAssistDirectionVector, float MaxAssistanceAngleToUse, bool bIsVertical) { } + +exec function SetAimAccelerationAlgorithm(int Algorithm) { } + +exec function SetAimAccelerationSet(int AimSet) { } + +exec function ToggleAutoRun() { } + +function CancelAutoRun() { } + +exec function SetGamepadSensitivity(float fAxisX, float fAxisY) { } + +exec function SetMouseInput(bool bInvert, bool bSmooth, float fSensitivity) { } + +function SetBindExtended(const string ExtendedBinding, string Command) { } + +function SetCommandBind(string Command, int nAlternate, const string ExtendedBinding) { } + +exec function UnbindCommandAll(string Command) { } + +exec function UnbindCommand(string Command, optional int nAlternate=0) { } + +defaultproperties +{ + GamepadSensitivityX=0.5000000 + GamepadSensitivityY=0.5000000 + m_fMinScopeSensitivityMult=0.5000000 + m_fMaxScopeSensitivityMult=2.0000000 + nAimAccelerationSet=1 + nAimAccelerationBoost=7 + nInnerDeadZoneSize=2 + nOuterDeadZoneSize=1 + m_AimAssistCurves=TgGameplayCurves'AimAssistCurvePool' + TargetWeightVars=(CurrentTargetBonus=5.0000000,NotCurrentTargetPenalty=-5.0000000,MinAccuracyBonus=2.0000000,MaxAccuracyBonus=7.0000000,MinInaccuracyPenalty=0.0000000,MaxInaccuracyPenalty=20.0000000,MaxWeight=10.0000000) + Bindings=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgPointOfInterest.uc b/Development/Src/TgGame/Classes/TgPointOfInterest.uc new file mode 100644 index 0000000..76ebf3b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPointOfInterest.uc @@ -0,0 +1,10 @@ +class TgPointOfInterest extends TgNavigationPoint + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var () int m_nNameMsgId; +var () string m_sDebugName; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPortal.uc b/Development/Src/TgGame/Classes/TgPortal.uc new file mode 100644 index 0000000..146d9b0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPortal.uc @@ -0,0 +1,19 @@ +class TgPortal extends Portal + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var (Teleport) bool bUpdateRotation; +var (Teleport) bool bCheckOverlap; +var (Teleport) bool bResetVelocity; +var (Teleport) bool bCheckTaskForce; +var (Teleport) int nTaskForce; +var (TeleportSound) SoundCue TeleportSoundCue; +var (TeleportSound) float FadeInTime; +var (TeleportSound) float VolumeMultiplier; +var (TeleportSound) float PitchMultiplier; + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgPostProcessVolume.uc b/Development/Src/TgGame/Classes/TgPostProcessVolume.uc new file mode 100644 index 0000000..54d348d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgPostProcessVolume.uc @@ -0,0 +1,16 @@ +class TgPostProcessVolume extends PostProcessVolume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display,Advanced,Collision,Volume,Brush,Attachment) + config(Engine); + +var () MaterialInterface m_Material; +var () Scene.ESceneDepthPriorityGroup m_SceneDPG; +var MaterialInstanceConstant m_MaterialMIC; +var () float m_FadeInTime; +var () float m_FadeOutTime; +var () name m_FadeScalarParameterName; + +simulated event PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_BlastShot.uc b/Development/Src/TgGame/Classes/TgProj_BlastShot.uc new file mode 100644 index 0000000..ab1bab7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_BlastShot.uc @@ -0,0 +1,9 @@ +class TgProj_BlastShot extends TgProj_Simulated + native(ChampCassie) + hidecategories(Navigation) + config(Engine); + +native function GetExplosionFXParams(out array Params); // Export UTgProj_BlastShot::execGetExplosionFXParams(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_BombKingStickyBomb.uc b/Development/Src/TgGame/Classes/TgProj_BombKingStickyBomb.uc new file mode 100644 index 0000000..6aa347e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_BombKingStickyBomb.uc @@ -0,0 +1,38 @@ +class TgProj_BombKingStickyBomb extends TgProj_FreeGrenade + native(ChampBombKing) + hidecategories(Navigation) + config(Engine); + +var bool m_bExplodedOnShield; +var bool m_bExplodedOnDeployGeomtry; +var bool c_bReadyToHide; +var Actor m_CachedHitTarget; +var Vector m_vCachedHitLocation; +var Vector m_vCachedHitNormal; + +native function TgDeployable SpawnDeployable(Vector vLocation, optional Actor TargetActor, optional Vector vNormal); // Export UTgProj_BombKingStickyBomb::execSpawnDeployable(FFrame&, void* const) + +simulated function Actor CalculateHitActor(Actor Target, Vector HitLocation, Vector HitNormal, out TraceHitInfo HitInfo) { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function AltFireDetonate() { } + +function bool ApplyTheHit(TgDeviceFire FireMode, ImpactInfo Impact, Actor DamageInstigator) { } + +simulated function SpecialHideProjectile() { } + +simulated function HideProjectile() { } + +simulated function bool PredictStickToPlayerSocket(out Vector outSocketLocation, out Rotator outSocketRotation) { } + +simulated event ClientExplodeSpecial(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function HideForNonOwnerClient() { } + +simulated function Destroyed() { } + +simulated function ShutDown() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DarkConvergence.uc b/Development/Src/TgGame/Classes/TgProj_DarkConvergence.uc new file mode 100644 index 0000000..8db7efe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DarkConvergence.uc @@ -0,0 +1,7 @@ +class TgProj_DarkConvergence extends TgProj_FreeGrenade + native(ChampOracle) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DarklordBase.uc b/Development/Src/TgGame/Classes/TgProj_DarklordBase.uc new file mode 100644 index 0000000..9b0f3ca --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DarklordBase.uc @@ -0,0 +1,49 @@ +class TgProj_DarklordBase extends TgProj_SpeedOverRange + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +struct TrackedCollision { + var bool IsColliding; + var Actor Target; + var export editinline PrimitiveComponent TargetComp; + var int NumTouches; + structdefaultproperties {} +}; + +var TgCollisionProxy_Cylinder m_SecondaryCollisionProxies[2]; +var export editinline ParticleSystemComponent m_SecondaryDebugProximityDistancePSC[2]; +var array m_TrackedCollisions; + +native function CompleteInitialization(); // Export UTgProj_DarklordBase::execCompleteInitialization(FFrame&, void* const) + +simulated function OnSecondaryProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event OnSecondaryProxyUnTouch(Actor Other) { } + +simulated event ForwardProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ForwardProxyUntouch(Actor Other) { } + +simulated event ProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ProxyUnTouch(Actor Other) { } + +native simulated function HandleSecondaryProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal); // Export UTgProj_DarklordBase::execHandleSecondaryProxyTouch(FFrame&, void* const) + +native simulated function HandleSecondaryProxyUntouch(Actor Other); // Export UTgProj_DarklordBase::execHandleSecondaryProxyUntouch(FFrame&, void* const) + +simulated function Vector GetCollisionOffsetDir() { } + +simulated event SpawnSecondaryCollisionProxies() { } + +simulated function HideProjectile() { } + +simulated function float GetDecalRotationOffset() { } + +simulated function PlayHitTargetFX(Actor Target, Vector HitLocation, Vector HitNormal, bool bExploded) { } + +simulated event PlayHitWallExplosionFX(Vector HitNormal, Vector HitLocation) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DarklordChain1.uc b/Development/Src/TgGame/Classes/TgProj_DarklordChain1.uc new file mode 100644 index 0000000..6ac1450 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DarklordChain1.uc @@ -0,0 +1,7 @@ +class TgProj_DarklordChain1 extends TgProj_DarklordBase + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DarklordChain2.uc b/Development/Src/TgGame/Classes/TgProj_DarklordChain2.uc new file mode 100644 index 0000000..b6075ed --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DarklordChain2.uc @@ -0,0 +1,7 @@ +class TgProj_DarklordChain2 extends TgProj_DarklordBase + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DarklordChain3.uc b/Development/Src/TgGame/Classes/TgProj_DarklordChain3.uc new file mode 100644 index 0000000..c380e7f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DarklordChain3.uc @@ -0,0 +1,11 @@ +class TgProj_DarklordChain3 extends TgProj_DarklordBase + native(ChampDarklord) + hidecategories(Navigation) + config(Engine); + +simulated function float GetDecalRotationOffset() { } + +simulated function Vector GetCollisionOffsetDir() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DemonTeleport.uc b/Development/Src/TgGame/Classes/TgProj_DemonTeleport.uc new file mode 100644 index 0000000..4428a18 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DemonTeleport.uc @@ -0,0 +1,20 @@ +class TgProj_DemonTeleport extends TgProj_Simulated + native(ChampDemon) + hidecategories(Navigation) + config(Engine); + +var bool m_bStopped; +var bool m_bTriggerExplosion; + +function bool ApplyHit(Actor Target, Vector HitLocation, Vector HitNormal, optional int HitItem) { } + +simulated event HitWall(vector HitNormal, actor Wall, PrimitiveComponent WallComp) { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +function RangeReached() { } + +simulated function StopMoving(Vector NewLocation) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Drag.uc b/Development/Src/TgGame/Classes/TgProj_Drag.uc new file mode 100644 index 0000000..27daa54 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Drag.uc @@ -0,0 +1,20 @@ +class TgProj_Drag extends TgProj_Simulated + native(ChampMakoa) + hidecategories(Navigation) + config(Engine); + +var TgDeviceForm_Drag m_DragForm; +var float m_fCollisionHeightScale; + +simulated event SpawnFlightEffects() { } + +function RangeReached() { } + +simulated event Fizzle() { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function bool StartDrag(Actor Target, Vector HitLocation) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DreadSerpent.uc b/Development/Src/TgGame/Classes/TgProj_DreadSerpent.uc new file mode 100644 index 0000000..c835dda --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DreadSerpent.uc @@ -0,0 +1,6 @@ +class TgProj_DreadSerpent extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_DrogozRocket.uc b/Development/Src/TgGame/Classes/TgProj_DrogozRocket.uc new file mode 100644 index 0000000..d9caa1f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_DrogozRocket.uc @@ -0,0 +1,11 @@ +class TgProj_DrogozRocket extends TgProj_Simulated + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine); + +var bool m_bWasFromSalvo; + +function bool ApplyTheHit(TgDeviceFire FireMode, ImpactInfo Impact, Actor DamageInstigator) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Enlightenment.uc b/Development/Src/TgGame/Classes/TgProj_Enlightenment.uc new file mode 100644 index 0000000..a8b4aa8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Enlightenment.uc @@ -0,0 +1,6 @@ +class TgProj_Enlightenment extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_EvilMojo.uc b/Development/Src/TgGame/Classes/TgProj_EvilMojo.uc new file mode 100644 index 0000000..675afa5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_EvilMojo.uc @@ -0,0 +1,8 @@ +class TgProj_EvilMojo extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +simulated event bool CheckTeamPassThrough(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_ExplodeAtMaxRange.uc b/Development/Src/TgGame/Classes/TgProj_ExplodeAtMaxRange.uc new file mode 100644 index 0000000..eb3a5dd --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_ExplodeAtMaxRange.uc @@ -0,0 +1,6 @@ +class TgProj_ExplodeAtMaxRange extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_ExplosiveFlask.uc b/Development/Src/TgGame/Classes/TgProj_ExplosiveFlask.uc new file mode 100644 index 0000000..b34369d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_ExplosiveFlask.uc @@ -0,0 +1,6 @@ +class TgProj_ExplosiveFlask extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Fireball.uc b/Development/Src/TgGame/Classes/TgProj_Fireball.uc new file mode 100644 index 0000000..5e95451 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Fireball.uc @@ -0,0 +1,6 @@ +class TgProj_Fireball extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_FlakRocket.uc b/Development/Src/TgGame/Classes/TgProj_FlakRocket.uc new file mode 100644 index 0000000..17bb3d3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_FlakRocket.uc @@ -0,0 +1,6 @@ +class TgProj_FlakRocket extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Flare.uc b/Development/Src/TgGame/Classes/TgProj_Flare.uc new file mode 100644 index 0000000..3a4f48b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Flare.uc @@ -0,0 +1,20 @@ +class TgProj_Flare extends TgProj_FreeGrenade + native(ChampOwl) + hidecategories(Navigation) + config(Engine); + +var bool m_bStartedPulse; +var float m_fLifetimeForPhysicsSubstep; + +simulated function StartPulse() { } + +event PostProjectileInitialize() { } + +simulated function PulseVisibility() { } + +event bool UseAOE() { } + +native function float GetGravityZ(); // Export UTgProj_Flare::execGetGravityZ(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_FragGrenade.uc b/Development/Src/TgGame/Classes/TgProj_FragGrenade.uc new file mode 100644 index 0000000..580a898 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_FragGrenade.uc @@ -0,0 +1,15 @@ +class TgProj_FragGrenade extends TgProj_FreeGrenade + native(ChampViktor) + hidecategories(Navigation) + config(Engine); + +simulated function PostBeginPlay() { } + +simulated function SetCookedInfo() { } + +simulated function ApplyBounce(Vector HitNormal, Actor Wall, PrimitiveComponent WallComp) { } + +simulated function PlayBounceSound() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_FreeGrenade.uc b/Development/Src/TgGame/Classes/TgProj_FreeGrenade.uc new file mode 100644 index 0000000..dfbaf6a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_FreeGrenade.uc @@ -0,0 +1,61 @@ +class TgProj_FreeGrenade extends TgProj_Simulated + native(Projectiles) + hidecategories(Navigation) + config(Engine); + +var bool m_bShieldTouched; +var bool m_bExplodeOnTouch; +var bool m_bExplodeOnGeometry; +var bool m_bExplodeOnFloor; +var bool m_bUseBilinearInterpolationForBounceDamping; +var bool m_bUseGravityZOverride; +var TgDeployable m_TouchedShield; +var float m_fToleranceZ; +var float m_fBounceDampingVertMin; +var float m_fBounceDampingVertMax; +var float m_fBounceDampingHorizMin; +var float m_fBounceDampingHorizMax; +var float m_fBounceDamping; +var float m_fSpeedToActivateBounceFX; +var float m_fGravityZOverride; +var int m_nBounceCount; +var int m_nBouncesToExplode; +var float m_fBounceDistinctionDuration; +var int m_fLastBounceTime; +var Vector m_vRecentHitNormal; +var float m_fRecentHitTime; + +native function float GetGravityZ(); // Export UTgProj_FreeGrenade::execGetGravityZ(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function ShutDown() { } + +simulated function Timer() { } + +simulated event PlayHitWallExplosionFX(Vector HitNormal, Vector HitLocation) { } + +simulated function PlayHitTargetFX(Actor Target, Vector HitLocation, Vector HitNormal, bool bExploded) { } + +function float GetPostLandDuration() { } + +function StartLandExplodeTimer() { } + +function OnLand() { } + +simulated event HitWall(vector HitNormal, actor Wall, PrimitiveComponent WallComp) { } + +simulated function bool ShouldHitBounce(Actor Target, Vector HitNormal) { } + +simulated function ApplyBounce(Vector HitNormal, Actor Wall, PrimitiveComponent WallComp) { } + +simulated function PlayBounceSound() { } + +simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal) { } + +simulated event Landed(vector HitNormal, actor FloorActor) { } + +simulated function Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_GaeBolg.uc b/Development/Src/TgGame/Classes/TgProj_GaeBolg.uc new file mode 100644 index 0000000..301eaa9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_GaeBolg.uc @@ -0,0 +1,6 @@ +class TgProj_GaeBolg extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Greatbow.uc b/Development/Src/TgGame/Classes/TgProj_Greatbow.uc new file mode 100644 index 0000000..183ee30 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Greatbow.uc @@ -0,0 +1,9 @@ +class TgProj_Greatbow extends TgProj_Simulated + native(ChampLongbow) + hidecategories(Navigation) + config(Engine); + +native function ApplySpawnParams(float fProjectileSpeed, float fGravityScale); // Export UTgProj_Greatbow::execApplySpawnParams(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_GrumpyBomb.uc b/Development/Src/TgGame/Classes/TgProj_GrumpyBomb.uc new file mode 100644 index 0000000..2a501ec --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_GrumpyBomb.uc @@ -0,0 +1,30 @@ +class TgProj_GrumpyBomb extends TgProj_FreeGrenade + native(ChampBombKing) + hidecategories(Navigation) + config(Engine); + +var export editinline TgSilhouetteComponent m_Silhouette; +var bool m_bSilhouetteInitialized; +var bool m_bSilhouetteAllowed; +var float m_fPostLandDurationAccelerant; + +native function InitializeSilhouetteComponent(); // Export UTgProj_GrumpyBomb::execInitializeSilhouetteComponent(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function CheckShowOutline() { } + +native function bool IsAccelerantEquipped(); // Export UTgProj_GrumpyBomb::execIsAccelerantEquipped(FFrame&, void* const) + +function float GetPostLandDuration() { } + +function StartLandExplodeTimer() { } + +simulated event bool CheckTeamPassThrough(Actor Other) { } + +simulated event ProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ProxyUnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_HealingPotion.uc b/Development/Src/TgGame/Classes/TgProj_HealingPotion.uc new file mode 100644 index 0000000..2ee6fc1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_HealingPotion.uc @@ -0,0 +1,11 @@ +class TgProj_HealingPotion extends TgProj_FreeGrenade + native(ChampPip) + hidecategories(Navigation) + config(Engine); + +native function GetExplosionFXParams(out array Params); // Export UTgProj_HealingPotion::execGetExplosionFXParams(FFrame&, void* const) + +simulated function PlayAdditionalHitFX(bool bSuccessfulHit, Vector FXLocation, Vector HitNormal, Vector ProjDir, out array ExplosionParams) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_HexaFireRocket.uc b/Development/Src/TgGame/Classes/TgProj_HexaFireRocket.uc new file mode 100644 index 0000000..48119ea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_HexaFireRocket.uc @@ -0,0 +1,9 @@ +class TgProj_HexaFireRocket extends TgProj_Simulated + native(ChampRuckus) + hidecategories(Navigation) + config(Engine); + +simulated event ClearPersistTimers() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_IceStorm.uc b/Development/Src/TgGame/Classes/TgProj_IceStorm.uc new file mode 100644 index 0000000..be60452 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_IceStorm.uc @@ -0,0 +1,19 @@ +class TgProj_IceStorm extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +var bool m_bStopped; +var bool m_bCheckLOSForHit; + +simulated function CompleteInitialization() { } + +function HandleTick() { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function float GetRemainingTime() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_ImpalerArrow.uc b/Development/Src/TgGame/Classes/TgProj_ImpalerArrow.uc new file mode 100644 index 0000000..5d20b9b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_ImpalerArrow.uc @@ -0,0 +1,11 @@ +class TgProj_ImpalerArrow extends TgProj_Greatbow + native(ChampLongbow) + hidecategories(Navigation) + config(Engine); + +var float m_fCollisionScale; + +function bool ApplyTheHit(TgDeviceFire FireMode, ImpactInfo Impact, Actor DamageInstigator) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_KnifeLongRange.uc b/Development/Src/TgGame/Classes/TgProj_KnifeLongRange.uc new file mode 100644 index 0000000..6a3a5e8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_KnifeLongRange.uc @@ -0,0 +1,6 @@ +class TgProj_KnifeLongRange extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_KnifeShortRange.uc b/Development/Src/TgGame/Classes/TgProj_KnifeShortRange.uc new file mode 100644 index 0000000..03d4aae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_KnifeShortRange.uc @@ -0,0 +1,6 @@ +class TgProj_KnifeShortRange extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_LanepusherCannon.uc b/Development/Src/TgGame/Classes/TgProj_LanepusherCannon.uc new file mode 100644 index 0000000..eca1da3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_LanepusherCannon.uc @@ -0,0 +1,10 @@ +class TgProj_LanepusherCannon extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +simulated event Vector GetSeekLocation() { } + +simulated function Tick(float fDeltaTime) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Loogie.uc b/Development/Src/TgGame/Classes/TgProj_Loogie.uc new file mode 100644 index 0000000..4d9f713 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Loogie.uc @@ -0,0 +1,28 @@ +class TgProj_Loogie extends TgProj_Simulated + native(ChampDrogoz) + hidecategories(Navigation) + config(Engine); + +var bool m_bWasExplodedByRocket; +var bool m_bIgnoreRocketOwner; + +simulated function HideProjectile() { } + +simulated function PlayAdditionalHitFX(bool bSuccessfulHit, Vector FXLocation, Vector HitNormal, Vector ProjDir, out array ExplosionParams) { } + +simulated event ScaleAbilityFX() { } + +simulated event ProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function DetonateFromRocket(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated event ClientExplodeSpecial(Actor Target, Vector HitLocation, Vector HitNormal) { } + +event bool UseAOE() { } + +function bool ApplyTheHit(TgDeviceFire FireMode, ImpactInfo Impact, Actor DamageInstigator) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_MalDambaInhand.uc b/Development/Src/TgGame/Classes/TgProj_MalDambaInhand.uc new file mode 100644 index 0000000..ca8b15b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_MalDambaInhand.uc @@ -0,0 +1,6 @@ +class TgProj_MalDambaInhand extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Molotov.uc b/Development/Src/TgGame/Classes/TgProj_Molotov.uc new file mode 100644 index 0000000..fa79dc8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Molotov.uc @@ -0,0 +1,9 @@ +class TgProj_Molotov extends TgProj_FreeGrenade + native(ChampTyra) + hidecategories(Navigation) + config(Engine); + +native function TgDeployable SpawnDeployable(Vector vLocation, optional Actor TargetActor, optional Vector vNormal); // Export UTgProj_Molotov::execSpawnDeployable(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_OppressorMine.uc b/Development/Src/TgGame/Classes/TgProj_OppressorMine.uc new file mode 100644 index 0000000..d3462f0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_OppressorMine.uc @@ -0,0 +1,13 @@ +class TgProj_OppressorMine extends TgProj_FreeGrenade + native(ChampKinessa) + hidecategories(Navigation) + config(Engine); + +native function TgDeployable SpawnDeployable(Vector vLocation, optional Actor TargetActor, optional Vector vNormal); // Export UTgProj_OppressorMine::execSpawnDeployable(FFrame&, void* const) + +simulated function Actor CalculateHitActor(Actor Target, Vector HitLocation, Vector HitNormal, out TraceHitInfo HitInfo) { } + +simulated function bool ShouldHitBounce(Actor Target, Vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_PoppyBomb.uc b/Development/Src/TgGame/Classes/TgProj_PoppyBomb.uc new file mode 100644 index 0000000..7d11c5e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_PoppyBomb.uc @@ -0,0 +1,19 @@ +class TgProj_PoppyBomb extends TgProj_FreeGrenade + native(ChampBombKing) + hidecategories(Navigation) + config(Engine); + +native function TgDeployable SpawnDeployable(Vector vLocation, optional Actor TargetActor, optional Vector vNormal); // Export UTgProj_PoppyBomb::execSpawnDeployable(FFrame&, void* const) + +simulated function AltFireDetonate() { } + +function bool ApplyHit(Actor Target, Vector HitLocation, Vector HitNormal, optional int HitItem) { } + +simulated event PlayHitWallExplosionFX(Vector HitNormal, Vector HitLocation) { } + +simulated function PlayHitTargetFX(Actor Target, Vector HitLocation, Vector HitNormal, bool bExploded) { } + +simulated event bool CheckTeamPassThrough(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_PotionLauncherProjectile.uc b/Development/Src/TgGame/Classes/TgProj_PotionLauncherProjectile.uc new file mode 100644 index 0000000..7014825 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_PotionLauncherProjectile.uc @@ -0,0 +1,8 @@ +class TgProj_PotionLauncherProjectile extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +simulated function PlayAdditionalHitFX(bool bSuccessfulHit, Vector FXLocation, Vector HitNormal, Vector ProjDir, out array ExplosionParams) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_PotionLauncherProjectile_HighFireAngleTest.uc b/Development/Src/TgGame/Classes/TgProj_PotionLauncherProjectile_HighFireAngleTest.uc new file mode 100644 index 0000000..0125363 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_PotionLauncherProjectile_HighFireAngleTest.uc @@ -0,0 +1,6 @@ +class TgProj_PotionLauncherProjectile_HighFireAngleTest extends TgProj_PotionLauncherProjectile + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Reversal.uc b/Development/Src/TgGame/Classes/TgProj_Reversal.uc new file mode 100644 index 0000000..f164751 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Reversal.uc @@ -0,0 +1,8 @@ +class TgProj_Reversal extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +var float m_fDamageOverride; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Seedling.uc b/Development/Src/TgGame/Classes/TgProj_Seedling.uc new file mode 100644 index 0000000..9473a92 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Seedling.uc @@ -0,0 +1,34 @@ +class TgProj_Seedling extends TgProj_FreeGrenade + native(ChampFairy) + hidecategories(Navigation) + config(Engine); + +var const int m_nSecondaryProjToSpawn; +var int m_nSpawnsRemaining; +var export editinline SkeletalMeshComponent m_CachedSMC; +var TgSkelControlSingleBone m_GrenadeSkelControl; +var TgSkelControlSingleBone m_SpikesSkelControl; +var MaterialInstanceConstant m_fCachedMIC; +var Rotator m_rRotationalVelocity; +var export editinline TgSilhouetteComponent m_Silhouette; +var LinearColor m_LocalSilhouetteColor; +var bool m_bSilhouetteInitialized; +var bool m_bSilhouetteAllowed; +var bool m_bBuildupSoundPlayed; + +native function Vector GetRotatedAim(Vector initialAim, int Angle); // Export UTgProj_Seedling::execGetRotatedAim(FFrame&, void* const) + +native function InitializeSilhouetteComponent(); // Export UTgProj_Seedling::execInitializeSilhouetteComponent(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated event bool CheckTeamPassThrough(Actor Other) { } + +function bool ApplyHit(Actor Target, Vector HitLocation, Vector HitNormal, optional int HitItem) { } + +function float GetPostLandDuration() { } + +function StartLandExplodeTimer() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_SeedlingSecondary.uc b/Development/Src/TgGame/Classes/TgProj_SeedlingSecondary.uc new file mode 100644 index 0000000..e65ab70 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_SeedlingSecondary.uc @@ -0,0 +1,10 @@ +class TgProj_SeedlingSecondary extends TgProj_Seedling + native(ChampFairy) + hidecategories(Navigation) + config(Engine); + +var bool m_bInitialized; +var float m_fGrowthLifetime; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Simulated.uc b/Development/Src/TgGame/Classes/TgProj_Simulated.uc new file mode 100644 index 0000000..2e221ea --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Simulated.uc @@ -0,0 +1,142 @@ +class TgProj_Simulated extends TgProjectile + native(Projectiles) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +const LERP_FROM_CLIENT_POSITION_DURATION = 0.2; + +enum eSimProjEvent { + Proj_Spawn, // 0 + Proj_Exploded, // 1 + Proj_ExplodedSpecial, // 2 + Proj_Shutdown, // 3 + Proj_Hit, // 4 + Proj_Target, // 5 + Proj_HitWall, // 6 + Proj_HideProjectile, // 7 + Proj_Fizzle, // 8 +}; + +var bool m_bHasFlashedShutdown; +var bool m_bHasFlashExploded; +var bool m_bIgnoreClientHits; +var bool m_bShouldQueueServerHits; +var bool m_bHasQueuedServerHit; +var bool m_bNeedsFrictionOverride; +var bool m_bFlashSpecialExplosion; +var bool m_bTrackProjectileForTimelapse; +var bool s_bTrackingInitialized; +var const bool m_bRequireAccurateTicksForPrediction; +var int m_nProjectileInstanceId; +var int m_nClientFireRequestId; +var Vector m_LerpFromClientOffset; +var float m_LerpTimeRemaining; +var Actor m_QueuedExplodeTarget; +var Vector m_QueuedExplodeLocation; +var Vector m_QueuedExplodeNormal; +var Vector m_vSpawnVelocity; +var Vector m_vSpawnAcceleration; +var Rotator m_rSpawnRotator; +var float m_fAllowedClientMovementTime; +var float m_fSpawnTimeStamp; +var float m_fGravityScale; +var float m_fFrictionOverride; +var array s_InterestedPlayers; +var int m_nShadowFXID; +var TgSpecialFx m_ShadowFX; +var export editinline DecalComponent m_ShadowDecal; +var float m_fShadowBaseWidth; +var float m_fMaxDecalHeight; +var Rotator m_CachedRotation; +var float m_fTrackingUpdateRate; +var float s_fTrackingUpdateTimer; +var TgGameplayCurves m_GameplayCurves; +var int m_nDeployableOverlayDisplayMask; +var TgObject.DeployableOverlayIcon m_eDeployableOverlayIcon; +var TgObject.DeployableOverlayState m_eDeployableOverlayState; +var float m_fDeployableOverlayEnemyViewDist; +var float m_fDeployableActiveLifeTime; + +native function CompleteInitialization(); // Export UTgProj_Simulated::execCompleteInitialization(FFrame&, void* const) + +native function FlashNotifySpawn(); // Export UTgProj_Simulated::execFlashNotifySpawn(FFrame&, void* const) + +native function FlashNotifyShutdown(); // Export UTgProj_Simulated::execFlashNotifyShutdown(FFrame&, void* const) + +native function FlashNotifyFizzle(); // Export UTgProj_Simulated::execFlashNotifyFizzle(FFrame&, void* const) + +native function FlashNotifyExploded(Actor Target, Vector HitLocation, Vector HitNormal); // Export UTgProj_Simulated::execFlashNotifyExploded(FFrame&, void* const) + +native function FlashNotifyExplodedSpecial(Actor Target, Vector HitLocation, Vector HitNormal); // Export UTgProj_Simulated::execFlashNotifyExplodedSpecial(FFrame&, void* const) + +native function FlashNotifyHit(Actor Target, Vector HitLocation, Vector HitNormal); // Export UTgProj_Simulated::execFlashNotifyHit(FFrame&, void* const) + +native function FlashNotifyHitWall(Actor Wall, Vector HitNormal, Vector HitLocation); // Export UTgProj_Simulated::execFlashNotifyHitWall(FFrame&, void* const) + +native function FlashNotifyTarget(Actor TargetActor, Vector TargetLocation); // Export UTgProj_Simulated::execFlashNotifyTarget(FFrame&, void* const) + +native function SetLocationFromServer(Vector InLocation); // Export UTgProj_Simulated::execSetLocationFromServer(FFrame&, void* const) + +native function bool CheckFirstWorldExplosion(Vector StartPos, Vector EndPos); // Export UTgProj_Simulated::execCheckFirstWorldExplosion(FFrame&, void* const) + +native function float GetGravityZ(); // Export UTgProj_Simulated::execGetGravityZ(FFrame&, void* const) + +native function PredictStartLocationBasedOnPing(float Ping); // Export UTgProj_Simulated::execPredictStartLocationBasedOnPing(FFrame&, void* const) + +native function int GetIndexForTimelapseTracking(); // Export UTgProj_Simulated::execGetIndexForTimelapseTracking(FFrame&, void* const) + +native function InitTrackingForTimelapse(); // Export UTgProj_Simulated::execInitTrackingForTimelapse(FFrame&, void* const) + +native function ShutDownTrackingForTimelapse(); // Export UTgProj_Simulated::execShutDownTrackingForTimelapse(FFrame&, void* const) + +simulated event HandleQueuedFirstWorldExplosion() { } + +simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal) { } + +simulated function HitPassThroughTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function SendExplodeToServer(Actor Other, Vector HitLocation, Vector HitNormal) { } + +simulated event SendSpawnAckToServer() { } + +simulated event Explode(vector HitLocation, vector HitNormal) { } + +simulated event ClientExplode(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated event ClientExplodeSpecial(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated event SetShouldQueueServerHits(bool bShouldQueue) { } + +simulated function FudgeProjectileHitLocationForShields(Actor Other, out Vector HitLocation, out Vector HitNormal) { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +event ClientHitUpdate(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated function ShutDown() { } + +simulated event Fizzle() { } + +simulated function Destroyed() { } + +simulated function Tick(float DeltaSeconds) { } + +simulated function CheckShieldPassthrough() { } + +simulated function bool CheckProjectileRange(optional Vector vLocOverride) { } + +function bool ApplyHit(Actor Target, Vector HitLocation, Vector HitNormal, optional int HitItem) { } + +simulated event HitWall(vector HitNormal, actor Wall, PrimitiveComponent WallComp) { } + +event ClientTargetUpdate(Actor TargetActor, Vector TargetLocation) { } + +event SetTarget(Actor TargetActor, optional Vector TargetLocation) { } + +simulated event DecalComponent SpawnShadowDecal() { } + +native simulated function TickAhead(float tickAmount); // Export UTgProj_Simulated::execTickAhead(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_SmokeScreen.uc b/Development/Src/TgGame/Classes/TgProj_SmokeScreen.uc new file mode 100644 index 0000000..d56b5d8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_SmokeScreen.uc @@ -0,0 +1,6 @@ +class TgProj_SmokeScreen extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_SnakeToss.uc b/Development/Src/TgGame/Classes/TgProj_SnakeToss.uc new file mode 100644 index 0000000..4396509 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_SnakeToss.uc @@ -0,0 +1,6 @@ +class TgProj_SnakeToss extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_SoulOrb.uc b/Development/Src/TgGame/Classes/TgProj_SoulOrb.uc new file mode 100644 index 0000000..0714ef8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_SoulOrb.uc @@ -0,0 +1,6 @@ +class TgProj_SoulOrb extends TgProj_Fireball + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_SpeedOverRange.uc b/Development/Src/TgGame/Classes/TgProj_SpeedOverRange.uc new file mode 100644 index 0000000..cc89e3f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_SpeedOverRange.uc @@ -0,0 +1,7 @@ +class TgProj_SpeedOverRange extends TgProj_SpeedOverTime + native(Projectiles) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_SpeedOverTime.uc b/Development/Src/TgGame/Classes/TgProj_SpeedOverTime.uc new file mode 100644 index 0000000..6ff0ffc --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_SpeedOverTime.uc @@ -0,0 +1,7 @@ +class TgProj_SpeedOverTime extends TgProj_Simulated + native(Projectiles) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Telepunch.uc b/Development/Src/TgGame/Classes/TgProj_Telepunch.uc new file mode 100644 index 0000000..9d86595 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Telepunch.uc @@ -0,0 +1,9 @@ +class TgProj_Telepunch extends TgProj_Simulated + native(ChampDemon) + hidecategories(Navigation) + config(Engine); + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_TimeBomb.uc b/Development/Src/TgGame/Classes/TgProj_TimeBomb.uc new file mode 100644 index 0000000..2cd6ecb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_TimeBomb.uc @@ -0,0 +1,6 @@ +class TgProj_TimeBomb extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Tracer.uc b/Development/Src/TgGame/Classes/TgProj_Tracer.uc new file mode 100644 index 0000000..7c2fe17 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Tracer.uc @@ -0,0 +1,16 @@ +class TgProj_Tracer extends TgProjectile + hidecategories(Navigation) + config(Engine); + +var export editinline TgParticleSystemComponent PSC; + +simulated function InitTracer(TgSpecialFx Fx, bool bIsEnemy, bool bConfused) { } + +simulated function Tick(float DeltaSeconds) { } + +simulated function bool CheckProjectileRange(optional Vector vLocOverride) { } + +simulated function ShutDown() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_VenomousGourd.uc b/Development/Src/TgGame/Classes/TgProj_VenomousGourd.uc new file mode 100644 index 0000000..e9191a5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_VenomousGourd.uc @@ -0,0 +1,6 @@ +class TgProj_VenomousGourd extends TgProj_FreeGrenade + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProj_Vine.uc b/Development/Src/TgGame/Classes/TgProj_Vine.uc new file mode 100644 index 0000000..98cf41b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProj_Vine.uc @@ -0,0 +1,16 @@ +class TgProj_Vine extends TgProj_Simulated + hidecategories(Navigation) + config(Engine); + +var TgDeviceForm_Vine m_VineForm; + +simulated event SpawnFlightEffects() { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated event Fizzle() { } + +simulated function StartPull(Actor Target, Vector HitLocation) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProjectile.uc b/Development/Src/TgGame/Classes/TgProjectile.uc new file mode 100644 index 0000000..515f554 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgProjectile.uc @@ -0,0 +1,262 @@ +class TgProjectile extends Projectile + native(Projectiles) + nativereplication + hidecategories(Navigation) + implements(TgSkinnableInterface,TgObserver_ViewTargetChanged) + config(Engine) + dependson(TgImpactFx, TgObject); + +const PROJECTILE_LINE_TRACE_DISTANCE = 32; + +enum SpawnDeployableOrientation { + SDO_AlignUpToNormal, // 0 + SDO_FaceRotation, // 1 +}; + +struct CollisionSettingsProjectile { + var bool bPassThroughFriends; + var bool bPassThroughEnemies; + var bool bPassThroughShields; + var bool bPassThroughBlocker; + var bool bExplodeOnShields; + var bool bExplodeOnBlockers; + var bool bHitAndPassThrough; + var bool bHitOnTick; + var bool bOnlyHitOnceOnPassThrough; + structdefaultproperties {} +}; + +struct TrackingSettings { + var const bool bUsesTracking; + var Actor mTarget; + var float fTurnStrength; + var float fVertTurnStrength; + var bool bIgnoreNonTargets; + var bool bIgnoreWorldIfSeeking; + var bool bIgnoreWorldIfNotSeeking; + structdefaultproperties {} +}; + +var TgDeviceFire s_LastDefaultMode; +var repnotify int r_nProjectileId; +var repnotify float r_fDuration; +var float m_fPostLandDuration; +var float m_fLandZThreshold; +var float m_fPersistTime; +var float m_fPersistHitPulse; +var int m_nTargetPhysicalType; +var export editinline MeshComponent c_Mesh; +var TgSpecialFx c_ExplosionFx; +var TgImpactFx c_ImpactFx; +var bool c_bRotationFollowsVelocity; +var bool m_bExplodeAtMaxRange; +var bool m_bDeployOnCharacter; +var bool m_bDeployOnTarget; +var bool m_bDeployOnGround; +var bool m_bAlwaysDeployUpwards; +var bool m_bStickToWalls; +var bool c_bIsAOE; +var bool m_bCountDirectHitForAOE; +var bool m_bUseAOEDirectHit; +var bool m_bHasExploded; +var bool m_bHitValidTarget; +var bool m_bIngoreBehindProjCollisions; +var bool m_bIsInitialized; +var bool m_bIsShutDown; +var bool m_bPIEInitialized; +var bool m_bHasPlayedFizzleFX; +var bool m_bHasPlayedHitWallFX; +var bool m_bHasPlayedHitTargetFX; +var bool m_bSuppressDeployableSpawn; +var bool m_bAltFireHit; +var bool m_bInvertTeam; +var bool m_bFirstShotAfterMovementAbility; +var bool m_bCanSpawnOnClientFirst; +var bool m_bTrackToWorldLocation; +var float r_fAccelRate; +var float m_fTossZ; +var float m_fFireAngle; +var Actor r_Owner; +var repnotify int r_nOwnerFireModeId; +var TgDeviceFire m_OwnerFireMode; +var array m_ExtraFireModes; +var float r_fRange; +var float m_fProximityDistance; +var TgCollisionProxy m_CollisionProxy; +var int s_nSpawnBotId; +var int s_nSpawnDeployableId; +var TgProjectile.SpawnDeployableOrientation m_DeployableSpawnOrientation; +var TgObject.TG_EQUIP_POINT r_eEquippedAt; +var float m_fDamageRadius; +var Vector r_vSpawnLocation; +var Vector m_vSpawnRotation; +var Vector m_vLocationLastTick; +var float m_fMinTravelRange; +var float s_fSpawnTime; +var int m_nPostRenderIcon; +var int m_nUniqueId; +var float m_fBaseDamageMultiplier; +var Vector c_vHitWallVelocity; +var () const editconst export editinline DynamicLightEnvironmentComponent LightEnvironment; +var Vector m_vSpawnPosition; +var export editinline ParticleSystemComponent m_DebugProximityDistancePSC; +var float m_fStandingStillPercent; +var int m_nTargetsHitCount; +var CollisionSettingsProjectile m_CollisionSettings; +var array m_PassThroughTargets; +var TrackingSettings m_TrackingSettings; +var float m_fDelayTrackSeconds; +var float m_fExplosionOffsetDistance; +var float s_fAoeRewindTime; +var TgAkActorUnoccluded m_AkActorUnoccluded; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_Owner, r_eEquippedAt, r_fAccelRate, r_fDuration, r_fRange, r_nOwnerFireModeId, r_nProjectileId, r_vSpawnLocation; +} + +native function float GetBuffedRange(); // Export UTgProjectile::execGetBuffedRange(FFrame&, void* const) + +native function bool CheckPhysicality(int nPawnType); // Export UTgProjectile::execCheckPhysicality(FFrame&, void* const) + +native function CompleteInitialization(); // Export UTgProjectile::execCompleteInitialization(FFrame&, void* const) + +native simulated function NativePostRenderFor(PlayerController PC, Canvas Canvas, vector CameraPosition, vector CameraDir); // Export UTgProjectile::execNativePostRenderFor(FFrame&, void* const) + +native function TgPawn SpawnBot(Vector vLocation, bool bPet); // Export UTgProjectile::execSpawnBot(FFrame&, void* const) + +native function bool GetBotSpawnLocationAndRotation(out Vector OutLocation, out Rotator OutRotation, Vector vLocation, Pointer botSetup); // Export UTgProjectile::execGetBotSpawnLocationAndRotation(FFrame&, void* const) + +native function TgDeployable SpawnDeployable(Vector vLocation, optional Actor TargetActor, optional Vector vNormal); // Export UTgProjectile::execSpawnDeployable(FFrame&, void* const) + +native function bool GetDeployLocationAndRotation(out Vector OutLocation, out Rotator OutRotation, Vector vLocation, optional Actor TargetActor, optional Vector vNormal); // Export UTgProjectile::execGetDeployLocationAndRotation(FFrame&, void* const) + +native function OnViewTargetChanged(optional Actor aNewViewTarget); // Export UTgProjectile::execOnViewTargetChanged(FFrame&, void* const) + +native function PostAkEvent(AkEvent InAkEvent); // Export UTgProjectile::execPostAkEvent(FFrame&, void* const) + +native function float GetTerminalVelocity(); // Export UTgProjectile::execGetTerminalVelocity(FFrame&, void* const) + +event bool UseAOE() { } + +simulated function PostBeginPlay() { } + +event PostProjectileInitialize() { } + +simulated function StartPulse() { } + +simulated event ClientSetExplode() { } + +simulated function TimerPulse() { } + +simulated function TimerExplode() { } + +simulated event Landed(vector HitNormal, actor FloorActor) { } + +event Init(Vector Direction) { } + +native function Vector CalculateInitialVelocity(Vector vAimDirection, bool bPlayerControlled); // Export UTgProjectile::execCalculateInitialVelocity(FFrame&, void* const) + +simulated function bool CheckProjectileRange(optional Vector vLocOverride) { } + +function RangeReached() { } + +simulated function UpdateSeekingDirection(float fDeltaTime) { } + +simulated event Vector GetSeekLocation() { } + +event SetTarget(Actor TargetActor, optional Vector TargetLocation) { } + +simulated function bool IsValidTarget(Actor A) { } + +simulated function GetHitLocationForProximityTouch(Actor Target, out Vector HitLocation, out Vector HitNormal) { } + +simulated function bool ProximityReached(Actor A, Vector HitLocation, Vector HitNormal) { } + +simulated function SetAcceleration() { } + +simulated function bool IsOutsideMinRange(Vector HitLocation) { } + +simulated event HitWall(vector HitNormal, actor Wall, PrimitiveComponent WallComp) { } + +simulated event FellOutOfWorld(class dmgType) { } + +simulated event ProcessTouchAsEvent(Actor Other, Vector HitLocation, Vector HitNormal) { } + +function ShutdownAndNotifyClient() { } + +simulated function bool HandleOnProjectileHitTarget(Actor Other, Vector HitLocation, Vector HitNormal) { } + +simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal) { } + +simulated function bool ForcefieldExclusionCheck(Actor Other) { } + +simulated function bool ShouldExplodeOnTouching(Actor Other) { } + +simulated function HitPassThroughTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated event ProxyTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event ProxyUnTouch(Actor Other) { } + +simulated function Tick(float DeltaSeconds) { } + +simulated event bool CheckTeamPassThrough(Actor Other) { } + +function bool ApplyTheHit(TgDeviceFire FireMode, ImpactInfo Impact, Actor DamageInstigator) { } + +function bool ApplyHit(Actor Target, Vector HitLocation, Vector HitNormal, optional int HitItem) { } + +simulated function Actor CalculateHitActor(Actor Target, Vector HitLocation, Vector HitNormal, out TraceHitInfo HitInfo) { } + +simulated event Explode(vector HitLocation, vector HitNormal) { } + +simulated event ExplodeOnTarget(Actor Target, Vector HitLocation, Vector HitNormal) { } + +simulated event Fizzle() { } + +simulated function ParticleSystemComponent SpawnDebugProximityDistancePSC() { } + +simulated event SpawnFlightEffects() { } + +simulated function SpawnExplosionEffects(Vector HitLocation, Vector HitNormal, optional IMPACT_FX ImpactFx) { } + +simulated function ShutDown() { } + +event TornOff() { } + +simulated function HideProjectile() { } + +simulated function Destroyed() { } + +simulated function MyOnParticleSystemFinished(ParticleSystemComponent PSC) { } + +simulated function bool ProjectileCalcCamera(float fDeltaTime, out Vector out_CamLoc, out Rotator out_CamRot, out float out_FOV) { } + +event ServerDetonate() { } + +event ServerFizzle() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PlayFizzleFX(Vector HitNormal, bool bIsExplosionFizzle) { } + +native simulated function PhysicalMaterial TraceWorldPhysicalGeometry(Vector StartLoc, Vector EndLoc, out Vector TraceHitLocation); // Export UTgProjectile::execTraceWorldPhysicalGeometry(FFrame&, void* const) + +simulated event PlayHitWallExplosionFX(Vector HitNormal, Vector HitLocation) { } + +simulated function PlayHitTargetFX(Actor Target, Vector HitLocation, Vector HitNormal, bool bExploded) { } + +simulated function bool SuppressHitTargetFX(Actor Target, Vector HitLocation, Vector HitNormal, bool bExploded) { } + +simulated function PlayAdditionalHitFX(bool bSuccessfulHit, Vector FXLocation, Vector HitNormal, Vector ProjDir, out array ExplosionParams) { } + +native function GetExplosionFXParams(out array Params); // Export UTgProjectile::execGetExplosionFXParams(FFrame&, void* const) + +simulated function AltFireDetonate() { } + +simulated event Rotator AlignDeployableByMyRotation(Vector HitNormal) { } + +native function float CheckOcclusion(); // Export UTgProjectile::execCheckOcclusion(FFrame&, void* const) + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgProperty.uc b/Development/Src/TgGame/Classes/TgProperty.uc old mode 100755 new mode 100644 index 910156e..bd023a8 --- a/Development/Src/TgGame/Classes/TgProperty.uc +++ b/Development/Src/TgGame/Classes/TgProperty.uc @@ -1,2 +1,880 @@ -class TgProperty extends Object - native; +class TgProperty extends Object + native + config(Engine); + +const TGPT_FLOAT = 137; + +const TGPT_INT = 176; + +const TGPT_COMBO = 503; + +const TGPID_PROJECTILE_SPEED = 46; + +const TGPID_PROJECITLE_GRAVITY_OVERRIDE = 1983; + +const TGPID_DAMAGE_RADIUS = 6; + +const TGPID_REMOTE_ACTIVATION_TIME = 7; + +const TGPID_POST_LAND_DURATION = 1693; + +const TGPID_PROXIMITY_DISTANCE = 8; + +const TGPID_CONE_ATTACK_ANGLE = 64; + +const TGPID_CONE_ATTACK_ANGLE_OFFSET = 1627; + +const TGPID_EFFECTIVE_RADIUS = 343; + +const TGPID_MINIMUM_RADIUS = 1048; + +const TGPID_FIRE_LOCK_TIME = 437; + +const TGPID_ACCURACY = 10; + +const TGPID_RANGE = 5; + +const TGPID_MIN_RANGE = 48; + +const TGPID_WALL_JUMP_HEIGHT_INCREASE = 1966; + +const TGPID_RESPAWN_TIME_REDUCTION_PERC = 1880; + +const TGPID_STEALTH_SOFT_REVEAL_DISTANCE = 1881; + +const TGPID_AIR_CONTROL = 1952; + +const TGPID_GROUND_SPEED = 49; + +const TGPID_AIR_SPEED = 70; + +const TGPID_JUMP_SPEED_MODIFIER = 1782; + +const TGPID_JUMP_HEIGHT_MODIFIER = 1978; + +const TGPID_MOUNT_GROUND_SPEED = 1775; + +const TGPID_MOUNT_TIME = 1776; + +const TGPID_NO_BACKPEDAL_PENALTY = 1524; + +const TGPID_KNOCKBACK = 60; + +const TGPID_KNOCKUP = 1019; + +const TGPID_KNOCKSTRAIGHTUP = 1435; + +const TGPID_KNOCKSTRAIGHTBACK = 1761; + +const TGPID_KNOCKSTRAIGHT = 2036; + +const TGPID_KNOCKBACK_PLUS_GRAVITY = 1507; + +const TGPID_KNOCKBACK_PLUS_GRAV_NO_CHARGE = 1961; + +const TGPID_PULLIN = 1667; + +const TGPID_THREAT = 420; + +const TGPID_FORCE_3P_VIEW = 1654; + +const TGPID_SCALE_MESH = 1810; + +const TGPID_SCALE_COLLISION_HEIGHT = 1813; + +const TGPID_SCALE_COLLISION_RADIUS = 1814; + +const TGPID_CONFUSED = 1812; + +const TGPID_POLYMORPH_CHICKEN = 1841; + +const TGPID_MARK_SHOT_MARK = 1991; + +const TGPID_MARK_SHOT_FIRING_AT_MARK = 1992; + +const TGPID_PURSUIT_FIRING_AT_TARGET = 1999; + +const TGPID_ASTRO_BUFF = 2023; + +const TGPID_ENERGY_CHARGE_MULTIPLIER = 2027; + +const TGPID_VISION_RANGE = 152; + +const TGPID_DEVICE_MODE_BUILDUP_TIME = 2; + +const TGPID_DEVICE_MODE_FIRE_TIME = 53; + +const TGPID_DEVICE_MODE_COOLDOWN_TIME = 4; + +const TGPID_DEVICE_MODE_TIME_TO_HOLD_BLOCK = 258; + +const TGPID_DEVICE_SHOTS_PER_FIRE = 287; + +const TGPID_TIME_TO_DEPLOY_SECS = 279; + +const TGPID_FIRE_PRE_HIT_DELAY = 1016; + +const TGPID_FIRE_POST_HIT_DELAY = 1017; + +const TGPID_TUTORIAL_MAP = 368; + +const TGPID_CAPTURE_TIME = 87; + +const TGPID_HOLD_TIME = 88; + +const TGPID_TICK_TIME = 89; + +const TGPID_CAPTURE_SCORE = 97; + +const TGPID_TICK_SCORE = 98; + +const TGPID_STUN = 166; + +const TGPID_FEAR = 1418; + +const TGPID_DAZE = 1433; + +const TGPID_SILENCE = 1023; + +const TGPID_DISARM = 303; + +const TGPID_STASIS = 1051; + +const TGPID_REVEAL = 1053; + +const TGPID_CRIPPLE = 1523; + +const TGPID_STUNTAUNT = 1555; + +const TGPID_DAMAGE_DEVICE_INTERCEPT = 1823; + +const TGPID_DAMAGE_MITIGATE_INTERCEPT = 1848; + +const TGPID_ON_LANDED_INTERCEPT = 1826; + +const TGPID_SLOW_TO_HALT = 1558; + +const TGPID_DISORIENT = 1583; + +const TGPID_ENERGY_STUN = 1652; + +const TGPID_STEALTH_IN_COMBAT = 1664; + +const TGPID_VISIBLE_THROUGH_WALLS = 1707; + +const TGPID_VISIBLE_THROUGH_WALLS_INSTIGATOR_ONLY = 1852; + +const TGPID_SEE_THROUGH_WALLS = 1771; + +const TGPID_VISIBLE_THROUGH_STEALTH = 1861; + +const TGPID_VISIBLE_THROUGH_STEALTH_INSTIGATOR_ONLY = 1862; + +const TGPID_SEE_THROUGH_STEALTH = 1863; + +const TGPID_NUGGET_STEALER_FULL_HP = 1827; + +const TGPID_HOVER = 1762; + +const TGPID_CUSTOM_FLIGHT = 1941; + +const TGPID_NO_FRICTION = 1763; + +const TGPID_GRAVITY_SCALE = 1820; + +const TGPID_JUMP_HANG = 1882; + +const TGPID_WALL_STUN = 1764; + +const TGPID_BLEEDING = 1793; + +const TGPID_ON_FIRE = 1791; + +const TGPID_POISONED = 1792; + +const TGPID_FROZEN = 1794; + +const TGPID_DECOY_AGGRO = 1944; + +const TGPID_APPLY_DOTS_NOW = 1878; + +const TGPID_LEAPING = 1899; + +const TGPID_FALL_OUT_OF_WORLD = 1945; + +const TGPID_MESMERIZE = 2019; + +const TGPID_MARKED_FOR_PRESENCE = 2028; + +const TGPID_PRESENCE_BUFF = 2029; + +const TGPID_FLASH_BANG = 2031; + +const TGPID_DISABLE_RAGDOLL = 2044; + +const TGPID_REMOVE_EFFECT = 140; + +const TGPID_REMOVE_ALL_DEBUFFS = 1795; + +const TGPID_PERSIST_TIME = 150; + +const TGPID_PERSIST_PULSE = 151; + +const TGPID_CHARACTER_VISION_RANGE = 152; + +const TGPID_DEVICE_EFFECTIVE_RANGE = 153; + +const TGPID_MAX_DEPLOYABLES_OUT = 154; + +const INDEX_DISPLAY_TARGET_MINIMAP = 0; + +const INDEX_DISPLAY_TARGET_INGAME = 1; + +const INDEX_DISPLAY_TARGET_BRACKET = 2; + +const INDEX_DISPLAY_TARGET_DISTANCE = 3; + +const INDEX_DISPLAY_TARGET_TAGGED = 4; + +const INDEX_DISPLAY_SEND_AUDIO_WARNING = 5; + +const INDEX_DISPLAY_TARGET_LOW_HEALTH = 6; + +const INDEX_SEE_NON_MOVING_ENEMY = 0; + +const INDEX_SEE_WALKING_ENEMY = 1; + +const INDEX_SEE_MAKING_NOISE_ENEMY = 2; + +const INDEX_SEE_FLYING_ENEMY = 3; + +const INDEX_SEE_STEALTHED_ENEMY = 4; + +const INDEX_SEE_DEPLOYABLES = 5; + +const INDEX_SEE_BEACONS = 6; + +const INDEX_SEE_BOTS_ONLY = 7; + +const TGPID_PHYSICAL_IMMUNITY = 1606; + +const TGPID_MAGICAL_IMMUNITY = 1607; + +const TGPID_HEALTH_FLOOR = 1838; + +const TGPID_BLOCK_DAMAGE_PERC = 1770; + +const TGPID_FRONTAL_IMMUNITY = 1954; + +const TGPID_PROTECTION_SLOW = 158; + +const TGPID_PROTECTION_STUN = 163; + +const TGPID_PROTECTION_KNOCKBACK = 233; + +const TGPID_PROTECTION_KNOCKUP = 1837; + +const TGPID_PROTECTION_FEAR = 1892; + +const TGPID_PROTECTION_SILENCE = 1893; + +const TGPID_PROTECTION_CC = 1591; + +const TGPID_PROTECTION_ON_FIRE = 1661; + +const TGPID_PROTECTION_BLEEDING = 1819; + +const TGPID_PROTECTION_POISON = 1696; + +const TGPID_PROTECTION_PULL = 1360; + +const TGPID_PROTECTION_DOT_DURATION = 1868; + +const TGPID_PROTECTION_DOT_DURATION_PERC = 1873; + +const TGPID_PROTECTION_DOT_DAMAGE_PERC = 1870; + +const TGPID_DEBUFF_IMMUNITY = 1796; + +const TGPID_REDUCE_DEBUFF_DURATION = 1811; + +const TGPID_CC_IMMUNITY = 1417; + +const TGPID_CC_IMMUNITY_SUPERIOR = 1894; + +const TGPID_SLOW_IMMUNITY = 1746; + +const TGPID_JUMP_PENALTY_IMMUNITY = 1753; + +const TGPID_TGEFFECTMODIFYEFFECT_LIFETIME = 1950; + +const TGPID_TGEFFECTMODIFYEFFECT_APPVALUE = 1951; + +const TGPID_TGEFFECTMODIFYEFFECT_MAXSTACK = 1989; + +const TGPID_REMOVE_PROTECTION_CC = 1560; + +const TGPID_HAS_HEALING_EFFECT_UI_SELF = 1959; + +const TGPID_HAS_HEALING_EFFECT_UI_FRIEND = 1960; + +const TGPID_MISSING_HEALTH = 211; + +const TGPID_ARCING_JUMPS = 309; + +const TGPID_ARC_RANGE = 1057; + +const TGPID_ARC_MAX_RANGE = 1058; + +const TGPID_CONTAGIOUS_RADIUS = 312; + +const TGPID_PET_LIFESPAN = 354; + +const TGPID_FIRE_ANGLE = 2009; + +const TGPID_MAX_TARGET_COUNT = 415; + +const TGPID_PROC_CHANCE_MODIFIER = 1815; + +const TGPID_DOT_DURATION_PERC = 1879; + +const TGPID_NEAR_DAMAGE_PERCENT = 1768; + +const TGPID_FAR_DAMAGE_PERCENT = 1769; + +const TGPID_AUTO_SPAWN = 170; + +const TGPID_RESPAWN = 171; + +const TGPID_BOT_COUNT = 172; + +const TGPID_RESPAWN_DELAY = 173; + +const TGPID_SPAWN_DELAY = 174; + +const TGPID_TEAM_NUMBER = 175; + +const TGPID_TASK_FORCE_NUMBER = 176; + +const TGPID_SELECTION_METHOD = 178; + +const TGPID_BOT_SELECTION_LIST = 179; + +const TGPID_PLACEMENT_METHOD = 180; + +const TGPID_PATROL_LOOP = 181; + +const TGPID_GLOBAL_ALARM_NUMBER = 182; + +const TGPID_SPAWN_LOCATION_LIST = 183; + +const TGPID_PATROL_LOCATION_LIST = 184; + +const TGPID_DEPLOYABLE_SELECTION_LIST = 185; + +const TGPID_DESTRUCTIBLE_SELECTION_LIST = 188; + +const TGPID_INSTANCE_SELECTION_LIST = 229; + +const TGPID_DEVICE_SELECTION_LIST = 282; + +const TGPID_NAME_SELECTION_LIST = 292; + +const TGPID_BULK_SPAWN = 230; + +const TGPID_LOOT_TABLE_ID = 332; + +const TGPID_SPAWN_TABLE_ID = 340; + +const TGPID_TIME_TO_CAPTURE = 288; + +const TGPID_CAPTURE_ONLY_ONCE = 289; + +const TGPID_ALLOW_AIBOT_INTERACTION = 290; + +const TGPID_ALLOW_PLAYERBOT_INTERACTION = 291; + +const TGPID_TIME_TO_HOLD = 294; + +const TGPID_DEFENDER_RECAP_RATE = 296; + +const TGPID_CAPTURE_ACCEL_RATE = 297; + +const TGPID_CAPTURE_ACCEL_RATE_CAP = 298; + +const TGPID_OBJECTIVE_BOT_ID = 301; + +const TGPID_CAPTURE_TIME_EXTENTION = 300; + +const TGPID_OVERTIME_RATE_MODIFIER = 317; + +const TGPID_END_OT_ON_DEFENDER_PROGRESS = 320; + +const TGPID_POINTS_PER_SECOND = 326; + +const TGPID_POINTS_TO_WIN = 327; + +const TGPID_OBJECTIVE_UNLOCK_DELAY = 331; + +const TGPID_BLOCK_FRIENDLY_FIRE = 302; + +const TGPID_TAUNT = 305; + +const TGPID_BOOST_CHARGE_RATE = 337; + +const TGPID_ROOT = 338; + +const TGPID_CAPTURE_TIME_RESET = 358; + +const TGPID_PRIORITY = 346; + +const TGPID_OBJECTIVE_ID = 347; + +const TGPID_MIN_AGENTS = 401; + +const TGPID_POINTS = 398; + +const TGPID_CREDITS = 399; + +const TGPID_REWARD_XP = 400; + +const TGPID_OBJECTIVE_COOLDOWN_SECONDS = 409; + +const TGPID_MINIMUM_LEVEL = 410; + +const TGPID_LIFT = 2030; + +const TGPID_REDUCE_ACTIVE_COOLDOWN = 1554; + +const TGPID_REDUCE_ACTIVE_COOLDOWN_CHILD_DEVICE = 1840; + +const TGPID_REDUCE_ACTIVE_COOLDOWN_CHILD_ITEMS = 1942; + +const TGPID_AMMO_COUNT = 424; + +const TGPID_AMMO_CLIP_PRE_RELOAD_TIME = 435; + +const TGPID_AMMO_CLIP_POST_RELOAD_TIME = 425; + +const TGPID_AMMO_CLIP_SIZE = 426; + +const TGPID_AMMO_REPLENISH = 427; + +const TGPID_AMMO_COST_PER_SHOT = 1853; + +const TGPID_AMMO_REGEN_PER_SEC = 1854; + +const TGPID_DROGOZ_ENERGY = 1886; + +const TGPID_DROGOZ_ENERGY_MAX = 1887; + +const TGPID_ORACLE_ORB_STACK = 1993; + +const TGPID_HEALTH = 51; + +const TGPID_HEALTH_MAX = 304; + +const TGPID_HEALTH_MAX_PERCENT = 1620; + +const TGPID_HP5 = 1011; + +const TGPID_HP5_PERCENT = 1565; + +const TGPID_HP5_PERCENT_OF_MAX_HEALTH = 1772; + +const TGPID_MANA_MAX = 1001; + +const TGPID_MANA = 1002; + +const TGPID_MP5 = 1003; + +const TGPID_ENERGY = 1004; + +const TGPID_ENERGY_MAX = 1005; + +const TGPID_EP5 = 1006; + +const TGPID_SHIELD = 1598; + +const TGPID_SHIELD_MAX = 1599; + +const TGPID_SHIELD_MAX_INSTIGATOR_SCALE = 1612; + +const TGPID_POWER_PHYSICAL_BOT = 1082; + +const TGPID_POWER_PHYSICAL_ITEM = 1007; + +const TGPID_POWER_PHYSICAL_PERC = 1047; + +const TGPID_POWER_MAGICAL_BOT = 1083; + +const TGPID_POWER_MAGICAL_ITEM = 1008; + +const TGPID_POWER_MAGICAL_PERC = 1046; + +const TGPID_POWER_UTILITY_BOT = 1484; + +const TGPID_POWER_UTILITY_ITEM = 1485; + +const TGPID_LIFESTEAL = 1010; + +const TGPID_LIFESTEAL_INSTIGATOR_ONLY = 1898; + +const TGPID_LIFESTEAL_VENGEANCE_TARGET = 2006; + +const TGPID_HEALTH_COST = 1578; + +const TGPID_MANA_COST = 1012; + +const TGPID_ENERGY_COST = 1013; + +const TGPID_MINIMAP_LOS_IGNORED = 1032; + +const TGPID_MINIMAP_DETECTOR = 1033; + +const TGPID_HEALTH_PERCENT = 1044; + +const TGPID_MANA_PERCENT = 1045; + +const TGPID_SHIELD_PERCENT = 1988; + +const TGPID_CUSTOM_VALUE_1 = 1049; + +const TGPID_CUSTOM_VALUE_2 = 1050; + +const TGPID_CUSTOM_VALUE_3 = 1594; + +const TGPID_CUSTOM_VALUE_4 = 1595; + +const TGPID_CUSTOM_VALUE_5 = 1596; + +const TGPID_FIRE_HOLD_TIME = 1757; + +const TGPID_FIRE_HOLD_RATE = 1963; + +const TGPID_FIRE_HOLD_ACCURACY_PERC_LOW = 1758; + +const TGPID_FIRE_HOLD_DAMAGE_PERC_LOW = 1759; + +const TGPID_SLOW_DIMINISHING = 1231; + +const TGPID_SLOW_CAP_PERC = 1948; + +const TGPID_MARKED = 1839; + +const TGPID_MARKED_INHAND = 1970; + +const TGPID_HEALING_TAKEN_PERC = 1056; + +const TGPID_HEALING_TAKEN_OTHERS_PERC = 1947; + +const TGPID_DAMAGE_TAKEN_PERC = 316; + +const TGPID_DAMAGE_TAKEN_PERC_INHAND = 1665; + +const TGPID_DAMAGE_TAKEN_PERC_AOE = 1765; + +const TGPID_DAMAGE_TAKEN_PERC_DIRECT = 1949; + +const TGPID_DAMAGE_TAKEN_PERC_PHYS = 1630; + +const TGPID_DAMAGE_CAP_PERC_MAX_HP = 1857; + +const TGPID_DAMAGE_CAP_PERC_CUR_HP = 1858; + +const TGPID_DAMAGE_REDUCTION_FLAT = 1874; + +const TGPID_DAMAGE_REDUCTION_PERC = 1990; + +const TGPID_DAMAGE_REDUCTION_PERC_INHAND = 1997; + +const TGPID_DAMAGE_REDUCTION_PERC_AOE = 1996; + +const TGPID_DAMAGE_REDUCTION_PERC_DIRECT = 1995; + +const TGPID_DAMAGE_REDUCTION_PERC_PHYS = 1994; + +const TGPID_DAMAGE_REDUCTION_PERC_MAG = 1998; + +const TGPID_DAMAGE_AMP_PERC = 2000; + +const TGPID_DAMAGE_AMP_PERC_INHAND = 2005; + +const TGPID_DAMAGE_AMP_PERC_AOE = 2002; + +const TGPID_DAMAGE_AMP_PERC_DIRECT = 2001; + +const TGPID_DAMAGE_AMP_PERC_PHYS = 2003; + +const TGPID_DAMAGE_AMP_PERC_MAG = 2004; + +const TGPID_DAMAGE_AMP_FAIRY = 2007; + +const TGPID_DAMAGE_DEALT_PERC = 65; + +const TGPID_DAMAGE_DEALT_PERC_BASIC = 1605; + +const TGPID_DAMAGE_DEALT_PERC_PHYSICAL = 1864; + +const TGPID_DAMAGE_DEALT_PERC_MAGICAL = 1865; + +const TGPID_DAMAGE_DEALT_PERC_DEPLOYABLES = 1859; + +const TGPID_DAMAGE_DEALT_PERC_SHIELDS = 1860; + +const TGPID_DAMAGE_DEALT_FLAT = 1875; + +const TGPID_HEAL_BLOCK = 1877; + +const TGPID_STEALTH = 1416; + +const TGPID_STEALTH_GUARD = 1832; + +const TGPID_STEALTH_WITHFADING = 1597; + +const TGPID_STEALTH_DISABLED = 141; + +const TGPID_STEALTH_NO_REVEAL = 1660; + +const TGPID_BREAK_GRAB = 1556; + +const TGPID_GP_SURRENDER_TIME = 1386; + +const TGPID_GP_STARTING_GOLD = 1426; + +const TGPID_GP_STARTING_LEVEL = 1427; + +const TGPID_GP_GOLD_SPOOL = 1500; + +const TGPID_GP_XP_SPOOL = 1501; + +const TGPID_GP_ENABLE_NEW_FOW = 1568; + +const TGPID_GP_MAX_RESPAWN_TIME = 1569; + +const TGPID_GP_GOD_XP_COEFFICIENT = 1581; + +const TGPID_INHAND_EFFECTIVE_RANGE = 1684; + +const TGPID_INHAND_ABSOLUTE_RANGE = 1685; + +const TGPID_INHAND_AMMO_CAPACITY = 1687; + +const TGPID_INHAND_RELOAD_SPEED = 1688; + +const TGPID_INHAND_REFIRE_SPEED = 1699; + +const TGPID_INHAND_EFFECTIVE_AOE = 1689; + +const TGPID_INHAND_ABSOLUTE_AOE = 1690; + +const TGPID_INHAND_RESTORE_AMMO = 1855; + +const TGPID_OUT_OF_COMBAT = 1694; + +const TGPID_ENTER_COMBAT = 1700; + +const TGPID_COMBAT_DURATION_REDUCTION_PERC = 1703; + +const TGPID_IGNORE_ACTOR_BLOCKING = 1745; + +const TGPID_ETHEREAL = 1821; + +const TGPID_INHAND_FIRE_OVERRIDE = 1822; + +const TGPID_AI_DEVICE_RANGE = 1486; + +const TGPID_AI_DEVICE_RADIUS = 1487; + +const TGPID_HEAD_SHOT_DAMAGE = 1905; + +const TGPID_AI_ACCURACY_PERC = 1888; + +const TGPID_AI_ACCURACY_DEG_MISSED = 1889; + +const TGPID_CONFIG_SETTING_GAMEPAD_X_SENSITIVITY = 1971; + +const TGPID_CONFIG_SETTING_GAMEPAD_Y_SENSITIVITY = 1972; + +const TGPID_CONFIG_SETTING_GAMEPAD_AIM_ACCEL_MODE = 1973; + +const TGPID_CONFIG_SETTING_GAMEPAD_AIM_ACCEL_BOOST = 1974; + +const TGPID_CONFIG_SETTING_GAMEPAD_AIM_ASSIST_MAGNET = 1975; + +const TGPID_CONFIG_SETTING_GAMEPAD_AIM_ASSIST_TRACKING = 1976; + +const TGPID_CONFIG_SETTING_GAMEPAD_DEAD_ZONE_INNER = 1984; + +const TGPID_CONFIG_SETTING_GAMEPAD_DEAD_ZONE_OUTER = 1985; + +const TGPID_CONFIG_SETTING_SCOPE_SENSITIVITY = 2042; + +const PROTECTION_IMMUNITY_VALUE = 100; + +const PROTECTION_DAMAGE_IMMUNITY_VALUE = 10000; + +enum TG_PAWN_PROPERTIES { + TGPIDX_CHARACTER_VISION_RANGE, // 0 + TGPIDX_ENERGY_MAX, // 1 + TGPIDX_ENERGY, // 2 + TGPIDX_EP5, // 3 + TGPIDX_WALL_JUMP_HEIGHT_INCREASE, // 4 + TGPIDX_RESPAWN_TIME_REDUCTION_PERC, // 5 + TGPIDX_STEALTH_SOFT_REVEAL_DISTANCE, // 6 + TGPIDX_AIR_CONTROL, // 7 + TGPIDX_GROUND_SPEED, // 8 + TGPIDX_AIR_SPEED, // 9 + TGPIDX_JUMP_SPEED_MODIFIER, // 10 + TGPIDX_JUMP_HEIGHT_MODIFIER, // 11 + TGPIDX_MOUNT_GROUND_SPEED, // 12 + TGPIDX_MOUNT_TIME, // 13 + TGPIDX_DROGOZ_ENERGY, // 14 + TGPIDX_DROGOZ_ENERGY_MAX, // 15 + TGPIDX_ORACLE_ORB_STACK, // 16 + TGPIDX_HEALTH_MAX, // 17 + TGPIDX_HEALTH_MAX_PERCENT, // 18 + TGPIDX_HEALTH, // 19 + TGPIDX_HP5, // 20 + TGPIDX_MANA_MAX, // 21 + TGPIDX_MANA, // 22 + TGPIDX_MP5, // 23 + TGPIDX_STEALTH_GUARD, // 24 + TGPIDX_VISIBLE_THROUGH_WALLS, // 25 + TGPIDX_VISIBLE_THROUGH_WALLS_INSTIGATOR_ONLY, // 26 + TGPIDX_SEE_THROUGH_WALLS, // 27 + TGPIDX_VISIBLE_THROUGH_STEALTH, // 28 + TGPIDX_VISIBLE_THROUGH_STEALTH_INSTIGATOR_ONLY, // 29 + TGPIDX_SEE_THROUGH_STEALTH, // 30 + TGPIDX_NUGGET_STEALER_FULL_HP, // 31 + TGPIDX_HOVER, // 32 + TGPIDX_CUSTOM_FLIGHT, // 33 + TGPIDX_NO_FRICTION, // 34 + TGPIDX_GRAVITY_SCALE, // 35 + TGPIDX_JUMP_HANG, // 36 + TGPIDX_SHIELD, // 37 + TGPIDX_SHIELD_MAX, // 38 + TGPIDX_LIFESTEAL, // 39 + TGPIDX_LIFESTEAL_INSTIGATOR_ONLY, // 40 + TGPIDX_LIFESTEAL_VENGEANCE_TARGET, // 41 + TGPIDX_POWER_MAGICAL_BOT, // 42 + TGPIDX_POWER_PHYSICAL_BOT, // 43 + TGPIDX_PROTECTION_FEAR, // 44 + TGPIDX_PROTECTION_KNOCKBACK, // 45 + TGPIDX_PROTECTION_KNOCKUP, // 46 + TGPIDX_PROTECTION_SILENCE, // 47 + TGPIDX_PROTECTION_SLOW, // 48 + TGPIDX_PROTECTION_STUN, // 49 + TGPIDX_PROTECTION_PULL, // 50 + TGPIDX_PROTECTION_CC, // 51 + TGPIDX_PROTECTION_ON_FIRE, // 52 + TGPIDX_PROTECTION_BLEEDING, // 53 + TGPIDX_PROTECTION_POISON, // 54 + TGPIDX_PROTECTION_DOT_DURATION, // 55 + TGPIDX_PROTECTION_DOT_DURATION_PERC, // 56 + TGPIDX_PROTECTION_DOT_DAMAGE_PERC, // 57 + TGPIDX_DEBUFF_IMMUNITY, // 58 + TGPIDX_REDUCE_DEBUFF_DURATION, // 59 + TGPIDX_CC_IMMUNITY, // 60 + TGPIDX_CC_IMMUNITY_SUPERIOR, // 61 + TGPIDX_SLOW_IMMUNITY, // 62 + TGPIDX_JUMP_PENALTY_IMMUNITY, // 63 + TGPIDX_TAUNT, // 64 + TGPIDX_POWER_PHYSICAL_PERC, // 65 + TGPIDX_POWER_MAGICAL_PERC, // 66 + TGPIDX_HEALING_TAKEN_PERC, // 67 + TGPIDX_HEALING_TAKEN_OTHERS_PERC, // 68 + TGPIDX_DAMAGE_TAKEN_PERC, // 69 + TGPIDX_DAMAGE_DEALT_PERC, // 70 + TGPIDX_DAMAGE_DEALT_PERC_BASIC, // 71 + TGPIDX_DAMAGE_DEALT_PERC_PHYSICAL, // 72 + TGPIDX_DAMAGE_DEALT_PERC_MAGICAL, // 73 + TGPIDX_DAMAGE_DEALT_PERC_DEPLOYABLES, // 74 + TGPIDX_DAMAGE_DEALT_PERC_SHIELDS, // 75 + TGPIDX_DAMAGE_DEALT_FLAT, // 76 + TGPIDX_POWER_PHYSICAL_ITEM, // 77 + TGPIDX_POWER_MAGICAL_ITEM, // 78 + TGPIDX_POWER_UTILITY_BOT, // 79 + TGPIDX_POWER_UTILITY_ITEM, // 80 + TGPIDX_SLOW_DIMINISHING, // 81 + TGPIDX_MARKED, // 82 + TGPIDX_MARKED_INHAND, // 83 + TGPIDX_MINIMAP_LOS_IGNORED, // 84 + TGPIDX_MINIMAP_DETECTOR, // 85 + TGPIDX_BLOCK_DAMAGE_PERC, // 86 + TGPIDX_FRONTAL_IMMUNITY, // 87 + TGPIDX_NO_BACKPEDAL_PENALTY, // 88 + TGPIDX_HP5_PERC, // 89 + TGPIDX_HP5_PERC_OF_MAX_HEALTH, // 90 + TGPIDX_PHYSICAL_IMMUNITY, // 91 + TGPIDX_MAGICAL_IMMUNITY, // 92 + TGPIDX_DAMAGE_TAKEN_PERC_PHYS, // 93 + TGPIDX_DAMAGE_TAKEN_PERC_INHAND, // 94 + TGPIDX_DAMAGE_TAKEN_PERC_AOE, // 95 + TGPIDX_DAMAGE_TAKEN_PERC_DIRECT, // 96 + TGPIDX_DAMAGE_REDUCTION_FLAT, // 97 + TGPIDX_DAMAGE_REDUCTION_PERC, // 98 + TGPIDX_DAMAGE_REDUCTION_PERC_INHAND, // 99 + TGPIDX_DAMAGE_REDUCTION_PERC_AOE, // 100 + TGPIDX_DAMAGE_REDUCTION_PERC_DIRECT, // 101 + TGPIDX_DAMAGE_REDUCTION_PERC_PHYS, // 102 + TGPIDX_DAMAGE_REDUCTION_PERC_MAG, // 103 + TGPIDX_DAMAGE_AMP_PERC, // 104 + TGPIDX_DAMAGE_AMP_PERC_INHAND, // 105 + TGPIDX_DAMAGE_AMP_PERC_AOE, // 106 + TGPIDX_DAMAGE_AMP_PERC_DIRECT, // 107 + TGPIDX_DAMAGE_AMP_PERC_PHYS, // 108 + TGPIDX_DAMAGE_AMP_PERC_MAG, // 109 + TGPIDX_DAMAGE_AMP_FAIRY, // 110 + TGPIDX_HEAL_BLOCK, // 111 + TGPIDX_INHAND_RELOAD_SPEED, // 112 + TGPIDX_INHAND_AMMO_CAPACITY, // 113 + TGPIDX_INHAND_REFIRE_SPEED, // 114 + TGPIDX_COMBAT_DURATION_REDUCTION_PERC, // 115 + TGPIDX_IGNORE_ACTOR_BLOCKING, // 116 + TGPIDX_FORCE_3P_VIEW, // 117 + TGPIDX_SCALE_MESH, // 118 + TGPIDX_SCALE_COLLISION_HEIGHT, // 119 + TGPIDX_SCALE_COLLISION_RADIUS, // 120 + TGPIDX_CONFUSED, // 121 + TGPIDX_NEAR_DAMAGE_PERCENT, // 122 + TGPIDX_FAR_DAMAGE_PERCENT, // 123 + TGPIDX_BLEEDING, // 124 + TGPIDX_ON_FIRE, // 125 + TGPIDX_POISONED, // 126 + TGPIDX_FROZEN, // 127 + TGPIDX_INHAND_EFFECTIVE_AOE, // 128 + TGPIDX_INHAND_ABSOLUTE_AOE, // 129 + TGPIDX_PROC_CHANCE_MODIFIER, // 130 + TGPIDX_DOT_DURATION_PERC, // 131 + TGPIDX_ETHEREAL, // 132 + TGPIDX_INHAND_FIRE_OVERRIDE, // 133 + TGPIDX_HEALTH_FLOOR, // 134 + TGPIDX_LEAPING, // 135 + TGPIDX_DECOY_AGGRO, // 136 + TGPIDX_HAS_HEALING_EFFECT_UI_SELF, // 137 + TGPIDX_HAS_HEALING_EFFECT_UI_FRIEND, // 138 + TGPIDX_MARK_SHOT_MARK, // 139 + TGPIDX_MARK_SHOT_FIRING_AT_MARK, // 140 + TGPIDX_PURSUIT_FIRING_AT_TARGET, // 141 + TGPIDX_MESMERIZE, // 142 + TGPIDX_MARKED_FOR_PRESENCE, // 143 + TGPIDX_PRESENCE_BUFF, // 144 + TGPIDX_DISABLE_RAGDOLL, // 145 +}; + +var int m_nPropIndex; +var int m_nPropertyId; +var float m_fBase; +var float m_fRaw; +var float m_fMinimum; +var float m_fMaximum; +var float m_fScalingFactor; + +native function float GetCurrentValue(); // Export UTgProperty::execGetCurrentValue(FFrame&, void* const) + +simulated event Copy(TgProperty pProperty) { } + +native function int GetPropIndex(int propId); // Export UTgProperty::execGetPropIndex(FFrame&, void* const) + +native function int GetPropIndexByName(string propName); // Export UTgProperty::execGetPropIndexByName(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgRecoilKeyframe.uc b/Development/Src/TgGame/Classes/TgRecoilKeyframe.uc new file mode 100644 index 0000000..0c2701c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRecoilKeyframe.uc @@ -0,0 +1,12 @@ +class TgRecoilKeyframe extends Object + native + editinlinenew + hidecategories(Object) + autoexpandcategories(TgRecoilKeyframe) + config(Engine); + +var () float firingTime; +var () RawDistributionFloat RecoilPerShot; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_CapturePoint.uc b/Development/Src/TgGame/Classes/TgRepInfo_CapturePoint.uc new file mode 100644 index 0000000..9620f49 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRepInfo_CapturePoint.uc @@ -0,0 +1,35 @@ +class TgRepInfo_CapturePoint extends ReplicationInfo + native(Game) + nativereplication + hidecategories(Navigation,Movement,Collision) + config(Engine); + +var TgCapturePoint r_OwningCapturePoint; +var int r_nUniqueCapturePointId; +var repnotify int r_nControlledByTaskForce; +var repnotify float r_fOwnershipPct; +var repnotify byte r_nTransitionDirection; +var repnotify bool r_bIsLocked; +var transient TgSeqEvent_ControlPointOwnershipPercent c_OwnershipPercentKismetNode; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_OwningCapturePoint, r_bIsLocked, r_fOwnershipPct, r_nControlledByTaskForce, r_nTransitionDirection, r_nUniqueCapturePointId; +} + +native function Vector GetCurrentLocation(); // Export UTgRepInfo_CapturePoint::execGetCurrentLocation(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event PostBeginPlay() { } + +simulated function OnTaskForceControlChanged() { } + +simulated event OnOwnershipPctChanged() { } + +simulated event int GetCapturePointIndex() { } + +defaultproperties +{ + r_fOwnershipPct=0.5000000 + s_bThrottleNetRelevancy=false +} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_Deployable.uc b/Development/Src/TgGame/Classes/TgRepInfo_Deployable.uc new file mode 100644 index 0000000..c9cb92b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRepInfo_Deployable.uc @@ -0,0 +1,97 @@ +class TgRepInfo_Deployable extends ReplicationInfo + native(Game) + nativereplication + hidecategories(Navigation,Movement,Collision) + config(Engine) + dependson(TgObject); + +var int r_nHealthCurrent; +var int r_nHealthMaximum; +var float r_fDeployMaxHealthPCT; +var int r_nDeployableId; +var int r_nUniqueDeployableId; +var float r_fLifespanInitial; +var repnotify float r_fLifespanSync; +var repnotify TgDeployable r_DeployableOwner; +var repnotify TgRepInfo_Player r_InstigatorInfo; +var repnotify TgRepInfo_TaskForce r_TaskforceInfo; +var repnotify bool r_bOwnedByTaskforce; +var bool c_bReceivedOwner; +var bool r_bMinimapOnlyOwnerSee; +var bool r_bInDestroyedState; +var bool c_bShowHUDLifespanTimer; +var Vector r_ApproxLocation; +var TG_HUD_INFO c_HudInfo; +var byte r_bVisibleOnMap[TgMapTeam]; +var TgObject.DeployableOverlayIcon r_eDeployableOverlayIcon; +var TgObject.DeployableOverlayState r_eDeployableOverlayState; +var float r_fVisionRange; +var int r_nDeployableOverlayDisplayMask; +var float r_fDeployableOverlayEnemyViewDist; +var float c_fBarragePercent; + +replication { + if(bNetDirty && int(Role) == int(ENetRole.ROLE_Authority)) r_ApproxLocation, r_DeployableOwner, r_InstigatorInfo, r_TaskforceInfo, r_bInDestroyedState, r_bMinimapOnlyOwnerSee, r_bOwnedByTaskforce, r_bVisibleOnMap, r_eDeployableOverlayIcon, r_eDeployableOverlayState, r_fDeployableOverlayEnemyViewDist, r_fLifespanInitial, r_fLifespanSync, r_fVisionRange, r_nDeployableOverlayDisplayMask, r_nHealthCurrent, r_nHealthMaximum; + if(bNetInitial && int(Role) == int(ENetRole.ROLE_Authority)) r_fDeployMaxHealthPCT, r_nDeployableId, r_nUniqueDeployableId; +} + +native function TgRepInfo_TaskForce GetTaskForce(); // Export UTgRepInfo_Deployable::execGetTaskForce(FFrame&, void* const) + +native function SetTaskForce(TgRepInfo_TaskForce tf); // Export UTgRepInfo_Deployable::execSetTaskForce(FFrame&, void* const) + +native function Vector GetCurrentLocation(); // Export UTgRepInfo_Deployable::execGetCurrentLocation(FFrame&, void* const) + +native function int GetCurrentHealth(); // Export UTgRepInfo_Deployable::execGetCurrentHealth(FFrame&, void* const) + +native function int GetCurrentMaxHealth(); // Export UTgRepInfo_Deployable::execGetCurrentMaxHealth(FFrame&, void* const) + +native function float GetLifespan(); // Export UTgRepInfo_Deployable::execGetLifespan(FFrame&, void* const) + +native function float GetMaxLifespan(); // Export UTgRepInfo_Deployable::execGetMaxLifespan(FFrame&, void* const) + +native function UpdateMapVisibility(TgObject.TgMapTeam MAPTEAM, byte bVisible, float fVisionRange, bool bDetected); // Export UTgRepInfo_Deployable::execUpdateMapVisibility(FFrame&, void* const) + +native function bool IsVisibleToAnEnemyTeam(); // Export UTgRepInfo_Deployable::execIsVisibleToAnEnemyTeam(FFrame&, void* const) + +native function bool IsVisibleToMapTeam(TgObject.TgMapTeam MAPTEAM); // Export UTgRepInfo_Deployable::execIsVisibleToMapTeam(FFrame&, void* const) + +native function bool IsVisibleToPlayer(TgRepInfo_Player PRI); // Export UTgRepInfo_Deployable::execIsVisibleToPlayer(FFrame&, void* const) + +native function bool IsVisibleToLocalPlayer(); // Export UTgRepInfo_Deployable::execIsVisibleToLocalPlayer(FFrame&, void* const) + +native function CheckNotifyGroupChanged(); // Export UTgRepInfo_Deployable::execCheckNotifyGroupChanged(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +simulated event Destroyed() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function ReceivedDeployableOwner() { } + +function UpdateDeployableLocation() { } + +function StartLifespanTimer(float fTime) { } + +function SyncLifespanTimer() { } + +simulated function UpdateLifespanTimer() { } + +simulated function LifespanTimer() { } + +simulated event SetHUDOverlayDisplayMask(int dodm) { } + +simulated event SetHUDOverlayIcon(TgObject.DeployableOverlayIcon doi) { } + +simulated event SetHUDOverlayState(TgObject.DeployableOverlayState dos) { } + +simulated event SetHUDOverlayEnemyViewDist(float enemyViewDist) { } + +defaultproperties +{ + r_fDeployMaxHealthPCT=1.0000000 + r_fDeployableOverlayEnemyViewDist=1600.0000000 + TickGroup=TG_DuringAsyncWork + NetUpdateFrequency=1.0000000 + BotRankId=10678 +} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_Factory.uc b/Development/Src/TgGame/Classes/TgRepInfo_Factory.uc new file mode 100644 index 0000000..c0380e4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRepInfo_Factory.uc @@ -0,0 +1,61 @@ +class TgRepInfo_Factory extends ReplicationInfo + native(Game) + hidecategories(Navigation,Movement,Collision) + config(Engine) + dependson(TgObject); + +enum ReplicatedFactoryState { + RFS_None, // 0 + RFS_Vacant, // 1 + RFS_Spawned, // 2 + RFS_OwnedByTF1, // 3 + RFS_OwnedByTF2, // 4 +}; + +var TgRepInfo_Factory.ReplicatedFactoryState s_FactoryState; +var TgRepInfo_Factory.ReplicatedFactoryState r_FactoryState[TgMapTeam]; +var byte r_bVisibleOnMap[TgMapTeam]; +var byte r_bRespawnVisible[TgMapTeam]; +var TgObject.MinimapFactoryType r_MinimapType; +var repnotify TgActorFactory r_FactoryOwner; +var repnotify TgRepInfo_TaskForce r_TaskforceInfo; +var int r_nFactoryId; +var ReplicationInfo r_LastSpawnedRepInfo; +var repnotify float r_fRespawnDelay; +var repnotify float r_fRespawnTimer; + +replication { + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_FactoryOwner, r_MinimapType, r_TaskforceInfo, r_nFactoryId; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_FactoryState, r_LastSpawnedRepInfo, r_bRespawnVisible, r_bVisibleOnMap, r_fRespawnDelay, r_fRespawnTimer; +} + +native function UpdateMapVisibility(TgObject.TgMapTeam MAPTEAM, byte bVisible, float fVisionRange, bool bDetected); // Export UTgRepInfo_Factory::execUpdateMapVisibility(FFrame&, void* const) + +native function bool IsVisibleToLocalPlayer(); // Export UTgRepInfo_Factory::execIsVisibleToLocalPlayer(FFrame&, void* const) + +native function float GetRespawnElapsedPercent(); // Export UTgRepInfo_Factory::execGetRespawnElapsedPercent(FFrame&, void* const) + +function InitFor(TgActorFactory Factory) { } + +simulated function PostBeginPlay() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated event Destroyed() { } + +simulated function UpdateInWorldIndicators() { } + +simulated event StartRespawnTimer(float fSeconds) { } + +function UpdateRespawnTimer() { } + +simulated event StopRespawnTimer() { } + +defaultproperties +{ + r_bVisibleOnMap[0]=1 + r_bVisibleOnMap[1]=1 + r_bVisibleOnMap[2]=1 + TickGroup=TG_DuringAsyncWork + NetUpdateFrequency=2.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_Game.uc b/Development/Src/TgGame/Classes/TgRepInfo_Game.uc old mode 100755 new mode 100644 index 183705a..0f1d8ac --- a/Development/Src/TgGame/Classes/TgRepInfo_Game.uc +++ b/Development/Src/TgGame/Classes/TgRepInfo_Game.uc @@ -1,23 +1,355 @@ -class TgRepInfo_Game extends GameReplicationInfo - native(Game) - config(Game) - hidecategories(Navigation,Movement,Collision); - -var bool r_bKillCamEnabled; -var bool r_bAttackersKillCamEnabled; -var bool r_bDefendersKillCamEnabled; -var bool r_bBlockKillCam; -var repnotify TgRepInfo_TaskForce r_AttackingTaskForce; -var repnotify TgRepInfo_TaskForce r_CapturingTaskForce; -var int r_nPlayOfTheGamePawnId; - -// Export UTgRepInfo_Game::execGetTaskForce(FFrame&, void* const) -native function TgRepInfo_TaskForce GetTaskForce(int nTaskForceNum, optional bool bCreate = false); - -// Export UTgRepInfo_Game::execGetAttackingTaskForce(FFrame&, void* const) -native final function TgRepInfo_TaskForce GetAttackingTaskForce(); - -// Export UTgRepInfo_Game::execGetDefendingTaskForce(FFrame&, void* const) -native final function TgRepInfo_TaskForce GetDefendingTaskForce(); - -simulated function UpdateAttackingTaskforce(TgRepInfo_TaskForce NewAttackingTaskForce){} \ No newline at end of file +class TgRepInfo_Game extends GameReplicationInfo + native(Game) + config(Game) + hidecategories(Navigation,Movement,Collision) + dependson(TgAIController_Behavior, TgAIDirector, TgObject); + +const TG_MAX_MAP_OBJECTIVES = 75; + +const TG_MAX_CAPTURE_POINTS = 5; + +enum MissionTimerState { + MTS_STOPPED, // 0 + MTS_RUNNING, // 1 + MTS_PAUSED, // 2 +}; + +enum MAP_LANE { + MAP_LANE_NONE, // 0 + MAP_LANE_LEFT, // 1 + MAP_LANE_MIDDLE, // 2 + MAP_LANE_RIGHT, // 3 +}; + +enum EFlagState { + FLAG_Home, // 0 + FLAG_HeldFriendly, // 1 + FLAG_HeldEnemy, // 2 + FLAG_Down, // 3 +}; + +struct GraphData { + var int XP; + var int Gold; + var int Time; + structdefaultproperties {} +}; + +struct BotDifficultyDebugData { + var bool CurrentlyActive; + var bool DisparityDetected; + var bool ChangesLockedOut; + var int TimeBeforeTrigger; + var TgAIController_Behavior.EBotDifficultyLevel TaskForce1BotDifficulty; + var TgAIController_Behavior.EBotDifficultyLevel TaskForce2BotDifficulty; + var float TaskForce1Skill; + var float TaskForce2Skill; + var SkillLevelPercentageData SkillPercentages[2]; + structdefaultproperties {} +}; + +var array m_GraphData; +var GraphData r_LastDataPoint; +var float m_GraphUpdateWaitTime; +var repnotify TgObject.TG_GAME_TYPE r_GameType; +var TgObject.INITIALIZEABLE_BOOL r_eTalentsEnabled; +var TgRepInfo_Game.MissionTimerState r_nMissionTimerState; +var repnotify TgObject.GameTimerState r_eGameTimerState; +var TgRepInfo_Game.MissionTimerState r_nRoundLimitTimerState; +var TgRepInfo_Game.MissionTimerState r_nSecondaryTimerState; +var byte r_nLastRoundAttacker; +var byte r_nLastRoundWinner; +var TgRepInfo_Game.EFlagState r_FlagState[2]; +var repnotify TgObject.EGameEnvironmentRule r_GameEnvironmentRule; +var TgObject.EGameRespawnRule r_GameRespawnRule; +var TgObject.EGameMode r_GameMode; +var bool r_bIsMission; +var bool r_bBlockCreditGain; +var bool r_bBlockEnergyGain; +var bool r_bOvertime; +var bool r_bCapturePointOvertime; +var bool r_bRoundEnding; +var bool r_bFadeOutAtRoundEnd; +var repnotify bool r_bIntroPlayed; +var repnotify bool r_bUsePointsMode; +var bool r_bUltimatesLocked; +var bool r_bEnableDistanceFOW; +var repnotify bool r_bSpawnGatesOpen; +var repnotify bool r_bAttackersSpawnGatesOpen; +var repnotify bool r_bDefendersSpawnGatesOpen; +var bool r_bForwardProgress; +var bool r_bServerFlagSprint; +var bool r_bServerFlagMinimapTeamVisibility; +var bool r_bForce3P; +var bool r_bForce1P; +var bool r_bForceOutOfCombatSprint; +var bool r_bAutoMelee; +var bool r_bShowProjectileProximityDistance; +var bool r_bDisableProjectileProximityDistance; +var repnotify bool r_bShowHeadMesh; +var bool m_fFogSettingsSaved; +var config bool r_bUseInstantFireMeshTrace; +var config bool r_bAllowWeaponLagPrediction; +var bool r_bSiegeEngineRequiresAlliesToMove; +var bool r_bSiegeEngineMovementPaused; +var bool r_bSiegeEngineMovementPausedAfterDamagingGate; +var bool r_bFogConverging; +var bool r_bFogEnded; +var bool r_bCheckpoint1Reached; +var bool r_bCheckpoint2Reached; +var private bool r_bEnableHeadshots; +var bool r_bAllowPlayerMounting; +var bool r_bKillCamEnabled; +var bool r_bAttackersKillCamEnabled; +var bool r_bDefendersKillCamEnabled; +var bool r_bBlockKillCam; +var bool r_bIsFirstRound; +var bool r_bGhostMountingEnabled; +var bool r_bSpawnGatesOpenedAtLeastOnce; +var float r_fMissionRemainingTime; +var repnotify int r_nMissionTimerStateChange; +var float r_fMissionTime; +var float c_fMissionTime; +var float c_fMissionTimeSeconds; +var float c_fAIBotDelaySeconds; +var float r_fRoundLimitElapsed; +var float r_fRoundLimitDuration; +var float r_fSecondaryRemainingTime; +var repnotify int r_nSecondaryTimerStateChange; +var float r_fSecondaryTime; +var float c_fSecondaryMissionTime; +var float c_fSecondaryMissionTimeSeconds; +var float r_fCapturePointOvertimeStartDuration; +var repnotify int r_nCapturePointOvertimeStateChange; +var float r_fPayloadOvertimeStartDuration; +var repnotify int r_nPayloadOvertimeStateChange; +var float r_fTF1PayloadPushDistance; +var int r_nPurchaseTime; +var float m_fPurchaseTimer; +var repnotify TgRepInfo_TaskForce r_AttackingTaskForce; +var repnotify TgRepInfo_TaskForce r_CapturingTaskForce; +var int r_nChaosRemainingAttackDefendTime; +var int r_nCapturePoints[5]; +var TgRepInfo_TaskForce r_Winner; +var float r_fPhysicsThreshold; +var string r_sQueueName; +var int r_nPlayOfTheGamePawnId; +var int r_nPlayOfTheGameMapLane; +var float r_fPlayOfTheGameTimeStamp; +var TgPlayOfTheGameCamera c_PlayOfTheGameCamera; +var init transient array m_Deployables; +var init transient array m_Projectiles; +var init transient array m_Destructibles; +var init transient array m_DRIArray; +var init transient array m_CPRIArray; +var init transient array m_CapturePoints; +var init transient array m_MovableProjBlockers; +var repnotify transient int r_nCurrentCheckpoint[2]; +var transient int c_nNextClientOnlyProjectileInstanceId; +var TgPawn_LanePusher r_LanePusher; +var TgPawn_LanePusherBase r_LanePusher1; +var TgPawn_LanePusherBase r_LanePusher2; +var TgPawn r_SquadTarget1; +var TgPawn r_SquadTarget2; +var float r_fLastSquadTargetUpdate1; +var float r_fLastSquadTargetUpdate2; +var float r_fSpeedScale; +var float r_fPayloadProgressPercent; +var float r_fCheckpoint1Percent; +var float r_fCheckpoint2Percent; +var float r_fServerFlagDamageMultiplier; +var float r_fServerFlagGroundSpeedModifier; +var float r_fServerFlagAutoHealingMultiplier; +var TgPawn_SiegeWall r_pSiegeWallTF1[3]; +var TgPawn_SiegeWall r_pSiegeWallTF2[3]; +var float m_fSavedFogDensity; +var float m_fSavedFogStartDistance; +var Color m_SavedFogColor; +var int r_nRemainingObjectiveTime; +var int r_nTotalObjectiveTime; +var float r_fPlayerViewDistance; +var float r_fVisibilityVolumeViewDistance; +var float r_fPushTimer; +var float r_fWeaponMaxLagCompensation; +var float m_fVaultImmuneToSiegeEngineHealth; +var float r_fConvergeDistance; +var float r_fConvergeStartDistance; +var float r_fFogConvergeInterval; +var repnotify int r_nTaskForcePushSuccessful; +var repnotify int r_nTaskForceDefenseSuccessful; +var int r_nMapLane; +var float r_fGlobalFrictionFalling; +var float r_fGlobalFrictionFlying; +var BotDifficultyDebugData r_DifficultyDebugData; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_AttackingTaskForce, r_CapturingTaskForce, r_DifficultyDebugData, r_FlagState, r_GameEnvironmentRule, r_GameMode, r_GameRespawnRule, r_LanePusher, r_LanePusher1, r_LanePusher2, r_Winner, r_bAllowPlayerMounting, r_bAllowWeaponLagPrediction, r_bAttackersKillCamEnabled, r_bAttackersSpawnGatesOpen, r_bAutoMelee, r_bBlockCreditGain, r_bBlockKillCam, r_bCheckpoint1Reached, r_bCheckpoint2Reached, r_bDefendersKillCamEnabled, r_bDefendersSpawnGatesOpen, r_bDisableProjectileProximityDistance, r_bEnableDistanceFOW, r_bEnableHeadshots, r_bFadeOutAtRoundEnd, r_bFogConverging, r_bFogEnded, r_bForce1P, r_bForce3P, r_bForceOutOfCombatSprint, r_bForwardProgress, r_bIntroPlayed, r_bIsFirstRound, r_bKillCamEnabled, r_bRoundEnding, r_bServerFlagMinimapTeamVisibility, r_bServerFlagSprint, r_bShowHeadMesh, r_bShowProjectileProximityDistance, r_bSiegeEngineMovementPaused, r_bSiegeEngineMovementPausedAfterDamagingGate, r_bSiegeEngineRequiresAlliesToMove, r_bSpawnGatesOpen, r_bSpawnGatesOpenedAtLeastOnce, r_bUltimatesLocked, r_bUseInstantFireMeshTrace, r_bUsePointsMode, r_eGameTimerState, r_eTalentsEnabled, r_fCheckpoint1Percent, r_fCheckpoint2Percent, r_fConvergeDistance, r_fConvergeStartDistance, r_fFogConvergeInterval, r_fMissionRemainingTime, r_fMissionTime, r_fPayloadProgressPercent, r_fPlayerViewDistance, r_fRoundLimitDuration, r_fRoundLimitElapsed, r_fSecondaryRemainingTime, r_fSecondaryTime, r_fSpeedScale, r_fTF1PayloadPushDistance, r_fWeaponMaxLagCompensation, r_nChaosRemainingAttackDefendTime, r_nCurrentCheckpoint, r_nLastRoundAttacker, r_nLastRoundWinner, r_nMapLane, r_nMissionTimerState, r_nMissionTimerStateChange, r_nPurchaseTime, r_nRemainingObjectiveTime, r_nRoundLimitTimerState, r_nSecondaryTimerState, r_nSecondaryTimerStateChange, r_nTaskForceDefenseSuccessful, r_nTaskForcePushSuccessful, r_nTotalObjectiveTime, r_pSiegeWallTF1, r_pSiegeWallTF2; + if(int(Role) == int(ENetRole.ROLE_Authority)) r_GameType, r_bIsMission, r_fPhysicsThreshold, r_sQueueName; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetDirty) r_bGhostMountingEnabled, r_fGlobalFrictionFalling, r_fGlobalFrictionFlying; +} + +native function int GetDeployableCount(); // Export UTgRepInfo_Game::execGetDeployableCount(FFrame&, void* const) + +native function TgDeployable GetDeployable(int nIndex); // Export UTgRepInfo_Game::execGetDeployable(FFrame&, void* const) + +native function TgProjectile GetProjectile(int nIndex); // Export UTgRepInfo_Game::execGetProjectile(FFrame&, void* const) + +native function TgRepInfo_TaskForce GetTaskForceFor(const Actor Actor); // Export UTgRepInfo_Game::execGetTaskForceFor(FFrame&, void* const) + +native function TgRepInfo_TaskForce GetTaskForce(int nTaskForceNum, optional bool bCreate=false); // Export UTgRepInfo_Game::execGetTaskForce(FFrame&, void* const) + +native function TgRepInfo_TaskForce CreateTaskForce(int nTaskForceNum); // Export UTgRepInfo_Game::execCreateTaskForce(FFrame&, void* const) + +native function bool TaskForceEnumerate(out TgRepInfo_TaskForce rpTaskForce, out int rnTaskForceNum, optional bool bPlayerOnly=true); // Export UTgRepInfo_Game::execTaskForceEnumerate(FFrame&, void* const) + +native function int GetNumNearbyPlayers(int nTaskForceNum, Vector vLocation, float fDist); // Export UTgRepInfo_Game::execGetNumNearbyPlayers(FFrame&, void* const) + +native function GetOpposingTeamsPawns(const TgPawn instigatingPawn, out array enemyPawns); // Export UTgRepInfo_Game::execGetOpposingTeamsPawns(FFrame&, void* const) + +native function TgRepInfo_TaskForce GetAttackingTaskForce(); // Export UTgRepInfo_Game::execGetAttackingTaskForce(FFrame&, void* const) + +native function TgRepInfo_TaskForce GetDefendingTaskForce(); // Export UTgRepInfo_Game::execGetDefendingTaskForce(FFrame&, void* const) + +native simulated function bool CheckIsEnemy(const Actor A, const Actor B); // Export UTgRepInfo_Game::execCheckIsEnemy(FFrame&, void* const) + +native function UpdateGameClockUI(); // Export UTgRepInfo_Game::execUpdateGameClockUI(FFrame&, void* const) + +native function UpdateGameScoreUI(); // Export UTgRepInfo_Game::execUpdateGameScoreUI(FFrame&, void* const) + +native function UpdateGameTransitionUI(); // Export UTgRepInfo_Game::execUpdateGameTransitionUI(FFrame&, void* const) + +native function GameStateChanged(); // Export UTgRepInfo_Game::execGameStateChanged(FFrame&, void* const) + +native function GameTypeSet(); // Export UTgRepInfo_Game::execGameTypeSet(FFrame&, void* const) + +native function SpawnGatesOpenChanged(); // Export UTgRepInfo_Game::execSpawnGatesOpenChanged(FFrame&, void* const) + +native function AttackersSpawnGatesOpenChanged(); // Export UTgRepInfo_Game::execAttackersSpawnGatesOpenChanged(FFrame&, void* const) + +native function DefendersSpawnGatesOpenChanged(); // Export UTgRepInfo_Game::execDefendersSpawnGatesOpenChanged(FFrame&, void* const) + +native function TgProj_Simulated GetClientSpawnedProjectile(int ClientFireRequestId); // Export UTgRepInfo_Game::execGetClientSpawnedProjectile(FFrame&, void* const) + +native function TgProj_Simulated GetSimulatedProjectile(int nProjectileId); // Export UTgRepInfo_Game::execGetSimulatedProjectile(FFrame&, void* const) + +native function TgProj_Simulated SpawnSimulatedProjectile(int nProjectileInstanceId, int nFireModeId, Actor pOwner, Vector vLocation, Vector vRotation, optional int nProjectileIdOverride=0, optional bool bPredictStartLocationBasedOnPing=false); // Export UTgRepInfo_Game::execSpawnSimulatedProjectile(FFrame&, void* const) + +native function TgRepInfo_Game.MAP_LANE GetLane(int nLane, TgRepInfo_TaskForce tfri); // Export UTgRepInfo_Game::execGetLane(FFrame&, void* const) + +native function bool SiegeEngineRequiresAlliesToMove(); // Export UTgRepInfo_Game::execSiegeEngineRequiresAlliesToMove(FFrame&, void* const) + +native function RecalcRespawnTimers(); // Export UTgRepInfo_Game::execRecalcRespawnTimers(FFrame&, void* const) + +native function bool AllowHeadShots(); // Export UTgRepInfo_Game::execAllowHeadShots(FFrame&, void* const) + +native function TgChaosCapturePoint GetActiveCapturePoint(); // Export UTgRepInfo_Game::execGetActiveCapturePoint(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated function ShowHeadMesh() { } + +simulated function HideHeadMesh() { } + +simulated function SetGameEnvironmentRule(TgObject.EGameEnvironmentRule Rule) { } + +simulated function SetGameRespawnRule(TgObject.EGameRespawnRule Rule) { } + +simulated function SetGameMode(TgObject.EGameMode Mode) { } + +simulated function OnFogAdded(ExponentialHeightFog Fog) { } + +simulated function GameEnvironmentRuleUpdated() { } + +simulated function UpdateFog(optional ExponentialHeightFog Fog) { } + +simulated function UpdateAttackingTaskforce(TgRepInfo_TaskForce NewAttackingTaskForce) { } + +simulated event PostBeginPlay() { } + +simulated function InitMissionTime() { } + +simulated function InitSecondaryMissionTime() { } + +simulated function UpdateMissionTimer(optional bool bForcePrimary, optional bool bForceSecondary) { } + +function MissionTimeUpdateAllClients() { } + +simulated function AddDRI(TgRepInfo_Deployable DRI) { } + +simulated function RemoveDRI(TgRepInfo_Deployable DRI) { } + +simulated function AddCPRI(TgRepInfo_CapturePoint CPRI) { } + +simulated function RemoveCPRI(TgRepInfo_CapturePoint CPRI) { } + +simulated function AddCapturePoint(TgChaosCapturePoint pPoint) { } + +simulated function RemoveCapturePoint(TgChaosCapturePoint pPoint) { } + +simulated function AddDestructible(TgDestructible Dest) { } + +simulated function RemoveDestructible(TgDestructible Dest) { } + +simulated event int GetNextClientOnlyProjectileInstanceId() { } + +function SetFlagHome(int TeamIndex) { } + +simulated function bool FlagIsHome(int TeamIndex) { } + +simulated function bool FlagsAreHome() { } + +function SetFlagHeldFriendly(int TeamIndex) { } + +simulated function bool FlagIsHeldFriendly(int TeamIndex) { } + +function SetFlagHeldEnemy(int TeamIndex) { } + +simulated function bool FlagIsHeldEnemy(int TeamIndex) { } + +function SetFlagDown(int TeamIndex) { } + +simulated function bool FlagIsDown(int TeamIndex) { } + +event SetCheckpoint(int NewCheckpoint, int Taskforce) { } + +function SetUsePointsMode(bool bValue, int nValue) { } + +function DecrementPoints(int nTaskForce, int nValue) { } + +simulated event float GetMissionTime() { } + +function SendPayloadMissionEvent(int nEventId, TgRepInfo_TaskForce attackingTaskForce, TgRepInfo_TaskForce WinningTaskForce) { } + +simulated function ProcessMissionTimerEvent(int nEventId, byte nAttackingTaskForce, byte nWinningTaskForce) { } + +function SetEnableHeadshots(bool bEnable) { } + +event AddPotGEventToAllPlayers(TgObject.EPlayOfTheGameEventType potgEvent) { } + +native function bool AllowPlayerMounting(); // Export UTgRepInfo_Game::execAllowPlayerMounting(FFrame&, void* const) + +defaultproperties +{ + r_bIsMission=true + r_bEnableDistanceFOW=true + r_bServerFlagSprint=true + r_bServerFlagMinimapTeamVisibility=true + r_bAutoMelee=true + r_bShowHeadMesh=true + r_bAllowWeaponLagPrediction=true + r_bKillCamEnabled=true + c_fAIBotDelaySeconds=30.0000000 + r_nPurchaseTime=120 + m_fPurchaseTimer=120.0000000 + r_nPlayOfTheGameMapLane=-1 + c_nNextClientOnlyProjectileInstanceId=-1 + r_fSpeedScale=1.0000000 + r_fServerFlagDamageMultiplier=1.0000000 + r_fServerFlagGroundSpeedModifier=1.0000000 + r_fServerFlagAutoHealingMultiplier=1.0000000 + r_fWeaponMaxLagCompensation=0.3000000 + m_fVaultImmuneToSiegeEngineHealth=1.0000000 + r_fFogConvergeInterval=1.0000000 + r_DifficultyDebugData=(CurrentlyActive=true,DisparityDetected=false,ChangesLockedOut=false,TimeBeforeTrigger=0,TaskForce1BotDifficulty=AIDifficulty_Medium1,TaskForce2BotDifficulty=AIDifficulty_Medium1,TaskForce1Skill=0.0000000,TaskForce2Skill=0.0000000,SkillPercentages=(NumDeathsPercentage=0.0000000,DamagePercentage=0.0000000,KillsPercentage=0.0000000,SoloKillsPercentage=0.0000000,AssistsPercentage=0.0000000,HealingPercentage=0.0000000,CreditsPercentage=0.0000000,ObjectiveTimePercentage=0.0000000,ShieldingPercentage=0.0000000,KillstreakMultiplier=0.0000000),SkillPercentages[1]=(NumDeathsPercentage=0.0000000,DamagePercentage=0.0000000,KillsPercentage=0.0000000,SoloKillsPercentage=0.0000000,AssistsPercentage=0.0000000,HealingPercentage=0.0000000,CreditsPercentage=0.0000000,ObjectiveTimePercentage=0.0000000,ShieldingPercentage=0.0000000,KillstreakMultiplier=0.0000000)) + bReplicateMovement=false +} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_Player.uc b/Development/Src/TgGame/Classes/TgRepInfo_Player.uc old mode 100755 new mode 100644 index 83b8059..3aaef12 --- a/Development/Src/TgGame/Classes/TgRepInfo_Player.uc +++ b/Development/Src/TgGame/Classes/TgRepInfo_Player.uc @@ -1,29 +1,483 @@ -class TgRepInfo_Player extends PlayerReplicationInfo - native(Game) - nativereplication - hidecategories(Navigation,Movement,Collision); - -var int r_nPlayerId; -var int r_nPawnId; -var repnotify TgRepInfo_TaskForce r_TaskForce; -var TgTeamPlayerStart r_SpawnPoint; - -var int r_nMountSkinId; -var int r_nEquippedTitleId; -var repnotify int r_nVoicePackId; - -var bool r_bIsVolumeStealthed; -var repnotify int r_nProfileId; - -// Export UTgRepInfo_Player::execUpdateBroadcastedItems(FFrame&, void* const) -native function UpdateBroadcastedItems(TgInventoryManager InvMgr); -// Export UTgRepInfo_Player::execSetTaskForceNumber(FFrame&, void* const) -native function bool SetTaskForceNumber(byte nTaskForce, optional bool bForce = false); -// Export UTgRepInfo_Player::execUpdateSpectatorUI(FFrame&, void* const) -native function UpdateSpectatorUI(); -// Export UTgRepInfo_Player::execSetTeam(FFrame&, void* const) -native function SetTeam(TgRepInfo_TaskForce pNewTeamRep); - -simulated function ClientInitialize(Controller C){} -event UpdateIdAndProfile(){} -event UpdateHealth(int nCurrentHealth, int nMaxHealth){} \ No newline at end of file +class TgRepInfo_Player extends PlayerReplicationInfo + native(Game) + nativereplication + hidecategories(Navigation,Movement,Collision) + config(Engine) + dependson(TgObject); + +const MAX_DRAWN_CARDS = 5; + +const BASE_DRAWN_CARDS = 3; + +const MAX_DECK_SLOTS = 5; + +const MAX_MARKED_TARGETS = 5; + +const CARD_PROPERTY_START = 1710; + +const MAX_TRACKED_PROJECTILES = 15; + +const TG_EQP_POINT_MAX = 33; + +const TG_MAX_PING_INFO = 4; + +const TG_ITEM_STORE_MAX = 6; + +const TG_ACTIVE_ITEMS_MAX = 3; + +const TG_CONSUMABLE_MAX = 2; + +const TG_GENERAL_STATS_MAX = 4; + +const TG_PROPS_MAX = 20; + +const TG_ITEM_COUNT_MAX = 4; + +const TG_SURRENDER_VOTE_NONE = 0x00; + +const TG_SURRENDER_VOTE_YES = 0x01; + +const TG_SURRENDER_VOTE_NO = 0x02; + +const MAX_SIM_PROJ_OVERRIDES = 8; + +const MAX_CORE_STATS = 18; + +const MAX_STATS_DEVICES = 9; + +const NUM_SCORE_TYPES = 22; + +enum SCORE_TYPE { + STYPE_REPPTS, // 0 + STYPE_KILLS, // 1 + STYPE_ASSISTS, // 2 + STYPE_DAMAGETAKEN, // 3 + STYPE_DAMAGE, // 4 + STYPE_BUFFVALUE, // 5 + STYPE_HEALING, // 6 + STYPE_DEFENSE, // 7 + STYPE_DEATHS, // 8 + STYPE_OBJS, // 9 + STYPE_KILLS_BOT, // 10 + STYPE_EARNED_XP, // 11 + STYPE_EARNED_GOLD, // 12 + STYPE_CURRENT_GOLD, // 13 + STYPE_GOLD_PER_MIN, // 14 + STYPE_XP_PER_MIN, // 15 + STYPE_PLAYER_DMG, // 16 + STYPE_BOT_DMG, // 17 + STYPE_STRUCT_DMG, // 18 + STYPE_OBJ_ASSISTS, // 19 + STYPE_KILLS_SOLO, // 20 + STYPE_DMG_MITIGATED, // 21 +}; + +enum DEVICE_STATS { + DS_ID, // 0 + DS_DAMAGE, // 1 + DS_HEALING, // 2 + DS_PLAYER_KILLS, // 3 + DS_BOT_KILLS, // 4 + DS_DPM, // 5 + DS_HPM, // 6 + DS_MODE_COUNT, // 7 + DS_BUFF_VALUE, // 8 +}; + +enum GAME_MODE_INSTRUCTION { + GMI_NONE, // 0 + GMI_CAPTURE_POINT, // 1 + GMI_PUSH_PAYLOAD, // 2 + GMI_DEFEND_AGAINST_PAYLOAD, // 3 +}; + +struct DeviceTeamInfo { + var int Power; + var int CurrentDeviceId; + var int LastKnownDeviceId[TgMapTeam]; + var int CurrentDeviceCount; + var int LastKnownDeviceCount[TgMapTeam]; + structdefaultproperties {} +}; + +struct SimulatedProjectileOverrides { + var int FireModeID; + var float RemoteProximityDist; + var float Range; + var float Speed; + var float GravityScale; + var float FireAngle; + structdefaultproperties {} +}; + +struct MarkedTargetInfo { + var int PawnId; + var int Count; + structdefaultproperties {} +}; + +struct DeckCardData { + var int nDeviceId; + var int nPlayerId; + structdefaultproperties {} +}; + +struct PlayOfTheGameEventData { + var TgObject.EPlayOfTheGameEventType EventType; + var float TimeStamp; + var float WeightedRating; + structdefaultproperties {} +}; + +struct PlayOfTheGameEventCounter { + var TgObject.EPlayOfTheGameEventType EventType; + var float Threshold; + var float Counter; + var float TimeOut; + var float Timer; + structdefaultproperties {} +}; + +struct TrackedProjectileInitData { + var int FireModeID; + var int ProjectileId; + var Vector SpawnLocation; + var Vector SpawnRotation; + var Vector SpawnVelocity; + var float SpawnServerTime; + structdefaultproperties {} +}; + +struct TrackedProjectileUpdateData { + var Vector Location; + var Vector Velocity; + var float UpdateServerTime; + structdefaultproperties {} +}; + +var int r_nPlayerId; +var int r_nPawnId; +var int m_nUIDisplayIndex; +var float c_fLastUpdateTime; +var int r_nEquippedTitleId; +var repnotify int r_nHealthCurrent; +var int r_nHealthMaximum; +var int r_nPowerCurrent; +var int r_nPowerMaximum; +var int r_nPacingType; +var int r_nShieldCurrent; +var int r_nShieldMaximum; +var repnotify TgRepInfo_Player r_MasterPrep; +var repnotify TgRepInfo_TaskForce r_TaskForce; +var TgTeamPlayerStart r_SpawnPoint; +var float r_fReviveSecs; +var repnotify bool r_bMapHasLoaded; +var bool r_bHasBeenSeenByEnemyTeam; +var transient bool r_bHasFlag; +var repnotify bool r_bSilhouettesBlocked; +var bool r_bExtendedSilhouetteRange; +var bool c_bSpeaking; +var bool r_bDropped; +var bool r_bForceNotBot; +var bool r_bDisconnected; +var bool c_bIsDying; +var bool r_IsRevealed; +var bool r_bIsStealthed; +var bool r_bIsVolumeStealthed; +var bool r_bUltimateIsReady; +var bool r_bCanUpgradeLegendary; +var bool s_bAutoSelectCards; +var bool c_bTrackedProjectileIdsJustChanged; +var repnotify byte r_nSurrenderVote; +var repnotify byte r_bVisibleOnMap[TgMapTeam]; +var repnotify byte r_nVisibilityMask; +var repnotify byte r_nFlashUpdateAmmo; +var TgObject.DeployableOverlayIcon r_eDeployableOverlayIcon; +var TgObject.DeployableOverlayState r_eDeployableOverlayState; +var TgObject.DeployableOverlayIcon c_eDeployableOverlayIconOverride; +var TgObject.DeployableOverlayState c_eDeployableOverlayStateOverride; +var TgRepInfo_Player.GAME_MODE_INSTRUCTION r_eCurrentGameModeInstruction; +var array m_PRIArray; +var array m_DRIArray; +var TgRepInfo_Player c_PriorMasterPrep; +var TgRepInfo_TaskForce c_PriorTaskForce; +var int c_fLastHealth; +var float c_fLastDamageTime; +var float r_fVisionRange; +var transient TgCarriedFlag s_CarriedFlag; +var init repnotify string r_ClanTag; +var init string c_PlayerNameWithTag; +var float c_fBarragePercent; +var repnotify SimulatedProjectileOverrides r_SimProjOverrides[8]; +var int r_Scores[22]; +var repnotify DeviceTeamInfo r_PlayerDevices[33]; +var int r_PlayerDeviceAmmo[33]; +var MarkedTargetInfo r_MarkedTargets[5]; +var float c_fLastSpeakingTime; +var repnotify int r_nCredits; +var repnotify int r_nEarnedCredits; +var repnotify int r_nXp; +var repnotify int r_nLevel; +var repnotify int r_nPlayerScore; +var repnotify int r_nCardHealth; +var repnotify int r_nCardDamage; +var repnotify int r_nPowerLevel; +var repnotify int r_nPowerLevelCount; +var repnotify int r_nProfileId; +var repnotify int r_nSkinId; +var repnotify int r_nVoicePackId; +var repnotify int r_nKillstreak; +var int r_nHeadSkinId; +var int r_nWeaponSkinId; +var int r_nMountSkinId; +var repnotify int r_nAssistScore; +var TgPawn r_PawnOwner; +var int r_nLaneId; +var int s_KillOrDeathStreakModifier; +var sPingInfo r_PingInfo[4]; +var Vector c_DeathLocation; +var TG_HUD_INFO c_HudInfo; +var float r_fUltReadyInSecs; +var int r_nUltimateCharge; +var int r_nPassiveMode; +var repnotify int r_nPerkCountKit; +var repnotify int r_nPerkCountArmor; +var repnotify int r_nPerkCountWeapon; +var repnotify int r_nPerkCountGeneral; +var int r_nCardsToDraw; +var int r_nDrawnCards[5]; +var int r_nDrawnPlayer[5]; +var float s_fScoreTakenPool; +var float s_fScoreDamagePool; +var float s_fScoreCapturePool; +var float s_fScoreHealingPool; +var float s_fScoreMitigatedPool; +var float s_fScoreTakenThreshold; +var float s_fScoreDamageThreshold; +var float s_fScoreCaptureThreshold; +var float s_fScoreHealingThreshold; +var float s_fScoreMitigatedThreshold; +var array s_CardDeckTier1; +var array s_CardDeckTier2; +var array s_CardDeckTier3; +var array s_CardDeckTier4; +var array s_CardDeckTier5; +var TgAbilityInfo r_GeneralAbilityInfo; +var TgAbilityInfo r_ArmorAbilityInfo; +var TgRepInfo_Player s_LastKillerPRI; +var array s_PlayOfTheGameEventList; +var array s_PlayOfTheGameEventCounters; +var int r_nDeployableOverlayDisplayMask; +var float r_fDeployableOverlayEnemyViewDist; +var int c_nDeployableOverlayDisplayMaskOverride; +var float c_fDeployableOverlayEnemyViewDistOverride; +var repnotify int r_TrackedProjectileIds[15]; +var TrackedProjectileInitData r_TrackedProjectilesInitData[15]; +var TrackedProjectileUpdateData r_TrackedProjectilesUpdateData[15]; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_ArmorAbilityInfo, r_ClanTag, r_GeneralAbilityInfo, r_IsRevealed, r_MarkedTargets, r_MasterPrep, r_PawnOwner, r_PingInfo, r_PlayerDeviceAmmo, r_PlayerDevices, r_Scores, r_SimProjOverrides, r_SpawnPoint, r_TaskForce, r_bCanUpgradeLegendary, r_bDisconnected, r_bDropped, r_bExtendedSilhouetteRange, r_bForceNotBot, r_bHasBeenSeenByEnemyTeam, r_bHasFlag, r_bIsStealthed, r_bMapHasLoaded, r_bSilhouettesBlocked, r_bUltimateIsReady, r_bVisibleOnMap, r_eCurrentGameModeInstruction, r_eDeployableOverlayIcon, r_eDeployableOverlayState, r_fDeployableOverlayEnemyViewDist, r_fReviveSecs, r_fUltReadyInSecs, r_fVisionRange, r_nAssistScore, r_nCardDamage, r_nCardHealth, r_nCardsToDraw, r_nCredits, r_nDeployableOverlayDisplayMask, r_nDrawnCards, r_nDrawnPlayer, r_nEarnedCredits, r_nEquippedTitleId, r_nFlashUpdateAmmo, r_nHeadSkinId, r_nHealthCurrent, r_nHealthMaximum, r_nKillstreak, r_nLaneId, r_nLevel, r_nMountSkinId, r_nPacingType, r_nPassiveMode, r_nPawnId, r_nPerkCountArmor, r_nPerkCountGeneral, r_nPerkCountKit, r_nPerkCountWeapon, r_nPlayerId, r_nPlayerScore, r_nPowerCurrent, r_nPowerLevel, r_nPowerLevelCount, r_nPowerMaximum, r_nProfileId, r_nShieldCurrent, r_nShieldMaximum, r_nSkinId, r_nSurrenderVote, r_nUltimateCharge, r_nVisibilityMask, r_nVoicePackId, r_nWeaponSkinId, r_nXp; +} + +native function bool IsFriendlyWithLocalPlayer(); // Export UTgRepInfo_Player::execIsFriendlyWithLocalPlayer(FFrame&, void* const) + +native function bool IsBot(); // Export UTgRepInfo_Player::execIsBot(FFrame&, void* const) + +native function bool IsGod(); // Export UTgRepInfo_Player::execIsGod(FFrame&, void* const) + +native function bool IsGodDecoy(); // Export UTgRepInfo_Player::execIsGodDecoy(FFrame&, void* const) + +native function bool IsMinionOf(const TgRepInfo_Player PossibleOwner); // Export UTgRepInfo_Player::execIsMinionOf(FFrame&, void* const) + +native function int GetPlayerId(); // Export UTgRepInfo_Player::execGetPlayerId(FFrame&, void* const) + +native function UpdateScoreboard(); // Export UTgRepInfo_Player::execUpdateScoreboard(FFrame&, void* const) + +native function UpdateLevel(); // Export UTgRepInfo_Player::execUpdateLevel(FFrame&, void* const) + +native function UpdateBroadcastedItems(TgInventoryManager InvMgr); // Export UTgRepInfo_Player::execUpdateBroadcastedItems(FFrame&, void* const) + +native function SetTeam(TgRepInfo_TaskForce pNewTeamRep); // Export UTgRepInfo_Player::execSetTeam(FFrame&, void* const) + +native function AddMinion(ReplicationInfo pRepInfo); // Export UTgRepInfo_Player::execAddMinion(FFrame&, void* const) + +native function RemoveMinion(ReplicationInfo pRepInfo); // Export UTgRepInfo_Player::execRemoveMinion(FFrame&, void* const) + +native function CheckMembership(); // Export UTgRepInfo_Player::execCheckMembership(FFrame&, void* const) + +native function int GetCurrentHealth(); // Export UTgRepInfo_Player::execGetCurrentHealth(FFrame&, void* const) + +native function int GetCurrentMaxHealth(); // Export UTgRepInfo_Player::execGetCurrentMaxHealth(FFrame&, void* const) + +native function int GetCurrentPower(); // Export UTgRepInfo_Player::execGetCurrentPower(FFrame&, void* const) + +native function int GetCurrentMaxPower(); // Export UTgRepInfo_Player::execGetCurrentMaxPower(FFrame&, void* const) + +native function int GetCurrentShield(); // Export UTgRepInfo_Player::execGetCurrentShield(FFrame&, void* const) + +native function int GetCurrentMaxShield(); // Export UTgRepInfo_Player::execGetCurrentMaxShield(FFrame&, void* const) + +native function Vector GetCurrentLocation(); // Export UTgRepInfo_Player::execGetCurrentLocation(FFrame&, void* const) + +native function Rotator GetCurrentRotation(); // Export UTgRepInfo_Player::execGetCurrentRotation(FFrame&, void* const) + +native function bool IsStealthedClient(); // Export UTgRepInfo_Player::execIsStealthedClient(FFrame&, void* const) + +native function bool IsHardStealthedClient(); // Export UTgRepInfo_Player::execIsHardStealthedClient(FFrame&, void* const) + +native function UpdateUltimateIsReady(float fCooldownSecs); // Export UTgRepInfo_Player::execUpdateUltimateIsReady(FFrame&, void* const) + +native function string GetPlayerNameForMsgDisplay(optional bool bBaseNameOnly=false); // Export UTgRepInfo_Player::execGetPlayerNameForMsgDisplay(FFrame&, void* const) + +native function UpdateSpectatorUI(); // Export UTgRepInfo_Player::execUpdateSpectatorUI(FFrame&, void* const) + +native function UpdatePlayerInfoUI(); // Export UTgRepInfo_Player::execUpdatePlayerInfoUI(FFrame&, void* const) + +native function UpdatePlayerTaskforceUI(); // Export UTgRepInfo_Player::execUpdatePlayerTaskforceUI(FFrame&, void* const) + +native function UpdateFX(); // Export UTgRepInfo_Player::execUpdateFX(FFrame&, void* const) + +native function bool HasBeenSeenByEnemyTeam(); // Export UTgRepInfo_Player::execHasBeenSeenByEnemyTeam(FFrame&, void* const) + +native function bool IsVisibleToAnEnemyTeam(); // Export UTgRepInfo_Player::execIsVisibleToAnEnemyTeam(FFrame&, void* const) + +native function bool IsVisibleToMapTeam(TgObject.TgMapTeam MAPTEAM); // Export UTgRepInfo_Player::execIsVisibleToMapTeam(FFrame&, void* const) + +native function bool IsVisibleToPlayer(TgRepInfo_Player PRI); // Export UTgRepInfo_Player::execIsVisibleToPlayer(FFrame&, void* const) + +native function bool IsVisibleToLocalPlayer(); // Export UTgRepInfo_Player::execIsVisibleToLocalPlayer(FFrame&, void* const) + +native function CheckPingingList(); // Export UTgRepInfo_Player::execCheckPingingList(FFrame&, void* const) + +native function UpdatePingInfo(TgRepInfo_Player pingedPri, Vector pingedLoc, TgObject.PING_TYPE Type); // Export UTgRepInfo_Player::execUpdatePingInfo(FFrame&, void* const) + +native function UpdateMapVisibility(TgObject.TgMapTeam MAPTEAM, byte bVisible, float fVisionRange, bool bDetected); // Export UTgRepInfo_Player::execUpdateMapVisibility(FFrame&, void* const) + +native function bool SetTaskForceNumber(byte nTaskForce, optional bool bForce=false); // Export UTgRepInfo_Player::execSetTaskForceNumber(FFrame&, void* const) + +native function ClientUpdateItemStoreItems(); // Export UTgRepInfo_Player::execClientUpdateItemStoreItems(FFrame&, void* const) + +native function UpdateSurrenderVoting(); // Export UTgRepInfo_Player::execUpdateSurrenderVoting(FFrame&, void* const) + +native function UpdatePlayerReady(); // Export UTgRepInfo_Player::execUpdatePlayerReady(FFrame&, void* const) + +native function UpdatePlayerNameWithTag(); // Export UTgRepInfo_Player::execUpdatePlayerNameWithTag(FFrame&, void* const) + +native function bool LoadCardDeck(optional bool bDefault=false); // Export UTgRepInfo_Player::execLoadCardDeck(FFrame&, void* const) + +native function DrawNewCards(optional int nPrevPower=-1); // Export UTgRepInfo_Player::execDrawNewCards(FFrame&, void* const) + +native function AddPlayOfTheGameEvent(TgObject.EPlayOfTheGameEventType Type, optional float Amount=1.0000000); // Export UTgRepInfo_Player::execAddPlayOfTheGameEvent(FFrame&, void* const) + +native function AddMarkedTarget(int nPawnId, optional int nCount=1); // Export UTgRepInfo_Player::execAddMarkedTarget(FFrame&, void* const) + +native function RemoveMarkedTarget(int nPawnId, optional int nCount=0); // Export UTgRepInfo_Player::execRemoveMarkedTarget(FFrame&, void* const) + +native function int GetMarkedTargetCount(int nPawnId); // Export UTgRepInfo_Player::execGetMarkedTargetCount(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +function PopulateGeneralAbilities() { } + +simulated function ClientInitialize(Controller C) { } + +simulated function RecalculateTeamColor() { } + +event Timer() { } + +event UpdateIdAndProfile() { } + +function UpdatePlayerLocation() { } + +event UpdateHealth(int nCurrentHealth, int nMaxHealth) { } + +event UpdatePower(int nCurrentPower, int nMaxPower) { } + +event UpdateShield(int nCurrentShield, int nMaxShield) { } + +simulated function byte GetTaskForceNumber() { } + +simulated function UpdatedHealthCurrent() { } + +simulated function UpdatedApproxLocation() { } + +simulated event UpdatedTaskForce() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function PlayerController FindLocalController() { } + +simulated function TgPawn FindLocalPlayerPawn() { } + +simulated function bool ShouldBroadCastWelcomeMessage(optional bool bExiting) { } + +function PlayerReplicationInfo Duplicate() { } + +function OverrideWith(PlayerReplicationInfo PRI) { } + +function CopyProperties(PlayerReplicationInfo PRI) { } + +function TransferMinionOwnershipTo(TgRepInfo_Player NewOwner) { } + +function OnDeath() { } + +function SetFlag(TgCarriedFlag NewFlag) { } + +event SetSpawnPoint(TgTeamPlayerStart SpawnPoint) { } + +native function SetSimProjSpeed(int nFireModeId, float fSpeed); // Export UTgRepInfo_Player::execSetSimProjSpeed(FFrame&, void* const) + +native function SetSimProjRemoteProximity(int nFireModeId, float fRemoteProximity); // Export UTgRepInfo_Player::execSetSimProjRemoteProximity(FFrame&, void* const) + +native function SetSimProjDist(int nFireModeId, float fDist); // Export UTgRepInfo_Player::execSetSimProjDist(FFrame&, void* const) + +native function SetSimProjGravityScale(int nFireModeId, float fGravityScale); // Export UTgRepInfo_Player::execSetSimProjGravityScale(FFrame&, void* const) + +native function SetSimProjFireAngle(int nFireModeId, float fFireAngle); // Export UTgRepInfo_Player::execSetSimProjFireAngle(FFrame&, void* const) + +native function int FindSimProjOverrideIndex(int nFireModeId); // Export UTgRepInfo_Player::execFindSimProjOverrideIndex(FFrame&, void* const) + +native function ValidateSimProj(int nIndex); // Export UTgRepInfo_Player::execValidateSimProj(FFrame&, void* const) + +native function bool GetSimProjOverrides(int nFireModeId, out float fRange, out float fRemoteProximity, out float fSpeed, out float fGravityScale, out float fFireAngle); // Export UTgRepInfo_Player::execGetSimProjOverrides(FFrame&, void* const) + +event SetHUDOverlayDisplayMask(int dodm) { } + +event SetHUDOverlayIcon(TgObject.DeployableOverlayIcon doi) { } + +event SetHUDOverlayState(TgObject.DeployableOverlayState dos) { } + +event SetHUDOverlayEnemyViewDist(float enemyViewDist) { } + +native simulated function int GetDeployableOverlayDisplayMask(); // Export UTgRepInfo_Player::execGetDeployableOverlayDisplayMask(FFrame&, void* const) + +native simulated function TgObject.DeployableOverlayIcon GetDeployableOverlayIcon(); // Export UTgRepInfo_Player::execGetDeployableOverlayIcon(FFrame&, void* const) + +native simulated function TgObject.DeployableOverlayState GetDeployableOverlayState(); // Export UTgRepInfo_Player::execGetDeployableOverlayState(FFrame&, void* const) + +native simulated function float GetDeployableOverlayEnemyViewDist(); // Export UTgRepInfo_Player::execGetDeployableOverlayEnemyViewDist(FFrame&, void* const) + +defaultproperties +{ + r_eDeployableOverlayIcon=DOI_TURRET + c_fBarragePercent=-1.0000000 + r_SimProjOverrides[0]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[1]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[2]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[3]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[4]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[5]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[6]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_SimProjOverrides[7]=(FireModeID=0,RemoteProximityDist=0.0000000,Range=0.0000000,Speed=0.0000000,GravityScale=1.0000000,FireAngle=0.0000000) + r_nLevel=1 + r_nPassiveMode=-1 + r_nCardsToDraw=3 + s_fScoreTakenThreshold=6000.0000000 + s_fScoreDamageThreshold=6000.0000000 + s_fScoreCaptureThreshold=4.0000000 + s_fScoreHealingThreshold=6000.0000000 + s_fScoreMitigatedThreshold=6000.0000000 + r_fDeployableOverlayEnemyViewDist=1600.0000000 + bReplicateInstigator=true + bReplicateMovement=false +} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_Portal.uc b/Development/Src/TgGame/Classes/TgRepInfo_Portal.uc new file mode 100644 index 0000000..cf61634 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRepInfo_Portal.uc @@ -0,0 +1,11 @@ +class TgRepInfo_Portal extends TgRepInfo_Deployable + native(Game) + hidecategories(Navigation,Movement,Collision) + config(Engine); + +var TgRepInfo_Portal r_TwinDRI; +var bool c_bMasterEntity; + +replication { + if(bNetDirty && int(Role) == int(ENetRole.ROLE_Authority)) r_TwinDRI; +} diff --git a/Development/Src/TgGame/Classes/TgRepInfo_TaskForce.uc b/Development/Src/TgGame/Classes/TgRepInfo_TaskForce.uc old mode 100755 new mode 100644 index c6f6e7b..6a895d3 --- a/Development/Src/TgGame/Classes/TgRepInfo_TaskForce.uc +++ b/Development/Src/TgGame/Classes/TgRepInfo_TaskForce.uc @@ -1,90 +1,174 @@ -class TgRepInfo_TaskForce extends TeamInfo - native(Game) - nativereplication - hidecategories(Navigation,Movement,Collision); - -var repnotify byte r_nTaskForce; - -// Export UTgRepInfo_TaskForce::execCycleFrom(FFrame&, void* const) -native function TgRepInfo_Player CycleFrom(TgRepInfo_Player pFrom, bool bForward); - -// Export UTgRepInfo_TaskForce::execRepEvent(FFrame&, void* const) -native simulated function bool RepEvent(name VarName); - -// Export UTgRepInfo_TaskForce::execGetPlayerCount(FFrame&, void* const) -native function int GetPlayerCount(); - -// Export UTgRepInfo_TaskForce::execGetActivePlayerCount(FFrame&, void* const) -native function int GetActivePlayerCount(); - -// Export UTgRepInfo_TaskForce::execGetBotCount(FFrame&, void* const) -native function int GetBotCount(); - -// Export UTgRepInfo_TaskForce::execGetMinionFactoryCount(FFrame&, void* const) -native function int GetMinionFactoryCount(); - -// Export UTgRepInfo_TaskForce::execGetPlayer(FFrame&, void* const) -native function TgRepInfo_Player GetPlayer(int nIndex); - -// Export UTgRepInfo_TaskForce::execGetPlayerById(FFrame&, void* const) -native function TgRepInfo_Player GetPlayerById(int nPawnId); - -// Export UTgRepInfo_TaskForce::execGetPlayerByPower(FFrame&, void* const) -native function TgRepInfo_Player GetPlayerByPower(int nIndex); - -// Export UTgRepInfo_TaskForce::execGetBot(FFrame&, void* const) -native function TgRepInfo_Player GetBot(int nIndex); - -// Export UTgRepInfo_TaskForce::execIsLeader(FFrame&, void* const) -native function bool IsLeader(TgRepInfo_Player pTgPri); - -// Export UTgRepInfo_TaskForce::execTeamRemoveFrom(FFrame&, void* const) -native function TeamRemoveFrom(Controller Other); - -// Export UTgRepInfo_TaskForce::execUpdateSurrenderTimer(FFrame&, void* const) -native function UpdateSurrenderTimer(); - -// Export UTgRepInfo_TaskForce::execRemoveGlobalEffectGroup(FFrame&, void* const) -native function RemoveGlobalEffectGroup(int nEffectGroupID); - -// Export UTgRepInfo_TaskForce::execApplyGlobalEffectGroups(FFrame&, void* const) -native function ApplyGlobalEffectGroups(TgPawn_Character aPawn); - -// Export UTgRepInfo_TaskForce::execRemoveGlobalEffectGroups(FFrame&, void* const) -native function RemoveGlobalEffectGroups(TgPawn_Character aPawn); - -// Export UTgRepInfo_TaskForce::execReapplyGlobalEffectGroups(FFrame&, void* const) -native function ReapplyGlobalEffectGroups(); - -// Export UTgRepInfo_TaskForce::execRemoveAllGlobalEffectGroups(FFrame&, void* const) -native function RemoveAllGlobalEffectGroups(); - -// Export UTgRepInfo_TaskForce::execGetGodCount(FFrame&, void* const) -native function int GetGodCount(); - -// Export UTgRepInfo_TaskForce::execGetGod(FFrame&, void* const) -native function TgRepInfo_Player GetGod(int nIndex); - -// Export UTgRepInfo_TaskForce::execResetGodIterator(FFrame&, void* const) -native function ResetGodIterator(); - -// Export UTgRepInfo_TaskForce::execGetNextGod(FFrame&, void* const) -native function TgRepInfo_Player GetNextGod(optional bool bIncrement = true, optional bool bReset = false); - -// Export UTgRepInfo_TaskForce::execLaneOfSiegeWeapon(FFrame&, void* const) -native function int LaneOfSiegeWeapon(); - -// Export UTgRepInfo_TaskForce::execGetASiegeWeapon(FFrame&, void* const) -native function TgPawn GetASiegeWeapon(); - -// Export UTgRepInfo_TaskForce::execHasBot(FFrame&, void* const) -native function bool HasBot(class PawnClass); - -// Export UTgRepInfo_TaskForce::execGetNumAlivePlayers(FFrame&, void* const) -native function int GetNumAlivePlayers(); - -// Export UTgRepInfo_TaskForce::execGetPlayers(FFrame&, void* const) -native function GetPlayers(out array List); - -// Export UTgRepInfo_TaskForce::execGetPlayersByDistance(FFrame&, void* const) -native function GetPlayersByDistance(Vector fromVector, float dwDist, out array List); \ No newline at end of file +class TgRepInfo_TaskForce extends TeamInfo + native(Game) + nativereplication + hidecategories(Navigation,Movement,Collision) + config(Engine) + dependson(TgObject); + +const TG_MAX_PREMADE_DEPLOYS = 20; + +const TG_MAX_PRIMARY_OBJECTIVES = 5; + +const TG_MAX_TASK_TEAM_NUMBER = 10; + +struct TGTEAM_ENTRY { + var string fsName; + var string fsMapName; + var int nHealth; + var int nMaxHealth; + var bool bLeader; + var TgRepInfo_Player pPrep; + structdefaultproperties {} +}; + +struct sPredefinedLevelDeployInfo { + var int m_Id; + var Vector m_Location; + structdefaultproperties {} +}; + +struct TEAMTIMEMANAGER_ENTRY { + var TgTimerManager m_TimerManager; + var int m_nDeviceId; + structdefaultproperties {} +}; + +struct GLOBALEFFECT_ENTRY { + var TgEffectGroup eg; + var TgPawn pawnInstigator; + structdefaultproperties {} +}; + +var string c_fsName; +var int r_nTeamId; +var repnotify int r_nLeaderPlayerId; +var repnotify byte r_nTaskForce; +var TgObject.TgMapTeam r_MapTeam; +var int s_nTaskForceChatId; +var int s_nStrikeForceId; +var int s_nTaskTeamNum; +var Color m_Color; +var repnotify bool r_bIsSurrendering; +var bool r_bSpectator; +var bool m_bDestroyOnEmpty; +var bool r_bIsAttacking; +var int s_nPlayerStartCount; +var private array m_TeamPlayers; +var private array m_TeamBots; +var array m_Factories; +var private array m_MinionFactories; +var private array s_TeamTimerManagers; +var TgMinimapManager s_MinimapManager; +var repnotify int r_nScore; +var float r_fTickets; +var repnotify float r_fSecondaryScore; +var repnotify int r_nScorePercent; +var int r_nGoldBuffCount; +var int s_nGodVisionMask; +var private array m_GlobalEffectGroups; +var int m_nTowersKilled; +var int m_nPhoenixCount; +var int r_nGodKillCount; +var int m_nLastGodIndex; +var int m_nLastGodList; +var TgRespawnBeaconExit r_RespawnBeaconExit; +var int c_nScoreOverride; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_RespawnBeaconExit, r_bIsSurrendering, r_nGoldBuffCount, r_nLeaderPlayerId; + if((int(Role) == int(ENetRole.ROLE_Authority)) && bNetInitial) r_MapTeam, r_bSpectator, r_nTaskForce, r_nTeamId; +} + +native function TgRepInfo_Player CycleFrom(TgRepInfo_Player pFrom, bool bForward); // Export UTgRepInfo_TaskForce::execCycleFrom(FFrame&, void* const) + +native simulated function bool RepEvent(name VarName); // Export UTgRepInfo_TaskForce::execRepEvent(FFrame&, void* const) + +native function int GetPlayerCount(); // Export UTgRepInfo_TaskForce::execGetPlayerCount(FFrame&, void* const) + +native function int GetActivePlayerCount(); // Export UTgRepInfo_TaskForce::execGetActivePlayerCount(FFrame&, void* const) + +native function int GetBotCount(); // Export UTgRepInfo_TaskForce::execGetBotCount(FFrame&, void* const) + +native function int GetMinionFactoryCount(); // Export UTgRepInfo_TaskForce::execGetMinionFactoryCount(FFrame&, void* const) + +native function TgRepInfo_Player GetPlayer(int nIndex); // Export UTgRepInfo_TaskForce::execGetPlayer(FFrame&, void* const) + +native function TgRepInfo_Player GetPlayerById(int nPawnId); // Export UTgRepInfo_TaskForce::execGetPlayerById(FFrame&, void* const) + +native function TgRepInfo_Player GetPlayerByPower(int nIndex); // Export UTgRepInfo_TaskForce::execGetPlayerByPower(FFrame&, void* const) + +native function TgRepInfo_Player GetBot(int nIndex); // Export UTgRepInfo_TaskForce::execGetBot(FFrame&, void* const) + +native function TgBotFactory_Minions GetMinionFactory(int nIndex); // Export UTgRepInfo_TaskForce::execGetMinionFactory(FFrame&, void* const) + +native function bool IsLeader(TgRepInfo_Player pTgPri); // Export UTgRepInfo_TaskForce::execIsLeader(FFrame&, void* const) + +native function TeamRemoveFrom(Controller Other); // Export UTgRepInfo_TaskForce::execTeamRemoveFrom(FFrame&, void* const) + +native function UpdateSurrenderTimer(); // Export UTgRepInfo_TaskForce::execUpdateSurrenderTimer(FFrame&, void* const) + +native function AddGlobalEffectGroup(TgEffectGroup eg, TgPawn InstigatorPawn); // Export UTgRepInfo_TaskForce::execAddGlobalEffectGroup(FFrame&, void* const) + +native function RemoveGlobalEffectGroup(int nEffectGroupID); // Export UTgRepInfo_TaskForce::execRemoveGlobalEffectGroup(FFrame&, void* const) + +native function ApplyGlobalEffectGroups(TgPawn_Character aPawn); // Export UTgRepInfo_TaskForce::execApplyGlobalEffectGroups(FFrame&, void* const) + +native function RemoveGlobalEffectGroups(TgPawn_Character aPawn); // Export UTgRepInfo_TaskForce::execRemoveGlobalEffectGroups(FFrame&, void* const) + +native function ReapplyGlobalEffectGroups(); // Export UTgRepInfo_TaskForce::execReapplyGlobalEffectGroups(FFrame&, void* const) + +native function RemoveAllGlobalEffectGroups(); // Export UTgRepInfo_TaskForce::execRemoveAllGlobalEffectGroups(FFrame&, void* const) + +native function int GetGodCount(); // Export UTgRepInfo_TaskForce::execGetGodCount(FFrame&, void* const) + +native function TgRepInfo_Player GetGod(int nIndex); // Export UTgRepInfo_TaskForce::execGetGod(FFrame&, void* const) + +native function ResetGodIterator(); // Export UTgRepInfo_TaskForce::execResetGodIterator(FFrame&, void* const) + +native function TgRepInfo_Player GetNextGod(optional bool bIncrement=true, optional bool bReset=false); // Export UTgRepInfo_TaskForce::execGetNextGod(FFrame&, void* const) + +native function int LaneOfSiegeWeapon(); // Export UTgRepInfo_TaskForce::execLaneOfSiegeWeapon(FFrame&, void* const) + +native function TgPawn GetASiegeWeapon(); // Export UTgRepInfo_TaskForce::execGetASiegeWeapon(FFrame&, void* const) + +native function bool HasBot(Class PawnClass); // Export UTgRepInfo_TaskForce::execHasBot(FFrame&, void* const) + +native function int GetNumAlivePlayers(); // Export UTgRepInfo_TaskForce::execGetNumAlivePlayers(FFrame&, void* const) + +native function GetPlayers(out array List); // Export UTgRepInfo_TaskForce::execGetPlayers(FFrame&, void* const) + +native function GetPlayersByDistance(Vector fromVector, float dwDist, out array List); // Export UTgRepInfo_TaskForce::execGetPlayersByDistance(FFrame&, void* const) + +event PostInit() { } + +simulated event PostDemoRewind() { } + +function CreateMinimap(TgObject.TgMapTeam Team, Class managerClass) { } + +function RemoveFromTeam(Controller Other) { } + +simulated function bool HasActivePlayers() { } + +simulated event ReceivedScoringChanges() { } + +simulated event ReceivedTaskForceNumber() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function UpdateKismetOnScore() { } + +simulated function TgPlayerController FindLocalPlayerController() { } + +simulated function NotifyScoreChange() { } + +function array getTeamPlayers() { } + +simulated event PostTimeLapse(bool bPlayOfTheGame) { } + +defaultproperties +{ + r_MapTeam=MAPTEAM_NEUTRAL + m_nPhoenixCount=3 + c_nScoreOverride=-1 + m_bHasThreadedWork=true +} diff --git a/Development/Src/TgGame/Classes/TgRespawnBeaconBase.uc b/Development/Src/TgGame/Classes/TgRespawnBeaconBase.uc new file mode 100644 index 0000000..4f35bb5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRespawnBeaconBase.uc @@ -0,0 +1,23 @@ +class TgRespawnBeaconBase extends TgDestructible + abstract + native + hidecategories(Navigation,SkeletalMeshActor) + config(Engine); + +var () const editconst int m_nMeshAssemblyId; +var export editinline transient MeshComponent m_ActualMeshComponent; +var transient array m_BeaconNodes; +var transient bool c_bEnemyMatLoaded; +var const bool m_bShouldShowSilhouetteToFriends; +var (BeaconExit) float m_fDeployTime; + +native function ForceRecalculateMaterial(); // Export UTgRespawnBeaconBase::execForceRecalculateMaterial(FFrame&, void* const) + +native function RecalculateMaterial(bool bIsFriendlyWithLocalPawn, optional bool bForce); // Export UTgRespawnBeaconBase::execRecalculateMaterial(FFrame&, void* const) + +simulated event PostInitAnimTree(SkeletalMeshComponent SkelComp) { } + +simulated function NotifyLocalPlayerTeamReceived() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgRespawnBeaconEntrance.uc b/Development/Src/TgGame/Classes/TgRespawnBeaconEntrance.uc new file mode 100644 index 0000000..8b8d2aa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRespawnBeaconEntrance.uc @@ -0,0 +1,75 @@ +class TgRespawnBeaconEntrance extends TgRespawnBeaconBase + native + hidecategories(Navigation,SkeletalMeshActor) + config(Engine); + +enum ERespawnBeaconChargingState { + RBCS_Inactive, // 0 + RBCS_Waiting, // 1 + RBCS_BuildUp, // 2 + RBCS_Active, // 3 +}; + +struct PendingTeleportInfo { + var Actor PendingActor; + var float TouchTimestamp; + var bool HasPlayedPreTeleport; + structdefaultproperties {} +}; + +var (BeaconEntrance) TgRespawnBeaconExit ExitBeacon; +var (BeaconEntrance) bool r_bEntranceActive; +var repnotify byte r_nPendingTeleport; +var transient TgRespawnBeaconEntrance.ERespawnBeaconChargingState c_LocalChargingState; +var repnotify TgRespawnBeaconEntrance.ERespawnBeaconChargingState r_ChargingState; +var export editinline TgParticleSystemComponent m_TeleportPSC; +var float m_fChargeDelay; +var float m_fTeleportDelay; +var float m_fPreTeleportFXTime; +var float s_fChargeStateTimeStamp; +var array s_PendingTeleports; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_ChargingState, r_bEntranceActive, r_nPendingTeleport; +} + +simulated event ReplicatedEvent(name VarName) { } + +simulated event PostBeginPlay() { } + +simulated function ConnectToExit() { } + +function OnBeaconEntranceSetActive(TgSeqAct_BeaconEntranceSetActive inAction) { } + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +function bool VerifyCanTeleport(TgPawn Other) { } + +function bool AddPendingTeleport(Actor Other) { } + +function bool RemovePendingTeleport(Actor Other) { } + +native function Actor GetNextPendingTeleport(); // Export UTgRespawnBeaconEntrance::execGetNextPendingTeleport(FFrame&, void* const) + +simulated event PostTouch(Actor Other) { } + +simulated event UnTouch(Actor Other) { } + +event FlashTeleportFx(TgPawn TgP) { } + +simulated function ClientFlashTeleportFX() { } + +simulated function ChargingStateChangedFX() { } + +event SetChargingState(TgRespawnBeaconEntrance.ERespawnBeaconChargingState chargeState) { } + +function BeaconSetActive() { } + +function EnableBeaconSetupFX() { } + +function DisableBeaconFX() { } + +simulated event bool CanApplyEffects() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgRespawnBeaconExit.uc b/Development/Src/TgGame/Classes/TgRespawnBeaconExit.uc new file mode 100644 index 0000000..dea496d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgRespawnBeaconExit.uc @@ -0,0 +1,110 @@ +class TgRespawnBeaconExit extends TgRespawnBeaconBase + native + hidecategories(Navigation,SkeletalMeshActor) + config(Engine); + +enum ERespawnBeaconActiveState { + RBAS_Inactive, // 0 + RBAS_Carried, // 1 + RBAS_Deploying, // 2 + RBAS_Active, // 3 +}; + +var (BeaconExit) bool m_bChangesYaw; +var bool c_bHiddenToLocalPlayer; +var (BeaconExit) float m_fPercHealthPerSec; +var (BeaconExit) float m_fHealthRegenLockoutTime; +var int r_nRespawnTime; +var float m_fTimeUntilHealTick; +var Rotator m_rInitialRot; +var Vector m_vInitialPos; +var TgRepInfo_Player r_CarrierRepInfo; +var Actor m_SpawnPointOverride; +var TgVisibilityVolume r_CurrentVisibilityVolumes[2]; +var TgRespawnBeaconExit.ERespawnBeaconActiveState c_LocalActiveState; +var repnotify TgRespawnBeaconExit.ERespawnBeaconActiveState r_ActiveState; +var repnotify byte r_nPlayTakeHit; +var transient array m_Entrances; +var transient array< delegate > m_CarriedDel; +var transient array< delegate > m_DestroyedDel; +var transient array< delegate > m_DeployingDel; +var transient array< delegate > m_ActiveDel; +var Vector r_nDeathLocation; +var Controller m_LastDamager; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_ActiveState, r_CarrierRepInfo, r_CurrentVisibilityVolumes, r_nDeathLocation, r_nPlayTakeHit, r_nRespawnTime; +} + +simulated delegate BeaconStateChanged(); + +native function OnBeaconReset(); // Export UTgRespawnBeaconExit::execOnBeaconReset(FFrame&, void* const) + +native function bool HasAnyEnabledEntrances(); // Export UTgRespawnBeaconExit::execHasAnyEnabledEntrances(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +function OnBeaconExitSetRespawn(TgSeqAct_BeaconExitSetRespawn inAction) { } + +function AddVisibilityVolume(TgVisibilityVolume Vol) { } + +function RemoveVisibilityVolume(TgVisibilityVolume Vol) { } + +simulated event PostBeginPlay() { } + +simulated event bool AcceptTeleport(TgPawn Incoming, TgRespawnBeaconEntrance Source) { } + +function SetBeaconCollision(bool IsActive) { } + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +simulated function bool IsValidTarget(TgPawn TgP) { } + +simulated function bool CanBePickedUp(TgPawn TgP) { } + +function bool Pickup(TgPawn TgP) { } + +function Place(TgPawn TgP) { } + +function PlaceFromDeploy(TgDeploy_RespawnBeacon TgD) { } + +function PlaceAtLocation(Vector NewLocation, Rotator NewRotation) { } + +function Deployed() { } + +simulated function DestroyIt(optional bool bSkipFx) { } + +function float GetDesiredLifeSpan() { } + +function BeginRespawnTimer() { } + +function UpdateRespawnTime() { } + +function Respawn() { } + +simulated function FXCarried() { } + +simulated function FXDestroyed() { } + +simulated function FXDeploying() { } + +simulated function FXActive() { } + +simulated function FXEndDeploying() { } + +simulated function FXEndActive() { } + +simulated function PlayTakeHitEffect() { } + +event TakeDamage(int Damage, Controller EventInstigator, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { } + +simulated function SetActiveState(TgRespawnBeaconExit.ERespawnBeaconActiveState NewState) { } + +simulated function ClientFlashTeleportFX() { } + +simulated function SetPendingTeleportFx(bool bIsPendingTeleport) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSavedMove.uc b/Development/Src/TgGame/Classes/TgSavedMove.uc new file mode 100644 index 0000000..97ba992 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSavedMove.uc @@ -0,0 +1,20 @@ +class TgSavedMove extends SavedMove + config(Engine); + +const bJumpHeldBit = 16; + +const bUltHeldBit = 4; + +var bool m_bJumpHeld; +var bool m_bUltHeld; +var byte m_byMoveSpeed; + +function Clear() { } + +function bool CanCombineWith(SavedMove NewMove, Pawn inPawn, float MaxDelta) { } + +function SetMoveFor(PlayerController P, float DeltaTime, vector NewAccel, EDoubleClickDir InDoubleClick) { } + +function byte CompressedFlags() { } + +static function EDoubleClickDir SetFlags(byte Flags, PlayerController PC) { } diff --git a/Development/Src/TgGame/Classes/TgScreenCapturePostEffect.uc b/Development/Src/TgGame/Classes/TgScreenCapturePostEffect.uc new file mode 100644 index 0000000..c16eca7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgScreenCapturePostEffect.uc @@ -0,0 +1,13 @@ +class TgScreenCapturePostEffect extends MaterialEffect + native + hidecategories(Object) + config(Engine); + +var transient TextureRenderTarget2D ScreenCapture; +var transient bool bIsScreenCaptureReady; + +native function InitializeRenderTarget(PlayerController PlayerController); // Export UTgScreenCapturePostEffect::execInitializeRenderTarget(FFrame&, void* const) + +native function CleanupRenderTarget(); // Export UTgScreenCapturePostEffect::execCleanupRenderTarget(FFrame&, void* const) + +function Cleanup(PostProcessChain InPostProcessChain) { } diff --git a/Development/Src/TgGame/Classes/TgSeqAct_AIFreeze.uc b/Development/Src/TgGame/Classes/TgSeqAct_AIFreeze.uc old mode 100755 new mode 100644 index 5d87e15..d3daff2 --- a/Development/Src/TgGame/Classes/TgSeqAct_AIFreeze.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_AIFreeze.uc @@ -1,14 +1,14 @@ -class TgSeqAct_AIFreeze extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int TaskForceNumber; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Freeze",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Unfreeze",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Freeze" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_AIFreeze extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int TaskForceNumber; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Freeze",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Unfreeze",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Freeze" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_AIMoveToActor.uc b/Development/Src/TgGame/Classes/TgSeqAct_AIMoveToActor.uc old mode 100755 new mode 100644 index 08fc08c..ed70ff8 --- a/Development/Src/TgGame/Classes/TgSeqAct_AIMoveToActor.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_AIMoveToActor.uc @@ -1,14 +1,14 @@ -class TgSeqAct_AIMoveToActor extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() Actor Destination; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Destination",LinkVar="None",PropertyName="Destination",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Move to Actor" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_AIMoveToActor extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Actor Destination; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Destination",LinkVar="None",PropertyName="Destination",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Move to Actor" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_AIStartFireAt.uc b/Development/Src/TgGame/Classes/TgSeqAct_AIStartFireAt.uc old mode 100755 new mode 100644 index f825345..68d4317 --- a/Development/Src/TgGame/Classes/TgSeqAct_AIStartFireAt.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_AIStartFireAt.uc @@ -1,14 +1,14 @@ -class TgSeqAct_AIStartFireAt extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() byte ForcedFireMode; - -defaultproperties -{ - ForcedFireMode=255 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Fire At",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Start Firing At" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_AIStartFireAt extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () byte ForcedFireMode; + +defaultproperties +{ + ForcedFireMode=255 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Fire At",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Start Firing At" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_AIStopFire.uc b/Development/Src/TgGame/Classes/TgSeqAct_AIStopFire.uc old mode 100755 new mode 100644 index 53484b4..d82c0c5 --- a/Development/Src/TgGame/Classes/TgSeqAct_AIStopFire.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_AIStopFire.uc @@ -1,9 +1,9 @@ -class TgSeqAct_AIStopFire extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - ObjName="Stop Firing" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_AIStopFire extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ObjName="Stop Firing" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_AITargetActor.uc b/Development/Src/TgGame/Classes/TgSeqAct_AITargetActor.uc old mode 100755 new mode 100644 index c9c5cf0..4d8d024 --- a/Development/Src/TgGame/Classes/TgSeqAct_AITargetActor.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_AITargetActor.uc @@ -1,14 +1,14 @@ -class TgSeqAct_AITargetActor extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() Actor CombatTarget; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Combat Target",LinkVar="None",PropertyName="CombatTarget",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Target Actor" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_AITargetActor extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Actor CombatTarget; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Combat Target",LinkVar="None",PropertyName="CombatTarget",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Target Actor" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_AddAnimSets.uc b/Development/Src/TgGame/Classes/TgSeqAct_AddAnimSets.uc old mode 100755 new mode 100644 index 174568e..af1ca51 --- a/Development/Src/TgGame/Classes/TgSeqAct_AddAnimSets.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_AddAnimSets.uc @@ -1,14 +1,14 @@ -class TgSeqAct_AddAnimSets extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() array m_MaleAnimSets; -var() array m_FemaleAnimSets; -var() bool m_bAppendToExisting; - -defaultproperties -{ - m_bAppendToExisting=true - ObjName="Add Anim Sets" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_AddAnimSets extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () array m_MaleAnimSets; +var () array m_FemaleAnimSets; +var () bool m_bAppendToExisting; + +defaultproperties +{ + m_bAppendToExisting=true + ObjName="Add Anim Sets" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_BeaconEntranceSetActive.uc b/Development/Src/TgGame/Classes/TgSeqAct_BeaconEntranceSetActive.uc old mode 100755 new mode 100644 index 31747fd..84e9332 --- a/Development/Src/TgGame/Classes/TgSeqAct_BeaconEntranceSetActive.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_BeaconEntranceSetActive.uc @@ -1,13 +1,13 @@ -class TgSeqAct_BeaconEntranceSetActive extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var bool m_bSetActive; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="BeaconEntrance",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="ActiveState",LinkVar="None",PropertyName="m_bSetActive",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="BeaconEntranceSetActive" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_BeaconEntranceSetActive extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var bool m_bSetActive; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="BeaconEntrance",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="ActiveState",LinkVar="None",PropertyName="m_bSetActive",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="BeaconEntranceSetActive" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_BeaconExitSetRespawn.uc b/Development/Src/TgGame/Classes/TgSeqAct_BeaconExitSetRespawn.uc old mode 100755 new mode 100644 index d5d47de..0652a7f --- a/Development/Src/TgGame/Classes/TgSeqAct_BeaconExitSetRespawn.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_BeaconExitSetRespawn.uc @@ -1,15 +1,15 @@ -class TgSeqAct_BeaconExitSetRespawn extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var Actor m_RespawnPoint; -var bool m_bRespawnImmediately; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="BeaconExit",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="RespawnPoint",LinkVar="None",PropertyName="m_RespawnPoint",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="RespawnImmediately",LinkVar="None",PropertyName="m_bRespawnImmediately",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="BeaconExitSetRespawn" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_BeaconExitSetRespawn extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var Actor m_RespawnPoint; +var bool m_bRespawnImmediately; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="BeaconExit",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="RespawnPoint",LinkVar="None",PropertyName="m_RespawnPoint",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="RespawnImmediately",LinkVar="None",PropertyName="m_bRespawnImmediately",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="BeaconExitSetRespawn" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_BeginWaitForLookAt.uc b/Development/Src/TgGame/Classes/TgSeqAct_BeginWaitForLookAt.uc old mode 100755 new mode 100644 index 1902f65..d4012b9 --- a/Development/Src/TgGame/Classes/TgSeqAct_BeginWaitForLookAt.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_BeginWaitForLookAt.uc @@ -1,20 +1,18 @@ -class TgSeqAct_BeginWaitForLookAt extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() Vector LocationToLookAt; -var() float MinOffsetDistance; - -function Activated() -{ -} - -defaultproperties -{ - MinOffsetDistance=1.5000000 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Vector',LinkDesc="Location To Look At",LinkVar="None",PropertyName="LocationToLookAt",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Min Aim Distance from Location",LinkVar="None",PropertyName="MinOffsetDistance",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Begin Wait For LookAt" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_BeginWaitForLookAt extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Vector LocationToLookAt; +var () float MinOffsetDistance; + +function Activated() { } + +defaultproperties +{ + MinOffsetDistance=1.5000000 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Vector',LinkedVariables=none,LinkDesc="Location To Look At",LinkVar="None",PropertyName="LocationToLookAt",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Min Aim Distance from Location",LinkVar="None",PropertyName="MinOffsetDistance",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Begin Wait For LookAt" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ChangeScale.uc b/Development/Src/TgGame/Classes/TgSeqAct_ChangeScale.uc old mode 100755 new mode 100644 index 94be613..b564af9 --- a/Development/Src/TgGame/Classes/TgSeqAct_ChangeScale.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ChangeScale.uc @@ -1,19 +1,19 @@ -class TgSeqAct_ChangeScale extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() float TargetScale; -var() Vector TargetScale3D; -var() float TransitionTime; - -defaultproperties -{ - TargetScale=1.0000000 - TargetScale3D=(X=1.0000000,Y=1.0000000,Z=1.0000000) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="TargetScale",LinkVar="None",PropertyName="TargetScale",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Vector',LinkDesc="TargetScale3D",LinkVar="None",PropertyName="TargetScale3D",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(3)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Time",LinkVar="None",PropertyName="TransitionTime",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Change Scale" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ChangeScale extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () float TargetScale; +var () Vector TargetScale3D; +var () float TransitionTime; + +defaultproperties +{ + TargetScale=1.0000000 + TargetScale3D=(X=1.0000000,Y=1.0000000,Z=1.0000000) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="TargetScale",LinkVar="None",PropertyName="TargetScale",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Vector',LinkedVariables=none,LinkDesc="TargetScale3D",LinkVar="None",PropertyName="TargetScale3D",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[3]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Time",LinkVar="None",PropertyName="TransitionTime",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Change Scale" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ClientLoadDevices.uc b/Development/Src/TgGame/Classes/TgSeqAct_ClientLoadDevices.uc old mode 100755 new mode 100644 index 10d1b2d..a233916 --- a/Development/Src/TgGame/Classes/TgSeqAct_ClientLoadDevices.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ClientLoadDevices.uc @@ -1,14 +1,14 @@ -class TgSeqAct_ClientLoadDevices extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() array m_DeviceIdList; -var() bool m_bClearExistingLoads; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="ClientLoadDevices" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ClientLoadDevices extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () array m_DeviceIdList; +var () bool m_bClearExistingLoads; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="ClientLoadDevices" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_CloseHUDMenus.uc b/Development/Src/TgGame/Classes/TgSeqAct_CloseHUDMenus.uc old mode 100755 new mode 100644 index f3e7ecb..8d5cc22 --- a/Development/Src/TgGame/Classes/TgSeqAct_CloseHUDMenus.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_CloseHUDMenus.uc @@ -1,14 +1,12 @@ -class TgSeqAct_CloseHUDMenus extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -function Activated() -{ -} - -defaultproperties -{ - ObjName="Close HUD Menus" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_CloseHUDMenus extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +function Activated() { } + +defaultproperties +{ + ObjName="Close HUD Menus" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_DefenseWaveSpawner.uc b/Development/Src/TgGame/Classes/TgSeqAct_DefenseWaveSpawner.uc old mode 100755 new mode 100644 index 0e711fa..a07f116 --- a/Development/Src/TgGame/Classes/TgSeqAct_DefenseWaveSpawner.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_DefenseWaveSpawner.uc @@ -1,21 +1,21 @@ -class TgSeqAct_DefenseWaveSpawner extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var int m_nRoundNumber; -var float m_fSpawnFrequency; -var transient float m_fNextSpawnTime; - -defaultproperties -{ - bCallHandler=false - bAutoActivateOutputLinks=false - //InputLinks=none - OutputLinks(0)=(LinkDesc="Activated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Round Number",LinkVar="None",PropertyName="m_nRoundNumber",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Spawn Frequency",LinkVar="None",PropertyName="m_fSpawnFrequency",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Bot Factories",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Defense Wave Spawner" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_DefenseWaveSpawner extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int m_nRoundNumber; +var float m_fSpawnFrequency; +var transient float m_fNextSpawnTime; + +defaultproperties +{ + bCallHandler=false + bAutoActivateOutputLinks=false + InputLinks=none + OutputLinks[0]=(Links=none,LinkDesc="Activated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Round Number",LinkVar="None",PropertyName="m_nRoundNumber",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Spawn Frequency",LinkVar="None",PropertyName="m_fSpawnFrequency",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Bot Factories",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Defense Wave Spawner" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_DespawnBots.uc b/Development/Src/TgGame/Classes/TgSeqAct_DespawnBots.uc old mode 100755 new mode 100644 index 6a621c2..7e522c1 --- a/Development/Src/TgGame/Classes/TgSeqAct_DespawnBots.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_DespawnBots.uc @@ -1,10 +1,10 @@ -class TgSeqAct_DespawnBots extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Factory/Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Despawn Bots" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_DespawnBots extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Factory/Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Despawn Bots" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_DisplaySlamText.uc b/Development/Src/TgGame/Classes/TgSeqAct_DisplaySlamText.uc deleted file mode 100755 index 9084089..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_DisplaySlamText.uc +++ /dev/null @@ -1,15 +0,0 @@ -class TgSeqAct_DisplaySlamText extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() int m_nMessageId; - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Display Slam Text" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_EndMission.uc b/Development/Src/TgGame/Classes/TgSeqAct_EndMission.uc old mode 100755 new mode 100644 index 5694066..be9bd61 --- a/Development/Src/TgGame/Classes/TgSeqAct_EndMission.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_EndMission.uc @@ -1,4 +1,5 @@ -class TgSeqAct_EndMission extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); +class TgSeqAct_EndMission extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgSeqAct_FadeIn.uc b/Development/Src/TgGame/Classes/TgSeqAct_FadeIn.uc deleted file mode 100755 index cac94eb..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_FadeIn.uc +++ /dev/null @@ -1,16 +0,0 @@ -class TgSeqAct_FadeIn extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() float m_fDuration; - -event Activated() -{ -} - -defaultproperties -{ - m_fDuration=2.0000000 - ObjName="Fade In" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_FadeOut.uc b/Development/Src/TgGame/Classes/TgSeqAct_FadeOut.uc deleted file mode 100755 index df761a6..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_FadeOut.uc +++ /dev/null @@ -1,16 +0,0 @@ -class TgSeqAct_FadeOut extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() float m_fDuration; - -event Activated() -{ -} - -defaultproperties -{ - m_fDuration=2.0000000 - ObjName="Fade Out" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_FillUltimateEnergy.uc b/Development/Src/TgGame/Classes/TgSeqAct_FillUltimateEnergy.uc old mode 100755 new mode 100644 index e9f35a0..3fe4a46 --- a/Development/Src/TgGame/Classes/TgSeqAct_FillUltimateEnergy.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_FillUltimateEnergy.uc @@ -1,14 +1,12 @@ -class TgSeqAct_FillUltimateEnergy extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -function Activated() -{ -} - -defaultproperties -{ - ObjName="Fill Ultimate Energy" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_FillUltimateEnergy extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +function Activated() { } + +defaultproperties +{ + ObjName="Fill Ultimate Energy" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ForceClientTutorialAction.uc b/Development/Src/TgGame/Classes/TgSeqAct_ForceClientTutorialAction.uc old mode 100755 new mode 100644 index d72b446..1627cef --- a/Development/Src/TgGame/Classes/TgSeqAct_ForceClientTutorialAction.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ForceClientTutorialAction.uc @@ -1,23 +1,22 @@ -class TgSeqAct_ForceClientTutorialAction extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -enum eForcedClientTutorialAction -{ - FCTA_BlockAvl, - FCTA_UnblockAvl, - FCTA_Open, - FCTA_Close, - //FCTA_MAX -}; - -var() TgSeqAct_ForceClientTutorialAction.eForcedClientTutorialAction ForcedAction; -var() TgObject.eTutorialForceableElements GameUIElement; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Force Client Tutorial Action" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ForceClientTutorialAction extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine) + dependson(TgObject); + +enum eForcedClientTutorialAction { + FCTA_BlockAvl, // 0 + FCTA_UnblockAvl, // 1 + FCTA_Open, // 2 + FCTA_Close, // 3 +}; + +var () TgSeqAct_ForceClientTutorialAction.eForcedClientTutorialAction ForcedAction; +var () TgObject.eTutorialForceableElements GameUIElement; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Force Client Tutorial Action" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetBot.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetBot.uc old mode 100755 new mode 100644 index 01b66e0..1110ba5 --- a/Development/Src/TgGame/Classes/TgSeqAct_GetBot.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetBot.uc @@ -1,14 +1,14 @@ -class TgSeqAct_GetBot extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var int m_nBotNumber; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Bot Number",LinkVar="None",PropertyName="m_nBotNumber",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Bot Pawn",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetBot" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetBot extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int m_nBotNumber; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Bot Number",LinkVar="None",PropertyName="m_nBotNumber",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Bot Pawn",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetBot" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetCharClass.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetCharClass.uc old mode 100755 new mode 100644 index 9d30138..947a284 --- a/Development/Src/TgGame/Classes/TgSeqAct_GetCharClass.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetCharClass.uc @@ -1,15 +1,15 @@ -class TgSeqAct_GetCharClass extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bAutoActivateOutputLinks=false - OutputLinks(0)=(LinkDesc="Assault",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Infiltrator",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Medic",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Robotics",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetCharClass" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetCharClass extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bAutoActivateOutputLinks=false + OutputLinks[0]=(Links=none,LinkDesc="Assault",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Infiltrator",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Medic",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Robotics",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetCharClass" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetLocalPlayerController.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetLocalPlayerController.uc old mode 100755 new mode 100644 index 88b5161..4dc5073 --- a/Development/Src/TgGame/Classes/TgSeqAct_GetLocalPlayerController.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetLocalPlayerController.uc @@ -1,17 +1,15 @@ -class TgSeqAct_GetLocalPlayerController extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var TgPlayerController LocalPlayerController; - -function Activated() -{ -} - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Local Player Controller",LinkVar="None",PropertyName="LocalPlayerController",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Get Local Player Controller" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetLocalPlayerController extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var TgPlayerController LocalPlayerController; + +function Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Local Player Controller",LinkVar="None",PropertyName="LocalPlayerController",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Get Local Player Controller" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetMaterialInst.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetMaterialInst.uc old mode 100755 new mode 100644 index c3e796b..33ac23a --- a/Development/Src/TgGame/Classes/TgSeqAct_GetMaterialInst.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetMaterialInst.uc @@ -1,16 +1,16 @@ -class TgSeqAct_GetMaterialInst extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() MaterialInstance MatInst; -var() string MatInstName; -var() int MaterialIndex; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Mesh",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="MaterialInstanceConstant",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetMaterialInst" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetMaterialInst extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () MaterialInstance MatInst; +var () string MatInstName; +var () int MaterialIndex; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Mesh",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="MaterialInstanceConstant",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetMaterialInst" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetPlayerCount.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetPlayerCount.uc old mode 100755 new mode 100644 index 6486ee6..688c4da --- a/Development/Src/TgGame/Classes/TgSeqAct_GetPlayerCount.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetPlayerCount.uc @@ -1,22 +1,22 @@ -class TgSeqAct_GetPlayerCount extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nTaskForce; -var float m_fPlayerCount; -var float m_fAssaultCount; -var float m_fMedicCount; -var float m_fReconCount; -var float m_fRoboticsCount; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Players",LinkVar="None",PropertyName="m_fPlayerCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Assault",LinkVar="None",PropertyName="m_fAssaultCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Medic",LinkVar="None",PropertyName="m_fMedicCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(3)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Recon",LinkVar="None",PropertyName="m_fReconCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(4)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Robotics",LinkVar="None",PropertyName="m_fRoboticsCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetPlayerCount" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetPlayerCount extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_nTaskForce; +var float m_fPlayerCount; +var float m_fAssaultCount; +var float m_fMedicCount; +var float m_fReconCount; +var float m_fRoboticsCount; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Players",LinkVar="None",PropertyName="m_fPlayerCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Assault",LinkVar="None",PropertyName="m_fAssaultCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Medic",LinkVar="None",PropertyName="m_fMedicCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[3]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Recon",LinkVar="None",PropertyName="m_fReconCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[4]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Robotics",LinkVar="None",PropertyName="m_fRoboticsCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetPlayerCount" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceCount.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceCount.uc old mode 100755 new mode 100644 index b8c4472..4e739e6 --- a/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceCount.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceCount.uc @@ -1,16 +1,16 @@ -class TgSeqAct_GetTaskForceCount extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int Taskforce; -var int m_nPlayerCount; -var int m_nBotCount; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Player Count",LinkVar="None",PropertyName="m_nPlayerCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Bot Count",LinkVar="None",PropertyName="m_nBotCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetTaskForceCount" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetTaskForceCount extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int Taskforce; +var int m_nPlayerCount; +var int m_nBotCount; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Player Count",LinkVar="None",PropertyName="m_nPlayerCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Bot Count",LinkVar="None",PropertyName="m_nBotCount",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetTaskForceCount" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceNumber.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceNumber.uc old mode 100755 new mode 100644 index d9afc0f..c5bfa7b --- a/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceNumber.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetTaskForceNumber.uc @@ -1,11 +1,11 @@ -class TgSeqAct_GetTaskForceNumber extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Actor",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="TaskForceNumber",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetTaskForceNumber" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetTaskForceNumber extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Actor",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="TaskForceNumber",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetTaskForceNumber" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GetTeamIndex.uc b/Development/Src/TgGame/Classes/TgSeqAct_GetTeamIndex.uc old mode 100755 new mode 100644 index 6af8a0a..4b9171c --- a/Development/Src/TgGame/Classes/TgSeqAct_GetTeamIndex.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GetTeamIndex.uc @@ -1,11 +1,11 @@ -class TgSeqAct_GetTeamIndex extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="TeamIndex",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="GetTeamIndex" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GetTeamIndex extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="TeamIndex",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="GetTeamIndex" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GiveCredits.uc b/Development/Src/TgGame/Classes/TgSeqAct_GiveCredits.uc old mode 100755 new mode 100644 index d1f7223..e7d7e2f --- a/Development/Src/TgGame/Classes/TgSeqAct_GiveCredits.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GiveCredits.uc @@ -1,17 +1,15 @@ -class TgSeqAct_GiveCredits extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int CreditsToGive; - -function Activated() -{ -} - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Credits to Give",LinkVar="None",PropertyName="CreditsToGive",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Give Credits" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GiveCredits extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int CreditsToGive; + +function Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Credits to Give",LinkVar="None",PropertyName="CreditsToGive",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Give Credits" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_GiveFullVitals.uc b/Development/Src/TgGame/Classes/TgSeqAct_GiveFullVitals.uc old mode 100755 new mode 100644 index ef6e101..69794f2 --- a/Development/Src/TgGame/Classes/TgSeqAct_GiveFullVitals.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_GiveFullVitals.uc @@ -1,11 +1,11 @@ -class TgSeqAct_GiveFullVitals extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Give Full Vitals" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_GiveFullVitals extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Give Full Vitals" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_HackBot.uc b/Development/Src/TgGame/Classes/TgSeqAct_HackBot.uc old mode 100755 new mode 100644 index 1ebe76a..ad04bbe --- a/Development/Src/TgGame/Classes/TgSeqAct_HackBot.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_HackBot.uc @@ -1,13 +1,13 @@ -class TgSeqAct_HackBot extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var Actor m_ControlPawn; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Control Pawn",LinkVar="None",PropertyName="m_ControlPawn",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Hack Bot" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_HackBot extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var Actor m_ControlPawn; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Control Pawn",LinkVar="None",PropertyName="m_ControlPawn",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Hack Bot" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_HideHUD.uc b/Development/Src/TgGame/Classes/TgSeqAct_HideHUD.uc deleted file mode 100755 index 5a7e0e4..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_HideHUD.uc +++ /dev/null @@ -1,13 +0,0 @@ -class TgSeqAct_HideHUD extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Hide HUD" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_HideSilhouettes.uc b/Development/Src/TgGame/Classes/TgSeqAct_HideSilhouettes.uc deleted file mode 100755 index 9ec0b6c..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_HideSilhouettes.uc +++ /dev/null @@ -1,13 +0,0 @@ -class TgSeqAct_HideSilhouettes extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Hide Silhouettes" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_JoinTeam.uc b/Development/Src/TgGame/Classes/TgSeqAct_JoinTeam.uc old mode 100755 new mode 100644 index d2b8c1f..3875212 --- a/Development/Src/TgGame/Classes/TgSeqAct_JoinTeam.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_JoinTeam.uc @@ -1,13 +1,13 @@ -class TgSeqAct_JoinTeam extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() Actor TeamLeader; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="TeamLeader",LinkVar="None",PropertyName="TeamLeader",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="JoinTeam" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_JoinTeam extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Actor TeamLeader; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="TeamLeader",LinkVar="None",PropertyName="TeamLeader",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="JoinTeam" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_KillBots.uc b/Development/Src/TgGame/Classes/TgSeqAct_KillBots.uc old mode 100755 new mode 100644 index 60211fb..189b3c5 --- a/Development/Src/TgGame/Classes/TgSeqAct_KillBots.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_KillBots.uc @@ -1,10 +1,10 @@ -class TgSeqAct_KillBots extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Kill Bots" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_KillBots extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Kill Bots" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_KillCurrentSquad.uc b/Development/Src/TgGame/Classes/TgSeqAct_KillCurrentSquad.uc old mode 100755 new mode 100644 index ad8e520..58148eb --- a/Development/Src/TgGame/Classes/TgSeqAct_KillCurrentSquad.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_KillCurrentSquad.uc @@ -1,10 +1,10 @@ -class TgSeqAct_KillCurrentSquad extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="KillCurrentSquad" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_KillCurrentSquad extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="KillCurrentSquad" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_Killpawns.uc b/Development/Src/TgGame/Classes/TgSeqAct_Killpawns.uc old mode 100755 new mode 100644 index 294d514..b467c8f --- a/Development/Src/TgGame/Classes/TgSeqAct_Killpawns.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_Killpawns.uc @@ -1,9 +1,9 @@ -class TgSeqAct_Killpawns extends TgSeqAct_KillBots - hidecategories(Object); - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Pawn(s) To Kill",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Kill Pawn" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_Killpawns extends TgSeqAct_KillBots + hidecategories(Object) + config(Engine); + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Pawn(s) To Kill",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Kill Pawn" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_LaunchHomeInstance.uc b/Development/Src/TgGame/Classes/TgSeqAct_LaunchHomeInstance.uc old mode 100755 new mode 100644 index 4744f40..80da0a1 --- a/Development/Src/TgGame/Classes/TgSeqAct_LaunchHomeInstance.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_LaunchHomeInstance.uc @@ -1,9 +1,9 @@ -class TgSeqAct_LaunchHomeInstance extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - ObjName="Launch Home Instance" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_LaunchHomeInstance extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ObjName="Launch Home Instance" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_LogTutorialAction.uc b/Development/Src/TgGame/Classes/TgSeqAct_LogTutorialAction.uc old mode 100755 new mode 100644 index ae96ffb..9596cb2 --- a/Development/Src/TgGame/Classes/TgSeqAct_LogTutorialAction.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_LogTutorialAction.uc @@ -1,14 +1,14 @@ -class TgSeqAct_LogTutorialAction extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() int PlayerAction; -var() int EventData; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="EventData",LinkVar="None",PropertyName="EventData",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Log Tutorial Action" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_LogTutorialAction extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int PlayerAction; +var () int EventData; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="EventData",LinkVar="None",PropertyName="EventData",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Log Tutorial Action" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_MapOutroFinished.uc b/Development/Src/TgGame/Classes/TgSeqAct_MapOutroFinished.uc old mode 100755 new mode 100644 index d470c40..3e9ed4b --- a/Development/Src/TgGame/Classes/TgSeqAct_MapOutroFinished.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_MapOutroFinished.uc @@ -1,10 +1,10 @@ -class TgSeqAct_MapOutroFinished extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - ObjName="Map Outro Finished" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_MapOutroFinished extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ObjName="Map Outro Finished" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_MarkSpawnReturn.uc b/Development/Src/TgGame/Classes/TgSeqAct_MarkSpawnReturn.uc old mode 100755 new mode 100644 index f6ac8c9..b8519de --- a/Development/Src/TgGame/Classes/TgSeqAct_MarkSpawnReturn.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_MarkSpawnReturn.uc @@ -1,16 +1,14 @@ -class TgSeqAct_MarkSpawnReturn extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() Teleporter m_Teleporter; - -event Activated() -{ -} - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Mark Spawn Return" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_MarkSpawnReturn extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Teleporter m_Teleporter; + +event Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Mark Spawn Return" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_NavIndicator.uc b/Development/Src/TgGame/Classes/TgSeqAct_NavIndicator.uc old mode 100755 new mode 100644 index d27a7c7..ec0b1ed --- a/Development/Src/TgGame/Classes/TgSeqAct_NavIndicator.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_NavIndicator.uc @@ -1,14 +1,14 @@ -class TgSeqAct_NavIndicator extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var Actor m_NavTarget; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player(s)",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Destination",LinkVar="None",PropertyName="m_NavTarget",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Nav Indicator" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_NavIndicator extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var Actor m_NavTarget; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player(s)",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Destination",LinkVar="None",PropertyName="m_NavTarget",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Nav Indicator" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_NextGamePhase.uc b/Development/Src/TgGame/Classes/TgSeqAct_NextGamePhase.uc deleted file mode 100755 index c7a186d..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_NextGamePhase.uc +++ /dev/null @@ -1,13 +0,0 @@ -class TgSeqAct_NextGamePhase extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Next Game Phase" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ParentAnimComponent.uc b/Development/Src/TgGame/Classes/TgSeqAct_ParentAnimComponent.uc old mode 100755 new mode 100644 index f6bd6b2..ac3c068 --- a/Development/Src/TgGame/Classes/TgSeqAct_ParentAnimComponent.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ParentAnimComponent.uc @@ -1,13 +1,13 @@ -class TgSeqAct_ParentAnimComponent extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() bool bDetach; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Parent",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Child",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Parent Anim Component" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ParentAnimComponent extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bDetach; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Parent",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Child",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Parent Anim Component" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_PauseSetupTimer.uc b/Development/Src/TgGame/Classes/TgSeqAct_PauseSetupTimer.uc old mode 100755 new mode 100644 index 9903bf8..b9af216 --- a/Development/Src/TgGame/Classes/TgSeqAct_PauseSetupTimer.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_PauseSetupTimer.uc @@ -1,18 +1,16 @@ -class TgSeqAct_PauseSetupTimer extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var(PauseSetupTimer) bool PauseImmediately; -var(PauseSetupTimer) float PauseAtTimeRemaining; - -function Activated() -{ -} - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Pause Immediately",LinkVar="None",PropertyName="PauseImmediately",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Pause At Time Remaining",LinkVar="None",PropertyName="PauseAtTimeRemaining",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Pause Setup Timer" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_PauseSetupTimer extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var (PauseSetupTimer) bool PauseImmediately; +var (PauseSetupTimer) float PauseAtTimeRemaining; + +function Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Pause Immediately",LinkVar="None",PropertyName="PauseImmediately",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Pause At Time Remaining",LinkVar="None",PropertyName="PauseAtTimeRemaining",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Pause Setup Timer" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_PingMinimap.uc b/Development/Src/TgGame/Classes/TgSeqAct_PingMinimap.uc old mode 100755 new mode 100644 index 11556ef..a9b6589 --- a/Development/Src/TgGame/Classes/TgSeqAct_PingMinimap.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_PingMinimap.uc @@ -1,14 +1,14 @@ -class TgSeqAct_PingMinimap extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var Actor m_PingTarget; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Destination",LinkVar="None",PropertyName="m_PingTarget",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Ping Minimap" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_PingMinimap extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var Actor m_PingTarget; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Destination",LinkVar="None",PropertyName="m_PingTarget",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Ping Minimap" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_PlayAnnouncement.uc b/Development/Src/TgGame/Classes/TgSeqAct_PlayAnnouncement.uc old mode 100755 new mode 100644 index 76029d7..75532c6 --- a/Development/Src/TgGame/Classes/TgSeqAct_PlayAnnouncement.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_PlayAnnouncement.uc @@ -1,22 +1,18 @@ -class TgSeqAct_PlayAnnouncement extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() bool bPlayImmediately; -var() bool bFlushOthers; -var() int SoundIndex; -var() SoundCue OptionalCue; - -event Activated() -{ -} - -static event int GetObjClassVersion() -{ -} - -defaultproperties -{ - ObjName="Tutorial Announcement" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_PlayAnnouncement extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bPlayImmediately; +var () bool bFlushOthers; +var () int SoundIndex; +var () SoundCue OptionalCue; + +event Activated() { } + +static event int GetObjClassVersion() { } + +defaultproperties +{ + ObjName="Tutorial Announcement" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_PlayCameraAnim.uc b/Development/Src/TgGame/Classes/TgSeqAct_PlayCameraAnim.uc old mode 100755 new mode 100644 index 7faa23a..70f4eaa --- a/Development/Src/TgGame/Classes/TgSeqAct_PlayCameraAnim.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_PlayCameraAnim.uc @@ -1,21 +1,19 @@ -class TgSeqAct_PlayCameraAnim extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() CameraAnim AnimToPlay; -var() float BlendInTime; -var() float BlendOutTime; -var() float Rate; -var() float IntensityScale; - -static event int GetObjClassVersion() -{ -} - -defaultproperties -{ - Rate=1.0000000 - IntensityScale=1.0000000 - ObjName="Play Camera Animation" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_PlayCameraAnim extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () CameraAnim AnimToPlay; +var () float BlendInTime; +var () float BlendOutTime; +var () float Rate; +var () float IntensityScale; + +static event int GetObjClassVersion() { } + +defaultproperties +{ + Rate=1.0000000 + IntensityScale=1.0000000 + ObjName="Play Camera Animation" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_PlayFullBodyAnim.uc b/Development/Src/TgGame/Classes/TgSeqAct_PlayFullBodyAnim.uc old mode 100755 new mode 100644 index b77d1a3..9c47990 --- a/Development/Src/TgGame/Classes/TgSeqAct_PlayFullBodyAnim.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_PlayFullBodyAnim.uc @@ -1,22 +1,22 @@ -class TgSeqAct_PlayFullBodyAnim extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() name c_AnimName; -var() float c_fRate; -var() float c_fBlendInTime; -var() float c_fBlendOutTime; -var() bool c_bLooping; -var() bool c_bOverride; - -defaultproperties -{ - c_fRate=1.0000000 - c_fBlendInTime=0.2000000 - c_fBlendOutTime=0.2000000 - c_bOverride=true - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player",LinkVar="None",PropertyName="Targets",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Play Full Body Animation" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_PlayFullBodyAnim extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () name c_AnimName; +var () float c_fRate; +var () float c_fBlendInTime; +var () float c_fBlendOutTime; +var () bool c_bLooping; +var () bool c_bOverride; + +defaultproperties +{ + c_fRate=1.0000000 + c_fBlendInTime=0.2000000 + c_fBlendOutTime=0.2000000 + c_bOverride=true + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player",LinkVar="None",PropertyName="Targets",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Play Full Body Animation" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ProgressTo.uc b/Development/Src/TgGame/Classes/TgSeqAct_ProgressTo.uc old mode 100755 new mode 100644 index e1101c5..b3e38bf --- a/Development/Src/TgGame/Classes/TgSeqAct_ProgressTo.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ProgressTo.uc @@ -1,14 +1,14 @@ -class TgSeqAct_ProgressTo extends SeqAct_Delay - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var TgPawn m_Instigator; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Duration",LinkVar="None",PropertyName="Duration",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Target",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="ProgressTo" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ProgressTo extends SeqAct_Delay + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var TgPawn m_Instigator; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Duration",LinkVar="None",PropertyName="Duration",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Target",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="ProgressTo" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_PushMatinee.uc b/Development/Src/TgGame/Classes/TgSeqAct_PushMatinee.uc old mode 100755 new mode 100644 index 5102adc..045d28c --- a/Development/Src/TgGame/Classes/TgSeqAct_PushMatinee.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_PushMatinee.uc @@ -1,15 +1,14 @@ -class TgSeqAct_PushMatinee extends SeqAct_Interp - native(Kismet) - config(Engine) - forcescriptorder(true) - hidecategories(Object); - -var() const float m_fCheckpoint1Time; -var() const float m_fCheckpoint2Time; -var() const int m_nDefenderTaskForce; - -defaultproperties -{ - ObjName="Push Matinee" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_PushMatinee extends SeqAct_Interp + native(Kismet) + config(Engine) + forcescriptorder(true) + hidecategories(Object); + +var () const float m_fCheckpoint1Time; +var () const float m_fCheckpoint2Time; +var () const int m_nDefenderTaskForce; + +defaultproperties +{ + ObjName="Push Matinee" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_RequestMission.uc b/Development/Src/TgGame/Classes/TgSeqAct_RequestMission.uc old mode 100755 new mode 100644 index 09954df..38f5e97 --- a/Development/Src/TgGame/Classes/TgSeqAct_RequestMission.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_RequestMission.uc @@ -1,21 +1,19 @@ -class TgSeqAct_RequestMission extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -enum EMissionDifficultyLevel -{ - DL_Easy, - DL_Medium, - DL_Hard, - //DL_MAX -}; - -var() int m_nMapGameId; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Request Mission" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_RequestMission extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum EMissionDifficultyLevel { + DL_Easy, // 0 + DL_Medium, // 1 + DL_Hard, // 2 +}; + +var () int m_nMapGameId; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Request Mission" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ResetCooldowns.uc b/Development/Src/TgGame/Classes/TgSeqAct_ResetCooldowns.uc old mode 100755 new mode 100644 index 0af4ab3..891434d --- a/Development/Src/TgGame/Classes/TgSeqAct_ResetCooldowns.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ResetCooldowns.uc @@ -1,14 +1,12 @@ -class TgSeqAct_ResetCooldowns extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -function Activated() -{ -} - -defaultproperties -{ - ObjName="Reset Cooldowns" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ResetCooldowns extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +function Activated() { } + +defaultproperties +{ + ObjName="Reset Cooldowns" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_RespawnAllPlayers.uc b/Development/Src/TgGame/Classes/TgSeqAct_RespawnAllPlayers.uc old mode 100755 new mode 100644 index 1393ab0..780d56e --- a/Development/Src/TgGame/Classes/TgSeqAct_RespawnAllPlayers.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_RespawnAllPlayers.uc @@ -1,19 +1,19 @@ -class TgSeqAct_RespawnAllPlayers extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool bResetLivingPlayers; -var() bool bResetDeadPlayers; -var() bool bResetHealth; - -defaultproperties -{ - bResetLivingPlayers=true - bResetDeadPlayers=true - bResetHealth=true - bCallHandler=false - //VariableLinks=none - ObjName="RespawnAllPlayers" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_RespawnAllPlayers extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bResetLivingPlayers; +var () bool bResetDeadPlayers; +var () bool bResetHealth; + +defaultproperties +{ + bResetLivingPlayers=true + bResetDeadPlayers=true + bResetHealth=true + bCallHandler=false + VariableLinks=none + ObjName="RespawnAllPlayers" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_RestartPlayers.uc b/Development/Src/TgGame/Classes/TgSeqAct_RestartPlayers.uc old mode 100755 new mode 100644 index cb4d301..6b7e749 --- a/Development/Src/TgGame/Classes/TgSeqAct_RestartPlayers.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_RestartPlayers.uc @@ -1,9 +1,9 @@ -class TgSeqAct_RestartPlayers extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - ObjName="Restart Players" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_RestartPlayers extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ObjName="Restart Players" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SelectBestSpawnPoint.uc b/Development/Src/TgGame/Classes/TgSeqAct_SelectBestSpawnPoint.uc old mode 100755 new mode 100644 index 57acbcf..6da4bc4 --- a/Development/Src/TgGame/Classes/TgSeqAct_SelectBestSpawnPoint.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SelectBestSpawnPoint.uc @@ -1,19 +1,17 @@ -class TgSeqAct_SelectBestSpawnPoint extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() array Points; -var() Actor PlayerReceived; - -function Activated() -{ -} - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Teleport Pawn",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_ObjectList',LinkDesc="Spawn Points",LinkVar="None",PropertyName="Points",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player",LinkVar="None",PropertyName="PlayerReceived",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Teleport Player To Best Spawn Point" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SelectBestSpawnPoint extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () array Points; +var () Actor PlayerReceived; + +function Activated() { } + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Teleport Pawn",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_ObjectList',LinkedVariables=none,LinkDesc="Spawn Points",LinkVar="None",PropertyName="Points",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player",LinkVar="None",PropertyName="PlayerReceived",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Teleport Player To Best Spawn Point" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SendPlayerTrackingEvent.uc b/Development/Src/TgGame/Classes/TgSeqAct_SendPlayerTrackingEvent.uc old mode 100755 new mode 100644 index 4c7bdcb..23d97f0 --- a/Development/Src/TgGame/Classes/TgSeqAct_SendPlayerTrackingEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SendPlayerTrackingEvent.uc @@ -1,15 +1,15 @@ -class TgSeqAct_SendPlayerTrackingEvent extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nEventId; -var() int m_nSubEventID; -var() string m_ReferenceName; -var() int m_nReferenceValue; - -defaultproperties -{ - ObjName="Send Player Tracking Event" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SendPlayerTrackingEvent extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_nEventId; +var () int m_nSubEventID; +var () string m_ReferenceName; +var () int m_nReferenceValue; + +defaultproperties +{ + ObjName="Send Player Tracking Event" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetCreditGainBlock.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetCreditGainBlock.uc old mode 100755 new mode 100644 index b1afff4..c0d6132 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetCreditGainBlock.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetCreditGainBlock.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetCreditGainBlock extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var int m_bBlockCreditGain; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Block Credit Gain",LinkVar="None",PropertyName="m_bBlockCreditGain",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Block Credit Gain" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetCreditGainBlock extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int m_bBlockCreditGain; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Block Credit Gain",LinkVar="None",PropertyName="m_bBlockCreditGain",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Block Credit Gain" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetCrowdControlImmune.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetCrowdControlImmune.uc old mode 100755 new mode 100644 index 6212f12..3b2180b --- a/Development/Src/TgGame/Classes/TgSeqAct_SetCrowdControlImmune.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetCrowdControlImmune.uc @@ -1,12 +1,12 @@ -class TgSeqAct_SetCrowdControlImmune extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Enable",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Disable",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Toggle",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Crowd Control Immune" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetCrowdControlImmune extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Enable",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Disable",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Toggle",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Crowd Control Immune" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetEnergyGainBlock.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetEnergyGainBlock.uc old mode 100755 new mode 100644 index dc6a21b..b0e4cfc --- a/Development/Src/TgGame/Classes/TgSeqAct_SetEnergyGainBlock.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetEnergyGainBlock.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetEnergyGainBlock extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_bBlockEnergyGain; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Block Energy Gain",LinkVar="None",PropertyName="m_bBlockEnergyGain",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Block Energy Gain" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetEnergyGainBlock extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_bBlockEnergyGain; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Block Energy Gain",LinkVar="None",PropertyName="m_bBlockEnergyGain",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Block Energy Gain" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetHexState.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetHexState.uc old mode 100755 new mode 100644 index c11d60e..30b4c2e --- a/Development/Src/TgGame/Classes/TgSeqAct_SetHexState.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetHexState.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetHexState extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool m_bChallengerWon; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Challenger Won",LinkVar="None",PropertyName="m_bChallengerWon",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Set Hex State" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetHexState extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool m_bChallengerWon; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Challenger Won",LinkVar="None",PropertyName="m_bChallengerWon",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Set Hex State" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetInputEnabled.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetInputEnabled.uc old mode 100755 new mode 100644 index 6fa11a9..770d7eb --- a/Development/Src/TgGame/Classes/TgSeqAct_SetInputEnabled.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetInputEnabled.uc @@ -1,47 +1,45 @@ -class TgSeqAct_SetInputEnabled extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool bEnableMoveForward; -var() bool bEnableMoveBackward; -var() bool bEnableMoveLeft; -var() bool bEnableMoveRight; -var() bool bEnableLookUp; -var() bool bEnableLookDown; -var() bool bEnableLookLeft; -var() bool bEnableLookRight; -var() bool bEnableJumping; -var() bool bEnableMounting; -var() bool bEnableAuto; -var() bool bEnableAlt; -var() bool bEnableBattleAbility; -var() bool bEnableMovementAbility; -var() bool bEnableUltimate; -var() bool bEnableEmote; - -function Activated() -{ -} - -defaultproperties -{ - bEnableMoveForward=true - bEnableMoveBackward=true - bEnableMoveLeft=true - bEnableMoveRight=true - bEnableLookUp=true - bEnableLookDown=true - bEnableLookLeft=true - bEnableLookRight=true - bEnableJumping=true - bEnableMounting=true - bEnableAuto=true - bEnableAlt=true - bEnableBattleAbility=true - bEnableMovementAbility=true - bEnableUltimate=true - bEnableEmote=true - ObjName="Set Input Enabled/Disabled" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetInputEnabled extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bEnableMoveForward; +var () bool bEnableMoveBackward; +var () bool bEnableMoveLeft; +var () bool bEnableMoveRight; +var () bool bEnableLookUp; +var () bool bEnableLookDown; +var () bool bEnableLookLeft; +var () bool bEnableLookRight; +var () bool bEnableJumping; +var () bool bEnableMounting; +var () bool bEnableAuto; +var () bool bEnableAlt; +var () bool bEnableBattleAbility; +var () bool bEnableMovementAbility; +var () bool bEnableUltimate; +var () bool bEnableEmote; + +function Activated() { } + +defaultproperties +{ + bEnableMoveForward=true + bEnableMoveBackward=true + bEnableMoveLeft=true + bEnableMoveRight=true + bEnableLookUp=true + bEnableLookDown=true + bEnableLookLeft=true + bEnableLookRight=true + bEnableJumping=true + bEnableMounting=true + bEnableAuto=true + bEnableAlt=true + bEnableBattleAbility=true + bEnableMovementAbility=true + bEnableUltimate=true + bEnableEmote=true + ObjName="Set Input Enabled/Disabled" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetLobbyMeshSkin.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetLobbyMeshSkin.uc deleted file mode 100755 index a1097a0..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetLobbyMeshSkin.uc +++ /dev/null @@ -1,19 +0,0 @@ -class TgSeqAct_SetLobbyMeshSkin extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() int m_nMessageSkinId; -var() int m_nMessageDeviceSkinId; -var() int m_nSkinId; -var() int m_nDeviceSkinId; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Meshes",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="m_nMessageSkinId",LinkVar="None",PropertyName="m_nMessageSkinId",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="m_nMessageDeviceSkinId",LinkVar="None",PropertyName="m_nMessageDeviceSkinId",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(3)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Skin ID",LinkVar="None",PropertyName="m_nSkinId",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(4)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Device Skin ID",LinkVar="None",PropertyName="m_nDeviceSkinId",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Set Lobby Mesh Skin" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetMapLane.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetMapLane.uc old mode 100755 new mode 100644 index 6657527..0618bb3 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetMapLane.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetMapLane.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetMapLane extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var int m_nMapLane; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Map Lane",LinkVar="None",PropertyName="m_nMapLane",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Set Map Lane" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetMapLane extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int m_nMapLane; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Map Lane",LinkVar="None",PropertyName="m_nMapLane",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Set Map Lane" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetMissionTime.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetMissionTime.uc old mode 100755 new mode 100644 index c20f4ca..eb62b91 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetMissionTime.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetMissionTime.uc @@ -1,22 +1,22 @@ -class TgSeqAct_SetMissionTime extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() float m_fMissionTimeSecs; -var() float m_fIncrementSecs; -var float m_fMissionTimeRemaining; - -defaultproperties -{ - bLatentExecution=true - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Pause",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(3)=(LinkDesc="Increment",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - OutputLinks(0)=(LinkDesc="Completed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Aborted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Seconds Remaining",LinkVar="None",PropertyName="m_fMissionTimeRemaining",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Mission Timer" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetMissionTime extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () float m_fMissionTimeSecs; +var () float m_fIncrementSecs; +var float m_fMissionTimeRemaining; + +defaultproperties +{ + bLatentExecution=true + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Pause",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[3]=(LinkDesc="Increment",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks[0]=(Links=none,LinkDesc="Completed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Aborted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Seconds Remaining",LinkVar="None",PropertyName="m_fMissionTimeRemaining",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Mission Timer" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerLevel.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerLevel.uc old mode 100755 new mode 100644 index 9663388..fb85d2f --- a/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerLevel.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerLevel.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetPlayerLevel extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nLevel; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="SetPlayerLevel" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetPlayerLevel extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_nLevel; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="SetPlayerLevel" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMesh.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMesh.uc old mode 100755 new mode 100644 index 25d2017..30c5900 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMesh.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMesh.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetPlayerMesh extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nMeshAsmId; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="SetPlayerMesh" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetPlayerMesh extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_nMeshAsmId; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Pawn",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="SetPlayerMesh" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMeshVisible.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMeshVisible.uc old mode 100755 new mode 100644 index bbca6fd..62e833a --- a/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMeshVisible.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetPlayerMeshVisible.uc @@ -1,19 +1,17 @@ -class TgSeqAct_SetPlayerMeshVisible extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool bIs1PMeshVisible; -var() bool bIs3PMeshVisible; - -function Activated() -{ -} - -defaultproperties -{ - bIs1PMeshVisible=true - bIs3PMeshVisible=true - ObjName="Set Player Meshes Enabled/Disabled" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetPlayerMeshVisible extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bIs1PMeshVisible; +var () bool bIs3PMeshVisible; + +function Activated() { } + +defaultproperties +{ + bIs1PMeshVisible=true + bIs3PMeshVisible=true + ObjName="Set Player Meshes Enabled/Disabled" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetSkelPosture.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetSkelPosture.uc old mode 100755 new mode 100644 index 4ec34be..21020d9 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetSkelPosture.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetSkelPosture.uc @@ -1,12 +1,13 @@ -class TgSeqAct_SetSkelPosture extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() TgPawn.TG_POSTURE m_Posture; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="MeshActor",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Set Skeletal Posture" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetSkelPosture extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine) + dependson(TgPawn); + +var () TgPawn.TG_POSTURE m_Posture; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="MeshActor",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Set Skeletal Posture" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetTaskforce.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetTaskforce.uc old mode 100755 new mode 100644 index a7713cc..e92a588 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetTaskforce.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetTaskforce.uc @@ -1,13 +1,13 @@ -class TgSeqAct_SetTaskforce extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() int TaskForceNumber; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="TaskForceNumber",LinkVar="None",PropertyName="TaskForceNumber",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Set Taskforce" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetTaskforce extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int TaskForceNumber; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="TaskForceNumber",LinkVar="None",PropertyName="TaskForceNumber",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Set Taskforce" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetUIClock.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetUIClock.uc old mode 100755 new mode 100644 index 2a6d6e7..3691d91 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetUIClock.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetUIClock.uc @@ -1,21 +1,21 @@ -class TgSeqAct_SetUIClock extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool ShowAlarmTexture; -var() bool UseProgressBar; -var() bool IsCountingDown; - -defaultproperties -{ - bAutoActivateOutputLinks=false - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - OutputLinks(0)=(LinkDesc="TurnedOn",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="TurnedOff",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="ClockTime",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player(s)",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="SetUIClock" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetUIClock extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool ShowAlarmTexture; +var () bool UseProgressBar; +var () bool IsCountingDown; + +defaultproperties +{ + bAutoActivateOutputLinks=false + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks[0]=(Links=none,LinkDesc="TurnedOn",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="TurnedOff",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="ClockTime",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player(s)",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="SetUIClock" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetUITextBox.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetUITextBox.uc old mode 100755 new mode 100644 index d890a2c..87472bc --- a/Development/Src/TgGame/Classes/TgSeqAct_SetUITextBox.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetUITextBox.uc @@ -1,23 +1,24 @@ -class TgSeqAct_SetUITextBox extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int TextBox_MessageID; -var() bool TextBox_TargetSecondary; -var() bool TextBox_UseDuration; -var() bool TextBox_AllowEscape; -var() TgObject.AlertType TextBox_MessageType; - -defaultproperties -{ - bAutoActivateOutputLinks=false - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - OutputLinks(0)=(LinkDesc="TurnedOn",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="TurnedOff",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Duration",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Player(s)",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="SetUITextBox" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetUITextBox extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine) + dependson(TgObject); + +var () int TextBox_MessageID; +var () bool TextBox_TargetSecondary; +var () bool TextBox_UseDuration; +var () bool TextBox_AllowEscape; +var () TgObject.AlertType TextBox_MessageType; + +defaultproperties +{ + bAutoActivateOutputLinks=false + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks[0]=(Links=none,LinkDesc="TurnedOn",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="TurnedOff",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Duration",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Player(s)",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="SetUITextBox" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SetUltimateEnergy.uc b/Development/Src/TgGame/Classes/TgSeqAct_SetUltimateEnergy.uc old mode 100755 new mode 100644 index 69f2381..61471a6 --- a/Development/Src/TgGame/Classes/TgSeqAct_SetUltimateEnergy.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SetUltimateEnergy.uc @@ -1,16 +1,14 @@ -class TgSeqAct_SetUltimateEnergy extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() float fChargePercent; - -function Activated() -{ -} - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Ultimate Charge %",LinkVar="None",PropertyName="fChargePercent",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Set Ultimate Energy" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SetUltimateEnergy extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () float fChargePercent; + +function Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Ultimate Charge %",LinkVar="None",PropertyName="fChargePercent",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Set Ultimate Energy" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ShowGameTip.uc b/Development/Src/TgGame/Classes/TgSeqAct_ShowGameTip.uc old mode 100755 new mode 100644 index 80a594e..5b3dbcc --- a/Development/Src/TgGame/Classes/TgSeqAct_ShowGameTip.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ShowGameTip.uc @@ -1,18 +1,16 @@ -class TgSeqAct_ShowGameTip extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() int GameTipId; -var TgPlayerController TargetPlayer; - -function Activated() -{ -} - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Game Tip ID",LinkVar="None",PropertyName="GameTipId",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target Player",LinkVar="None",PropertyName="TargetPlayer",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Show Game Tip" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ShowGameTip extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int GameTipId; +var TgPlayerController TargetPlayer; + +function Activated() { } + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Game Tip ID",LinkVar="None",PropertyName="GameTipId",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target Player",LinkVar="None",PropertyName="TargetPlayer",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Show Game Tip" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ShowHUD.uc b/Development/Src/TgGame/Classes/TgSeqAct_ShowHUD.uc deleted file mode 100755 index de8ca40..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_ShowHUD.uc +++ /dev/null @@ -1,13 +0,0 @@ -class TgSeqAct_ShowHUD extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Show HUD" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ShowLoadoutMenu.uc b/Development/Src/TgGame/Classes/TgSeqAct_ShowLoadoutMenu.uc deleted file mode 100755 index 581de86..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_ShowLoadoutMenu.uc +++ /dev/null @@ -1,13 +0,0 @@ -class TgSeqAct_ShowLoadoutMenu extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Show Loadout Menu" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ShowSilhouettes.uc b/Development/Src/TgGame/Classes/TgSeqAct_ShowSilhouettes.uc deleted file mode 100755 index 1ae4607..0000000 --- a/Development/Src/TgGame/Classes/TgSeqAct_ShowSilhouettes.uc +++ /dev/null @@ -1,13 +0,0 @@ -class TgSeqAct_ShowSilhouettes extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -event Activated() -{ -} - -defaultproperties -{ - ObjName="Show Silhouettes" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqAct_SpawnProjectile.uc b/Development/Src/TgGame/Classes/TgSeqAct_SpawnProjectile.uc old mode 100755 new mode 100644 index d28b6dd..7d6bc28 --- a/Development/Src/TgGame/Classes/TgSeqAct_SpawnProjectile.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_SpawnProjectile.uc @@ -1,25 +1,17 @@ -class TgSeqAct_SpawnProjectile extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nFireModeID; -var TgDeviceFire m_FireMode; -var bool m_bSetupFireMode; - -// Export UTgSeqAct_SpawnProjectile::execSetupFireMode(FFrame&, void* const) -native function SetupFireMode(); - -event Activated() -{ -} - -defaultproperties -{ - bCallHandler=false - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Spawn Location",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target Location",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Spawn Projectile" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_SpawnProjectile extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Class ProjectileClass; + +event Activated() { } + +defaultproperties +{ + bCallHandler=false + VariableLinks[0]=(ExpectedType=Class'SeqVar_Vector',LinkedVariables=none,LinkDesc="Spawn Location",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Vector',LinkedVariables=none,LinkDesc="Target Location",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=1,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Spawn Projectile" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TemporaryAddDevice.uc b/Development/Src/TgGame/Classes/TgSeqAct_TemporaryAddDevice.uc old mode 100755 new mode 100644 index e1516c5..100ecb6 --- a/Development/Src/TgGame/Classes/TgSeqAct_TemporaryAddDevice.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TemporaryAddDevice.uc @@ -1,16 +1,16 @@ -class TgSeqAct_TemporaryAddDevice extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nDeviceId; -var() int m_nEquipPoint; - -defaultproperties -{ - m_nDeviceId=-1 - m_nEquipPoint=-1 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Players",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Temporary Add Device" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TemporaryAddDevice extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_nDeviceId; +var () int m_nEquipPoint; + +defaultproperties +{ + m_nDeviceId=-1 + m_nEquipPoint=-1 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Players",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Temporary Add Device" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TemporaryRemoveDevice.uc b/Development/Src/TgGame/Classes/TgSeqAct_TemporaryRemoveDevice.uc old mode 100755 new mode 100644 index 3586966..f5d9b27 --- a/Development/Src/TgGame/Classes/TgSeqAct_TemporaryRemoveDevice.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TemporaryRemoveDevice.uc @@ -1,14 +1,14 @@ -class TgSeqAct_TemporaryRemoveDevice extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int m_nEquipPoint; - -defaultproperties -{ - m_nEquipPoint=-1 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Players",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Temporary Remove Device" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TemporaryRemoveDevice extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int m_nEquipPoint; + +defaultproperties +{ + m_nEquipPoint=-1 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Players",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Temporary Remove Device" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TestResult.uc b/Development/Src/TgGame/Classes/TgSeqAct_TestResult.uc old mode 100755 new mode 100644 index 6750011..c0550db --- a/Development/Src/TgGame/Classes/TgSeqAct_TestResult.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TestResult.uc @@ -1,14 +1,14 @@ -class TgSeqAct_TestResult extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Pass",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Fail",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Test",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Test Result" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TestResult extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Pass",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Fail",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Test",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Test Result" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TgCameraShake.uc b/Development/Src/TgGame/Classes/TgSeqAct_TgCameraShake.uc old mode 100755 new mode 100644 index a4fd5df..aa71b3b --- a/Development/Src/TgGame/Classes/TgSeqAct_TgCameraShake.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TgCameraShake.uc @@ -1,16 +1,16 @@ -class TgSeqAct_TgCameraShake extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var() TgCameraShake m_CameraShake; -var Actor m_LocationActor; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Location",LinkVar="None",PropertyName="m_LocationActor",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Tg Camera Shake" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TgCameraShake extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () TgCameraShake m_CameraShake; +var Actor m_LocationActor; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Location",LinkVar="None",PropertyName="m_LocationActor",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Tg Camera Shake" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_ToggleStaticMeshSilhouette.uc b/Development/Src/TgGame/Classes/TgSeqAct_ToggleStaticMeshSilhouette.uc old mode 100755 new mode 100644 index 9678e8e..b1e458f --- a/Development/Src/TgGame/Classes/TgSeqAct_ToggleStaticMeshSilhouette.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_ToggleStaticMeshSilhouette.uc @@ -1,22 +1,20 @@ -class TgSeqAct_ToggleStaticMeshSilhouette extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() StaticMeshActor SMA; -var bool bIsEnabled; - -function Activated() -{ -} - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Turn On",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Turn Off",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Toggle",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Static Mesh Actor",LinkVar="None",PropertyName="SMA",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Is Enabled After",LinkVar="None",PropertyName="bIsEnabled",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Toggle Static Mesh Silhouette" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_ToggleStaticMeshSilhouette extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () StaticMeshActor SMA; +var bool bIsEnabled; + +function Activated() { } + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Turn On",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Turn Off",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Toggle",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Static Mesh Actor",LinkVar="None",PropertyName="SMA",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Is Enabled After",LinkVar="None",PropertyName="bIsEnabled",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Toggle Static Mesh Silhouette" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TrainingAwards.uc b/Development/Src/TgGame/Classes/TgSeqAct_TrainingAwards.uc old mode 100755 new mode 100644 index 0ceccd4..7b55dfd --- a/Development/Src/TgGame/Classes/TgSeqAct_TrainingAwards.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TrainingAwards.uc @@ -1,26 +1,26 @@ -class TgSeqAct_TrainingAwards extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() float m_fGoldTime; -var() float m_fSilverTime; -var() float m_fBronzeTime; -var() float m_fPassTime; - -defaultproperties -{ - m_fGoldTime=-1.0000000 - m_fSilverTime=-1.0000000 - m_fBronzeTime=-1.0000000 - m_fPassTime=-1.0000000 - InputLinks(0)=(LinkDesc="Auto-Fail",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Auto-Pass",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Auto-Bronze",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(3)=(LinkDesc="Auto-Silver",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(4)=(LinkDesc="Auto-Gold",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - //OutputLinks=none - //VariableLinks=none - ObjName="Training Awards" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TrainingAwards extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () float m_fGoldTime; +var () float m_fSilverTime; +var () float m_fBronzeTime; +var () float m_fPassTime; + +defaultproperties +{ + m_fGoldTime=-1.0000000 + m_fSilverTime=-1.0000000 + m_fBronzeTime=-1.0000000 + m_fPassTime=-1.0000000 + InputLinks[0]=(LinkDesc="Auto-Fail",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Auto-Pass",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Auto-Bronze",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[3]=(LinkDesc="Auto-Silver",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[4]=(LinkDesc="Auto-Gold",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + OutputLinks=none + VariableLinks=none + ObjName="Training Awards" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TriggerBots.uc b/Development/Src/TgGame/Classes/TgSeqAct_TriggerBots.uc old mode 100755 new mode 100644 index 0bc4c25..c2ed0f0 --- a/Development/Src/TgGame/Classes/TgSeqAct_TriggerBots.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TriggerBots.uc @@ -1,19 +1,19 @@ -class TgSeqAct_TriggerBots extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool bUseDestination; -var() Actor TargetActor; -var() Actor destActor; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="TargetActor",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Destination",LinkVar="None",PropertyName="destActor",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Trigger Bots" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TriggerBots extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bUseDestination; +var () Actor TargetActor; +var () Actor destActor; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Start",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Stop",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Bots/Factory",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="TargetActor",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Destination",LinkVar="None",PropertyName="destActor",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Trigger Bots" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TriggerInterpActor.uc b/Development/Src/TgGame/Classes/TgSeqAct_TriggerInterpActor.uc old mode 100755 new mode 100644 index ed682dd..9700fb6 --- a/Development/Src/TgGame/Classes/TgSeqAct_TriggerInterpActor.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TriggerInterpActor.uc @@ -1,13 +1,13 @@ -class TgSeqAct_TriggerInterpActor extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -var string m_sStateName; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="InterpActor",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_String',LinkDesc="State",LinkVar="None",PropertyName="m_sStateName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Trigger InterpActor" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TriggerInterpActor extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var string m_sStateName; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="InterpActor",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="State",LinkVar="None",PropertyName="m_sStateName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=0,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Trigger InterpActor" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TutorialHighlighter.uc b/Development/Src/TgGame/Classes/TgSeqAct_TutorialHighlighter.uc old mode 100755 new mode 100644 index 9358dfc..5510652 --- a/Development/Src/TgGame/Classes/TgSeqAct_TutorialHighlighter.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TutorialHighlighter.uc @@ -1,33 +1,31 @@ -class TgSeqAct_TutorialHighlighter extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -enum eTutorialHighlighterElement -{ - THE_Ability1, - THE_ActiveItem, - THE_ConsumableItem, - THE_Gold, - THE_ItemShop_Gold, - THE_ItemShop_Item, - THE_ItemShop_Item2, - THE_ItemShop_Item3, - THE_ItemShop_Purchase, - THE_ItemShop_AllItems, - THE_ItemShop_RemoveOverlay, - THE_ItemShop_AddBlocker, - THE_Stats_Display, - //THE_MAX -}; - -var() TgSeqAct_TutorialHighlighter.eTutorialHighlighterElement GameUIElement; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Show",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Hide",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Tutorial Highlighter" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TutorialHighlighter extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum eTutorialHighlighterElement { + THE_Ability1, // 0 + THE_ActiveItem, // 1 + THE_ConsumableItem, // 2 + THE_Gold, // 3 + THE_ItemShop_Gold, // 4 + THE_ItemShop_Item, // 5 + THE_ItemShop_Item2, // 6 + THE_ItemShop_Item3, // 7 + THE_ItemShop_Purchase, // 8 + THE_ItemShop_AllItems, // 9 + THE_ItemShop_RemoveOverlay, // 10 + THE_ItemShop_AddBlocker, // 11 + THE_Stats_Display, // 12 +}; + +var () TgSeqAct_TutorialHighlighter.eTutorialHighlighterElement GameUIElement; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Show",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Hide",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Targets",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Tutorial Highlighter" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TutorialInstruction.uc b/Development/Src/TgGame/Classes/TgSeqAct_TutorialInstruction.uc old mode 100755 new mode 100644 index e50d820..27ad908 --- a/Development/Src/TgGame/Classes/TgSeqAct_TutorialInstruction.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TutorialInstruction.uc @@ -1,12 +1,12 @@ -class TgSeqAct_TutorialInstruction extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int nMsgId; - -defaultproperties -{ - ObjName="Tutorial Instruction" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TutorialInstruction extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int nMsgId; + +defaultproperties +{ + ObjName="Tutorial Instruction" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_TutorialTips.uc b/Development/Src/TgGame/Classes/TgSeqAct_TutorialTips.uc old mode 100755 new mode 100644 index 265153e..03a4ca6 --- a/Development/Src/TgGame/Classes/TgSeqAct_TutorialTips.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_TutorialTips.uc @@ -1,12 +1,12 @@ -class TgSeqAct_TutorialTips extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int nMsgId; - -defaultproperties -{ - ObjName="Tutorial Tips" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_TutorialTips extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int nMsgId; + +defaultproperties +{ + ObjName="Tutorial Tips" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_UIAlert.uc b/Development/Src/TgGame/Classes/TgSeqAct_UIAlert.uc old mode 100755 new mode 100644 index 1f32f72..d436923 --- a/Development/Src/TgGame/Classes/TgSeqAct_UIAlert.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_UIAlert.uc @@ -1,17 +1,17 @@ -class TgSeqAct_UIAlert extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int nMsgId; -var array Taskforces; -var array Broadcast; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Players",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Taskforces",LinkVar="None",PropertyName="Taskforces",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Broadcast",LinkVar="None",PropertyName="Broadcast",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="UI Alert" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_UIAlert extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int nMsgId; +var array Taskforces; +var array Broadcast; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Players",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Taskforces",LinkVar="None",PropertyName="Taskforces",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Broadcast",LinkVar="None",PropertyName="Broadcast",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="UI Alert" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_UIElementVisibility.uc b/Development/Src/TgGame/Classes/TgSeqAct_UIElementVisibility.uc old mode 100755 new mode 100644 index 99b75fc..6602280 --- a/Development/Src/TgGame/Classes/TgSeqAct_UIElementVisibility.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_UIElementVisibility.uc @@ -1,18 +1,18 @@ -class TgSeqAct_UIElementVisibility extends SequenceAction - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() bool ShowElement; -var() string UISceneName; -var() string UIElementName; - -defaultproperties -{ - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Show?",LinkVar="None",PropertyName="ShowElement",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_String',LinkDesc="UI Scene Name",LinkVar="None",PropertyName="UISceneName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(3)=(ExpectedType=Class'Engine.SeqVar_String',LinkDesc="UI Element Name",LinkVar="None",PropertyName="UIElementName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Show/Hide UI Element" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_UIElementVisibility extends SequenceAction + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool ShowElement; +var () string UISceneName; +var () string UIElementName; + +defaultproperties +{ + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Target",LinkVar="None",PropertyName="Targets",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Show?",LinkVar="None",PropertyName="ShowElement",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="UI Scene Name",LinkVar="None",PropertyName="UISceneName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[3]=(ExpectedType=Class'SeqVar_String',LinkedVariables=none,LinkDesc="UI Element Name",LinkVar="None",PropertyName="UIElementName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Show/Hide UI Element" +} diff --git a/Development/Src/TgGame/Classes/TgSeqAct_UnpauseSetupTimer.uc b/Development/Src/TgGame/Classes/TgSeqAct_UnpauseSetupTimer.uc old mode 100755 new mode 100644 index da18bc3..cb24df3 --- a/Development/Src/TgGame/Classes/TgSeqAct_UnpauseSetupTimer.uc +++ b/Development/Src/TgGame/Classes/TgSeqAct_UnpauseSetupTimer.uc @@ -1,14 +1,12 @@ -class TgSeqAct_UnpauseSetupTimer extends SequenceAction - forcescriptorder(true) - hidecategories(Object); - -function Activated() -{ -} - -defaultproperties -{ - //VariableLinks=none - ObjName="Unpause Setup Timer" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqAct_UnpauseSetupTimer extends SequenceAction + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +function Activated() { } + +defaultproperties +{ + VariableLinks=none + ObjName="Unpause Setup Timer" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_And.uc b/Development/Src/TgGame/Classes/TgSeqCond_And.uc old mode 100755 new mode 100644 index 41976bb..e915418 --- a/Development/Src/TgGame/Classes/TgSeqCond_And.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_And.uc @@ -1,13 +1,13 @@ -class TgSeqCond_And extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Booleans",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="And" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_And extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Booleans",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="And" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_CompareDamageType.uc b/Development/Src/TgGame/Classes/TgSeqCond_CompareDamageType.uc old mode 100755 new mode 100644 index 24bc704..fa96a0b --- a/Development/Src/TgGame/Classes/TgSeqCond_CompareDamageType.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_CompareDamageType.uc @@ -1,14 +1,14 @@ -class TgSeqCond_CompareDamageType extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="A == B",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="A != B",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'TgSeqVar_DamageType',LinkDesc="A",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'TgSeqVar_DamageType',LinkDesc="B",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Compare Damage Types" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_CompareDamageType extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="A == B",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="A != B",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'TgSeqVar_DamageType',LinkedVariables=none,LinkDesc="A",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'TgSeqVar_DamageType',LinkedVariables=none,LinkDesc="B",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Compare Damage Types" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_CompareDeviceId.uc b/Development/Src/TgGame/Classes/TgSeqCond_CompareDeviceId.uc old mode 100755 new mode 100644 index 2a65041..f0f7e17 --- a/Development/Src/TgGame/Classes/TgSeqCond_CompareDeviceId.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_CompareDeviceId.uc @@ -1,17 +1,17 @@ -class TgSeqCond_CompareDeviceId extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() Object Device; -var() int DeviceID; - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="Device Matches Id",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Device Does Not Match Id",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Device",LinkVar="None",PropertyName="Device",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Device Id",LinkVar="None",PropertyName="DeviceID",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Compare Device Id" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_CompareDeviceId extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Object Device; +var () int DeviceID; + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="Device Matches Id",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Device Does Not Match Id",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Device",LinkVar="None",PropertyName="Device",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Device Id",LinkVar="None",PropertyName="DeviceID",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Compare Device Id" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_HasCondition.uc b/Development/Src/TgGame/Classes/TgSeqCond_HasCondition.uc old mode 100755 new mode 100644 index 5fff5ff..8ee6e2f --- a/Development/Src/TgGame/Classes/TgSeqCond_HasCondition.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_HasCondition.uc @@ -1,29 +1,27 @@ -class TgSeqCond_HasCondition extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -enum ConditionType -{ - TGCT_POISON, - TGCT_DISEASE, - TGCT_REGENERATION, - TGCT_STUN, - TGCT_STEALTH, - TGCT_EMP_STUN, - TGCT_IGNITE, - TGCT_INVULNERABLE, - TGCT_SLOW, - //TGCT_MAX -}; - -var() TgSeqCond_HasCondition.ConditionType ConditionList; - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Players",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Has Condition" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_HasCondition extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum ConditionType { + TGCT_POISON, // 0 + TGCT_DISEASE, // 1 + TGCT_REGENERATION, // 2 + TGCT_STUN, // 3 + TGCT_STEALTH, // 4 + TGCT_EMP_STUN, // 5 + TGCT_IGNITE, // 6 + TGCT_INVULNERABLE, // 7 + TGCT_SLOW, // 8 +}; + +var () TgSeqCond_HasCondition.ConditionType ConditionList; + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Players",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Has Condition" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_IsHuman.uc b/Development/Src/TgGame/Classes/TgSeqCond_IsHuman.uc old mode 100755 new mode 100644 index 550912a..6c31ba7 --- a/Development/Src/TgGame/Classes/TgSeqCond_IsHuman.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_IsHuman.uc @@ -1,13 +1,13 @@ -class TgSeqCond_IsHuman extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Players",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Is Human" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_IsHuman extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Players",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Is Human" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_IsSecuring.uc b/Development/Src/TgGame/Classes/TgSeqCond_IsSecuring.uc old mode 100755 new mode 100644 index 685e6f5..9f5861e --- a/Development/Src/TgGame/Classes/TgSeqCond_IsSecuring.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_IsSecuring.uc @@ -1,12 +1,12 @@ -class TgSeqCond_IsSecuring extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Is Securing" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_IsSecuring extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Is Securing" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_IsSpectating.uc b/Development/Src/TgGame/Classes/TgSeqCond_IsSpectating.uc old mode 100755 new mode 100644 index e53cff4..60e0207 --- a/Development/Src/TgGame/Classes/TgSeqCond_IsSpectating.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_IsSpectating.uc @@ -1,12 +1,12 @@ -class TgSeqCond_IsSpectating extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Is Spectating" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_IsSpectating extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Is Spectating" +} diff --git a/Development/Src/TgGame/Classes/TgSeqCond_Or.uc b/Development/Src/TgGame/Classes/TgSeqCond_Or.uc old mode 100755 new mode 100644 index cc2453a..9f0f42c --- a/Development/Src/TgGame/Classes/TgSeqCond_Or.uc +++ b/Development/Src/TgGame/Classes/TgSeqCond_Or.uc @@ -1,13 +1,13 @@ -class TgSeqCond_Or extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Booleans",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Or" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqCond_Or extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="True",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="False",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Booleans",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Or" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_AIRespawned.uc b/Development/Src/TgGame/Classes/TgSeqEvent_AIRespawned.uc deleted file mode 100755 index 8845876..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_AIRespawned.uc +++ /dev/null @@ -1,11 +0,0 @@ -class TgSeqEvent_AIRespawned extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - ObjName="TgSeqEvent_AIRespawned" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_BotDied.uc b/Development/Src/TgGame/Classes/TgSeqEvent_BotDied.uc old mode 100755 new mode 100644 index 85f8147..435ae46 --- a/Development/Src/TgGame/Classes/TgSeqEvent_BotDied.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_BotDied.uc @@ -1,17 +1,15 @@ -class TgSeqEvent_BotDied extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -event UpdateLinkedVars(Actor Killer) -{ -} - -defaultproperties -{ - MaxTriggerCount=0 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Killer",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="TgSeqEvent_BotDied" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_BotDied extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +event UpdateLinkedVars(Actor Killer) { } + +defaultproperties +{ + MaxTriggerCount=0 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Killer",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="TgSeqEvent_BotDied" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_BotSpawned.uc b/Development/Src/TgGame/Classes/TgSeqEvent_BotSpawned.uc old mode 100755 new mode 100644 index fc8f395..d032e93 --- a/Development/Src/TgGame/Classes/TgSeqEvent_BotSpawned.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_BotSpawned.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_BotSpawned extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - ObjName="TgSeqEvent_BotSpawned" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_BotSpawned extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + ObjName="TgSeqEvent_BotSpawned" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_BurnCardPurchased.uc b/Development/Src/TgGame/Classes/TgSeqEvent_BurnCardPurchased.uc old mode 100755 new mode 100644 index e5d2939..efeb045 --- a/Development/Src/TgGame/Classes/TgSeqEvent_BurnCardPurchased.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_BurnCardPurchased.uc @@ -1,22 +1,20 @@ -class TgSeqEvent_BurnCardPurchased extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -var int nFilledSlots; -var bool bAllBurnSlotsFull; - -static function bool TriggerGlobal(Actor InInstigator, int InFilledSlotsCount, bool bInAllBurnSlotsFull) -{ -} - -defaultproperties -{ - MaxTriggerCount=0 - OutputLinks(0)=(LinkDesc="Purchased",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Filled Slots Count",LinkVar="None",PropertyName="nFilledSlots",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Slots Full",LinkVar="None",PropertyName="bAllBurnSlotsFull",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Burn Card Purchased" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_BurnCardPurchased extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int nFilledSlots; +var bool bAllBurnSlotsFull; + +function bool TriggerGlobal(Actor InInstigator, int InFilledSlotsCount, bool bInAllBurnSlotsFull) { } + +defaultproperties +{ + MaxTriggerCount=0 + OutputLinks[0]=(Links=none,LinkDesc="Purchased",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Filled Slots Count",LinkVar="None",PropertyName="nFilledSlots",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Slots Full",LinkVar="None",PropertyName="bAllBurnSlotsFull",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Burn Card Purchased" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadCapturePointVictory.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadCapturePointVictory.uc old mode 100755 new mode 100644 index 00eaa44..771ab97 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadCapturePointVictory.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadCapturePointVictory.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_CaptureAndPayloadCapturePointVictory extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Capture Point Victory" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadCapturePointVictory extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Capture Point Victory" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundBegin.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundBegin.uc old mode 100755 new mode 100644 index cab6d5c..7c50e73 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundBegin.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundBegin.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_CaptureAndPayloadRoundBegin extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - ObjName="Round Begin" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadRoundBegin extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + ObjName="Round Begin" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundEnd.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundEnd.uc old mode 100755 new mode 100644 index 1317d44..7294c19 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundEnd.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadRoundEnd.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_CaptureAndPayloadRoundEnd extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - ObjName="Round End" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadRoundEnd extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + ObjName="Round End" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF1.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF1.uc old mode 100755 new mode 100644 index c043f53..a3d160a --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF1.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF1.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF1 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Successful Defense - TF1" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF1 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Successful Defense - TF1" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF2.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF2.uc old mode 100755 new mode 100644 index b551da8..afbaa53 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF2.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF2.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF2 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Successful Defense - TF2" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadSuccessfulDefenseTF2 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Successful Defense - TF2" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF1.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF1.uc old mode 100755 new mode 100644 index 0851e5f..26d3424 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF1.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF1.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_CaptureAndPayloadSuccessfulPushTF1 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - bClientSideOnly=true - ObjName="Successful Push - TF1" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadSuccessfulPushTF1 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + bClientSideOnly=true + ObjName="Successful Push - TF1" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF2.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF2.uc old mode 100755 new mode 100644 index 88d0108..4ae931d --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF2.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadSuccessfulPushTF2.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_CaptureAndPayloadSuccessfulPushTF2 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Successful Push - TF2" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadSuccessfulPushTF2 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Successful Push - TF2" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF1.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF1.uc old mode 100755 new mode 100644 index e522bc5..5a9645c --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF1.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF1.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_CaptureAndPayloadWinTF1 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Win - TF1" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadWinTF1 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Win - TF1" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF2.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF2.uc old mode 100755 new mode 100644 index 0176ef4..b732f26 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF2.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CaptureAndPayloadWinTF2.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_CaptureAndPayloadWinTF2 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Win - TF2" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CaptureAndPayloadWinTF2 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Win - TF2" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ChaosGameEvent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ChaosGameEvent.uc old mode 100755 new mode 100644 index fe58d25..29ccf57 --- a/Development/Src/TgGame/Classes/TgSeqEvent_ChaosGameEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ChaosGameEvent.uc @@ -1,21 +1,21 @@ -class TgSeqEvent_ChaosGameEvent extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Neutral",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="TaskForce 1 Attacking",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="TaskForce 2 Attacking",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Point Almost Captured",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="Time Running Out",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="Overtime",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="Match Almost Won",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="ChaosGameEvent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ChaosGameEvent extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Neutral",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="TaskForce 1 Attacking",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="TaskForce 2 Attacking",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Point Almost Captured",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="Time Running Out",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="Overtime",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="Match Almost Won",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="ChaosGameEvent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveActive.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveActive.uc old mode 100755 new mode 100644 index 8f98e58..c47b1ef --- a/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveActive.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveActive.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_ChaosObjectiveActive extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Inactive",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Active",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Pending Active",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="ChaosObjectiveActive" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ChaosObjectiveActive extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Inactive",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Active",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Pending Active",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="ChaosObjectiveActive" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveStatus.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveStatus.uc old mode 100755 new mode 100644 index 2339386..6e0927e --- a/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveStatus.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ChaosObjectiveStatus.uc @@ -1,21 +1,18 @@ -class TgSeqEvent_ChaosObjectiveStatus extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -function UpdateLinkedVars(bool bFriendlyTaskForce) -{ - //return; -} - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Contested",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Uncontested",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Empty",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="Friendly Controlled",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="ChaosObjectiveStatus" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ChaosObjectiveStatus extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +function UpdateLinkedVars(bool bFriendlyTaskForce) { } + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Contested",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Uncontested",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Empty",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="Friendly Controlled",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="ChaosObjectiveStatus" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ClassSelected.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ClassSelected.uc old mode 100755 new mode 100644 index fd4a552..ed19b9d --- a/Development/Src/TgGame/Classes/TgSeqEvent_ClassSelected.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ClassSelected.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_ClassSelected extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bClientSideOnly=true - ObjName="Class Selected" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ClassSelected extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bClientSideOnly=true + ObjName="Class Selected" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ClientGameOver.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ClientGameOver.uc old mode 100755 new mode 100644 index 22dab2d..6f5ee8d --- a/Development/Src/TgGame/Classes/TgSeqEvent_ClientGameOver.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ClientGameOver.uc @@ -1,16 +1,16 @@ -class TgSeqEvent_ClientGameOver extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Attacker Win",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Attacker Lose",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Defender Win",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Defender Lose",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Client Game Over" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ClientGameOver extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Attacker Win",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Attacker Lose",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Defender Win",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Defender Lose",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Client Game Over" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange.uc old mode 100755 new mode 100644 index c02d00c..fbffc43 --- a/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange.uc @@ -1,17 +1,17 @@ -class TgSeqEvent_ControlPointOwnershipChange extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -var() int PointIndex; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Neutral",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Friendly",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Enemy",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Control Point Ownership Change" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ControlPointOwnershipChange extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int PointIndex; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Neutral",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Friendly",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Enemy",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Control Point Ownership Change" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange_Server.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange_Server.uc old mode 100755 new mode 100644 index be12c43..323676f --- a/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange_Server.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipChange_Server.uc @@ -1,14 +1,14 @@ -class TgSeqEvent_ControlPointOwnershipChange_Server extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -var() int PointIndex; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Output",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Control Point Ownership Change (Server Notify)" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ControlPointOwnershipChange_Server extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int PointIndex; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Output",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Control Point Ownership Change (Server Notify)" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipPercent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipPercent.uc old mode 100755 new mode 100644 index 7a6f49f..7b017e6 --- a/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipPercent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_ControlPointOwnershipPercent.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_ControlPointOwnershipPercent extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -var() float OwnershipPercent; -var() int PointIndex; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - ObjName="Control Point Ownership Percent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_ControlPointOwnershipPercent extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () float OwnershipPercent; +var () int PointIndex; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + ObjName="Control Point Ownership Percent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_CrowdEvent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_CrowdEvent.uc old mode 100755 new mode 100644 index 0fed2fa..46aecf0 --- a/Development/Src/TgGame/Classes/TgSeqEvent_CrowdEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_CrowdEvent.uc @@ -1,22 +1,22 @@ -class TgSeqEvent_CrowdEvent extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="CrowdStandingPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="CrowdStandingStop",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="CrowdBooPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="CrowdAwwPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="CrowdCheerMediumPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="CrowdCheerLoudPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="CrowdCheerCrazyPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(7)=(LinkDesc="CrowdChantPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(8)=(LinkDesc="CrowdChantStop",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="CrowdEvent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_CrowdEvent extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="CrowdStandingPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="CrowdStandingStop",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="CrowdBooPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="CrowdAwwPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="CrowdCheerMediumPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="CrowdCheerLoudPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="CrowdCheerCrazyPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[7]=(Links=none,LinkDesc="CrowdChantPlay",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[8]=(Links=none,LinkDesc="CrowdChantStop",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="CrowdEvent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_DebugConsoleKismetTest.uc b/Development/Src/TgGame/Classes/TgSeqEvent_DebugConsoleKismetTest.uc old mode 100755 new mode 100644 index 0b9e32c..62d061c --- a/Development/Src/TgGame/Classes/TgSeqEvent_DebugConsoleKismetTest.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_DebugConsoleKismetTest.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_DebugConsoleKismetTest extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - ObjName="Debug Console Kismet Test" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_DebugConsoleKismetTest extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + ObjName="Debug Console Kismet Test" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_DeployableFired.uc b/Development/Src/TgGame/Classes/TgSeqEvent_DeployableFired.uc old mode 100755 new mode 100644 index ccc8f57..78452cf --- a/Development/Src/TgGame/Classes/TgSeqEvent_DeployableFired.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_DeployableFired.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_DeployableFired extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Fired",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="DeployableTouched",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="TouchedActor",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="DeployableFired" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_DeployableFired extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Fired",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="DeployableTouched",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="TouchedActor",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="DeployableFired" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_DoorStatusChanged.uc b/Development/Src/TgGame/Classes/TgSeqEvent_DoorStatusChanged.uc old mode 100755 new mode 100644 index 244b3c8..c6e0efd --- a/Development/Src/TgGame/Classes/TgSeqEvent_DoorStatusChanged.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_DoorStatusChanged.uc @@ -1,14 +1,14 @@ -class TgSeqEvent_DoorStatusChanged extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Opened",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Closed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="DoorStatusChanged" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_DoorStatusChanged extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Opened",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Closed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="DoorStatusChanged" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_EnergyUpdated.uc b/Development/Src/TgGame/Classes/TgSeqEvent_EnergyUpdated.uc old mode 100755 new mode 100644 index d683538..eda1901 --- a/Development/Src/TgGame/Classes/TgSeqEvent_EnergyUpdated.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_EnergyUpdated.uc @@ -1,24 +1,21 @@ -class TgSeqEvent_EnergyUpdated extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var int ResultEnergy; - -static event int GetIndex(float CurrentEnergy, float PreviousEnergy) -{ - //return ReturnValue; -} - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="100%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="75%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="50%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="25%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="0%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Player Ultimate Energy Updated" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_EnergyUpdated extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int ResultEnergy; + +event int GetIndex(float CurrentEnergy, float PreviousEnergy) { } + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="100%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="75%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="50%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="25%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="0%",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Player Ultimate Energy Updated" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_Escort_Despawn_Success.uc b/Development/Src/TgGame/Classes/TgSeqEvent_Escort_Despawn_Success.uc old mode 100755 new mode 100644 index 4c69d86..7930d29 --- a/Development/Src/TgGame/Classes/TgSeqEvent_Escort_Despawn_Success.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_Escort_Despawn_Success.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_Escort_Despawn_Success extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int DefendersTaskForce; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - //VariableLinks=none - ObjName="Escort_Despawn_Success" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_Escort_Despawn_Success extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int DefendersTaskForce; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + VariableLinks=none + ObjName="Escort_Despawn_Success" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_FactoryEmpty.uc b/Development/Src/TgGame/Classes/TgSeqEvent_FactoryEmpty.uc old mode 100755 new mode 100644 index e495089..be2d4b1 --- a/Development/Src/TgGame/Classes/TgSeqEvent_FactoryEmpty.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_FactoryEmpty.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_FactoryEmpty extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - ObjName="TgSeqEvent_FactoryEmpty" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_FactoryEmpty extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + ObjName="TgSeqEvent_FactoryEmpty" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_FiringDevice.uc b/Development/Src/TgGame/Classes/TgSeqEvent_FiringDevice.uc old mode 100755 new mode 100644 index 0c16947..344565d --- a/Development/Src/TgGame/Classes/TgSeqEvent_FiringDevice.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_FiringDevice.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_FiringDevice extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - ObjName="TgSeqEvent_FiringDevice" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_FiringDevice extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ObjName="TgSeqEvent_FiringDevice" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF1Score.uc b/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF1Score.uc deleted file mode 100755 index 0636851..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF1Score.uc +++ /dev/null @@ -1,10 +0,0 @@ -class TgSeqEvent_FlagballTF1Score extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Flagball TF1 Score" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF1Win.uc b/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF1Win.uc deleted file mode 100755 index f40afad..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF1Win.uc +++ /dev/null @@ -1,10 +0,0 @@ -class TgSeqEvent_FlagballTF1Win extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Flagball TF1 Win" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF2Score.uc b/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF2Score.uc deleted file mode 100755 index 3d36250..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF2Score.uc +++ /dev/null @@ -1,10 +0,0 @@ -class TgSeqEvent_FlagballTF2Score extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Flagball TF2 Score" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF2Win.uc b/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF2Win.uc deleted file mode 100755 index 7d4a9a9..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_FlagballTF2Win.uc +++ /dev/null @@ -1,10 +0,0 @@ -class TgSeqEvent_FlagballTF2Win extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Flagball TF2 Win" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_InputReceived.uc b/Development/Src/TgGame/Classes/TgSeqEvent_InputReceived.uc old mode 100755 new mode 100644 index 8db9b9e..72b3887 --- a/Development/Src/TgGame/Classes/TgSeqEvent_InputReceived.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_InputReceived.uc @@ -1,38 +1,36 @@ -class TgSeqEvent_InputReceived extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -var() bool bAllowInputDisabling; - -static event bool TriggerGlobal(Actor InInstigator, TgPlayerController.EPlayerInputType InputType, bool bInputEnabled) -{ - //return ReturnValue; -} - -defaultproperties -{ - bAllowInputDisabling=true - MaxTriggerCount=0 - OutputLinks(0)=(LinkDesc="Move Forward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Move Backward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Move Right",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Move Left",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="Look Left",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="Look Right",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="Look Up",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(7)=(LinkDesc="Look Down",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(8)=(LinkDesc="Auto Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(9)=(LinkDesc="Alt Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(10)=(LinkDesc="Battle Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(11)=(LinkDesc="Movement Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(12)=(LinkDesc="Ultimate Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(13)=(LinkDesc="Reload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(14)=(LinkDesc="Jump",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(15)=(LinkDesc="Mount",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(16)=(LinkDesc="Loadout Menu",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(17)=(LinkDesc="BurnCard Menu",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(18)=(LinkDesc="Emote",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Input Received" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_InputReceived extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine) + dependson(TgPlayerController); + +var () bool bAllowInputDisabling; + +function bool TriggerGlobal(Actor InInstigator, TgPlayerController.EPlayerInputType InputType, bool bInputEnabled) { } + +defaultproperties +{ + bAllowInputDisabling=true + MaxTriggerCount=0 + OutputLinks[0]=(Links=none,LinkDesc="Move Forward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Move Backward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Move Right",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Move Left",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="Look Left",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="Look Right",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="Look Up",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[7]=(Links=none,LinkDesc="Look Down",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[8]=(Links=none,LinkDesc="Auto Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[9]=(Links=none,LinkDesc="Alt Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[10]=(Links=none,LinkDesc="Battle Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[11]=(Links=none,LinkDesc="Movement Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[12]=(Links=none,LinkDesc="Ultimate Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[13]=(Links=none,LinkDesc="Reload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[14]=(Links=none,LinkDesc="Jump",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[15]=(Links=none,LinkDesc="Mount",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[16]=(Links=none,LinkDesc="Loadout Menu",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[17]=(Links=none,LinkDesc="BurnCard Menu",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[18]=(Links=none,LinkDesc="Emote",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Input Received" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LevelFadedIn.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LevelFadedIn.uc old mode 100755 new mode 100644 index 6107363..da51def --- a/Development/Src/TgGame/Classes/TgSeqEvent_LevelFadedIn.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LevelFadedIn.uc @@ -1,13 +1,13 @@ -class TgSeqEvent_LevelFadedIn extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - bClientSideOnly=true - //VariableLinks=none - ObjName="Level Faded In" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LevelFadedIn extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + bClientSideOnly=true + VariableLinks=none + ObjName="Level Faded In" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LoadoutChanged.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LoadoutChanged.uc old mode 100755 new mode 100644 index 5490795..9b6c456 --- a/Development/Src/TgGame/Classes/TgSeqEvent_LoadoutChanged.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LoadoutChanged.uc @@ -1,21 +1,18 @@ -class TgSeqEvent_LoadoutChanged extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -var int DeckId; - -static function bool TriggerGlobal(Actor InInstigator, int InDeckId) -{ - //return ReturnValue; -} - -defaultproperties -{ - MaxTriggerCount=0 - OutputLinks(0)=(LinkDesc="Loadout Changed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Deck Id",LinkVar="None",PropertyName="DeckId",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Loadout Changed" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LoadoutChanged extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int DeckIndex; + +function bool TriggerGlobal(Actor InInstigator, int InDeckIndex) { } + +defaultproperties +{ + MaxTriggerCount=0 + OutputLinks[0]=(Links=none,LinkDesc="Loadout Changed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Deck Index",LinkVar="None",PropertyName="DeckIndex",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Loadout Changed" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LobbyCameraSetActive.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LobbyCameraSetActive.uc old mode 100755 new mode 100644 index ede3370..129609c --- a/Development/Src/TgGame/Classes/TgSeqEvent_LobbyCameraSetActive.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LobbyCameraSetActive.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_LobbyCameraSetActive extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Inactive",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Active - 1",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Active - 2",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="LobbyCam Set Active" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LobbyCameraSetActive extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Inactive",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Active - 1",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Active - 2",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="LobbyCam Set Active" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LobbyEvents.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LobbyEvents.uc old mode 100755 new mode 100644 index 1b7b398..b64733b --- a/Development/Src/TgGame/Classes/TgSeqEvent_LobbyEvents.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LobbyEvents.uc @@ -1,16 +1,16 @@ -class TgSeqEvent_LobbyEvents extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Enter Queue",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Champion Locked In",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Everyone Locked In",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Re-enter Lobby",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="Lobby Events" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LobbyEvents extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Enter Queue",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Champion Locked In",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Everyone Locked In",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Re-enter Lobby",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="Lobby Events" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerDied.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerDied.uc old mode 100755 new mode 100644 index 6384ce6..81a2b2d --- a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerDied.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerDied.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_LocalPlayerDied extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bClientSideOnly=true - ObjName="TgSeqEvent_LocalPlayerDied" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LocalPlayerDied extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bClientSideOnly=true + ObjName="TgSeqEvent_LocalPlayerDied" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerRecalled.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerRecalled.uc old mode 100755 new mode 100644 index 1c8f207..50dd40a --- a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerRecalled.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerRecalled.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_LocalPlayerRecalled extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bClientSideOnly=true - ObjName="TgSeqEvent_LocalPlayerRecalled" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LocalPlayerRecalled extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bClientSideOnly=true + ObjName="TgSeqEvent_LocalPlayerRecalled" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerScoredKill.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerScoredKill.uc old mode 100755 new mode 100644 index b09f7ec..4cb9654 --- a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerScoredKill.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayerScoredKill.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_LocalPlayerScoredKill extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bClientSideOnly=true - ObjName="TgSeqEvent_LocalPlayerScoredKill" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LocalPlayerScoredKill extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bClientSideOnly=true + ObjName="TgSeqEvent_LocalPlayerScoredKill" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredPhoenixKill.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredPhoenixKill.uc old mode 100755 new mode 100644 index 72a367b..79a17f4 --- a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredPhoenixKill.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredPhoenixKill.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_LocalPlayersTeamScoredPhoenixKill extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bClientSideOnly=true - ObjName="TgSeqEvent_LocalPlayersTeamScoredPhoenixKill" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LocalPlayersTeamScoredPhoenixKill extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bClientSideOnly=true + ObjName="TgSeqEvent_LocalPlayersTeamScoredPhoenixKill" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredTowerKill.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredTowerKill.uc old mode 100755 new mode 100644 index b619f31..46387dc --- a/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredTowerKill.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LocalPlayersTeamScoredTowerKill.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_LocalPlayersTeamScoredTowerKill extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bClientSideOnly=true - ObjName="TgSeqEvent_LocalPlayersTeamScoredTowerKill" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LocalPlayersTeamScoredTowerKill extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bClientSideOnly=true + ObjName="TgSeqEvent_LocalPlayersTeamScoredTowerKill" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_LookAtReceived.uc b/Development/Src/TgGame/Classes/TgSeqEvent_LookAtReceived.uc old mode 100755 new mode 100644 index c0bc238..52fb0c9 --- a/Development/Src/TgGame/Classes/TgSeqEvent_LookAtReceived.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_LookAtReceived.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_LookAtReceived extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - OutputLinks(0)=(LinkDesc="Player Looked at Point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Look At Received" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_LookAtReceived extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + OutputLinks[0]=(Links=none,LinkDesc="Player Looked at Point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Look At Received" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_MICParameterEvent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_MICParameterEvent.uc old mode 100755 new mode 100644 index 6e26230..6437191 --- a/Development/Src/TgGame/Classes/TgSeqEvent_MICParameterEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_MICParameterEvent.uc @@ -1,31 +1,27 @@ -class TgSeqEvent_MICParameterEvent extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -enum eMICEventType -{ - MET_NONE, - MET_DEFENSE_ALARM, - //MET_MAX -}; - -var() TgSeqEvent_MICParameterEvent.eMICEventType MICEventType; -var() array AttachedMICs; - -// Export UTgSeqEvent_MICParameterEvent::execSetScalarParameterValue(FFrame&, void* const) -native function SetScalarParameterValue(name ParamName, float fValue); - -// Export UTgSeqEvent_MICParameterEvent::execSetVectorParameterValue(FFrame&, void* const) -native function SetVectorParameterValue(name ParamName, LinearColor Value); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Activated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Deactivated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="MIC Parameter Event" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_MICParameterEvent extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum eMICEventType { + MET_NONE, // 0 + MET_DEFENSE_ALARM, // 1 +}; + +var () TgSeqEvent_MICParameterEvent.eMICEventType MICEventType; +var () array AttachedMICs; + +native function SetScalarParameterValue(name ParamName, float fValue); // Export UTgSeqEvent_MICParameterEvent::execSetScalarParameterValue(FFrame&, void* const) + +native function SetVectorParameterValue(name ParamName, LinearColor Value); // Export UTgSeqEvent_MICParameterEvent::execSetVectorParameterValue(FFrame&, void* const) + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Activated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Deactivated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="MIC Parameter Event" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimeRemaining.uc b/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimeRemaining.uc old mode 100755 new mode 100644 index 4ea171f..c20c77f --- a/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimeRemaining.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimeRemaining.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_MissionTimeRemaining extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() float SecsRemaining; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="TimeRemainingReached",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Mission Time Remaining Alert" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_MissionTimeRemaining extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () float SecsRemaining; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="TimeRemainingReached",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Mission Time Remaining Alert" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimer.uc b/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimer.uc old mode 100755 new mode 100644 index d2080d2..0262fd7 --- a/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimer.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_MissionTimer.uc @@ -1,24 +1,23 @@ -class TgSeqEvent_MissionTimer extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -// Export UTgSeqEvent_MissionTimer::execUpdateChallengerWonValue(FFrame&, void* const) -native function UpdateChallengerWonValue(bool bValue); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="SetupStarted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="MissionStarted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="PreGuardianPhase",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="GuardianPhase",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="MissionEnded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="RoundReset",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="RoundEnded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(7)=(LinkDesc="TimedObjectiveUnlock",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Bool',LinkDesc="ChallengerWon",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Mission Timer Events" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_MissionTimer extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +native function UpdateChallengerWonValue(bool bValue); // Export UTgSeqEvent_MissionTimer::execUpdateChallengerWonValue(FFrame&, void* const) + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="SetupStarted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="MissionStarted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="PreGuardianPhase",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="GuardianPhase",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="MissionEnded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="RoundReset",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="RoundEnded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[7]=(Links=none,LinkDesc="TimedObjectiveUnlock",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Bool',LinkedVariables=none,LinkDesc="ChallengerWon",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Mission Timer Events" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_Named.uc b/Development/Src/TgGame/Classes/TgSeqEvent_Named.uc old mode 100755 new mode 100644 index 8702237..d8c963f --- a/Development/Src/TgGame/Classes/TgSeqEvent_Named.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_Named.uc @@ -1,23 +1,21 @@ -class TgSeqEvent_Named extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -enum TSE_NAME -{ - TSE_NONE, - TSE_MENU_CLOSE, - TSE_MOVIE_DONE, - //TSE_MAX -}; - -var() TgSeqEvent_Named.TSE_NAME NamedEvent; - -defaultproperties -{ - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Off/Close",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="On/Open",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Named TgSeqEvent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_Named extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum TSE_NAME { + TSE_NONE, // 0 + TSE_MENU_CLOSE, // 1 + TSE_MOVIE_DONE, // 2 +}; + +var () TgSeqEvent_Named.TSE_NAME NamedEvent; + +defaultproperties +{ + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Off/Close",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="On/Open",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Named TgSeqEvent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadAttackersWin.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadAttackersWin.uc old mode 100755 new mode 100644 index 64d5644..c2b92a1 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadAttackersWin.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadAttackersWin.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadAttackersWin extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Payload Attackers Win" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadAttackersWin extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Payload Attackers Win" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF1.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF1.uc old mode 100755 new mode 100644 index 6ede79b..18395c6 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF1.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF1.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadBeginTF1 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Payload Begin TF1" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadBeginTF1 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Payload Begin TF1" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF2.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF2.uc old mode 100755 new mode 100644 index dd6f2ea..03cc580 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF2.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadBeginTF2.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadBeginTF2 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Payload Begin TF2" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadBeginTF2 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Payload Begin TF2" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP1Reached.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP1Reached.uc old mode 100755 new mode 100644 index df7647e..b7a3138 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP1Reached.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP1Reached.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadCP1Reached extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Checkpoint 1 Reached" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadCP1Reached extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Checkpoint 1 Reached" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP2Reached.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP2Reached.uc old mode 100755 new mode 100644 index 8ae5146..a2d6892 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP2Reached.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadCP2Reached.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadCP2Reached extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Checkpoint 2 Reached" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadCP2Reached extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Checkpoint 2 Reached" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadDefendersWin.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadDefendersWin.uc old mode 100755 new mode 100644 index 65f889f..71c7048 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadDefendersWin.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadDefendersWin.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadDefendersWin extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Payload Defenders Win" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadDefendersWin extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Payload Defenders Win" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF1.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF1.uc old mode 100755 new mode 100644 index e8200b3..a6b6d03 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF1.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF1.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadEndTF1 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Payload End TF1" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadEndTF1 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Payload End TF1" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF2.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF2.uc old mode 100755 new mode 100644 index 3c8f238..28e1437 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF2.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadEndTF2.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_PayloadEndTF2 extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Payload End TF2" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadEndTF2 extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Payload End TF2" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadGameEvent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadGameEvent.uc old mode 100755 new mode 100644 index c156e20..078c062 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadGameEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadGameEvent.uc @@ -1,20 +1,20 @@ -class TgSeqEvent_PayloadGameEvent extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Neutral",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Checkpoint 1 Reached",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Checkpoint 2 Reached",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Match Almost Over",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="Overtime",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="Match Over",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="PayloadGameEvent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadGameEvent extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Neutral",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Checkpoint 1 Reached",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Checkpoint 2 Reached",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Match Almost Over",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="Overtime",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="Match Over",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="PayloadGameEvent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadMissionEvents.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadMissionEvents.uc old mode 100755 new mode 100644 index ebab199..1944c55 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PayloadMissionEvents.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PayloadMissionEvents.uc @@ -1,27 +1,25 @@ -class TgSeqEvent_PayloadMissionEvents extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -// Export UTgSeqEvent_PayloadMissionEvents::execUpdateTaskForceAttackValue(FFrame&, void* const) -native function UpdateTaskForceAttackValue(byte iValue); - -// Export UTgSeqEvent_PayloadMissionEvents::execUpdateTaskForceWonValue(FFrame&, void* const) -native function UpdateTaskForceWonValue(byte iValue); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="SetupStarted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Waiting for Capture Point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Capture Point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Seige Attack",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="Waiting for Payload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="Payload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="Game Won",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="TaskForceAttack",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="TaskForceWon",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Payload Mission Events" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PayloadMissionEvents extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +native function UpdateTaskForceAttackValue(byte iValue); // Export UTgSeqEvent_PayloadMissionEvents::execUpdateTaskForceAttackValue(FFrame&, void* const) + +native function UpdateTaskForceWonValue(byte iValue); // Export UTgSeqEvent_PayloadMissionEvents::execUpdateTaskForceWonValue(FFrame&, void* const) + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="SetupStarted",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Waiting for Capture Point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Capture Point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Seige Attack",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="Waiting for Payload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="Payload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="Game Won",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="TaskForceAttack",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="TaskForceWon",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Payload Mission Events" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PhaseNotify.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PhaseNotify.uc deleted file mode 100755 index 007b7bc..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PhaseNotify.uc +++ /dev/null @@ -1,15 +0,0 @@ -class TgSeqEvent_PhaseNotify extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -var string m_PhaseName; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_String',LinkDesc="Phase Name",LinkVar="None",PropertyName="m_PhaseName",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="TgSeqEvent_PhaseNotify" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PlaceableDestroyed.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PlaceableDestroyed.uc old mode 100755 new mode 100644 index abcbb9f..b953a7a --- a/Development/Src/TgGame/Classes/TgSeqEvent_PlaceableDestroyed.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PlaceableDestroyed.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_PlaceableDestroyed extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Destroyed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="PlaceableDestroyed",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="PlaceableDestroyed" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PlaceableDestroyed extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Destroyed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="PlaceableDestroyed",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="PlaceableDestroyed" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PlayIntro.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PlayIntro.uc deleted file mode 100755 index 01f7473..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PlayIntro.uc +++ /dev/null @@ -1,11 +0,0 @@ -class TgSeqEvent_PlayIntro extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - bClientSideOnly=true - ObjName="Play Intro" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PlayOfTheGame.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PlayOfTheGame.uc old mode 100755 new mode 100644 index af0d394..7b382c2 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PlayOfTheGame.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PlayOfTheGame.uc @@ -1,18 +1,15 @@ -class TgSeqEvent_PlayOfTheGame extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -event UpdateLinkedVars(int MapLane) -{ - //return; -} - -defaultproperties -{ - bPlayerOnly=false - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Map Lane",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Play of the Game" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PlayOfTheGame extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +event UpdateLinkedVars(int MapLane) { } + +defaultproperties +{ + bPlayerOnly=false + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Map Lane",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Play of the Game" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PlayerCountHit.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PlayerCountHit.uc old mode 100755 new mode 100644 index 6ad254b..fd8a316 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PlayerCountHit.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PlayerCountHit.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_PlayerCountHit extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - ObjName="TgSeqEvent_PlayerCountHit" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PlayerCountHit extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + ObjName="TgSeqEvent_PlayerCountHit" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PlayerInitialized.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PlayerInitialized.uc old mode 100755 new mode 100644 index 30394e9..b5bd09f --- a/Development/Src/TgGame/Classes/TgSeqEvent_PlayerInitialized.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PlayerInitialized.uc @@ -1,13 +1,13 @@ -class TgSeqEvent_PlayerInitialized extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -var() bool bLocalPlayerOnly; - -defaultproperties -{ - bClientSideOnly=true - ObjName="Player Initialized" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PlayerInitialized extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () bool bLocalPlayerOnly; + +defaultproperties +{ + bClientSideOnly=true + ObjName="Player Initialized" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_PlayerMoved.uc b/Development/Src/TgGame/Classes/TgSeqEvent_PlayerMoved.uc old mode 100755 new mode 100644 index 5fa12cb..b5d13c3 --- a/Development/Src/TgGame/Classes/TgSeqEvent_PlayerMoved.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_PlayerMoved.uc @@ -1,31 +1,26 @@ -class TgSeqEvent_PlayerMoved extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -enum EPlayerCardinalDirection -{ - PCD_Forward, - PCD_Backward, - PCD_Left, - PCD_Right, - //PCD_MAX -}; - -var int ResultEnergy; - -static event int GetIndex(TgSeqEvent_PlayerMoved.EPlayerCardinalDirection MovementDirection) -{ - //return ReturnValue; -} - -defaultproperties -{ - MaxTriggerCount=0 - OutputLinks(0)=(LinkDesc="Forward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Backward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Left",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Right",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Player Moving" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_PlayerMoved extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum EPlayerCardinalDirection { + PCD_Forward, // 0 + PCD_Backward, // 1 + PCD_Left, // 2 + PCD_Right, // 3 +}; + +var int ResultEnergy; + +event int GetIndex(TgSeqEvent_PlayerMoved.EPlayerCardinalDirection MovementDirection) { } + +defaultproperties +{ + MaxTriggerCount=0 + OutputLinks[0]=(Links=none,LinkDesc="Forward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Backward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Left",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Right",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Player Moving" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SetupTimeEnded.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SetupTimeEnded.uc old mode 100755 new mode 100644 index 0f3ae2d..a84cb0c --- a/Development/Src/TgGame/Classes/TgSeqEvent_SetupTimeEnded.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SetupTimeEnded.uc @@ -1,13 +1,13 @@ -class TgSeqEvent_SetupTimeEnded extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="SetupTimeEnded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="SetupTimeEnded" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SetupTimeEnded extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="SetupTimeEnded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="SetupTimeEnded" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SiegePush.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SiegePush.uc old mode 100755 new mode 100644 index f162d1c..2fe2ef7 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SiegePush.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SiegePush.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_SiegePush extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Forward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Reverse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Stop",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="SiegePushEvent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SiegePush extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Forward",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Reverse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Stop",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="SiegePushEvent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateActivate.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateActivate.uc old mode 100755 new mode 100644 index 1958e51..10bde80 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateActivate.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateActivate.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_SpawnGateActivate extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - ObjName="Spawn Gate Activate" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpawnGateActivate extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + ObjName="Spawn Gate Activate" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate.uc old mode 100755 new mode 100644 index e4b8243..4ea99fe --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_SpawnGateDeactivate extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - ObjName="Spawn Gate Deactivate" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpawnGateDeactivate extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + ObjName="Spawn Gate Deactivate" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Attackers.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Attackers.uc old mode 100755 new mode 100644 index 8f4b38f..c54990f --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Attackers.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Attackers.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_SpawnGateDeactivate_Attackers extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - ObjName="Spawn Gate Deactivate (Attackers)" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpawnGateDeactivate_Attackers extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + ObjName="Spawn Gate Deactivate (Attackers)" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Defenders.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Defenders.uc old mode 100755 new mode 100644 index ecb54e0..bd5be17 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Defenders.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnGateDeactivate_Defenders.uc @@ -1,11 +1,11 @@ -class TgSeqEvent_SpawnGateDeactivate_Defenders extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - ObjName="Spawn Gate Deactivate (Defenders)" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpawnGateDeactivate_Defenders extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + ObjName="Spawn Gate Deactivate (Defenders)" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnLanePusher.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnLanePusher.uc old mode 100755 new mode 100644 index 02a2998..64dcfd5 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnLanePusher.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnLanePusher.uc @@ -1,17 +1,17 @@ -class TgSeqEvent_SpawnLanePusher extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int Taskforce; - -defaultproperties -{ - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="LeftLane",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="MidLane",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="RightLane",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="Spawn Lanepusher" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpawnLanePusher extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int Taskforce; + +defaultproperties +{ + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="LeftLane",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="MidLane",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="RightLane",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="Spawn Lanepusher" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnWise.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnWise.uc old mode 100755 new mode 100644 index d2bd3f8..8a1ed26 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpawnWise.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpawnWise.uc @@ -1,16 +1,16 @@ -class TgSeqEvent_SpawnWise extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int Taskforce; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="TriggerFactory",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="Spawn Wise" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpawnWise extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int Taskforce; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="TriggerFactory",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="Spawn Wise" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SpectatorReady.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SpectatorReady.uc old mode 100755 new mode 100644 index 58e721c..7cea833 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SpectatorReady.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SpectatorReady.uc @@ -1,16 +1,13 @@ -class TgSeqEvent_SpectatorReady extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -static function bool TriggerGlobal(TgSpectatorController InInstigator) -{ - //return ReturnValue; -} - -defaultproperties -{ - MaxTriggerCount=0 - OutputLinks(0)=(LinkDesc="Ready",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Spectator Ready" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SpectatorReady extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +function bool TriggerGlobal(TgSpectatorController InInstigator) { } + +defaultproperties +{ + MaxTriggerCount=0 + OutputLinks[0]=(Links=none,LinkDesc="Ready",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Spectator Ready" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameBegin.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameBegin.uc old mode 100755 new mode 100644 index 6e31e0e..5f96461 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameBegin.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameBegin.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_SurvivalGameBegin extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Survival Game Begin" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SurvivalGameBegin extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Survival Game Begin" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEnd.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEnd.uc old mode 100755 new mode 100644 index 2026fb9..2eeaa0e --- a/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEnd.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEnd.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_SurvivalGameEnd extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Survival Game End" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SurvivalGameEnd extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + ObjName="Survival Game End" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEvent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEvent.uc old mode 100755 new mode 100644 index 86446cc..25fed17 --- a/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_SurvivalGameEvent.uc @@ -1,17 +1,17 @@ -class TgSeqEvent_SurvivalGameEvent extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="PreFog",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="FogConverging",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="PostFog",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="SurvivalGameEvent" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_SurvivalGameEvent extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="PreFog",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="FogConverging",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="PostFog",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="SurvivalGameEvent" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TF1Win.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TF1Win.uc deleted file mode 100755 index 98ae6a2..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TF1Win.uc +++ /dev/null @@ -1,10 +0,0 @@ -class TgSeqEvent_TF1Win extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Win - TF1" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TF2Win.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TF2Win.uc deleted file mode 100755 index 19a4dc9..0000000 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TF2Win.uc +++ /dev/null @@ -1,10 +0,0 @@ -class TgSeqEvent_TF2Win extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - ObjName="Win - TF2" - ObjCategory="TgGame" -} \ No newline at end of file diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TakeDamage.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TakeDamage.uc old mode 100755 new mode 100644 index 6bf52aa..d33382d --- a/Development/Src/TgGame/Classes/TgSeqEvent_TakeDamage.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TakeDamage.uc @@ -1,20 +1,17 @@ -class TgSeqEvent_TakeDamage extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -event HandleDamage(Actor InOriginator, Actor InInstigator, int inAmount, class inDamageType, TgDevice InDevice) -{ - //return; -} - -defaultproperties -{ - MaxTriggerCount=0 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Damage Taken",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'TgSeqVar_DamageType',LinkDesc="Damage Type",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(3)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Device",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Paladins Take Damage" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TakeDamage extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +event HandleDamage(Actor InOriginator, Actor InInstigator, int inAmount, Class inDamageType, TgDevice InDevice) { } + +defaultproperties +{ + MaxTriggerCount=0 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Damage Taken",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'TgSeqVar_DamageType',LinkedVariables=none,LinkDesc="Damage Type",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[3]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Device",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Paladins Take Damage" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceInactive.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceInactive.uc old mode 100755 new mode 100644 index 926721c..21f3215 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceInactive.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceInactive.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_TaskForceInactive extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Inactive Task Force",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Task Force Inactive" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TaskForceInactive extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Inactive Task Force",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Task Force Inactive" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceScoreUpdated.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceScoreUpdated.uc old mode 100755 new mode 100644 index a314275..8d99647 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceScoreUpdated.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TaskForceScoreUpdated.uc @@ -1,17 +1,17 @@ -class TgSeqEvent_TaskForceScoreUpdated extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -var() int DefenderTaskForce; -var() int currentScore; - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Score Updated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="TaskForce Score Updated" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TaskForceScoreUpdated extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int DefenderTaskForce; +var () int currentScore; + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Score Updated",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="TaskForce Score Updated" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TeamInactive.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TeamInactive.uc old mode 100755 new mode 100644 index 6494a2e..df8a715 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TeamInactive.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TeamInactive.uc @@ -1,12 +1,12 @@ -class TgSeqEvent_TeamInactive extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - bPlayerOnly=false - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Inactive Team",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Team Inactive" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TeamInactive extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bPlayerOnly=false + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Inactive Team",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Team Inactive" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TicketCountUpdated.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TicketCountUpdated.uc old mode 100755 new mode 100644 index ea7d87e..f7d837a --- a/Development/Src/TgGame/Classes/TgSeqEvent_TicketCountUpdated.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TicketCountUpdated.uc @@ -1,14 +1,14 @@ -class TgSeqEvent_TicketCountUpdated extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Pulse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Threshold",LinkVar="None",PropertyName="m_fPercentTicketsThreshold",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Ticket Count Updated" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TicketCountUpdated extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Pulse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Threshold",LinkVar="None",PropertyName="m_fPercentTicketsThreshold",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Ticket Count Updated" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TimeLapse.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TimeLapse.uc old mode 100755 new mode 100644 index 7cd0d00..655cd06 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TimeLapse.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TimeLapse.uc @@ -1,15 +1,15 @@ -class TgSeqEvent_TimeLapse extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Pre Time Lapse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Post Time Lapse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="TgSeqEvent_TimeLapse" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TimeLapse extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Pre Time Lapse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Post Time Lapse",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="TgSeqEvent_TimeLapse" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_Tutorial.uc b/Development/Src/TgGame/Classes/TgSeqEvent_Tutorial.uc old mode 100755 new mode 100644 index 2d515d6..566763c --- a/Development/Src/TgGame/Classes/TgSeqEvent_Tutorial.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_Tutorial.uc @@ -1,49 +1,44 @@ -class TgSeqEvent_Tutorial extends SequenceEvent - forcescriptorder(true) - hidecategories(Object); - -enum EPaladinsTutorialEvent -{ - PTE_Started, - PTE_HelperSpawned, - PTE_MovingToAutoShootingRange, - PTE_PlayerReachedAutoShootingRange, - PTE_WaitingForMovementAbility, - PTE_ReceivedMovementAbility, - PTE_PlayerReachedUltimateShootingRange, - PTE_PlayerUltimateComplete, - PTE_PlayerReachedLowerJumpArea, - PTE_PlayerReachedUpperJumpArea, - PTE_PlayerReachedObjective, - PTE_MoveBotToCapturePoint, - PTE_MoveBotToPayload, - PTE_Complete, - //PTE_MAX -}; - -static function bool TriggerGlobal(Actor InInstigator, TgSeqEvent_Tutorial.EPaladinsTutorialEvent TutEvent) -{ - //return ReturnValue; -} - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Tutorial Started",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Helper Bot Spawned",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Moving to Auto Shooting Range",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Player Reached Auto Shooting Range",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="Waiting for Movement Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="Received Movement Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="Player reached Ultimate Shooting Range",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(7)=(LinkDesc="Player completed Ultimate",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(8)=(LinkDesc="Player reached lower jump area",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(9)=(LinkDesc="Player reached upper jump area",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(10)=(LinkDesc="Player reached capture point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(11)=(LinkDesc="Move Bot to contest capture point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(12)=(LinkDesc="Move Bot to contest payload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(13)=(LinkDesc="Tutorial Complete",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - ObjName="Paladins Tutorial" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_Tutorial extends SequenceEvent + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum EPaladinsTutorialEvent { + PTE_Started, // 0 + PTE_HelperSpawned, // 1 + PTE_MovingToAutoShootingRange, // 2 + PTE_PlayerReachedAutoShootingRange, // 3 + PTE_WaitingForMovementAbility, // 4 + PTE_ReceivedMovementAbility, // 5 + PTE_PlayerReachedUltimateShootingRange, // 6 + PTE_PlayerUltimateComplete, // 7 + PTE_PlayerReachedLowerJumpArea, // 8 + PTE_PlayerReachedUpperJumpArea, // 9 + PTE_PlayerReachedObjective, // 10 + PTE_MoveBotToCapturePoint, // 11 + PTE_MoveBotToPayload, // 12 + PTE_Complete, // 13 +}; + +function bool TriggerGlobal(Actor InInstigator, TgSeqEvent_Tutorial.EPaladinsTutorialEvent TutEvent) { } + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Tutorial Started",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Helper Bot Spawned",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Moving to Auto Shooting Range",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Player Reached Auto Shooting Range",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="Waiting for Movement Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="Received Movement Ability",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="Player reached Ultimate Shooting Range",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[7]=(Links=none,LinkDesc="Player completed Ultimate",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[8]=(Links=none,LinkDesc="Player reached lower jump area",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[9]=(Links=none,LinkDesc="Player reached upper jump area",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[10]=(Links=none,LinkDesc="Player reached capture point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[11]=(Links=none,LinkDesc="Move Bot to contest capture point",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[12]=(Links=none,LinkDesc="Move Bot to contest payload",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[13]=(Links=none,LinkDesc="Tutorial Complete",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + ObjName="Paladins Tutorial" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_TutorialEvent.uc b/Development/Src/TgGame/Classes/TgSeqEvent_TutorialEvent.uc old mode 100755 new mode 100644 index 3b1362a..34a14b2 --- a/Development/Src/TgGame/Classes/TgSeqEvent_TutorialEvent.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_TutorialEvent.uc @@ -1,51 +1,44 @@ -class TgSeqEvent_TutorialEvent extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -enum TUTORIAL_EVENT -{ - TUTEVT_OPENED_ITEM_SHOP, - TUTEVT_BOUGHT_ITEM, - TUTEVT_CLOSED_ITEM_SHOP, - TUTEVT_OPENED_SKILLS, - TUTEVT_BOUGHT_SKILL, - TUTEVT_CLOSED_SKILLS, - TUTEVT_USED_ABILITY, - TUTEVT_USED_RECALL, - TUTEVT_TARGETED, - TUTEVT_OPENED_INTRO, - TUTEVT_CLOSED_INTRO, - TUTEVT_USED_ACTIVE_ITEM, - TUTEVT_SELECTED_SHOP_ITEM, - TUTEVT_SELECTED_SHOP_ITEM2, - TUTEVT_SELECTED_SHOP_ITEM3, - TUTEVT_USED_CONSUMABLE_ITEM, - TUTEVT_SELECTED_ALL_ITEMS, - //TUTEVT_MAX -}; - -enum TUTORIAL_TARGET_TYPE -{ - TUT_TARGET_TOWER, - TUT_TARGET_PHOENIX, - TUT_TARGET_GUARDIAN, - //TUT_TARGET_MAX -}; - -var() TgSeqEvent_TutorialEvent.TUTORIAL_EVENT TutEvent; -var int EventData; - -static event int GetObjClassVersion() -{ - //return ReturnValue; -} - -defaultproperties -{ - MaxTriggerCount=0 - bPlayerOnly=false - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="EventData",LinkVar="None",PropertyName="EventData",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Smite Tutorial Events" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_TutorialEvent extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +enum TUTORIAL_EVENT { + TUTEVT_OPENED_ITEM_SHOP, // 0 + TUTEVT_BOUGHT_ITEM, // 1 + TUTEVT_CLOSED_ITEM_SHOP, // 2 + TUTEVT_OPENED_SKILLS, // 3 + TUTEVT_BOUGHT_SKILL, // 4 + TUTEVT_CLOSED_SKILLS, // 5 + TUTEVT_USED_ABILITY, // 6 + TUTEVT_USED_RECALL, // 7 + TUTEVT_TARGETED, // 8 + TUTEVT_OPENED_INTRO, // 9 + TUTEVT_CLOSED_INTRO, // 10 + TUTEVT_USED_ACTIVE_ITEM, // 11 + TUTEVT_SELECTED_SHOP_ITEM, // 12 + TUTEVT_SELECTED_SHOP_ITEM2, // 13 + TUTEVT_SELECTED_SHOP_ITEM3, // 14 + TUTEVT_USED_CONSUMABLE_ITEM, // 15 + TUTEVT_SELECTED_ALL_ITEMS, // 16 +}; + +enum TUTORIAL_TARGET_TYPE { + TUT_TARGET_TOWER, // 0 + TUT_TARGET_PHOENIX, // 1 + TUT_TARGET_GUARDIAN, // 2 +}; + +var () TgSeqEvent_TutorialEvent.TUTORIAL_EVENT TutEvent; +var int EventData; + +static event int GetObjClassVersion() { } + +defaultproperties +{ + MaxTriggerCount=0 + bPlayerOnly=false + VariableLinks[0]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="EventData",LinkVar="None",PropertyName="EventData",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Smite Tutorial Events" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_UI_Event.uc b/Development/Src/TgGame/Classes/TgSeqEvent_UI_Event.uc old mode 100755 new mode 100644 index eaeb57b..b3172a0 --- a/Development/Src/TgGame/Classes/TgSeqEvent_UI_Event.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_UI_Event.uc @@ -1,66 +1,42 @@ -class TgSeqEvent_UI_Event extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var int mDeckNum; -var int mEmptyItemSlots; - -event DeckUIInitialized(Actor InOriginator, Actor InInstigator) -{ - //return; -} - -event ItemUIInitialized(Actor InOriginator, Actor InInstigator) -{ - //return; -} - -event DeckMenuOpened(Actor InOriginator, Actor InInstigator) -{ - //return; -} - -event DeckChanged(Actor InOriginator, Actor InInstigator, int Deck) -{ - //return; -} - -event DeckSelected(Actor InOriginator, Actor InInstigator, int Deck) -{ - //return; -} - -event ItemMenuOpened(Actor InOriginator, Actor InInstigator) -{ - //return; -} - -event ItemPurchased(Actor InOriginator, Actor InInstigator, int EmptySlots) -{ - //return; -} - -event ItemUpgraded(Actor InOriginator, Actor InInstigator) -{ - //return; -} - -defaultproperties -{ - MaxTriggerCount=0 - bClientSideOnly=true - OutputLinks(0)=(LinkDesc="Deck UI Initialized",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Item UI Initialized",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(2)=(LinkDesc="Deck Menu Opened",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(3)=(LinkDesc="Deck Changed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(4)=(LinkDesc="Deck Selected",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(5)=(LinkDesc="Item Menu Opened",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(6)=(LinkDesc="Item Purchased",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(7)=(LinkDesc="Item Upgraded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Deck Number",LinkVar="None",PropertyName="mDeckNum",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Int',LinkDesc="Empty Item Slots",LinkVar="None",PropertyName="mEmptyItemSlots",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Tutorial UI Event" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_UI_Event extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var int mDeckNum; +var int mEmptyItemSlots; + +event DeckUIInitialized(Actor InOriginator, Actor InInstigator) { } + +event ItemUIInitialized(Actor InOriginator, Actor InInstigator) { } + +event DeckMenuOpened(Actor InOriginator, Actor InInstigator) { } + +event DeckChanged(Actor InOriginator, Actor InInstigator, int Deck) { } + +event DeckSelected(Actor InOriginator, Actor InInstigator, int Deck) { } + +event ItemMenuOpened(Actor InOriginator, Actor InInstigator) { } + +event ItemPurchased(Actor InOriginator, Actor InInstigator, int EmptySlots) { } + +event ItemUpgraded(Actor InOriginator, Actor InInstigator) { } + +defaultproperties +{ + MaxTriggerCount=0 + bClientSideOnly=true + OutputLinks[0]=(Links=none,LinkDesc="Deck UI Initialized",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Item UI Initialized",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[2]=(Links=none,LinkDesc="Deck Menu Opened",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[3]=(Links=none,LinkDesc="Deck Changed",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[4]=(Links=none,LinkDesc="Deck Selected",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[5]=(Links=none,LinkDesc="Item Menu Opened",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[6]=(Links=none,LinkDesc="Item Purchased",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[7]=(Links=none,LinkDesc="Item Upgraded",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Deck Number",LinkVar="None",PropertyName="mDeckNum",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Int',LinkedVariables=none,LinkDesc="Empty Item Slots",LinkVar="None",PropertyName="mEmptyItemSlots",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Tutorial UI Event" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_UpdateLanePusherCount.uc b/Development/Src/TgGame/Classes/TgSeqEvent_UpdateLanePusherCount.uc old mode 100755 new mode 100644 index 68067e2..f5665d2 --- a/Development/Src/TgGame/Classes/TgSeqEvent_UpdateLanePusherCount.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_UpdateLanePusherCount.uc @@ -1,16 +1,16 @@ -class TgSeqEvent_UpdateLanePusherCount extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() int Taskforce; - -defaultproperties -{ - bPlayerOnly=false - OutputLinks(0)=(LinkDesc="Died",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - OutputLinks(1)=(LinkDesc="Spawned",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) - //VariableLinks=none - ObjName="Update LanePusher Count" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_UpdateLanePusherCount extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () int Taskforce; + +defaultproperties +{ + bPlayerOnly=false + OutputLinks[0]=(Links=none,LinkDesc="Died",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + OutputLinks[1]=(Links=none,LinkDesc="Spawned",bHasImpulse=false,bDisabled=false,bDisabledPIE=false,LinkedOp=none,ActivateDelay=0.0000000,DrawY=0,bHidden=false,bMoving=false,bClampedMax=false,bClampedMin=false,bIsActivated=false) + VariableLinks=none + ObjName="Update LanePusher Count" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_Used.uc b/Development/Src/TgGame/Classes/TgSeqEvent_Used.uc old mode 100755 new mode 100644 index fc2428c..9ce0299 --- a/Development/Src/TgGame/Classes/TgSeqEvent_Used.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_Used.uc @@ -1,13 +1,13 @@ -class TgSeqEvent_Used extends SequenceEvent - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - MaxTriggerCount=0 - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Object',LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Distance",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="TgSeqEvent_Used" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_Used extends SequenceEvent + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + MaxTriggerCount=0 + VariableLinks[0]=(ExpectedType=Class'SeqVar_Object',LinkedVariables=none,LinkDesc="Instigator",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Distance",LinkVar="None",PropertyName="None",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="TgSeqEvent_Used" +} diff --git a/Development/Src/TgGame/Classes/TgSeqEvent_VaultLowHealth.uc b/Development/Src/TgGame/Classes/TgSeqEvent_VaultLowHealth.uc old mode 100755 new mode 100644 index 5c27252..7e22042 --- a/Development/Src/TgGame/Classes/TgSeqEvent_VaultLowHealth.uc +++ b/Development/Src/TgGame/Classes/TgSeqEvent_VaultLowHealth.uc @@ -1,10 +1,10 @@ -class TgSeqEvent_VaultLowHealth extends SequenceEvent - native - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - ObjName="TgSeqEvent_VaultLowHealth" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqEvent_VaultLowHealth extends SequenceEvent + native + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + ObjName="TgSeqEvent_VaultLowHealth" +} diff --git a/Development/Src/TgGame/Classes/TgSeqOp_MathCalc.uc b/Development/Src/TgGame/Classes/TgSeqOp_MathCalc.uc old mode 100755 new mode 100644 index 73294da..ae2c5e3 --- a/Development/Src/TgGame/Classes/TgSeqOp_MathCalc.uc +++ b/Development/Src/TgGame/Classes/TgSeqOp_MathCalc.uc @@ -1,19 +1,19 @@ -class TgSeqOp_MathCalc extends SequenceCondition - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var float m_fResult; - -defaultproperties -{ - InputLinks(0)=(LinkDesc="Add",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(1)=(LinkDesc="Subtract",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(2)=(LinkDesc="Multiply",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - InputLinks(3)=(LinkDesc="Divide",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(0)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Initial",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(1)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Inputs",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - VariableLinks(2)=(ExpectedType=Class'Engine.SeqVar_Float',LinkDesc="Ouput",LinkVar="None",PropertyName="m_fResult",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) - ObjName="Math Calc" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqOp_MathCalc extends SequenceCondition + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var float m_fResult; + +defaultproperties +{ + InputLinks[0]=(LinkDesc="Add",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[1]=(LinkDesc="Subtract",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[2]=(LinkDesc="Multiply",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + InputLinks[3]=(LinkDesc="Divide",bHasImpulse=false,QueuedActivations=0,bDisabled=false,bDisabledPIE=false,LinkedOp=none,DrawY=0,bHidden=false,ActivateDelay=0.0000000,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[0]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Initial",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[1]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Inputs",LinkVar="None",PropertyName="None",bWriteable=false,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + VariableLinks[2]=(ExpectedType=Class'SeqVar_Float',LinkedVariables=none,LinkDesc="Ouput",LinkVar="None",PropertyName="m_fResult",bWriteable=true,bSequenceNeverReadsOnlyWritesToThisVar=false,bModifiesLinkedObject=false,bHidden=false,MinVars=1,MaxVars=255,DrawX=0,CachedProperty=none,bAllowAnyType=false,bMoving=false,bClampedMax=false,bClampedMin=false) + ObjName="Math Calc" +} diff --git a/Development/Src/TgGame/Classes/TgSeqVar_DamageType.uc b/Development/Src/TgGame/Classes/TgSeqVar_DamageType.uc old mode 100755 new mode 100644 index 98dce9f..d0f4502 --- a/Development/Src/TgGame/Classes/TgSeqVar_DamageType.uc +++ b/Development/Src/TgGame/Classes/TgSeqVar_DamageType.uc @@ -1,12 +1,12 @@ -class TgSeqVar_DamageType extends SequenceVariable - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var() class DamageTypeValue; - -defaultproperties -{ - ObjName="Damage Type" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqVar_DamageType extends SequenceVariable + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var () Class DamageTypeValue; + +defaultproperties +{ + ObjName="Damage Type" +} diff --git a/Development/Src/TgGame/Classes/TgSeqVar_Player.uc b/Development/Src/TgGame/Classes/TgSeqVar_Player.uc old mode 100755 new mode 100644 index b1c8497..f6d4fe1 --- a/Development/Src/TgGame/Classes/TgSeqVar_Player.uc +++ b/Development/Src/TgGame/Classes/TgSeqVar_Player.uc @@ -1,21 +1,21 @@ -class TgSeqVar_Player extends SeqVar_Player - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -var transient array HumanPlayers; -var transient array BotPlayers; -var transient array PetPlayers; -var() bool bAllBots; -var() bool bAllHumans; -var() bool bAllHumansAndPets; -var() int nTaskForceNumber; - -defaultproperties -{ - bAllHumans=true - nTaskForceNumber=-1 - bAllPlayers=false - ObjName="TgPlayer" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqVar_Player extends SeqVar_Player + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +var transient array HumanPlayers; +var transient array BotPlayers; +var transient array PetPlayers; +var () bool bAllBots; +var () bool bAllHumans; +var () bool bAllHumansAndPets; +var () int nTaskForceNumber; + +defaultproperties +{ + bAllHumans=true + nTaskForceNumber=-1 + bAllPlayers=false + ObjName="TgPlayer" +} diff --git a/Development/Src/TgGame/Classes/TgSeqVar_RouteNumber.uc b/Development/Src/TgGame/Classes/TgSeqVar_RouteNumber.uc old mode 100755 new mode 100644 index ddb72c6..cd21c8f --- a/Development/Src/TgGame/Classes/TgSeqVar_RouteNumber.uc +++ b/Development/Src/TgGame/Classes/TgSeqVar_RouteNumber.uc @@ -1,11 +1,11 @@ -class TgSeqVar_RouteNumber extends SeqVar_Int - native(Kismet) - forcescriptorder(true) - hidecategories(Object); - -defaultproperties -{ - IntValue=-1 - ObjName="RouteNumber" - ObjCategory="TgGame" -} \ No newline at end of file +class TgSeqVar_RouteNumber extends SeqVar_Int + native(Kismet) + forcescriptorder(true) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + IntValue=-1 + ObjName="RouteNumber" +} diff --git a/Development/Src/TgGame/Classes/TgSiegePushActor.uc b/Development/Src/TgGame/Classes/TgSiegePushActor.uc new file mode 100644 index 0000000..e4d8791 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSiegePushActor.uc @@ -0,0 +1,37 @@ +class TgSiegePushActor extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +enum EPushState { + PushState_Paused, // 0 + PushState_Forward, // 1 + PushState_PendingReverse, // 2 + PushState_Reverse, // 3 +}; + +var TgCollisionProxy_Cylinder s_CollisionProxy; +var () const float m_fCollisionProxyRadius; +var () const float m_fCollisionProxyHeight; +var () export editinline SkeletalMeshComponent m_SkelMesh; +var () export editinline StaticMeshComponent m_RadiusMesh; +var transient int m_nTF1Count; +var transient int m_nTF2Count; +var () int m_nDefenderTaskForce; +var transient TgSiegePushActor.EPushState m_CurrentPushState; +var () float m_fPendingReverseTime; + +simulated event PostBeginPlay() { } + +simulated event CollisionProxyOnTouch(Actor Other, PrimitiveComponent OtherComp, Vector HitLocation, Vector HitNormal) { } + +simulated event CollisionProxyOnUnTouch(Actor Other) { } + +function NearbyPawnsUpdated() { } + +function SetReversePushState() { } + +function SetCurrentPushState(TgSiegePushActor.EPushState NewPushState) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladins.uc b/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladins.uc new file mode 100644 index 0000000..b17484a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladins.uc @@ -0,0 +1,56 @@ +class TgSilhouetteComponentPaladins extends TgSilhouetteComponent + native(FX) + hidecategories(Object) + config(Engine); + +struct SilhouetteColorSettings { + var bool bUsesMultipleColors; + var bool bUsesEnemyRangeColorVariance; + var const Color BlueColor; + var const Color EnemyColor; + var const Color PurpleColor; + var const Color OrangeColor; + var const Color EnemyTargetedEffectiveRangeColor; + var const Color EnemyTargetedMaxRangeColor; + var const Color RedColor; + structdefaultproperties {} +}; + +struct SilhouetteFadeSettings { + var bool bUsesDistanceFade; + var const float fAlphaFadeNearDist; + var const float fAlphaFadeNear; + var const float fAlphaFadeFarDist; + var const float fAlphaFadeFar; + structdefaultproperties {} +}; + +struct SilhouettePulseSettings { + var bool bUsesPulse; + var bool bUsePulseAlpha; + var bool bPulseMaintainsDistanceDimming; + var Vector2D vPulseAlpha; + var bool bPulseUseCustomColor; + var Color PulseCustomColor; + var bool bUsePulseThicknessMultiplier; + var Vector2D vPulseThicknessMultiplier; + var float fPulseElapsedTime; + var float fPulseDuration; + var float fPulseWaveTime; + structdefaultproperties {} +}; + +var (ColorSettings) SilhouetteColorSettings m_ColorSettings; +var (FadeSettings) SilhouetteFadeSettings m_FadeSettings; +var (PulseSettings) SilhouettePulseSettings m_PulseSettings; + +defaultproperties +{ + m_ColorSettings=(bUsesMultipleColors=false,bUsesEnemyRangeColorVariance=false,BlueColor=(R=80,G=219,B=239,A=0),EnemyColor=(R=247,G=149,B=51,A=0),PurpleColor=(R=192,G=22,B=207,A=0),OrangeColor=(R=252,G=122,B=40,A=0),EnemyTargetedEffectiveRangeColor=(R=247,G=51,B=51,A=0),EnemyTargetedMaxRangeColor=(R=255,G=188,B=51,A=0),RedColor=(R=247,G=51,B=51,A=0)) + m_FadeSettings=(bUsesDistanceFade=false,fAlphaFadeNearDist=500.0000000,fAlphaFadeNear=0.2500000,fAlphaFadeFarDist=2000.0000000,fAlphaFadeFar=0.0400000) + SilhouetteColor=(R=0.0780566,G=0.7154654,B=0.8671355,A=0.2500000) + NearThickness=0.5500000 + FarThickness=4.0000000 + ReplacementPrimitive=none + TickGroup=TG_PostAsyncWork +} diff --git a/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladinsDeployable.uc b/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladinsDeployable.uc new file mode 100644 index 0000000..ad95352 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladinsDeployable.uc @@ -0,0 +1,11 @@ +class TgSilhouetteComponentPaladinsDeployable extends TgSilhouetteComponentPaladins + native(FX) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + m_ColorSettings=(bUsesMultipleColors=true,EnemyColor=(R=247,G=51,B=51,A=0)) + m_FadeSettings=(bUsesDistanceFade=true) + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladinsPawn.uc b/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladinsPawn.uc new file mode 100644 index 0000000..9564e23 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSilhouetteComponentPaladinsPawn.uc @@ -0,0 +1,12 @@ +class TgSilhouetteComponentPaladinsPawn extends TgSilhouetteComponentPaladins + native(FX) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + m_ColorSettings=(bUsesMultipleColors=true,bUsesEnemyRangeColorVariance=true) + m_FadeSettings=(bUsesDistanceFade=true) + m_PulseSettings=(bUsesPulse=true,bPulseMaintainsDistanceDimming=true) + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSilhouetteComponentPayload.uc b/Development/Src/TgGame/Classes/TgSilhouetteComponentPayload.uc new file mode 100644 index 0000000..97e90ee --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSilhouetteComponentPayload.uc @@ -0,0 +1,11 @@ +class TgSilhouetteComponentPayload extends TgSilhouetteComponentPaladins + native(FX) + hidecategories(Object) + config(Engine); + +defaultproperties +{ + m_ColorSettings=(bUsesMultipleColors=true,EnemyColor=(R=247,G=51,B=51,A=0)) + SilhouetteColor=(R=0.4800000,G=0.4900000,B=0.1000000,A=0.2500000) + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSilhouetteManager.uc b/Development/Src/TgGame/Classes/TgSilhouetteManager.uc new file mode 100644 index 0000000..ebad17c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSilhouetteManager.uc @@ -0,0 +1,33 @@ +class TgSilhouetteManager extends Actor + native(FX) + notplaceable + hidecategories(Navigation) + config(Engine); + +struct TgSilhouetteInfo { +}; + +var Actor m_Owner; +var bool m_bSilhouettesEnabled; +var () const bool m_bForceSilhouetteVisible; +var transient array m_SilhouetteInfos; +var () Class m_SilhouetteClass; + +native function int InitializeSilhouetteComponent(MeshComponent InMesh, optional float fLifeAfterDeath=-1.0000000); // Export UTgSilhouetteManager::execInitializeSilhouetteComponent(FFrame&, void* const) + +native function int FindSilhouetteInfo(MeshComponent ParentMesh); // Export UTgSilhouetteManager::execFindSilhouetteInfo(FFrame&, void* const) + +native function bool RemoveSilhouetteInfo(MeshComponent ParentMesh); // Export UTgSilhouetteManager::execRemoveSilhouetteInfo(FFrame&, void* const) + +native function ClearAllSilhouetteInfos(); // Export UTgSilhouetteManager::execClearAllSilhouetteInfos(FFrame&, void* const) + +native function UpdateSilhouetteVisibility(); // Export UTgSilhouetteManager::execUpdateSilhouetteVisibility(FFrame&, void* const) + +native function bool ShouldAnySilhouettesBeVisible(); // Export UTgSilhouetteManager::execShouldAnySilhouettesBeVisible(FFrame&, void* const) + +native function TickSilhouettes(float DeltaSeconds); // Export UTgSilhouetteManager::execTickSilhouettes(FFrame&, void* const) + +defaultproperties +{ + m_SilhouetteClass=Class'TgSilhouetteComponentPaladinsDeployable' +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_AstroSpinner.uc b/Development/Src/TgGame/Classes/TgSkelCon_AstroSpinner.uc new file mode 100644 index 0000000..ccbd29e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_AstroSpinner.uc @@ -0,0 +1,6 @@ +class TgSkelCon_AstroSpinner extends TgSkelCon_Spinner + native(Anim) + hidecategories(Object,Object,Adjustments,Translation) + config(Engine); + +var TgPawn m_PawnOwner; diff --git a/Development/Src/TgGame/Classes/TgSkelCon_CCD_IK_FootPlacement.uc b/Development/Src/TgGame/Classes/TgSkelCon_CCD_IK_FootPlacement.uc new file mode 100644 index 0000000..998a351 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_CCD_IK_FootPlacement.uc @@ -0,0 +1,45 @@ +class TgSkelCon_CCD_IK_FootPlacement extends SkelControlBase + native(Anim) + hidecategories(Object,Object) + config(Engine); + +struct JointConstraintInformation { + var () float AngleConstraint; + var () float StretchConstraint; + structdefaultproperties {} +}; + +var (CCD) int NumBones; +var (CCD) int MaxPerBoneIterations; +var const int IterationsCount; +var (CCD) float Precision; +var (CCD) bool bStartFromTail; +var (CCD) bool bNoTurnOptimization; +var () bool bAllowStretching; +var (FootPlacement) bool bInvertFootUpAxis; +var (FootPlacement) bool bOrientFootToGround; +var (FootPlacement) bool bOnlyEnableForUpAdjustment; +var bool m_bUseCachedFootOffset; +var (CCD) const array JointConstraints; +var (CCD) float MaxAngleSteps; +var (CCD) float MaxStretchSteps; +var (FootPlacement) float FootOffset; +var (FootPlacement) Object.EAxis FootUpAxis; +var (FootPlacement) Rotator FootRotOffset; +var (FootPlacement) float MaxUpAdjustment; +var (FootPlacement) float MaxDownAdjustment; +var (FootPlacement) float MaxFootOrientAdjust; +var Vector EffectorLocation; +var Vector m_vCachedFootOffset; + +defaultproperties +{ + NumBones=2 + MaxPerBoneIterations=3 + Precision=0.1000000 + bOrientFootToGround=true + MaxAngleSteps=0.4000000 + FootUpAxis=AXIS_X + MaxUpAdjustment=50.0000000 + MaxFootOrientAdjust=45.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_ClockworkSpinner.uc b/Development/Src/TgGame/Classes/TgSkelCon_ClockworkSpinner.uc new file mode 100644 index 0000000..187b156 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_ClockworkSpinner.uc @@ -0,0 +1,37 @@ +class TgSkelCon_ClockworkSpinner extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var () float m_fInterpTime; +var float m_fRemainingInterpTime; +var () float m_fPauseTime; +var float m_fRemainingPauseTime; +var () Object.EAxis RotationAxis; +var int DeltaRotation; +var () float m_fInterpRotation; +var () bool bLimitedRotation; +var bool bForward; +var () float m_fRotationMin; +var () float m_fRotationMax; +var () float m_fResetInterpTime; +var () float m_fResetPauseTime; +var () float m_fResetRotation; +var float m_fRotatorMin; +var float m_fRotatorMax; +var float RotationsPerSecond; +var float ResetRotationsPerSecond; + +defaultproperties +{ + m_fInterpTime=10.0000000 + m_fPauseTime=1.0000000 + RotationAxis=AXIS_Z + bForward=true + m_fRotationMax=1.0000000 + RotationsPerSecond=1.0000000 + ResetRotationsPerSecond=1.0000000 + bApplyRotation=true + bAddRotation=true + BoneRotationSpace=BCS_BoneSpace +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_FootPlacement.uc b/Development/Src/TgGame/Classes/TgSkelCon_FootPlacement.uc new file mode 100644 index 0000000..1c44c7e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_FootPlacement.uc @@ -0,0 +1,6 @@ +class TgSkelCon_FootPlacement extends SkelControlFootPlacement + native(Anim) + hidecategories(Object,Object,Effector) + config(Engine); + +var (FootPlacement) bool bShouldUseWorldDown; diff --git a/Development/Src/TgGame/Classes/TgSkelCon_Gate.uc b/Development/Src/TgGame/Classes/TgSkelCon_Gate.uc new file mode 100644 index 0000000..b53419c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_Gate.uc @@ -0,0 +1,18 @@ +class TgSkelCon_Gate extends SkelControlBase + native(Anim) + hidecategories(Object,Object) + config(Engine); + +struct SkelControlGateChild { + var SkelControlBase SkelControl; + var editconst transient float DrawY; + structdefaultproperties {} +}; + +var (Gate) array ChildControls; + +defaultproperties +{ + ChildControls[0]=(SkelControl=none,DrawY=0.0000000) + ControlStrength=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_HitReaction.uc b/Development/Src/TgGame/Classes/TgSkelCon_HitReaction.uc new file mode 100644 index 0000000..f85e2f9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_HitReaction.uc @@ -0,0 +1,38 @@ +class TgSkelCon_HitReaction extends GameSkelCtrl_Recoil + native(Anim) + hidecategories(Object,Object) + config(Engine) + dependson(TgObject); + +struct RecoilInfo { + var () RecoilDef Min; + var () RecoilDef Max; + structdefaultproperties {} +}; + +var () private TgObject.RecoilHitDir m_CurrentRecoilDir; +var () TgObject.HitReactionMoveType m_MoveType; +var () RecoilInfo m_RecoilFromFront; +var () RecoilInfo m_RecoilFromBack; +var () RecoilInfo m_RecoilFromLeft; +var () RecoilInfo m_RecoilFromRight; +var () array m_SlaveSkelControlNames; +var transient array m_SlaveSkelControls; +var transient bool m_bInitialized; + +simulated event SetRecoilDir(TgObject.RecoilHitDir NewDir) { } + +simulated event SetRecoilParam() { } + +simulated function Vector VRandRange(Vector v1, Vector v2) { } + +simulated function RecoilDef GenRecoil(RecoilInfo RecoilParam) { } + +defaultproperties +{ + m_RecoilFromFront=(Min=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000)),Max=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000))) + m_RecoilFromBack=(Min=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000)),Max=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000))) + m_RecoilFromLeft=(Min=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000)),Max=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000))) + m_RecoilFromRight=(Min=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000)),Max=(TimeToGo=0.0000000,TimeDuration=0.3300000,RotAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),RotParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),RotOffset=(Pitch=0,Yaw=0,Roll=0),LocAmplitude=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocFrequency=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocSinOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000),LocParams=(X=ERS_Zero,Y=ERS_Zero,Z=ERS_Zero,Padding=0),LocOffset=(X=0.0000000,Y=0.0000000,Z=0.0000000))) + bIgnoreWhenNotRendered=true +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_HookChain.uc b/Development/Src/TgGame/Classes/TgSkelCon_HookChain.uc new file mode 100644 index 0000000..2536c4f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_HookChain.uc @@ -0,0 +1,14 @@ +class TgSkelCon_HookChain extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +const TGSKELCON_HOOKCHAIN_TOTALSEGMENTS = 72; + +const TGSKELCON_HOOKCHAIN_STARTOFFSET = 4; + +var float m_fBoneScales[72]; +var TgDeviceForm_Drag m_DragDeviceForm; +var export editinline TgSkeletalMeshComponent m_ChainComponent; + +simulated event float GetAngleToBone(int BoneIndex) { } diff --git a/Development/Src/TgGame/Classes/TgSkelCon_LookAt.uc b/Development/Src/TgGame/Classes/TgSkelCon_LookAt.uc new file mode 100644 index 0000000..265c409 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_LookAt.uc @@ -0,0 +1,9 @@ +class TgSkelCon_LookAt extends SkelControlLookAt + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var TgPawn m_Owner; +var (AI) bool m_bAimAtEnemyTarget; +var (LookAt) bool m_AlwaysInterpolateTarget; +var bool m_bHadTargetLastTick; diff --git a/Development/Src/TgGame/Classes/TgSkelCon_OscillateBoneScale.uc b/Development/Src/TgGame/Classes/TgSkelCon_OscillateBoneScale.uc new file mode 100644 index 0000000..53baf21 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_OscillateBoneScale.uc @@ -0,0 +1,16 @@ +class TgSkelCon_OscillateBoneScale extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var () float OscillationAmplitude; +var () float OscillationFrequency; +var () float OscillationBaseScale; +var transient float Theta; + +defaultproperties +{ + OscillationAmplitude=0.5000000 + OscillationFrequency=1.0000000 + OscillationBaseScale=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_OscillateRotation.uc b/Development/Src/TgGame/Classes/TgSkelCon_OscillateRotation.uc new file mode 100644 index 0000000..8e11571 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_OscillateRotation.uc @@ -0,0 +1,18 @@ +class TgSkelCon_OscillateRotation extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var () float OscillationAmplitude; +var () float OscillationFrequency; +var () Vector OscillationAxis; +var () SkelControlBase.EBoneControlSpace OscillationAxisSpace; +var () name OscillationAxisSpaceBoneName; +var transient float Theta; + +defaultproperties +{ + OscillationAmplitude=1.0000000 + OscillationFrequency=1.0000000 + OscillationAxis=(X=0.0000000,Y=0.0000000,Z=1.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_OscillateTranslation.uc b/Development/Src/TgGame/Classes/TgSkelCon_OscillateTranslation.uc new file mode 100644 index 0000000..f6e7973 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_OscillateTranslation.uc @@ -0,0 +1,18 @@ +class TgSkelCon_OscillateTranslation extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var () float OscillationAmplitude; +var () float OscillationFrequency; +var () Vector OscillationAxis; +var () SkelControlBase.EBoneControlSpace OscillationAxisSpace; +var () name OscillationAxisSpaceBoneName; +var transient float Theta; + +defaultproperties +{ + OscillationAmplitude=1.0000000 + OscillationFrequency=1.0000000 + OscillationAxis=(X=0.0000000,Y=0.0000000,Z=1.0000000) +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_RuckusSpinner.uc b/Development/Src/TgGame/Classes/TgSkelCon_RuckusSpinner.uc new file mode 100644 index 0000000..fad0b7f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_RuckusSpinner.uc @@ -0,0 +1,4 @@ +class TgSkelCon_RuckusSpinner extends TgSkelCon_Spinner + native(Anim) + hidecategories(Object,Object,Adjustments,Translation) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgSkelCon_SkinGate.uc b/Development/Src/TgGame/Classes/TgSkelCon_SkinGate.uc new file mode 100644 index 0000000..ac88fbb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_SkinGate.uc @@ -0,0 +1,20 @@ +class TgSkelCon_SkinGate extends SkelControlBase + native(Anim) + hidecategories(Object,Object) + config(Engine); + +struct SkelControlSkinGateChild { + var SkelControlBase SkelControl; + var () int nSkinId; + var () int nSkinLevel; + var editconst transient float DrawY; + structdefaultproperties {} +}; + +var SkelControlSkinGateChild DefaultChild; +var (Gate) array ChildControls; + +defaultproperties +{ + ControlStrength=0.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_Spinner.uc b/Development/Src/TgGame/Classes/TgSkelCon_Spinner.uc new file mode 100644 index 0000000..3914406 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_Spinner.uc @@ -0,0 +1,33 @@ +class TgSkelCon_Spinner extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object,Adjustments,Translation) + config(Engine); + +var (Spin) float m_fDegreesPerSecond; +var (Spin) Vector m_vAxis; +var (Spin) editoronly transient bool m_PreviewStartStop; +var bool m_bIsSpinning; +var bool m_bSpinningUp; +var bool m_bSpinningDown; +var bool m_bSpinDownToZero; +var (TargetRotation) bool m_bRotateToTargetRotation; +var (Spin) float m_fSpinUpTime; +var (Spin) float m_fSpinDownTime; +var float m_fCurrentDegreesPerSecond; +var (TargetRotation) Rotator m_TargetRotation; +var (TargetRotation) float m_TimeToInterpToTargetRotation; +var transient int m_nRotationSpeedState; +var (Spin) array m_fRotationSpeedStateMultipliers; + +native function Spin(bool bEnabled); // Export UTgSkelCon_Spinner::execSpin(FFrame&, void* const) + +native function SpinToTargetRotation(Rotator TargetRotation, optional float Time, optional bool bReset); // Export UTgSkelCon_Spinner::execSpinToTargetRotation(FFrame&, void* const) + +defaultproperties +{ + m_fDegreesPerSecond=180.0000000 + m_bSpinDownToZero=true + bApplyRotation=true + bAddRotation=true + BoneRotationSpace=BCS_ActorSpace +} diff --git a/Development/Src/TgGame/Classes/TgSkelCon_Spring.uc b/Development/Src/TgGame/Classes/TgSkelCon_Spring.uc new file mode 100644 index 0000000..5f7552f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelCon_Spring.uc @@ -0,0 +1,10 @@ +class TgSkelCon_Spring extends SkelControlLookAt + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var Vector m_vWorldSpaceGoal; +var (LookAt) Vector m_vInitialWorldSpaceGoalOffset; +var Vector m_vVelocity; +var (Spring) float m_fSpringStiffness; +var (Spring) float m_fSpringDamping; diff --git a/Development/Src/TgGame/Classes/TgSkelControlSingleBone.uc b/Development/Src/TgGame/Classes/TgSkelControlSingleBone.uc new file mode 100644 index 0000000..eb0e4eb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelControlSingleBone.uc @@ -0,0 +1,14 @@ +class TgSkelControlSingleBone extends SkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine) + dependson(TgPawn); + +var (Controller) bool SnapStrengthFromAnimNodes; +var (Widescreen) transient bool m_bIsWidescreen; +var (Controller) float SnapStrengthThreshold; +var (Controller) array StrengthEmoteList; +var transient array CachedEmoteSequences; +var (Widescreen) Vector m_WidescreenBoneTranslationOffset; +var (Widescreen) Rotator m_WidescreenBoneRotationOffset; +var (Widescreen) float m_WidescreenBoneScaleOffset; diff --git a/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Ammo.uc b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Ammo.uc new file mode 100644 index 0000000..0f96fef --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Ammo.uc @@ -0,0 +1,21 @@ +class TgSkelControlSingleBone_Ammo extends TgSkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var TgPawn m_PawnOwner; +var () bool m_bInvertStrengthFromAmmo; +var () float m_fFlatInterpolationRateDecrease; +var () float m_fInterpolationRateDecrease; +var () float m_fFlatInterpolationRateIncrease; +var () float m_fInterpolationRateIncrease; +var () int m_nMaxAmmoFallback; + +defaultproperties +{ + m_fFlatInterpolationRateDecrease=1.0000000 + m_fInterpolationRateDecrease=1.0000000 + m_fFlatInterpolationRateIncrease=1.0000000 + m_fInterpolationRateIncrease=1.0000000 + m_nMaxAmmoFallback=10 +} diff --git a/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Ammo_Lex.uc b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Ammo_Lex.uc new file mode 100644 index 0000000..8aff7f6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Ammo_Lex.uc @@ -0,0 +1,19 @@ +class TgSkelControlSingleBone_Ammo_Lex extends TgSkelControlSingleBone + native(AnimNodesLex) + hidecategories(Object,Object) + config(Engine); + +var TgPawn_Lex m_Lex; +var () bool m_bLeftGun; +var () float m_fFlatInterpolationRateDecrease; +var () float m_fInterpolationRateDecrease; +var () float m_fFlatInterpolationRateIncrease; +var () float m_fInterpolationRateIncrease; + +defaultproperties +{ + m_fFlatInterpolationRateDecrease=1.0000000 + m_fInterpolationRateDecrease=1.0000000 + m_fFlatInterpolationRateIncrease=1.0000000 + m_fInterpolationRateIncrease=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSkelControlSingleBone_DisplayGroup.uc b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_DisplayGroup.uc new file mode 100644 index 0000000..d86fed6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_DisplayGroup.uc @@ -0,0 +1,22 @@ +class TgSkelControlSingleBone_DisplayGroup extends TgSkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +enum DisplayGroupOnType { + DISPLAYGROUP_ON_INACTIVE, // 0 + DISPLAYGROUP_ON_ACTIVE, // 1 + DISPLAYGROUP_ON_STRENGTHABOVE, // 2 + DISPLAYGROUP_ON_STRENGTHBELOW, // 3 +}; + +struct DisplayGroupInfo { + var () name DisplayGroupName; + var () TgSkelControlSingleBone_DisplayGroup.DisplayGroupOnType WhenDisplayGroupOn; + var () float Strength; + var transient bool bOn; + var () bool ForceOffIfMeshHidden; + structdefaultproperties {} +}; + +var () export editinline array DisplayGroupInfos; diff --git a/Development/Src/TgGame/Classes/TgSkelControlSingleBone_PistonBarrel.uc b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_PistonBarrel.uc new file mode 100644 index 0000000..79e27e6 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_PistonBarrel.uc @@ -0,0 +1,16 @@ +class TgSkelControlSingleBone_PistonBarrel extends TgSkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +var float m_nDepressDistance; +var float m_nReturnSpeed; + +native function Depress(); // Export UTgSkelControlSingleBone_PistonBarrel::execDepress(FFrame&, void* const) + +defaultproperties +{ + m_nDepressDistance=15.0000000 + m_nReturnSpeed=100.0000000 + BoneTranslationSpace=BCS_BoneSpace +} diff --git a/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Skinned.uc b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Skinned.uc new file mode 100644 index 0000000..da8f148 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkelControlSingleBone_Skinned.uc @@ -0,0 +1,20 @@ +class TgSkelControlSingleBone_Skinned extends TgSkelControlSingleBone + native(Anim) + hidecategories(Object,Object) + config(Engine); + +struct SkinStrengthOverride { + var () int nSkinId; + var () float fDesiredStrength; + structdefaultproperties {} +}; + +var () float DefaultStrength; +var () export editinline array SkinOverrides; +var bool bInitializedStrength; +var transient float fSkinStrength; + +defaultproperties +{ + DefaultStrength=1.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor.uc new file mode 100644 index 0000000..64fa179 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor.uc @@ -0,0 +1,25 @@ +class TgSkeletalMeshActor extends SkeletalMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var MeshAssets c_MeshAssets; +var () bool c_bLoadMeshAssetts; + +native function bool AttachToSocket(Actor Attachment, name BoneName); // Export UTgSkeletalMeshActor::execAttachToSocket(FFrame&, void* const) + +native function TgSkeletalMeshComponent CreateSkeletalMeshComponent(int MeshAsmId, optional TgSkeletalMeshComponent DestComponent, optional bool bPartialFixup=false); // Export UTgSkeletalMeshActor::execCreateSkeletalMeshComponent(FFrame&, void* const) + +native function TgStaticMeshComponent CreateStaticMeshComponent(int MeshAsmId, optional TgStaticMeshComponent DestComponent); // Export UTgSkeletalMeshActor::execCreateStaticMeshComponent(FFrame&, void* const) + +native function MeshComponent CreateMeshComponent(int MeshAsmId, optional MeshComponent DestComponent, optional bool bPartialFixup=false); // Export UTgSkeletalMeshActor::execCreateMeshComponent(FFrame&, void* const) + +native function LoadClientOnlyMeshAssets(); // Export UTgSkeletalMeshActor::execLoadClientOnlyMeshAssets(FFrame&, void* const) + +function OnParentAnimComponent(TgSeqAct_ParentAnimComponent Action) { } + +function DoKismetAttachment(Actor Attachment, SeqAct_AttachToActor Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActorSpawnable.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActorSpawnable.uc new file mode 100644 index 0000000..4bcc9f3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActorSpawnable.uc @@ -0,0 +1,7 @@ +class TgSkeletalMeshActorSpawnable extends TgSkeletalMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_DestructibleTowerChunk.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_DestructibleTowerChunk.uc new file mode 100644 index 0000000..2eb7a9c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_DestructibleTowerChunk.uc @@ -0,0 +1,12 @@ +class TgSkeletalMeshActor_DestructibleTowerChunk extends TgSkeletalMeshActorSpawnable + hidecategories(Navigation) + config(Engine); + +var export editinline TgSkeletalMeshComponent TgSkeletalMeshComp; + +simulated function PlayDestruction(int MeshId, TgPawn_Tower OwningTower) { } + +event bool PlayParticleEffect(const AnimNotify_PlayParticleEffect AnimNotifyData) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_FlagStand.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_FlagStand.uc new file mode 100644 index 0000000..bf4da30 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_FlagStand.uc @@ -0,0 +1,19 @@ +class TgSkeletalMeshActor_FlagStand extends TgSkeletalMeshActor_Loader + native(Pawns) + hidecategories(Navigation,SkeletalMeshActor,TgSkeletalMeshActor) + autoexpandcategories(TgSkeletalMeshActor_Loader) + config(Engine); + +var string m_FlagContentDataClassName; +var transient TgFlagContentData m_FlagContentData; +var () int m_nGameTaskForce; +var () int m_nTeamIndex; + +native function ChangeTaskForceFlag(int nTaskForce, int nTeamIndex); // Export UTgSkeletalMeshActor_FlagStand::execChangeTaskForceFlag(FFrame&, void* const) + +simulated event PreBeginPlay() { } + +simulated function PostBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Leash.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Leash.uc new file mode 100644 index 0000000..967df20 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Leash.uc @@ -0,0 +1,14 @@ +class TgSkeletalMeshActor_Leash extends TgSkeletalMeshActorSpawnable + native(Pawns) + hidecategories(Navigation) + config(Engine); + +var export editinline SkeletalMeshComponent m_StartMesh; +var name m_StartBoneName; +var export editinline SkeletalMeshComponent m_EndMesh; +var name m_EndBoneName; +var SkelControlSingleBone m_StartControl; +var SkelControlSingleBone m_EndControl; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Loader.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Loader.uc new file mode 100644 index 0000000..463523a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Loader.uc @@ -0,0 +1,103 @@ +class TgSkeletalMeshActor_Loader extends TgSkeletalMeshActor + native(Pawns) + hidecategories(Navigation,SkeletalMeshActor,TgSkeletalMeshActor) + autoexpandcategories(TgSkeletalMeshActor_Loader) + implements(TgSkinnableInterface) + config(Engine) + dependson(TgObject); + +enum LobbyAnimPose { + LAP_Match, // 0 + LAP_Victory, // 1 + LAP_Defeat, // 2 + LAP_InGame, // 3 +}; + +var transient TgMenuMeshInfo m_PendingMeshInfo; +var transient TgMenuMeshInfo m_CurrentMeshInfo; +var export editinline TgManifestGroup c_AssetManifestGroup; +var native Pointer m_PendingBot; +var native Pointer m_PendingSkin; +var native Pointer m_PendingHead; +var native Pointer m_PendingDevice; +var native Pointer m_PendingDeviceSkin; +var transient TgSkeletalMeshActor_Loader.LobbyAnimPose m_PendingPose; +var transient TgSkeletalMeshActor_Loader.LobbyAnimPose m_CurrentPose; +var transient TgObject.EModelHighlightType m_HighlightType; +var native Pointer m_PendingMVPDevice; +var native Pointer m_CurrentBot; +var native Pointer m_CurrentSkin; +var native Pointer m_CurrentHead; +var native Pointer m_CurrentDevice; +var native Pointer m_CurrentDeviceSkin; +var native Pointer m_CurrentMVPDevice; +var transient bool m_bWaitingForTextures; +var transient bool m_bIsAsyncLoading; +var () bool m_bAllowOverlays; +var () bool m_bUsesPreviewMesh; +var (Lighting) bool m_bOverrideLightingChannels; +var int m_nAsyncLoadDelayTicksDefault; +var transient int m_nAsyncLoadDelayTicks; +var export editinline transient PointLightComponent m_PointLight; +var export editinline transient array m_ChildMeshes; +var export editinline transient array m_SkinMeshes; +var export editinline transient array m_HeadMeshes; +var export editinline transient array m_WeaponMeshes; +var export editinline transient LightEnvironmentComponent m_AlternateLightEnvironmentTemplate; +var export editinline transient array m_AlternateLightEnvironments; +var MaterialInterface m_OverlayMaterial; +var () export editinline TgCustomCharacterComponent m_CustomCharacterComponent; +var (Lighting) const LightingChannelContainer m_LightingChannels; +var transient array m_EmoteBlendNodes; +var transient array m_EmoteSequenceNodes; +var MaterialInstanceConstant NonHighlightMaterial; +var transient AnimSet m_EmoteAnimSet; +var transient AnimSet m_MVPAnimSet; +var transient float m_fMaterialAnimationValue; +var transient float m_fMaterialAnimationTarget; +var transient float m_fMaterialAnimationTimer; + +delegate OnMeshUpdated(); + +native function ResetAnims(); // Export UTgSkeletalMeshActor_Loader::execResetAnims(FFrame&, void* const) + +native function AllManifestsLoaded(); // Export UTgSkeletalMeshActor_Loader::execAllManifestsLoaded(FFrame&, void* const) + +native function SetActive(bool bActive); // Export UTgSkeletalMeshActor_Loader::execSetActive(FFrame&, void* const) + +native function CleanupForAssetSwap(optional bool bReset=true); // Export UTgSkeletalMeshActor_Loader::execCleanupForAssetSwap(FFrame&, void* const) + +native function ForceRecalculateMaterial(); // Export UTgSkeletalMeshActor_Loader::execForceRecalculateMaterial(FFrame&, void* const) + +native function RecalculateMaterial(bool bIsFriendlyWithLocalPawn, optional bool bForce); // Export UTgSkeletalMeshActor_Loader::execRecalculateMaterial(FFrame&, void* const) + +native function PlayLobbyAnim(TgObject.ELobbyAnimState NewAnimState); // Export UTgSkeletalMeshActor_Loader::execPlayLobbyAnim(FFrame&, void* const) + +native function PlayEmote(int nDeviceId); // Export UTgSkeletalMeshActor_Loader::execPlayEmote(FFrame&, void* const) + +native function StopEmote(); // Export UTgSkeletalMeshActor_Loader::execStopEmote(FFrame&, void* const) + +native function PlayMVP(int nDeviceId, bool bInstant); // Export UTgSkeletalMeshActor_Loader::execPlayMVP(FFrame&, void* const) + +native function StopMVP(); // Export UTgSkeletalMeshActor_Loader::execStopMVP(FFrame&, void* const) + +native function CancelEmote(optional bool bVerifyNoRelevantEmotes, optional TgAnimNodeEmoteSequence Exclude); // Export UTgSkeletalMeshActor_Loader::execCancelEmote(FFrame&, void* const) + +native function SetMaterialScalarParameterValue(name szParameterName, float fValue, optional bool bSkin=true, optional bool bHead=true, optional bool bWeapon=true); // Export UTgSkeletalMeshActor_Loader::execSetMaterialScalarParameterValue(FFrame&, void* const) + +simulated function PlayEmoteTimer() { } + +simulated event PlayMVPTimer() { } + +simulated event PreBeginPlay() { } + +simulated event BeginTransition(optional bool bPlayFx=false) { } + +simulated event EndTransition() { } + +event PlayChildAnim(TgSkeletalMeshComponent notifySource, name AnimSeqName) { } + +event bool PlayParticleEffect(const AnimNotify_PlayParticleEffect AnimNotifyData) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Lobby.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Lobby.uc new file mode 100644 index 0000000..50bc1c8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Lobby.uc @@ -0,0 +1,73 @@ +class TgSkeletalMeshActor_Lobby extends TgSkeletalMeshActor_LobbyBase + native(Pawns) + hidecategories(Navigation,SkeletalMeshActor,TgSkeletalMeshActor,SkeletalMeshActor,TgSkeletalMeshActor) + autoexpandcategories(TgSkeletalMeshActor_Loader,TgSkeletalMeshActor_Lobby) + config(Engine) + dependson(TgPawn); + +enum LobbyMeterBusIntent { + LMB_RUCKUSGEM, // 0 +}; + +struct LobbySMAMeterBus { + var dword dwBusID; + var TgSkeletalMeshActor_Lobby.LobbyMeterBusIntent eIntent; + structdefaultproperties {} +}; + +var float m_fSpawnOffsetYaw; +var float m_fMaxSpawnRotation; +var float m_fMinSpawnRotation; +var () bool m_bAdjustMeshToGround; +var () bool m_bCanBeRotated; +var (Posture) bool m_bEnablePostures; +var transient int m_CardMICBotIdPending; +var transient float m_CardMICTransitionDesiredAlpha; +var transient float m_CardMICTransitionAlpha; +var () TgSkeletalMeshActor_FlagStand m_FlagStandActor; +var () TgSkeletalMeshActor_Pedestal m_PedestalActor; +var () array m_CardMICs; +var array m_MeshReplacementMICs; +var array m_MeterBusses; +var (Posture) repnotify TgPawn.TG_POSTURE r_CurrentPosture; +var transient float m_fRotationAmount; +var transient float m_fDesiredRotationAmount; +var transient Rotator m_rOriginalRotation; +var transient float m_fSelectionGlowRemainingTime; +var float m_fSelectionGlowTotalTime; +var transient array m_PostureBlendNodes; + +native function SetActive(bool bActive); // Export UTgSkeletalMeshActor_Lobby::execSetActive(FFrame&, void* const) + +native function RotateModel(float fValue, optional bool bSnap=false); // Export UTgSkeletalMeshActor_Lobby::execRotateModel(FFrame&, void* const) + +native function AdjustMeshToGround(); // Export UTgSkeletalMeshActor_Lobby::execAdjustMeshToGround(FFrame&, void* const) + +native function AllManifestsLoaded(); // Export UTgSkeletalMeshActor_Lobby::execAllManifestsLoaded(FFrame&, void* const) + +native function ReplaceMaterialInstances(); // Export UTgSkeletalMeshActor_Lobby::execReplaceMaterialInstances(FFrame&, void* const) + +native function TeardownMeterBusses(); // Export UTgSkeletalMeshActor_Lobby::execTeardownMeterBusses(FFrame&, void* const) + +simulated event ReplicatedEvent(name VarName) { } + +simulated event PreBeginPlay() { } + +simulated event PostBeginPlay() { } + +simulated event EndTransition() { } + +simulated event Destroyed() { } + +function float GetSpawnRotation() { } + +event PostInitAnimTree(SkeletalMeshComponent SkelComp) { } + +simulated event InitPostureNodes() { } + +simulated function SetActivePosture(TgPawn.TG_POSTURE Posture) { } + +simulated event OnSetSkelPosture(TgSeqAct_SetSkelPosture Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_LobbyBase.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_LobbyBase.uc new file mode 100644 index 0000000..ab13ff3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_LobbyBase.uc @@ -0,0 +1,24 @@ +class TgSkeletalMeshActor_LobbyBase extends TgSkeletalMeshActor_Loader + abstract + native(Pawns) + hidecategories(Navigation,SkeletalMeshActor,TgSkeletalMeshActor) + autoexpandcategories(TgSkeletalMeshActor_Loader) + config(Engine); + +var transient bool m_bPlayTransitionOutro; +var string m_TransitionActorClassName; +var transient int m_nCharacterMastery; +var transient TgMenuTransitionActor m_TransitionActor; + +simulated event PreBeginPlay() { } + +simulated event PostBeginPlay() { } + +simulated event BeginTransition(optional bool bPlayFx=false) { } + +simulated event EndTransition() { } + +simulated event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Pedestal.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Pedestal.uc new file mode 100644 index 0000000..f36c931 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Pedestal.uc @@ -0,0 +1,18 @@ +class TgSkeletalMeshActor_Pedestal extends TgSkeletalMeshActor_Lobby + native(Pawns) + hidecategories(Navigation,SkeletalMeshActor,TgSkeletalMeshActor,SkeletalMeshActor,TgSkeletalMeshActor) + autoexpandcategories(TgSkeletalMeshActor_Loader,TgSkeletalMeshActor_Lobby) + config(Engine) + dependson(TgObject, TgSkeletalMeshActor_Loader); + +var native transient Pointer m_DefaultBot; +var (Pedestal) array m_DefaultPedestalActors; +var transient bool m_bUsingDefaultPedestal; +var () TgObject.EPedestalType m_PedestalType; + +native function SwitchToDefaultPedestal(optional TgSkeletalMeshActor_Loader.LobbyAnimPose animPose=0); // Export UTgSkeletalMeshActor_Pedestal::execSwitchToDefaultPedestal(FFrame&, void* const) + +simulated event EndTransition() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Posture.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Posture.uc new file mode 100644 index 0000000..73e81d7 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshActor_Posture.uc @@ -0,0 +1,26 @@ +class TgSkeletalMeshActor_Posture extends SkeletalMeshActor + hidecategories(Navigation) + config(Engine) + dependson(TgPawn); + +var (Posture) repnotify TgPawn.TG_POSTURE r_CurrentPosture; +var transient array m_PostureBlendNodes; + +replication { + if(int(Role) == int(ENetRole.ROLE_Authority)) r_CurrentPosture; +} + +simulated function PostBeginPlay() { } + +simulated event ReplicatedEvent(name VarName) { } + +simulated function SetActivePosture(TgPawn.TG_POSTURE Posture) { } + +event PostInitAnimTree(SkeletalMeshComponent SkelComp) { } + +simulated function InitPostureNodes() { } + +simulated event OnSetSkelPosture(TgSeqAct_SetSkelPosture Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshComponent.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent.uc new file mode 100644 index 0000000..7db2a54 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent.uc @@ -0,0 +1,84 @@ +class TgSkeletalMeshComponent extends SkeletalMeshComponent + native(Pawns) + editinlinenew + hidecategories(Object) + config(Engine); + +struct AnimNotifyParticleCacheEntry { + var bool bCached; + var AnimNotify_PlayParticleEffect Notify; + var export editinline ParticleSystemComponent PSC; + structdefaultproperties {} +}; + +var bool c_bFxApplied; +var bool c_bIsFemale; +var array c_FxList; +var array c_DatabaseFxList; +var int m_nAssemblyId; +var Vector FPCTranslation; +var Rotator FPCRotation; +var Vector FPCScale; +var int c_AudioGroupId; +var int c_nForceUpdateAttachmentsInTick; +var export editinline array c_HeadShotComponents; +var init transient array AnimNotifyPlayParticleEffectEntries; + +native function InitRagdoll(); // Export UTgSkeletalMeshComponent::execInitRagdoll(FFrame&, void* const) + +native function EndRagdoll(); // Export UTgSkeletalMeshComponent::execEndRagdoll(FFrame&, void* const) + +native function FxAdd(Object Fx); // Export UTgSkeletalMeshComponent::execFxAdd(FFrame&, void* const) + +native function FxRemove(Object Fx); // Export UTgSkeletalMeshComponent::execFxRemove(FFrame&, void* const) + +native function Object FxGet(name nmGroup, int nMode, optional int nIndex, optional int nSocketIndex, optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxGet(FFrame&, void* const) + +native function array FxGetAll(name nmGroup, int nMode, optional int nIndex, optional int nSocketIndex, optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxGetAll(FFrame&, void* const) + +native function Object FxActivateGroup(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgSkeletalMeshComponent::execFxActivateGroup(FFrame&, void* const) + +native function FxDeactivateGroup(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxDeactivateGroup(FFrame&, void* const) + +native function FxDeactivateAll(optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxDeactivateAll(FFrame&, void* const) + +native function FxSpawnTracer(name nmGroup, int nMode, Vector HitLocation, optional int nSocketIndex, optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxSpawnTracer(FFrame&, void* const) + +native function FxSpawnEmitter(name nmGroup, int nMode, Vector HitLocation, Vector HitNormal, optional int nSocketIndex, optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxSpawnEmitter(FFrame&, void* const) + +native function FxSpawnSound(name nmGroup, int nMode, Vector SoundLocation, optional int nSocketIndex, optional int nEquipSlot); // Export UTgSkeletalMeshComponent::execFxSpawnSound(FFrame&, void* const) + +native function Object FxActivateIndependant(name nmGroup, int nMode, Vector HitLocation, Vector HitNormal, optional int nSocketIndex, optional int nEquipSlot, optional bool bUseSocketOverride=true, optional array Params); // Export UTgSkeletalMeshComponent::execFxActivateIndependant(FFrame&, void* const) + +native function SetDefaultSkin(int nIndex); // Export UTgSkeletalMeshComponent::execSetDefaultSkin(FFrame&, void* const) + +native function MaterialInterface GetDefaultMaterial(int nIndex); // Export UTgSkeletalMeshComponent::execGetDefaultMaterial(FFrame&, void* const) + +native function SwapMaterial(MaterialInterface MI, optional bool bNoParamReaping); // Export UTgSkeletalMeshComponent::execSwapMaterial(FFrame&, void* const) + +native function float GetCurrentDeployPercentage(); // Export UTgSkeletalMeshComponent::execGetCurrentDeployPercentage(FFrame&, void* const) + +native function ActivateOnWhenDeployedFx(bool bOn); // Export UTgSkeletalMeshComponent::execActivateOnWhenDeployedFx(FFrame&, void* const) + +native function ActivateWhileAliveFx(bool bOn, optional name nmDisplayGroup); // Export UTgSkeletalMeshComponent::execActivateWhileAliveFx(FFrame&, void* const) + +native function RecalculateFx(); // Export UTgSkeletalMeshComponent::execRecalculateFx(FFrame&, void* const) + +native function OnMeshSetHidden(bool bHidden); // Export UTgSkeletalMeshComponent::execOnMeshSetHidden(FFrame&, void* const) + +native function AnimTree GetAnimTree(); // Export UTgSkeletalMeshComponent::execGetAnimTree(FFrame&, void* const) + +native function SetForceUpdateAttachmentsInTick(bool bSet); // Export UTgSkeletalMeshComponent::execSetForceUpdateAttachmentsInTick(FFrame&, void* const) + +function bool GetAnimNotifyParticleCacheEntryFor(const AnimNotify_PlayParticleEffect AnimNotifyData, out AnimNotifyParticleCacheEntry CacheEntry) { } + +function ParticleSystemComponent GetPSCForPlayParticleEffect(const AnimNotify_PlayParticleEffect AnimNotifyData) { } + +function CachePSC(ParticleSystemComponent PSC, AnimNotifyParticleCacheEntry CacheEntry, const AnimNotify_PlayParticleEffect AnimNotifyData) { } + +defaultproperties +{ + c_nOverrideSkinId=-1 + c_nOverrideSkinLevel=-1 + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_Weapon.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_Weapon.uc new file mode 100644 index 0000000..38f3c9a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_Weapon.uc @@ -0,0 +1,54 @@ +class TgSkeletalMeshComponent_Weapon extends TgSkeletalMeshComponent + native(Pawns) + editinlinenew + hidecategories(Object) + config(Engine); + +var const name m_nmFire; +var const name m_nmFireLoop; +var const name m_nmFireLoopTailSound; +var bool m_bDoNotPlayFireParticlesIfHidden; +var const bool m_bKillFiringLoopParticlesOnHidden; +var const bool m_bCanPlayFireParticles; +var const bool m_bCanPlayFireLoopParticles; +var const bool m_bCanPlayFireSounds; +var const bool m_bCanPlayFireLoopSounds; +var const int m_nFireLoopActiveBitMask; + +native function CompleteInitialization(); // Export UTgSkeletalMeshComponent_Weapon::execCompleteInitialization(FFrame&, void* const) + +native function SetFireDisplayGroup(name nmFire); // Export UTgSkeletalMeshComponent_Weapon::execSetFireDisplayGroup(FFrame&, void* const) + +native function SetFireLoopDisplayGroup(name nmFire, name nmFireLoopTail); // Export UTgSkeletalMeshComponent_Weapon::execSetFireLoopDisplayGroup(FFrame&, void* const) + +native function SetCanPlayParticleFlags(bool bFire, bool bFireLoop, bool bDoNotPlayIfHidden); // Export UTgSkeletalMeshComponent_Weapon::execSetCanPlayParticleFlags(FFrame&, void* const) + +native function SetCanPlaySoundFlags(bool bFire, bool bFireLoop); // Export UTgSkeletalMeshComponent_Weapon::execSetCanPlaySoundFlags(FFrame&, void* const) + +native function PlayFire(optional int nEquipSlot=1, optional int nFireMode); // Export UTgSkeletalMeshComponent_Weapon::execPlayFire(FFrame&, void* const) + +native function StopFire(optional bool bForce, optional int nEquipSlot, optional int nFireMode); // Export UTgSkeletalMeshComponent_Weapon::execStopFire(FFrame&, void* const) + +native function bool IsFireLoopActive(optional int nEquipSlot=1, optional int nFireMode); // Export UTgSkeletalMeshComponent_Weapon::execIsFireLoopActive(FFrame&, void* const) + +native function bool IsFireLoopActivated(optional int nEquipSlot=1); // Export UTgSkeletalMeshComponent_Weapon::execIsFireLoopActivated(FFrame&, void* const) + +native function GetAllFireLoopParticleSystemComponents(out array FireLoopParticles, optional int nEquipSlot=1, optional int nFireMode); // Export UTgSkeletalMeshComponent_Weapon::execGetAllFireLoopParticleSystemComponents(FFrame&, void* const) + +native function PlayFireLoop(optional int nEquipSlot=1, optional int nFireMode); // Export UTgSkeletalMeshComponent_Weapon::execPlayFireLoop(FFrame&, void* const) + +native function StopFireLoop(optional int nEquipSlot=1, optional int nFireMode); // Export UTgSkeletalMeshComponent_Weapon::execStopFireLoop(FFrame&, void* const) + +defaultproperties +{ + m_nmFire="Fire" + m_nmFireLoop="FireLoop" + m_nmFireLoopTailSound="FireLoopTailSound" + m_bDoNotPlayFireParticlesIfHidden=true + m_bCanPlayFireParticles=true + m_bCanPlayFireLoopParticles=true + LowUpdateFrameRate=0 + AnimationLODFrameRate=0 + bUseTickOptimization=false + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_WeaponFirstPerson.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_WeaponFirstPerson.uc new file mode 100644 index 0000000..5351c85 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_WeaponFirstPerson.uc @@ -0,0 +1,16 @@ +class TgSkeletalMeshComponent_WeaponFirstPerson extends TgSkeletalMeshComponent_Weapon + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + m_bCanPlayFireSounds=true + m_bCanPlayFireLoopSounds=true + bOverrideAttachmentOwnerVisibility=true + bOverrideAttachmentDepthPriorityGroup=true + ReplacementPrimitive=none + DepthPriorityGroup=SDPG_Foreground + bOnlyOwnerSee=true + TickGroup=TG_DuringAsyncWork +} diff --git a/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_WeaponFirstPersonLance.uc b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_WeaponFirstPersonLance.uc new file mode 100644 index 0000000..56179be --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkeletalMeshComponent_WeaponFirstPersonLance.uc @@ -0,0 +1,10 @@ +class TgSkeletalMeshComponent_WeaponFirstPersonLance extends TgSkeletalMeshComponent_WeaponFirstPerson + editinlinenew + hidecategories(Object) + config(Engine); + +defaultproperties +{ + bOverrideAttachmentDepthPriorityGroup=false + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSkinnableInterface.uc b/Development/Src/TgGame/Classes/TgSkinnableInterface.uc new file mode 100644 index 0000000..39892ff --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSkinnableInterface.uc @@ -0,0 +1 @@ +interface TgSkinnableInterface extends Interface; diff --git a/Development/Src/TgGame/Classes/TgSoundGroup.uc b/Development/Src/TgGame/Classes/TgSoundGroup.uc new file mode 100644 index 0000000..26911d3 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSoundGroup.uc @@ -0,0 +1,27 @@ +class TgSoundGroup extends Object + native(FX) + config(Engine); + +enum eTG_SOUNDS { + TGS_FOOTSTEP, // 0 + TGS_DODGE, // 1 + TGS_JUMP, // 2 + TGS_LAND, // 3 + TGS_DOUBLEJUMP, // 4 + TGS_DOUBLELAND, // 5 + TGS_DYING, // 6 + TGS_HIT, // 7 +}; + +struct FootstepSoundInfo { + var name MaterialType; + var SoundCue Sound; + structdefaultproperties {} +}; + +var const array c_SoundCues; +var const array c_FootstepSounds; + +function PlaySound(TgSoundGroup.eTG_SOUNDS eSound, Pawn P) { } + +function PlayFootStepSound(Pawn P, int FootDown, name MaterialType) { } diff --git a/Development/Src/TgGame/Classes/TgSoundInsulationVolume.uc b/Development/Src/TgGame/Classes/TgSoundInsulationVolume.uc new file mode 100644 index 0000000..6b8d015 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSoundInsulationVolume.uc @@ -0,0 +1,7 @@ +class TgSoundInsulationVolume extends ReverbVolume + dontsortcategories(ReverbVolume) + hidecategories(Navigation,Object,Movement,Display,Advanced,Attachment,Volume,Toggle) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSoundNodeAttenuation.uc b/Development/Src/TgGame/Classes/TgSoundNodeAttenuation.uc new file mode 100644 index 0000000..50bfba0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSoundNodeAttenuation.uc @@ -0,0 +1,6 @@ +class TgSoundNodeAttenuation extends SoundNodeAttenuation + native + editinlinenew + dontsortcategories(Attenuation,LowPassFilter) + hidecategories(Object,Object) + config(Engine); diff --git a/Development/Src/TgGame/Classes/TgSpawnGate.uc b/Development/Src/TgGame/Classes/TgSpawnGate.uc new file mode 100644 index 0000000..6586bb1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpawnGate.uc @@ -0,0 +1,30 @@ +class TgSpawnGate extends DynamicBlockingVolume + native(Volumes) + hidecategories(Navigation,Object,Display) + config(Engine); + +enum ESpawnGateType { + SPGT_Standard, // 0 + SPGT_Attackers, // 1 + SPGT_Defenders, // 2 +}; + +var () TgSpawnGate.ESpawnGateType m_eSpawnGateType; +var () Emitter m_StandardEmitter; +var () TgEmitter_TeamColor m_TeamColoredEmitter; +var () bool m_bStartActive; +var bool m_bGateOpen; +var () int m_nCurrentTaskforce; + +native function int GetCurrentTaskforce(); // Export UTgSpawnGate::execGetCurrentTaskforce(FFrame&, void* const) + +simulated function PostBeginPlay() { } + +simulated function Activate() { } + +simulated function Deactivate() { } + +simulated function ToggleTeamColors() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSpawnTeleporterEntrance.uc b/Development/Src/TgGame/Classes/TgSpawnTeleporterEntrance.uc new file mode 100644 index 0000000..9cb74db --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpawnTeleporterEntrance.uc @@ -0,0 +1,31 @@ +class TgSpawnTeleporterEntrance extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +const ENEMY_DISTANCE_RADIUS = 800.0f; + +struct ExitInfo { + var TgSpawnTeleporterExit Exit; + var float Rating; + var bool bEnemyHasLOS; + var bool bIsOpenSpot; + structdefaultproperties {} +}; + +var () bool bEnabled; + +function int CompareExitInfo(ExitInfo EI1, ExitInfo EI2) { } + +function bool CanTeleport(Actor Other) { } + +function ExitInfo FindExit(TgPawn TgP, out array Exits) { } + +function TeleportToExit(TgPawn TgP, TgSpawnTeleporterEntrance From, ExitInfo To) { } + +simulated function Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated function OnToggle(SeqAct_Toggle Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSpawnTeleporterExit.uc b/Development/Src/TgGame/Classes/TgSpawnTeleporterExit.uc new file mode 100644 index 0000000..eaac443 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpawnTeleporterExit.uc @@ -0,0 +1,28 @@ +class TgSpawnTeleporterExit extends Actor + native(Navigation) + placeable + hidecategories(Navigation) + config(Engine); + +const TGSPAWNTELEPORTEREXIT_TARGETHEIGHT = 128; + +var () int nTaskForce; +var () int nLane; +var () int nGamePhase; +var () int nPriority; +var () bool bEnabled; + +native function bool HasRoomForPawn(TgPawn TgP); // Export UTgSpawnTeleporterExit::execHasRoomForPawn(FFrame&, void* const) + +native simulated function vector GetTargetLocation(optional actor RequestedBy, optional bool bRequestAlternateLoc); // Export UTgSpawnTeleporterExit::execGetTargetLocation(FFrame&, void* const) + +simulated function OnToggle(SeqAct_Toggle Action) { } + +function bool PawnCanUse(TgPawn TgP) { } + +defaultproperties +{ + bEnabled=true + Components[0]=none + Components[1]=none +} diff --git a/Development/Src/TgGame/Classes/TgSpecialFx.uc b/Development/Src/TgGame/Classes/TgSpecialFx.uc new file mode 100644 index 0000000..c2b6dda --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpecialFx.uc @@ -0,0 +1,281 @@ +class TgSpecialFx extends Object + native(FX) + config(Engine); + +const TGFXP_SCALAR = 299; + +const TGFXP_VECTOR = 300; + +const TGFXP_COLOR = 301; + +const TGFXP_TEXTURE = 307; + +const TGFXT_NO_PRIORITY = 0; + +const TGFXT_PRIORITY_SHIELD = 625; + +const TGFXT_PRIORITY_STEALTH = 626; + +const TGFXT_PRIORITY_STEALTH_DETECTION = 627; + +const TGFXT_PRIORITY_FLAME = 838; + +const TGFXT_PRIORITY_SPAWN_SORTORDER = 15; + +const TGFXMAT_GENERIC = 615; + +const TGFXMAT_HAIR = 616; + +const TGFXMAT_HEAD = 617; + +const TGFXMAT_BODY = 618; + +const TGFXMAT_WEAPON = 16600; + +const FX_SCALE_BY_DAMAGE = 745; + +const FX_SCALE_BY_RADIUS = 746; + +const FX_SCALE_ABSOLUTE = 10677; + +const FX_SCALE_BY_RADIUS_SQUARED = 1023; + +enum ELightFxState { + LFX_UNMANAGED, // 0 + LFX_ACTIVE, // 1 + LFX_KILLEDBYMGR, // 2 + LFX_DYING, // 3 + LFX_INACTIVE, // 4 +}; + +enum EManagedDecalState { + DecalState_Inactive, // 0 + DecalState_Active, // 1 + DecalState_FadingOut, // 2 +}; + +struct Fx_Material { + var int nFxMatId; + var MaterialInstanceTimeVarying c_MITV; + var int nFxMatTypeCode; + var name nmMIC; + var bool bApplyIfSameTeam; + structdefaultproperties {} +}; + +struct Fx_AssemblyData { + var name m_nmSocketName; + var name m_nmDisplayGroup; + var int m_nDisplayMode; + var int m_nSpecialFxId; + var int m_nIndex; + var int m_nEquipmentSlot; + var bool m_bAppliesToAllModes; + var bool m_bAttachToGround; + structdefaultproperties {} +}; + +struct Fx_PSC { + var int c_nId; + var export editinline ParticleSystemComponent c_PSC; + var const ParticleSystem c_PSCTemplate; + var float c_fScale; + var int c_nScaleType; + var bool c_bRunning; + var name c_nmSocketDisplayGrp; + var name c_nmSocket; + var TgEmitter_CameraEffect c_pCameraEffect; + structdefaultproperties {} +}; + +struct Fx_Sound { + var int c_nId; + var AkBaseSoundObject c_SoundObject; + var export editinline AudioComponent c_acSound; + var bool c_bAllowSoundToFinishFlag; + var bool c_bCanHearThroughStealth; + var bool c_bForceAudioComponent; + var AkEvent c_AkEvent; + structdefaultproperties {} +}; + +struct Fx_Decal { + var int c_nId; + var MaterialInstanceTimeVarying c_MITV; + var float c_fWidth; + var float c_fHeight; + var float c_fThickness; + var bool c_bNoClip; + var bool c_bAttach; + var export editinline DecalComponent c_Decal; + var float c_fLifetime; + var float c_fFadeOutTime; + var TgSpecialFx.EManagedDecalState c_eState; + var float c_fHideAtTimeSeconds; + structdefaultproperties {} +}; + +var int c_nFxId; +var export editinline MeshComponent c_OwnerMesh; +var Actor c_Owner; +var bool c_bAttached; +var bool c_bAppliesToAllModes; +var bool c_bSelfManage; +var bool c_bFromEffectForm; +var bool c_bVisualComplete; +var bool c_bAudioComplete; +var bool c_bMuteSound; +var bool c_bIsDebuff; +var bool c_bHasTeamMaterials; +var bool c_bActive; +var bool c_bIsSpawnFx; +var bool c_bUseBeam; +var bool c_bLifetimeManagedExternally; +var init bool c_bLocalPawnIsOwner; +var bool m_bMatLoaded; +var bool m_bMatLoadedFriendly; +var bool m_bMatLoadedLocal; +var bool m_bDecalMatLoaded; +var bool m_bDecalMatLoadedFriendly; +var bool m_bDecalMatLoadedLocal; +var int c_nPriorityType; +var int c_nPrioritySort; +var name c_nmSocket; +var name c_nmDisplayGroup; +var int c_nDisplayMode; +var int c_nIndex; +var int c_nEquipSlot; +var MaterialInstanceConstant c_MIC; +var float c_fTransition; +var int c_nHitEffectBase; +var float c_fMaxEffectDistance; +var ParticleChannelContainer c_ParticleChannelOverride; +var int c_nSortPriorityOverride; +var TgSpecialFx.ELightFxState c_LightComponentState; +var init export editinline LightComponent c_LightComponent; +var init Pointer c_ManagedLightEmitter; +var init array c_SoundList; +var init array c_PSCList; +var init array c_MaterialList; +var init array c_DecalList; +var TgCameraShake c_CameraShake; +var TgTimerManager c_ActiveTimer; + +native function AttachToOwner(optional Actor pOwner); // Export UTgSpecialFx::execAttachToOwner(FFrame&, void* const) + +native function Detach(); // Export UTgSpecialFx::execDetach(FFrame&, void* const) + +native function Vector GetEffectLocation(); // Export UTgSpecialFx::execGetEffectLocation(FFrame&, void* const) + +native function MeshComponent GetOwnerMesh(Actor pOwner); // Export UTgSpecialFx::execGetOwnerMesh(FFrame&, void* const) + +native function ActivateLocalPlayerFx(ParticleSystemComponent ActivePSC); // Export UTgSpecialFx::execActivateLocalPlayerFx(FFrame&, void* const) + +native function SetPSCChannels(ParticleSystemComponent PSC, optional bool bOnlyAllowNonZeroMask=false, optional ParticleSystem Template); // Export UTgSpecialFx::execSetPSCChannels(FFrame&, void* const) + +native function Actor SpawnActor(Class InClass, Vector Location, Rotator Rotation); // Export UTgSpecialFx::execSpawnActor(FFrame&, void* const) + +native function SetActiveTime(float Duration, TgPawn Owner); // Export UTgSpecialFx::execSetActiveTime(FFrame&, void* const) + +native function OnActiveTimeExpired(); // Export UTgSpecialFx::execOnActiveTimeExpired(FFrame&, void* const) + +native function AdjustHidden(bool bHidden); // Export UTgSpecialFx::execAdjustHidden(FFrame&, void* const) + +native function SetHidden(bool bNewHidden); // Export UTgSpecialFx::execSetHidden(FFrame&, void* const) + +native function bool ShouldShowWhenStealthed(); // Export UTgSpecialFx::execShouldShowWhenStealthed(FFrame&, void* const) + +native function PlaySoundAt(Vector Location); // Export UTgSpecialFx::execPlaySoundAt(FFrame&, void* const) + +native function ResetParticles(optional bool bResetInstances=false); // Export UTgSpecialFx::execResetParticles(FFrame&, void* const) + +native function bool AreAnyPSCRunning(); // Export UTgSpecialFx::execAreAnyPSCRunning(FFrame&, void* const) + +native function SetPSCRunning(ParticleSystemComponent pPSC, bool bOn); // Export UTgSpecialFx::execSetPSCRunning(FFrame&, void* const) + +native function bool AreAnySoundsPlaying(); // Export UTgSpecialFx::execAreAnySoundsPlaying(FFrame&, void* const) + +native function UpdateSoundPlaying(AudioComponent pacSound); // Export UTgSpecialFx::execUpdateSoundPlaying(FFrame&, void* const) + +native function SpawnEmitter(Vector HitLocation, Vector HitNormal, optional float fScale, optional array Params); // Export UTgSpecialFx::execSpawnEmitter(FFrame&, void* const) + +native function SpawnSound(Vector Location); // Export UTgSpecialFx::execSpawnSound(FFrame&, void* const) + +native function SpawnDecalAt(Vector HitLocation, Vector HitNormal, optional float DecalRotation=-1.0000000, optional float Scale=1.0000000); // Export UTgSpecialFx::execSpawnDecalAt(FFrame&, void* const) + +native function PlayCameraShake(Vector Epicenter); // Export UTgSpecialFx::execPlayCameraShake(FFrame&, void* const) + +native function SetHitEffectScaleBasedOnDamage(int nHealthChange); // Export UTgSpecialFx::execSetHitEffectScaleBasedOnDamage(FFrame&, void* const) + +native function bool IsFxRelevant(Vector SpawnLocation); // Export UTgSpecialFx::execIsFxRelevant(FFrame&, void* const) + +native function TgPlayerController FindLocalPlayerController(); // Export UTgSpecialFx::execFindLocalPlayerController(FFrame&, void* const) + +native function TgPawn FindLocalPlayerPawn(); // Export UTgSpecialFx::execFindLocalPlayerPawn(FFrame&, void* const) + +native function AdjustEffectRadius(int nPSCIndex, float fScale); // Export UTgSpecialFx::execAdjustEffectRadius(FFrame&, void* const) + +native function AdjustFxScaleByRadius(float fScale); // Export UTgSpecialFx::execAdjustFxScaleByRadius(FFrame&, void* const) + +native function AdjustEffectScale(int nPSCIndex, optional float fScale); // Export UTgSpecialFx::execAdjustEffectScale(FFrame&, void* const) + +native function AdjustEffectFOV(float NewFOV); // Export UTgSpecialFx::execAdjustEffectFOV(FFrame&, void* const) + +native function float Activate(optional Vector HitLocation, optional bool bSkipRelevantChecking=false); // Export UTgSpecialFx::execActivate(FFrame&, void* const) + +native function Deactivate(bool bForceDeactivate); // Export UTgSpecialFx::execDeactivate(FFrame&, void* const) + +native function OnParticleSystemFinished(ParticleSystemComponent FinishedComponent); // Export UTgSpecialFx::execOnParticleSystemFinished(FFrame&, void* const) + +native function OnAudioFinishedFX(AudioComponent FinishedComponent); // Export UTgSpecialFx::execOnAudioFinishedFX(FFrame&, void* const) + +native function CheckDeactivate(); // Export UTgSpecialFx::execCheckDeactivate(FFrame&, void* const) + +native function PlaySound(); // Export UTgSpecialFx::execPlaySound(FFrame&, void* const) + +native function StopSound(); // Export UTgSpecialFx::execStopSound(FFrame&, void* const) + +native function ActivateDecal(out Fx_Decal Decal); // Export UTgSpecialFx::execActivateDecal(FFrame&, void* const) + +native function DeactivateDecal(out Fx_Decal Decal); // Export UTgSpecialFx::execDeactivateDecal(FFrame&, void* const) + +native function bool InitDecalFadeOut(out Fx_Decal Decal); // Export UTgSpecialFx::execInitDecalFadeOut(FFrame&, void* const) + +native function UpdateHiddenDecals(optional bool bClearAll=false); // Export UTgSpecialFx::execUpdateHiddenDecals(FFrame&, void* const) + +native function ParticleChannelContainer GetLocalPlayerPSCChannels(ParticleSystemComponent ActivePSC, optional ParticleSystem Template); // Export UTgSpecialFx::execGetLocalPlayerPSCChannels(FFrame&, void* const) + +native function OverridePSCChannels(ParticleChannelContainer PSysChannels); // Export UTgSpecialFx::execOverridePSCChannels(FFrame&, void* const) + +native function SkeletalMeshComponent FindMeshWithSocket(name nmSocket, SkeletalMeshComponent first, Actor Second, out name BoneName, out Vector RelativeLocation, out Rotator RelativeRotation, out Vector RelativeScale); // Export UTgSpecialFx::execFindMeshWithSocket(FFrame&, void* const) + +function bool HasSoundCue() { } + +function Actor GetHitActor(Vector EffectLocation, Vector HitLocation) { } + +event SpawnTracer(Vector HitLocation, optional Vector HitOrigin=vect(0.0000000, 0.0000000, 0.0000000)) { } + +event DecalComponent SpawnDecal(WorldInfo WorldInfo, out Fx_Decal Decal, bool bUsePool, optional Vector SpawnLocation, optional Rotator SpawnRotation, optional float DecalRotation=-1.0000000, optional float Scale=1.0000000) { } + +event UpdateBeamFx(Vector HitLocation, optional Vector HitOrigin=vect(0.0000000, 0.0000000, 0.0000000), optional Actor targetOverride) { } + +function ListSounds() { } + +function SetKillOnDeactivate() { } + +event SetDepthPriorityGroup(Scene.ESceneDepthPriorityGroup NewDepthPriorityGroup) { } + +function float CalculateOrientedDecalRotation(Vector HitLocation, Vector HitNormal, Vector DecalOrientationDirection) { } + +native function bool IsFriendly(); // Export UTgSpecialFx::execIsFriendly(FFrame&, void* const) + +native function bool IsLocal(); // Export UTgSpecialFx::execIsLocal(FFrame&, void* const) + +defaultproperties +{ + c_bVisualComplete=true + c_bAudioComplete=true + c_nHitEffectBase=20 + c_fMaxEffectDistance=10000.0000000 + c_ParticleChannelOverride=(bInitialized=false,Default=true,Friendly=false,Enemy=false,LocalOwner=false,Channel5=false,Channel6=false,Channel7=false,Channel8=false,VerticalTargeter=false,Filter2=false,NotLocalOwner=false,CustomFilter1=false,CustomFilter2=false,CustomFilter3=false,CustomFilter4=false,CustomFilter5=false,CustomFilter6=false,CustomFilter7=false) +} diff --git a/Development/Src/TgGame/Classes/TgSpecialFxLightManager.uc b/Development/Src/TgGame/Classes/TgSpecialFxLightManager.uc new file mode 100644 index 0000000..2aeaff8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpecialFxLightManager.uc @@ -0,0 +1,49 @@ +class TgSpecialFxLightManager extends Object + native(FX) + config(Game); + +const INVALID_LIGHT_SCORE = 2; + +const INVALID_LIGHTARRAY_INDEX = -1; + +const TGFXLIGHT_MAX_SETTINGS_VALUE = 5; + +enum SpecialFxLightState { + FxLight_Normal, // 0 + FxLight_Dying, // 1 + FxLight_Kill, // 2 +}; + +struct TgFxLight { + var Pointer m_FxEmitter; + var TgSpecialFx m_OwnerSpecialFx; + var float m_Score; + structdefaultproperties {} +}; + +var config bool c_FxLightsEnabled; +var config bool c_FxLightsUnconstrained; +var config int c_FxLightsMaxActive; +var config int c_FxLightsMaxDying; +var init array m_ActiveEmitters; +var init array m_DyingEmitters; +var TgPawn c_LocalPawn; + +native function InitializeFxLightManager(); // Export UTgSpecialFxLightManager::execInitializeFxLightManager(FFrame&, void* const) + +native function AddLight(Pointer NewFxEmitter); // Export UTgSpecialFxLightManager::execAddLight(FFrame&, void* const) + +native function SetLightState(Pointer ExtantFxEmitter, TgSpecialFxLightManager.SpecialFxLightState NewFxLightState); // Export UTgSpecialFxLightManager::execSetLightState(FFrame&, void* const) + +native function LightKilledElsewhere(Pointer FxEmitterKilled); // Export UTgSpecialFxLightManager::execLightKilledElsewhere(FFrame&, void* const) + +native function SetLevelInternal(int LightLevel); // Export UTgSpecialFxLightManager::execSetLevelInternal(FFrame&, void* const) + +exec function UserSetLevel(int LightLevel) { } + +defaultproperties +{ + c_FxLightsEnabled=true + c_FxLightsMaxActive=1 + c_FxLightsMaxDying=1 +} diff --git a/Development/Src/TgGame/Classes/TgSpectatorCamera.uc b/Development/Src/TgGame/Classes/TgSpectatorCamera.uc new file mode 100644 index 0000000..b554c3c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpectatorCamera.uc @@ -0,0 +1,23 @@ +class TgSpectatorCamera extends TgPlayerCamera + transient + native(View) + hidecategories(Navigation) + config(Engine); + +var ViewTargetTransitionParams m_DefaultBlendParams; +var ViewTargetTransitionParams m_SnapBlendParams; +var CameraAnim m_CinematicAnim; +var transient CameraAnimInst m_AnimInstance; + +simulated function DoUpdateCamera(float DeltaTime) { } + +simulated function StartCinematicAnim() { } + +simulated function EndCinematicAnim() { } + +defaultproperties +{ + m_DefaultBlendParams=(BlendTime=0.3000000,BlendFunction=VTBlend_Cubic,BlendExp=2.0000000,bLockOutgoing=true) + m_SnapBlendParams=(BlendTime=0.0001000,BlendFunction=VTBlend_Cubic,BlendExp=2.0000000,bLockOutgoing=true) + DefaultCameraModuleClass=Class'TgCameraModule_Spectator' +} diff --git a/Development/Src/TgGame/Classes/TgSpectatorController.uc b/Development/Src/TgGame/Classes/TgSpectatorController.uc old mode 100755 new mode 100644 index 61f95ce..81acf71 --- a/Development/Src/TgGame/Classes/TgSpectatorController.uc +++ b/Development/Src/TgGame/Classes/TgSpectatorController.uc @@ -1,38 +1,206 @@ -class TgSpectatorController extends TgPlayerController - native(Pawns) - config(Game) - hidecategories(Navigation); - -enum SpectatorCameraMode -{ - SpecCam_None, // 0 - SpecCam_Fly, // 1 - SpecCam_FollowThirdPerson, // 2 - SpecCam_FollowFirstPerson, // 3 - SpecCam_FollowTopDown, // 4 - SpecCam_Camera, // 5 - SpecCam_Overview, // 6 - SpecCam_LockedView, // 7 -}; - -enum ESpectatorMode -{ - SPECMODE_Manual, // 0 - SPECMODE_Director, // 1 - SPECMODE_Assisted, // 2 - SPECMODE_Broadcast1, // 3 - SPECMODE_Broadcast2, // 4 - SPECMODE_Broadcast3, // 5 - SPECMODE_Broadcast4, // 6 -}; - -var transient TgSpectatorController.ESpectatorMode m_CurrentSpectatorMode; - -simulated function ForwardToSpectatingMatch() {} -simulated event PostBeginPlay(){} -exec function SpecViewPlayer(string PlayerName){} -exec function SetSpectatorCameraMode(TgSpectatorController.SpectatorCameraMode Mode, optional bool bCameraTween = false){} -function TgSpectatorController.SpectatorCameraMode GetDefaultModeFor(Actor Target){} - -function SpectatorSetViewTarget(Actor VT, optional ViewTargetTransitionParams TransitionParams){} -function UpdateViewTargetUI(){} \ No newline at end of file +class TgSpectatorController extends TgPlayerController + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +const MAX_BROADCAST_CHANNELS = 4; + +enum SpectatorCameraMode { + SpecCam_None, // 0 + SpecCam_Fly, // 1 + SpecCam_FollowThirdPerson, // 2 + SpecCam_FollowFirstPerson, // 3 + SpecCam_FollowTopDown, // 4 + SpecCam_Camera, // 5 + SpecCam_Overview, // 6 + SpecCam_LockedView, // 7 +}; + +enum SpectatorCameraCycle { + SpecCycle_None, // 0 + SpecCycle_PlayerFriendly, // 1 + SpecCycle_PlayerEnemy, // 2 + SpecCycle_Player, // 3 + SpecCycle_TowerFriendly, // 4 + SpecCycle_TowerEnemy, // 5 + SpecCycle_Tower, // 6 + SpecCycle_Cinematic, // 7 + SpecCycle_Action, // 8 +}; + +enum SpecFlightMode { + SFM_Normal, // 0 + SFM_Heli, // 1 + SFM_HeliNoVert, // 2 +}; + +enum ESpectatorMode { + SPECMODE_Manual, // 0 + SPECMODE_Director, // 1 + SPECMODE_Assisted, // 2 + SPECMODE_Broadcast1, // 3 + SPECMODE_Broadcast2, // 4 + SPECMODE_Broadcast3, // 5 + SPECMODE_Broadcast4, // 6 +}; + +enum EZoomState { + ZOOM_None, // 0 + ZOOM_In, // 1 + ZOOM_Out, // 2 +}; + +struct SpectatorBookmark { + var transient Actor ViewTarget; + var TgSpectatorController.SpectatorCameraMode ViewMode; + var TPOV POV; + structdefaultproperties {} +}; + +struct BroadcastChannel { + var TgSpectatorController.ESpectatorMode Channel; + var int PlayerID; + structdefaultproperties {} +}; + +var transient TgSpectatorController.SpectatorCameraMode m_CameraMode; +var transient TgSpectatorController.SpectatorCameraCycle m_CurrentCycle; +var transient TgSpectatorController.SpectatorCameraCycle m_PendingCycle; +var transient TgSpectatorController.SpecFlightMode m_eHelicopterFlight; +var transient TgSpectatorController.ESpectatorMode m_CurrentSpectatorMode; +var transient TgSpectatorController.EZoomState m_CurrentZoomState; +var transient TgSpectatorTempCam m_BookmarkCamera; +var transient SpectatorBookmark m_Bookmarks[10]; +var float m_fDefaultTweenTime; +var transient bool m_bOutlineCharacters; +var transient bool m_bIsMapSquashed; +var (Performance) config bool m_bIgnoreCullDistanceVolumes; +var () float m_fNameplateFadeMinDist; +var () float m_fNameplateFadeMaxDist; +var () float m_fNameplateFadeMaxAmount; +var () float m_fNameplateScaleMinDist; +var () float m_fNameplateScaleMaxDist; +var () float m_fNameplateScaleMaxAmount; +var () float m_fInterpolateCameraDistance; +var BroadcastChannel m_BroadcastChannels[4]; +var config Vector c_vMouseClickDeprojectionExtent; +var () config float m_fOverviewCenterpointOffset; +var () config float m_fMouseCursorVisibleTime; +var transient float m_fRemainingCursorVisibleTime; + +function Class GetHudClass(Class pNewHudType); // Export UTgSpectatorController::execGetHudClass(FFrame&, void* const) + +function SetNetTarget(QWord qwId, int nTaskForce); // Export UTgSpectatorController::execSetNetTarget(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +simulated function ForwardToSpectatingMatch() { } + +reliable client simulated function ClientForwardToSpectatingMatch() { } + +exec function SwitchCamera(string sCamera) { } + +function SpectatorSetViewTarget(Actor VT, optional ViewTargetTransitionParams TransitionParams) { } + +function UpdateViewTargetUI() { } + +function bool ShouldFlyFromInput() { } + +exec function SetNewSpectatorMode(TgSpectatorController.ESpectatorMode NewMode) { } + +exec function SetSpectatorCameraMode(TgSpectatorController.SpectatorCameraMode Mode, optional bool bCameraTween=false) { } + +exec function ToggleSpectatorPlayerIcons(); // Export UTgSpectatorController::execToggleSpectatorPlayerIcons(FFrame&, void* const) + +reliable client simulated function ClientSetReadyState(bool bReadyToPlay) { } + +exec function SetPendingSpecCycle(TgSpectatorController.SpectatorCameraCycle Mode) { } + +exec function ClearPendingSpecCycle() { } + +function bool InterceptFlashInput(name ButtonName, Object.EInputEvent Event) { } + +exec function LockedViewCam(bool bEnabled) { } + +function SnapViewToHoverTarget(optional bool bUseAltView=false) { } + +simulated function bool PingMap(Vector WorldLocation, const out array worldActorRepInfo, TgObject.PING_TYPE Type) { } + +function SetPendingOnDirectorMode() { } + +function SnapViewToLocation(Vector WorldLocation, bool bUseFocalPoint) { } + +function CycleNext(optional bool bSkipIfPresent=false, optional bool bReverse=false) { } + +function array GetViewTargetListForMode(TgSpectatorController.SpectatorCameraCycle cycle) { } + +function array GetPlayerList() { } + +function array GetOutermostTowerList() { } + +function array GetActionList() { } + +function TgSpectatorController.SpectatorCameraMode GetDefaultModeFor(Actor Target) { } + +exec function SpecViewAction() { } + +exec function SpecViewPlayer(string PlayerName) { } + +function ViewTargetTransitionParams GetBlendParams(Actor Target) { } + +function ViewTargetTransitionParams GetDefaultBlendParams() { } + +function ViewTargetTransitionParams GetSnapBlendParams() { } + +exec function SetSpectatorBookmark(int nNum) { } + +exec function RecallSpectatorBookmark(int nNum) { } + +exec function SpecSetFlightMode(TgSpectatorController.SpecFlightMode sfm) { } + +exec function GotoCinematicCam(string sCamName) { } + +exec function CameraSpeed(float NewSpeed) { } + +exec function IncreaseCameraSpeeed() { } + +exec function DecreaseCameraSpeed() { } + +function string StripClanTag(string PlayerName) { } + +exec function ToggleOutlineCharacters() { } + +function SetOutlineCharacters(bool bNewOutlineCharacters); // Export UTgSpectatorController::execSetOutlineCharacters(FFrame&, void* const) + +event float GetFOVAngle() { } + +exec function SquashMap() { } + +exec function SpecTest() { } + +exec function FlipOverviewSides() { } + +function Pawn GetPawnFrom2DCoordinate(Vector2D Coordinate); // Export UTgSpectatorController::execGetPawnFrom2DCoordinate(FFrame&, void* const) + +function GetActorListFrom2DCoordinate(Vector2D Coordinate, out array ActorList); // Export UTgSpectatorController::execGetActorListFrom2DCoordinate(FFrame&, void* const) + +exec function SpectateZoomIn(bool bEnabled) { } + +exec function SpectateZoomOut(bool bEnabled) { } + +function ChangeZoomState(TgSpectatorController.EZoomState NewZoomState) { } + +function UpdateBroadcastChannels(); // Export UTgSpectatorController::execUpdateBroadcastChannels(FFrame&, void* const) + +exec function SpectatePlayerIndex(int TaskForceNum, int PlayerIndex) { } + +function TgPawn GetTgPawn(); // Export UTgSpectatorController::execGetTgPawn(FFrame&, void* const) + +function SetViewTarget(Actor NewViewTarget, optional ViewTargetTransitionParams TransitionParams); // Export UTgSpectatorController::execSetViewTarget(FFrame&, void* const) + +state SpectatingMatch {} + +state RoundEnded {} + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgSpectatorDirector.uc b/Development/Src/TgGame/Classes/TgSpectatorDirector.uc new file mode 100644 index 0000000..7589807 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpectatorDirector.uc @@ -0,0 +1,65 @@ +class TgSpectatorDirector extends Info + native + hidecategories(Navigation,Movement,Collision) + config(Engine) + dependson(TgSpectatorController); + +struct ViewTargetInfo { + var TgPawn Pawn; + var TgPawn_Tower ClosestEnemyTower; + var int Rating; + var float DistSqToClosestEnemy; + var float DistSqToClosestFriend; + var float DistSqToGoldFury; + var float DistSqToEnemyTower; + var int NumCloseEnemies; + var int NumCloseFriends; + structdefaultproperties {} +}; + +var private transient bool m_bIsActive; +var private transient bool m_bIsPending; +var transient bool m_bAutoSwitchCameraViews; +var transient bool m_bForceThirdPersonView; +var float m_fRemainingAutoUpdateCheckTime; +var float m_fTimeSinceViewSwitchedTeams; +var float m_fTimeSinceViewSwitchedMode; +var float m_fRemainingAutoReturnCheckTime; +var TgSpectatorController.SpectatorCameraMode m_CurrentCameraMode; +var ViewTargetInfo m_CurrentRatedViewTarget; +var transient ViewTargetInfo m_DemoRewindViewTarget; +var transient Vector2D m_v2dForcedDirectorLocation; +var transient float m_fForcedDirectorLocationTimestamp; + +native function OnPlayerMoved(); // Export UTgSpectatorDirector::execOnPlayerMoved(FFrame&, void* const) + +native function UpdateOverviewCamUI(bool bEnable); // Export UTgSpectatorDirector::execUpdateOverviewCamUI(FFrame&, void* const) + +event SetViewTarget(ViewTargetInfo NewViewTarget) { } + +event SetCameraMode(TgSpectatorController.SpectatorCameraMode NewCameraMode) { } + +function SetActive(bool bIsActive) { } + +function ResetCamera(TgSpectatorController PC) { } + +function bool IsCurrentlyViewing() { } + +function bool IsActive() { } + +function bool IsPending() { } + +simulated event PreDemoRewind() { } + +simulated event PostDemoRewind() { } + +event ClearAssistModeTarget() { } + +function SetForcedDirectorLocation(Vector2D NewLocation) { } + +defaultproperties +{ + m_CurrentCameraMode=SpecCam_Overview + m_CurrentRatedViewTarget=(Pawn=none,ClosestEnemyTower=none,Rating=-1,DistSqToClosestEnemy=-1.0000000,DistSqToClosestFriend=0.0000000,DistSqToGoldFury=0.0000000,DistSqToEnemyTower=0.0000000,NumCloseEnemies=0,NumCloseFriends=0) + m_DemoRewindViewTarget=(Pawn=none,ClosestEnemyTower=none,Rating=-1,DistSqToClosestEnemy=-1.0000000,DistSqToClosestFriend=0.0000000,DistSqToGoldFury=0.0000000,DistSqToEnemyTower=0.0000000,NumCloseEnemies=0,NumCloseFriends=0) +} diff --git a/Development/Src/TgGame/Classes/TgSpectatorInput.uc b/Development/Src/TgGame/Classes/TgSpectatorInput.uc new file mode 100644 index 0000000..a8b1523 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpectatorInput.uc @@ -0,0 +1,21 @@ +class TgSpectatorInput extends TgPlayerInput within TgPlayerController + transient + native(Pawns) + config(Input) + hidecategories(Object,UIRoot); + +var config float SpectatorSensitivity; + +native function CheckIdleBreak(); // Export UTgSpectatorInput::execCheckIdleBreak(FFrame&, void* const) + +function AdjustMouseSensitivity(float FOVScale) { } + +event PlayerInput(float DeltaTime) { } + +defaultproperties +{ + SpectatorSensitivity=5.0000000 + c_bUseServerBindings=false + m_nKeybindConfigSet=2 + Bindings=/* Array type was not detected. */ +} diff --git a/Development/Src/TgGame/Classes/TgSpectatorTempCam.uc b/Development/Src/TgGame/Classes/TgSpectatorTempCam.uc new file mode 100644 index 0000000..8de41d1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSpectatorTempCam.uc @@ -0,0 +1,19 @@ +class TgSpectatorTempCam extends DynamicCameraActor + hidecategories(Navigation) + config(Engine); + +var bool bIsViewTarget; +var bool bIsBookmark; + +event BecomeViewTarget(PlayerController PC) { } + +event EndViewTarget(PlayerController PC) { } + +event SetIsBookmark(bool bBookmark) { } + +function DestroyIfNeeded() { } + +defaultproperties +{ + bConstrainAspectRatio=false +} diff --git a/Development/Src/TgGame/Classes/TgSplineActor.uc b/Development/Src/TgGame/Classes/TgSplineActor.uc new file mode 100644 index 0000000..e69fa18 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSplineActor.uc @@ -0,0 +1,23 @@ +class TgSplineActor extends SplineActor + native(Navigation) + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +var () TgObject.ELanePusherActionPoint m_ActionPoint; +var (Preview) editoronly transient bool m_bPreview; + +native function UpdateSplineComponents(); // Export UTgSplineActor::execUpdateSplineComponents(FFrame&, void* const) + +native function float DistanceToEndOfSplineChain(); // Export UTgSplineActor::execDistanceToEndOfSplineChain(FFrame&, void* const) + +native function float DistanceToActionPoint(TgObject.ELanePusherActionPoint ActionPoint); // Export UTgSplineActor::execDistanceToActionPoint(FFrame&, void* const) + +event OnSplineActorReached(TgPawn_LanePusherBase Other) { } + +defaultproperties +{ + Components[0]=none + Components[1]=none + bNoDelete=true +} diff --git a/Development/Src/TgGame/Classes/TgSplineActor_Payload.uc b/Development/Src/TgGame/Classes/TgSplineActor_Payload.uc new file mode 100644 index 0000000..716a4ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSplineActor_Payload.uc @@ -0,0 +1,13 @@ +class TgSplineActor_Payload extends TgSplineActor + hidecategories(Navigation) + config(Engine); + +var bool m_bReached; +var (Payload) float m_fSecondsToAdd; + +simulated event OnSplineActorReached(TgPawn_LanePusherBase Payload) { } + +defaultproperties +{ + m_fSecondsToAdd=120.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSplineLoftActorSpawnable.uc b/Development/Src/TgGame/Classes/TgSplineLoftActorSpawnable.uc new file mode 100644 index 0000000..42c5de1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSplineLoftActorSpawnable.uc @@ -0,0 +1,7 @@ +class TgSplineLoftActorSpawnable extends SplineLoftActorMovable + native + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStartPoint.uc b/Development/Src/TgGame/Classes/TgStartPoint.uc old mode 100755 new mode 100644 index 284029f..5dfc968 --- a/Development/Src/TgGame/Classes/TgStartPoint.uc +++ b/Development/Src/TgGame/Classes/TgStartPoint.uc @@ -1,5 +1,27 @@ -class TgStartPoint extends PlayerStart - native(Navigation) - hidecategories(Navigation,Lighting,LightColor,Force,Collision); - -simulated function AdjustRating(){} \ No newline at end of file +class TgStartPoint extends PlayerStart + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force,Collision) + config(Engine); + +var (Object) editconst int m_nMapObjectId; +var () int m_nStartGroup; +var () int m_nReturnMapType; +var () float m_fStartRating; +var () float m_fCurrentRating; +var () float m_fResetRating; +var () float m_fDecreaseRate; +var () array< Class > m_ArrayOfFloats; +var () TgTeleporter m_TgTeleporter; + +native function LoadObjectConfig(); // Export UTgStartPoint::execLoadObjectConfig(FFrame&, void* const) + +simulated function PreBeginPlay() { } + +simulated function float GetRating(Controller Player) { } + +simulated function AdjustRating() { } + +simulated function int GetStartGroupNumber() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshActor.uc b/Development/Src/TgGame/Classes/TgStaticMeshActor.uc new file mode 100644 index 0000000..089f398 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshActor.uc @@ -0,0 +1,7 @@ +class TgStaticMeshActor extends StaticMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshActorGrass.uc b/Development/Src/TgGame/Classes/TgStaticMeshActorGrass.uc new file mode 100644 index 0000000..4b6e141 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshActorGrass.uc @@ -0,0 +1,14 @@ +class TgStaticMeshActorGrass extends StaticMeshActor + hidecategories(Navigation) + config(Engine); + +var float m_fTargetScale; +var Vector m_TargetScale3D; +var float m_fScaleTransitionTime; + +function OnChangeScale(TgSeqAct_ChangeScale SeqAct_ChangeScale) { } + +event Tick(float DeltaTime) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshActorTargeting.uc b/Development/Src/TgGame/Classes/TgStaticMeshActorTargeting.uc new file mode 100644 index 0000000..60ba18f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshActorTargeting.uc @@ -0,0 +1,7 @@ +class TgStaticMeshActorTargeting extends StaticMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshActor_CapturePoint.uc b/Development/Src/TgGame/Classes/TgStaticMeshActor_CapturePoint.uc new file mode 100644 index 0000000..9732d07 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshActor_CapturePoint.uc @@ -0,0 +1,23 @@ +class TgStaticMeshActor_CapturePoint extends StaticMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine); + +var (capturePoint) const LinearColor UncontestedCaptureColor; +var (capturePoint) const LinearColor FriendlyCaptureColor; +var (capturePoint) const LinearColor EnemyCaptureColor; +var (capturePoint) const name EmissiveColorParameterName; +var (capturePoint) const name CapturePercentParameterName; +var transient array InitialMaterialList; +var const bool bInstancedAllMaterials; +var int CurrentCaptureStatus; +var float CurrentCapturePercent; + +native function SetEmissiveColor(LinearColor NewColor, float fPercent, optional float fRampTime=1.0000000); // Export UTgStaticMeshActor_CapturePoint::execSetEmissiveColor(FFrame&, void* const) + +native function SetCapturePercent(float fNewPercent, optional float bRampTime=1.0000000); // Export UTgStaticMeshActor_CapturePoint::execSetCapturePercent(FFrame&, void* const) + +simulated event SetCaptureStatus(int nCaptureStatus, float fPercent) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshActor_PantheonMIC.uc b/Development/Src/TgGame/Classes/TgStaticMeshActor_PantheonMIC.uc new file mode 100644 index 0000000..3e80d2a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshActor_PantheonMIC.uc @@ -0,0 +1,15 @@ +class TgStaticMeshActor_PantheonMIC extends TgStaticMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine); + +var () MaterialInstanceConstant MICOverrides[GOD_PANTHEON]; +var () int m_nGameTaskForce; +var () int m_nTeamIndex; + +native function ChangePantheonMIC(int nTaskForce, int nTeamIndex); // Export UTgStaticMeshActor_PantheonMIC::execChangePantheonMIC(FFrame&, void* const) + +simulated event PreBeginPlay() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshActor_TeamColor.uc b/Development/Src/TgGame/Classes/TgStaticMeshActor_TeamColor.uc new file mode 100644 index 0000000..3e94f3c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshActor_TeamColor.uc @@ -0,0 +1,22 @@ +class TgStaticMeshActor_TeamColor extends StaticMeshActor + native(Pawns) + hidecategories(Navigation) + config(Engine); + +var (TeamColoring) const int nTaskForce; +var (TeamColoring) const name TeamColoringParameterName; +var (TeamColoring) const bool bInvertColoringParameter; +var const bool bInstancedAllMaterials; +var byte bFriendlyWithLocalPlayer; +var transient array InitialMaterialList; + +native function ForceRecalculateMaterial(); // Export UTgStaticMeshActor_TeamColor::execForceRecalculateMaterial(FFrame&, void* const) + +native function RecalculateMaterial(bool bIsFriendlyWithLocalPawn, optional bool bForce); // Export UTgStaticMeshActor_TeamColor::execRecalculateMaterial(FFrame&, void* const) + +native function UpdateFriendlyFlag(); // Export UTgStaticMeshActor_TeamColor::execUpdateFriendlyFlag(FFrame&, void* const) + +simulated function NotifyLocalPlayerTeamReceived() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgStaticMeshComponent.uc b/Development/Src/TgGame/Classes/TgStaticMeshComponent.uc new file mode 100644 index 0000000..0cc3719 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgStaticMeshComponent.uc @@ -0,0 +1,49 @@ +class TgStaticMeshComponent extends StaticMeshComponent + native(Pawns) + editinlinenew + hidecategories(Object) + config(Engine) + dependson(TgSpecialFx); + +var bool c_bFxApplied; +var array c_FxList; +var array c_DatabaseFxList; +var array c_FxAssemblyData; +var int m_nAssemblyId; + +native function FxAdd(Object Fx); // Export UTgStaticMeshComponent::execFxAdd(FFrame&, void* const) + +native function FxRemove(Object Fx); // Export UTgStaticMeshComponent::execFxRemove(FFrame&, void* const) + +native function Object FxGet(name nmGroup, int nMode, optional int nIndex, optional int nSocketIndex, optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxGet(FFrame&, void* const) + +native function array FxGetAll(name nmGroup, int nMode, optional int nIndex, optional int nSocketIndex, optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxGetAll(FFrame&, void* const) + +native function Object FxActivateGroup(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot, optional bool bIgnoreRelevancy, optional bool bFromEffectForm); // Export UTgStaticMeshComponent::execFxActivateGroup(FFrame&, void* const) + +native function FxDeactivateGroup(name nmGroup, int nMode, optional int nSocketIndex, optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxDeactivateGroup(FFrame&, void* const) + +native function FxDeactivateAll(optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxDeactivateAll(FFrame&, void* const) + +native function FxSpawnTracer(name nmGroup, int nMode, Vector HitLocation, optional int nSocketIndex, optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxSpawnTracer(FFrame&, void* const) + +native function FxSpawnEmitter(name nmGroup, int nMode, Vector HitLocation, Vector HitNormal, optional int nSocketIndex, optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxSpawnEmitter(FFrame&, void* const) + +native function FxSpawnSound(name nmGroup, int nMode, Vector SoundLocation, optional int nSocketIndex, optional int nEquipSlot); // Export UTgStaticMeshComponent::execFxSpawnSound(FFrame&, void* const) + +native function Object FxActivateIndependant(name nmGroup, int nMode, Vector HitLocation, Vector HitNormal, optional int nSocketIndex, optional int nEquipSlot, optional bool bUseSocketOverride=true, optional array Params); // Export UTgStaticMeshComponent::execFxActivateIndependant(FFrame&, void* const) + +native function SwapMaterial(MaterialInterface MI, optional bool bNoParamReaping); // Export UTgStaticMeshComponent::execSwapMaterial(FFrame&, void* const) + +native function SetDefaultSkin(int nIndex); // Export UTgStaticMeshComponent::execSetDefaultSkin(FFrame&, void* const) + +native function MaterialInterface GetDefaultMaterial(int nIndex); // Export UTgStaticMeshComponent::execGetDefaultMaterial(FFrame&, void* const) + +native function OnMeshSetHidden(bool bHidden); // Export UTgStaticMeshComponent::execOnMeshSetHidden(FFrame&, void* const) + +native function RecalculateFx(); // Export UTgStaticMeshComponent::execRecalculateFx(FFrame&, void* const) + +defaultproperties +{ + ReplacementPrimitive=none +} diff --git a/Development/Src/TgGame/Classes/TgSubtitledMessages.uc b/Development/Src/TgGame/Classes/TgSubtitledMessages.uc new file mode 100644 index 0000000..6af1106 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSubtitledMessages.uc @@ -0,0 +1,36 @@ +class TgSubtitledMessages extends Object within TgPlayerController + native(Pawns) + config(Engine); + +struct QueuedSubtitle { + var bool CurrentlyPlaying; + var int SubtitleMessageId; + var string SubtitleText; + var AkBaseSoundObject SubtitleSound; + var int AkId; + structdefaultproperties {} +}; + +var QueuedSubtitle CurrentSubtitle; +var array QueuedSubtitles; +var transient TgPlayerController OwnerPC; +var export editinline transient AudioComponent PlayingSubtitleAC; +var bool bFinishedSubtitle; +var float SubtitleFailsafeTime; + +native reliable client simulated function PlaySubtitledMessage(int MessageId, optional bool PlayImmediately=false, optional bool FlushOthers=false, optional AkEvent CustomShutdownEvent); // Export UTgSubtitledMessages::execPlaySubtitledMessage(FFrame&, void* const) + +native function SubtitledCueEnded(AudioComponent AC); // Export UTgSubtitledMessages::execSubtitledCueEnded(FFrame&, void* const) + +native function SubtitleFailsafe(); // Export UTgSubtitledMessages::execSubtitleFailsafe(FFrame&, void* const) + +function Init() { } + +function Destroyed() { } + +event PlaySubtitleSoundCue(SoundCue CueToPlay) { } + +defaultproperties +{ + SubtitleFailsafeTime=30.0000000 +} diff --git a/Development/Src/TgGame/Classes/TgSurvivalFogVolumeDensityInfo.uc b/Development/Src/TgGame/Classes/TgSurvivalFogVolumeDensityInfo.uc new file mode 100644 index 0000000..fc2079b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgSurvivalFogVolumeDensityInfo.uc @@ -0,0 +1,25 @@ +class TgSurvivalFogVolumeDensityInfo extends FogVolumeSphericalDensityInfo + hidecategories(Navigation,Collision) + autoexpandcategories(FogVolumeDensityInfo) + config(Engine); + +var bool m_bFogOn; +var float m_fTargetStartDistance; +var float m_fPreviousStartDistance; +var float m_fFogUpdateTimestamp; +var float m_fFogUpdateInterval; +var float m_fConvergenceRate; +var float m_fFadeInRate; +var float m_fFadeOutRate; +var export editinline FogVolumeSphericalDensityComponent SphericalDensityComponent; + +event PostBeginPlay() { } + +function ToggleFog(bool bOn) { } + +function ConvergeFog(float fNewStartDistance, float interval, optional bool bForce) { } + +simulated function Tick(float DeltaTime) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTargetAimTrackingCurves.uc b/Development/Src/TgGame/Classes/TgTargetAimTrackingCurves.uc new file mode 100644 index 0000000..a882e3c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTargetAimTrackingCurves.uc @@ -0,0 +1,15 @@ +class TgTargetAimTrackingCurves extends Object + native + editinlinenew + hidecategories(Object) + autoexpandcategories(TgTargetAimTrackingCurves) + config(Engine); + +var () name SettingsName; +var () RawDistributionFloat StrengthByAccuracyX; +var () RawDistributionFloat StrengthByDesiredAngleX; +var () RawDistributionFloat StrengthByAccuracyY; +var () RawDistributionFloat StrengthByDesiredAngleY; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTeamBlocker.uc b/Development/Src/TgGame/Classes/TgTeamBlocker.uc new file mode 100644 index 0000000..a6e6ee5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTeamBlocker.uc @@ -0,0 +1,11 @@ +class TgTeamBlocker extends TgMeshAssembly + native(Navigation) + placeable + hidecategories(Navigation) + config(Engine); + +var () bool m_bBlockFlagCarrier; +var () bool m_bBlockFriendlyFire; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTeamPlayerStart.uc b/Development/Src/TgGame/Classes/TgTeamPlayerStart.uc old mode 100755 new mode 100644 index ee62bc1..af3c2ee --- a/Development/Src/TgGame/Classes/TgTeamPlayerStart.uc +++ b/Development/Src/TgGame/Classes/TgTeamPlayerStart.uc @@ -1,73 +1,41 @@ -class TgTeamPlayerStart extends TgStartPoint - native(Navigation) - hidecategories(Navigation,Lighting,LightColor,Force,Collision); - - -var() byte m_nTaskForce; -var() int m_nPriority; -var() int nPrevPriority; -var() float m_fMaxDistForEnemyCheckUU; -var() float m_fMaxWeightForEnemyDistanceCheck; -var() float m_fMaxDistForAllyCheckUU; -var() float m_fMinDistForAllyCheckUU; -var() float m_fMaxWeightForAllyDistanceCheck; -var() float m_fRandomRatingWeighting; -var() bool m_bInitialSpawnOnly; -var() bool m_bDisallowEnemyLOS; -var float m_fExtraHeightToTraceTo; -var editconst int m_nMinLevel; -var transient float m_fLastUsedTimeStamp; -var array s_AssignedPlayers; - -// Export UTgTeamPlayerStart::execLoadObjectConfig(FFrame&, void* const) -native function LoadObjectConfig(); - -// Export UTgTeamPlayerStart::execIsAssignedToPlayer(FFrame&, void* const) -native final function bool IsAssignedToPlayer(); - -// Export UTgTeamPlayerStart::execAreaUnoccupied(FFrame&, void* const) -native final function bool AreaUnoccupied(); - -// Export UTgTeamPlayerStart::execNativeGetRating(FFrame&, void* const) -native function float NativeGetRating(Controller Player, float fRating); - -// Export UTgTeamPlayerStart::execGetSpawnRotationFor(FFrame&, void* const) -native function Rotator GetSpawnRotationFor(Pawn TgP); - -event int GetSupportedTaskforce() -{ - local TgRepInfo_Game GRI; - - GRI = TgRepInfo_Game(WorldInfo.GRI); - // End:0x15D - if(GRI != none) - { - // End:0x151 - if(true) - { - // End:0x151 - if(GRI.r_AttackingTaskForce != none) - { - // End:0x10B - if(int(m_nTaskForce) == 1) - { - return int(GRI.r_AttackingTaskForce.r_nTaskForce); - } - else - { - // End:0x14F - if(int(GRI.r_AttackingTaskForce.r_nTaskForce) == 1) - { - return 2; - } - else - { - return 1; - } - } - } - } - return int(m_nTaskForce); - } - //return ReturnValue; -} \ No newline at end of file +class TgTeamPlayerStart extends TgStartPoint + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force,Collision) + config(Engine); + +const TG_MAX_DISTANCE_FOR_SPAWN_CALCULATION = 1600.0f; + +var () byte m_nTaskForce; +var () int m_nPriority; +var () int nPrevPriority; +var () float m_fMaxDistForEnemyCheckUU; +var () float m_fMaxWeightForEnemyDistanceCheck; +var () float m_fMaxDistForAllyCheckUU; +var () float m_fMinDistForAllyCheckUU; +var () float m_fMaxWeightForAllyDistanceCheck; +var () float m_fRandomRatingWeighting; +var () bool m_bInitialSpawnOnly; +var () bool m_bDisallowEnemyLOS; +var float m_fExtraHeightToTraceTo; +var editconst int m_nMinLevel; +var transient float m_fLastUsedTimeStamp; +var array s_AssignedPlayers; + +native function LoadObjectConfig(); // Export UTgTeamPlayerStart::execLoadObjectConfig(FFrame&, void* const) + +native function bool IsAssignedToPlayer(); // Export UTgTeamPlayerStart::execIsAssignedToPlayer(FFrame&, void* const) + +native function bool AreaUnoccupied(); // Export UTgTeamPlayerStart::execAreaUnoccupied(FFrame&, void* const) + +native function float NativeGetRating(Controller Player, float fRating); // Export UTgTeamPlayerStart::execNativeGetRating(FFrame&, void* const) + +event Destroyed() { } + +event int GetSupportedTaskforce() { } + +simulated function float GetRating(Controller Player) { } + +simulated function OnSetTaskforce(TgSeqAct_SetTaskforce Action) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTeleportPlayerVolume.uc b/Development/Src/TgGame/Classes/TgTeleportPlayerVolume.uc new file mode 100644 index 0000000..b878a5c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTeleportPlayerVolume.uc @@ -0,0 +1,19 @@ +class TgTeleportPlayerVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +enum TgTeleportVolumeType { + Inactive, // 0 + Respawn, // 1 +}; + +var () TgTeleportPlayerVolume.TgTeleportVolumeType TeleportLocation; +var () int nMessageId; +var () bool bTeleportBots; +var () bool bTeleportPlayers; + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTeleporter.uc b/Development/Src/TgGame/Classes/TgTeleporter.uc new file mode 100644 index 0000000..c6d8beb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTeleporter.uc @@ -0,0 +1,30 @@ +class TgTeleporter extends Teleporter + native(Navigation) + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var (Object) int m_nMapObjectId; +var (MapInstance) int m_nMapId; +var (MapInstance) bool m_nPreload; +var (Taskforce) bool m_bSetTaskForce; +var (Taskforce) bool m_bBalanceTaskForce; +var (Taskforce) bool m_bIgnoreNonMembers; +var (Taskforce) bool m_bUsePlayerStart; +var (Taskforce) bool m_bRequestMission; +var () byte m_nStartGroup; +var (Taskforce) byte m_nTaskForce; + +native function bool HandlePostTouch(Actor Other); // Export UTgTeleporter::execHandlePostTouch(FFrame&, void* const) + +native function LoadObjectConfig(); // Export UTgTeleporter::execLoadObjectConfig(FFrame&, void* const) + +simulated function PreBeginPlay() { } + +function PostBeginPlay() { } + +simulated function PostTouch(actor Other) { } + +event bool UsePlayerStart(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTimeDilationVolume.uc b/Development/Src/TgGame/Classes/TgTimeDilationVolume.uc new file mode 100644 index 0000000..f67a46c --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTimeDilationVolume.uc @@ -0,0 +1,23 @@ +class TgTimeDilationVolume extends PhysicsVolume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var float m_fTimeMultiplier; +var bool m_bAffectInstigator; +var array m_AffectedActors; +var array m_AffectedPawns; + +simulated event PostBeginPlay() { } + +event ActorEnteredVolume(Actor Other) { } + +event ActorLeavingVolume(Actor Other) { } + +event PawnEnteredVolume(Pawn Other) { } + +event PawnLeavingVolume(Pawn Other) { } + +event Destroyed() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTimerManager.uc b/Development/Src/TgGame/Classes/TgTimerManager.uc old mode 100755 new mode 100644 index 8841462..9c0a747 --- a/Development/Src/TgGame/Classes/TgTimerManager.uc +++ b/Development/Src/TgGame/Classes/TgTimerManager.uc @@ -1,48 +1,64 @@ -class TgTimerManager extends Object - native; - - -// Export UTgTimerManager::execStart(FFrame&, void* const) -native function bool Start(int byTimerIndex, float fTime, optional bool bRepeat = false, optional bool bPausedByGame = true, optional float Rate = 1.0000000); - -// Export UTgTimerManager::execUpdate(FFrame&, void* const) -native function bool Update(int byTimerIndex, float fTime, optional float fTimeInitial = -1.0000000, optional float Rate = 1.0000000); - -// Export UTgTimerManager::execPause(FFrame&, void* const) -native function bool Pause(int byTimerIndex, float fTime); - -// Export UTgTimerManager::execClose(FFrame&, void* const) -native function bool Close(int byTimerIndex, optional bool bFireEvent = true); - -// Export UTgTimerManager::execIsSet(FFrame&, void* const) -native simulated function bool IsSet(int byTimerIndex); - -// Export UTgTimerManager::execIsPaused(FFrame&, void* const) -native simulated function bool IsPaused(int byTimerIndex); - -// Export UTgTimerManager::execGetTimeElapsed(FFrame&, void* const) -native simulated function float GetTimeElapsed(int byTimerIndex); - -// Export UTgTimerManager::execGetTimeRemaining(FFrame&, void* const) -native simulated function float GetTimeRemaining(int byTimerIndex); - -// Export UTgTimerManager::execGetPercentRemaining(FFrame&, void* const) -native simulated function float GetPercentRemaining(int byTimerIndex); - -// Export UTgTimerManager::execGetTimeInitial(FFrame&, void* const) -native simulated function float GetTimeInitial(int byTimerIndex); - -// Export UTgTimerManager::execSetRate(FFrame&, void* const) -native simulated function SetRate(int TimerIndex, float Rate); - -// Export UTgTimerManager::execRegisterForEvents(FFrame&, void* const) -native simulated function bool RegisterForEvents(int byTimerIndex, Object HostObject, name nmFunc); - -// Export UTgTimerManager::execUnRegisterForEvents(FFrame&, void* const) -native simulated function bool UnRegisterForEvents(int byTimerIndex, Object HostObject); - -// Export UTgTimerManager::execIsActiveTimers(FFrame&, void* const) -native simulated function bool IsActiveTimers(); - -// Export UTgTimerManager::execCloseAllTimers(FFrame&, void* const) -native simulated function CloseAllTimers(optional bool bFireEvent = true); \ No newline at end of file +class TgTimerManager extends Object + native + config(Engine); + +const TGT_MAX_TIMERS = 32; + +enum TGT_EVENT { + TGTE_DONE, // 0 + TGTE_START, // 1 + TGTE_UPDATE, // 2 + TGTE_PAUSED, // 3 +}; + +struct TGT_REG_LINK { + var Pointer NextLink; + var Object RegObject; + var Function RegFunction; + structdefaultproperties {} +}; + +struct TgTimerData { + var int nIndex; + var byte byTimer; + var float fStartTime; + var float fRemaining; + var bool bRepeat; + var bool bPausedByGame; + var float Rate; + var TGT_REG_LINK CallbackRegistry; + structdefaultproperties {} +}; + +var protected bool m_bActive; +var protected bool m_bGameWasPaused; + +native function bool Start(int byTimerIndex, float fTime, optional bool bRepeat=false, optional bool bPausedByGame=true, optional float Rate=1.0000000); // Export UTgTimerManager::execStart(FFrame&, void* const) + +native function bool Update(int byTimerIndex, float fTime, optional float fTimeInitial=-1.0000000, optional float Rate=1.0000000); // Export UTgTimerManager::execUpdate(FFrame&, void* const) + +native function bool Pause(int byTimerIndex, float fTime); // Export UTgTimerManager::execPause(FFrame&, void* const) + +native function bool Close(int byTimerIndex, optional bool bFireEvent=true); // Export UTgTimerManager::execClose(FFrame&, void* const) + +native simulated function bool IsSet(int byTimerIndex); // Export UTgTimerManager::execIsSet(FFrame&, void* const) + +native simulated function bool IsPaused(int byTimerIndex); // Export UTgTimerManager::execIsPaused(FFrame&, void* const) + +native simulated function float GetTimeElapsed(int byTimerIndex); // Export UTgTimerManager::execGetTimeElapsed(FFrame&, void* const) + +native simulated function float GetTimeRemaining(int byTimerIndex); // Export UTgTimerManager::execGetTimeRemaining(FFrame&, void* const) + +native simulated function float GetPercentRemaining(int byTimerIndex); // Export UTgTimerManager::execGetPercentRemaining(FFrame&, void* const) + +native simulated function float GetTimeInitial(int byTimerIndex); // Export UTgTimerManager::execGetTimeInitial(FFrame&, void* const) + +native simulated function SetRate(int TimerIndex, float Rate); // Export UTgTimerManager::execSetRate(FFrame&, void* const) + +native simulated function bool RegisterForEvents(int byTimerIndex, Object HostObject, name nmFunc); // Export UTgTimerManager::execRegisterForEvents(FFrame&, void* const) + +native simulated function bool UnRegisterForEvents(int byTimerIndex, Object HostObject); // Export UTgTimerManager::execUnRegisterForEvents(FFrame&, void* const) + +native simulated function bool IsActiveTimers(); // Export UTgTimerManager::execIsActiveTimers(FFrame&, void* const) + +native simulated function CloseAllTimers(optional bool bFireEvent=true); // Export UTgTimerManager::execCloseAllTimers(FFrame&, void* const) diff --git a/Development/Src/TgGame/Classes/TgTrigger_AIControlledCharacters.uc b/Development/Src/TgGame/Classes/TgTrigger_AIControlledCharacters.uc new file mode 100644 index 0000000..9a1b60e --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTrigger_AIControlledCharacters.uc @@ -0,0 +1,7 @@ +class TgTrigger_AIControlledCharacters extends Trigger + native(Kismet) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTrigger_Instance.uc b/Development/Src/TgGame/Classes/TgTrigger_Instance.uc new file mode 100644 index 0000000..e38112a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTrigger_Instance.uc @@ -0,0 +1,16 @@ +class TgTrigger_Instance extends Trigger + native(Kismet) + hidecategories(Navigation) + config(Engine); + +var (MapInstance) editinline int m_nMapId; +var (MapInstance) editinline bool m_nPreload; +var (MapInstance) editinline bool m_nTaskForce; +var (MapInstance) editinline string m_SpawnPointName; + +native function HandleTouch(Actor Other, Vector HitLocation, Vector HitNormal); // Export UTgTrigger_Instance::execHandleTouch(FFrame&, void* const) + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTrigger_PlayerControlledCharacters.uc b/Development/Src/TgGame/Classes/TgTrigger_PlayerControlledCharacters.uc new file mode 100644 index 0000000..ccc802b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTrigger_PlayerControlledCharacters.uc @@ -0,0 +1,7 @@ +class TgTrigger_PlayerControlledCharacters extends Trigger + native(Kismet) + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTrigger_Use.uc b/Development/Src/TgGame/Classes/TgTrigger_Use.uc new file mode 100644 index 0000000..94b485b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTrigger_Use.uc @@ -0,0 +1,24 @@ +class TgTrigger_Use extends Trigger + native(Kismet) + hidecategories(Navigation) + config(Engine); + +var () editinline string m_sDisplayText; +var () editinline string m_sInactiveText; +var () editinline int m_nInteractDistance; +var () editinline bool m_bAimToInteract; +var () editinline int m_nDisplayMsgId; +var () editinline int m_nInactiveMsgId; + +native function UsedByPawn(TgPawn User); // Export UTgTrigger_Use::execUsedByPawn(FFrame&, void* const) + +native function bool IsUsedEnabled(); // Export UTgTrigger_Use::execIsUsedEnabled(FFrame&, void* const) + +native function int GetMsgIdToDisplay(); // Export UTgTrigger_Use::execGetMsgIdToDisplay(FFrame&, void* const) + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgTutorialAnnouncer.uc b/Development/Src/TgGame/Classes/TgTutorialAnnouncer.uc new file mode 100644 index 0000000..fa225ae --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTutorialAnnouncer.uc @@ -0,0 +1,15 @@ +class TgTutorialAnnouncer extends Object within TgPlayerController + config(Engine); + +var array TutorialSounds; +var transient array QueuedSounds; +var export editinline transient AudioComponent CurrentSoundAC; +var transient TgPlayerController OwnerPC; + +function Init() { } + +function Destroyed() { } + +function AudioFinishedPlaying(AudioComponent AC) { } + +function PlayAnnouncement(int SoundIndex, SoundCue OptionalCue, optional bool bPlayImmediately=false, optional bool bFlushOthers=false) { } diff --git a/Development/Src/TgGame/Classes/TgTutorialInfo.uc b/Development/Src/TgGame/Classes/TgTutorialInfo.uc new file mode 100644 index 0000000..e0ae128 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTutorialInfo.uc @@ -0,0 +1,65 @@ +class TgTutorialInfo extends Actor + placeable + hidecategories(Navigation) + config(Engine); + +var () float fButtonHoldTime; +var () float fVolumeStandTime; +var () float fBotRespawnTime; +var () float fBotTargetsKilledWaitTime; +var () float fPlayerTeamCaptureMultiplier; +var () float fRepeatInstructionTime; +var () float fExtendedRepeatInstructionTime; +var () float fIntroExtensionTime; +var () float fBotDelayTravelToMovementTime; +var () float fBotDelayTravelToUltRangeTime; +var () float fPayloadContestPercent; +var () float fLanePusherGroundSpeed; +var () float fEnergyChargeMultiplier; +var () TgTutorialVolume ApproachHelperArea; +var () TgTutorialVolume AutoShootingRangeStandingTargetArea; +var () TgTutorialVolume UltimateShootingRangeStandingTargetArea; +var () TgTutorialVolume JumpLowerArea; +var () TgTutorialVolume JumpUpperArea; +var () TgBotFactory HelperBotFactory; +var () TgBotFactory AutoBotFactory; +var () TgBotFactory MultipleAutoBotFactory; +var () TgBotFactory BattleAbilityBotFactory; +var () TgBotFactory AltAbilityBotFactory; +var () TgBotFactory UltimateChargeBotFactory; +var () TgBotFactory UltimateAbilityBotFactory; +var () TgBotFactory ContestCapturePointBotFactory; +var () TgBotFactory ContestPayloadBotsFactory; +var () Actor HelperMoveTargetAutoRange; +var () Actor HelperMoveTargetMovementAbility; +var () Actor HelperMoveTargetUltRange; +var () Actor EndGameFocus; +var TgAIController_Behavior HelperBotController; + +function SpawnHelperBot() { } + +function DestroyHelperBot() { } + +function bool HelperIsNavigatingToOrAtDestination(Actor Destination) { } + +function MoveHelperToActor(Actor Destination) { } + +function TeleportHelperToActor(Actor Destination) { } + +defaultproperties +{ + fButtonHoldTime=0.5000000 + fVolumeStandTime=0.7500000 + fBotRespawnTime=0.7500000 + fBotTargetsKilledWaitTime=0.5000000 + fPlayerTeamCaptureMultiplier=0.8500000 + fRepeatInstructionTime=8.0000000 + fExtendedRepeatInstructionTime=16.0000000 + fIntroExtensionTime=4.2000000 + fBotDelayTravelToMovementTime=1.5000000 + fBotDelayTravelToUltRangeTime=1.5000000 + fPayloadContestPercent=0.6500000 + fLanePusherGroundSpeed=1000.0000000 + fEnergyChargeMultiplier=7.0000000 + Components[0]=none +} diff --git a/Development/Src/TgGame/Classes/TgTutorialVolume.uc b/Development/Src/TgGame/Classes/TgTutorialVolume.uc new file mode 100644 index 0000000..bcfa9db --- /dev/null +++ b/Development/Src/TgGame/Classes/TgTutorialVolume.uc @@ -0,0 +1,13 @@ +class TgTutorialVolume extends Volume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var bool m_bHasLocalPawn; +var bool m_bHasSeenLocalPawnBefore; + +event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgVisibilityVolume.uc b/Development/Src/TgGame/Classes/TgVisibilityVolume.uc new file mode 100644 index 0000000..1473770 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgVisibilityVolume.uc @@ -0,0 +1,14 @@ +class TgVisibilityVolume extends Volume + native(Volumes) + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +var (PlayerCameraEffects) ParticleSystem m_PlayerCameraParticleSystem; +var (PlayerCameraEffects) ParticleSystem m_PlayerCameraInvisibleParticleSystem; + +simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal) { } + +simulated event UnTouch(Actor Other) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgVolume.uc b/Development/Src/TgGame/Classes/TgVolume.uc new file mode 100644 index 0000000..b4f2b73 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgVolume.uc @@ -0,0 +1,6 @@ +class TgVolume extends Volume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgVolumePathNode.uc b/Development/Src/TgGame/Classes/TgVolumePathNode.uc new file mode 100644 index 0000000..a5a6eba --- /dev/null +++ b/Development/Src/TgGame/Classes/TgVolumePathNode.uc @@ -0,0 +1,12 @@ +class TgVolumePathNode extends VolumePathNode + native + hidecategories(Navigation,Lighting,LightColor,Force) + config(Engine); + +var () editconst bool m_bIsAboveGround; +var () editconst Vector m_vGroundHitLocation; +var () float m_fGroundTraceDistance; +var export editinline SpriteComponent m_GroundSprite; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWaterVolume.uc b/Development/Src/TgGame/Classes/TgWaterVolume.uc new file mode 100644 index 0000000..bc8f23d --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWaterVolume.uc @@ -0,0 +1,6 @@ +class TgWaterVolume extends WaterVolume + hidecategories(Navigation,Object,Movement,Display) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor.uc old mode 100755 new mode 100644 index 66ee86d..5d84046 --- a/Development/Src/TgGame/Classes/TgWeaponMeshActor.uc +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor.uc @@ -1,7 +1,234 @@ -class TgWeaponMeshActor extends Actor - native - notplaceable - hidecategories(Navigation); - -// Export UTgWeaponMeshActor::execGetMeshAsmIds(FFrame&, void* const) -native static function GetMeshAsmIds(int DeviceID, out int MeshId1P, out int MeshId3P); \ No newline at end of file +class TgWeaponMeshActor extends Actor + native + notplaceable + hidecategories(Navigation) + config(Engine) + dependson(TgObject); + +const TG_EQP_POINT_MAX = 33; + +enum TG_PLAY_FIRE_EFFECT_ON { + START_FIRE, // 0 + Fire, // 1 + NEVER, // 2 +}; + +enum EFirstPersonWeaponAttachState { + FPAS_NeedsUpdate, // 0 + FPAS_Attached, // 1 + FPAS_Detached, // 2 +}; + +struct QueuedImpactEffect { + var Vector HitLocation; + var bool bSuccessfulHit; + var Actor HitActor; + var Vector HitNormal; + var Vector FireOrigin; + var int nEquipSlot; + structdefaultproperties {} +}; + +var TgPawn m_OwningPawn; +var const Class m_WeaponMesh1PClass; +var export editinline TgSkeletalMeshComponent_Weapon m_WeaponMesh1P; +var const Class m_WeaponMesh3PClass; +var export editinline TgSkeletalMeshComponent_Weapon m_WeaponMesh3P; +var array m_SimpleTransitionerNodes1P; +var array m_DeviceModeBlendNodes; +var array m_FitToDurationNodes; +var array m_PaladinsCharacterNodes; +var array m_TriggerCameraAnimNodes; +var TgAnimNodeSlot PoseTransitioner; +var array m_PawnMeshSimpleTransitionerNodes; +var array m_PawnMeshFitToDurationNodes; +var array m_PawnMeshPaladinsCharacterNodes; +var array m_PawnMeshTriggerCameraAnimNodes; +var int m_nEquipSlot; +var int m_nDeviceId; +var int m_MeshAsmId1P; +var int m_MeshAsmId3P; +var Class m_WeaponClass; +var TgWeaponMeshActor.TG_PLAY_FIRE_EFFECT_ON m_PlayFireEffectsOn[33]; +var TgObject.TG_EQUIP_POINT m_ActiveEquipPoint; +var transient TgWeaponMeshActor.EFirstPersonWeaponAttachState Current1pAttachState; +var bool m_bShouldLoopingMuzzleTrace; +var bool m_bUseSocketForCameraAttach; +var bool m_bProceduralBob; +var protected bool m_bIsFOVZoomed; +var bool m_bFlourishBlocked; +var transient bool m_bIsHoldingBeacon; +var bool m_bWasViewTargetLastTick; +var bool m_bUseCameraAnims; +var bool c_bEnemyMatLoaded; +var export editinline TgSkeletalMeshComponent m_HandsMesh; +var export editinline TgSkeletalMeshComponent m_HeadMesh1P; +var Vector2D m_v2WeaponLagAimOffset; +var (WeaponLag) Vector2D m_nMaxWeaponLag; +var (WeaponLag) Vector2D m_v2WeaponLagInterpSpeed; +var (WeaponLag) Vector2D m_v2WeaponLagSmoothingFactor; +var Rotator m_rLastRotation; +var () editinline TgCameraShake m_FireCameraShake; +var int m_nTracerCounter; +var () int m_nTracerFrequency; +var name m_TracerName; +var float m_fTracerLifetime; +var name m_HitTargetName; +var name m_HitWallName; +var () float m_BeamEmitterEndPointOffset; +var const int m_nBeaconMeshId; +var array m_HitReactionSkelControls; +var array m_QueuedImpactEffects; + +native function GetMeshAsmIds(int DeviceID, out int MeshId1P, out int MeshId3P); // Export UTgWeaponMeshActor::execGetMeshAsmIds(FFrame&, void* const) + +native function string GetWeaponClassById(int DeviceID); // Export UTgWeaponMeshActor::execGetWeaponClassById(FFrame&, void* const) + +native function UpdateReticule(); // Export UTgWeaponMeshActor::execUpdateReticule(FFrame&, void* const) + +native function UpdateHandsMesh(); // Export UTgWeaponMeshActor::execUpdateHandsMesh(FFrame&, void* const) + +native function UpdateHeadMesh1P(); // Export UTgWeaponMeshActor::execUpdateHeadMesh1P(FFrame&, void* const) + +native function NativeInit(byte EquipPoint, int DeviceID); // Export UTgWeaponMeshActor::execNativeInit(FFrame&, void* const) + +native function TgDevice GetDefaultDevice(); // Export UTgWeaponMeshActor::execGetDefaultDevice(FFrame&, void* const) + +native function bool IsFriendlyWithLocalPawn(); // Export UTgWeaponMeshActor::execIsFriendlyWithLocalPawn(FFrame&, void* const) + +native function ForceRecalculateMaterial(); // Export UTgWeaponMeshActor::execForceRecalculateMaterial(FFrame&, void* const) + +native function RecalculateMaterial(bool bIsFriendlyWithLocalPawn, optional bool bForce); // Export UTgWeaponMeshActor::execRecalculateMaterial(FFrame&, void* const) + +native function SetLocationForWeapon(Vector NewLocation, Actor OwningPawn); // Export UTgWeaponMeshActor::execSetLocationForWeapon(FFrame&, void* const) + +native function float CheckOcclusion(); // Export UTgWeaponMeshActor::execCheckOcclusion(FFrame&, void* const) + +native function int GetFxOverrideFor(int nBaseFXID); // Export UTgWeaponMeshActor::execGetFxOverrideFor(FFrame&, void* const) + +simulated event PostBeginPlay() { } + +simulated function bool IsFirstPerson() { } + +simulated event Destroyed() { } + +simulated function ClearEquipPoint(byte EquipPoint) { } + +simulated function InitializeForWeapon(byte EquipPoint, int DeviceID, optional bool bClearEquipPoint=true) { } + +simulated function FixUpReferencesToWeaponMesh1P(SkeletalMeshComponent WeaponMesh) { } + +simulated function FixUpReferencesToPawnMesh(SkeletalMeshComponent PawnMesh) { } + +simulated function Initialize1P(byte EquipPoint, int DeviceID, optional int MeshAsmId1P=-1) { } + +simulated event PostInitAnimTree(SkeletalMeshComponent SkelComp) { } + +simulated function Initialize3P(byte EquipPoint, int DeviceID) { } + +simulated event SetActiveWeapon(byte EquipPoint, int DeviceID, Class WeaponClass, WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function PlayPutaway(TgObject.TG_EQUIP_POINT eqp, int DeviceID, Class WeaponClass) { } + +simulated function PlayRetrieve(WeaponMeshSwapStrategy SwapStrategy) { } + +simulated function OnBehindViewUpdated(bool bNewBehindView) { } + +native simulated function Set1PAttachState(TgWeaponMeshActor.EFirstPersonWeaponAttachState NewAttachState); // Export UTgWeaponMeshActor::execSet1PAttachState(FFrame&, void* const) + +simulated function Toggle1PVisibility(bool bVisible) { } + +simulated exec function PlayWeaponQuickRetrieve() { } + +simulated function ToggleHoldingBeacon(bool bHolding) { } + +simulated function bool CanUseCameraBone() { } + +simulated function Tick(float DeltaTime) { } + +simulated function UpdateTransform(float DeltaTime, optional bool bFromCameraUpdate=false) { } + +simulated function Rotator ApplyRotationModifier(Rotator inRot) { } + +simulated function GetAllFireLoopParticleSystemComponents(out array FireLoopParticles, optional int nEquipSlot=1) { } + +simulated function UpdateBeamEffects(int nEquipSlotToUpdate) { } + +simulated function bool ShouldUpdateBeamEffects(int nEquipSlot) { } + +simulated function UpdateFireLoopBeamParams(bool bHasEndPoint, Vector HitLocation, optional int nEquipSlot=1) { } + +simulated function bool GetAccurateBeamTarget(out Vector HitLocation, int nEquipSlot) { } + +simulated function bool GetSimulatedBeamTarget(out Vector HitLocation, optional int nEquipSlot) { } + +simulated function PlayTargetingEffects(int nEquipSlot) { } + +simulated function PlayBuildupEffects(int nEquipSlot) { } + +simulated function AttackComboTimeout() { } + +simulated function SetLoopingMuzzleEffects(bool bSetActive, optional int nEquipSlot=1) { } + +simulated function bool ShowAsLocallyOwned() { } + +simulated function PlayFireEffects(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function PlayFireFx(int nEquipSlot, int nFireMode) { } + +simulated function PlayFireAnimation(int nEquipSlot, float fRefireTime) { } + +simulated function PlayDeviceFiredEffects(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function Play3pFireAimedFX() { } + +simulated function TgSkeletalMeshComponent Get3PWeaponMesh() { } + +simulated function PlayTracerEffects(Vector endLocation, optional int nEquipSlot=0) { } + +simulated function OverrideTracerFireLoc(out Vector fireLoc) { } + +simulated function QueueInstantHitImpactEffects(Vector HitLocation, bool bSuccessfulHit, Actor HitActor, Vector HitNormal, Vector FireOrigin, int nEquipSlot) { } + +simulated function PlayQueuedInstantHitImpactEffects() { } + +simulated function GetFiringSocketTransform(out Vector fireLoc, out Rotator FireRot) { } + +simulated function TgSpecialFx GetMeshFx(name nmDisplayGroupName, optional int nEquipSlot=0) { } + +simulated function PlayInstantHitImpactEffects(Vector HitLocation, bool bSuccessfulHit, Actor HitActor, Vector HitNormal, Vector FireOrigin, int nEquipSlot) { } + +simulated function Vector GetClampedEmitDirection(Vector vInput, Vector vReflect) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +simulated event PlayReload(int nEqpPoint, float ReloadTime, int AmmoRemainingInClip, optional int ReloadType=0) { } + +simulated event PlayFlourish() { } + +simulated function BlockFlourish(bool bBlock) { } + +simulated function SetFOVZoomed(bool bEnabled) { } + +simulated function SetFireLoopDisplayGroup(name FireLoop, name FireLoopTailSound) { } + +simulated function ResetFireLoopDisplayGroup() { } + +simulated function AddWeaponLeading(Rotator NewRotation, Rotator OldRotation, float DeltaTime) { } + +simulated function OnPolymorphChanged(bool bDead) { } + +simulated function NotifyLocalPlayerTeamReceived() { } + +native function CacheHitReactionSkelControls(); // Export UTgWeaponMeshActor::execCacheHitReactionSkelControls(FFrame&, void* const) + +native function PlayHitReaction(TgObject.RecoilHitDir Dir, float DamageAmount); // Export UTgWeaponMeshActor::execPlayHitReaction(FFrame&, void* const) + +simulated function Hide3PWeaponMesh() { } + +simulated function Unhide3PWeaponMesh() { } + +simulated function PlayMeshTransitionAnimation(WeaponMeshSwapStrategy SwapStrategy, TgObject.TG_EQUIP_POINT eqp, TgDevice PreviousTargetingDevice, TgDevice NextTargetingDevice) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_AndroxusInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_AndroxusInhand.uc new file mode 100644 index 0000000..da670fe --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_AndroxusInhand.uc @@ -0,0 +1,18 @@ +class TgWeaponMeshActor_AndroxusInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool m_bHasFinishedBurst; +var int m_nCachedFireMode; + +simulated function FixUpReferencesToWeaponMesh1P(SkeletalMeshComponent WeaponMesh) { } + +simulated function PlayFireEffects(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +simulated function PlayFireAnimation(int nEquipSlot, float fRefireTime) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_AstroInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_AstroInhand.uc new file mode 100644 index 0000000..c63e620 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_AstroInhand.uc @@ -0,0 +1,15 @@ +class TgWeaponMeshActor_AstroInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +simulated function Initialize1P(byte EquipPoint, int DeviceID, optional int MeshAsmId1P=-1) { } + +simulated function Initialize3P(byte EquipPoint, int DeviceID) { } + +simulated function PlayFireFx(int nEquipSlot, int nFireMode) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_BarrierTankInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_BarrierTankInhand.uc new file mode 100644 index 0000000..c9490fa --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_BarrierTankInhand.uc @@ -0,0 +1,13 @@ +class TgWeaponMeshActor_BarrierTankInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool m_bHasFinishedBurst; + +simulated function PlayFireAnimation(int nEquipSlot, float fRefireTime) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_BombKingInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_BombKingInhand.uc new file mode 100644 index 0000000..2e1ceb2 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_BombKingInhand.uc @@ -0,0 +1,10 @@ +class TgWeaponMeshActor_BombKingInhand extends TgWeaponMeshActor + native + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool m_bPlayPoppyDetonateAnimation; + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_BuckInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_BuckInhand.uc new file mode 100644 index 0000000..15b567f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_BuckInhand.uc @@ -0,0 +1,16 @@ +class TgWeaponMeshActor_BuckInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var array m_PawnMeshProgressiveReloadNodes; +var array m_ProgressiveReloadNodes; + +simulated function FixUpReferencesToWeaponMesh1P(SkeletalMeshComponent WeaponMesh) { } + +simulated function FixUpReferencesToPawnMesh(SkeletalMeshComponent PawnMesh) { } + +simulated event PlayReload(int nEquipPoint, float ReloadTime, int AmmoRemainingInClip, optional int ReloadType=0) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_DemonInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_DemonInhand.uc new file mode 100644 index 0000000..f7a17e1 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_DemonInhand.uc @@ -0,0 +1,16 @@ +class TgWeaponMeshActor_DemonInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPawn_Demon m_CachedDemon; +var () float m_fWeaponZoomFOV; +var () float m_fWeaponFOVDefault; +var () float m_fDoFMultiplier; + +simulated function bool HasCachedDemon() { } + +simulated function UpdateTransform(float DeltaTime, optional bool bFromCameraUpdate=false) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_FlakInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_FlakInhand.uc new file mode 100644 index 0000000..0c3a6f0 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_FlakInhand.uc @@ -0,0 +1,10 @@ +class TgWeaponMeshActor_FlakInhand extends TgWeaponMeshActor + native(ChampFlak) + notplaceable + hidecategories(Navigation) + config(Engine); + +simulated function PlayInstantHitImpactEffects(Vector HitLocation, bool bSuccessfulHit, Actor HitActor, Vector HitNormal, Vector FireOrigin, int nEquipSlot) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_GauntletInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_GauntletInhand.uc new file mode 100644 index 0000000..bd54ce4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_GauntletInhand.uc @@ -0,0 +1,26 @@ +class TgWeaponMeshActor_GauntletInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgSpecialFx m_HyperBeamFX; +var Actor m_LastInhandTarget; + +simulated function UpdateTransform(float DeltaTime, optional bool bFromCameraUpdate=false) { } + +simulated function bool GetSimulatedBeamTarget(out Vector HitLocation, optional int nEquipSlot) { } + +simulated function bool GetAccurateBeamTarget(out Vector HitLocation, int nEquipSlot) { } + +simulated function PlayFireFx(int nEquipSlot, int nFireMode) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +simulated function ActivateFireLoopFailed(bool bIsActive) { } + +simulated function UpdateFireLoopBeamParams(bool bHasEndPoint, Vector HitLocation, optional int nEquipSlot=1) { } + +simulated function SetBeamTangent(Vector HitLocation, optional int nEquipSlot=1) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_GroverInhandAxe.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_GroverInhandAxe.uc new file mode 100644 index 0000000..9697a03 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_GroverInhandAxe.uc @@ -0,0 +1,13 @@ +class TgWeaponMeshActor_GroverInhandAxe extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgAnimNodeStanceTransitionerSynchronized StanceNode; + +simulated function FixUpReferencesToPawnMesh(SkeletalMeshComponent PawnMesh) { } + +simulated function Play3pFireAimedFX() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_IceStaff.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_IceStaff.uc new file mode 100644 index 0000000..85a81b8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_IceStaff.uc @@ -0,0 +1,7 @@ +class TgWeaponMeshActor_IceStaff extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_Lance.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_Lance.uc new file mode 100644 index 0000000..815455a --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_Lance.uc @@ -0,0 +1,7 @@ +class TgWeaponMeshActor_Lance extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_LexInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_LexInhand.uc new file mode 100644 index 0000000..569f6a4 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_LexInhand.uc @@ -0,0 +1,56 @@ +class TgWeaponMeshActor_LexInhand extends TgWeaponMeshActor + native(ChampLex) + notplaceable + hidecategories(Navigation) + config(Engine); + +const MAX_THE_LAW_TARGETS = 5; + +const THE_LAW_TARGETTING_BEAM_FX_ID = 7680; + +const THE_LAW_TARGETTING_BEAM_EXECUTE_FX_ID = 7834; + +const THE_LAW_HIT_BEAM_FX_ID = 7703; + +enum EBeamState { + EBS_Hidden, // 0 + EBS_Targeting, // 1 + EBS_Hitting, // 2 +}; + +var TgPawn_Lex m_CachedLex; +var TgBeamHelper c_Beams[5]; +var TgBeamHelper c_ExecutableBeams[5]; +var array m_LexCharacterNodes1P; +var array m_LexCharacterNodes3P; +var name c_LeftInHandSocket; +var name c_RightInHandSocket; +var bool c_bJustRenderedBeamsForUlt; +var TgWeaponMeshActor_LexInhand.EBeamState c_eBeamState; + +simulated function bool HasCachedLex() { } + +simulated function ShowTargetingBeams() { } + +simulated function ShowHitBeams() { } + +simulated function HideBeams() { } + +simulated function ClearBeams() { } + +simulated function ClearBeam(int Index) { } + +simulated function ClearNonExecutableBeam(int Index) { } + +simulated function ClearExecutableBeam(int Index) { } + +simulated function ManageBeamNonExecutable(int Index) { } + +simulated function ManageBeamExecutable(int Index) { } + +simulated event ManageBeams() { } + +simulated function OverrideTracerFireLoc(out Vector fireLoc) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_LianInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_LianInhand.uc new file mode 100644 index 0000000..72274fb --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_LianInhand.uc @@ -0,0 +1,30 @@ +class TgWeaponMeshActor_LianInhand extends TgWeaponMeshActor + native(ChampPrincess) + notplaceable + hidecategories(Navigation) + config(Engine); + +const GRACE_TRACER_FX_ID = 8105; + +const GRACE_TRACER_DURATION = 1.0f; + +var TgPawn_Princess m_CachedLian; +var TgBeamHelper c_GraceTracers[15]; +var bool c_bTracersVisible; + +simulated function bool HasCachedLian() { } + +simulated function ShowGraceTracers() { } + +simulated function HideGraceTracers() { } + +simulated function ClearGraceTracers() { } + +simulated function ClearGraceTracer(int Index) { } + +simulated event ManageGraceTracer(int Index) { } + +simulated event ManageGraceTracers() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_LongbowInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_LongbowInhand.uc new file mode 100644 index 0000000..93ea862 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_LongbowInhand.uc @@ -0,0 +1,19 @@ +class TgWeaponMeshActor_LongbowInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPawn_Longbow m_CachedLongbow; +var bool m_bPlayingPlantedFireSFX; +var bool m_bPlayingUltimateFireSFX; + +simulated function bool HasCachedLongbow() { } + +simulated function PlayFireEffects(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function UsePlantedFireSounds(bool bShouldUse) { } + +simulated function UseUltimateFireSounds(bool bShouldUse) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_OracleInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_OracleInhand.uc new file mode 100644 index 0000000..659beaf --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_OracleInhand.uc @@ -0,0 +1,35 @@ +class TgWeaponMeshActor_OracleInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +const MAX_BEAM_SEGMENTS = 12; + +const BEAM_FADE_START_DIST = 800.0f; + +const BEAM_FADE_END_DIST = 3000.0f; + +const BEAM_FADE_START_VALUE = 0.0f; + +const BEAM_FADE_END_VALUE = 0.7f; + +var Actor m_LastRestoreSoulTarget; + +simulated function UpdateTransform(float DeltaTime, optional bool bFromCameraUpdate=false) { } + +simulated function bool GetSimulatedBeamTarget(out Vector HitLocation, optional int nEquipSlot) { } + +simulated function bool GetAccurateBeamTarget(out Vector HitLocation, int nEquipSlot) { } + +simulated function PlayFireFx(int nEquipSlot, int nFireMode) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +simulated function ActivateFireLoopFailed(bool bIsActive) { } + +simulated function UpdateFireLoopBeamParams(bool bHasEndPoint, Vector HitLocation, optional int nEquipSlot=1) { } + +simulated function SetBeamTangent(Vector HitLocation, optional int nEquipSlot=1) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_Orb.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_Orb.uc new file mode 100644 index 0000000..dcef2d5 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_Orb.uc @@ -0,0 +1,18 @@ +class TgWeaponMeshActor_Orb extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var () float m_fFireGlowFadeTime; +var float m_fRemainingGlowFadeTime; + +simulated function PlayFireEffects(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +simulated function Tick(float DeltaTime) { } + +simulated function bool GetSimulatedBeamTarget(out Vector HitLocation, optional int nEquipSlot) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_OwlInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_OwlInhand.uc new file mode 100644 index 0000000..58caf60 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_OwlInhand.uc @@ -0,0 +1,15 @@ +class TgWeaponMeshActor_OwlInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPawn_Owl m_CachedOwl; + +simulated function PlayInstantHitImpactEffects(Vector HitLocation, bool bSuccessfulHit, Actor HitActor, Vector HitNormal, Vector FireOrigin, int nEquipSlot) { } + +simulated function PlayTracerEffects(Vector endLocation, optional int nEquipSlot=0) { } + +simulated function bool HasCachedOwl() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_PotionLauncher.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_PotionLauncher.uc new file mode 100644 index 0000000..922eb64 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_PotionLauncher.uc @@ -0,0 +1,7 @@ +class TgWeaponMeshActor_PotionLauncher extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_RuckusInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_RuckusInhand.uc new file mode 100644 index 0000000..26a60f8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_RuckusInhand.uc @@ -0,0 +1,17 @@ +class TgWeaponMeshActor_RuckusInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var export editinline TgMuzzleFlash m_SecondaryMuzzleFlashLight; + +simulated function InitializeForWeapon(byte EquipPoint, int DeviceID, optional bool bClearEquipPoint=true) { } + +simulated function PlayFireEffects(int nEquipSlot, float fRefireTime, int nFireMode) { } + +simulated function StopFireEffects(int nEquipSlot) { } + +simulated function OverrideTracerFireLoc(out Vector fireLoc) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_SkyeInHand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_SkyeInHand.uc new file mode 100644 index 0000000..16c8887 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_SkyeInHand.uc @@ -0,0 +1,7 @@ +class TgWeaponMeshActor_SkyeInHand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_Sniper.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_Sniper.uc new file mode 100644 index 0000000..0e5c93b --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_Sniper.uc @@ -0,0 +1,9 @@ +class TgWeaponMeshActor_Sniper extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +simulated function SetLoopingMuzzleEffects(bool bSetActive, optional int nEquipSlot=1) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_TyraInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_TyraInhand.uc new file mode 100644 index 0000000..f6d154f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_TyraInhand.uc @@ -0,0 +1,16 @@ +class TgWeaponMeshActor_TyraInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPawn_Tyra m_CachedTyra; +var () float m_fWeaponZoomFOV; +var () float m_fWeaponFOVDefault; +var () float m_fDoFMultiplier; + +simulated function bool HasCachedTyra() { } + +simulated function UpdateTransform(float DeltaTime, optional bool bFromCameraUpdate=false) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_ViktorInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_ViktorInhand.uc new file mode 100644 index 0000000..2bb293f --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_ViktorInhand.uc @@ -0,0 +1,21 @@ +class TgWeaponMeshActor_ViktorInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var TgPawn_Viktor m_CachedViktor; +var () float m_fWeaponZoomFOV; +var () float m_fWeaponFOVDefault; +var () float m_fDoFMultiplier; +var bool m_bPlayingADSFX; + +simulated function Rotator ApplyRotationModifier(Rotator NewRotation) { } + +simulated function bool HasCachedViktor() { } + +simulated function UpdateTransform(float DeltaTime, optional bool bFromCameraUpdate=false) { } + +simulated function UseADSFireSounds(bool bShouldUse) { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_YingInhand.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_YingInhand.uc new file mode 100644 index 0000000..23cf5b9 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_YingInhand.uc @@ -0,0 +1,17 @@ +class TgWeaponMeshActor_YingInhand extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +var bool m_bHasFinishedBurst; + +simulated function InitializeForWeapon(byte EquipPoint, int DeviceID, optional bool bClearEquipPoint=true) { } + +simulated function bool GetSimulatedBeamTarget(out Vector HitLocation, optional int nEquipSlot) { } + +simulated function PlayFireAnimation(int nEquipSlot, float fRefireTime) { } + +simulated function EndYingLoopingBeam() { } + +defaultproperties +{} diff --git a/Development/Src/TgGame/Classes/TgWeaponMeshActor_YingInhandProj.uc b/Development/Src/TgGame/Classes/TgWeaponMeshActor_YingInhandProj.uc new file mode 100644 index 0000000..01491f8 --- /dev/null +++ b/Development/Src/TgGame/Classes/TgWeaponMeshActor_YingInhandProj.uc @@ -0,0 +1,11 @@ +class TgWeaponMeshActor_YingInhandProj extends TgWeaponMeshActor + notplaceable + hidecategories(Navigation) + config(Engine); + +simulated function InitializeForWeapon(byte EquipPoint, int DeviceID, optional bool bClearEquipPoint=true) { } + +simulated function SetLoopingMuzzleEffects(bool bSetActive, optional int nEquipSlot=1) { } + +defaultproperties +{} diff --git a/Development/Src/TgMod/Classes/TempestProxyActor.uc b/Development/Src/TgMod/Classes/TempestProxyActor.uc deleted file mode 100755 index 429b5fb..0000000 --- a/Development/Src/TgMod/Classes/TempestProxyActor.uc +++ /dev/null @@ -1,51 +0,0 @@ -class TempestProxyActor extends Actor; - -simulated reliable client function ClientAddCheats() { - local TgPlayerController PC; - PC = TgPlayerController(Owner); - - PC.CheatClass = Class'TgGame.TgBattleCheatManager'; - if(PC.CheatManager == none) { - PC.CheatManager = new (PC) Class'TgGame.TgBattleCheatManager'; - if(PC.CheatManager != none) { - PC.CheatManager.InitCheatManager(); - `Log((("TempestProxyActor: CheatManager successfully created and initialized : " @ string(PC.CheatManager.Name)) @ ":") @ string(PC.CheatManager.Outer.Name)); - } else { - `Log("TempestProxyActor: Failed to create CheatManager!"); - } - } -} - -function ServerAddCheats() { - if (Role == ROLE_Authority) { - ClientAddCheats(); - } - ClientAddCheats(); -} - -simulated reliable client function ClientConsoleCommand(string Command, optional bool bWriteToLog) { - local TgBattleCheatManager CM; - - CM = TgBattleCheatManager(TgPlayerController(Owner).CheatManager); - if (CM != none) { - CM.Outer.ConsoleCommand(Command, bWriteToLog); - } else { - `Log("TempestProxyActor: No cheat manager found"); - } -} - -simulated reliable client function ClientPrecacheClass(string godName, optional string skinName, optional string weaponSkinName) { - ClientConsoleCommand("PrecacheClass" @ godName @ skinName @ weaponSkinName); -} - -simulated reliable client function ClientTestPrecache(int nBotId, int nSkinId, int nWeaponSkinId, int nHeadId, optional bool bAll = false) { - ClientConsoleCommand("TestPrecache" @ nBotId @ nSkinId @ nWeaponSkinId @ nHeadId @ "true"); -} - -public simulated reliable client function talkToClient(string message) { - `log("The server said to me :" @ message); -} - -defaultproperties { - bOnlyRelevantToOwner=true -} \ No newline at end of file diff --git a/Development/Src/TgMod/Classes/TempestUtils.uc b/Development/Src/TgMod/Classes/TempestUtils.uc deleted file mode 100755 index 07bab56..0000000 --- a/Development/Src/TgMod/Classes/TempestUtils.uc +++ /dev/null @@ -1,159 +0,0 @@ -class TempestUtils extends Object - abstract - config(TempestUtils); - -var config string CachedName; -var config string CachedCharacter; - -static function TempestProxyActor SetupProxy(TgPlayerController PC) { - local TempestProxyActor ProxyActor; - - ProxyActor = PC.Spawn(Class'TgMod.TempestProxyActor', PC); - if (ProxyActor != none) { - ProxyActor.SetOwner(PC); - - return ProxyActor; - } else { - `log("Failed to spawn proxy actor"); - return none; - } -} - -static event NavigationPoint GetReviveLocation(TgGame Game, Controller Player, out Vector OutLocation, out Rotator OutRotation) -{ - local NavigationPoint RestartNavPoint; - local TgTeamPlayerStart TPS; - local Vector Forward; - - RestartNavPoint = Game.FindPlayerStart(Player); - // End:0x117 - if(RestartNavPoint != none) - { - OutLocation = RestartNavPoint.Location; - OutRotation = RestartNavPoint.Rotation; - // End:0x114 - if(Player.Pawn != none) - { - TPS = TgTeamPlayerStart(RestartNavPoint); - // End:0x114 - if(TPS != none) - { - OutRotation = TPS.GetSpawnRotationFor(Player.Pawn); - } - } - } - - // End:0x1B8 - if(Player.Pawn != none) - { - OutLocation = Player.Pawn.Location; - OutRotation = Player.Pawn.Rotation; - } - else - { - // End:0x217 - if(Player != none) - { - OutLocation = Player.Location; - OutRotation = Player.Rotation; - } - } - - Forward = Vector(OutRotation); - // End:0x26C - if(Forward.Z < 1.0000000) - { - OutRotation = Rotator(Normal2D(Forward)); - } - else - { - OutRotation = MakeRotator(0, 0, 0); - } - return RestartNavPoint; - //return ReturnValue; -} - -static function SetupPRI(TgGame Game, TgRepInfo_Player PRI, int Address, string PlayerName, int taskforce, int mountId, int titleId, optional bool spectator) { - local TgPlayerController PC; - PC = TgPlayerController(PRI.Owner); - - if(taskforce == 3) spectator = true; - - PC.s_nPlayerId = Address; - PC.s_qwNetAccessFlags.A = 0xFFFFFFFF; - PC.s_qwNetAccessFlags.B = 0xFFFFFFFF; - - PRI.UniqueId.Uid.A = PC.s_nPlayerId; - PRI.r_nPlayerId = PC.s_nPlayerId; - PRI.PlayerName = PlayerName; - //PRI.r_nPawnId = PC.s_nPlayerId; - - PC.m_nVoicePackId = 13450; - PRI.r_nMountSkinId = mountId; - PRI.r_nEquippedTitleId = titleId; - //PRI.r_nVoicePackId = 13450; - - PRI.SetTaskForceNumber(taskforce, true); - - PRI.bOnlySpectator = false; - PRI.bIsSpectator = false; - PRI.bReadyToPlay = true; - PRI.bWaitingPlayer = false; - PRI.bAdmin = true; -} - -static function SetupSpectatorPRI(TgDemoRecSpectator PC, TgRepInfo_Player PRI, int Address, string PlayerName, int taskforce) { - - PC.s_nPlayerId = Address; - PC.s_qwNetAccessFlags.A = 0xFFFFFFFF; - PC.s_qwNetAccessFlags.B = 0xFFFFFFFF; - - PRI.UniqueId.Uid.A = PC.s_nPlayerId; - PRI.r_nPlayerId = PC.s_nPlayerId; - PRI.PlayerName = PlayerName; - //PRI.r_nPawnId = PC.s_nPlayerId; - - PRI.SetTaskForceNumber(255, true); - - PRI.bOnlySpectator = true; - PRI.bIsSpectator = true; - PRI.bReadyToPlay = true; - PRI.bWaitingPlayer = false; -} - -static function SpawnPawn(TgGame Game, TgPlayerController PC, int BotId, int SkinId, int DeviceSkinId, int HeadId, int mountId) { - local TgPawn SpawnedPawn; - local NavigationPoint PlayerStart; - local Vector OutLocation; - local Rotator OutRotation; - local TgPawn_Character CharacterPawn; - - PlayerStart = GetReviveLocation(Game, PC, OutLocation, OutRotation); - - Game.EnsureBotPrecache(BotId, SkinId, HeadId, DeviceSkinId); - SpawnedPawn = TgPawn(Game.SpawnDefaultPawnFor(PC, PlayerStart)); - SpawnedPawn.PostPawnSetupServer(); - - if(SpawnedPawn != none) { - PC.Possess(SpawnedPawn, true); - PC.AcknowledgePossession(SpawnedPawn); - - PC.WorldInfo.NetMode = NM_Standalone; - SpawnedPawn = Game.SpawnTemplatePlayer(PC, BotId, SkinId, DeviceSkinId, HeadId); - PC.WorldInfo.NetMode = NM_DedicatedServer; - - if(SpawnedPawn != none) { - CharacterPawn = TgPawn_Character(SpawnedPawn); - CharacterPawn.r_nMountSkinId = mountId; - //CharacterPawn.r_nVoicePackId = 13450; - CharacterPawn.ApplyPawnSetup(); - CharacterPawn.PostPawnSetup(); - PC.Possess(CharacterPawn, true); - PC.AcknowledgePossession(CharacterPawn); - } else { - `log("TempestUtils: Failed to spawn pawn 2"); - } - } else { - `log("TempestUtils: Failed to spawn pawn"); - } -} \ No newline at end of file diff --git a/Development/Src/TgMod/Classes/TgModGameViewportClient.uc b/Development/Src/TgMod/Classes/TgModGameViewportClient.uc deleted file mode 100755 index 7ebae5d..0000000 --- a/Development/Src/TgMod/Classes/TgModGameViewportClient.uc +++ /dev/null @@ -1,118 +0,0 @@ -class TgModGameViewportClient extends TgGameViewportClient within Engine; - -var TgPlayerController m_TgPC; -var float CurrentTime, StartTime; -var bool bHasStarted; - -var TempestProxyActor ProxyActor; - -function PostRender(Canvas Canvas) -{ - super.PostRender(Canvas); - - // Access TimeSeconds from PlayerController's WorldInfo - - m_TgPC = TgPlayerController(self.GetPlayerOwner(0).Actor); - if (m_TgPC == None || m_TgPC.WorldInfo == None) - { - return; - } - - CurrentTime = m_TgPC.WorldInfo.TimeSeconds; - - // Set StartTime once - if (!bHasStarted) - { - StartTime = CurrentTime; - bHasStarted = true; - } - - // Only draw for 20 seconds - if (CurrentTime - StartTime < 20) - { - Canvas.SetDrawColor(0,255,0,255); - Canvas.SetPos(49, 50); - Canvas.DrawText("TEMPEST LAUNCHER"); - Canvas.SetPos(50, 65); - Canvas.DrawText("F1: ENTER SHOOTING RANGE"); - Canvas.SetPos(50, 80); - Canvas.DrawText("F2: OPEN CONSOLE"); - } - - findPCAndAttachCM(); -} - -event bool Init(out string OutError) -{ - // Create the viewport's console. - - ViewportConsole = new(Self) class'Engine.Console'; - - if ( InsertInteraction(ViewportConsole) == -1 ) - { - OutError = "Failed to add interaction to GlobalInteractions array:" @ ViewportConsole; - return false; - } - - SetConsoleTarget(0); - - return super.Init(OutError); -} - -/** - * Sets the player which console commands will be executed in the context of. - */ -exec function SetConsoleTarget(int PlayerIndex) -{ - if (ViewportConsole != none) - { - if(PlayerIndex >= 0 && PlayerIndex < GamePlayers.Length) - { - ViewportConsole.ConsoleTargetPlayer = GamePlayers[PlayerIndex]; - } - else - { - ViewportConsole.ConsoleTargetPlayer = None; - } - } -} - -public function findPCAndAttachCM() { - m_TgPC = TgPlayerController(self.GetPlayerOwner(0).Actor); - - if (m_TgPC.CheatManager == None) { - ProxyActor = Class'TempestUtils'.static.SetupProxy(m_TgPC); - m_TgPC.CheatClass = class'TgBattleCheatManager'; - m_TgPC.CheatManager = new(m_TgPC) class'TgBattleCheatManager'; - if (m_TgPC.CheatManager != None) { - m_TgPC.CheatManager.InitCheatManager(); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_evie m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_grover m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_longbow m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_cassie m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_pip m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_bombking m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_barik m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_makoa m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_barriertank m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_darklord m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_Fairy m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_Flak m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_MalDamba m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_Oracle m_bAirAccuracyPenalty False"); - //hitscans - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_astro m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_Kinessa m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_lex m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_owl m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_ruckus m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_skye m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_tyra m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_viktor m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("setclientvalue Default__TgPawn_ying m_bAirAccuracyPenalty False"); - m_TgPC.ConsoleCommand("changetaskforce 1"); - } else { - `Log("Failed to create CheatManager!"); - } - } -} \ No newline at end of file diff --git a/Development/Src/TmCore/Classes/TmCheatManager.uc b/Development/Src/TmCore/Classes/TmCheatManager.uc new file mode 100644 index 0000000..38bf1f9 --- /dev/null +++ b/Development/Src/TmCore/Classes/TmCheatManager.uc @@ -0,0 +1,51 @@ +class TmCheatManager extends TgBattleCheatManager within TgPlayerController + config(Game); + +var TmProxyActor Proxy; +var int DumpGfxDepth; + +function TmProxyActor GetProxy() { + local TmProxyActor PA; + + if (Proxy != none) { + return Proxy; + } + + foreach Outer.AllActors(class'TmCore.TmProxyActor', PA) { + if (PA.Owner == Outer) { + Proxy = PA; + return PA; + } + } + return none; +} + +exec function tempest(string command) { + if (GetProxy() != none) { + GetProxy().ServerVerifyVehiclePhys(command); + } +} + +exec function tmc(string command) { + tempest(command); +} + +exec function admin(string command, optional string option) { + if (GetProxy() != none) { + GetProxy().ServerToggleVehicleJets(command, option); + } +} + +exec function TEDBN(string sDeviceName, int nEquipPointId, optional int FireMode = 1) +{ + if (GetProxy() != none) { + GetProxy().ServerVerifyVehiclePhys("tedbn"@sDeviceName@nEquipPointId@FireMode); + } +} + +exec function EDBN(string sDeviceName, int nEquipPointId, optional int FireMode = 1) +{ + if (GetProxy() != none) { + GetProxy().ServerVerifyVehiclePhys("edbn"@sDeviceName@nEquipPointId@FireMode); + } +} \ No newline at end of file diff --git a/Development/Src/TmCore/Classes/TmGameViewportClient.uc b/Development/Src/TmCore/Classes/TmGameViewportClient.uc new file mode 100644 index 0000000..05f2924 --- /dev/null +++ b/Development/Src/TmCore/Classes/TmGameViewportClient.uc @@ -0,0 +1,160 @@ +class TmGameViewportClient extends TgGameViewportClient within Engine + config(TmConfig); + +var TgPlayerController PC; +var TmProxyActor PA; + +var float StartTime; +var bool bHasStarted; + +const AB_SLOTS = 5; + +function PostRender(Canvas Canvas) +{ + super.PostRender(Canvas); + + PC = TgPlayerController(self.GetPlayerOwner(0).Actor); + if (PC == none || PC.WorldInfo == none) + return; + + if (!bHasStarted) + { + StartTime = PC.WorldInfo.TimeSeconds; + bHasStarted = true; + } + + if (`TimeSinceEx(PC, StartTime) < 20) + { + Canvas.SetDrawColor(0, 255, 0, 255); + Canvas.SetPos(49, 50); + Canvas.DrawText("TEMPEST LAUNCHER"); + Canvas.SetPos(50, 65); + Canvas.DrawText("F1: ENTER SHOOTING RANGE"); + Canvas.SetPos(50, 80); + Canvas.DrawText("F2: OPEN CONSOLE"); + } + + findPCAndAttachCM(); + UIAbilities(Canvas); + + if (TmSpectatorController(PC) != none) + { + TmSpectatorController(PC).TickSpectatorPlayerHUD(); + TmSpectatorController(PC).TickSpectatorTeamHUD(); + } +} + +public function UIAbilities(Canvas Canvas) +{ + local TmSpectatorController SPC; + local int i; + local float x, y, w, h, gap, slotX, slotY, barH; + + SPC = TmSpectatorController(PC); + if (SPC == none || Canvas == none) + return; + + w = 54.0; + h = 54.0; + gap = 6.0; + barH = 6.0; + x = (Canvas.ClipX - (w * 5.0 + gap * 4.0)) * 0.5; + y = Canvas.ClipY - h - barH - 16.0; + + for (i = 0; i < AB_SLOTS; i++) + { + slotX = x + i * (w + gap); + slotY = y; + + Canvas.SetDrawColor(0, 0, 0, 160); + Canvas.SetPos(slotX, slotY); + Canvas.DrawRect(w, h); + + if (SPC.Abilities[i].DeviceName == "") + continue; + + Canvas.DrawColor = MakeColor(255, 200, 120, 255); + Canvas.Font = Class'Engine.Engine'.static.GetTinyFont(); + Canvas.SetPos(slotX + 4, slotY + 3); + Canvas.DrawText(GetAbilityKey(i), false); + + Canvas.DrawColor = MakeColor(255, 255, 255, 255); + Canvas.SetPos(slotX + 4, slotY + 16); + Canvas.DrawText(Left(SPC.Abilities[i].DeviceName, 12), false); + + if (SPC.Abilities[i].MaxAmmo > 0) + { + Canvas.DrawColor = MakeColor(255, 255, 255, 255); + Canvas.SetPos(slotX + 4, slotY + h - 20); + Canvas.DrawText(SPC.Abilities[i].CurrentAmmo @ "/" @ SPC.Abilities[i].MaxAmmo, false); + } + + if (SPC.Abilities[i].CooldownRemain > 0.5) + { + Canvas.DrawColor = MakeColor(255, 120, 60, 255); + Canvas.Font = Class'Engine.Engine'.static.GetLargeFont(); + Canvas.SetPos(slotX + 8, slotY + h - 30); + Canvas.DrawText(FormatTimer(SPC.Abilities[i].CooldownRemain), false); + } + } +} + +static final function string FormatTimer(float Secs) +{ + local int tenths; + if (Secs < 0.0) + Secs = 0.0; + tenths = int(Secs * 10.0 + 0.5); + return (tenths / 10) $ "." $ (tenths % 10); +} + +static final function string GetAbilityKey(int i) +{ + if (i == 0) return "LMB"; + if (i == 1) return "RMB"; + if (i == 2) return "Q"; + if (i == 3) return "F"; + if (i == 4) return "E"; + return ""; +} + +event bool Init(out string OutError) +{ + ViewportConsole = new(Self) class'Engine.Console'; + if (InsertInteraction(ViewportConsole) == -1) + { + OutError = "Failed to add interaction to GlobalInteractions array:" @ ViewportConsole; + return false; + } + SetConsoleTarget(0); + return super.Init(OutError); +} + +exec function SetConsoleTarget(int PlayerIndex) +{ + if (ViewportConsole != none) + { + if (PlayerIndex >= 0 && PlayerIndex < GamePlayers.Length) + ViewportConsole.ConsoleTargetPlayer = GamePlayers[PlayerIndex]; + else + ViewportConsole.ConsoleTargetPlayer = none; + } +} + +public function findPCAndAttachCM() +{ + PC = TgPlayerController(self.GetPlayerOwner(0).Actor); + if (PC.CheatManager == none) + { + PA = `UTILS.SetupProxy(PC); + PC.CheatClass = class'TmCheatManager'; + PC.CheatManager = new(PC) class'TmCheatManager'; + if (PC.CheatManager != none) + { + PC.CheatManager.InitCheatManager(); + PC.ConsoleCommand("changetaskforce 1"); + } + else + `LogError('TmGameViewport', "Failed to create CheatManager!"); + } +} diff --git a/Development/Src/TmCore/Classes/TmProxyActor.uc b/Development/Src/TmCore/Classes/TmProxyActor.uc new file mode 100644 index 0000000..31ef783 --- /dev/null +++ b/Development/Src/TmCore/Classes/TmProxyActor.uc @@ -0,0 +1,105 @@ +class TmProxyActor extends Actor; + +var TmCheatManager OwnedCheatManager; // CheatManager this proxy created/bound on its client + +simulated reliable client function ClientAddCheats() { + local TgPlayerController PC; + local TmCheatManager CM; + + PC = TgPlayerController(Owner); + if (PC == none) { + return; + } + + CM = TmCheatManager(PC.CheatManager); + if (CM == none) { + PC.CheatClass = Class'TmCheatManager'; + CM = new (PC) Class'TmCheatManager'; + PC.CheatManager = CM; + } + + if (CM != none) { + CM.InitCheatManager(); + CM.Proxy = self; + OwnedCheatManager = CM; + `LogInfo('TmProxyActor', (("CheatManager successfully created and initialized : " @ string(CM.Name)) @ ":") @ string(CM.Outer.Name)); + } else { + `LogError('TmProxyActor', "Failed to create CheatManager!"); + } +} + +function ServerAddCheats() { + if (Role == ROLE_Authority) { + ClientAddCheats(); + } + ClientAddCheats(); +} + + +// CLIENT -> SERVER + +// Dumb way of executing arbitrary commands on the server using one Hi-Rez's whitelisted Server commands +reliable server function ServerVerifyVehiclePhys(string Command) { + local TgPlayerController PC; + + if (Role == ROLE_Authority) { + PC = TgPlayerController(Owner); + if (PC != none) { + PC.ConsoleCommand(Command); + } + } +} + +// Same thing +reliable server function ServerToggleVehicleJets(string command, optional string option) { + local TgPlayerController PC; + + PC = TgPlayerController(Owner); + + if (command ~= "help") { + PC.ClientMessage("Admin help"); + } +} + +// SERVER -> CLIENT + +simulated reliable client function ClientLog(string message) { + `LogInfo('TmProxyActor', message); +} + +simulated reliable client function ClientConsoleCommand(string Command, optional bool WriteToLog) { + local TmCheatManager CM; + + CM = TmCheatManager(TgPlayerController(Owner).CheatManager); + if (CM != none) { + CM.Outer.ConsoleCommand(Command, WriteToLog); + } else { + `Log("TempestProxyActor: No cheat manager found"); + } +} + +simulated reliable client function ClientPrecacheClass(string GodName, optional string SkinName, optional string WeaponSkinName) { + ClientConsoleCommand("PrecacheClass" @ GodName @ SkinName @ WeaponSkinName); +} + +simulated reliable client function ClientTestPrecache(int BotId, int SkinId, int WeaponSkinId, int HeadId) { + ClientConsoleCommand("TestPrecache" @ BotId @ SkinId @ WeaponSkinId @ HeadId @ "true"); +} + +public simulated reliable client function talkToClient(string message) { + `LogInfo('TmProxyActor', "The server said to me :" @ message); +} + +function string GetOwnerName() { + local TgPlayerController PC; + + PC = TgPlayerController(Owner); + if (PC != none && PC.PlayerReplicationInfo != none) { + return PC.PlayerReplicationInfo.PlayerName; + } + return string(Owner); +} + +defaultproperties { + bOnlyRelevantToOwner=true +} \ No newline at end of file diff --git a/Development/Src/TmCore/Classes/TmSpectatorController.uc b/Development/Src/TmCore/Classes/TmSpectatorController.uc new file mode 100644 index 0000000..ea55969 --- /dev/null +++ b/Development/Src/TmCore/Classes/TmSpectatorController.uc @@ -0,0 +1,241 @@ +class TmSpectatorController extends TgSpectatorController + config(Game) + hidecategories(Navigation) + dependson(TgObject); + +struct transient SpecAbility { + var string DeviceName; + var float CooldownPct; + var float CooldownRemain; + var int CurrentAmmo; + var int MaxAmmo; +}; +var transient SpecAbility Abilities[5]; +var transient bool bTimerOn; + +var transient bool bClonedHUD; +var transient int LastClonedTickCount; +var transient int bBorderBuilt; + +const ABILITY_SLOTS = 5; + +simulated function ForwardToSpectatingMatch() +{ + super.ForwardToSpectatingMatch(); + if (WorldInfo.NetMode != NM_DedicatedServer) + SetSpectatorCameraMode(SpectatorCameraMode.SpecCam_FollowThirdPerson); +} + +simulated function SpecAbility GetAbility(int i) +{ + if (i >= 0 && i < ABILITY_SLOTS) + return Abilities[i]; +} + +public function Class GetHudClass(Class pNewHudType) +{ + `LogInfo('TmSpectatorController', "GetHudClass: requested=" @ pNewHudType @ " -> returning TgClient.TgGameHUD"); + return Class'TgClient.TgGameHUD'; +} + +function SpectatorSetViewTarget(Actor VT, optional ViewTargetTransitionParams TransitionParams) +{ + super.SpectatorSetViewTarget(VT, TransitionParams); + if (Role == ROLE_Authority && !bTimerOn) + { + ClearTimer('TickFollowAbilities'); + SetTimer(0.15, true, 'TickFollowAbilities'); + bTimerOn = true; + } +} + +simulated function TickFollowAbilities() +{ + local int i, slot; + local int EquipSlots[5]; + local TgPawn FollowPawn; + local TgDevice Dev; + local TgTimerManager TM; + local float remain, total; + local SpecAbility A; + + EquipSlots[0] = 1; + EquipSlots[1] = 16; + EquipSlots[2] = 3; + EquipSlots[3] = 4; + EquipSlots[4] = 2; + + FollowPawn = TgPawn(GetViewTarget()); + if (FollowPawn == none || FollowPawn.Controller == none || !FollowPawn.IsAliveAndWell()) + { + for (i = 0; i < ABILITY_SLOTS; i++) + { + Abilities[i].DeviceName = ""; + Abilities[i].CooldownPct = -1; + Abilities[i].CooldownRemain = 0; + Abilities[i].CurrentAmmo = 0; + Abilities[i].MaxAmmo = 0; + } + ClientUpdateAbilities(Abilities); + return; + } + + for (i = 0; i < ABILITY_SLOTS; i++) + { + slot = EquipSlots[i]; + A.DeviceName = ""; + A.CooldownPct = -1; + A.CooldownRemain = 0; + A.CurrentAmmo = 0; + A.MaxAmmo = 0; + Dev = FollowPawn.GetDeviceByEqPoint(slot); + if (Dev != none) + { + A.DeviceName = Dev.GetDeviceName(); + if (Dev.r_nMaxAmmoClipCount > 0) + { + A.CurrentAmmo = Dev.GetCurrentAmmoAmount(); + A.MaxAmmo = Dev.r_nMaxAmmoClipCount; + } + TM = Dev.GetCooldownTimerManager(); + if (TM != none) + { + remain = Dev.GetCooldownRemaining(); + total = TM.GetTimeInitial(0); + if (total > 0.0001) + { + A.CooldownPct = FClamp(remain / total, 0.0, 1.0); + A.CooldownRemain = remain; + } + } + } + Abilities[i] = A; + } + ClientUpdateAbilities(Abilities); +} + +reliable client function ClientUpdateAbilities(SpecAbility NewAbilities[5]) +{ + local int i; + for (i = 0; i < ABILITY_SLOTS; i++) + Abilities[i] = NewAbilities[i]; +} + +simulated function TickSpectatorPlayerHUD() +{ + local UIHudPlayer HUD; + local TgPawn ViewPawn; + local TgRepInfo_Player PRI, SPRI; + local GFxObject Group, OgGroup; + local GFxObject HealthBarTickContainer; + local UIComponent_HealthBar OgHealthBar; + local int TaskForce; + + HUD = UIHudPlayer(`UTILS.FindSceneByClassName(TgGameHUD(myHUD), 'UIHudPlayer')); + if (HUD == none) return; + + if (!bClonedHUD) + { + Group = HUD.AttachMovie("UIHudPlayer", "TmUIHudPlayer", 50).GetObject("Group"); + bClonedHUD = true; + } + else + Group = HUD.GetObject("TmUIHudPlayer").GetObject("Group"); + + SPRI = TgRepInfo_Player(PlayerReplicationInfo); + if (SPRI == none) return; + + ViewPawn = TgPawn(GetViewTarget()); + if (ViewPawn == none) + { + Group.SetVisible(false); + return; + } + + PRI = TgRepInfo_Player(ViewPawn.PlayerReplicationInfo); + if (PRI == none) return; + + TaskForce = PRI.GetTaskForceNumber(); + + OgGroup = HUD.GetObject("Group"); + OgGroup.SetAlpha(0.0); + OgGroup.SetVisible(false); + + OgHealthBar = HUD.m_HealthBar.m_DamageOverlay.m_HealthbarOwner; + + Group.SetVisible(true); + Group.GotoAndStopI(TaskForce); + `UIUTILS.SetGameText(Group.GetObject("SpectatorName").GetObject("TF"), PRI.PlayerName); + `UIUTILS.SetGameText(Group.GetObject("SpectatorName").GetObject("TeamName").GetObject("TF"), TaskForce == 1 ? "Blue Team" : "Red Team"); + Group.GetObject("SpectatorName").GetObject("TeamName").GotoAndStopI(TaskForce); + Group.GetObject("SpectatorName").GetObject("Frame").GotoAndStopI(TaskForce); + + `UIUTILS.MirrorClip(Group, OgGroup, "HealthDamageOverlay"); + `UIUTILS.MirrorClip(Group, OgGroup, "HealthDamageOverlayNormal"); + `UIUTILS.MirrorClip(Group, OgGroup, "HealthBarTickContainer"); + `UIUTILS.MirrorClip(Group, OgGroup, "HealthBorderTickMask"); + `UIUTILS.MirrorClip(Group, OgGroup, "HealthBorderTickContainer"); + `UIUTILS.MirrorClip(Group, OgGroup, "ShieldBorderTickMask"); + `UIUTILS.MirrorClip(Group, OgGroup, "ShieldBorderTickContainer"); + `UIUTILS.MirrorClip(Group, OgGroup, "ShadowBorderTickMask"); + `UIUTILS.MirrorClip(Group, OgGroup, "ShadowBorderTickContainer"); + + HealthBarTickContainer = Group.GetObject("HealthBarTickContainer"); + + `UIUTILS.MirrorText(Group.GetObject("Now"), OgGroup.GetObject("Now")); + `UIUTILS.MirrorText(Group.GetObject("Max"), OgGroup.GetObject("Max")); + if (Group.GetObject("Tip") != none && OgGroup.GetObject("Tip") != none) + Group.GetObject("Tip").SetDisplayInfo(OgGroup.GetObject("Tip").GetDisplayInfo()); + + `UIUTILS.SetGameText(Group.GetObject("Streak").GetObject("Title"), "+67"); + `UIUTILS.SetGameText(Group.GetObject("Streak").GetObject("Subtitle"), "AURA"); + + `UIUTILS.BuildFillTicks(OgHealthBar, HealthBarTickContainer, TaskForce, LastClonedTickCount); + `UIUTILS.BuildBorderTicks(OgHealthBar, Group, TaskForce, bBorderBuilt); + `UIUTILS.MirrorBarMasks(OgHealthBar, OgGroup, Group); + `UIUTILS.RecolorHealthTicks(OgHealthBar, HealthBarTickContainer, TaskForce); + + `UIUTILS.SyncShieldText(OgGroup, Group); + `UIUTILS.SyncCombat(OgGroup, Group); + `UIUTILS.SyncHealFeedContainer(OgGroup, Group); + + SPRI.r_nProfileId = PRI.r_nProfileId; + + if (PRI.r_nProfileId > 0) + `UIUTILS.SyncIcon(Group.GetObject("Icon"), HUD.m_mcIcon); +} + +simulated function TickSpectatorTeamHUD() +{ + local UIHudTeam HUD; + local TgPawn ViewPawn; + local TgRepInfo_Player PRI, SPRI; + local array Players; + local GFxObject RedPlayer, Health, HealthBG, HealthTip; + local int i; + + TgRepInfo_Game(WorldInfo.GRI).GetTaskForce(2).GetPlayers(Players); + HUD = UIHudTeam(`UTILS.FindSceneByClassName(TgGameHUD(myHUD), 'UIHudTeam')); + if (HUD == none) return; + SPRI = TgRepInfo_Player(PlayerReplicationInfo); + if (SPRI == none) return; + ViewPawn = TgPawn(GetViewTarget()); + if (ViewPawn == none) return; + PRI = TgRepInfo_Player(ViewPawn.PlayerReplicationInfo); + if (PRI == none) return; + for (i = 0; i < Players.Length; i++) + { + RedPlayer = HUD.m_mcPlayers.GetObject("Red" $ i); + Health = RedPlayer.GetObject("Health"); + HealthBG = RedPlayer.GetObject("HealthBG"); + HealthTip = RedPlayer.GetObject("HealthTip"); + HealthBG.SetVisible(true); + HealthBG.SetAlpha(85.0); + Health.SetVisible(true); + HUD.Animate(Health, 0.2, UIANIM_WIDTH, (float(Players[i].r_nHealthCurrent) / float(Players[i].r_nHealthMaximum)) * 78); + Health.SetAlpha(100.0); + HealthTip.SetVisible(true); + HUD.Animate(HealthTip, 0.2, UIANIM_X, ((float(Players[i].r_nHealthCurrent) / float(Players[i].r_nHealthMaximum)) * 78) - 39); + HealthTip.SetAlpha(100.0); + } +} diff --git a/Development/Src/TmCore/Classes/UITmTest.uc b/Development/Src/TmCore/Classes/UITmTest.uc new file mode 100644 index 0000000..70ad698 --- /dev/null +++ b/Development/Src/TmCore/Classes/UITmTest.uc @@ -0,0 +1,11 @@ +class UITmTest extends TgGfxScene within GFxMoviePlayer + config(Engine); + +defaultproperties +{ + m_eSnappingType=UISNAPPING_TOP + m_bVisibleOnLoad=true + m_bShowCursor=false + m_bCaptureKeys=false + m_Name="UITmTest" +} diff --git a/Development/Src/TmCore/Classes/UIUtils.uc b/Development/Src/TmCore/Classes/UIUtils.uc new file mode 100644 index 0000000..ff5620a --- /dev/null +++ b/Development/Src/TmCore/Classes/UIUtils.uc @@ -0,0 +1,319 @@ +class UIUtils extends Object + abstract + dependson(TgObject); + +// Mirrors the spectator health-bar constants so other mods can reuse the same frame mapping. +const HEALTH_FRAME_SHIELD = 5; +const HEALTH_FRAME_SHADOW = 6; +const MAX_FILL_TICKS = 100; +const MAX_HEAL_ENTRIES = 12; + +/** Copies DisplayInfo + Width/Height from SrcParent.GetObject(Name) to DstParent.GetObject(Name). */ +static function MirrorClip(GFxObject DstParent, GFxObject SrcParent, string ClipName) +{ + local GFxObject Src, Dst; + Src = SrcParent.GetObject(ClipName); + Dst = DstParent.GetObject(ClipName); + if (Src == none || Dst == none) return; + Dst.SetDisplayInfo(Src.GetDisplayInfo()); + Dst.SetWidth(Src.GetWidth()); + Dst.SetHeight(Src.GetHeight()); +} + +/** Sets text on Parent handling the game's inconsistent TF holder pattern. + * Tries Parent.TF -> Parent.Text -> Parent.textField -> Parent.SetText. */ +static function bool SetGameText(GFxObject Parent, string Text) +{ + local GFxObject TF; + if (Parent == none) return false; + TF = Parent.GetObject("TF"); + if (TF != none) { TF.SetText(Text); return true; } + TF = Parent.GetObject("Text"); + if (TF != none) { TF.SetText(Text); return true; } + TF = Parent.GetObject("textField"); + if (TF != none) { TF.SetText(Text); return true; } + Parent.SetText(Text); + return true; +} + +/** Mirrors text from Src to Dst (Dst.SetText(Src.GetText())) with none guards. */ +static function MirrorText(GFxObject Dst, GFxObject Src) +{ + if (Dst == none || Src == none) return; + Dst.SetText(Src.GetText()); +} + + +// Image / TextureLoader - tgscript.widgets.TextureLoader (Texture256) + +/** Loads Url into a CLIK UILoader/TextureLoader. Idempotent: no-ops if _source already Url. + * Handles the source/_source/initialSource dance, Invoke("load"), and + * contentHolder visibility fixups discovered in the spectator Icon clone. */ +static function bool LoadTextureLoader(GFxObject Loader, string Url) +{ + local array Args; + local ASValue V; + + if (Loader == none) return false; + if (Url == "" || Url == "undefined") return false; + + if (Loader.GetString("_source") != Url) + { + Loader.SetString("_source", ""); + Loader.SetString("source", Url); + V.Type = AS_String; + V.S = Url; + Args.AddItem(V); + Loader.Invoke("load", Args); + } + Loader.SetVisible(true); + Loader.SetBool("_visible", true); + Loader.SetBool("visible", true); + Loader.SetFloat("_alpha", 100.0); + Loader.SetAlpha(100.0); + if (Loader.GetObject("contentHolder") != none) + { + Loader.GetObject("contentHolder").SetVisible(true); + Loader.GetObject("contentHolder").SetAlpha(100.0); + } + return true; +} + +static function bool SyncIcon(GFxObject CloneIcon, GFxObject OrigIcon) +{ + local string Url; + if (CloneIcon == none || OrigIcon == none) return false; + Url = OrigIcon.GetString("initialSource"); + if (Url == "" || Url == "undefined") return false; + return LoadTextureLoader(CloneIcon, Url); +} + +static function BuildFillTicks(UIComponent_HealthBar Bar, GFxObject Container, int TeamColor, out int LastCount) +{ + local GFxObject Tick; + local int i; + + if (Bar == none || Container == none) return; + if (LastCount == Bar.m_mcHealthBarTicks.Length) return; + + for (i = 0; i < MAX_FILL_TICKS; i++) + { + Tick = Container.GetObject("HealthTick" $ i); + if (Tick != none) Tick.RemoveMovieClip(""); + } + for (i = 0; i < Bar.m_mcHealthBarTicks.Length; i++) + { + Tick = Container.AttachMovie("HealthTick", "HealthTick" $ i); + Tick.SetDisplayInfo(Bar.m_mcHealthBarTicks[i].GetDisplayInfo()); + Tick.SetWidth(Bar.m_mcHealthBarTicks[i].GetWidth()); + Tick.SetHeight(Bar.m_mcHealthBarTicks[i].GetHeight()); + Tick.SetX(Bar.m_mcHealthBarTicks[i].GetX()); + Tick.GotoAndStopI(TeamColor); + } + LastCount = Bar.m_mcHealthBarTicks.Length; +} + +static function BuildBorderTicks(UIComponent_HealthBar Bar, GFxObject Group, int TeamColor, out int bBuilt) +{ + local BarTickTypes BT; + local int i; + + if (bBuilt != 0) return; + if (Bar == none || Group == none) return; + + for (i = 0; i < Bar.m_BarTickTypes.Length; i++) + { + BT = Bar.m_BarTickTypes[i]; + if (BT.eBorderTickType == EHTT_Damage) continue; + if (i != 0 && BT.mcLeftBorderTick != none) + CreateBorderTick(Group, BT, BT.mcLeftBorderTick, "BorderTickL" $ i, 0, TeamColor); + if (i != Bar.m_BarTickTypes.Length - 1 && BT.mcRightBorderTick != none) + CreateBorderTick(Group, BT, BT.mcRightBorderTick, "BorderTickR" $ i, 1, TeamColor); + } + bBuilt = 1; +} + +static function CreateBorderTick(GFxObject Group, BarTickTypes BT, GFxObject Src, string InstName, int Depth, int TeamColor) +{ + local GFxObject Tick; + local int FrameTo; + + Tick = Group.GetObject(BT.sContainerName).AttachMovie("HealthTick", InstName, Depth); + if (Tick == none) return; + + Tick.SetDisplayInfo(Src.GetDisplayInfo()); + Tick.SetWidth(Src.GetWidth()); + Tick.SetHeight(Src.GetHeight()); + + if (BT.eBorderTickType == EHTT_Health) FrameTo = TeamColor; + else if (BT.eBorderTickType == EHTT_Shield) FrameTo = HEALTH_FRAME_SHIELD; + else FrameTo = HEALTH_FRAME_SHADOW; + Tick.GotoAndStopI(FrameTo); + Tick.SetVisible(true); +} + +static function MirrorBarMasks(UIComponent_HealthBar Bar, GFxObject OgGroup, GFxObject Group) +{ + local BarTickTypes BT; + local GFxObject OgMask, ClMask; + local int i; + + if (Bar == none || OgGroup == none || Group == none) return; + + for (i = 0; i < Bar.m_BarTickTypes.Length; i++) + { + BT = Bar.m_BarTickTypes[i]; + OgMask = OgGroup.GetObject(BT.sMaskName); + ClMask = Group.GetObject(BT.sMaskName); + if (OgMask != none && ClMask != none) + { + ClMask.SetX(OgMask.GetX()); + ClMask.SetWidth(OgMask.GetWidth()); + ClMask.SetVisible(OgMask.GetBool("_visible")); + } + } +} + +static function RecolorHealthTicks(UIComponent_HealthBar Bar, GFxObject Container, int TeamColor) +{ + local int NumTicks, HealthN, ShieldN, k; + local float fH, fS; + local GFxObject Tick; + local BarTickTypes BT2; + + if (Bar == none || Container == none) return; + NumTicks = Bar.m_mcHealthBarTicks.Length; + if (NumTicks <= 0) return; + + fH = 0.0; fS = 0.0; + for (k = 0; k < Bar.m_BarTickTypes.Length; k++) + { + BT2 = Bar.m_BarTickTypes[k]; + if (BT2.eBorderTickType == EHTT_Health) fH = BT2.fWidth; + else if (BT2.eBorderTickType == EHTT_Shield) fS = BT2.fWidth; + } + + HealthN = FCeil(fH * float(NumTicks)); + ShieldN = FCeil(fS * float(NumTicks)); + if (HealthN < 0) HealthN = 0; + if (ShieldN < 0) ShieldN = 0; + if (HealthN > NumTicks) HealthN = NumTicks; + if (HealthN + ShieldN > NumTicks) ShieldN = NumTicks - HealthN; + + for (k = 0; k < NumTicks; k++) + { + Tick = Container.GetObject("HealthTick" $ k); + if (Tick == none) continue; + if (k < HealthN) Tick.GotoAndStopI(TeamColor); + else if (k < HealthN + ShieldN) Tick.GotoAndStopI(HEALTH_FRAME_SHIELD); + else Tick.GotoAndStopI(HEALTH_FRAME_SHADOW); + Tick.SetVisible(true); + } +} + +static function SyncShieldText(GFxObject OgGroup, GFxObject Group) +{ + local GFxObject OgST, ClST, OgNow, OgMax, ClNow, ClMax; + OgST = OgGroup.GetObject("ShieldText"); + ClST = Group.GetObject("ShieldText"); + if (OgST == none || ClST == none) return; + ClST.SetDisplayInfo(OgST.GetDisplayInfo()); + ClST.SetWidth(OgST.GetWidth()); + ClST.SetHeight(OgST.GetHeight()); + ClST.SetVisible(OgST.GetBool("_visible")); + ClST.SetAlpha(OgST.GetFloat("_alpha")); + OgNow = OgST.GetObject("ShieldNow"); + OgMax = OgST.GetObject("ShieldMax"); + ClNow = ClST.GetObject("ShieldNow"); + ClMax = ClST.GetObject("ShieldMax"); + if (OgNow != none && ClNow != none) + { + ClNow.SetText(OgNow.GetText()); + ClNow.SetVisible(OgNow.GetBool("_visible")); + ClNow.SetAlpha(OgNow.GetFloat("_alpha")); + } + if (OgMax != none && ClMax != none) + { + ClMax.SetText(OgMax.GetText()); + ClMax.SetVisible(OgMax.GetBool("_visible")); + ClMax.SetAlpha(OgMax.GetFloat("_alpha")); + } +} + +static function SyncCombat(GFxObject OgGroup, GFxObject Group) +{ + local GFxObject OgCombat, ClCombat, OgBar, ClBar; + OgCombat = OgGroup.GetObject("Combat"); + ClCombat = Group.GetObject("Combat"); + if (OgCombat == none || ClCombat == none) return; + ClCombat.SetDisplayInfo(OgCombat.GetDisplayInfo()); + ClCombat.SetWidth(OgCombat.GetWidth()); + ClCombat.SetHeight(OgCombat.GetHeight()); + ClCombat.SetVisible(OgCombat.GetBool("_visible")); + ClCombat.SetAlpha(OgCombat.GetFloat("_alpha")); + OgBar = OgCombat.GetObject("Bar"); + ClBar = ClCombat.GetObject("Bar"); + if (OgBar != none && ClBar != none) + { + ClBar.SetDisplayInfo(OgBar.GetDisplayInfo()); + ClBar.SetWidth(OgBar.GetWidth()); + ClBar.SetHeight(OgBar.GetHeight()); + ClBar.SetX(OgBar.GetX()); + ClBar.SetVisible(OgBar.GetBool("_visible")); + ClBar.SetAlpha(OgBar.GetFloat("_alpha")); + } +} + +static function SyncHealFeedContainer(GFxObject OgGroup, GFxObject Group, optional int MaxEntries) +{ + local GFxObject OgFeed, ClFeed, OgEntry, ClEntry, OgTF; + local int i; + local string ChildName; + + if (MaxEntries <= 0) MaxEntries = MAX_HEAL_ENTRIES; + + OgFeed = OgGroup.GetObject("HealFeedContainer"); + ClFeed = Group.GetObject("HealFeedContainer"); + if (OgFeed == none || ClFeed == none) return; + + ClFeed.SetDisplayInfo(OgFeed.GetDisplayInfo()); + ClFeed.SetWidth(OgFeed.GetWidth()); + ClFeed.SetHeight(OgFeed.GetHeight()); + ClFeed.SetVisible(OgFeed.GetBool("_visible")); + ClFeed.SetAlpha(OgFeed.GetFloat("_alpha")); + + for (i = 0; i < MaxEntries; i++) + { + ChildName = "Entry" $ i; + OgEntry = OgFeed.GetObject(ChildName); + if (OgEntry == none) OgEntry = OgFeed.GetObject("HealEntry" $ i); + if (OgEntry == none) OgEntry = OgFeed.GetObject("HealFeedItem" $ i); + if (OgEntry == none) OgEntry = OgFeed.GetObject("Item" $ i); + if (OgEntry == none) OgEntry = OgFeed.GetElementObject(i); + if (OgEntry == none) continue; + + ClEntry = ClFeed.GetObject(ChildName); + if (ClEntry == none) + { + ClEntry = ClFeed.AttachMovie("HealFeedItem", ChildName, i); + if (ClEntry == none) ClEntry = ClFeed.AttachMovie("HealEntry", ChildName, i); + if (ClEntry == none) ClEntry = ClFeed.AttachMovie("Entry", ChildName, i); + if (ClEntry == none) continue; + } + ClEntry.SetDisplayInfo(OgEntry.GetDisplayInfo()); + ClEntry.SetWidth(OgEntry.GetWidth()); + ClEntry.SetHeight(OgEntry.GetHeight()); + ClEntry.SetX(OgEntry.GetX()); + ClEntry.SetY(OgEntry.GetY()); + ClEntry.SetVisible(OgEntry.GetBool("_visible")); + ClEntry.SetAlpha(OgEntry.GetFloat("_alpha")); + ClEntry.SetText(OgEntry.GetText()); + OgTF = OgEntry.GetObject("TF"); + if (OgTF != none && ClEntry.GetObject("TF") != none) + ClEntry.GetObject("TF").SetText(OgTF.GetText()); + else if (OgEntry.GetObject("Text") != none && ClEntry.GetObject("Text") != none) + ClEntry.GetObject("Text").SetText(OgEntry.GetObject("Text").GetText()); + } + if (OgFeed.GetText() != "" || ClFeed.GetText() != "") + ClFeed.SetText(OgFeed.GetText()); +} diff --git a/Development/Src/TmCore/Classes/Utils.uc b/Development/Src/TmCore/Classes/Utils.uc new file mode 100644 index 0000000..cf9c25a --- /dev/null +++ b/Development/Src/TmCore/Classes/Utils.uc @@ -0,0 +1,521 @@ +class Utils extends Object + abstract + config(Utils); + +var config string CachedName; +var config string CachedCharacter; + +struct ChampionInfo { + var string Name; + var array Aliases; + var int BotId; + var int PawnClassId; + var int SkinId; + var int HeadId; + var int WeaponSkinId; + var int VoicePackId; +}; + +struct LoadoutInfo { + var int BotId; + var string Talent; + var string Card[5]; +}; + +static function TmProxyActor SetupProxy(TgPlayerController PC) { + local TmProxyActor ProxyActor; + + ProxyActor = PC.Spawn(Class'TmCore.TmProxyActor', PC); + if (ProxyActor != none) { + ProxyActor.SetOwner(PC); + + return ProxyActor; + } else { + `LogError('TmCoreUtils', "Failed to spawn proxy actor"); + return none; + } +} + +static function SetupCM(TgPlayerController PC) { + PC.CheatClass = Class'TgGame.TgBattleCheatManager'; + if(PC.CheatManager == none) { + PC.CheatManager = new (PC) Class'TgGame.TgBattleCheatManager'; + if(PC.CheatManager != none) + { + PC.CheatManager.InitCheatManager(); + `log((("TmUtils: CheatManager successfully created and initialized : " @ string(PC.CheatManager.Name)) @ ":") @ string(PC.CheatManager.Outer.Name)); + } + else + { + `log("TmUtils: Failed to create CheatManager!"); + } + } +} + +static function TgGfxScene FindSceneByClassName(TgGameHUD H, name ClassName) { + local TgGfxScene Found; + local int i; + + if (H == none) { + return none; + } + + for (i = 0; i < H.m_SceneStack.Length; i++) { + Found = FindSceneByClassWalk(H.m_SceneStack[i], ClassName); + if (Found != none) { + return Found; + } + } + for (i = 0; i < H.m_PopupStack.Length; i++) { + Found = FindSceneByClassWalk(H.m_PopupStack[i], ClassName); + if (Found != none) { + return Found; + } + } + return none; +} + +static function TgGfxScene FindSceneByClassWalk(TgGfxScene Scene, name ClassName) { + local UIHud H; + local UIGameMoviePlayer P; + local TgGfxScene Found; + local int i; + + if (Scene != none && Scene.Class.Name == ClassName) { + return Scene; + } + + H = UIHud(Scene); + if (H == none) { + return none; + } + + for (i = 0; i < ArrayCount(H.m_mcSubscenes); i++) { + if (H.m_mcSubscenes[i] != none) { + if (H.m_mcSubscenes[i].Class.Name == ClassName) { + return H.m_mcSubscenes[i]; + } + Found = FindSceneByClassWalk(H.m_mcSubscenes[i], ClassName); + if (Found != none) { + return Found; + } + } + } + + P = H.m_pMovie; + if (P == none) { + return none; + } + + for (i = 0; i < P.m_Scenes.Length; i++) { + if (P.m_Scenes[i] != none && P.m_Scenes[i].Class.Name == ClassName) { + return P.m_Scenes[i]; + } + } + return none; +} + +static function int ToInt(coerce int strNb) { + return strNb; +} + +static public function int GetTeam(string Team, int PlayerCount) { + switch(Team) + { + case "1": return 1; break; + case "2": return 2; break; + case "spec": return 10; break; + case "spectator": return 10; break; + case "3": return 10; break; + } + + return (PlayerCount % 2 == 0) ? 1 : 2; +} + +static function string DecodeURLParam(string encodedParam) +{ + local string decodedParam; + decodedParam = encodedParam; + + decodedParam = Repl(decodedParam, "%spc", " "); + decodedParam = Repl(decodedParam, "%qtm", "?"); + decodedParam = Repl(decodedParam, "%amp", "&"); + decodedParam = Repl(decodedParam, "%eql", "="); + decodedParam = Repl(decodedParam, "%hsh", "#"); + decodedParam = Repl(decodedParam, "%prc", "%"); + + return decodedParam; +} + +static function SetupPRI(TgGame Game, TgRepInfo_Player PRI, string PlayerGuid, string PlayerName, int TaskForce, int MountId) { + local TgPlayerController PC; + local TgRepInfo_Player CachedPRI; + + PC = TgPlayerController(PRI.Owner); + + PC.s_nPlayerId = ToInt(PlayerGuid); + PC.s_qwNetAccessFlags.A = 0xFFFFFFFF; + PC.s_qwNetAccessFlags.B = 0xFFFFFFFF; + + PRI.UniqueId.Uid.A = PC.s_nPlayerId; + PRI.r_nPlayerId = PC.s_nPlayerId; + PRI.PlayerName = PlayerName; + + PRI.r_nMountSkinId = MountId; + + PRI.SetTaskForceNumber(TaskForce, true); + + PRI.bOnlySpectator = false; + PRI.bIsSpectator = false; + PRI.bOutOfLives = false; + PRI.bReadyToPlay = true; + PRI.bWaitingPlayer = false; + PRI.bAdmin = true; + + CachedPRI = PC.CachedPRI; + CachedPRI.UniqueId.Uid.A = PC.s_nPlayerId; + CachedPRI.r_nPlayerId = PC.s_nPlayerId; + CachedPRI.PlayerName = PlayerName; + + CachedPRI.r_nMountSkinId = MountId; + + CachedPRI.SetTaskForceNumber(TaskForce, true); + + CachedPRI.bOnlySpectator = false; + CachedPRI.bIsSpectator = false; + CachedPRI.bOutOfLives = false; + CachedPRI.bReadyToPlay = true; + CachedPRI.bWaitingPlayer = false; + CachedPRI.bAdmin = true; +} + +static function SetupSpecPRI(TgGame Game, TgRepInfo_Player PRI, string PlayerGuid) { + local TmSpectatorController PC; + local TgRepInfo_Player CachedPRI; + + PC = TmSpectatorController(PRI.Owner); + + PC.s_nPlayerId = ToInt(PlayerGuid); + PC.s_qwNetAccessFlags.A = 0xFFFFFFFF; + PC.s_qwNetAccessFlags.B = 0xFFFFFFFF; + + PRI.UniqueId.Uid.A = PC.s_nPlayerId; + PRI.r_nPlayerId = PC.s_nPlayerId; + PRI.PlayerName = "spectator"; + + PRI.SetTaskForceNumber(10, true); + PRI.bOnlySpectator = true; + PRI.bIsSpectator = true; + PRI.bOutOfLives = true; + PRI.bReadyToPlay = true; + PRI.bWaitingPlayer = false; + + CachedPRI = PC.CachedPRI; + CachedPRI.UniqueId.Uid.A = PC.s_nPlayerId; + CachedPRI.r_nPlayerId = PC.s_nPlayerId; + CachedPRI.PlayerName = "spectator"; + + CachedPRI.SetTaskForceNumber(10, true); + CachedPRI.bOnlySpectator = true; + CachedPRI.bIsSpectator = true; + CachedPRI.bOutOfLives = true; + CachedPRI.bReadyToPlay = true; + CachedPRI.bWaitingPlayer = false; +} + +static function SpawnPawn(TgGame Game, TgPlayerController PC, int BotId, int SkinId, int DeviceSkinId, int HeadId, int MountId) { + local TgPawn SpawnedPawn; + local NavigationPoint PlayerStart; + local Vector OutLocation; + local Rotator OutRotation; + local TgPawn_Character CharacterPawn; + + PlayerStart = Game.GetReviveLocation(PC, OutLocation, OutRotation); + + Game.EnsureBotPrecache(BotId, SkinId, HeadId, DeviceSkinId); + SpawnedPawn = TgPawn(Game.SpawnDefaultPawnFor(PC, PlayerStart)); + SpawnedPawn.PostPawnSetupServer(); + + if(SpawnedPawn != none) { + PC.Possess(SpawnedPawn, true); + PC.AcknowledgePossession(SpawnedPawn); + + PC.WorldInfo.NetMode = NM_Standalone; + SpawnedPawn = Game.SpawnTemplatePlayer(PC, BotId, SkinId, DeviceSkinId, HeadId); + PC.WorldInfo.NetMode = NM_DedicatedServer; + + if(SpawnedPawn != none) { + CharacterPawn = TgPawn_Character(SpawnedPawn); + CharacterPawn.r_nMountSkinId = MountId; + CharacterPawn.ApplyPawnSetup(); + CharacterPawn.PostPawnSetup(); + PC.Possess(CharacterPawn, true); + PC.AcknowledgePossession(CharacterPawn); + } else { + `LogError('TmCoreUtils', "Failed to spawn pawn (backup)"); + } + } else { + `LogError('TmCoreUtils', "Failed to spawn pawn"); + } +} + +static final function AddChampion(out array List, string Name, int BotId, int PawnClassId, + int SkinId, int HeadId, int WeaponSkinId, int VoicePackId, optional string Alias1, optional string Alias2) +{ + local ChampionInfo C; + + C.Name = Name; + C.BotId = BotId; + C.PawnClassId = PawnClassId; + C.SkinId = SkinId; + C.HeadId = HeadId; + C.WeaponSkinId = WeaponSkinId; + C.VoicePackId = VoicePackId; + if (Alias1 != "") C.Aliases.AddItem(Alias1); + if (Alias2 != "") C.Aliases.AddItem(Alias2); + List.AddItem(C); +} + +static function array GetAllChampions() { + local array List; + + AddChampion(List, "Pip", 2056, 21653, 12198, 14954, 13177, 12381); + AddChampion(List, "Skye", 2057, 21654, 12207, 15407, 13179, 12195); + AddChampion(List, "Fernando", 2071, 21651, 12203, 15257, 13173, 11483, "nando"); + AddChampion(List, "Barik", 2073, 21649, 12200, 15217, 13169, 12196); + AddChampion(List, "Cassie", 2092, 21650, 12201, 15926, 13171, 11482); + AddChampion(List, "Grohk", 2093, 21656, 12204, 15243, 13174, 12197); + AddChampion(List, "Evie", 2094, 21652, 12202, 15204, 13172, 12382); + AddChampion(List, "Buck", 2147, 21655, 12205, 15572, 13170, 12383); + AddChampion(List, "Ruckus", 2149, 21645, 12206, 15795, 13178, 11535); + AddChampion(List, "Androxus", 2205, 22226, 12199, 15129, 13168, 13296, "andro"); + AddChampion(List, "Kinessa", 2249, 22727, 12941, 15235, 13176, 13242, "nessa"); + AddChampion(List, "Grover", 2254, 22828, 12940, 15588, 13175, 12999); + AddChampion(List, "Ying", 2267, 23349, 13212, 15418, 13221, 13450, "bestwaifu"); + AddChampion(List, "Drogoz", 2277, 23898, 13404, 15274, 13379, 14080); + AddChampion(List, "Bomb King", 2281, 23985, 13336, 14960, 13380, 14391, "bombking", "bk"); + AddChampion(List, "Viktor", 2285, 24317, 14173, 15154, 14174, 14460, "vik"); + AddChampion(List, "Makoa", 2288, 24381, 14465, 15124, 14466, 14631, "koa"); + AddChampion(List, "Mal'Damba", 2303, 25066, 14587, 15194, 14593, 15165, "maldamba", "damba"); + AddChampion(List, "ShaLin", 2307, 25366, 14890, 15642, 14892, 15599); + AddChampion(List, "Tyra", 2314, 25806, 15822, 16068, 15821, 15959); + AddChampion(List, "Torvald", 2322, 26707, 15810, 16236, 15809, 16324); + AddChampion(List, "Maeve", 2338, 27193, 16216, 16217, 16221, 16490); + AddChampion(List, "Inara", 2348, 27261, 16245, 16287, 16290, 16291); + AddChampion(List, "Lex", 2362, 27672, 16531, 16958, 16532, 16893); + AddChampion(List, "Seris", 2372, 27775, 16584, 16586, 16585, 16943); + AddChampion(List, "Willo", 2393, 28209, 16810, 18307, 16811, 18317); + AddChampion(List, "Ash", 2404, 28373, 16977, 18859, 16981, 18670); + AddChampion(List, "Lian", 2417, 29455, 19032, 19321, 19033, 19289); + AddChampion(List, "Zhin", 2420, 28815, 18231, 18232, 18300, 19060); + AddChampion(List, "Jenos", 2431, 29924, 19034, 19224, 19035, 19364); + AddChampion(List, "Strix", 2438, 30083, 19112, 19642, 19136, 19643); + AddChampion(List, "Talus", 2472, 30568, 19324, 19557, 19328, 19557); + + return List; +} + +static function ChampionInfo EmptyChampion() { + local ChampionInfo C; + return C; +} + +static function ChampionInfo GetChampionByName(string Name) { + local array List; + local int i, j; + + Name = Caps(Name); + List = GetAllChampions(); + for (i = 0; i < List.Length; i++) { + if (Caps(List[i].Name) == Name) { + return List[i]; + } + for (j = 0; j < List[i].Aliases.Length; j++) { + if (Caps(List[i].Aliases[j]) == Name) { + return List[i]; + } + } + } + return EmptyChampion(); +} + +static function ChampionInfo GetChampionByBotId(int BotId) { + local array List; + local int i; + + List = GetAllChampions(); + for (i = 0; i < List.Length; i++) { + if (List[i].BotId == BotId) { + return List[i]; + } + } + return EmptyChampion(); +} + +static function ChampionInfo GetChampionByPawnClass(int PawnClassId) { + local array List; + local int i; + + List = GetAllChampions(); + for (i = 0; i < List.Length; i++) { + if (List[i].PawnClassId == PawnClassId) { + return List[i]; + } + } + return EmptyChampion(); +} + +static function bool ChampionExists(string Name) { + return GetChampionByName(Name).BotId > 0; +} + +static function int GetChampionBotId(string Name) { + return GetChampionByName(Name).BotId; +} + +static function array GetAllChampionNames() { + local array List; + local array Names; + local int i; + + List = GetAllChampions(); + for (i = 0; i < List.Length; i++) { + Names.AddItem(List[i].Name); + } + return Names; +} + +static function ApplyChampionToPRI(TgRepInfo_Player PRI, ChampionInfo C) { + local TgPlayerController PC; + local TgRepInfo_Player CPRI; + + if (PRI == none || C.BotId <= 0) { + return; + } + PC = TgPlayerController(PRI.Owner); + if (PC == none) { + return; + } + + PC.m_nVoicePackId = C.VoicePackId; + PRI.r_nProfileId = C.BotId; + PRI.r_nSkinId = C.SkinId; + PRI.r_nHeadSkinId = C.HeadId; + PRI.r_nWeaponSkinId = C.WeaponSkinId; + + CPRI = PC.CachedPRI; + CPRI.r_nProfileId = C.BotId; + CPRI.r_nSkinId = C.SkinId; + CPRI.r_nHeadSkinId = C.HeadId; + CPRI.r_nWeaponSkinId = C.WeaponSkinId; +} + +static final function AddLoadout(out array List, int BotId, + string Talent, string Card1, string Card2, string Card3, string Card4, string Card5) +{ + local LoadoutInfo L; + + L.Talent = Talent; + L.Card[0] = Card1; + L.Card[1] = Card2; + L.Card[2] = Card3; + L.Card[3] = Card4; + L.Card[4] = Card5; + L.BotId = BotId; + List.AddItem(L); +} + +static function array GetAllLoadouts() { + local array List; + + AddLoadout(List, 2205, "Dark Stalker", "Power of the Abyss IV", "Sleight of Hand I", "Buying Time I", "Elusive IV", "Seething Hatred II"); // Androxus + AddLoadout(List, 2404, "Battering Ram", "Heavy Metal IV", "Percussion II", "Trebuchet I", "Gate Crasher IV", "Watchtower I"); // Ash + AddLoadout(List, 2073, "Tinkerin", "Healing Station IV", "Bowling Ball IV", "Failsafe II", "Double Time I", "Field Deploy I"); // Barik + AddLoadout(List, 2281, "Chain Reaction", "Air Blast II", "Backdraft II", "King's New Cloak II", "Royal Decree IV", "King's Court II"); // Bomb King + AddLoadout(List, 2147, "Bounce House", "Leg Day IV", "Stomping Ground II", "Seismic Wave IV", "Rapid Sustain I", "Giga Siphon I"); // Buck + AddLoadout(List, 2092, "Exaction", "Incitement IV", "Somersault II", "Onslaught III", "Lunge II", "Megaton I"); // Cassie + AddLoadout(List, 2277, "W.Y.R.M. Jets", "Propel IV", "Fuel Tank III", "Survival II", "Follow the Scent I", "Lung Capacity I"); // Drogoz + AddLoadout(List, 2094, "Over the Moon", "Swift Witch III", "Killing Frost IV", "Cantrip I", "Teleport II", "Great Distance II"); // Evie + AddLoadout(List, 2071, "Scorch", "Hot Pursuit IV", "Incinerate IV", "Heat Transfer I", "Last Stand II", "Launch I"); // Fernando + AddLoadout(List, 2093, "Totemic Ward", "Gale IV", "Shamanic Might I", "Outreach IV", "Crackle II", "Astral Traveler I"); // Grohk + AddLoadout(List, 2254, "Ferocity", "Verdant Expanse IV", "Gentle Breeze IV", "Adrenaline I", "Vine Grasp I", "Over Growth II"); // Grover + AddLoadout(List, 2348, "Mother's Grace", "Geomancer IV", "Steadfast II", "Shear I", "Lodestone I", "Stone Bulwark IV"); // Inara + AddLoadout(List, 2431, "Luminary", "Star Seeker IV", "Space Jam IV", "Relativity II", "Lightyears I", "Heavenly Pull I"); // Jenos + AddLoadout(List, 2249, "Steady Aim", "Prodigy IV", "Beam Me Up IV", "Open Season I", "Quick Scope II", "True Grit I"); // Kinessa + AddLoadout(List, 2362, "Death Hastens", "Warrants Out IV", "Requip II", "Wicked Don't Rest IV", "Conditioned I", "Compel I"); // Lex + AddLoadout(List, 2417, "Eminence", "Heraldry IV", "Manifest Destiny II", "Highborn II", "Superiority I", "Inheritance III"); // Lian + AddLoadout(List, 2338, "Cat Burglar", "Street Cred II", "Chase IV", "Scamper IV", "Featherlite I", "Walk it Off I"); // Maeve + AddLoadout(List, 2288, "Pluck", "Rampage IV", "Strongarm II", "Surf IV", "Salvage I", "Ebb and Flow I"); // Makoa + AddLoadout(List, 2303, "Ripened Gourd", "Possession IV", "Swift Spirits IV", "Fleeting II", "Ritual Magic I", "Lighter Gourd I"); // Mal'Damba + AddLoadout(List, 2056, "Catalyst", "Moxie III", "Acumen III", "Side Tanks II", "Gift Giver II", "Smithereens II"); // Pip + AddLoadout(List, 2149, "Aerial Assault", "Fuel Reserves IV", "Slow Dampener II", "Crystal Capacitor IV", "Refraction I", "E.M.P. I"); // Ruckus + AddLoadout(List, 2372, "Mortal Reach", "Veil IV", "Blood Pact II", "Dark Sight I", "Spirit Leech I", "Umbral Gait IV"); // Seris + AddLoadout(List, 2307, "Desert Shadow", "Wanderlust IV", "Swagger I", "Run Them Down I", "Mirage II", "Run Like the Wind IV"); // Shalin + AddLoadout(List, 2057, "Surprise Attack", "Confound III", "Specter III", "Ninja II", "Dissipate III", "Quick Smoker I"); // Skye + AddLoadout(List, 2438, "Crack Shot", "Bushwack III", "Dexterous III", "Tactical Retreat III", "Relentless II", "Cooled Mags I"); // Strix + AddLoadout(List, 2322, "Field Study", "Winddancer III", "Glyph of Health II", "Eldritch Speed IV", "Timeshaper II", "Scribe's Wit I"); // Torvald + AddLoadout(List, 2314, "Mercy Kill", "Locked and Loaded II", "Bandolier IV", "Tracker II", "Ranger I", "Incensed III"); // Tyra + AddLoadout(List, 2285, "Firefight", "Scramble IV", "Compensator II", "Firing Stance IV", "Flak Jacket I", "Second Wind I"); // Viktor + AddLoadout(List, 2393, "Blastflower", "Hummingbird I", "Flora IV", "Just Believe! II", "Flitter IV", "Germination I"); // Willo + AddLoadout(List, 2267, "Focusing Lens", "Spring Bloom IV", "Spring Forward III", "Rewind I", "Mesmerism III", "Encouragement I"); // Ying + AddLoadout(List, 2420, "Retaliation", "Blade Dance II", "Master Stance IV", "Perfect Block II", "Hideout II", "Up in Smoke II"); // Zhin + + return List; +} + +static function LoadoutInfo EmptyLoadout() { + local LoadoutInfo L; + return L; +} + +static function LoadoutInfo GetLoadoutByBotId(int BotId) { + local array List; + local int i; + + List = GetAllLoadouts(); + for (i = 0; i < List.Length; i++) { + if (List[i].BotId == BotId) { + return List[i]; + } + } + return EmptyLoadout(); +} + +static function LoadoutInfo GetLoadoutForChampion(ChampionInfo C) { + return GetLoadoutByBotId(C.BotId); +} + +static function bool ApplyLoadoutToPawn(TgPlayerController PC, TgPawn_Character Pawn, LoadoutInfo L) { + local TgInventoryManager InvMgr; + local int DeviceId; + local int i; + local int EquipPoints[5]; + + if (PC == none || Pawn == none || L.Talent == "") { + return false; + } + InvMgr = TgInventoryManager(Pawn.InvManager); + if (InvMgr == none) { + return false; + } + + EquipPoints[0] = 19; // card1 + EquipPoints[1] = 20; // card2 + EquipPoints[2] = 21; // card3 + EquipPoints[3] = 22; // card4 + EquipPoints[4] = 5; // card5 + + for (i = 0; i < 5; i++) { + DeviceId = PC.GetDeviceIdByName(L.Card[i]); + if (DeviceId > 0) { + InvMgr.AddDevice(DeviceId, EquipPoints[i], none, true, 0); + } + } + + DeviceId = PC.GetDeviceIdByName(L.Talent); + if (DeviceId > 0) { + InvMgr.AddDevice(DeviceId, 25, none, true, 0); + } + + return true; +} \ No newline at end of file diff --git a/Development/Src/TmCore/Globals.uci b/Development/Src/TmCore/Globals.uci new file mode 100644 index 0000000..1818574 --- /dev/null +++ b/Development/Src/TmCore/Globals.uci @@ -0,0 +1,9 @@ +`define isDev + +`define TmInfo(msg,cat) `log("INFO:" @ `msg, true, `cat) +`define TmWarn(msg,cat) `log("WARN:" @ `msg, true,`cat) +`define TmError(msg,cat) `log("ERROR:" @ `msg, true, `cat) + +`define UTILS class'TmCore.Utils'.static +`define UIUTILS class'TmCore.UIUtils'.static +`define VPC class'TmCore.TmGameViewportClient'.static \ No newline at end of file diff --git a/Development/Src/TmCore/TmCore.UPKG b/Development/Src/TmCore/TmCore.UPKG new file mode 100644 index 0000000..7779069 --- /dev/null +++ b/Development/Src/TmCore/TmCore.UPKG @@ -0,0 +1,4 @@ +[Flags] +AllowDownload=True +ClientOptional=False +ServerSideOnly=False \ No newline at end of file diff --git a/Development/Src/TmMultiplayer/Classes/MatchData.uc b/Development/Src/TmMultiplayer/Classes/MatchData.uc new file mode 100644 index 0000000..77f9cba --- /dev/null +++ b/Development/Src/TmMultiplayer/Classes/MatchData.uc @@ -0,0 +1 @@ +class MatchData extends Object; \ No newline at end of file diff --git a/Development/Src/TmMultiplayer/Classes/TmSiege.uc b/Development/Src/TmMultiplayer/Classes/TmSiege.uc new file mode 100644 index 0000000..b4f6222 --- /dev/null +++ b/Development/Src/TmMultiplayer/Classes/TmSiege.uc @@ -0,0 +1 @@ +class TmSiege extends Object; \ No newline at end of file diff --git a/Development/Src/TmMultiplayer/Globals.uci b/Development/Src/TmMultiplayer/Globals.uci new file mode 100644 index 0000000..64955d9 --- /dev/null +++ b/Development/Src/TmMultiplayer/Globals.uci @@ -0,0 +1 @@ +`include(TmCore\Globals.uci) \ No newline at end of file diff --git a/Development/Src/TmMultiplayer/TmMultiplayer.UPKG b/Development/Src/TmMultiplayer/TmMultiplayer.UPKG new file mode 100644 index 0000000..7779069 --- /dev/null +++ b/Development/Src/TmMultiplayer/TmMultiplayer.UPKG @@ -0,0 +1,4 @@ +[Flags] +AllowDownload=True +ClientOptional=False +ServerSideOnly=False \ No newline at end of file diff --git a/Development/Src/UDKBase/classes/CastleGame.uc b/Development/Src/UDKBase/classes/CastleGame.uc new file mode 100644 index 0000000..25d81b9 --- /dev/null +++ b/Development/Src/UDKBase/classes/CastleGame.uc @@ -0,0 +1,42 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class CastleGame extends SimpleGame; + +/** Set to true to allow attract mode */ +var config bool bAllowAttractMode; + + +event OnEngineHasLoaded() +{ +} + +/** + * Don't allow dying in CastleGame! + */ +function bool PreventDeath(Pawn KilledPawn, Controller Killer, class DamageType, vector HitLocation) +{ + return true; +} + +static event class SetGameType(string MapName, string Options, string Portal) +{ + // We'll only force CastleGame game type for maps that we know were build for Epic Citadel (EpicCitadel). + // Note that ignore any possible prefix on the map file name so that PIE and Play On still work with this. + if( Right( MapName, 11 ) ~= "EpicCitadel" || + InStr( MapName, "EpicCitadel." ) != -1 ) + { + return super.SetGameType(MapName, Options, Portal); + } + + return class'UDKBase.SimpleGame'; +} + +defaultproperties +{ + PlayerControllerClass=class'UDKBase.CastlePC' + HUDType=class'UDKBase.MobileHUDExt' +} + + + diff --git a/Development/Src/UDKBase/classes/CastlePC.uc b/Development/Src/UDKBase/classes/CastlePC.uc new file mode 100644 index 0000000..1131f6c --- /dev/null +++ b/Development/Src/UDKBase/classes/CastlePC.uc @@ -0,0 +1,989 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ + +class CastlePC extends SimplePC; + +/** Set to true to suppress the splash screen */ +var config bool bSuppressSplash; + +/** will be true once the splash screen has been shown */ +var bool bSplashHasBeenShown; + +/** If True then we are in attract mode */ +var bool bIsInAttractMode; + +/** If True then we are in benchmark mode */ +var bool bIsInBenchmarkMode; + +/** If True, then a full flythrough loop has been completed in benchmark mode */ +var bool bBenchmarkLoopCompleted; + +/** Track the number of frames and the elapsed time while in benchmark mode to get average frame rate */ +var int BenchmarkNumFrames; +var float BenchmarkElapsedTime; + +/** Have we triggered the initial fading out of the Controls Help Menu */ +var bool bDoneInitialFade; + +var MobileMenuPause PauseMenu; // The Pause menu +var MobileMenuDebug DebugMenu; // The Debug menu + +var bool bPauseMenuOpen; +var bool bAutoSlide; + +var float SliderStart, SliderEnd; +var float SliderTravelTime; +var float SliderTravelDuration; + +var float AutoAttractTime; + +var SoundCue OpenMenuSound; +var SoundCue CloseMenuSound; + +var MobileMenuControls TutMenu; + + +/************************************* + Tap to Move + ************************************/ + +/** How far the player must have moved within the last 0.5 seconds before we consider them 'stuck' and + abort automatic movement */ +var float StuckThreshHold; + +/** Scalar that sets how much the camera should pitch up and down to match the tap-to-move target */ +var float TapToMoveAutoPitchAmount; + +/** Mesh to use for 'tap to move' visual cue in the world */ +var StaticMesh TapToMoveVisualMesh; + +/** Minimum distance from destination before visual cue will vanish */ +var float TapToMoveVisualMinDist; + +/** How fast the visual cue should rotate every frame */ +var float TapToMoveVisualRotateSpeed; + +/** Length of visual cue animation effect */ +var float TapToMoveVisualAnimDuration; + +/** Holds the destination we are moving towards */ +var vector TapToMoveDestination; + +/** We use this to see if we are stuck */ +var float LastDistToDestination; + +/** Time that tap to move visual effect started */ +var float TapToMoveVisualEffectStartTime; + +/** Time that tap to move visual effect ended */ +var float TapToMoveVisualEffectEndTime; + +var SoundCue TapToMoveSound; +var SoundCue InvalidTapToMoveSound; +var SoundCue TapToMoveStopSound; + +/** Spawned actor for 'tap to move' visual cue */ +var KActorSpawnable TapToMoveVisualActor; + +/************************************* + Tutorial + ************************************/ + +enum ETutorialStage +{ + ETS_None, + ETS_Tap, + ETS_Swipe, + ETS_Sticks, + ETS_Done, +}; + +var ETutorialStage TutorialStage; + +/** Cached reference to the Tutorial Look Zone */ +var MobileInputzone TutorialLookZone; + + +/** + * Setup the in world indicator for tap to move and some other subsystems + */ +simulated function PostBeginPlay() +{ + Super.PostBeginPlay(); + + // Kill existing 'tap to move' actor, if any + if( TapToMoveVisualActor != None ) + { + TapToMoveVisualActor.Destroy(); + } + + // Spawn our 'tap to move' visual cue actor + TapToMoveVisualActor = Spawn( class'KActorSpawnable',self,,,,,true); + TapToMoveVisualActor.SetCollision( false, false, true ); // Disable collision + TapToMoveVisualActor.SetHidden( true ); + TapToMoveVisualActor.SetDrawScale3D( vect( 1, 1, 5 ) ); + TapToMoveVisualActor.StaticMeshComponent.SetStaticMesh( TapToMoveVisualMesh ); + TapToMoveVisualActor.SetPhysics( PHYS_None ); +} + +/** + * Make sure we destory the visual tap actor + */ +event Destroyed() +{ + // Kill existing 'tap to move' actor, if any + if( TapToMoveVisualActor != None ) + { + TapToMoveVisualActor.Destroy(); + } + + super.Destroyed(); +} + + +/** + * An event that is called after the first tick of GEngine. We are going to hijack this for + * initialization purposes. + */ +event OnEngineInitialTick() +{ + // If we are in preview mode, then skip the flyby, splash and tutorial + if (WorldInfo.IsPlayInPreview() || WorldInfo.IsPlayInEditor()) + { + // Setup some of the default states + TutorialStage = ETS_Done; + ActivateControlGroup(); + ResetMenu(); + } + else + { + // trigger Epic Citadel map stuff (see Kismet in EpicCitadel map) + CauseEvent('IntroCam'); + ConsoleCommand("mobile playsong town_render"); + } +} + + +/** + * The main purpose of this function is to size and reset zones. There's a lot of specific code in + * here to reposition zones based on if it's an phone vs pad. + */ +function SetupZones() +{ + local MobileInputZone Zone; + local float Ratio; + + Super.SetupZones(); + + // If we have a game class, configure the zones + if (MPI != None && WorldInfo.GRI.GameClass != none) + { + // Find the button zone that exits attract mode. + Zone = MPI.FindZone("ExitAttractModeZone"); + if (Zone != none) + { + Zone.OnTapDelegate = ExitAttractTap; + } + + // Find the tap to move zone and setup the tutorial + Zone = MPI.FindZone("TapTutorialZone"); + if (Zone != none) + { + Zone.OnTapDelegate = TapToMoveTap; + } + else + { + `log("!!!WARNING!!! Tutorial will be broken due to Tap"); + } + + // Find the look zone and setup the tutorial + TutorialLookZone = MPI.FindZone("SwipeTutorialZone"); + if (TutorialLookZone == none) + { + `log("!!!WARNING!!! Tutorial will be broken due to Swipe"); + } + + // If we aren't supressing the splash screen, setup the pause menu + if (!bSuppressSplash) + { + PauseMenu = MobileMenuPause(MPI.OpenMenuScene(class'MobileMenuPause')); + SliderZone = MPI.FindZone("MenuSlider"); + if (SliderZone != none) + { + SliderZone.OnTapDelegate = MenuSliderTap; + SliderZone.OnProcessSlide = ProcessMenuSlide; + SliderZone.SizeY = PauseMenu.Height; + } + } + + + Ratio = ViewportSize.Y / ViewportSize.X; + + // Find the zone and hook up the delegate so we can perform tap to move + Zone = MPI.FindZone("TapToMoveZone"); + if (Zone != none) + { + Zone.OnTapDelegate = TapToMoveTap; + } + + if (FreeLookZone != none) + { + FreeLookZone.OnTapDelegate = TapToMoveTap; + if (Ratio == 0.75 || ViewportSize.X <= 480) + { + FreeLookZone.VertMultiplier *= 1.75; + FreeLookZone.HorizMultiplier *= 3.25; + FreeLookZone.Acceleration *= 0.5; + } + } + + // Setup the timer to check for inactivity / attract mode + //SetTimer(1.0,true,'CheckInactivity'); + + // Setup a timer that will write out controller stats every 60 seconds. + SetTimer(60.0,true,'SaveControllerStats'); + + // Activate the input group for the flyby (ie: no input) + if (MPI != none) + { + MPI.ActivateInputGroup("InitialFlybyGroup"); + } + } +} + +/** + * Saves out the controller stats for processing + */ +function SaveControllerStats() +{ + if ((StickLookZone != none) && (StickMoveZone != none) && (FreeLookZone != none)) + { + ConsoleCommand("mobile recordcontrolstats" @ StickMoveZone.TotalActiveTime @ StickLookZone.TotalActiveTime @ FreeLookZone.TotalActiveTime @ TotalTimeInTapToMove @ NoTapToMoves); + + StickMoveZone.TotalActiveTime = 0; + StickLookZone.TotalActiveTime = 0; + FreeLookZone.TotalActiveTime = 0; + } + + TotalTimeInTapToMove = 0; + NoTapToMoves = 0; +} + +/** + * Every second, we look at various metrics to see if the player has been active. If they haven't been, then + * we want switch to attract mode + */ +function CheckInactivity() +{ + // Quick out if we don't allow attract mode + if (CastleGame(WorldInfo.Game) == none || CastleGame(WorldInfo.Game).bAllowAttractMode == false) + { + return; + } + + //if the pause menu is open, or a submenu is open + if ( LocalPlayer(Player).ViewportClient.bDisableWorldRendering || (PauseMenu != none && bPauseMenuOpen) || bIsInAttractMode || bCinematicMode || (MPI.MobileMenuStack.Length>1 && TutMenu == none)) + { + MPI.MobileInactiveTime = 0; + } + + // Make the call... + if (MPI.MobileInactiveTime > AutoAttractTime && !bIsInAttractMode && !bCinematicMode) + { + EnterAttractMode(); + } +} + +/** + * Trace, but ignore volumes and triggers unless they are blockers (i.e. BlockingVolume) + * + * @param TraceOwner is the player's pawn + * @param HitLocation holds the location were the trace ends + * @param HitNormal holds the orientation of the surface normal where it hit + * @param End is where we would like the trace to end + * @param Start is where the trace is starting from + */ +simulated function Actor TraceForTapToMove(Pawn TraceOwner, out vector HitLocation, out vector HitNormal, vector End, vector Start) +{ + local Actor HitActor; + local vector HitLoc, HitNorm; + local TraceHitInfo HitInfo; + + // Iterate over each actor along trace... + foreach TraceOwner.TraceActors(class'Actor', HitActor, HitLoc, HitNorm, End, Start, , HitInfo,TRACEFLAG_Bullet) + { + // if it's not a trigger or a volume, use it! + if ( (HitActor.bBlockActors || HitActor.bWorldGeometry) && (Volume(HitActor) == None && Trigger(HitActor)==None)) + { + HitLocation = HitLoc; + HitNormal =HitNorm; + return HitActor; + } + } + + // Found nothing non-volume or -trigger like :( + return None; +} + + +/** + * This is our event handler for taps. + * + * @param Zone The Zone we are managing + * @param EventType The type of event that occurred + * @param TouchLocation Where was the touch + */ +function bool TapToMoveTap(MobileInputZone Zone, ETouchType EventType, Vector2D TouchLocation) +{ + local Vector2D RelLocation; + local Vector Origin, Direction, Destination; + local Vector HitLocation, HitNormal; + local Actor HitActor; + local bool bWantReverse; + local bool bValidDestination; + + // Don't perform these traces if if are in attract mode, playing a cinematic or if the movement stick is + // currently active. + if( !bIsInAttractMode && !bCinematicMode && StickMoveZone.State == ZoneState_Inactive ) + { + // Figure out the location relative to the current viewport + RelLocation.X = TouchLocation.X / ViewportSize.X; + RelLocation.Y = TouchLocation.Y / ViewportSize.Y; + + // Check to see if the user touched near the very bottom of the viewport + bWantReverse = false; //( RelLocation.Y >= 0.85 ); + + // If the user clicked near the bottom of the viewport and is already moving toward a destination, + // then cancel the movement in progress. Basically, clicking near the bottom of the viewport is + // used to stop moving. + if( bWantReverse && IsInState('PlayerTapToMove') ) + { + // Draw an effect on the HUD + MobileHudExt( MyHud ).StartTapToMoveEffect( TouchLocation.X, TouchLocation.Y ); + + // Play a 'move stopped' sound effect + PlaySound( TapToMoveStopSound ); + + // Cancel touch to move + GotoState('PlayerWalking'); + } + else + { + NoTapToMoves++; + + // If we're reversing then flip the touch point along the horizontal axis so we'll walk backwards + // in the expected direction + if( bWantReverse ) + { + RelLocation.x = 1.0 - RelLocation.x; + } + + // Deproject and get the world location + LocalPlayer(Player).Deproject(RelLocation, Origin, Direction); + + // If we're reversing then choose a location behind the player a little bit + if( bWantReverse ) + { + Direction.Z = 0.0f; + Destination = Origin - Direction * 512; + } + else + { + // Moving forward, so cast a way straight out far into the scene + Destination = Origin + (Direction * 10240); + } + + // Now trace in to the world and get where to go. + HitActor = TraceForTapToMove(Pawn, HitLocation, HitNormal, Destination, Origin); + if (HitActor != none) + { + Destination = HitLocation + (HitNormal * Pawn.GetCollisionHeight() * 2); + } + if (!PointReachable(Destination)) + { + // Still not reachable. Then find the ground and see if we can move there. + Origin = Destination; + Destination.Z = -65535; + + HitActor = TraceForTapToMove(Pawn, HitLocation, HitNormal, Destination, Origin); + if (HitActor != none) + { + // We hit the ground, step back the collision Height; + Destination = HitLocation; + Destination.Z += Pawn.GetCollisionHeight(); + } + } + + // Unless we're reversing, if the desired location is somehow behind the player then fail the movement + if( bWantReverse ) + { + bValidDestination = true; + } + else + { + bValidDestination = ( ( Normal( Destination - Pawn.Location ) dot Vector( Pawn.Rotation ) ) > 0.25 ); + } + + // If the desired location is very close to the player then fail the movement + if( ( VSize2D( Destination - Pawn.Location ) < 128.0 ) ) + { + bValidDestination = false; + } + + + if( bValidDestination ) + { + // Play a 'move succeeded' sound effect + PlaySound( TapToMoveSound ); + + // Draw an effect on the HUD + MobileHudExt( MyHud ).StartTapToMoveEffect( TouchLocation.X, TouchLocation.Y ); + + // Start moving to the new destination! + DoTapToMove( Destination, !bWantReverse ); // Don't auto-look at destination when reversing + } + else + { + // Play a 'move failed' sound effect + PlaySound( InvalidTapToMoveSound ); + + // Cancel an existing tap-to-move action, if there is one in progress + if( IsInState('PlayerTapToMove') ) + { + GotoState('PlayerWalking'); + } + } + } + } + + return true; +} + +/** + * The player has clicked on a spot. Start the move + * + * @param NewDestination Where do we want to move to + * @param bShouldLookAtDestination True if we should also automatically look toward the destination + */ +function DoTapToMove( vector NewDestination, bool bShouldLookAtDestination ) +{ + // Update position of tap to move visual cue + TapToMoveVisualActor.SetLocation( NewDestination + vect( 0, 0, 6 ) ); // Raise up a bit + TapToMoveVisualActor.SetHidden( false ); + TapToMoveVisualEffectStartTime = WorldInfo.RealTimeSeconds; + + TapToMoveDestination = NewDestination; + LastDistToDestination = VSize(Pawn.Location - TapToMoveDestination); + + if( bShouldLookAtDestination ) + { + // Start automatically orientating toward the target point + PlayerLookAtDestination(); + } + + GotoState('PlayerTapToMove'); +} + +/** + * Initialize the look at system to point to the destination. + */ +function PlayerLookAtDestination() +{ + if( !bLookAtDestination ) + { + // Start rotating! + bLookAtDestination = true; + } + + // Reset the time of last view change so that we're guaranteed to start looking toward the destination, + // even if the user dragged the view right before touching to move + TimeOfLastUserViewChange = 0; +} + +/** + * Tap to Move requires it's own special state for the player controller + */ +state PlayerTapToMove +{ + /** + * Setup the auto-rotate towards the destination + */ + event BeginState(Name PreviousStateName) + { + Super.BeginState(PreviousStateName); + LastEnteredTapToMove = WorldInfo.RealTimeSeconds; + + // If we are in the tutorial, skip to the next step + if (TutorialStage == ETS_Tap) + { + TutMenu.FadeOut(); + TutMenu = MobileMenuControls(MPI.OpenMenuScene(class'UDKBase.MobileMenuControls')); + TutMenu.Setup(false); + MPI.ActivateInputGroup("SwipeTutorialGroup"); + TutorialStage = ETS_Swipe; + } + + } + + /** + * Close everything down. + */ + event EndState(Name NextStateName) + { + // Track Stats + TotalTimeInTapToMove += WorldInfo.RealTimeSeconds - LastEnteredTapToMove; + + Super.EndState(NextStateName); + + // Turn off the check to see if we are stuck + Cleartimer('CheckIfStuck'); + + // Stop automatically orientating toward the target point + bLookAtDestination = false; + + // Start hiding the visual cue if we haven't already + if( TapToMoveVisualEffectEndTime < TapToMoveVisualEffectStartTime ) + { + TapToMoveVisualEffectEndTime = WorldInfo.RealTimeSeconds; + } + } + + /** + * Check to see if the player is stuck. This is called every 1/2 second. It just looks to see if you have most past a threshold since + * the last check and if not, considers you stuck. + * + * We also use this event to determine if enough time has passed that we should start auto-rotating again + */ + event CheckIfStuck() + { + local Float DistToDestination; + + DistToDestination = VSize(Pawn.Location - TapToMoveDestination); + if (LastDistToDestination - DistToDestination < StuckThreshHold) + { + GotoState('PlayerWalking'); + } + else + { + LastDistToDestination = DistToDestination; + } + } + + /** + * Each frame, look to see if the player has decided to use the virtual stick to move. If they have, + * we want to abort tap to move. + */ + function PlayerTick(float DeltaTime) + { + + if (IsStickMoveActive()) + { + GotoState('PlayerWalking'); + } + Global.PlayerTick(DeltaTime); + } + +Begin: + // Check to see if we're not making progress every so often + SetTimer( 0.5, true, 'CheckIfStuck' ); + + // while we have a valid pawn and move target, and + // we haven't reached the target yet + while (Pawn != None && !Pawn.ReachedPoint(TapToMoveDestination,none)) + { + MoveToDirectNonPathPos(TapToMoveDestination,,1,true); + } + + GotoState('PlayerWalking'); +} + + +/** + * Called from PlayerMove, it's here that we adjust the viewport + */ +function ProcessViewRotation( float DeltaTime, out Rotator out_ViewRotation, Rotator DeltaRot ) +{ + local float AnimProgress; + local vector NewDrawScale; + + // If we are looking at a desintation, preset it for the super to manage + if( bLookAtDestination ) + { + LookAtDestination = TapToMoveDestination - Pawn.Location; + LookAtDestAutoPitchAmount = TapToMoveAutoPitchAmount; + } + + Super.ProcessViewRotation( DeltaTime, out_ViewRotation, DeltaRot); + + // Animate the tap-to-move visual cue + if( TapToMoveVisualEffectEndTime < TapToMoveVisualEffectStartTime ) + { + // We're fading in! + AnimProgress = 1.0 - FMin( ( WorldInfo.RealTimeSeconds - TapToMoveVisualEffectStartTime ) / TapToMoveVisualAnimDuration, 1.0 ); + AnimProgress = FInterpEaseInOut( 0.0, 1.0, AnimProgress, 1.5 ); + + TapToMoveVisualActor.SetRotation( TapToMoveVisualActor.Rotation + MakeRotator( 0, DeltaTime * ( TapToMoveVisualRotateSpeed + 8.0 * AnimProgress * TapToMoveVisualRotateSpeed ), 0 ) ); + } + else + { + // We're fading out! + AnimProgress = FMin( ( WorldInfo.RealTimeSeconds - TapToMoveVisualEffectEndTime ) / TapToMoveVisualAnimDuration, 1.0 ); + AnimProgress = FInterpEaseInOut( 0.0, 1.0, AnimProgress, 1.5 ); + + TapToMoveVisualActor.SetRotation( TapToMoveVisualActor.Rotation + MakeRotator( 0, DeltaTime * ( 1.0 - AnimProgress ) * TapToMoveVisualRotateSpeed, 0 ) ); + + if( AnimProgress >= 1.0 ) + { + // Hide the actor now that we're finished transitioning + TapToMoveVisualActor.SetHidden( true ); + } + } + NewDrawScale.X = 1.0 - AnimProgress * 1.0; // Squash to zero from normal size + NewDrawScale.Y = 1.0 + AnimProgress * 0.5; // Grow to slightly bigger size + NewDrawScale.Z = 1.25 - AnimProgress * 1.25; // Squash to zero from bigger size + TapToMoveVisualActor.SetDrawScale3D( NewDrawScale ); +} + +/** + * If we're very close to the target, then go ahead and hide the visual cue + */ +simulated function CheckDistanceToDestination(float DistToDestination) +{ + + if( DistToDestination < TapToMoveVisualMinDist ) + { + if( TapToMoveVisualEffectEndTime < TapToMoveVisualEffectStartTime ) + { + TapToMoveVisualEffectEndTime = WorldInfo.RealTimeSeconds; + } + } +} + + +/** + * notification when a matinee director track starts or stops controlling the ViewTarget of this PlayerController + * + * @param bNowControlling will be true if we are back in control + */ +event NotifyDirectorControl(bool bNowControlling, SeqAct_Interp CurrentMatinee) +{ + super.NotifyDirectorControl(bNowControlling, CurrentMatinee); + if( bNowControlling ) + { + // Make sure our tap-to-move actor is hidden + TapToMoveVisualActor.SetHidden( true ); + } +} + +/** + * Enter attrack mode. We need to make sure we kill any active menus/etc. + */ +exec function EnterAttractMode( bool BeginBenchmarking = false ) +{ + // Make sure we're not currently auto-moving to a destination + if( IsInState('PlayerTapToMove') ) + { + GotoState('PlayerWalking'); + } + + // Kill the tutorial menu + if (TutMenu != none) + { + TutMenu.FadeOut(); + TutMenu = none; + MPI.ActivateInputGroup("UberGroup"); + MobileHudExt(myHUD).FlashSticks(); + TutorialStage = ETS_Done; + } + + // Hide the on screen help if it's there + if (PauseMenu != none) + { + PauseMenu.ReleaseHelp(); + } + + // Go in to attract mode + CauseEvent('PlayMatinee'); + bIsInAttractMode = true; + + bIsInBenchmarkMode = BeginBenchmarking; + bBenchmarkLoopCompleted = false; + BenchmarkNumFrames = 0; + BenchmarkElapsedTime = 0.0; + + ResetMenu(); + MPI.ActivateInputGroup("AttractGroup"); +} + +exec function OnFlyThroughLoopCompleted() +{ + // Set the benchmark loop completed flag so that we can calculate and display the results of the benchmark fly through + bBenchmarkLoopCompleted = true; +} + +/** + * Leave attract mode + */ +exec function ExitAttractMode() +{ + if (bIsInBenchmarkMode) + { + PauseMenu.InputOwner.Outer.ConsoleCommand("mobile benchmark end"); + } + bIsInAttractMode = false; + bIsInBenchmarkMode = false; + bBenchmarkLoopCompleted = false; + MPI.MobileInactiveTime = 0; + CauseEvent('StopMatinee'); + ActivateControlGroup(); + ResetMenu(); +} + +/** + * Delegate that gets called when the exit attact mode button is tapped + */ +function bool ExitAttractTap(MobileInputZone Zone, ETouchType EventType, Vector2D TouchLocation) +{ + ExitAttractMode(); + PauseMenu.SetDefaultUI(); // set the correct UI + return true; +} + +/** + * Automatically slide to a new location + */ +function AutoSlide(float Destination) +{ + SliderStart = SliderZone.CurrentLocation.Y; + SliderEnd = Destination; + SliderTravelTime = 0; + bAutoSlide = true; +} + +/** + * Reset the pause menu + */ +function ResetMenu() +{ + if (bPauseMenuOpen) + { + PauseMenu.OnResetMenu(); + AutoSlide(SliderZone.Y); + bPauseMenuOpen = false; + PlaySound( CloseMenuSound ); + } +} + +/** + * Force the Pause Menu to open + */ +function OpenMenu() +{ + if (!bPauseMenuOpen) + { + bPauseMenuOpen = true; + AutoSlide(PauseMenu.ShownSize); + PlaySound( OpenMenuSound ); + } +} + +/** + * Depending on the state of the pause menu, a tap on it's nub will either auto-open or auto-close it. + * This delegate manages the tap. + */ +function bool MenuSliderTap(MobileInputZone Zone, ETouchType EventType, Vector2D TouchLocation) +{ + if (bPauseMenuOpen) + { + ResetMenu(); + } + else + { + OpenMenu(); + } + + return true; +} + +/** + * When you touch and drag on the nub, this code determines what to do. + */ +function bool ProcessMenuSlide(MobileInputZone Zone, ETouchType EventType, int SlideValue, Vector2D ViewportSizes) +{ + // Align the menu to the touch. + PauseMenu.Top = Zone.CurrentLocation.Y - PauseMenu.Height; + // somehow the zone size is being reset (on device, but not PC), so this just fixes it. mildly hacky, but no real penalty. + Zone.SizeY = PauseMenu.Height; + + // If we are releasing the menu, see if we need to reset, or if we need to open + if (EventType == Touch_Ended && !bPauseMenuOpen) + { + if (Zone.CurrentLocation.Y >= PauseMenu.ShownSize) + { + OpenMenu(); + } + else + { + AutoSlide(SliderZone.Y); + } + } + + return true; +} + +/** + * Handle any animations and time criticl code + */ +function PlayerTick(float DeltaTime) +{ + local int SettingsLocationX; + + Super.PlayerTick(DeltaTime); + + if (TutorialStage == ETS_Swipe) + { + if (TutorialLookZone.State != ZoneState_Inactive) + { + TutMenu.FadeOut(); + TutMenu = none; + MPI.ActivateInputGroup("UberGroup"); + MobileHudExt(myHUD).FlashSticks(); + TutorialStage = ETS_Done; + } + } + + // Trigger the fading of the Controls Help screen that we bring up on map load + if ( !bDoneInitialFade ) + { + // @todo: Disabled this for intermediate demo; Consider re-enabling later. + // PauseMenu.FadeOutControlsMenu(); + bDoneInitialFade = TRUE; + } + + // Handle the menu sliding back in to place + if (bAutoSlide) + { + SliderZone.CurrentLocation.Y = FInterpEaseInOut(SliderStart,SliderEnd, SliderTravelTime/SliderTravelDuration,3.0); + SliderTravelTime += DeltaTime; + if (SliderTravelTime >= SliderTravelDuration) + { + SliderZone.CurrentLocation.Y = SliderEnd; + bAutoSlide = false; + + if (!bPauseMenuOpen) + { + if (bIsInAttractMode) + { + PauseMenu.SetAttractModeUI(bIsInBenchmarkMode); + } + else + { + PauseMenu.SetDefaultUI(); + } + } + } + PauseMenu.Top = SliderZone.CurrentLocation.Y - PauseMenu.Height; + } + + // Only pull out the settings menu if it's available (only Android) + if (PauseMenu.MenuObjects.length >= 5) + { + SettingsLocationX = FInterpEaseInOut(MyHUD.SizeX, PauseMenu.Width - PauseMenu.MenuObjects[4].Width + 2, FClamp(SliderZone.CurrentLocation.Y / (PauseMenu.ShownSize - SliderZone.Y), 0.0, 1.0), 3.0); + PauseMenu.MenuObjects[4].Left = SettingsLocationX; + } + + // If we are currently benchmarking, track the number of frames and elapsed time. + // Note that this assumes a TimeDilation of 1.0 and doesn't properly handle the cases where DeltaTime is clamped because it was super long or super short, but in EpicCitadel benchmark mode these shouldn't be problems in practice. + if( bIsInBenchmarkMode && !bBenchmarkLoopCompleted ) + { + BenchmarkNumFrames += 1; + BenchmarkElapsedTime += DeltaTime; + } +} + +/** + * Show the splash screen + */ +exec function ShowSplash() +{ + // Activate the tutorial input group then show the splash + MPI.ActivateInputGroup("TapTutorialGroup"); + if (!bSplashHasBeenShown && !bSuppressSplash && MPI != none) + { + bSplashHasBeenShown = true; + MPI.OpenMenuScene(class'UDKBase.MobileMenuSplash'); + } +} + +/** + * Display the control help on the screen + */ +exec function FlashHelp(float Duration) +{ + if (!bPauseMenuOpen) + { + PauseMenu.FlashHelp(Duration); + } +} + +/** + * Start the tutorials + */ +function StartTutorials() +{ + TutMenu = MobileMenuControls(MPI.OpenMenuScene(class'UDKBase.MobileMenuControls')); + TutMenu.Setup(true); + TutorialStage = ETS_Tap; +} + +exec function SetFootstepsToStone() +{ + FootstepSounds[0]=SoundCue'CastleAudio.Player.Footstep_Walk_01_Cue'; + FootstepSounds[1]=SoundCue'CastleAudio.Player.Footstep_Walk_02_Cue'; + FootstepSounds[2]=SoundCue'CastleAudio.Player.Footstep_Walk_03_Cue'; + FootstepSounds[3]=SoundCue'CastleAudio.Player.Footstep_Walk_04_Cue'; + FootstepSounds[4]=SoundCue'CastleAudio.Player.Footstep_Walk_05_Cue'; + FootstepSounds[5]=SoundCue'CastleAudio.Player.Footstep_Walk_06_Cue'; +} + +exec function SetFootstepsToSnow() +{ + FootstepSounds[0]=SoundCue'CastleAudio.Player.Footstep_Snow01_Cue'; + FootstepSounds[1]=SoundCue'CastleAudio.Player.Footstep_Snow02_Cue'; + FootstepSounds[2]=SoundCue'CastleAudio.Player.Footstep_Snow03_Cue'; + FootstepSounds[3]=SoundCue'CastleAudio.Player.Footstep_Snow04_Cue'; + FootstepSounds[4]=SoundCue'CastleAudio.Player.Footstep_Snow05_Cue'; + FootstepSounds[5]=SoundCue'CastleAudio.Player.Footstep_Snow06_Cue'; +} + + + + +defaultproperties +{ + StuckThreshHold=25 + TapToMoveAutoPitchAmount=0.25 + TapToMoveVisualMesh=StaticMesh'CastleEffects.TouchToMoveArrow' + TapToMoveVisualMinDist=230 + TapToMoveVisualRotateSpeed=100000 + TapToMoveVisualAnimDuration=0.3 + + AutoAttractTime=45 + TapToMoveSound=SoundCue'CastleAudio.UI.UI_TouchToMove_Cue' + InvalidTapToMoveSound=SoundCue'CastleAudio.UI.UI_InvalidTouchToMove_Cue' + TapToMoveStopSound=SoundCue'CastleAudio.UI.UI_StopTouchToMove_Cue' + OpenMenuSound=SoundCue'CastleAudio.UI.UI_MainMenu_Cue' + CloseMenuSound=SoundCue'CastleAudio.UI.UI_OK_Cue' + bSplashHasBeenShown=false + + SliderTravelDuration=0.3 + TutorialStage=ETS_None + + FootstepSounds(0)=SoundCue'CastleAudio.Player.Footstep_Walk_01_Cue' + FootstepSounds(1)=SoundCue'CastleAudio.Player.Footstep_Walk_02_Cue' + FootstepSounds(2)=SoundCue'CastleAudio.Player.Footstep_Walk_03_Cue' + FootstepSounds(3)=SoundCue'CastleAudio.Player.Footstep_Walk_04_Cue' + FootstepSounds(4)=SoundCue'CastleAudio.Player.Footstep_Walk_05_Cue' + FootstepSounds(5)=SoundCue'CastleAudio.Player.Footstep_Walk_06_Cue' +} diff --git a/Development/Src/UDKBase/classes/CloudGame.uc b/Development/Src/UDKBase/classes/CloudGame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/CloudHUD.uc b/Development/Src/UDKBase/classes/CloudHUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/CloudMenuMicroTrans.uc b/Development/Src/UDKBase/classes/CloudMenuMicroTrans.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/CloudPC.uc b/Development/Src/UDKBase/classes/CloudPC.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/CloudSaveData.uc b/Development/Src/UDKBase/classes/CloudSaveData.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/MobileGameCrowdAgent.uc b/Development/Src/UDKBase/classes/MobileGameCrowdAgent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/MobileHUDExt.uc b/Development/Src/UDKBase/classes/MobileHUDExt.uc new file mode 100644 index 0000000..a6f521f --- /dev/null +++ b/Development/Src/UDKBase/classes/MobileHUDExt.uc @@ -0,0 +1,381 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ + +class MobileHUDExt extends MobileHUD native; + +/** Texture to use for 'tap-to-move' screen space effect */ +var Texture2D TapToMoveTexture; + +/** Last time that we were asked to draw the tap to move effect */ +var float LastTapToMoveEffectTime; +var Vector2D TapToMoveEffectPos; + +var bool bFlashJoysticks; +var float FlashTime; + +/** The font to use for displaying benchmark results */ +var font BenchmarkFont; + +/** Background texture for displaying the benchmark results */ +var Texture2D BenchmarkBackground; +var TextureUVs BenchmarkBackgroundUVs; + +var float BenchmarkResolutionScale; +var int BenchmarkFeatureLevel; + +native function UpdateBenchmarkInformation(); + +/** Starts drawing a transparent circle at the specified location for a brief moment (with animation) */ +function StartTapToMoveEffect( float X, float Y ) +{ + // Store time that we were asked to draw the effect. This effectively "turns on" the effect. + LastTapToMoveEffectTime = WorldInfo.RealTimeSeconds; + TapToMoveEffectPos.X = X; + TapToMoveEffectPos.Y = Y; +} + + +/** Draws the tap to move effect if we need to */ +function ConditionallyDrawTapToMoveEffect() +{ + local float EffectDuration; + local float EffectSize; + local float EffectOpacity; + local float FadeInPercent; + local float FadeOutPercent; + + local float EffectProgress; + local float AnimatedSize; + local float AnimatedOpacity; + + // How long the effect should last + EffectDuration = 0.25; + FadeInPercent = 0.1; + FadeOutPercent = 0.6; + + // How big the effect should be + EffectSize = 64.0; + + // Maximum opacity of the effect + EffectOpacity = 0.3; + + // Is it time to draw the effect? + if( WorldInfo.RealTimeSeconds - LastTapToMoveEffectTime < EffectDuration ) + { + EffectProgress = FClamp( ( WorldInfo.RealTimeSeconds - LastTapToMoveEffectTime ) / EffectDuration, 0.0, 1.0 ); + EffectProgress = FInterpEaseIn( 0.0, 1.0, EffectProgress, 1.5 ); + + AnimatedSize = EffectSize * 0.15 + EffectSize * EffectProgress * 0.85; + + AnimatedOpacity = EffectOpacity; + + // Fade in over the first bit of the effect + if( EffectProgress < FadeInPercent ) + { + AnimatedOpacity *= ( EffectProgress / FadeInPercent ); + } + + // Fade out over the tail end of the effect + if( EffectProgress > ( 1.0 - FadeOutPercent ) ) + { + AnimatedOpacity *= 1.0 - ( EffectProgress - ( 1.0 - FadeOutPercent ) ) / FadeOutPercent; + } + + + Canvas.SetPos( TapToMoveEffectPos.X - AnimatedSize * 0.5, TapToMoveEffectPos.Y - AnimatedSize * 0.5 ); + Canvas.SetDrawColor( 255, 255, 255, AnimatedOpacity * 255.0 ); + Canvas.DrawTile( TapToMoveTexture, AnimatedSize, AnimatedSize, 0.0, 0.0, TapToMoveTexture.GetSurfaceWidth(), TapToMoveTexture.GetSurfaceHeight() ); + } +} + +function bool ShowMobileHud() +{ + // Show the mobile HUD if we are allowed to and if we don't have the HUD disabled via cinematic mode. + return bShowMobileHud && bShowHud; +} + +function PostRender() +{ + local CastlePC PC; + + Instigator = PlayerOwner.Pawn; + + super.PostRender(); + + PC = CastlePC(PlayerOwner); + + if (PC.bIsInAttractMode) + { + PostRenderAttractMode(); + } + + // Display benchmark information + if (PC.bIsInBenchmarkMode) + { + // If the benchmark loop has completed, then display the results of the benchmark loop + if( PC.bBenchmarkLoopCompleted ) + { + PostRenderBenchmarkModeCompleted(); + } + else + { + PostRenderBenchmarkModeRunning(); + } + } + + if ( bShowHud && !PC.bIsInAttractMode) + return; + + // Draw the tap to move HUD animation, if we need to + ConditionallyDrawTapToMoveEffect(); + +} + +function PostRenderAttractMode() +{ + local float Scale,w,h; + + Scale = Canvas.ClipX / 960; + w = 124 * Scale; + h = w * 1.193548387096774; + Canvas.SetPos(Canvas.ClipX - 192*Scale, Canvas.ClipY - 171*Scale); + Canvas.DrawColor = WhiteColor; + Canvas.DrawTile(Texture2D'CastleUI.menus.T_CastleMenu2',w,h,0,1518,248,296); + +} + +function PostRenderBenchmarkModeCompleted() +{ + local CastlePC PC; + local int fps, ScreenCenterX, BGTop, BGWidth, BGHeight, ScaledWindowWidth, ScaledWindowHeight; + local float StringWidth, StringHeight, TextScale; + local string PerformanceString; + + UpdateBenchmarkInformation(); + + Canvas.Font = BenchmarkFont; + + PC = CastlePC(PlayerOwner); + TextScale = 1.5f; + + ScreenCenterX = PC.ViewportSize.X / 2; + BGTop = PC.ViewportSize.Y * 0.28; + BGWidth = PC.ViewportSize.Y * 1.0; + BGHeight = PC.ViewportSize.Y * 0.55; + + // Draw background + Canvas.SetPos(ScreenCenterX - BGWidth/2, BGTop); + Canvas.DrawTile(BenchmarkBackground, BGWidth, BGHeight, BenchmarkBackgroundUVs.U, BenchmarkBackgroundUVs.V, BenchmarkBackgroundUVs.UL, BenchmarkBackgroundUVs.VL); + + // Draw benchmark results header + Canvas.DrawColor = WhiteColor; + Canvas.StrLen( "Benchmark Results", StringWidth, StringHeight ); + Canvas.SetPos( ScreenCenterX - StringWidth/2 * TextScale, BGTop + BGHeight * 0.1 ); + Canvas.DrawText( "Benchmark Results", true, TextScale, TextScale ); + + // Draw result fields here + fps = 10 * PC.BenchmarkNumFrames / PC.BenchmarkElapsedTime; + Canvas.StrLen( "Average FPS: " $ (fps/10) $ "." $ (fps%10), StringWidth, StringHeight ); + Canvas.SetPos( ScreenCenterX - StringWidth/2 * TextScale, BGTop + (BGHeight * 0.25) ); + Canvas.DrawText( "Average FPS: " $ (fps/10) $ "." $ (fps%10), false, TextScale, TextScale ); + + // Draw benchmark information + ScaledWindowWidth = SizeX * BenchmarkResolutionScale; + ScaledWindowHeight = SizeY * BenchmarkResolutionScale; + Canvas.StrLen( "Resolution: " $ ScaledWindowWidth $ "x" $ ScaledWindowHeight, StringWidth, StringHeight ); + Canvas.SetPos( ScreenCenterX - StringWidth/2 * TextScale, BGTop + (BGHeight * 0.4) ); + Canvas.DrawText( "Resolution: " $ ScaledWindowWidth $ "x" $ ScaledWindowHeight, false, TextScale, TextScale ); + + Canvas.StrLen( "Performance Level: ", StringWidth, StringHeight ); + Canvas.SetPos( ScreenCenterX - StringWidth/2 * TextScale, BGTop + (BGHeight * 0.55) ); + Canvas.DrawText( "Performance Level: ", false, TextScale, TextScale ); + + switch (BenchmarkFeatureLevel) + { + case 1: + PerformanceString = "High Quality"; + break; + case 0: + default: + PerformanceString = "High Performance"; + break; + } + + Canvas.StrLen( PerformanceString, StringWidth, StringHeight ); + Canvas.SetPos( ScreenCenterX - StringWidth/2 * TextScale, BGTop + (BGHeight * 0.7) ); + Canvas.DrawText( PerformanceString, false, TextScale, TextScale ); +} + +function PostRenderBenchmarkModeRunning() +{ + local CastlePC PC; + local float Scale; + local int fps, ScreenCenterX; + local float StringWidth, StringHeight, MaxFPSWidth, FpsY; + + Canvas.Font = BenchmarkFont; + + PC = CastlePC(PlayerOwner); + Scale = PC.PauseMenu.Scale; + + ScreenCenterX = PC.ViewportSize.X / 2; + + // Draw the frame rate of the current frame + fps = 1 / WorldInfo.DeltaSeconds; + + + Canvas.StrLen( "Benchmarking...", StringWidth, StringHeight ); + + Canvas.SetPos( ScreenCenterX - (StringWidth / 2), PC.PauseMenu.Height ); + Canvas.DrawColor = WhiteColor; + Canvas.DrawText( "Benchmarking...", false ); + + // Draw fps information + Canvas.StrLen( "100", MaxFPSWidth, StringHeight ); + Canvas.StrLen( fps, StringWidth, StringHeight ); + + FpsY = PC.ViewportSize.Y - StringHeight * Scale - 20 * Scale; + Canvas.SetPos( 30 * Scale - StringWidth + MaxFPSWidth, FpsY ); + Canvas.DrawText( fps, false ); + + Canvas.SetPos( 45 * Scale + MaxFPSWidth, FpsY ); + Canvas.DrawText( "FPS", false ); +} + +function DrawMobileZone_Slider(MobileInputZone Zone) +{ + local TextureUVs UVs; + local Texture2D Tex; + local float Ofs,Scale; + + // First, look up the Texture + + Tex = SliderImages[int(Zone.SlideType)]; + UVs = SliderUVs[int(Zone.SlideType)]; + + // Now, figure out where we have to draw. + + + Scale = CastlePC(PlayerOwner).PauseMenu.Scale; + Ofs = 16 *Scale; + + Canvas.SetPos(Zone.CurrentLocation.X, Zone.CurrentLocation.Y-Ofs); + Canvas.DrawTile(Tex,Zone.ActiveSizeX, Zone.ActiveSizeY, UVs.U, UVs.V, UVs.UL, UVs.VL); +} + +function DrawMobileZone_Joystick(MobileInputZone Zone) +{ + local int X, Y, Width, Height; + local Color LineColor; + local float ClampedX, ClampedY, Scale; + local Color TempColor; + local float FlashScale; + + + if (bFlashJoysticks) + { + FlashScale = FInterpEaseOut(3.0,1.0,FlashTime/0.75,2); + FlashTime += RenderDelta; + if (FlashTime > 0.75) + { + bFlashJoysticks = false; + } + } + else + { + FlashScale = 1.0; + } + + if (JoystickBackground != none) + { + Width = Zone.ActiveSizeX * FlashScale; + Height = Zone.ActiveSizeY * FlashScale; + + X = Zone.CurrentCenter.X - (Width /2); + Y = Zone.CurrentCenter.Y - (Height /2); + + Canvas.SetPos(X,Y); + Canvas.DrawTile(JoystickBackground, Width, Height, JoystickBackgroundUVs.U, JoystickBackgroundUVs.V, JoystickBackgroundUVs.UL, JoystickBackgroundUVs.VL); + } + + // Draw the Hat + + if (JoystickHat != none) + { + // Compute X and Y clamped to the size of the zone for the joystick + ClampedX = Zone.CurrentLocation.X - Zone.CurrentCenter.X; + ClampedY = Zone.CurrentLocation.Y - Zone.CurrentCenter.Y; + Scale = 1.0f; + if ( ClampedX != 0 || ClampedY != 0 ) + { + Scale = Min( Zone.ActiveSizeX, Zone.ActiveSizeY ) / ( 2.0 * Sqrt(ClampedX * ClampedX + ClampedY * ClampedY) ); + Scale = FMin( 1.0, Scale ); + } + ClampedX = ClampedX * Scale + Zone.CurrentCenter.X; + ClampedY = ClampedY * Scale + Zone.CurrentCenter.Y; + + if (Zone.bRenderGuides) + { + TempColor = Canvas.DrawColor; + LineColor.R = 128; + LineColor.G = 128; + LineColor.B = 128; + LineColor.A = 255; + Canvas.Draw2DLine(Zone.CurrentCenter.X, Zone.CurrentCenter.Y, ClampedX, ClampedY, LineColor); + Canvas.DrawColor = TempColor; + + } + + // The size of the indicator will be a fraction of the background's total size + Width = Zone.ActiveSizeX * 0.65 * FlashScale; + Height = Zone.ActiveSizeY * 0.65 * FlashScale; + + Canvas.SetPos( ClampedX - Width / 2, ClampedY - Height / 2); + Canvas.DrawTile(JoystickHat, Width, Height, JoystickHatUVs.U, JoystickHatUVs.V, JoystickHatUVs.UL, JoystickHatUVs.VL); + } +} + +function FlashSticks() +{ + bFlashJoysticks = true; + FlashTime = 0; +} + +defaultproperties +{ + JoystickBackground=Texture2D'MobileResources.T_MobileControls_texture' + JoystickBackgroundUVs=(U=0,V=0,UL=126,VL=126) + JoystickHat=Texture2D'MobileResources.T_MobileControls_texture' + JoystickHatUVs=(U=128,V=0,UL=78,VL=78) + + ButtonImages(0)=Texture2D'MobileResources.HUD.MobileHUDButton3' + ButtonImages(1)=Texture2D'MobileResources.HUD.MobileHUDButton3' + ButtonUVs(0)=(U=0,V=0,UL=32,VL=32) + ButtonUVs(1)=(U=0,V=0,UL=32,VL=32) + + TrackballBackground=none + TrackballTouchIndicator=Texture2D'MobileResources.T_MobileControls_texture' + TrackballTouchIndicatorUVs=(U=160,V=0,UL=92,VL=92) + + ButtonFont = Font'EngineFonts.SmallFont' + ButtonCaptionColor=(R=0,G=0,B=0,A=255); + + SliderImages(0)=Texture2D'CastleUI.menus.T_CastleMenu2' + SliderImages(1)=Texture2D'CastleUI.menus.T_CastleMenu2' + SliderImages(2)=Texture2D'CastleUI.menus.T_CastleMenu2' + SliderImages(3)=Texture2D'CastleUI.menus.T_CastleMenu2' + SliderUVs(0)=(U=1282,V=440,UL=322,VL=150) + SliderUVs(1)=(U=1282,V=440,UL=322,VL=150) + SliderUVs(2)=(U=1282,V=440,UL=322,VL=150) + SliderUVs(3)=(U=1282,V=440,UL=322,VL=150) + + LastTapToMoveEffectTime=-99999.0 + + TapToMoveTexture=Texture2D'CastleHUD.HUD_TouchToMove' + + BenchmarkFont=Font'UI_Fonts.MultiFonts.MF_LargeFont' + + BenchmarkBackground=Texture2D'CastleUIExt.T_CastleMenu2Ext' + BenchmarkBackgroundUVs=(U=19,V=335,UL=996,VL=322) + } diff --git a/Development/Src/UDKBase/classes/MobileMenuBase.uc b/Development/Src/UDKBase/classes/MobileMenuBase.uc new file mode 100644 index 0000000..5cc8f76 --- /dev/null +++ b/Development/Src/UDKBase/classes/MobileMenuBase.uc @@ -0,0 +1,62 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class MobileMenuBase extends MobileMenuScene; + +var Texture2D iPadBackgroundTexture; +var MobileMenuObject.UVCoords iPadBackgroundCoords; + +/** Controls the scene fade */ +var float FadeTime, FadeDuration; +var bool bFadeOut; +var bool bCloseOnFadeOut; + +function Fade(bool bIsFadeOut, float FadeDur) +{ + local int i; + FadeTime = 0; + FadeDuration = FadeDur; + bFadeOut = bIsFadeOut; + + if (bIsFadeOut) + { + for (i=0;i 0) + { + Opacity = bFadeOut ? FInterpEaseOut(1,0,FadeTime/FadeDuration,2.0) : FInterpEaseOut(0,1,FadeTime/FadeDuration,2.0); + FadeTime += RenderDelta; + if (FadeTime > FadeDuration) + { + FadeDuration = 0; + if (bFadeOut && bCloseOnFadeOut) + { + InputOwner.CloseMenuScene(self); + } + } + } + + Super.RenderScene(Canvas,RenderDelta); +} + +defaultproperties +{ + Left=0 + Top=0 + Width=1.0 + Height=1.0 + bRelativeWidth=true + bRelativeHeight=true + + UITouchSound=SoundCue'CastleAudio.UI.UI_OK_Cue' + UIUnTouchSound=SoundCue'CastleAudio.UI.UI_OK_Cue' +} \ No newline at end of file diff --git a/Development/Src/UDKBase/classes/MobileMenuControls.uc b/Development/Src/UDKBase/classes/MobileMenuControls.uc new file mode 100644 index 0000000..d6606d0 --- /dev/null +++ b/Development/Src/UDKBase/classes/MobileMenuControls.uc @@ -0,0 +1,158 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class MobileMenuControls extends MobileMenuScene; + +var float FadeTime, FadeDuration; +var float AnimTime; +var bool bFadeOut; + +var bool bAnimate; +var MobileMenuImage Icon; +var MobileMenuImage Msg; +var float Scale; + +function FadeOut() +{ + FadeTime = 0; + FadeDuration = 0.5; + bFadeOut = true; +} + +function Setup(bool bTap) +{ + + Icon = MobileMenuImage(MenuObjects[0]); + Msg = MobileMenuImage(MenuObjects[1]); + + Scale = Width / 960; + + FadeTime = 0; + FadeDuration = 0.5; + bFadeOut = false; + + if (bTap) + { + bAnimate = true; + Icon.Width = 84 * Scale; + Icon.Height = 84 * Scale; + Icon.Left = (Width * 0.5) - (Icon.Width * 0.5); + Icon.Top = Height * 0.50; + Icon.ImageUVs.U = 1306; + Icon.ImageUVs.V = 634; + Icon.ImageUVs.UL = 168; + Icon.ImageUVs.VL = 168; + + Msg.Width = 373 * Scale; + Msg.Height = 59 * Scale; + Msg.Left = Width * 0.5 - Msg.Width * 0.5; + Msg.Top = Height - Msg.Height * 2; + Msg.ImageUVs.U = 1076; + Msg.ImageUVs.V = 1836; + Msg.ImageUVs.UL = 746; + Msg.ImageUVs.VL = 118; + } + else + { + bAnimate = false; + Icon.Width = 586 * Scale; + Icon.Height = 133 * Scale; + Icon.Left = (Width * 0.5) - (Icon.Width * 0.5); + Icon.Top = Height * 0.25; + Icon.ImageUVs.U = 492; + Icon.ImageUVs.V = 856; + Icon.ImageUVs.UL = 1172; + Icon.ImageUVs.VL = 266; + + Msg.Width = 373 * Scale; + Msg.Height = 59 * Scale; + Msg.Left = (Width * 0.5) - (Msg.Width * 0.5); + Msg.Top = Height - (Msg.Height * 2); + Msg.ImageUVs.U = 256; + Msg.ImageUVs.V = 1836; + Msg.ImageUVs.UL = 746; + Msg.ImageUVs.VL = 118; + } +} + +function RenderScene(Canvas Canvas,float RenderDelta) +{ + local float alpha; + if (bAnimate) + { + Alpha = 1 - AnimTime/0.75; + AnimTime += RenderDelta; + if (AnimTime > 0.75) + { + AnimTime = 0; + } + + Icon.Width = 84 * Scale * (1 + 1-Alpha); + Icon.Height = 84 * Scale * (1 + 1-Alpha); + Icon.Left = (Width * 0.5) - (Icon.Width * 0.5); + Icon.Top = Height * 0.50 - (Icon.Height * 0.5); + Icon.Opacity = Alpha; + } + + if (FadeDuration > 0) + { + Opacity = bFadeOut ? FInterpEaseIn(1,0,FadeTime/FadeDuration,2.0) : FInterpEaseOut(0,1,FadeTime/FadeDuration,2.0); + FadeTime += RenderDelta; + + if (FadeTime > FadeDuration) + { + FadeDuration = 0; + if (bFadeOut) + { + InputOwner.CloseMenuScene(self); + } + } + } + + Super.RenderScene(Canvas,RenderDelta); +} + + +defaultproperties +{ + Left=0 + Top=0 + Width=1.0 + Height=1.0 + bRelativeLeft=true + bRelativeTop=true + bRelativeWidth=true + bRelativeHeight=true + + Begin Object Class=MobileMenuImage Name=Icon + Tag="Background" + Left=0 + Top=0 + Width=1 + Height=1 + bRelativeWidth=true + bRelativeHeight=true + Image=Texture2D'CastleUI.menus.T_CastleMenu2' + ImageDrawStyle=IDS_Stretched + ImageUVs=(bCustomCoords=true,U=0,V=0,UL=1920,VL=1280) + bIsActive=false + End Object + MenuObjects(0)=Icon + + Begin Object Class=MobileMenuImage Name=Msg + Tag="Background" + Left=0 + Top=0 + Width=1 + Height=1 + bRelativeWidth=true + bRelativeHeight=true + Image=Texture2D'CastleUI.menus.T_CastleMenu2' + ImageDrawStyle=IDS_Stretched + ImageUVs=(bCustomCoords=true,U=0,V=0,UL=1920,VL=1280) + bIsActive=false + End Object + MenuObjects(1)=Msg + bSceneDoesNotRequireInput=true + Opacity=0 +} \ No newline at end of file diff --git a/Development/Src/UDKBase/classes/MobileMenuDebug.uc b/Development/Src/UDKBase/classes/MobileMenuDebug.uc new file mode 100644 index 0000000..f304d6e --- /dev/null +++ b/Development/Src/UDKBase/classes/MobileMenuDebug.uc @@ -0,0 +1,92 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class MobileMenuDebug extends MobileMenuBase; + +/** + * Handle menu input + * + * @param Sender The object clicked on + * @param TouchX X location in screen space + * @param TouchY Y location in screen space + */ +event OnTouch(MobileMenuObject Sender, ETouchType EventType, float TouchX, float TouchY) +{ + if (Sender == none) + { + return; + } + + if (EventType == Touch_Cancelled) + { + return; + } + + if (Sender.Tag ~= "FPS") + { + InputOwner.Outer.ConsoleCommand("stat fps"); + } + else if (Sender.Tag ~= "MSAA") + { + InputOwner.Outer.ConsoleCommand("es2 msaa"); + } + else if (Sender.Tag ~= "UNIT") + { + InputOwner.Outer.ConsoleCOmmand("stat unit"); + } + else if (Sender.Tag ~= "Close") + { + InputOwner.CloseMenuScene(self); + } +} + +defaultproperties +{ + Begin Object Class=MobileMenuButton Name=CloseButton + Tag="Close" + bRelativeLeft=true + Left=0.1 + Top=20 + Width=100 + Height=100 + Caption="Close" + CaptionColor=(R=0.0,G=0.5,B=1.0,A=1.0) + End Object + MenuObjects.Add(CloseButton) + + Begin Object Class=MobileMenuButton Name=ShowFPSButton + Tag="FPS" + bRelativeLeft=true + Left=0.1 + Top=120 + Width=100 + Height=100 + Caption="Toggle FPS" + CaptionColor=(R=0.0,G=0.5,B=1.0,A=1.0) + End Object + MenuObjects.Add(ShowFPSButton) + + Begin Object Class=MobileMenuButton Name=StatUnitButton + Tag="UNIT" + bRelativeLeft=true + Left=0.6 + Top=120 + Width=100 + Height=100 + Caption="Toggle StatUnit" + CaptionColor=(R=0.0,G=0.5,B=1.0,A=1.0) + End Object + MenuObjects.Add(StatUnitButton) + + Begin Object Class=MobileMenuButton Name=ShowMSAAButton + Tag="MSAA" + bRelativeLeft=true + Left=0.1 + Top=220 + Width=100 + Height=100 + Caption="Toggle MSAA" + CaptionColor=(R=0.0,G=0.5,B=1.0,A=1.0) + End Object + MenuObjects.Add(ShowMSAAButton) +} \ No newline at end of file diff --git a/Development/Src/UDKBase/classes/MobileMenuPause.uc b/Development/Src/UDKBase/classes/MobileMenuPause.uc new file mode 100644 index 0000000..82d1421 --- /dev/null +++ b/Development/Src/UDKBase/classes/MobileMenuPause.uc @@ -0,0 +1,335 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class MobileMenuPause extends MobileMenuScene + dependson(SimpleGame); + +// A reference to the help screen that we will fade out as the player enters the game +var MobileMenuControls FadingControlsMenu; + +var bool bHelpFadingOut; +var float HelpFadeTime; +var float HelpFadeDuration; + +/** Holds how much of the menu is shown. */ +var float ShownSize; + +var float Scale; + +var bool bFlashHelp; +var float FlashDuration; +var float FlashTime; + +event InitMenuScene(MobilePlayerInput PlayerInput, int ScreenWidth, int ScreenHeight, bool bIsFirstInitialization) +{ + local int i; + + Super.InitMenuScene(PlayerInput, 960, 640, bIsFirstInitialization); + + Scale = /*(ScreenWidth >= 960) ? 1.0 : */Float(ScreenWidth) / 960.0; + for(i=1;i= PC.SliderZone.CurrentLocation.X && X < PC.SliderZone.CurrentLocation.X + PC.SliderZone.ActiveSizeX && + Y >= PC.SliderZone.CurrentLocation.Y && Y < PC.SliderZone.CurrentLocation.Y + PC.SliderZone.ActiveSizeY ) ) + { + PC.ResetMenu(); + return true; + } + } + } + return bInside; +} + +function FlashHelp(float Duration) +{ + bFlashHelp = true; + FlashDuration = Duration; + FlashTime = 0; + bHelpFadingOut = false; + HelpFadeTime = 0; +} + +function ReleaseHelp() +{ + if (bFlashHelp) + { + bFlashHelp = false; + bHelpFadingOut = true; + HelpFadeTime = HelpFadeDuration; + HelpFadeTime = HelpFadeDuration - HelpFadeTime; + } +} + +function SetAttractModeUI( bool bIsInBenchmarkMode ) +{ + // nothing to do if we don't have these extra controls + if (MenuObjects.length < 5) + { + return; + } + + MenuObjects[3].bIsHidden = true; + MenuObjects[3].bIsActive = false; + + if (bIsInBenchmarkMode) + { + // Hide settings button if in benchmark mode only + MenuObjects[4].bIsHidden = true; + MenuObjects[4].bIsActive = false; + } + + // Position the buttons + MenuObjects[1].Left = (Width/4) - (MenuObjects[2].Width/2); + MenuObjects[2].Left = Width - (Width/4) - (MenuObjects[2].Width/2); +} + +function SetDefaultUI() +{ + // nothing to do if we don't have these extra controls + if (MenuObjects.length < 5) + { + return; + } + + MenuObjects[3].bIsHidden = false; + MenuObjects[3].bIsActive = true; + MenuObjects[4].bIsHidden = false; + MenuObjects[4].bIsActive = true; + + // Position the buttons + MenuObjects[3].Left = (Width / 2) - (MenuObjects[3].Width/2); + MenuObjects[1].Left = (MenuObjects[3].Left/2) - (MenuObjects[1].Width/2); + MenuObjects[2].Left = (MenuObjects[3].Left/2) + MenuObjects[3].Left + MenuObjects[3].Width - (MenuObjects[2].Width/2); + +} + +defaultproperties +{ + SceneCaptionFont=MultiFont'CastleFonts.Positec' + Left=0 + Top=0 + Width=1.0 + bRelativeLeft=true + bRelativeWidth=true + Height=180; + + Begin Object Class=MobileMenuImage Name=Background + Tag="Background" + Left=0 + Top=0 + Width=1.5 + Height=1.0 + bRelativeWidth=true + bRelativeHeight=true + Image=Texture2D'CastleUI.menus.T_CastleMenu2' + ImageDrawStyle=IDS_Stretched + ImageUVs=(bCustomCoords=true,U=0,V=60,UL=2048,VL=360) + End Object + MenuObjects(0)=Background + + Begin Object Class=MobileMenuButton Name=AboutButton + Tag="ABOUT" + Left=0 + Top=-85 + Width=281 + Height=48 + TopLeeway=20 + Images(0)=Texture2D'CastleUI.menus.T_CastleMenu2' + Images(1)=Texture2D'CastleUI.menus.T_CastleMenu2' + ImagesUVs(0)=(bCustomCoords=true,U=708,V=1124,UL=620,VL=96) + ImagesUVs(1)=(bCustomCoords=true,U=1352,V=1124,UL=620,VL=96) + End Object + MenuObjects(1)=AboutButton + + Begin Object Class=MobileMenuButton Name=AttractButton + Tag="BIRDSEYE" + Left=0 + Top=-85 + Width=310 + Height=48 + TopLeeway=20 + Images(0)=Texture2D'CastleUI.menus.T_CastleMenu2' + Images(1)=Texture2D'CastleUI.menus.T_CastleMenu2' + ImagesUVs(0)=(bCustomCoords=true,U=256,V=1230,UL=620,VL=96) + ImagesUVs(1)=(bCustomCoords=true,U=256,V=1338,UL=620,VL=96) + End Object + MenuObjects(2)=AttractButton + + Begin Object Class=MobileMenuButton Name=BenchmarkButton + Tag="BENCHMARK" + Left=0 + Top=-85 + Width=310 + Height=48 + TopLeeway=20 + Images(0)=Texture2D'CastleUIExt.T_CastleMenu2Ext' + Images(1)=Texture2D'CastleUIExt.T_CastleMenu2Ext' + ImagesUVs(0)=(bCustomCoords=true,U=6,V=0,UL=620,VL=96) + ImagesUVs(1)=(bCustomCoords=true,U=6,V=118,UL=620,VL=96) + End Object + MenuObjects(3)=BenchmarkButton + + Begin Object Class=MobileMenuButton Name=SettingsButton + Tag="SETTINGS" + Left=0 + Top=-15 + Width=138 + Height=64 + TopLeeway=20 + Images(0)=Texture2D'CastleUIExt.T_CastleMenu2Ext' + Images(1)=Texture2D'CastleUIExt.T_CastleMenu2Ext' + ImagesUVs(0)=(bCustomCoords=true,U=740,V=3 ,UL=284,VL=134) + ImagesUVs(1)=(bCustomCoords=true,U=740,V=137,UL=284,VL=134) + End Object + MenuObjects(4)=SettingsButton + + UITouchSound=SoundCue'CastleAudio.UI.UI_ChangeSelection_Cue' + UIUnTouchSound=SoundCue'CastleAudio.UI.UI_ChangeSelection_Cue' + HelpFadeDuration=0.3 +} + diff --git a/Development/Src/UDKBase/classes/MobileMenuSplash.uc b/Development/Src/UDKBase/classes/MobileMenuSplash.uc new file mode 100644 index 0000000..8dc3437 --- /dev/null +++ b/Development/Src/UDKBase/classes/MobileMenuSplash.uc @@ -0,0 +1,103 @@ +/** + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class MobileMenuSplash extends MobileMenuScene; + +var float HelpFlashDuration; + +event InitMenuScene(MobilePlayerInput PlayerInput, int ScreenWidth, int ScreenHeight, bool bIsFirstInitialization) +{ + local float scale; + + if (ScreenWidth < 960) + { + MenuObjects[0].Width = 0.95; + } + + super.InitMenuScene(PlayerInput, ScreenWidth, ScreenHeight, bIsFirstInitialization); + + Scale = /*(ScreenWidth >= 960) ? 1.0 : */Float(ScreenWidth) / 960; + + MenuObjects[1].Width = 574 * Scale; + MenuObjects[1].Height = 574 * Scale * 0.1393728222996516; + MenuObjects[1].Left = (ScreenWidth/2) - 40*Scale; + +} + +event OnTouch(MobileMenuObject Sender, ETouchType EventType, float TouchX, float TouchY) +{ + local CastlePC PC; + if (Sender.Tag == "CATCHALL") + { + if (EventType != Touch_Cancelled) + { + PC = CastlePC(InputOwner.Outer); + InputOwner.CloseMenuScene(self); + PC.FlashHelp(HelpFlashDuration); + } + } +} + +function Closed() +{ + CastlePC(InputOwner.Outer).StartTutorials(); + Super.Closed(); +} + +defaultproperties +{ + + Top=0 + Left=0 + Width=1.0 + Height=1.0 + bRelativeWidth=true + bRelativeHeight=true + + Begin Object Class=MobileMenuImage Name=INFO + Tag="INFO" + Left=0.5 + Top=0.5 + Width=0.6927083 + Height=0.2601503759398496 + bHeightRelativeToWidth=true + XOffset=0.5 + YOffset=0.5 + bRelativeLeft=true + bRelativeTop=true + bRelativeWidth=true + bRelativeHeight=true + Image=Texture2D'CastleUI.menus.T_CastleMenu2' + ImageDrawStyle=IDS_Stretched + ImageUVs=(bCustomCoords=true,U=264,V=1464,UL=1330,VL=346) + End Object + MenuObjects(0)=INFO + + Begin Object Class=MobileMenuImage Name=Highlight + Tag="HIGHLIGHT" + Left=0 + Top=0 + Width=587 + Height=84 + Image=Texture2D'CastleUI.menus.T_CastleMenu2' + ImageDrawStyle=IDS_Stretched + ImageUVs=(bCustomCoords=true,U=898,V=1224,UL=1148,VL=160) + End Object + MenuObjects(1)=Highlight + + Begin Object Class=MobileMenuButton Name=CATCHALL + Tag="CATCHALL" + Left=0 + Top=0 + Width=1 + Height=1 + bRelativeLeft=true + bRelativeTop=true + bRelativeWidth=true + bRelativeHeight=true + bIsActive=true; + End Object + MenuObjects(2)=CATCHALL + + HelpFlashDuration=2 +} diff --git a/Development/Src/UDKBase/classes/MobilePlaceablePawn.uc b/Development/Src/UDKBase/classes/MobilePlaceablePawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/MobileProjectile.uc b/Development/Src/UDKBase/classes/MobileProjectile.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/ParticleModuleTypeDataSnow.uc b/Development/Src/UDKBase/classes/ParticleModuleTypeDataSnow.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/SeqAct_MobileCrowdSpawner.uc b/Development/Src/UDKBase/classes/SeqAct_MobileCrowdSpawner.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/SimpleGame.uc b/Development/Src/UDKBase/classes/SimpleGame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/SimplePC.uc b/Development/Src/UDKBase/classes/SimplePC.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/SimplePawn.uc b/Development/Src/UDKBase/classes/SimplePawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAIDecisionComponent.uc b/Development/Src/UDKBase/classes/UDKAIDecisionComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendBase.uc b/Development/Src/UDKBase/classes/UDKAnimBlendBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByDriving.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByDriving.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByFall.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByFall.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByFlying.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByFlying.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByHoverJump.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByHoverJump.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByHoverboardTilt.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByHoverboardTilt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByHoverboardTurn.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByHoverboardTurn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByHoverboarding.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByHoverboarding.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByIdle.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByIdle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByPhysics.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByPhysics.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByPhysicsVolume.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByPhysicsVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByPosture.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByPosture.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendBySlotActive.uc b/Development/Src/UDKBase/classes/UDKAnimBlendBySlotActive.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendBySpeed.uc b/Development/Src/UDKBase/classes/UDKAnimBlendBySpeed.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByTurnInPlace.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByTurnInPlace.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByVehicle.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByVehicle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByWeapType.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByWeapType.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimBlendByWeapon.uc b/Development/Src/UDKBase/classes/UDKAnimBlendByWeapon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimNodeCopyBoneTranslation.uc b/Development/Src/UDKBase/classes/UDKAnimNodeCopyBoneTranslation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimNodeFramePlayer.uc b/Development/Src/UDKBase/classes/UDKAnimNodeFramePlayer.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimNodeJumpLeanOffset.uc b/Development/Src/UDKBase/classes/UDKAnimNodeJumpLeanOffset.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimNodeSeqWeap.uc b/Development/Src/UDKBase/classes/UDKAnimNodeSeqWeap.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimNodeSequence.uc b/Development/Src/UDKBase/classes/UDKAnimNodeSequence.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKAnimNodeSequenceByBoneRotation.uc b/Development/Src/UDKBase/classes/UDKAnimNodeSequenceByBoneRotation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKBot.uc b/Development/Src/UDKBase/classes/UDKBot.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKCarriedObject.uc b/Development/Src/UDKBase/classes/UDKCarriedObject.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKDataStore_GameSearchBase.uc b/Development/Src/UDKBase/classes/UDKDataStore_GameSearchBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKEmitCameraEffect.uc b/Development/Src/UDKBase/classes/UDKEmitCameraEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKEmitterPool.uc b/Development/Src/UDKBase/classes/UDKEmitterPool.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKExplosionLight.uc b/Development/Src/UDKBase/classes/UDKExplosionLight.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKForcedDirectionVolume.uc b/Development/Src/UDKBase/classes/UDKForcedDirectionVolume.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKGame.uc b/Development/Src/UDKBase/classes/UDKGame.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKGameInteraction.uc b/Development/Src/UDKBase/classes/UDKGameInteraction.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKGameObjective.uc b/Development/Src/UDKBase/classes/UDKGameObjective.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKGameSettingsCommon.uc b/Development/Src/UDKBase/classes/UDKGameSettingsCommon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKGameViewportClient.uc b/Development/Src/UDKBase/classes/UDKGameViewportClient.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKHUD.uc b/Development/Src/UDKBase/classes/UDKHUD.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKJumpPad.uc b/Development/Src/UDKBase/classes/UDKJumpPad.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKJumpPadReachspec.uc b/Development/Src/UDKBase/classes/UDKJumpPadReachspec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKKActorBreakable.uc b/Development/Src/UDKBase/classes/UDKKActorBreakable.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKMapInfo.uc b/Development/Src/UDKBase/classes/UDKMapInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKMapMusicInfo.uc b/Development/Src/UDKBase/classes/UDKMapMusicInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKMobileInputZone.uc b/Development/Src/UDKBase/classes/UDKMobileInputZone.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKParticleSystemComponent.uc b/Development/Src/UDKBase/classes/UDKParticleSystemComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKPawn.uc b/Development/Src/UDKBase/classes/UDKPawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKPickupFactory.uc b/Development/Src/UDKBase/classes/UDKPickupFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKPlayerController.uc b/Development/Src/UDKBase/classes/UDKPlayerController.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKPlayerInput.uc b/Development/Src/UDKBase/classes/UDKPlayerInput.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKProfileSettings.uc b/Development/Src/UDKBase/classes/UDKProfileSettings.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKProjectile.uc b/Development/Src/UDKBase/classes/UDKProjectile.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKScout.uc b/Development/Src/UDKBase/classes/UDKScout.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKScriptedNavigationPoint.uc b/Development/Src/UDKBase/classes/UDKScriptedNavigationPoint.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_CantileverBeam.uc b/Development/Src/UDKBase/classes/UDKSkelControl_CantileverBeam.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_Damage.uc b/Development/Src/UDKBase/classes/UDKSkelControl_Damage.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_DamageHinge.uc b/Development/Src/UDKBase/classes/UDKSkelControl_DamageHinge.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_DamageSpring.uc b/Development/Src/UDKBase/classes/UDKSkelControl_DamageSpring.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_HoverboardSuspension.uc b/Development/Src/UDKBase/classes/UDKSkelControl_HoverboardSuspension.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_HoverboardSwing.uc b/Development/Src/UDKBase/classes/UDKSkelControl_HoverboardSwing.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_HoverboardVibration.uc b/Development/Src/UDKBase/classes/UDKSkelControl_HoverboardVibration.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_HugGround.uc b/Development/Src/UDKBase/classes/UDKSkelControl_HugGround.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_LockRotation.uc b/Development/Src/UDKBase/classes/UDKSkelControl_LockRotation.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_LookAt.uc b/Development/Src/UDKBase/classes/UDKSkelControl_LookAt.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_MassBoneScaling.uc b/Development/Src/UDKBase/classes/UDKSkelControl_MassBoneScaling.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_PropellerBlade.uc b/Development/Src/UDKBase/classes/UDKSkelControl_PropellerBlade.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_Rotate.uc b/Development/Src/UDKBase/classes/UDKSkelControl_Rotate.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_SpinControl.uc b/Development/Src/UDKBase/classes/UDKSkelControl_SpinControl.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_TurretConstrained.uc b/Development/Src/UDKBase/classes/UDKSkelControl_TurretConstrained.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkelControl_VehicleFlap.uc b/Development/Src/UDKBase/classes/UDKSkelControl_VehicleFlap.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSkeletalMeshComponent.uc b/Development/Src/UDKBase/classes/UDKSkeletalMeshComponent.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKSquadAI.uc b/Development/Src/UDKBase/classes/UDKSquadAI.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKTeamOwnedInfo.uc b/Development/Src/UDKBase/classes/UDKTeamOwnedInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKTeamPlayerStart.uc b/Development/Src/UDKBase/classes/UDKTeamPlayerStart.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKTeleporterBase.uc b/Development/Src/UDKBase/classes/UDKTeleporterBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKTrajectoryReachspec.uc b/Development/Src/UDKBase/classes/UDKTrajectoryReachspec.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataProvider_MapInfo.uc b/Development/Src/UDKBase/classes/UDKUIDataProvider_MapInfo.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataProvider_MenuOption.uc b/Development/Src/UDKBase/classes/UDKUIDataProvider_MenuOption.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataProvider_SearchResult.uc b/Development/Src/UDKBase/classes/UDKUIDataProvider_SearchResult.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataProvider_ServerDetails.uc b/Development/Src/UDKBase/classes/UDKUIDataProvider_ServerDetails.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataProvider_SimpleElementProvider.uc b/Development/Src/UDKBase/classes/UDKUIDataProvider_SimpleElementProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataProvider_StringArray.uc b/Development/Src/UDKBase/classes/UDKUIDataProvider_StringArray.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataStore_MenuItems.uc b/Development/Src/UDKBase/classes/UDKUIDataStore_MenuItems.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataStore_Options.uc b/Development/Src/UDKBase/classes/UDKUIDataStore_Options.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataStore_StringAliasBindingMap.uc b/Development/Src/UDKBase/classes/UDKUIDataStore_StringAliasBindingMap.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataStore_StringAliasMap.uc b/Development/Src/UDKBase/classes/UDKUIDataStore_StringAliasMap.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIDataStore_StringList.uc b/Development/Src/UDKBase/classes/UDKUIDataStore_StringList.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKUIResourceDataProvider.uc b/Development/Src/UDKBase/classes/UDKUIResourceDataProvider.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicle.uc b/Development/Src/UDKBase/classes/UDKVehicle.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleBase.uc b/Development/Src/UDKBase/classes/UDKVehicleBase.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleFactory.uc b/Development/Src/UDKBase/classes/UDKVehicleFactory.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleMovementEffect.uc b/Development/Src/UDKBase/classes/UDKVehicleMovementEffect.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleSimCar.uc b/Development/Src/UDKBase/classes/UDKVehicleSimCar.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleSimChopper.uc b/Development/Src/UDKBase/classes/UDKVehicleSimChopper.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleSimHover.uc b/Development/Src/UDKBase/classes/UDKVehicleSimHover.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleSimHoverboard.uc b/Development/Src/UDKBase/classes/UDKVehicleSimHoverboard.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKVehicleWheel.uc b/Development/Src/UDKBase/classes/UDKVehicleWheel.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKWeapon.uc b/Development/Src/UDKBase/classes/UDKWeapon.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKWeaponPawn.uc b/Development/Src/UDKBase/classes/UDKWeaponPawn.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UDKBase/classes/UDKWeaponShield.uc b/Development/Src/UDKBase/classes/UDKWeaponShield.uc old mode 100755 new mode 100644 diff --git a/Development/Src/UTEditor/Classes/GenericBrowserType_UTMapMusicInfo.uc b/Development/Src/UTEditor/Classes/GenericBrowserType_UTMapMusicInfo.uc new file mode 100644 index 0000000..d728bf3 --- /dev/null +++ b/Development/Src/UTEditor/Classes/GenericBrowserType_UTMapMusicInfo.uc @@ -0,0 +1,20 @@ +/** + * Generic browser type for UTMapMusicInfo + * + * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. + */ +class GenericBrowserType_UTMapMusicInfo extends GenericBrowserType + native; + +cpptext +{ + /** + * Initialize the supported classes for this browser type. + */ + virtual void Init(); +} + +DefaultProperties +{ + Description="UT Map Music" +} diff --git a/Development/Src/UTEditor/Classes/UTUnrealEdEngine.uc b/Development/Src/UTEditor/Classes/UTUnrealEdEngine.uc new file mode 100644 index 0000000..aa03cd6 --- /dev/null +++ b/Development/Src/UTEditor/Classes/UTUnrealEdEngine.uc @@ -0,0 +1,10 @@ +//============================================================================= +// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. +//============================================================================= + +class UTUnrealEdEngine extends UnrealEdEngine + native; + +cpptext +{ +} diff --git a/Development/Src/UTGame/Classes/DemoRecSpectator.uc b/Development/Src/UTGame/Classes/DemoRecSpectator.uc new file mode 100644 index 0000000..94fe8a6 --- /dev/null +++ b/Development/Src/UTGame/Classes/DemoRecSpectator.uc @@ -0,0 +1,302 @@ +//============================================================================= +// DemoRecSpectator - spectator for demo recordings to replicate ClientMessages +// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. +//============================================================================= + +class DemoRecSpectator extends UTPlayerController; + +var bool bFindPlayer; + +/** local copy of RealViewTarget as the C++ code might clear it in some cases we don't want to for demo spectators */ +var PlayerReplicationInfo MyRealViewTarget; + +/** if set, camera rotation is always forced to viewtarget rotation */ +var config bool bLockRotationToViewTarget; + +/** If set, automatically switches players every AutoSwitchPlayerInterval seconds */ +var config bool bAutoSwitchPlayers; + +/** Interval to use if bAutoSwitchPlayers is TRUE */ +var config float AutoSwitchPlayerInterval; + +simulated event PostBeginPlay() +{ + Super.PostBeginPlay(); + + if ( PlayerReplicationInfo != None ) + { + PlayerReplicationInfo.bOutOfLives = true; + } +} + +simulated event ReceivedPlayer() +{ + Super.ReceivedPlayer(); + + // DemoRecSpectators don't go through the login process, so manually call ClientSetHUD() + // so the spectator has it when playing back the demo + if (Role == ROLE_Authority && WorldInfo.Game != None) + { + ClientSetHUD(WorldInfo.Game.HUDType); + } +} + +function InitPlayerReplicationInfo() +{ + Super.InitPlayerReplicationInfo(); + PlayerReplicationInfo.PlayerName = "DemoRecSpectator"; + PlayerReplicationInfo.bIsSpectator = true; + PlayerReplicationInfo.bOnlySpectator = true; + PlayerReplicationInfo.bOutOfLives = true; + PlayerReplicationInfo.bWaitingPlayer = false; +} + +exec function Slomo(float NewTimeDilation) +{ + WorldInfo.DemoPlayTimeDilation = NewTimeDilation; +} + +exec function ViewClass( class aClass, optional bool bQuiet, optional bool bCheat ) +{ + local actor other, first; + local bool bFound; + + first = None; + + ForEach AllActors( aClass, other ) + { + if ( bFound || (first == None) ) + { + first = other; + if ( bFound ) + break; + } + if ( other == ViewTarget ) + bFound = true; + } + + if ( first != None ) + { + SetViewTarget(first); + SetBehindView(ViewTarget != self); + } + else + SetViewTarget(self); +} + +//==== Called during demo playback ============================================ + +exec function DemoViewNextPlayer() +{ + local Pawn P, Pick; + local bool bFound; + + // view next player + foreach WorldInfo.AllPawns(class'Pawn', P) + { + if (P.PlayerReplicationInfo != None) + { + if (Pick == None) + { + Pick = P; + } + if (bFound) + { + Pick = P; + break; + } + else + { + bFound = (RealViewTarget == P.PlayerReplicationInfo || ViewTarget == P); + } + } + } + + SetViewTarget(Pick); +} + +function SetViewTarget(Actor NewViewTarget, optional ViewTargetTransitionParams TransitionParams) +{ + Super.SetViewTarget(NewViewTarget, TransitionParams); + + // this check is so that a Pawn getting gibbed doesn't break finding that player again + // must manually clear MyRealViewTarget when player controlled switch back to viewing self + if (NewViewTarget != self) + { + MyRealViewTarget = RealViewTarget; + } +} + +unreliable server function ServerViewSelf(optional ViewTargetTransitionParams TransitionParams) +{ + Super.ServerViewSelf(TransitionParams); + + MyRealViewTarget = None; +} + +reliable client function ClientSetRealViewTarget(PlayerReplicationInfo NewTarget) +{ + SetViewTarget(self); // will find Pawn from RealViewTarget next tick + RealViewTarget = NewTarget; + MyRealViewTarget = NewTarget; + bFindPlayer = (NewTarget == None); +} + +function bool SetPause(bool bPause, optional delegate CanUnpauseDelegate = CanUnpause) +{ + // allow the spectator to pause demo playback + if (WorldInfo.NetMode == NM_Client) + { + WorldInfo.Pauser = (bPause) ? PlayerReplicationInfo : None; + return true; + } + else + { + return false; + } +} + +exec function Pause() +{ + if (WorldInfo.NetMode == NM_Client) + { + ServerPause(); + } +} + +auto state Spectating +{ + function BeginState(Name PreviousStateName) + { + super.BeginState(PreviousStateName); + + if( bAutoSwitchPlayers ) + { + SetTimer( AutoSwitchPlayerInterval, true, 'DemoViewNextPlayer'); + } + } + + exec function StartFire(optional byte FireModeNum) + { + SetBehindView(true); + DemoViewNextPlayer(); + } + + /** used to start out the demo view on the local player - should be called when recording, not playback */ + function SendInitialViewTarget() + { + local PlayerController PC; + + foreach LocalPlayerControllers(class'PlayerController', PC) + { + if (!PC.PlayerReplicationInfo.bOnlySpectator) + { + ClientSetRealViewTarget(PC.PlayerReplicationInfo); + return; + } + } + // send None so demo playback knows it should just pick the first Pawn it can find + ClientSetRealViewTarget(None); + } + + simulated event GetPlayerViewPoint(out vector CameraLocation, out rotator CameraRotation) + { + Global.GetPlayerViewPoint(CameraLocation, CameraRotation); + } + + exec function BehindView() + { + SetBehindView(!bBehindView); + } + + event PlayerTick( float DeltaTime ) + { + local Pawn P; + + Global.PlayerTick( DeltaTime ); + + // attempt to find a player to view. + if (Role == ROLE_AutonomousProxy) + { + if (RealViewTarget == None && MyRealViewTarget != None) + { + RealViewTarget = MyRealViewTarget; + } + + if ((RealViewTarget==None || RealViewTarget==PlayerReplicationInfo) && bFindPlayer) + { + DemoViewNextPlayer(); + if (RealViewTarget != None && RealViewTarget != PlayerReplicationInfo) + { + bFindPlayer = false; + } + } + else + { + // reacquire ViewTarget if the player switched Pawns + if ( RealViewTarget != None && RealViewTarget != PlayerReplicationInfo && + (Pawn(ViewTarget) == None || Pawn(ViewTarget).PlayerReplicationInfo != RealViewTarget) ) + { + foreach WorldInfo.AllPawns(class'Pawn', P) + { + if (P.PlayerReplicationInfo == RealViewTarget) + { + SetViewTarget(P); + break; + } + } + } + } + + if (Pawn(ViewTarget) != None) + { + TargetViewRotation = ViewTarget.Rotation; + TargetViewRotation.Pitch = Pawn(ViewTarget).RemoteViewPitch << 8; + } + } + } +Begin: + if (Role == ROLE_Authority) + { + // it takes two ticks to guarantee that all the relevant actors have been recorded into the demo + // (necessary for the reference in ClientSetRealViewTarget()'s parameter to be valid during playback) + Sleep(0.0); + Sleep(0.0); + SendInitialViewTarget(); + } +} + +simulated event GetPlayerViewPoint(out vector CameraLocation, out rotator CameraRotation) +{ + bFreeCamera = (!bLockRotationToViewTarget && (bBehindView || Vehicle(ViewTarget) != None)); + Super.GetPlayerViewPoint(CameraLocation, CameraRotation); +} + +function UpdateRotation(float DeltaTime) +{ + local rotator NewRotation; + + if (bLockRotationToViewTarget) + { + SetRotation(ViewTarget.Rotation); + } + else + { + Super.UpdateRotation(DeltaTime); + } + + if (Rotation.Roll != 0) + { + NewRotation = Rotation; + NewRotation.Roll = 0; + SetRotation(NewRotation); + } +} + +defaultproperties +{ + RemoteRole=ROLE_AutonomousProxy + bDemoOwner=1 + bBehindView=true +} + diff --git a/Development/Src/UTGame/Classes/ForcedDirVolume.uc b/Development/Src/UTGame/Classes/ForcedDirVolume.uc new file mode 100644 index 0000000..0426161 --- /dev/null +++ b/Development/Src/UTGame/Classes/ForcedDirVolume.uc @@ -0,0 +1,9 @@ +//============================================================================= +// ForcedDirVolume +// used to force UTVehicles [of a certain class if wanted] in a certain direction +// +// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. +//============================================================================= + +class ForcedDirVolume extends UDKForcedDirectionVolume; + diff --git a/Development/Src/UTGame/Classes/GFxMinimap.uc b/Development/Src/UTGame/Classes/GFxMinimap.uc new file mode 100644 index 0000000..7adc8a3 --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxMinimap.uc @@ -0,0 +1,345 @@ +/********************************************************************** + +Copyright : Copyright 2006-2007 Scaleform Corp. All Rights Reserved. + +Portions of the integration code is from Epic Games as identified by Perforce annotations. +Copyright 2010 Epic Games, Inc. All rights reserved. + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ + +class GFxMinimap extends GFxObject; + +//var public PlayerController PlayerOwner; + +var GFxMinimapHud Hud; +var WorldInfo ThisWorld; +var UTMapInfo MapInfo; +var int MapTexSize; +var bool bNeedsUpdateData; +var GFxObject PlayerIcon, CompassIcon, MapMC; +var array EnemyIcons, MyTeamIcons, FlagIcons, ObjectiveIcons; +var matrix IconMatrix; +var GFxObject IconsRedMC, IconsBlueMC, IconsFlagMC; +var int IconsRedCount, IconsBlueCount, IconsFlagCount; + +var array Objectives; + +function Init(GFxMinimapHud h) +{ + local ASValue av; + local array args; + local ASDisplayInfo DI; + local UTTeamInfo TeamInfo; + + local UTGameReplicationInfo GRI; + + Hud = h; + bNeedsUpdateData = true; + ThisWorld = GetPC().WorldInfo; + MapInfo = UTMapInfo(ThisWorld.GetMapInfo()); + + PlayerIcon = GetObject("player"); + CompassIcon = GetObject("compass"); + MapMC = GetObject("map"); + + if (MapInfo.MapTexture != none) + { + MapTexSize = Texture2D(MapInfo.MapTexture).SizeX; + SetString("mapImagePath", "img://" $ PathName(MapInfo.MapTexture)); + } + + IconsRedMC = GetObject("icons_player_red"); + IconsBlueMC = GetObject("icons_player_blue"); + IconsFlagMC = GetObject("icons_flag"); + + GRI = UTGameReplicationInfo(GetPC().WorldInfo.GRI); + + if ( UTGFxTeamHUD(H) != None ) + { + TeamInfo = UTTeamInfo(GRI.Teams[0]); + if (TeamInfo.TeamFlag != none) + { + FlagIcons = GenFlagIcons(2); + av.Type = AS_Number; + av.n = 3; + args.AddItem(av); + FlagIcons[0].Invoke("gotoAndStop", args); + args[0].n = 2; + FlagIcons[1].Invoke("gotoAndStop", args); + } + } + + DI = GetDisplayInfo(); + DI.X += 30; + DI.visible = false; + SetDisplayInfo(DI); +} + +function UpdateData() +{ + SetVisible(true); + + MapInfo.VerifyMapExtent(); + +/* + Objectives.length = 0; + foreach ThisWorld.AllNavigationPoints(class'UTGameObjective', Obj) + { + Objectives.AddItem(Obj); + } +*/ + bNeedsUpdateData = false; +} + +function array GenFriendIcons(int n) +{ + local array Icons; + local GFxObject IconMC; + local int i; + for (i = 0; i < n; i++) + { + IconMC = IconsBlueMC.AttachMovie("player_blue", "player_blue"$IconsBlueCount++); + Icons[i] = IconMC; + } + return Icons; +} + +function array GenEnemyIcons(int n) +{ + local array Icons; + local GFxObject IconMC; + local int i; + for (i = 0; i < n; i++) + { + IconMC = IconsRedMC.AttachMovie("player_red", "player_red"$IconsRedCount++); + Icons[i] = IconMC; + } + return Icons; +} + +function array GenFlagIcons(int n) +{ + local array Icons; + local GFxObject IconMC; + local int i; + for (i = 0; i < n; i++) + { + IconMC = IconsFlagMC.AttachMovie("flag", "flag"$IconsFlagCount++); + Icons[i] = IconMC; + } + return Icons; +} + +function UpdateIcons(out array Actors, out array ActorIcons, bool bIsRedIconType) +{ + local ASDisplayInfo d; + local array Icons; + local int i; + local vector V; + local GFxObject Val; + + d.hasVisible = true; + if (ActorIcons.length < Actors.length) + { + if ( bIsRedIconType ) + { + Icons = GenEnemyIcons(Actors.length-ActorIcons.length); + } + else + { + Icons = GenFriendIcons(Actors.length-ActorIcons.length); + } + + foreach Icons(Val) { ActorIcons.AddItem(Val); } + } + else + { + d.Visible = false; + for (i = Actors.length; i < ActorIcons.length; i++) + ActorIcons[i].SetDisplayInfo(d); + } + + d.hasX = true; d.hasY = true; + d.Visible = true; + for (i = 0; i < Actors.length; i++) + { + V = TransformVector(IconMatrix, Actors[i].Location); + d.Visible = (VSize2d(V) < Hud.Radius); + d.X = V.X; + d.Y = V.Y; + ActorIcons[i].SetDisplayInfo(d); + } +} + +function Update(float Scale) +{ + local Pawn P; + local ASDisplayInfo d; + local array MyTeam; + local array Enemy; + local UTPawn UTP; + local UTVehicle UTV; + local int j; + local float f; + local vector V; + local matrix M; + local float MapScale; + local UTTeamInfo Team; + local bool bInSensorRange, bIsRedIconType; + local vector MapOffset; + local PlayerController PC; + + PC = GetPC(); + + Scale = 1.0/Scale; + + if (PC.Pawn == None) + { + return; + } + + if (bNeedsUpdateData) + { + UpdateData(); + } + + // player + d.hasRotation = true; + if (UTPlayerController(PC).bRotateMinimap) + { + d.Rotation = 0; + PlayerIcon.SetDisplayInfo(d); + d.Rotation = ((PC.Rotation.Yaw) & 65535) * (-360.0/65536.0); + CompassIcon.SetDisplayInfo(d); + + f = -((PC.Rotation.Yaw + 16384) & 65535) * (Pi/32768.0); + IconMatrix.XPlane.X = cos(f) * Scale; + IconMatrix.XPlane.Y = sin(f) * Scale; + IconMatrix.YPlane.X = -sin(f) * Scale; + IconMatrix.YPlane.Y = cos(f) * Scale; + IconMatrix.WPlane.X = 0; + IconMatrix.WPlane.Y = 0; + IconMatrix.WPlane.Z = 0; + IconMatrix.WPlane.W = 1; + IconMatrix.WPlane = TransformVector(IconMatrix, -PC.Pawn.Location); + } + else + { + d.Rotation = 0; + CompassIcon.SetDisplayInfo(d); + d.Rotation = ((PC.Rotation.Yaw) & 65535) * (360.0/65536.0); + PlayerIcon.SetDisplayInfo(d); + + f = -Pi*0.5; + IconMatrix.XPlane.X = 0; + IconMatrix.XPlane.Y = -Scale; + IconMatrix.YPlane.X = Scale; + IconMatrix.YPlane.Y = 0; + IconMatrix.WPlane.X = 0; + IconMatrix.WPlane.Y = 0; + IconMatrix.WPlane.Z = 0; + IconMatrix.WPlane.W = 1; + IconMatrix.WPlane = TransformVector(IconMatrix, -PC.Pawn.Location); + } + d.hasRotation = false; + + // terrain + if (MapInfo != none && MapInfo.MapTexture != none) + { + f -= Pi*0.5; + MapScale = Hud.NormalZoomf/(2.0 * Hud.CurZoomf); + M.XPlane.X = -cos(f) * MapScale; + M.XPlane.Y = -sin(f) * MapScale; + M.YPlane.X = sin(f) * MapScale; + M.YPlane.Y = -cos(f) * MapScale; + MapOffset.X = -MapTexSize*0.5f; + MapOffset.Y = -MapTexSize*0.5f; + M.WPlane.X = 0; + M.WPlane.Y = 0; + M.WPlane.Z = 0; + M.WPlane.W = 1; + M.WPlane = TransformVector(M, MapOffset); + f = Pi*1.5-f; + V = (MapInfo.MapCenter - PC.Pawn.Location) * MapTexSize/MapInfo.MapExtent; + MapScale = (Hud.NormalZoomf/(2.0 * Hud.CurZoomf)); + M.WPlane.X += (V.X * cos(f) + V.Y * sin(f)) * MapScale; + M.WPlane.Y += (V.Y * cos(f) - V.X * sin(f)) * MapScale; + MapMC.SetDisplayMatrix(M); + } + + // other players + foreach ThisWorld.AllPawns(class'Pawn', P) + { + if ( P.bHidden || (P.Health <=0) || P.IsInvisible() || (P.DrivenVehicle != None) || (P.PlayerReplicationInfo == None) || (P == PC.Pawn)) + { + continue; + } + UTP = UTPawn(P); + UTV = UTVehicle(P); + if ((UTP == None) && (UTV == None)) + { + continue; + } + if (ThisWorld.GRI.OnSameTeam(PC, P)) + { + MyTeam.AddItem(P); + } + else + { + Enemy.AddItem(P); + } + } + + bIsRedIconType = (PC.PlayerReplicationInfo.Team == None) || (PC.PlayerReplicationInfo.Team.TeamIndex == 0); + + UpdateIcons(Enemy, EnemyIcons, !bIsRedIconType); + UpdateIcons(MyTeam, MyTeamIcons, bIsRedIconType); + + // flags + d.hasX = true; d.hasY = true; + d.hasVisible = true; + d.Visible = true; + if ( UTTeamInfo(PC.PlayerReplicationInfo.Team) != None ) + { + for ( j=0; j<2; j++ ) + { + Team = UTTeamInfo(ThisWorld.GRI.Teams[j]); + if (Team != None && Team.TeamFlag != None) + { + bInSensorRange = true; + if ( bInSensorRange ) + { + d.visible = true; + V = TransformVector(IconMatrix, Team.TeamFlag.Location); + V.Z = 0; + // place flag icon on minimap frame if too far away + if (VSizeSq(V) > Hud.Radius*Hud.Radius) + { + V = Normal(V) * Hud.Radius; + } + d.X = V.X; + d.Y = V.Y; + } + else + { + d.visible = false; + } + + FlagIcons[j].SetDisplayInfo(d); + } + } + } +} + +defaultproperties +{ + IconsRedCount = 0 + IconsBlueCount = 0 + IconsFlagCount = 0 +} diff --git a/Development/Src/UTGame/Classes/GFxMinimapHud.uc b/Development/Src/UTGame/Classes/GFxMinimapHud.uc new file mode 100644 index 0000000..6ef0028 --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxMinimapHud.uc @@ -0,0 +1,730 @@ +/********************************************************************** + +Copyright : Copyright 2006-2007 Scaleform Corp. All Rights Reserved. + +Portions of the integration code is from Epic Games as identified by Perforce annotations. +Copyright 2010 Epic Games, Inc. All rights reserved. + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ + +/** + * GFx HUD Demo for UTGame. + * Related Flash content: ut3_hud.fla + * + * + */ + +class GFxMinimapHud extends GFxMoviePlayer; + +var WorldInfo ThisWorld; +var GFxMinimap Minimap; +var float Radius; +var float CurZoomf, NormalZoomf, MaxZoomf, MinZoomf; + +struct MessageRow +{ + var GFxObject MC, TF; + var float StartFadeTime; + var int Y; +}; + +var GFxObject LogMC; +var array Messages, FreeMessages; +var float MessageHeight; +var int NumMessages; + +var GFxObject PlayerStatsMC, TeamStatsMC; +var GFxObject HealthTF, HealthBarMC, AmmoCountTF, AmmoBarMC, MaxAmmoMC, ArmorTF, ArmorMC, VArmorMC, VArmorTF, TimeTF; +var GFxObject WeaponMC, ArmorPercTF; + +var GFxObject CenterTextMC, CenterTextTF; +var GFxObject ScoreBarMC[2], ScoreTF[2], FlagCarrierMC[2], FlagCarrierTF[2], EnemyNameTF; + +var GFxObject HitLocMC[8], MultiKillN_TF, MultiKillMsg_TF, MultiKillMC; +var GFxObject ReticuleMC, RBotMC, RRightMC, RTopMC, RLeftMC; + +var UTVehicle LastVehicle; +var UTWeapon LastWeapon; +var float LastHealth, LastArmor, LastVHealth; +var int LastAmmoCount; +var int LastScore[2]; +var byte LastFlagHome[2]; +var UTPlayerReplicationInfo LastEnemy, LastFlagCarrier[2]; + +var UTGameReplicationInfo GRI; + +/** IF true, set this HUD up a a team HUD */ +var bool bIsTeamHUD; + +/** If true, let weapons draw their crosshairs instead of using GFx crosshair */ +var bool bDrawWeaponCrosshairs; + +/* + * Callback fired from Flash when Minimap is loaded. + * "ExternalInterface.call("RegisterMinimapView", this)"; + * + * Used to pass a reference to the MovieClip which is loaded + * from Flash back to UnrealScript. + */ +function registerMiniMapView(GFxMinimap mc, float r) +{ + Minimap = mc; + Radius = r; + CurZoomf = 64; + NormalZoomf = 64; + if (Minimap != none) + { + Minimap.Init(self); + Minimap.SetVisible(false); + Minimap.SetFloat("_xscale", 85); + Minimap.SetFloat("_yscale", 85); + } +} + +/* + * Creates a new LogMessage MovieClip for use in the + * log. + */ +function GFxObject CreateMessageRow() +{ + return LogMC.AttachMovie("LogMessage", "logMessage"$NumMessages++); +} + +/* + * Initalizes a new MessageRow and adds it to the list + * of available log MessageRow MovieClips for reuse. + */ +function GFxObject InitMessageRow() +{ + local MessageRow mrow; + + mrow.Y = 0; + mrow.MC = CreateMessageRow(); + + mrow.TF = mrow.MC.GetObject("message").GetObject("textField"); + mrow.TF.SetBool("html", true); + mrow.TF.SetString("htmlText", ""); + + FreeMessages.AddItem(mrow); + return mrow.MC; +} + +/* + * Initialization method for HUD. + * + * Caches all the references to MovieClips that will be updated throughout + * the HUD's lifespan. + * + * For the record, GetVariableObject is not as fast as GFxObject::GetObject() but + * nevertheless is used here for convenience. + * + */ +function Init(optional LocalPlayer player) +{ + local int j; + local GFxObject TempWidget; + + super.Init(player); + + ThisWorld = GetPC().WorldInfo; + GRI = UTGameReplicationInfo(GetPC().WorldInfo.GRI); + + Start(); + Advance(0); + + NumMessages = 0; + LastHealth = -110; + LastArmor = -110; + LastAmmoCount = -110; + LastScore[0] = -110; + LastScore[1] = -110; + + TempWidget = GetVariableObject("_root.expBar"); + if ( TempWidget != None ) + { + TempWidget.SetBool("_visible", false); + } + + TempWidget = GetVariableObject("_root.rank"); + if ( TempWidget != None ) + { + TempWidget.SetBool("_visible", false); + } + + TempWidget = GetVariableObject("_root.billboard"); + if ( TempWidget != None ) + { + TempWidget.SetBool("_visible", false); + } + + TempWidget = GetVariableObject("_root.title"); + if ( TempWidget != None ) + { + TempWidget.SetBool("_visible", false); + } + TempWidget = GetVariableObject("_root.stats"); + if ( TempWidget != None ) + { + TempWidget.SetBool("_visible", false); + } + + TempWidget = GetVariableObject("_root.flag"); + if ( TempWidget != None ) + { + TempWidget.SetVisible(false); + } + + TempWidget = GetVariableObject("_root.teamStats.redWinning"); + if ( TempWidget != None ) + { + TempWidget.SetVisible(false); + } + + TempWidget = GetVariableObject("_root.teamStats.blueWinning"); + if ( TempWidget != None ) + { + TempWidget.SetVisible(false); + } + + LogMC = GetVariableObject("_root.log"); + for (j = 0; j < 15; j++) + InitMessageRow(); + + TeamStatsMC = GetVariableObject("_root.teamStats"); + PlayerStatsMC = GetVariableObject("_root.playerStats"); + PlayerStatsMC.GotoAndStopI(3); + VArmorTF = GetVariableObject("_root.playerStats.vehicleN"); + VArmorMC = GetVariableObject("_root.playerStats.healthVehicle"); + PlayerStatsMC.GotoAndStopI(2); + WeaponMC = GetVariableObject("_root.playerStats.weapon"); + HealthTF = GetVariableObject("_root.playerStats.healthN"); + HealthBarMC = GetVariableObject("_root.playerStats.health"); + AmmoCountTF = GetVariableObject("_root.playerStats.ammoN"); + AmmoBarMC = GetVariableObject("_root.playerStats.ammo"); + MaxAmmoMC = GetVariableObject("_root.playerStats.ammo.ammoBG"); + ArmorTF = GetVariableObject("_root.playerStats.armorN"); + ArmorMC = GetVariableObject("_root.playerStats.armor"); + ArmorPercTF = GetVariableObject("_root.playerStats.armorPerc"); + + EnemyNameTF = GetVariableObject("_root.teamStats.redName"); + CenterTextTF = GetVariableObject("_root.centerTextMC.centerText.textField"); + CenterTextMC = GetVariableObject("_root.centerTextMC"); + + ReticuleMC = GetVariableObject("_root.reticule"); + RBotMC = GetVariableObject("_root.reticule.bottom"); + RTopMC = GetVariableObject("_root.reticule.top"); + RLeftMC = GetVariableObject("_root.reticule.left"); + RRightMC = GetVariableObject("_root.reticule.right"); + + MultiKillMC = GetVariableObject("_root.popup"); + + TimeTF = GetVariableObject("_root.teamStats.roundTime"); + + if ( bIsTeamHUD ) + { + ScoreBarMC[0] = GetVariableObject("_root.teamStats.teamRed"); + ScoreTF[0] = GetVariableObject("_root.teamStats.scoreRed"); + ScoreBarMC[1] = GetVariableObject("_root.teamStats.teamBlue"); + ScoreTF[1] = GetVariableObject("_root.teamStats.scoreBlue"); + FlagCarrierMC[0] = GetVariableObject("_root.flagRed"); + FlagCarrierMC[1] = GetVariableObject("_root.flagBlue"); + } + else + { + ScoreBarMC[1] = GetVariableObject("_root.teamStats.teamRed"); + ScoreTF[1] = GetVariableObject("_root.teamStats.scoreRed"); + ScoreBarMC[0] = GetVariableObject("_root.teamStats.teamBlue"); + ScoreTF[0] = GetVariableObject("_root.teamStats.scoreBlue"); + FlagCarrierMC[0] = GetVariableObject("_root.flagBlue"); + FlagCarrierMC[1] = GetVariableObject("_root.flagRed"); + } + + if ( bIsTeamHUD ) + { + EnemyNameTF.SetVisible(false); + FlagCarrierTF[0] = FlagCarrierMC[0].GetObject("textField"); + FlagCarrierTF[1] = FlagCarrierMC[1].GetObject("textField"); + FlagCarrierTF[0].SetText(""); + FlagCarrierTF[1].SetText(""); + } + else + { + EnemyNameTF.SetText(""); + FlagCarrierMC[0].SetVisible(false); + FlagCarrierMC[1].SetVisible(false); + ScoreBarMC[0].SetVisible(false); + ScoreBarMC[1].SetVisible(false); + ScoreTF[0].SetVisible(false); + ScoreTF[1].SetVisible(false); + TeamStatsMC.SetVisible(false); // FIXMESTEVE - also removes clock + } + + HitLocMC[0] = GetVariableObject("_root.dirHit.t"); + HitLocMC[1] = GetVariableObject("_root.dirHit.tr"); + HitLocMC[2] = GetVariableObject("_root.dirHit.r"); + HitLocMC[3] = GetVariableObject("_root.dirHit.br"); + HitLocMC[4] = GetVariableObject("_root.dirHit.b"); + HitLocMC[5] = GetVariableObject("_root.dirHit.bl"); + HitLocMC[6] = GetVariableObject("_root.dirHit.l"); + HitLocMC[7] = GetVariableObject("_root.dirHit.tl"); + + LogMC.SetFloat("_yrotation", -15); + TeamStatsMC.SetFloat("_yrotation", -15); + + FlagCarrierMC[0].SetFloat("_yrotation", 15); + FlagCarrierMC[1].SetFloat("_yrotation", 15); + PlayerStatsMC.SetFloat("_yrotation", 15); + + ClearStats(true); +} + +static function string FormatTime(int Seconds) +{ + local int Hours, Mins; + local string NewTimeString; + + Hours = Seconds / 3600; + Seconds -= Hours * 3600; + Mins = Seconds / 60; + Seconds -= Mins * 60; + if (Hours > 0) + NewTimeString = ( Hours > 9 ? String(Hours) : "0"$String(Hours)) $ ":"; + NewTimeString = NewTimeString $ ( Mins > 9 ? String(Mins) : "0"$String(Mins)) $ ":"; + NewTimeString = NewTimeString $ ( Seconds > 9 ? String(Seconds) : "0"$String(Seconds)); + + return NewTimeString; +} + +function ClearStats(optional bool clearScores) +{ + local GFxObject.ASDisplayInfo DI; + DI.hasXScale = true; + DI.XScale = 0; + + if (LastVehicle != none) + { + PlayerStatsMC.GotoAndStopI(2); + LastVehicle = none; + } + if (LastHealth != -10) + { + HealthTF.SetString("text", ""); + HealthBarMC.SetDisplayInfo(DI); + LastHealth = -10; + } + if (LastArmor != -10) + { + if (ArmorMC != none) + { + ArmorMC.SetVisible(false); + } + //ArmorPercTF.SetVisible(false); + ArmorTF.SetString("text", ""); + LastArmor = -10; + } + if (LastAmmoCount != -10) + { + AmmoCountTF.SetString("text", ""); + AmmoBarMC.GotoAndStopI(51); + LastAmmoCount = -10; + } + if (LastWeapon != none) + { + WeaponMC.SetVisible(false); + MaxAmmoMC.GotoAndStopI(51); + LastWeapon = none; + } + + if (clearScores && LastScore[0] != -100000) + { + if ( bIsTeamHUD ) + { + LastScore[0] = -100000; + LastScore[1] = -100000; + ScoreTF[0].SetString("text", ""); + ScoreTF[1].SetString("text", ""); + ScoreBarMC[0].SetDisplayInfo(DI); + ScoreBarMC[1].SetDisplayInfo(DI); + FlagCarrierTF[0].SetText(""); + FlagCarrierTF[1].SetText(""); + } + TimeTF.SetString("text", ""); + LastEnemy = none; + EnemyNameTF.SetText(""); + } +} + +function RemoveMessage() +{ + +} + +function AddMessage(string type, string msg) +{ + local MessageRow mrow; + local GFxObject.ASDisplayInfo DI; + local int j; + + if (Len(msg) == 0) + return; + + if (FreeMessages.Length > 0) + { + mrow = FreeMessages[FreeMessages.Length-1]; + FreeMessages.Remove(FreeMessages.Length-1,1); + } + else + { + mrow = Messages[Messages.Length-1]; + Messages.Remove(Messages.Length-1,1); + } + + mrow.TF.SetString(type, msg); + mrow.Y = 0; + DI.hasY = true; + DI.Y = 0; + mrow.MC.SetDisplayInfo(DI); + mrow.MC.GotoAndPlay("show"); + for (j = 0; j < Messages.Length; j++) + { + Messages[j].Y -= MessageHeight; + DI.Y = Messages[j].Y; + Messages[j].MC.SetDisplayInfo(DI); + } + Messages.InsertItem(0,mrow); +} + +function UpdateGameHUD(UTPlayerReplicationInfo PRI) +{ + local UTPlayerReplicationInfo MaxPRI; + local int i, j; + + MaxPri = none; + i = -10000000; + for (j = 0; j < GRI.PRIArray.length; j++) + { + if (GRI.PRIArray[j] != PRI && GRI.PRIArray[j].Score > i && (GRI.PRIArray[j].Score > 0 || GRI.PRIArray[j].Score > PRI.Score)) + { + i = GRI.PRIArray[j].Score; + MaxPRI = UTPlayerReplicationInfo(GRI.PRIArray[j]); + } + } + if (MaxPri != LastEnemy) + { + EnemyNameTF.SetText(MaxPRI != none ? MaxPRI.PlayerName : ""); + LastEnemy = MaxPri; + } +} + +function TickHud(float DeltaTime) +{ + local UTPawn UTP; + local UTVehicle UTV; + local UTWeaponPawn UWP; + local int TotalArmor; + local UTWeapon Weapon; + local int i; + local float f; + local UTPlayerReplicationInfo PRI; + local GFxObject.ASDisplayInfo DI; + local GFxObject.ASColorTransform Cxform; + local PlayerController PC; + + PC = GetPC(); + + GRI = UTGameReplicationInfo(PC.WorldInfo.GRI); + PRI = UTPlayerReplicationInfo(PC.PlayerReplicationInfo); + + if ( GRI != None ) + { + // score & time + if ( TimeTF != None ) + { + TimeTF.SetString("text", FormatTime(GRI.TimeLimit != 0 ? GRI.RemainingTime : GRI.ElapsedTime)); + } + + if ( PRI != None ) + { + UpdateGameHUD(PRI); + } + } + + UTP = UTPawn(PC.Pawn); + + if (UTP == None) + { + UTV = UTVehicle(PC.Pawn); + if ( UTV == None ) + { + UWP = UTWeaponPawn(PC.Pawn); + if ( UWP != None ) + { + UTV = UTVehicle(UWP.MyVehicle); + UTP = UTPawn(UWP.Driver); + } + } + else + { + UTP = UTPawn(UTV.Driver); + } + + if (UTV == None) + { + ClearStats(); + return; + } + else if (UTVehicle_Hoverboard(UTV) != none) + { + UTV = none; + } + } + + if (Minimap != none) + { + Minimap.Update(CurZoomf); + } + if (UTV != LastVehicle) + { + + if (UTV == none) + PlayerStatsMC.GotoAndStopI(2); + else + PlayerStatsMC.GotoAndStopI(3); + + LastVehicle = UTV; + LastHealth = -101; + LastArmor = -101; + LastAmmoCount = -101; + LastWeapon = none; + } + + if (LastHealth != UTP.Health) + { + HealthTF.SetText(UTP.Health); + DI.hasXScale = true; + DI.XScale = (100.0 * float(UTP.Health)) / float(UTP.HealthMax); + + if (DI.XScale >= 100) + { + DI.XScale = 101; + + f = FMin((UTP.Health-100)/100.f + 0.15f, 1); + Cxform.Multiply.R = 1-f; + Cxform.Multiply.G = 1-f; + Cxform.Multiply.B = 1-f; + Cxform.Add.B = 255.f*f; + } + HealthBarMC.SetColorTransform(Cxform); + HealthBarMC.SetDisplayInfo(DI); + LastHealth = UTP.Health; + } + + TotalArmor = UTP.GetShieldStrength(); + if (TotalArmor != LastArmor) + { + if (TotalArmor > 0) + { + if (ArmorMC != none) + { + ArmorMC.SetVisible(true); + ArmorMC.GotoAndStopI(TotalArmor >= 100 ? 100 : (1 + TotalArmor)); + } + ArmorTF.SetText(TotalArmor); + //ArmorPercTF.SetVisible(true); + } + else + { + if (ArmorMC != none) + { + ArmorMC.SetVisible(false); + } + ArmorTF.SetText(""); + //ArmorPercTF.SetVisible(false); + } + LastArmor = TotalArmor; + } + + Weapon = UTWeapon(UTP.Weapon); + if (Weapon != none && UTV == none) + { + if (Weapon != LastWeapon) + { + if (Weapon.AmmoDisplayType == EAWDS_None) + AmmoCountTF.SetText(""); + i = (Weapon.MaxAmmoCount > 30 ? 30 : Weapon.MaxAmmoCount); + MaxAmmoMC.GotoAndStopI(31 - i); + WeaponMC.SetVisible(true); + WeaponMC.GotoAndStopI(Weapon.InventoryGroup); + LastWeapon = Weapon; + } + i = Weapon.GetAmmoCount(); + if (i != LastAmmoCount) + { + LastAmmoCount = i; + AmmoCountTF.SetText(i); + if (i > 30) + i = 30; + AmmoBarMC.GotoAndStopI(31 - i); + AmmoBarMC.SetVisible(true); + } + } + else if (Weapon != LastWeapon) + { + AmmoCountTF.SetText(""); + AmmoBarMC.SetVisible(false); + WeaponMC.SetVisible(false); + } + + if (UTV != none) + { + if (UTV.Health != LastVHealth) + { + VArmorTF.SetText(UTV.Health); + DI.hasXScale = true; + DI.XScale = (100.0 * float(UTV.Health)) / float(UTV.HealthMax); + if (DI.XScale > 100) + DI.XScale = 100; + VArmorMC.SetDisplayInfo(DI); + LastVHealth = UTV.Health; + } + } +} + +function ToggleCrosshair(bool bToggle) +{ + bToggle = !bDrawWeaponCrosshairs && bToggle && !UTPlayerController(GetPC()).bNoCrosshair && UTHUDBase(GetPC().myHUD).bCrosshairShow; + + ReticuleMC.SetVisible(bToggle); + RBotMC.SetVisible(bToggle); + RTopMC.SetVisible(bToggle); + RLeftMC.SetVisible(bToggle); + RRightMC.SetVisible(bToggle); +} + +function MinimapZoomOut() +{ + if (CurZoomf < MaxZoomf) + CurZoomf *= 2; +} + +function MinimapZoomIn() +{ + if (CurZoomf > MinZoomf) + CurZoomf *= 0.5; +} + +function DisplayHit(vector HitDir, int Damage, class damageType) +{ + local Vector Loc; + local Rotator Rot; + local float DirOfHit; + local vector AxisX, AxisY, AxisZ; + local vector ShotDirection; + local bool bIsInFront; + local vector2D AngularDist; + + if ( class(damagetype) != none && class(damageType).default.bLocationalHit ) + { + // Figure out the directional based on the victims current view + GetPC().GetPlayerViewPoint(Loc, Rot); + GetAxes(Rot, AxisX, AxisY, AxisZ); + + ShotDirection = Normal(HitDir - Loc); + bIsInFront = GetAngularDistance( AngularDist, ShotDirection, AxisX, AxisY, AxisZ); + GetAngularDegreesFromRadians(AngularDist); + DirOfHit = AngularDist.X; + + if( bIsInFront ) + { + DirOfHit = AngularDist.X; + if (DirOfHit < 0) + DirOfHit += 360; + } + else + DirOfHit = 180 + AngularDist.X; + } + else + DirOfHit = 180; + + HitLocMC[int(DirOfHit/45.f)].GotoAndPlay("on"); +} + +function ShowMultiKill(int n, string msg) +{ + if (MultiKillN_TF == none) + { + MultiKillN_TF = GetVariableObject("_root.popup.popupNumber.textField"); + MultiKillMsg_TF = GetVariableObject("_root.popup.popupText.textField"); + } + + MultiKillN_TF.SetText(n+1); + MultiKillMsg_TF.SetText(msg); + MultiKillMC.GotoAndPlay("on"); +} + +function SetCenterText(string text) +{ + CenterTextTF.SetText(text); + CenterTextMC.GotoAndPlay("on"); +} + +function string GetRank(PlayerReplicationInfo PRI) +{ + local int i; + local int j; + + i = -10000000; + for (j = 0; j < GRI.PRIArray.length; j++) + { + if (GRI.PRIArray[j].Score > i) + { + i = GRI.PRIArray[j].Score; + } + } + if (PRI.Score >= i && PRI.Score > 0) + return ""; + return ""; +} + +function AddDeathMessage(PlayerReplicationInfo Killer, PlayerReplicationInfo Killed, class Dmg) +{ + local string msg; + local byte index; + + if (Killer != none) + msg = GetRank(Killer) @ Killer.PlayerName; + if ((Dmg!= None) && (Dmg.default.DamageWeaponClass != none) ) + { + // Linkgun used to be InventoryGroup=5 in UT3, so need special case here + index = ClassIsChildOf(Dmg.default.DamageWeaponClass, class'UTWeap_Linkgun') ? 5 : Dmg.default.DamageWeaponClass.default.InventoryGroup; + } + + if ( index < 12 ) + msg @= ""; + else + msg @= ""; + + msg @= GetRank(Killed) @ Killed.PlayerName; + + AddMessage("htmlText", msg); +} + +defaultproperties +{ + bDisplayWithHudOff=FALSE + MinZoomf=16 + MaxZoomf=128 + MessageHeight=38 + MovieInfo=SwfMovie'UDKHud.udk_hud' + bEnableGammaCorrection=false + bDrawWeaponCrosshairs=true + + bAllowInput=FALSE; + bAllowFocus=FALSE; +} diff --git a/Development/Src/UTGame/Classes/GFxProjectedUI.uc b/Development/Src/UTGame/Classes/GFxProjectedUI.uc new file mode 100644 index 0000000..50e23f4 --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxProjectedUI.uc @@ -0,0 +1,780 @@ +/********************************************************************** + +Copyright : Copyright 2006-2007 Scaleform Corp. All Rights Reserved. + +Portions of the integration code is from Epic Games as identified by Perforce annotations. +Copyright 2010 Epic Games, Inc. All rights reserved. + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ + +/** + * Implementation of 3D Inventory. + * Related Flash content: udk_inventory.fla + * + * 3D rotation logic can be found toward the end of this file in UpdatePos(). + * + * Certain objects in this Flash file are embedded within a hierarchy of containers. + * This was done to avoid an issue where a MovieClip could not be tweened on the timeline + * after one of its members had been manipulated via ActionScript. The workaround was to create + * a new parent MovieClip and manage it with timeline and original MovieClip with ActionScript. + * This behavior has since been resolved, but artifacts remain in the Flash file and throughout + * this class (see SetupBG()). + */ + +class GFxProjectedUI extends UTGFxTweenableMoviePlayer; + +var GFxObject Root, Window; +var GFxObject MainMC, BackpackMC, ArsenalMC; + +// An array with references to all of the buttons. +var array Buttons; + +struct ItemData +{ + var string ItemInfo; + var string ItemName; + var byte ItemFrame; +}; + +var array Items; + +var GFxObject EquippedWeapon, EquippedWeaponOutline, EquippedWeaponText1, EquippedWeaponText2; + +var bool bArsenalTabFocused; +var GFxObject BackpackTabMC, ArsenalTabMC; +var GFxObject LeftArrow02, LeftArrow01; + +var GFxObject BackgroundMC, CPCLogoMC, StartUpTextMC, BG_LineMC, BG_ArrowMC; +var GFxObject BG_Optic1MC, BG_Optic2MC, BG_Optic3MC, BG_Optic4MC; + +var GFxObject BG_Edge_LeftBottom, BG_Edge_LeftMiddle, BG_Edge_LeftTop, BG_Edge_RightTop, BG_Edge_RightMiddle, BG_Edge_RightBottom; + +var GFxObject InfoMC, InfoIconWeap, InfoIconItem, InfoText, InfoTitle; + +var float Scale; +var float Width, Height; +var float rotval; +var float posX, posY; + +var float rightThreshold, leftThreshold; +var bool bInitialized; + +var class WeaponClass[11]; + +var rotator StartRotation; + +var localized string AcceptString, CancelString; + +function bool Start(optional bool StartPaused = false) +{ + Super.Start(StartPaused); + Advance(0); + + AddCaptureKeys(); + + rotval = 0; + + if (!bInitialized) + { + ConfigureInventory(); + } + + PopulateArsenal(); + UpdateEquippedWeapon(); + + // Play the "open" animation. + BackgroundMC.GotoAndPlay("open"); + + // Set focus so the Movie receives input. + //SetFocus(true, false); + + StartRotation = GetPC().Rotation; + + return true; +} + +function ConfigureInventory() +{ + local float x0, y0, x1, y1; + + Root = GetVariableObject("_root"); + Window = Root.GetObject("inventory"); + MainMC = Window.GetObject("main"); + + SetupInfo(); + + CreateItemData(); + + SetupArsenal(); + SetupArsenalButtons(); + PopulateArsenal(); + UpdateEquippedWeapon(); + + SetupBackpack(); + SetupBackpackButtons(); + PopulateBackpackFake(); + + SetupBorder(); + SetupBG(); + + scale = 1; + GetVisibleFrameRect(x0, y0, x1, y1); + Width = (x1-x0)*20; + Height = (y1-y0)*20; + + // get original translation + Window.GetPosition(posX, posY); + + bInitialized = true; + + // localize strings + GetVariableObject("_root.inventory.main.info.help.help_g.text1").SetText(AcceptString); + GetVariableObject("_root.inventory.main.info.help.help_g.text2").SetText(CancelString); +} + +function AddCaptureKeys() +{ + AddCaptureKey('W'); + AddCaptureKey('A'); + AddCaptureKey('S'); + AddCaptureKey('D'); + AddCaptureKey('Spacebar'); + AddCaptureKey('T'); + AddCaptureKey('R'); + AddCaptureKey('Y'); + AddCaptureKey('X'); + AddCaptureKey('C'); + AddCaptureKey('Q'); + + AddCaptureKey('Gamepad_LeftStick_Left'); + AddCaptureKey('Gamepad_LeftStick_Right'); + AddCaptureKey('Gamepad_LeftStick_Up'); + AddCaptureKey('Gamepad_LeftStick_Down'); + + AddCaptureKey('Gamepad_RightStick_Left'); + AddCaptureKey('Gamepad_RightStick_Right'); + AddCaptureKey('Gamepad_RightStick_Up'); + AddCaptureKey('Gamepad_RightStick_Down'); + + AddCaptureKey('XboxTypeS_DPad_Left'); + AddCaptureKey('XboxTypeS_DPad_Right'); + AddCaptureKey('XboxTypeS_DPad_Up'); + AddCaptureKey('XboxTypeS_DPad_Down'); + + AddCaptureKey('XboxTypeS_A'); + AddCaptureKey('XboxTypeS_B'); + AddCaptureKey('XboxTypeS_Y'); + AddCaptureKey('XboxTypeS_X'); + + AddCaptureKey('1'); + AddCaptureKey('2'); + AddCaptureKey('3'); + AddCaptureKey('4'); + AddCaptureKey('5'); + AddCaptureKey('6'); + AddCaptureKey('7'); + AddCaptureKey('8'); + AddCaptureKey('9'); + + AddCaptureKey('Up'); + AddCaptureKey('Down'); + AddCaptureKey('Left'); + AddCaptureKey('Right'); + AddCaptureKey('Enter'); +} + +/* + * Starts inventory's the "close" animation. + */ +function StartCloseAnimation() +{ + BackgroundMC.GotoAndPlay("close"); +} + +/* + * Event handler for when the "close" animation is complete. + * Fired from Flash. + */ +function OnCloseAnimComplete() +{ + UTGFxHudWrapper(GetPC().myHUD).CompleteCloseInventory(); +} + +/* + * Setup the background and cache references to MovieClips + * for reuse. + */ +function SetupBG() +{ + BackgroundMC = GetVariableObject("_root.inventory.bg"); + CPCLogoMC = GetVariableObject("_root.inventory.bg.cpc"); + StartUpTextMC = GetVariableObject("_root.inventory.bg.startup_text"); + + // Note the troublesome hierarchy of containers to allow Z tweening while animating on the Timeline. + // Again, this is now unnecessary. + BG_Optic1MC = BackgroundMC.GetObject("bg_optic1").GetObject("bg_optic1_g").GetObject("bg_optic1_gg"); + BG_Optic2MC = GetVariableObject("_root.inventory.bg.bg_optic2.bg_optic2_g"); + BG_Optic3MC = BackgroundMC.GetObject("bg_optic3").GetObject("bg_optic3_g").GetObject("bg_optic3_gg"); + BG_Optic4MC = BackgroundMC.GetObject("bg_optic4").GetObject("bg_optic4_g").GetObject("bg_optic4_gg"); + + BG_Edge_LeftTop = BackgroundMC.GetObject("bg_edge1"); + BG_Edge_LeftMiddle = GetVariableObject("_root.inventory.bg.bg_edge2.bg_edge_g"); + BG_Edge_LeftBottom = BackgroundMC.GetObject("bg_edge3"); + BG_Edge_RightTop = BackgroundMC.GetObject("bg_edge4"); + BG_Edge_RightMiddle = GetVariableObject("_root.inventory.bg.bg_edge5.bg_edge_g"); + BG_Edge_RightBottom = BackgroundMC.GetObject("bg_edge6"); + + BG_LineMC = GetVariableObject("_root.inventory.bg.bg_line"); + BG_ArrowMC = GetVariableObject("_root.inventory.bg.bg_arrow"); + + BackgroundMC.SetFloat("_z", 1500.0f); + + BG_Edge_RightMiddle.SetFloat("_z", (-200.0f)); + BG_Edge_LeftMiddle.SetFloat("_z", (-200.0f)); + + TweenTurbines(true); + + BG_LineMC.SetFloat("_z", -200.0f); + BG_ArrowMC.SetFloat("_z", -200.0f); +} + +function SetupBorder() +{ + BackpackTabMC = BackpackMC.GetObject("tab2_mc"); + ArsenalTabMC = ArsenalMC.GetObject("tab1_mc"); + + LeftArrow01 = GetVariableObject("_root.inventory.main.left.left_arrow1"); + LeftArrow02 = GetVariableObject("_root.inventory.main.left.left_arrow2"); +} + +/* + * Setup the "Arsenal" section of the inventory. This is the top third of + * the menu. Also caches references to each button and its subcomponents for reuse. + */ +function SetupArsenal() +{ + local int i; + + ArsenalMC = MainMC.GetObject("arsenal"); + + // Setup icon, background, text for buttons. + for (i = 0; i < 10; i++) + { + Buttons[i] = GFxUI_InventoryButton(ArsenalMC.GetObject("weapon_btn"$(i+1), class'GFxUI_InventoryButton')); + Buttons[i].GetObject("weapon_black_icon").GetObject("weapon_black").GotoAndStopI((i+2)); // weapon outlines. + + // store the weapon icon movieclip, but set it to false for the time being. + // it will be set to visible later if the player has the weapon in their inventory + Buttons[i].SetIconMC(Buttons[i].GetObject("weapon_icon")); + Buttons[i].IconMC.SetVisible(false); + + // store an index in the button so we can know which button was interacted with when necessary. + Buttons[i].SetFloat("data", (i+1)); + + // setup the text at the top right of the arsenal buttons. + if (i < 9) + Buttons[i].GetObject("textField").GetObject("textField").SetText("0"$(i+1)); + else // Handle the last case (10) + Buttons[i].GetObject("textField").GetObject("textField").SetText("10"); + } + + // Setup equipped weapons + EquippedWeaponOutline = ArsenalMC.GetObject("equipped"); + EquippedWeapon = EquippedWeaponOutline.GetObject("equipped_weapon").GetObject("equipped_weapon_g"); + EquippedWeaponText1 = EquippedWeaponOutline.GetObject("equipped_text2").GetObject("textField"); + EquippedWeaponText2 = EquippedWeaponOutline.GetObject("equipped_text1").GetObject("textField"); +} + +/* + * Setup the "Backpack" section of the inventory. This is the middle third of + * the menu. Also caches references to each button and its subcomponents for reuse. + */ +function SetupBackpack() +{ + local byte i; + + BackpackMC = MainMC.GetObject("backpack"); + + // Setup icon, background, text for buttons. + for (i = 10; i < 20; i++) + { + // the explicit cast and class parameter are both necessary here. + Buttons[i] = GFxUI_InventoryButton( BackpackMC.GetObject( "item_btn"$(i-9) , class'GFxUI_InventoryButton')); + Buttons[i].SetIconMC(Buttons[i].GetObject("item").GetObject("item_g")); + Buttons[i].IconMC.SetVisible(false); + Buttons[i].SetFloat("data", (i+1)); + } +} + +/* + * Sets up the Information section of the inventory. This is the bottom most third. + */ +function SetupInfo() +{ + InfoMC = GetVariableObject("_root.inventory.main.info.info_mc.info_mc_g"); + InfoIconWeap = InfoMC.GetObject("weapon"); + InfoIconItem = InfoMC.GetObject("item"); + InfoText = InfoMC.GetObject("info_text").GetObject("textField"); + InfoTitle = InfoMC.GetObject("info_title").GetObject("textField"); +} + +/* + * Populates the Backpack with 3 fake items. + */ +function PopulateBackpackFake() +{ + local byte i; + + for (i = 10; i < 13; i++) + { + Buttons[i].IconMC.GotoAndStopI(i+2); + Buttons[i].IconMC.SetVisible(true); + Buttons[i].AddEventListener('CLIK_click', OnClickFakeItem); + } +} + +/* + * Setup EventListeners for interaction with Arsenal buttons. + */ +function SetupArsenalButtons() +{ + local byte i; + + for (i = 0; i < 10; i++) + { + Buttons[i].AddEventListener('CLIK_focusIn', OnFocusArsenalTab); + Buttons[i].AddEventListener('CLIK_click', OnClickWeaponButton); + Buttons[i].AddEventListener('CLIK_focusIn', OnFocusUpdateInfo); + } +} + +/* + * Setup EventListeners for interaction with Backpack buttons. + */ +function SetupBackpackButtons() +{ + local int i; + + for (i = 10; i < 20; i++) + { + Buttons[i].AddEventListener('CLIK_focusIn', OnFocusBackpackTab); + Buttons[i].AddEventListener('CLIK_focusIn', OnFocusUpdateInfo); + } +} + +/* + * EventListener for Arsenal button press. + * Informs the controller that the player has equipped + * a new weapon. + */ +function SwitchWeapon(byte index) +{ + UTPlayerController(GetPC()).SwitchWeapon(index); +} + +/* + * EventListener for when button gains focus. + * Initializes the "floating" Z tween on the button's icon, + * assuming it is visible. + */ +function OnFocusInSelection(GFxClikWidget.EventData ev) +{ + local byte data; + data = ev.target.GetFloat("data") - 1; + + if (Buttons[data].IconMC.GetBool("_visible")) + FloatSelectionUp(Buttons[data].IconMC); +} + +/* + * EventListener for when a button has lost focus. + * Removes any existing tweens on MovieClip(generally, the "floating" Z-tween). + */ +function OnFocusOutSelection(GFxClikWidget.EventData ev) +{ + local byte index; + index = ev.target.GetFloat("data")-1; + + ClearsTweensOnMovieClip(Buttons[index].IconMC); +} + +/* + * EventListener for when a button in the Arsenal has been + * clicked. + */ +function OnClickWeaponButton(GFxClikWidget.EventData ev) +{ + local int index; + + index = ev.target.GetFloat("data"); + + if ( (index >= 0) && (WeaponClass[index] != None) ) + { + UTPawn(GetPC().Pawn).SwitchWeapon(index); + + // Uses FakeUpdateEquippedWeapon because weapon change doesn't actually occur until the inventory is closed. + FakeUpdateEquippedWeapon(index); + } +} + +/* + * EventListener for when a button gains focus. + * If an item in this button slot exists in the player's inventory, + * it will populate the information portion of the inventory menu. + */ +function OnFocusUpdateInfo(GFxClikWidget.EventData ev) +{ + local int buttonIndex; + + buttonIndex = ev.target.GetFloat("data"); + + if (Buttons[buttonIndex-1].IconMC.GetBool("_visible")) + SetInfo(buttonIndex); + else + SetInfo(-1); +} + +/* + * EventListener for when the Arsenal tab gains focus. + * Tweens the Arsenal tab forward and the Backpack tab backward. + */ +function OnFocusArsenalTab(GFxClikWidget.EventData ev) +{ + // Check to ensure an update is necessary. + if (!bArsenalTabFocused) + { + ArsenalTabMC.GotoAndPlay("on"); // Highlight the Arsenal tab at right. + BackpackTabMC.GotoAndPlay("off"); + + LeftArrow01.GotoAndPlay("on"); // Highlight Arsenal arrow. + LeftArrow02.GotoAndPlay("off"); + + ClearsTweensOnMovieClip(ArsenalMC, false); + ClearsTweensOnMovieClip(BackpackMC, false); + TweenTo(ArsenalMC, 0.5, "_z", -1500.0, TWEEN_EaseOut, ""); + TweenTo(BackpackMC, 0.5, "_z", 0.0, TWEEN_EaseOut, ""); + + bArsenalTabFocused = true; + } +} + +/* + * EventListener for when the Backpack tab gains focus. + * Tweens the Backpack tab forward and the Rasenal tab backward. + */ +function OnFocusBackpackTab(GFxClikWidget.EventData ev) +{ + // Check to ensure an update is necessary. + if (bArsenalTabFocused) + { + ArsenalTabMC.GotoAndPlay("off"); + BackpackTabMC.GotoAndPlay("on"); // Highlight the Backpack tab at right. + + LeftArrow01.GotoAndPlay("off"); // Highlight Backpack arrow. + LeftArrow02.GotoAndPlay("on"); + + ClearsTweensOnMovieClip(ArsenalMC, false); + ClearsTweensOnMovieClip(BackpackMC, false); + TweenTo(ArsenalMC, 0.5, "_z", 0.0, TWEEN_EaseOut, ""); + TweenTo(BackpackMC, 0.5, "_z", -1500.0, TWEEN_EaseOut, ""); + + bArsenalTabFocused = false; + } +} + + +/* + * Fake actions for when the fake items are used. + */ +function OnClickFakeItem(GFxClikWidget.EventData ev) +{ + local UTPawn P; + + switch(ev.target.GetFloat("data")) + { + case(11): + GetPC().Pawn.Health = GetPC().Pawn.HealthMax;; + return; + break; + case(12): + P = UTPawn(GetPC().Pawn); + if ( P != None ) + { + P.PlayEmote('UseArmor', -1); + P.VestArmor = Max(50, P.VestArmor); + } + return; + break; + default: + break; + } +} + +/* + * Set the data for the information section of the inventory. + */ +function SetInfo(int index) +{ + local string OldText; + OldText = InfoText.GetText(); + + if (index < 0) + { + if (OldText != "") + { + InfoMC.GotoAndPlay("off"); + InfoIconWeap.GotoAndStopI(0); + InfoText.SetText(""); + InfoTitle.SetText(""); + } + } + else + { + InfoMC.GotoAndPlay("on"); + if ( Items.Length >= index ) + { + InfoIconWeap.GotoAndStopI(Items[index-1].ItemFrame); + InfoText.SetText(Items[index-1].ItemInfo); + InfoTitle.SetText(Items[index-1].ItemName); + } + } +} + +/* + * Populate the Arsenal with the player's inventory of weapons. + */ +function PopulateArsenal() +{ + local byte i; + + if ( GetPC().Pawn != None ) + { + for (i = 0; i < 9; i++) + { + if ( (WeaponClass[i+1] != None) && (GetPC().Pawn.FindInventoryType(WeaponClass[i+1], true) != None) ) + { + Buttons[i].IconMC.SetVisible(true); + Buttons[i].IconMC.GotoAndStopI((i+2)); + Buttons[i].SetFloat("data", (i+1)); + } + } + } +} + +/* + * Update the currently equipped weapon section of the + * inventory menu. Plays a short animation and updates + * text throughout the menu. Fired by the PlayerController + * when SetCurrentWeapon is called. + * + * This FakeUpdate is used in place of the real update + * because the current implementation of the inventory + * makes it impossible for the player to change their weapon + * within the menu (it is done when the menu is closed). + */ +function FakeUpdateEquippedWeapon(int index) +{ + local string CurrentWeaponString; + CurrentWeaponString = string(index); + + if (index < 10) + CurrentWeaponString = "0"$CurrentWeaponString; + + EquippedWeapon.GotoAndStopI(index+1); // Change the weapon icon. + EquippedWeaponOutline.GotoAndPlay("equipped"); // Red hexagon outline animation. + EquippedWeaponText1.SetText(CurrentWeaponString); + EquippedWeaponText2.SetText(CurrentWeaponString); +} + +/* + * --- UNUSED --- + * + * Update the currently equipped weapon section of the + * inventory menu. Plays a short animation and updates + * text throughout the menu. + */ +function UpdateEquippedWeapon() +{ + local byte CurrentWeapon; + local string CurrentWeaponString; + + CurrentWeapon = UTWeapon(GetPC().Pawn.Weapon).InventoryGroup; + CurrentWeaponString = string(CurrentWeapon); + + if (CurrentWeapon < 10) + CurrentWeaponString = "0"$CurrentWeaponString; + + EquippedWeapon.GotoAndStopI(CurrentWeapon+1); + EquippedWeaponText1.SetText(CurrentWeaponString); + EquippedWeaponText2.SetText(CurrentWeaponString); +} + + +/* + * Implementation of ProcessTweenCallback. Inherited from UTGFxTweenableMoviePlayer + * (basic workaround for lack of multiple inheritance). + * + * Callbacks are fired by the TweenManager. The TargetMC is target MovieClip + * of the Tween that just finished. See UTGFxTweenableMoviePlayer + * for more information. + */ +function ProcessTweenCallback(String Callback, GFxObject TargetMC) +{ + switch(Callback) + { + case ("TweenTurbines1"): + TweenTurbines(true); + break; + case ("TweenTurbines2"): + TweenTurbines(false); + break; + case ("ContinueFloatCheck"): + FloatSelectionUp(TargetMC); + break; + case ("FloatSelectionDown"): + FloatSelectionDown(TargetMC); + break; + default: + break; + } +} + +/* + * Tween callback: + * Tween the background turbines back and forth. + */ +function TweenTurbines(bool toggle) +{ + if (toggle) + { + TweenTo( BG_Optic1MC, 11.0, "_z", -1000, TWEEN_EaseOut, "TweenTurbines2" ); + TweenTo( BG_Optic3MC, 10.0, "_z", -2000, TWEEN_EaseOut, "" ); + TweenTo( BG_Optic4MC, 10.0, "_z", 2000, TWEEN_EaseOut, "" ); + } + else + { + TweenTo( BG_Optic1MC, 11.0, "_z", 1000, TWEEN_EaseOut, "TweenTurbines1" ); + TweenTo( BG_Optic3MC, 10.0, "_z", 2000, TWEEN_EaseOut, "" ); + TweenTo( BG_Optic4MC, 10.0, "_z", -2000, TWEEN_EaseOut, "" ); + } +} + +/* + * Tween callback: + * Tween target MovieClip upward on the Z. + * Used on selected items in the backpack and the arsenal. + */ +function FloatSelectionUp(GFxObject ButtonIconMC) +{ + TweenTo( ButtonIconMC, 1.0, "_z", (-600 * 4.0), TWEEN_Linear, "FloatSelectionDown"); +} + +/* + * Tween callback: + * Tween target MovieClip downward on the Z. + * Used on selected items in the backpack and the arsenal. + */ +function FloatSelectionDown(GFxObject ButtonIconMC) +{ + TweenTo( ButtonIconMC, 1.0, "_z", (-600 * 3.5), TWEEN_Linear, "ContinueFloatCheck"); +} + +function UpdatePos() +{ + local float yawRadian; + local float pitchRadian; + local matrix mYaw, mTranslate, mPitch, mFinal; + + // Create identity matrix. + mTranslate.XPlane.X = 1; + mTranslate.YPlane.Y = 1; + mTranslate.ZPlane.Z = 1; + mTranslate.WPlane.W = 1; + + // Initialize all matrices to identity + mYaw = mTranslate; + mPitch = mTranslate; + + // Apply original translation + mTranslate.WPlane.X = posX; + mTranslate.WPlane.Y = posY; + + // compute rotation + yawRadian = -((16384 + ((GetPC().Rotation.Yaw /*- 5000*/) - StartRotation.Yaw)) & 65535) * (Pi/32768.0); + yawRadian -= (3*1.57079633); + + pitchRadian = -((16384 + (GetPC().Rotation.Pitch - StartRotation.Pitch)) & 65535) * (Pi/32768.0); + pitchRadian -= (3*1.57079633); + + // Rotate about the Y + mYaw.XPlane.X = cos(yawRadian) * Scale; + mYaw.XPlane.Z = -sin(yawRadian) * Scale; + + mYaw.ZPlane.X = sin(yawRadian) * Scale; + mYaw.ZPlane.Z = cos(yawRadian) * Scale; + + // Rotate about the X + mPitch.YPlane.Y = cos(pitchRadian) * Scale; + mPitch.YPlane.Z = sin(pitchRadian) * Scale; + + mPitch.ZPlane.Y = -sin(pitchRadian) * Scale; + mPitch.ZPlane.Z = cos(pitchRadian) * Scale; + + mFinal = mYaw * mPitch * mTranslate; + + Window.SetDisplayMatrix3D(mFinal); +} + +function CreateItemData() +{ + local byte i; + local ItemData data; + + for ( i=0; i<10; i++ ) + { + if ( WeaponClass[i+1] != None ) + { + data.ItemName = WeaponClass[i+1].default.ItemName; + data.ItemInfo = WeaponClass[i+1].default.UseHintString; + } + data.ItemFrame = i+2; + Items[i] = data; + } + + data.ItemName = class'UTHealthPickupFactory'.default.PickupMessage; + data.ItemInfo = class'UTHealthPickupFactory'.default.UseHintMessage; + data.ItemFrame = 12; + Items[10] = data; + + data.ItemName = class'UTArmorPickupFactory'.default.PickupMessage; + data.ItemInfo = class'UTArmorPickupFactory'.default.UseHintMessage; + data.ItemFrame = 13; + Items[11] = data; + + data.ItemName = "DAMAGE AMPLIFIER"; + data.ItemInfo = "Amplifies the user's damage by 4x. Use with caution."; + data.ItemFrame = 14; + Items[12] = data; +} + +defaultproperties +{ + bIgnoreMouseInput=TRUE + bEnableGammaCorrection = FALSE + rightThreshold = -10.9 + leftThreshold = -8.34 + bArsenalTabFocused = TRUE + bDisplayWithHudOff = TRUE + bInitialized = FALSE + MovieInfo=SwfMovie'UDKHUD.udk_inventory' + + WeaponClass(1)=class'UTWeap_LinkGun' + WeaponClass(4)=class'UTWeap_ShockRifleBase' + WeaponClass(8)=class'UTWeap_RocketLauncher' +} \ No newline at end of file diff --git a/Development/Src/UTGame/Classes/GFxUDKFrontEnd.uc b/Development/Src/UTGame/Classes/GFxUDKFrontEnd.uc new file mode 100644 index 0000000..63e382a --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxUDKFrontEnd.uc @@ -0,0 +1,792 @@ +/********************************************************************** + +Filename : GFxUDKFrontEnd.uc +Content : GFx-UDK Front End Implementaiton + +Copyright : (c) 2010 Scaleform Corp. All Rights Reserved. + +Notes : A manager for the UDK's front end menu. This class loads + all of the menu views as MovieClips into itself using + attachMovie() and loadMovie(). The data for the views + defined in DefaultUI.ini. + + All loaded views contain a reference to this class for general + menu functionality including pushing/popping views, spawning dialogs, + setting focus, and setting Escape/Back key press events. + + There is an ActionScript class associated with this manager: + MenuManager.as. That class contains logic for animating views + and utilizing necessary GFx AS extensions (eg. Selection["modalClip"]). + + Associated Flash content: udk_manager.fla + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ +class GFxUDKFrontEnd extends GFxMoviePlayer + config(UI); + +/** Reference to _root of the movie's (udk_manager.swf) stage. */ +var GFxObject RootMC; + +/** Reference to the manager MovieClip (_root.manager) where views will be attached. */ +var GFxObject ManagerMC; + +var bool bInitialized; + +/** View declarations. */ +var GFxUDKFrontEnd_MainMenu MainMenuView; + +var GFxUDKFrontEnd_InstantAction InstantActionView; + +var GFxUDKFrontEnd_Multiplayer MultiplayerView; + +var GFxUDKFrontEnd_HostGame HostGameView; + +var GFxUDKFrontEnd_MapSelect MapSelectView; + +var GFxUDKFrontEnd_GameMode GameModeView; + +var GFxUDKFrontEnd_Mutators MutatorsView; + +var GFxUDKFrontEnd_Settings SettingsView; + +var GFxUDKFrontEnd_ServerSettings ServerSettingsView; + +var GFxUDKFrontEnd_JoinGame JoinGameView; + +var GFxUDKFrontEnd_InfoDialog InfoDialog; + +var GFxUDKFrontEnd_FilterDialog FilterDialog; + +var GFxUDKFrontEnd_JoinDialog JoinDialog; + +var GFxUDKFrontEnd_ErrorDialog ErrorDialog; + +var GFxUDKFrontEnd_PasswordDialog PasswordDialog; + +/** Structure which defines a unique menu view to be loaded. */ +struct ViewInfo +{ + /** Unique string. */ + var name ViewName; + + /** SWF content to be loaded. */ + var string SWFName; + + /** Dependant views that should be loaded if this view is displayed. */ + var array DependantViews; +}; + +/** Array of all menu views to be loaded, defined in DefaultUI.ini. */ +var config array ViewData; + +/** + * Shadow of the AS view stack. Necessary to update ( View.OnTopMostView(false) ) views that + * alreday exist on the stack. + */ +var array ViewStack; + +/** + * An array of names of views which have been attachMovie()'d and loadMovie()'d. Views + * are loaded based on their DependantViews array, defined in Default.ini. + */ +var array LoadedViews; + +/** + * A delegate for Escape/Back key press which will generally move the user backward + * through the menu or select "Cancel". + */ +delegate EscapeDelegate(); + +function bool Start(optional bool StartPaused = false) +{ + super.Start(); + Advance(0); + + if (!bInitialized) + { + ConfigFrontEnd(); + } + + // @todo sf: Stops the game running the background from ending. We should set the Kismet level up + // properly rather than use pause instead. + ConsoleCommand("pause"); + + if (class'WorldInfo'.static.IsConsoleBuild(CONSOLE_XBox360) || class'WorldInfo'.static.IsConsoleBuild(CONSOLE_PS3)) + { + ASShowCursor(false); + } + + LoadViews(); + return TRUE; +} + +/** + * Configuration method which stores references to _root and + * _root.manager for use in attaching views. + */ +final function ConfigFrontEnd() +{ + RootMC = GetVariableObject("_root"); + ManagerMC = RootMC.GetObject("manager"); + + bInitialized = TRUE; +} + +/** + * Creates MovieClips in ManagerMC into which the views are loaded. These MovieClips + * are then stored in MenuViews for later manipulation. + */ +final function LoadViews() +{ + local byte i; + for (i = 0; i < ViewData.Length; i++) + { + LoadView( ViewData[i] ); + } +} + +/** + * Create a view using existing ViewInfo. + * + * @param InViewInfo, the data for the view which includes the SWFName and the name for the view. + */ +final function LoadView(ViewInfo InViewInfo) +{ + local ASValue asval; + local array args; + local GFxObject ViewContainer, ViewLoader; + + ViewContainer = ManagerMC.CreateEmptyMovieClip( String(InViewInfo.ViewName) $ "Container" ); + ViewLoader = ViewContainer.CreateEmptyMovieClip( String(InViewInfo.ViewName) ); + + asval.Type = AS_String; + asval.s = InViewInfo.SWFName; + args[0] = asval; + + ViewContainer.SetVisible( false ); + ViewLoader.Invoke( "loadMovie", args ); + LoadedViews.AddItem( InViewInfo.ViewName ); +} + +/** + * Loads a view using the view name. Used for loading views based on the current screen. + * Views that should be loaded for each screen are defined in DefaultUI.ini. + * + * @param InViewName The name of the view to be loaded. + */ +final function LoadViewByName( name InViewName ) +{ + local byte i; + for( i = 0; i < ViewData.Length; i++ ) + { + // Find the view data by the view name and check that it is not already loaded. + if ( ViewData[i].ViewName == InViewName && !IsViewLoaded(InViewName) ) + { + // Load the view. + LoadView( ViewData[i] ); + } + } +} + +/** + * Checks whether a view has already been loaded using the view name. + * + * @param InViewName The name of the view to check. + */ +final function bool IsViewLoaded( name InViewName ) +{ + local byte i; + for( i = 0; i < ViewData.Length; i++ ) + { + // Check if the view has already been loaded using the view name. + if ( LoadedViews[i] == InViewName ) + { + return TRUE; + } + } + return FALSE; +} + +/** + * Used by views to set the function triggered by "escape" input. + * + * @param InDelegate The EscapeDelegate that should be called on Escape/Cancel key press. + */ +final function SetEscapeDelegate( delegate InDelegate ) +{ + local GFxObject _global; + _global = GetVariableObject("_global"); + ActionScriptSetFunction(_global, "OnEscapeKeyPress"); +} + +/** + * Pushes a view onto MenuManager.as's view stack by name. + * This is the primarily method by which views on the stack notify the + * GFxUDKFrontEnd that the state of the stack needs to be updated. + */ +final function PushViewByName(name TargetViewName, optional GFxUDKFrontEnd_Screen ParentView) +{ + `log( "GFxUDKFrontEnd::PushViewByName(" @ string(TargetViewName) @ ")",,'DevUI'); + switch (TargetViewName) + { + case ( 'InstantAction' ): + ConfigureTargetView( InstantActionView ); + break; + case ( 'Multiplayer' ): + ConfigureTargetView( MultiplayerView ); + break; + case ( 'GameMode' ): + ConfigureTargetView( GameModeView ); + break; + case ( 'MapSelect' ): + ConfigureTargetView( MapSelectView ); + break; + case ( 'Settings' ): + ConfigureTargetView( SettingsView ); + break; + case ( 'Mutators' ): + ConfigureTargetView( MutatorsView ); + break; + case ( 'HostGame' ): + ConfigureTargetView( HostGameView ); + break; + case ( 'ServerSettings' ): + ConfigureTargetView( ServerSettingsView ); + break; + case ( 'JoinGame' ): + ConfigureTargetView( JoinGameView ); + break; + default: + `log( "View ["$TargetViewName$"] not found." ,,'DevUI'); + break; + } +} + +/** + * Configures a dialog and pushes it on to the view stack. + * Returns a reference to the dialog which can be manipulated to the view which spawned it. + */ +function GFxUDKFrontEnd_Dialog SpawnDialog(name TargetDialogName, optional GFxUDKFrontEnd_Screen ParentView) +{ + `log( "GFxUDKFrontEnd::SpawnDialog(" @ string(TargetDialogName) @ ")" ,,'DevUI'); + switch ( TargetDialogName ) + { + case ( 'InfoDialog' ): + ConfigureTargetDialog( InfoDialog ); + return InfoDialog; + case ( 'JoinDialog' ): + ConfigureTargetDialog( JoinDialog ); + return JoinDialog; + case ( 'FilterDialog' ): + ConfigureTargetDialog( FilterDialog ); + return FilterDialog; + case ( 'ErrorDialog' ): + ConfigureTargetDialog( ErrorDialog ); + return ErrorDialog; + case ( 'PasswordDialog' ): + ConfigureTargetDialog( PasswordDialog ); + return PasswordDialog; + default: + `log( "Dialog ["$TargetDialogName$"] not found." ,,'DevUI'); + return none; + } +} + +/** + * Activates, updates, and pushes a dialog on the stack. + * This method is called when a dialog is created by name using SpawnDialog(). + */ +function ConfigureTargetDialog(coerce GFxUDKFrontEnd_View TargetDialog) +{ + if (TargetDialog != none) + { + if (ViewStack.Length > 0) + { + ViewStack[ViewStack.Length - 1].DisableSubComponents(true); + } + + TargetDialog.OnViewActivated(); + TargetDialog.OnTopMostView( true ); + + ViewStack.AddItem( TargetDialog ); + PushDialogView( TargetDialog ); + } + else + { + `log( "GFxUDKFrontEnd::ConfigureTargetDialog: TargetDialog is none. Unable to push view." ,,'DevUI'); + } +} + +/** + * Activates, updates, and pushes a view on the stack if it is allowed. + * This method is called when a view is created by name using PushViewByName(). + */ +function ConfigureTargetView(GFxUDKFrontEnd_View TargetView) +{ + if( IsViewAllowed( TargetView ) ) + { + // LoadDependantViews( TargetView.ViewName ); + // Disable the current top most view's controls to prevent focus from escaping during the transition. + if (ViewStack.Length > 0) + { + ViewStack[ViewStack.Length - 1].DisableSubComponents(true); + } + + TargetView.OnViewActivated(); + TargetView.OnTopMostView( true ); + + ViewStack.AddItem( TargetView ); + PushView( TargetView ); + } +} + +/** Check whether target view is appropriate to add to the view stack. */ +function bool IsViewAllowed(GFxUDKFrontEnd_View TargetView) +{ + local byte i; + local name TargetViewName; + + // Check to see that we weren't passed a null view. + if ( TargetView == none ) + { + `log( "GFxUDKFrontEnd:: TargetView is null. Unable to push view onto stack." ,,'DevUI'); + return false; + } + + // Check to see if the view is already loaded on the view stack using the view name. + TargetViewName = TargetView.ViewName; + for ( i = 0; i < ViewStack.Length; i++ ) + { + if (ViewStack[i].ViewName == TargetViewName) + { + `log( "GFxFrontEnd:: TargetView is already on the stack." ,,'DevUI'); + return false; + } + } + + return true; +} + +/** Pushes a view onto MenuManager.as view stack. */ +function PushView(coerce GFxUDKFrontEnd_View targetView) +{ + ActionScriptVoid("pushStandardView"); +} + +/** AS stub for pushing a view onto the stack. */ +function PushDialogView(coerce GFxUDKFrontEnd_View dialogView) +{ + ActionScriptVoid("pushDialogView"); +} + +/** Gives focus to a particular GFxObject. */ +function SetSelectionFocus(coerce GFxObject MovieClip) +{ + if (MovieClip != none) + { + ASSetSelectionFocus(MovieClip); + } +} + +/** AS stub for access to Selection.setFocus() via SetSelectionFocus(). */ +function ASSetSelectionFocus(GFxObject MovieClip) +{ + ActionScriptVoid("setSelectionFocus"); +} + +/** Pops a view from the view stack and handles update/close of existing views. */ +function GFxObject PopView() +{ + if ( ViewStack.Length <= 1 ) + { + return none; + } + + // Call OnViewClosed() for the popped view. + // Generally, this will disable the view's list to prevent accidental mouse rollOvers that cause + // focus to change undesirably as the view is tweened out. + ViewStack[ViewStack.Length-1].OnViewClosed(); + + // DestroyDependantViews( ViewStack[ViewStack.Length - 1].ViewName ); + + // Remove the view from the stack in US so we know what's still on top. + ViewStack.Remove(ViewStack.Length-1, 1); + + // Update the new top most view. + ViewStack[ViewStack.Length-1].OnTopMostView( false ); + + return PopViewStub(); +} + +/** Pops a view from the MenuManager.as view stack. */ +final function GFxObject PopViewStub() { return ActionScriptObject("popView"); } + +/** Updates the layout of all views in MenuManager.as view stack. */ +final function UpdateViewLayout() +{ + ActionScriptVoid("updateViewLayout"); +} + +final function ConfigureView(GFxUDKFrontEnd_View InView, name WidgetName, name WidgetPath) +{ + SetWidgetPathBinding(InView, WidgetPath); + InView.MenuManager = self; + InView.ViewName = WidgetName; + InView.OnViewLoaded(); +} + +final function ASShowCursor(bool bShowCursor) +{ + ActionScriptVoid("showCursor"); +} + +/** Callback when at least one CLIK widget with enableInitCallback set to TRUE has been initialized in a frame */ +function PostWidgetInit() +{ + // +} + +/** @return Checks to see if the platform is currently connected to a network. */ +function bool CheckLinkConnectionAndError( optional string AlternateTitle, optional string AlternateMessage ) +{ + local GFxUDKFrontEnd_ErrorDialog Dialog; + local bool bResult; + + if( class'GFxUIView'.static.HasLinkConnection() ) + { + bResult = true; + } + else + { + if ( AlternateTitle == "" ) + { + AlternateTitle = ""; + } + if ( AlternateMessage == "" ) + { + AlternateMessage = ""; + } + + Dialog = GFxUDKFrontEnd_ErrorDialog(SpawnDialog('ErrorDialog')); + Dialog.SetTitle(AlternateTitle); + Dialog.SetInfo(AlternateMessage); + bResult = false; + } + + return bResult; +} + +/** + * Callback when a CLIK widget with enableInitCallback set to TRUE is initialized. + * Returns TRUE if the widget was handled, FALSE if not. + */ +event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) +{ + local bool bResult; + bResult = false; + + //`log( "GFxUDKFrontEnd::WidgetInit: " @ WidgetName @ " : " @ WidgetPath @ " : " @ Widget ,,'DevUI'); + switch(WidgetName) + { + case ('MainMenu'): + if (MainMenuView == none) + { + MainMenuView = GFxUDKFrontEnd_MainMenu(Widget); + ConfigureView(MainMenuView, WidgetName, WidgetPath); + + // Currently here because need to ensure MainMenuView has loaded. + ConfigureTargetView(MainMenuView); + bResult = true; + } + break; + case ('InstantAction'): + if (InstantActionView == none) + { + InstantActionView = GFxUDKFrontEnd_InstantAction(Widget); + ConfigureView(InstantActionView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('MapSelect'): + if (MapSelectView == none) + { + MapSelectView = GFxUDKFrontEnd_MapSelect(Widget); + ConfigureView(MapSelectView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('GameMode'): + if (GameModeView == none) + { + GameModeView = GFxUDKFrontEnd_GameMode(Widget); + ConfigureView(GameModeView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('Mutators'): + if (MutatorsView == none) + { + MutatorsView = GFxUDKFrontEnd_Mutators(Widget); + ConfigureView(MutatorsView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('Settings'): + if (SettingsView == none) + { + SettingsView = GFxUDKFrontEnd_Settings(Widget); + ConfigureView(SettingsView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('ServerSettings'): + if (ServerSettingsView == none) + { + ServerSettingsView = GFxUDKFrontEnd_ServerSettings(Widget); + ConfigureView(ServerSettingsView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('HostGame'): + if (HostGameView == none) + { + HostGameView = GFxUDKFrontEnd_HostGame(Widget); + ConfigureView(HostGameView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('Multiplayer'): + if (MultiplayerView == none) + { + MultiplayerView = GFxUDKFrontEnd_Multiplayer(Widget); + ConfigureView(MultiplayerView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('JoinGame'): + if (JoinGameView == none) + { + JoinGameView = GFxUDKFrontEnd_JoinGame(Widget); + ConfigureView(JoinGameView, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('InfoDialog'): + if (InfoDialog == none) + { + InfoDialog = GFxUDKFrontEnd_InfoDialog(Widget); + ConfigureView(InfoDialog, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('JoinDialog'): + if (JoinDialog == none) + { + JoinDialog = GFxUDKFrontEnd_JoinDialog(Widget); + ConfigureView(JoinDialog, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('FilterDialog'): + if (FilterDialog == none) + { + FilterDialog = GFxUDKFrontEnd_FilterDialog(Widget); + ConfigureView(FilterDialog, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('PasswordDialog'): + if (PasswordDialog == none) + { + PasswordDialog = GFxUDKFrontEnd_PasswordDialog(Widget); + ConfigureView(PasswordDialog, WidgetName, WidgetPath); + bResult = true; + } + break; + case ('ErrorDialog'): + if (ErrorDialog == none) + { + ErrorDialog = GFxUDKFrontEnd_ErrorDialog(Widget); + ConfigureView(ErrorDialog, WidgetName, WidgetPath); + + // Hack to ensure that focus is set to the main menu even after all the other views have been loaded above. + SetSelectionFocus(MainMenuView.ListMC); + bResult = true; + } + break; + default: + break; + } + + return bResult; +} + +/** + * The following methods are used for creating / destroying views. They are commented out for the time being + * because the size/perf of having all of the views loaded from start up until level shut down is manageable + * and enabling them can cause instability moving between screens (needs further investigation). + */ + + +/** + * Loads all dependant views for a view using the view's name. Dependant + * views are defined in the INI file and stored in the ViewData array. + */ +final function LoadDependantViews( name InViewName ) +{ + /* + local byte i; + local array DependantViews; + local name DependantViewName; + + // Find the ViewInfo for the view based on the name that was passed in. + for (i = 0; i < ViewData.Length; i++ ) + { + if (InViewName == ViewData[i].ViewName) + { + // Store this views dependant views (defined in the INI). + DependantViews = ViewData[i].DependantViews; + } + } + + // Iterate through dependant views. If they're not loaded, load them. + for (i = 0; i < DependantViews.Length; i++) + { + DependantViewName = DependantViews[i]; + if ( !IsViewLoaded( DependantViewName ) ) + { + LoadViewByName( DependantViewName ); + } + } + */ +} + +/** + * A highly unstable method which unloads dependant views based on the name of the view + * that is being unloaded. + */ +final function DestroyDependantViews( name InViewName ) +{ + /* + local byte i; + local ASValue asval; + local array args; + local array DependantViews; + local name DependantViewName; + local GFxObject ViewToUnload; + + // Find the ViewInfo for the view based on the name that was passed in. + for (i = 0; i < ViewData.Length; i++ ) + { + if (InViewName == ViewData[i].ViewName) + { + // Store this views dependant views (defined in the INI). + DependantViews = ViewData[i].DependantViews; + } + } + + // Iterate through dependant views. If they're not loaded, load them. + for (i = 0; i < DependantViews.Length; i++) + { + switch( DependantViews[i] ) + { + case ( 'GameMode' ): + ViewToUnload = GameModeView; + break; + case ( 'MapSelect' ): + ViewToUnload = MapSelectView; + break; + case ( 'Settings' ): + ViewToUnload = SettingsView; + break; + case ( 'Mutators' ): + ViewToUnload = MutatorsView; + break; + case ( 'HostGame' ): + ViewToUnload = HostGameView; + break; + case ( 'ServerSettings' ): + ViewToUnload = ServerSettingsView; + break; + case ( 'JoinGame' ): + ViewToUnload = JoinGameView; + break; + case ( 'JoinDialog' ): + ViewToUnload = JoinDialog; + break; + case ( 'FilterDialog' ): + ViewToUnload = FilterDialog; + break; + case ( 'ErrorDialog' ): + ViewToUnload = ErrorDialog; + break; + case ( 'PasswordDialog' ): + ViewToUnload = PasswordDialog; + break; + default: + ViewToUnload = none; + break; + } + + if ( ViewToUnload != none ) + { + asval.Type = AS_Boolean; + asval.b = TRUE; + args[0] = asval; + + ViewToUnload.Invoke( "removeMovieClip", args ); + LoadedViews.RemoveItem ( DependantViews[i] ); + } + } + */ +} + +/** + * Pass on input to the currently focused view (JoinGame only atm) + */ +function bool FilterButtonInput(int ControllerId, name ButtonName, EInputEvent InputEvent) +{ + if (GFxUDKFrontEnd_JoinGame(ViewStack[ViewStack.Length-1]) != none) + return GFxUDKFrontEnd_JoinGame(ViewStack[ViewStack.Length-1]).OnFilterButtonInput(ControllerId, ButtonName, InputEvent); + + return False; +} + + +defaultproperties +{ + // Views & Dialogs + WidgetBindings.Add((WidgetName="MainMenu",WidgetClass=class'GFxUDKFrontEnd_MainMenu')) + WidgetBindings.Add((WidgetName="InstantAction",WidgetClass=class'GFxUDKFrontEnd_InstantAction')) + WidgetBindings.Add((WidgetName="MapSelect",WidgetClass=class'GFxUDKFrontEnd_MapSelect')) + WidgetBindings.Add((WidgetName="GameMode",WidgetClass=class'GFxUDKFrontEnd_GameMode')) + WidgetBindings.Add((WidgetName="Settings",WidgetClass=class'GFxUDKFrontEnd_Settings')) + WidgetBindings.Add((WidgetName="Mutators",WidgetClass=class'GFxUDKFrontEnd_Mutators')) + + WidgetBindings.Add((WidgetName="Multiplayer",WidgetClass=class'GFxUDKFrontEnd_Multiplayer')) + WidgetBindings.Add((WidgetName="HostGame",WidgetClass=class'GFxUDKFrontEnd_HostGame')) + WidgetBindings.Add((WidgetName="JoinGame",WidgetClass=class'GFxUDKFrontEnd_JoinGame')) + WidgetBindings.Add((WidgetName="ServerSettings",WidgetClass=class'GFxUDKFrontEnd_ServerSettings')) + + WidgetBindings.Add((WidgetName="InfoDialog",WidgetClass=class'GFxUDKFrontEnd_InfoDialog')) + WidgetBindings.Add((WidgetName="ErrorDialog",WidgetClass=class'GFxUDKFrontEnd_ErrorDialog')) + WidgetBindings.Add((WidgetName="JoinDialog",WidgetClass=class'GFxUDKFrontEnd_JoinDialog')) + WidgetBindings.Add((WidgetName="FilterDialog",WidgetClass=class'GFxUDKFrontEnd_FilterDialog')) + WidgetBindings.Add((WidgetName="PasswordDialog",WidgetClass=class'GFxUDKFrontEnd_PasswordDialog')) + + // Sound Mapping + SoundThemes(0)=(ThemeName=default,Theme=UISoundTheme'UDKFrontEnd.Sound.SoundTheme') + + bDisplayWithHudOff=TRUE + TimingMode=TM_Real + bInitialized=FALSE + MovieInfo=SwfMovie'UDKFrontEnd.udk_manager' + bPauseGameWhileActive=TRUE + bCaptureInput=true +} \ No newline at end of file diff --git a/Development/Src/UTGame/Classes/GFxUDKFrontEnd_Dialog.uc b/Development/Src/UTGame/Classes/GFxUDKFrontEnd_Dialog.uc new file mode 100644 index 0000000..62bdf87 --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxUDKFrontEnd_Dialog.uc @@ -0,0 +1,150 @@ +/********************************************************************** + +Filename : GFxUDKFrontEnd_Dialog.uc +Content : GFx-UDK Front End Implementaiton + +Copyright : (c) 2010 Scaleform Corp. All Rights Reserved. + +Notes : Base class for a dialog for the GFx-UDK front end. + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ +class GFxUDKFrontEnd_Dialog extends GFxUDKFrontEnd_View; + +/** Reference to the dialog MovieClip which contains the dialog animations. */ +var GFxObject DialogMC; + +/** Reference to the title text at the bottom within the footer. */ +var GFxObject TitleTxt; + +/** Reference to the info/description text area. */ +var GFxObject InfoTxt; + +/** Reference to Back button, primarily for returning to previous screen. */ +var GFxClikWidget BackBtn; + +/** Reference to the Accept button, clicked when the user accepts the option presented. */ +var GFxClikWidget AcceptBtn; + +delegate AcceptDelegate(GFxClikWidget.EventData ev); + +/** Fired when a dialog is popped from the stack. */ +function OnViewClosed(); + +/** Mutator for enable/disable sub-components of the dialog. */ +function DisableSubComponents(bool bDisableComponents); + +/** + * Update the view. + * Called whenever the view becomes the topmost view on the viewstack. + */ +function OnTopMostView(optional bool bPlayOpenAnimation = FALSE) +{ + Super.OnTopMostView(bPlayOpenAnimation); +} + +/** Plays the view's open animation. */ +function PlayOpenAnimation(); + +/** Plays the view's close animation. */ +function PlayCloseAnimation(); + +private function SetBackButton(GFxObject InBackButton) +{ + ActionScriptVoid("setBackBtn"); +} + +function SetBackButton_OnPress(delegate EventListener) +{ + BackBtn.RemoveAllEventListeners("CLIK_press"); + BackBtn.RemoveAllEventListeners("press"); + BackBtn.AddEventListener('CLIK_press', EventListener); +} + +/** + * User has selected "Back". + * Pop the dialog from the view stack. + */ +function Select_Back(GFxClikWidget.EventData ev) +{ + if (MenuManager != none) + { + PlayCloseAnimation(); + MenuManager.PopView(); + } +} + +/** Callback when a CLIK widget with enableInitCallback set to TRUE is initialized. Returns TRUE if the widget was handled, FALSE if not. */ +event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) +{ + local bool bResult; + + //`log("Dialog: WidgetInitialized():: WidgetName: " @ WidgetName @ " : " @ WidgetPath @ " : " @ Widget); + switch(WidgetName) + { + // Dialgo's title. + case ('popup_title'): + if (TitleTxt == none) + { + TitleTxt = Widget.GetObject("textField"); + bResult = true; + } + break; + + // Dialog's info / message textField. + case ('popup_info'): + if (InfoTxt == none) + { + InfoTxt = Widget.GetObject("textField"); + bResult = true; + } + break; + + // Dialog's "Back" button + case ('back'): + BackBtn = GFxClikWidget(Widget.GetObject("btn", class'GFxClikWidget')); + SetBackButton_OnPress(Select_Back); + BackBtn.SetString("label", "BACK"); + SetBackButton(BackBtn); + bResult = true; + break; + + // @todo sf: fix naming here. accept != exit. + // Dialog's "Exit" button. + case ('exit'): + if (AcceptBtn == none) + { + AcceptBtn = GFxClikWidget(Widget.GetObject("btn", class'GFxClikWidget')); + bResult = true; + } + break; + + // Dialog itself. + case ('popup'): + if (DialogMC == none) + { + DialogMC = Widget; + bResult = true; + } + break; + + default: + bResult = false; + break; + + } + + return bResult; +} + +defaultproperties +{ + // General + SubWidgetBindings.Add((WidgetName="list",WidgetClass=class'GFxClikWidget')) + SubWidgetBindings.Add((WidgetName="back",WidgetClass=class'GFxClikWidget')) +} \ No newline at end of file diff --git a/Development/Src/UTGame/Classes/GFxUDKFrontEnd_ErrorDialog.uc b/Development/Src/UTGame/Classes/GFxUDKFrontEnd_ErrorDialog.uc new file mode 100644 index 0000000..540c2e3 --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxUDKFrontEnd_ErrorDialog.uc @@ -0,0 +1,59 @@ +/********************************************************************** + +Filename : GFxUDKFrontEnd_ErrorDialog.uc +Content : GFx-UDK Front End Implementaiton + +Copyright : (c) 2010 Scaleform Corp. All Rights Reserved. + +Notes : Dialog class for a basic error dialog with a title, info, + and "OK" button. Parent views setup the dialog using + mutators defined below. + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ +class GFxUDKFrontEnd_ErrorDialog extends GFxUDKFrontEnd_Dialog; + +function OnTopMostView(optional bool bPlayOpenAnimation = FALSE) +{ + Super.OnTopMostView(bPlayOpenAnimation); + MenuManager.SetSelectionFocus(BackBtn); +} + +function SetTitle(string Title) +{ + TitleTxt.SetText(Title); +} + +function SetInfo(string Info) +{ + InfoTxt.SetText(Info); +} + +function SetButtonLabel(string ButtonLabel) +{ + BackBtn.SetString("label", ButtonLabel); +} + +/** Fired when a dialog is popped from the stack. */ +function OnViewClosed() +{ + Super.OnViewClosed(); + DisableSubComponents(false); +} + +/** Mutator for enable/disable sub-components of the view. */ +function DisableSubComponents(bool bDisableComponents) +{ + BackBtn.SetBool("disabled", bDisableComponents); +} + + +defaultproperties +{ + +} \ No newline at end of file diff --git a/Development/Src/UTGame/Classes/GFxUDKFrontEnd_FilterDialog.uc b/Development/Src/UTGame/Classes/GFxUDKFrontEnd_FilterDialog.uc new file mode 100644 index 0000000..8210895 --- /dev/null +++ b/Development/Src/UTGame/Classes/GFxUDKFrontEnd_FilterDialog.uc @@ -0,0 +1,369 @@ +/********************************************************************** + +Filename : GFxUDKFrontEnd_FilterDialog.uc +Content : GFx-UDK Front End Implementaiton + +Copyright : (c) 2010 Scaleform Corp. All Rights Reserved. + +Notes : Implementation of the filter dialog spawned by the join + game view. Allows the player to change the search filters + for multiplayer games. + +Licensees may use this file in accordance with the valid Scaleform +Commercial License Agreement provided with the software. + +This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING +THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR ANY PURPOSE. + +**********************************************************************/ +class GFxUDKFrontEnd_FilterDialog extends GFxUDKFrontEnd_Dialog + config(UI); + +/** Option list present on this tab page. */ +var transient UTUIDataStore_StringList StringListDataStore; + +/** Reference to the game search datastore. */ +var UTDataStore_GameSearchDM SearchDataStore; + +/** Reference to the FilterList component which displays the filters as option steppers. */ +var GFxClikWidget FilterListMC; + +/** Tracks if the filters settings have been changed. */ +var bool bFiltersHaveChanged; + +/** Data provider for filter options list */ +var GFxObject DataProvider; + +/** Data item for the network type filter option */ +var GFxObject NetworkTypeOptionItem; + +/** Data item for the game type filter option */ +var GFxObject GameTypeOptionItem; + +/** Structure which defines a unique menu view to be loaded. */ +struct Option +{ + var string OptionName; + var string OptionLabel; + var array OptionData; +}; + +/** Array of all menu views to be loaded, defined in DefaultUI.ini. */ +var config array