XIII
Class XIIICorpseStaticMesh

source: C:\XIII\XIII\Classes\XIIICorpseStaticMesh.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Pawn
         |
         +--XIII.XIIIPawn
            |
            +--XIII.XIIICorpseStaticMesh
Direct Known Subclasses:None

class XIIICorpseStaticMesh
extends XIII.XIIIPawn

//----------------------------------------------------------- // //-----------------------------------------------------------
Variables
 CorpseBlood CB
           Inventory to give the corpse
 > InitialInv
           Inventory to give the corpse

States
Dead

Function Summary
 void PostBeginPlay()
     
//_____________________________________________________________________________
 void SetUpInitialInventory(XIIIPawn P)
     
//_____________________________________________________________________________


State Dead Function Summary
 bool IsDead()
 void BeginState()



Source Code


00001	//-----------------------------------------------------------
00002	//
00003	//-----------------------------------------------------------
00004	class XIIICorpseStaticMesh extends XIIIPawn;
00005	
00006	var() array< class<Inventory> > InitialInv;   // Inventory to give the corpse
00007	var CorpseBlood CB;
00008	
00009	//_____________________________________________________________________________
00010	event ParseDynamicLoading(LevelInfo MyLI)
00011	{
00012	    local int i;
00013	
00014	    Log("ParseDynamicLoading Actor="$self);
00015	    for (i=0; i<InitialInv.Length; i++)
00016	    {
00017	      MyLI.ForcedClasses[MyLI.ForcedClasses.Length] = InitialInv[i];
00018	      (InitialInv[i]).Static.StaticParseDynamicLoading(MyLI);
00019	    }
00020	}
00021	
00022	//_____________________________________________________________________________
00023	function PostBeginPlay()
00024	{
00025	//  Super.PostBeginPlay();
00026	    bCanBeGrabbed = false;
00027	    SetupInitialInventory(self);
00028	}
00029	
00030	//_____________________________________________________________________________
00031	function GiveSomething(class<Inventory> ItemClass, XIIIPawn P)
00032	{
00033	  local Inventory NewItem;
00034	
00035	  if( P.FindInventoryType(ItemClass)==None )
00036	  {
00037	    NewItem = Spawn(ItemClass,,,P.Location);
00038	    if( NewItem != None )
00039	      NewItem.GiveTo(P);
00040	  }
00041	  else if ( Class<Ammunition>(ItemClass) != none )
00042	  {
00043	    NewItem = P.FindInventoryType(ItemClass);
00044	    if (NewItem != None)
00045	      Ammunition(NewItem).AmmoAmount += Class<Ammunition>(ItemClass).default.AmmoAmount;
00046	  }
00047	}
00048	
00049	//_____________________________________________________________________________
00050	function SetUpInitialInventory(XIIIPawn P)
00051	{
00052	    local int i;
00053	
00054	    for (i=0; i<InitialInv.Length; i++)
00055	    {
00056	      GiveSomething(InitialInv[i], P);
00057	    }
00058	
00059	}
00060	
00061	//_____________________________________________________________________________
00062	auto state Dead
00063	{
00064	    ignores Trigger, Bump, HitWall, HeadVolumeChange, PhysicsVolumeChange,
00065	        Falling, BreathTimer, Tick, AnimEnd, TakeDamage;
00066	
00067	    function BeginState()
00068	    {
00069	      if ( CB == none )
00070	      {
00071	        if ( (Level.Game != none) && (Level.Game.GoreLevel == 0) )
00072	          CB = spawn(class'CorpseBlood', self,, Location - (CollisionHeight-8) * vect(0,0,1), rotator(vect(0,0,-1)));
00073	//        CB.DetachProjector(true);
00074	//        CB.SetDrawScale(fRand()*0.35 + 0.1);
00075	//        CB.AttachProjector();
00076	      }
00077	    }
00078	    function bool IsDead()
00079	    {
00080	      return true;
00081	    }
00082	}
00083	
00084	
00085	
00086	defaultproperties
00087	{
00088	     bSearchable=True
00089	     bIsDead=True
00090	     Health=0
00091	     ControllerClass=None
00092	     bPhysicsAnimUpdate=False
00093	     bStasis=True
00094	     bAcceptsProjectors=False
00095	     bBlockActors=False
00096	     bBlockPlayers=False
00097	     bProjTarget=False
00098	     bUseCylinderCollision=True
00099	     DrawType=DT_StaticMesh
00100	     StaticMesh=StaticMesh'PersosMorts.GI_Mort'
00101	     CollisionRadius=58.000000
00102	     CollisionHeight=24.000000
00103	}

End Source Code