Jump to content

Increased Pod Size


Amineri

Recommended Posts

Thanks!

 

Yes, significant changes are to be expected for EW. But since the idea of 3-aliens pod is still present, I hope core aliens placing code won't change. At least not to much. EXALT missions might be a pain, but good old abductions and UFO raids may require minimal adjustments for old modded code to work.

Link to comment
Share on other sites

  • Replies 107
  • Created
  • Last Reply

Top Posters In This Topic

So I started twiddling with a little bit of hex code prior to EW getting released.

 

The goal of these hex changes is to make upgraded alien more distinctive in appearance.

 

I've managed to scale the entire mesh of an alien (and all of it's carried gear) by any % amount desired.

 

Here is an example of super-sized Sectoids (each dimension was doubled, so twice as tall, twice as wide, etc):

 

 

As you can see it's pretty huge (I made it so huge just to be able to be sure visually that it was being applied).

 

This required only a couple of small hex changes to effect.

1) I created a helper function out of XComUnitPawn.DebugVis:

	savedX = 1.0 + 0.25 * float(GetGameUnit().GetSmokeGrenadeCharges()); // or other level indicator for unit

	foreach super(Actor).ComponentList(class'MeshComponent', MeshComp)
	{
		MeshComp.SetScale(savedX);
	}
	return;

I'm based this initial test on the variable used for setting pod leaders in LW 2.0 (the smoke grenade counter). For testing purposes I set the base scaling factor to 2.0 instead of 1.0.

 

Here is the hex change for DebugVis (these changes are equally valid for vanilla code):

 

 

original hex:
header:
C8 37 00 00 50 55 00 00 00 00 00 00 B8 37 00 00 00 00 00 00 00 00 00 00 BE 37 00 00 00 00 00 00 B3 09 00 00 A9 1F 01 00 C3 05 00 00 D3 03 00 00 

body:
07 C0 05 19 00 BD 37 00 00 0A 00 F7 42 00 00 00 2D 01 F7 42 00 00 0F 00 BC 37 00 00 19 00 BE 37 00 00 22 00 D4 F8 FF FF 00 1C 13 FC FF FF D7 01 DE F8 FF FF 23 00 00 00 00 00 00 00 00 00 00 80 42 16 16 19 00 BE 37 00 00 11 00 00 00 00 00 00 1C 12 FC FF FF 24 FF 24 FF 24 FF 4A 16 19 00 BE 37 00 00 4A 00 00 00 00 00 00 1C 11 FC FF FF 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 B8 35 1B FD FF FF 5B F9 FF FF 00 01 00 BC 37 00 00 1E 00 00 70 41 16 4A 16 19 00 BE 37 00 00 26 00 00 00 00 00 00 1C 15 FC FF FF 38 57 19 17 09 00 04 FA FF FF 00 01 04 FA FF FF 4A 4A 4A 4A 16 19 00 BE 37 00 00 4A 00 00 00 00 00 00 1C 11 FC FF FF 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 B8 35 1B FD FF FF 5B F9 FF FF 00 01 00 BC 37 00 00 1E 00 00 70 41 16 4A 16 19 00 BE 37 00 00 26 00 00 00 00 00 00 1C 15 FC FF FF A8 1F 4C 6F 63 61 74 69 6F 6E 3A 00 38 58 01 DE F8 FF FF 16 4A 4A 4A 4A 16 19 00 BE 37 00 00 4A 00 00 00 00 00 00 1C 11 FC FF FF 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 B8 35 1B FD FF FF 5B F9 FF FF 00 01 00 BC 37 00 00 1E 00 00 70 41 16 4A 16 19 00 BE 37 00 00 48 00 00 00 00 00 00 1C 15 FC FF FF A8 1F 42 75 69 6C 64 69 6E 67 3A 00 38 56 19 19 17 09 00 77 2D 00 00 00 01 77 2D 00 00 09 00 B9 65 00 00 00 01 B9 65 00 00 16 4A 4A 4A 4A 16 0F 00 B9 37 00 00 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 19 00 BE 37 00 00 4A 00 00 00 00 00 00 1C 11 FC FF FF 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 B8 35 1B FD FF FF 5B F9 FF FF 00 01 00 BC 37 00 00 1E 00 00 70 41 16 4A 16 19 00 BE 37 00 00 1F 00 00 00 00 00 00 1C 15 FC FF FF 1F 46 6C 6F 6F 72 20 56 6F 6C 75 6D 65 73 3A 20 00 4A 4A 4A 4A 16 0F 00 BA 37 00 00 25 07 42 04 96 00 BA 37 00 00 36 19 19 17 09 00 77 2D 00 00 00 01 77 2D 00 00 09 00 BA 65 00 00 00 01 BA 65 00 00 16 0F 00 BB 37 00 00 10 00 BA 37 00 00 19 19 17 09 00 77 2D 00 00 00 01 77 2D 00 00 09 00 BA 65 00 00 00 01 BA 65 00 00 19 00 BE 37 00 00 36 00 00 00 00 00 00 1C 11 FC FF FF B8 00 B9 37 00 00 38 3F 2C 64 16 35 1B FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 4A 16 19 00 BE 37 00 00 1E 00 00 00 00 00 00 1C 15 FC FF FF A8 1F 20 00 38 56 00 BB 37 00 00 16 4A 4A 4A 4A 16 A5 00 BA 37 00 00 16 06 3D 03 19 00 BE 37 00 00 4A 00 00 00 00 00 00 1C 11 FC FF FF 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 B8 35 1B FD FF FF 5B F9 FF FF 00 01 00 BC 37 00 00 1E 00 00 70 41 16 4A 16 19 00 BE 37 00 00 4E 00 00 00 00 00 00 1C 15 FC FF FF A8 1F 43 75 72 72 65 6E 74 20 46 6C 6F 6F 72 3A 00 38 53 19 19 17 09 00 77 2D 00 00 00 01 77 2D 00 00 0A 00 E6 65 00 00 00 1B E5 31 00 00 00 00 00 00 16 16 4A 4A 4A 4A 16 19 00 BE 37 00 00 4A 00 00 00 00 00 00 1C 11 FC FF FF 35 1C FD FF FF 5B F9 FF FF 00 00 00 BC 37 00 00 B8 35 1B FD FF FF 5B F9 FF FF 00 01 00 BC 37 00 00 1E 00 00 70 41 16 4A 16 19 00 BE 37 00 00 48 00 00 00 00 00 00 1C 15 FC FF FF A8 1F 49 6E 73 69 64 65 3F 20 00 38 54 19 19 17 09 00 77 2D 00 00 00 01 77 2D 00 00 0A 00 E0 65 00 00 00 1B AD 3D 00 00 00 00 00 00 16 16 4A 4A 4A 4A 16 04 0B 53 


new hex:
header:
C8 37 00 00 50 55 00 00 00 00 00 00 B8 37 00 00 00 00 00 00 00 00 00 00 BE 37 00 00 00 00 00 00 B3 09 00 00 A9 1F 01 00 F3 03 00 00 D3 03 00 00 

body:
0F 00 B9 37 00 00 AE 1E 00 00 80 3F AB 1E 00 00 80 3E 38 3F 19 1B 84 32 00 00 00 00 00 00 16 0A 00 78 33 00 00 00 1B AA 34 00 00 00 00 00 00 16 16 16 2F 1C 7B FC FF FF 20 1A FE FF FF 00 2E 37 00 00 16 82 00 19 00 2E 37 00 00 0F 00 00 00 00 00 00 1B B2 62 00 00 00 00 00 00 00 B9 37 00 00 16 31 30 04 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 53 
 

 

 

 

 

2) To invoke the code requires adding a fairly straightforward call in XGUnit.DebugAnims (renamed in LW 2.0 to #AlUpgrade):

GetPawn().DebugVis(none, none);

The following hex changes add this call (this hex is only valid for LW 2.12beta versions) :

 

 

tag to the end of the existing code:
before:
0F 1A 24 05 01 0D 31 00 00 00 8E B5 00 00 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 

after:
0F 1A 24 05 01 0D 31 00 00 00 8E B5 00 00 19 1B EA 33 00 00 00 00 00 00 16 14 00 00 00 00 00 00 1B F3 14 00 00 00 00 00 00 2A 2A 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 


increase header memory size:
after:
B3 B5 00 00 50 55 00 00 00 00 00 00 93 B5 00 00 00 00 00 00 00 00 00 00 9E B5 00 00 00 00 00 00 FE 23 00 00 84 8D 04 00 86 0C 00 00 02 0A 00 00 

to:
B3 B5 00 00 50 55 00 00 00 00 00 00 93 B5 00 00 00 00 00 00 00 00 00 00 9E B5 00 00 00 00 00 00 FE 23 00 00 84 8D 04 00 8A 0C 00 00 02 0A 00 00 
 

 

 

 

There is another primitive function SetScale3D that scales using a vector, which presumably would allow making much taller skinny sectoids (although the wrist pistol might end up a bit funny).

 

These should be able to be applied as-is to any LW 2.12 beta (not sure about earlier versions but probably is okay). It will make each level of leader 25% bigger than the default aliens (so up to 75% bigger for highest level leader).

Link to comment
Share on other sites

Everything worked surprisingly well.

 

Plasma shots came from the guns, the MindMerge animation came from the head and was scaled appropriately. Even the shadows were scaled up.

 

The main issue I saw was a bit more clipping of the aliens with environmental objects. This would likely be more pronounced with the aliens that start out large like Berserkers and Sectopods.

 

I've been thinking about it a bit and I think I could probably scale up the guns independently of the rest of the alien body. I actually got the idea and some of the code from how the female soldier weapons are scaled to 75% of the size of male soldier weapons.

 

Can't change the weapon mesh for an alien (excepting Mutons with LPR or Plasma Rifle), but the weapons could be scaled up a bit to represent increased damage.

Link to comment
Share on other sites

The weapon mesh would be retrieved with :

PrimaryWeaponMeshComp = GetPrimaryWeaponMeshComponent();
This can then be scaled via :
PrimaryWeaponMeshComp.SetScale(#.###);

If SetScale3D is used instead of SetScale then the weapon can be further distorted, helping to provide the illusion of greater weapon choices for the aliens.

 

-----------------

 

It might even be possible to use this same scaling trick to generate slightly altered version of human weapons.

Link to comment
Share on other sites

This may be a stupid question as i have not messed around with modding this game in sometime now but I got EW and started messing around with it again. My question is why can't i just edit the functions in XGstrategyAI.Determine.......Squad for each mission type to increase the number of aliens or am i missing the point of the thread?

Link to comment
Share on other sites

This may be a stupid question as i have not messed around with modding this game in sometime now but I got EW and started messing around with it again. My question is why can't i just edit the functions in XGstrategyAI.Determine.......Squad for each mission type to increase the number of aliens or am i missing the point of the thread?

 

You certainly can edit those functions to increase the total number of aliens. However in vanilla (EW as well as EU) the maximum number of aliens per pod is 3.

 

Also, in EU (but not yet checked for EW) maps have a maximum number of alien-pod spawn points. For EU abduction maps this varied from 4 to 6. So you could only every guarantee being able to place 4 alien pods on an abduction, with a maximum of 3 aliens per pod, resulting in a guaranteed max of 12 aliens on an abduction map.

 

What this mod does is break the 3 alien/pod limit, allowing up to 8 or 9 aliens per pod. So that same abduction map with 4 pods could now be scaled up to 32-36 aliens. Probably overkill but allows the designer to set the limit instead of the code.

 

----------

 

For EW all of the maps were reworked, so the number of alien-pod spawn points for the maps needs to be re-checked. It's possible Firaxis might have standardized the abduction maps to a consistent number of spawns.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...