Jump to content

Removing blood sprays


Oxeter

Recommended Posts

My wife and I played the original X-Com "together," and she's been antsy to see this one, but she's squeamish about blood. So I figured out how to remove the streams of blood that erupt on death. Here's where I found them, in case you want to mod them out:

 

xcomgame.upk

class: XComDeathHandler

function: BeginDeath

 

 if(m_selectedDeath.bUseWoundAttachEffect && (m_selectedDeath.WoundAttachEffect != none))
{
	kNumAttachSockets = m_selectedDeath.WoundAttachSockets.Length;
	// End:0x337 Loop:False
	if(kNumAttachSockets > 0)
	{
		kUnitInventory = kUnit.GetInventory();
		// End:0x333
		foreach m_selectedDeath.WoundAttachSockets(kInvLocation)
		{
			kSocketName = kUnitInventory.m_SocketNames[kInvLocation];
			kSocket = DyingPawn.Mesh.GetSocketByName(kSocketName);
			// End:0x332 Loop:False
			if(kSocket != none)
			{
				// End:0x28d Loop:False
				if(m_pawnHitSocket == none)
				{
					m_pawnHitSocket = kSocket;
				}
				kPSC = m_selectedDeath.WoundAttachEffect.PlayOnActor(DyingPawn, DyingPawn.Mesh, kSocket);
				kPSC.SetTickGroup(4);
				m_arrCreatedParticleSystemComponents.AddItem(kPSC);
			}								
		}
	}
	// End:0x439
	else
	{
		m_pawnHitSocket = DyingPawn.Mesh.GetNearestSocket(DyingPawn.TakeHitLocation);
		kPSC = m_selectedDeath.WoundAttachEffect.PlayOnActor(DyingPawn, DyingPawn.Mesh, m_pawnHitSocket);
		kPSC.SetTickGroup(4);
		m_arrCreatedParticleSystemComponents.AddItem(kPSC);
	}
}

 

 

The quick removal is to change the first != to a ==, so that wound effects only play if there is no associated wound effect. Here it is in hex

 

00 00 00 00 01 B0 4A 00 00 18 20 00 77 35 A7 4A
00 00 AB 4A 00 00 00 00 01 B0 4A 00 00 2A 16 16 
0F 00 C0 4A 00 00 36 35 A6 4A 00 00 AB 4A 00 00

 

The != is the 77, change it to 72 and you're set. This doesn't affect stains on armor, the tiny clouds when hit, or the pools under corpses, but it got the wife seal of approval. Hope this helps anyone else with squeamish playmates.

Link to comment
Share on other sites

I assume all shots are programmed to be head shots. If we could type in any script we want, we could probably get the blood to spurt from a random location. However, I don't see how to get there with a hex editor. Interesting idea though.
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...