XIDMaps
Class HarrierDeco

source: C:\XIII\XIDMaps\Classes\HarrierDeco.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Decoration
         |
         +--XIII.VehicleDeco
            |
            +--XIDMaps.HarrierDeco
Direct Known Subclasses:None

class HarrierDeco
extends XIII.VehicleDeco

// //-----------------------------------------------------------
Variables
 Rotator IniRot


Function Summary
 void PostBeginPlay()



Source Code


00001	//
00002	//-----------------------------------------------------------
00003	class HarrierDeco extends VehicleDeco;
00004	
00005	//VAR vector OldLocation;
00006	VAR(Vehicle) bool bStarter;
00007	VAR(Vehicle) float Pitch;
00008	VAR Rotator IniRot;
00009	
00010	function PostBeginPlay()
00011	{
00012		LOCAL int i;
00013	
00014		if (!bStarter)
00015			PartClass[2]=none;
00016		
00017		if(bActorShadows && (Shadow==None) )
00018		{
00019			Shadow = Spawn( class'ShadowProjector', Self, '', Location );
00020			Shadow.ShadowScale = 8;
00021			Shadow.MaxTraceDistance=2500;
00022			Shadow.ShadowIntensity=196;
00023	//		LOG ("SHADOW :"@Shadow);
00024		}
00025		
00026		for ( i=0; i<3; i++ )
00027		{
00028	//		log ("-->"@PartClass[i]);
00029			if ( PartClass[i] != None )
00030			{
00031				VehicleParts[i] = spawn(PartClass[i],self,,Location+(PartOffset[i]>>Rotation)); //.X * X + PartOffset[i].Y * Y + PartOffset[i].Z * Z);
00032				if ( VehicleParts[i] == None )
00033					log("WARNING - "$PartClass[i]$" failed to spawn for "$self);
00034				else
00035				{
00036	//				log("==> new vehicle part spawned"@VehicleParts[i]);
00037					VehicleParts[i].SetRotation(Rotation);
00038					VehicleParts[i].SetBase(self);
00039	//				VehicleParts[i].AttachTag=Tag;
00040					NumParts++;
00041				}
00042			}
00043			else
00044				break;
00045		}
00046	//	log ("########################################################################");
00047		
00048		if (LinkedTo==none)
00049		{
00050			Disable('Tick');
00051		}
00052		else
00053		{
00054			YawOffset=Rotation.Yaw-LinkedTo.Rotation.Yaw;
00055			PositionOffset=(Location-LinkedTo.Location)<<Rotation;
00056		}
00057	//	Super.PostBeginPlay();
00058		IniRot=Rotation;
00059	}
00060	
00061	EVENT Tick(float dt)
00062	{
00063		LOCAL vector vTmp,gSpot, X, Y, Z;
00064		LOCAL rotator r;
00065		LOCAL float SpeedZ, SpeedH;
00066	
00067	//	LOCAL Pawn HitPawn;
00068	//	LOCAL Vector HitLocation,HitNormal,MemHit;
00069	
00070		if (LinkedTo==none)
00071		{
00072			Disable('Tick');
00073			return;
00074		}
00075		gSpot = LinkedTo.Location + PositionOffset;
00076	//	gSpot.z += ZOffset;
00077	
00078		vTmp=gSpot-Location;
00079		SpeedZ=vTmp.Z/dt;
00080		SpeedH=sqrt(vTmp.X*vTmp.X+vTmp.Y*vTmp.Y)/dt;
00081		if ( bStarter )
00082		{
00083			r = LinkedTo.Rotation;
00084			if ( SpeedH<500 )
00085			{
00086				if ( SpeedZ<300 )
00087					r.Pitch= SpeedZ*(SpeedZ-300)*0.25;
00088				else
00089					r.Pitch=0;
00090			}
00091	
00092			GetAxes( r, x, y, z);
00093			r=OrthoRotation(y,-x,z) - Rotation;
00094			r = r * (1-inertia) + Rotation;
00095			SetRotation(r);
00096	//		log( "STARTER"@r );
00097		}
00098		else
00099		{
00100	//		vTmp=vTmp>>IniRot;
00101	//		log (vTmp );
00102			if (SpeedH>500)
00103			{
00104				r.Pitch = Pitch;
00105				r.Roll = 0;
00106				r.Yaw = IniRot.Yaw;
00107				r = r * (1-inertia) + inertia * Rotation;
00108			}
00109			else
00110			{
00111				r.Pitch = 0;
00112				r.Roll = 0;
00113				r.Yaw = IniRot.Yaw;
00114	//			r = LinkedTo.Rotation;
00115	//			GetAxes( r, x, y, z);
00116	//			r=OrthoRotation(y,-x,z) - Rotation;
00117	//			r = r * (1-inertia) + Rotation;
00118			}
00119			SetRotation(r);
00120	//		log( "NO STARTER"@r );
00121		}
00122		SetLocation( gSpot );
00123	//	if (!bStarter)
00124	//		log (LinkedTo.Location+PositionOffset-gSpot);
00125	
00126	}
00127	
00128	// up StaticMesh'Meshes_Vehicules.cokpit'
00129	// down StaticMesh'Meshes_Vehicules.cokpit_stat'
00130	// wheels StaticMesh'Meshes_Vehicules.harrier_roue'
00131	
00132	
00133	
00134	defaultproperties
00135	{
00136	     PartClass(0)=Class'XIDMaps.HarrierMovingCockpit'
00137	     PartClass(1)=Class'XIDMaps.HarrierStaticCockpit'
00138	     PartClass(2)=Class'XIDMaps.HarrierCockpitUndercarriage'
00139	     bHighDetail=True
00140	     DrawType=DT_StaticMesh
00141	     StaticMesh=StaticMesh'Meshes_Vehicules.Harrier'
00142	     CollisionHeight=10.000000
00143	}

End Source Code