// September 2015 // Levee Patroller / Dijk Patrouille // This source file is (c) by Deltares. This source file is open source but only available to select users. Do not redistribute without written permission of Stichting Deltares, Delft, The Netherlands. // This header has been automatically generated. //============================================================================= // GeoPawn // Started using RTPawn and MyFirstPawn // // GeoMale pawn definitions // // ------------------------------------------------------------ // Created by Rui Guimaraes // © 2006, Geodelft // // Date Id Modification // 2006-04-13 gui Class created //============================================================================= class GeoHuman extends Pawn; const LANDINGCHANNEL = 12; var name RunningAnims[4]; var name WalkingAnims[4]; var name CrouchAnims[4]; var name FlyingAnims[4]; var name SwimmingAnims[4]; var name StandingTurnAnims[2]; var name CrouchTurnAnims[2]; var name StandIdle; var name CrouchIdle; var name FlyIdle; var name SwimIdle; var name DanceAnim; var name JumpStandingAnim; var name JumpMovingAnim; var name LandAnim; var name FallingAnim; var bool bStartBehindView; var bool bPlayedAnimAction; var ShadowProjector Shadow; // Warning override of Pawn variable because the pawn Shadow is just a projector var globalconfig bool bPlayerShadows; var globalconfig bool bBlobShadow; //============================================================================= // Description: From RTPawn // // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated event PostBeginPlay() { Super.PostBeginPlay(); // if this pawn is supposed to cast dynamic shadows if(bActorShadows && bPlayerShadows) { // Spawn the shadow and intialize it Shadow = Spawn(class'ShadowProjector',None,'',Location); Shadow.ShadowActor = self; Shadow.LightDirection = Normal(vect(1,1,3)); Shadow.LightDistance = 380; Shadow.MaxTraceDistance = 3000; Shadow.bBlobShadow = bBlobShadow; Shadow.InitShadow(); Shadow.UpdateShadow(); } } //============================================================================= // Description: // // Date Id Modification // 2006-04-13 gui Created //============================================================================= event Bump(Actor other) { local KActor kActor; super.Bump(other); if(KActor(other) != None) kActor = KActor(other); else return; kActor.KAddImpulse(Normal(other.Location - Location) * 10000, location); } //============================================================================= // Description: From my First Example // // Date Id Modification // 2006-04-13 gui Created //============================================================================= event TakeDamage( int Damage, Pawn EventInstigator, vector HitLocation, vector Momentum, class DamageType) { // Never take damage or die } //============================================================================= // Description: Called when this pawn is possessed by the controller to see how the view should be // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function bool PointOfView() { return bStartBehindView; } //============================================================================= // Description: Called to have all clients play a single animation in the idle animation channel // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated event SetAnimAction(name NewAction) { AnimAction = NewAction; PlayAnim(NewAction, 1.0, 0.2); //Play on base channel, which is the idle channel bPlayedAnimAction = true; } //============================================================================= // Description: Called whenever a player changes their movement type. // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function PlayMoving() { if ( Physics == PHYS_Flying ) AnimateFlying(); else if ( (Physics == PHYS_Swimming) || ((Physics == PHYS_Falling) && TouchingWaterVolume()) ) AnimateSwimming(); else { if ( bIsCrouched ) { AnimateCrouchWalking(); } else if ( bIsWalking ) { AnimateWalking(); } else { AnimateRunning(); } } } //============================================================================= // Description: Play appropriate idle animations // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function PlayWaiting() { if(Physics == PHYS_Falling) LoopAnim(FallingAnim, 1.0, 0.2); else if(Physics == PHYS_Flying) LoopAnim(FlyIdle, 1.0, 0.2); else if(Physics == PHYS_Swimming) LoopAnim(SwimIdle, 1.0, 0.2); else { if(bIsCrouched) LoopAnim(CrouchIdle, 1.0, 0.2); else LoopAnim(StandIdle, 1.0, 0.2); } } //============================================================================= // Description: Play appropriate running animations // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function AnimateRunning() { MovementAnims[0]=RunningAnims[0]; MovementAnims[1]=RunningAnims[1]; MovementAnims[2]=RunningAnims[2]; MovementAnims[3]=RunningAnims[3]; TurnLeftAnim=StandingTurnAnims[0]; TurnRightAnim=StandingTurnAnims[1]; } //============================================================================= // Description: Play appropriate walking animations // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function AnimateWalking() { MovementAnims[0]=WalkingAnims[0]; MovementAnims[1]=WalkingAnims[1]; MovementAnims[2]=WalkingAnims[2]; MovementAnims[3]=WalkingAnims[3]; TurnLeftAnim=StandingTurnAnims[0]; TurnRightAnim=StandingTurnAnims[1]; } //============================================================================= // Description: Play appropriate crouching animations // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function AnimateCrouchWalking() { MovementAnims[0]=CrouchAnims[0]; MovementAnims[1]=CrouchAnims[1]; MovementAnims[2]=CrouchAnims[2]; MovementAnims[3]=CrouchAnims[3]; TurnLeftAnim=CrouchTurnAnims[0]; TurnRightAnim=CrouchTurnAnims[1]; } //============================================================================= // Description: Play appropriate flying animations // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function AnimateFlying() { MovementAnims[0]=FlyingAnims[0]; MovementAnims[1]=FlyingAnims[1]; MovementAnims[2]=FlyingAnims[2]; MovementAnims[3]=FlyingAnims[3]; } //============================================================================= // Description: Play appropriate swimming animations // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated function AnimateSwimming() { MovementAnims[0]=SwimmingAnims[0]; MovementAnims[1]=SwimmingAnims[1]; MovementAnims[2]=SwimmingAnims[2]; MovementAnims[3]=SwimmingAnims[3]; } //============================================================================= // Description: // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated event PlayFalling() { LoopAnim(FallingAnim, 1.0, 0.5); } //============================================================================= // Description: // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated event PlayJump() { AnimBlendToAlpha(LANDINGCHANNEL,0,0.0); if ( (Acceleration.X != 0) || (Acceleration.Y != 0) ) PlayAnim(JumpMovingAnim, 1.0, 0.1); else PlayAnim(JumpStandingAnim, 1.0, 0.1); } //============================================================================= // Description: // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated event PlayLandingAnimation(float ImpactVel) { AnimBlendParams(LANDINGCHANNEL, 1.0, 2.0, 2.0); PlayAnim(LandAnim, 0.4, 0.0, LANDINGCHANNEL); } //============================================================================= // Description: // // Date Id Modification // 2006-04-13 gui Created //============================================================================= simulated event AnimEnd(int Channel) { Super.AnimEnd(Channel); if(Channel == 0 && bPlayedAnimAction) //idle channel { PlayWaiting(); //reset to normal idle bPlayedAnimAction = false; AnimAction = ''; } if(Channel == LANDINGCHANNEL) { AnimBlendToAlpha(LANDINGCHANNEL,0,0.3); } } //============================================================================= // Description: Sets up Physics correctly for Scripted Sequences // // Date Id Modification // 2006-04-13 gui Created //============================================================================= function SetMovementPhysics() { if (Physics == PHYS_Falling) return; if ( PhysicsVolume.bWaterVolume ) SetPhysics(PHYS_Swimming); else SetPhysics(PHYS_Walking); } //============================================================================= // Description: defaultproperties // // Date Id Modification // 2006-04-13 gui Created //============================================================================= defaultproperties { //These need to be defined or else it will not animate in net play MovementAnims[0]="RunF" MovementAnims[1]="RunB" MovementAnims[2]="RunL" MovementAnims[3]="RunR" TurnLeftAnim="WalkL" TurnRightAnim="WalkR" bPhysicsAnimUpdate=true bSimulateGravity=true bCanCrouch=true bActorShadows=true BaseEyeHeight=100 CollisionRadius=+00040.000000 CollisionHeight=+00100.000000 bStartBehindView=false JumpZ=500 LODBias=5 }