XCOM Squadsight Aim Penalty Get Shot Summary Notes

From Nexus Mods Wiki
Jump to: navigation, search

Overview

This contains the development notes for the changes to the function XGAbility_Targeted.GetShotInfo in XComGame.upk.

This change supports the additional of an aim penalty when using Squadsight.

XCOM_Squadsight_Aim_Penalty_Mod

Development Notes

3) XGAbility_Targeted.GetShotSummary

Remove excess calls to XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.

Create new string penalty "SquadSight Long Range" in m_strUnknownWeapon or m_strCheating (cheating is used to force a 100% chance to crit in the CheatManager) in XcomGame.ini

After if(kTarget!= none) add:

m_fDistanceToTarget = VSize(m_kUnit.GetLocation() - GetPrimaryTarget().GetLocation()) / float(64);
if(m_fDistanceToTarget > m_kUnit.m_aCurrentStats[10])
{
	m_iPrimaryMultiShotTarget = Min(-25 + 5*Max(GetPrimaryTarget().m_arrEnemiesSeenBy.Length, 5) - int(1.1*m_fDistanceToTarget), 5)
	kInfo.arrHitPenaltyStrings.AddItem(m_strCheating);
	kInfo.arrHitPenaltyValues.AddItem(m_iPrimaryMultiShotTarget);
}

------------------------------------------------
new hex code: (with expansions)

m_fDistanceToTarget = VSize(m_kUnit.GetLocation() - GetPrimaryTarget().GetLocation())/ float(64);
0F 01 1A BC 00 00 AC E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 19 1B 38 34 00 00 00 00 00 00 16 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16 16 38 3F 2C 40 16 

	0F --let
	01 1A BC 00 00 -- m_fDistanceToTarget
	AF -- "-" operator (float)
		AC -- "/" (float)
			E1 -- VSize
				D8 -- "-"
				19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 -- m_kUnit.GetLocation()
				19 1B 38 34 00 00 00 00 00 00 16 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 -- GetPrimaryTarget().GetLocation()
				16 -- execute "-"
			16 -- execute "VSize"
			38 3F -- int to float
			2C 40 -- int constant 64
		16 -- execute "/"

				AF -- "-" operator (float)
				01 1A BC 00 00 -- m_fDistanceToTarget
				38 3F -- int to float
				1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 -- m_kUnit.m_aCurrentStats[10]
				16 -- execute "-"

	
			m_fDistanceToTarget = VSize(m_kUnit.GetLocation() - m_vTargetLocation)/ float(64);
			0F 01 1A BC 00 00 AC E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 01 12 BC 00 00 19 19 2E FE 2C 40 16

			0F --let
			01 1A BC 00 00 -- m_fDistanceToTarget
			AC -- "/" (float)
			E1 -- VSize
			D8 -- "-"
			19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 -- m_kUnit.GetLocation
			01 12 BC 00 00 -- m_vTargetLocation
			16 -- execute "-"
			16 -- execute "VSize"
			38 3F -- int to float
			2C 40 -- int constant 64
			16 -- execute "/"

			GetPrimaryTarget().GetLocation()
			19 1B 38 34 00 00 00 00 00 00 16 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16
	
if(m_fDistanceToTarget > float(m_kUnit.m_aCurrentStats[10]))
07 B5 06 B1 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 

	07 20 07 -- jump if not
	B1 -- ">" (float)
	01 1A BC 00 00 -- m_fDistanceToTarget
	38 3F -- int to float
	1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 -- m_kUnit.m_aCurrentStats[10]
	16 -- execute ">"

			1E 00 00 C8 42 -- float const 100.0
	

kInfo.arrHitPenaltyStrings.AddItem(m_strCheating);
55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 FF BB 00 00 16 

	55 -- AddItem token
	35 D4 25 00 00 D8 25 00 00 00 00 -- arrHitPenaltyStrings
	48 -- outvariable token
	44 7D 00 00 0A 00 -- kInfo
	01 FF BB 00 00 -- strCheating
	16 -- execute AddItem

	kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyDefense);
	55 -- AddItem token
	35 D4 25 00 00 D8 25 00 00 00 00 -- arrHitPenaltyStrings
	48 -- outvariable token
	44 7D 00 00 0A 00 -- kInfo (0A is virtual size of next line)
	01 06 BC 00 00  -- m_strPenaltyDefense
	16 -- execute AddItem

	01 FF BB 00 00 -- strCheating
	
kInfo.arrHitPenaltyValues.AddItem(Min((5*Min(GetPrimaryTarget().m_arrEnemiesSeenBy.Length, 5) -25) - int (1.1*(m_fDistanceToTarget - float(m_kUnit.m_aCurrentStats[10]))), 5));
55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 09 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E CD CC 8C 3F AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 16 

	55 -- AddItem token
	35 D3 25 00 00 D8 25 00 00 00 00 -- arrHitPenaltyValues
	48 -- outvariable token
	44 7D 00 00 09 00 -- kInfo (9 is virtual size of next line)
		F9 -- "Min" operator
			93 -- "-" subtration operator (int)
				93 -- "-" operator
					90 -- "*" operator (int)
						2C 05 -- int const 5
						F9 -- "Min" operator
							36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 -- GetPrimaryTarget().m_arrEnemiesSeenBy.Length
							2C 05 -- int const 5
						16 -- execute "Min"
					16 -- execute "*"
					2C 19 -- int const 25
				16 -- execute "+"
				38 44 -- float to int
				AB -- "*" operator (float)
					1E CD CC 8C 3F -- float const 1.1
					AF -- "-" operator (float)
						01 1A BC 00 00 -- m_fDistanceToTarget
						38 3F -- int to float
						1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 -- m_kUnit.m_aCurrentStats[10]
					16 -- execute "-"
				16 -- execute "*"
			16 -- execute "-"
			2C 05 -- int const 5
		16 -- execute "Min"
	16 -- execute AddItem

		F9 -- "Min" operator
			93 -- "-" subtration operator (int)
				93 -- "-" operator
					90 -- "*" operator (int)
						2C 05 -- int const 5
						F9 -- "Min" operator
							36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 -- GetPrimaryTarget().m_arrEnemiesSeenBy.Length
							2C 05 -- int const 5
						16 -- execute "Min"
					16 -- execute "*"
					2C 19 -- int const 25
				16 -- execute "+"
				38 44 -- float to int
				AB -- "*" operator (float)
					1E CD CC 8C 3F -- float const 1.1
					AF -- "-" operator (float)
						01 1A BC 00 00 -- m_fDistanceToTarget
						38 3F -- int to float
						1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 -- m_kUnit.m_aCurrentStats[10]
					16 -- execute "-"
				16 -- execute "*"
			16 -- execute "-"
			2C 05 -- int const 5
		16 -- execute "Min"
	

				38 3F -- int to float
				m_kUnit.m_aCurrentStats[10] -- sight radius
				1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00
	
				int(1.1*(m_fDistanceToTarget - 27.5)) (22 file, 26 = 0x1A virtual bytes)
				38 44 AB 1E CD CC 8C 3F AF 01 1A BC 00 00 1E 00 00 DC 41 16 16 25 

						38 44 -- float to int
							AB -- "*" operator (float)
								1E CD CC 8C 3F -- float const 1.1
								AF -- "-" operator (float)
									01 1A BC 00 00 -- m_fDistanceToTarget
									1E 00 00 DC 41 -- float constant 27.5
								16 -- execute "-"
							16 -- execute "*"

	
				GetPrimaryTarget().m_arrEnemiesInRange.Length
				36 19 1B 38 34 00 00 00 00 00 00 16 09 00 97 30 00 00 00 01 97 30 00 00 

							36 -- dynamic array length token
							19 1B 38 34 00 00 00 00 00 00 16 -- GetPrimaryTarget()
							09 00-- virtual size of next element
							97 30 00 00 -- address of m_arrEnemiesInRange
							00 
							01 97 30 00 00 -- class variable m_arrEnemiesInRange
				
							m_kUnit.m_arrEnemiesInRange.Length
							36 19 01 B8 8A 00 00 09 00 97 30 00 00 00 01 97 30 00 00 
							
							36 -- Dynamic Array Length token
							19 -- context token
							01 B8 8A 00 00 -- m_kUnit
							09 00-- virtual size of next element
							97 30 00 00 -- address of m_arrEnemiesInRange
							00 
							01 97 30 00 00 -- class variable m_arrEnemiesInRange
						
							GetPrimaryTarget().m_iCurrentCoverValue
							19 1B 38 34 00 00 00 00 00 00 16 09 00 D6 30 00 00 00 01 D6 30 00 00
						
							19 -- context token
							1B 38 34 00 00 00 00 00 00 16 -- GetPrimaryTarget()
							09 00 -- virtual size of next element
							D6 30 00 00 -- addres of m_iCurrentCoverValue
							00 
							01 D6 30 00 00 -- class variable m_iCurrentCoverValue
							
							36 01 9C 30 00 00 -- m_arrVisibleEnemies.Length

							m_kUnit.m_arrEnemiesSeenBy.Length
							36 19 01 B8 8A 00 00 09 00 9A 30 00 00 00 01 9A 30 00 00
	
			kInfo.arrHitPenaltyValues.AddItem(-iEvasionBonus);
			55 -- AddItem token
			35 D3 25 00 00 D8 25 00 00 00 00 -- arrHitPenaltyValues
			48 -- outvariable token
			44 7D 00 00 0C 00 -- kInfo (0C is virtual size of next line)
			8F -- negative operator
			00 3E 7D 00 00 -- iEvasionBonus
			16 -- execute negative
			16 -- execute AddItem
	
	
------------------------------------------------
new hex code: (without expansions) 

m_fDistanceToTarget = VSize(m_kUnit.GetLocation() - GetPrimaryTarget().GetLocation())/ float(64); (67 file bytes)
0F 01 1A BC 00 00 AC E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 19 1B 38 34 00 00 00 00 00 00 16 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16 16 38 3F 2C 40 16 

if(m_fDistanceToTarget > float(m_kUnit.m_aCurrentStats[10]))
07 B5 06 B1 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 

kInfo.arrHitPenaltyStrings.AddItem(m_strCheating);
55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 FF BB 00 00 16 

kInfo.arrHitPenaltyValues.AddItem(Min((5*Min(GetPrimaryTarget().m_arrEnemiesSeenBy.Length, 5) -25) - int (1.1*(m_fDistanceToTarget - float(m_kUnit.m_aCurrentStats[10]))), 5));
55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 09 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E CD CC 8C 3F AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 16 

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

original hex: (each removal of a XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore. saves 58 bytes -- need to remove four to free up enough space)

header-
5A 7D 00 00 50 55 00 00 00 00 00 00 35 7D 00 00 00 00 00 00 00 00 00 00 45 7D 00 00 00 00 00 00 16 06 00 00 FA D7 00 00 64 1B 00 00 40 12 00 00 

kTag = XGParamTag(XComEngine(class'Engine'.static.GetEngine()).LocalizeContext.FindTag("XGParam"));
kTarget = GetPrimaryTarget();
0F 00 3B 7D 00 00 2E 4C AB 00 00 19 19 2E BC 4D 00 00 12 20 4F FE FF FF 0A 00 D7 F9 FF FF 00 1C F5 FB FF FF 16 09 00 55 4D 00 00 00 01 55 4D 00 00 13 00 00 A9 00 00 00 1B 79 2D 00 00 00 00 00 00 1F 58 47 50 61 72 61 6D 00 16 0F 00 3A 7D 00 00 1B 38 34 00 00 00 00 00 00 16 

if(kTarget != none)
07 0E 04 77 00 3A 7D 00 00 2A 16 

	kResult.strTargetName = kTarget.SafeGetCharacterName();
	kResult.bKillshot = (kTarget.GetUnitHP() + kResult.iPossibleDamage) <= 0;
	coverPerks = kTarget.GetTacticalSenseCoverBonus();
	0F 35 C5 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 19 00 3A 7D 00 00 0A 00 07 33 00 00 00 1B DE 5E 00 00 00 00 00 00 16 14 2D 35 C2 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 98 92 19 00 3A 7D 00 00 0A 00 37 34 00 00 00 1B 2F 35 00 00 00 00 00 00 16 35 C4 25 00 00 C6 25 00 00 00 00 48 45 7D 00 00 16 25 16 0F 00 41 7D 00 00 19 00 3A 7D 00 00 0A 00 D5 33 00 00 00 1B E4 34 00 00 00 00 00 00 16 

	if(kTarget.HasBonus(15) && kTarget.HasHeightAdvantageOver(m_kUnit)) A1 07
	07 11 02 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 

		coverPerks += XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.10;
		A1 00 41 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0A 16 

	if(kTarget.m_bInSmokeBomb)
	07 9E 02 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 

		coverPerks += XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.20;
		A1 00 41 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 

	if(kTarget.m_bInDenseSmoke)
	07 2B 03 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 

		coverPerks += XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.20;
		A1 00 41 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 
	
	coverBonus = Max(0, kTarget.m_iCurrentCoverValue - coverPerks);
	0F 00 40 7D 00 00 FA 25 93 19 00 3A 7D 00 00 09 00 D6 30 00 00 00 01 D6 30 00 00 00 41 7D 00 00 16 16 

	if(kTarget.HasAirEvadeBonus())
	07 ED 03 19 00 3A 7D 00 00 0A 00 D1 33 00 00 00 1B 59 36 00 00 00 00 00 00 16 

		iEvasionBonus = XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.20;
		0F 00 3E 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 

	coverBonus = Max(0, coverBonus - iEvasionBonus);
	0F 00 40 7D 00 00 FA 25 93 00 40 7D 00 00 00 3E 7D 00 00 16 16 

if(ShouldShowPercentage())
07 1C 1B 1B 15 64 00 00 00 00 00 00 16 

	kResult.iPossibleDamage = -GetPossibleDamage();
	0F 35 C4 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 8F 1B 28 34 00 00 00 00 00 00 16 16 

	if(HasProperty(36))
	07 E4 04 1B 9A 36 00 00 00 00 00 00 24 24 16 

		if(iType == 10)
		07 8F 04 9A 01 E2 7B 00 00 2C 0A 16 

			kInfo.arrHitBonusStrings.AddItem(m_strDroneHack);
			55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 00 BC 00 00 16 

		else
		06 B8 04 

			kInfo.arrHitBonusStrings.AddItem(m_strChanceToStun);
			55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 01 BC 00 00 16 

		kInfo.arrHitBonusValues.AddItem(m_iHitChance);
		55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 19 BC 00 00 16 

	else
	06 29 0C 

		if((((iType != 25) && iType != 66) && iType != 22) && iType != 24)
		07 29 0C 82 82 82 9B 01 E2 7B 00 00 2C 19 16 18 0E 00 9B 01 E2 7B 00 00 2C 42 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 16 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 18 16 16 

			kInfo.arrHitBonusStrings.AddItem(m_strBonusAim);
			55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0C BC 00 00 16 

			if(m_kUnit.IsMeleeOnly())
			07 9A 05 19 01 E6 7B 00 00 0A 00 10 34 00 00 00 1B D7 3D 00 00 00 00 00 00 16 

				kInfo.arrHitBonusValues.AddItem(100);
				55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 03 00 2C 64 16 

			else
			06 03 06 

				kInfo.arrHitBonusValues.AddItem(m_kUnit.GetCharacter().m_kChar.aStats[1]);
				55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4A 00 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 

			if(kTarget != none)
			07 29 0C 77 00 3A 7D 00 00 2A 16 

				if(kTarget.GetCharacter().m_kChar.aStats[2] > 0)
				07 F7 06 97 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 25 16 

					kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyDefense);
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 06 BC 00 00 16 

					kInfo.arrHitPenaltyValues.AddItem(-kTarget.GetCharacter().m_kChar.aStats[2]);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4D 00 8F 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 16 

				if(iEvasionBonus > 0)
				07 5D 07 97 00 3E 7D 00 00 25 16 

					kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyEvasion);
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 05 BC 00 00 16 

					kInfo.arrHitPenaltyValues.AddItem(-iEvasionBonus);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 3E 7D 00 00 16 16 

				else
				06 48 09 

					if((coverBonus != 0) && !m_bHasFlank)
					07 48 09 82 9B 00 40 7D 00 00 25 16 18 0D 00 81 2D 01 E6 BB 00 00 16 16 

						if(coverBonus == XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.20)
						07 17 08 9A 00 40 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 

							kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyLowCover);
							55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0A BC 00 00 16 

						else
						06 40 08 

							kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyHighCover);							
							55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 09 BC 00 00 16 

						kInfo.arrHitPenaltyValues.AddItem(-coverBonus);
						55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 40 7D 00 00 16 16 

						if(kTarget.IsAffectedByAbility(38))
						07 48 09 19 00 3A 7D 00 00 0C 00 AD 33 00 00 00 1B C5 3C 00 00 00 00 00 00 2C 26 16 

							kInfo.arrHitPenaltyStrings.AddItem(m_strHunker);
							55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 08 BC 00 00 16 

							kInfo.arrHitPenaltyValues.AddItem((XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.2 - 1) * -coverBonus);
							55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 71 00 90 93 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 02 26 16 8F 00 40 7D 00 00 16 16 16 

				if(kTarget.HasBonus(15) && kTarget.HasHeightAdvantageOver(m_kUnit))
				07 5D 0A 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 

					kInfo.arrHitPenaltyStrings.AddItem(PERKS().GetBonusTitle(15));
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 0F 16 16 

					kInfo.arrHitPenaltyValues.AddItem(-XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.10);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0A 16 16 

				if(kTarget.m_bInSmokeBomb)
				07 43 0B 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 

					kInfo.arrHitPenaltyStrings.AddItem(PERKS().GetBonusTitle(44));
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 2C 16 16 

					kInfo.arrHitPenaltyValues.AddItem(-XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.20);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 16 

				if(kTarget.m_bInDenseSmoke)
				07 29 0C 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 

					kInfo.arrHitPenaltyStrings.AddItem(PERKS().GetBonusTitle(52));
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 34 16 16 

					kInfo.arrHitPenaltyValues.AddItem(-XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.20);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 16 

// rest of function, starting with if(!HasProperty(36))
07 00 1B 81 1B 9A 36 00 00 00 00 00 00 24 24 16 16 07 EA 0E 77 01 E8 BB 00 00 2A 16 0F 00 42 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 94 00 27 10 00 00 00 1B 67 35 00 00 00 00 00 00 26 38 3A 19 01 E8 BB 00 00 0A 00 E8 9B 00 00 00 1B 92 30 00 00 00 00 00 00 16 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 19 19 01 E6 7B 00 00 0A 00 EB B2 00 00 00 1B 0A 34 00 00 00 00 00 00 16 09 00 CC 93 00 00 00 01 CC 93 00 00 16 07 19 0E 97 00 42 7D 00 00 25 16 0F 19 00 3B 7D 00 00 09 00 44 AB 00 00 00 01 44 AB 00 00 35 A9 0D 00 00 AA 0D 00 00 00 00 19 01 E8 BB 00 00 09 00 14 B9 00 00 00 01 14 B9 00 00 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 03 BC 00 00 4A 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 EA 0E 07 EA 0E 96 00 42 7D 00 00 25 16 0F 19 00 3B 7D 00 00 09 00 44 AB 00 00 00 01 44 AB 00 00 35 A9 0D 00 00 AA 0D 00 00 00 00 19 01 E8 BB 00 00 09 00 14 B9 00 00 00 01 14 B9 00 00 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 02 BC 00 00 4A 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 5A 00 00 00 00 00 00 1B 38 31 00 00 00 00 00 00 35 D2 0D 00 00 D5 0D 00 00 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 00 3C 7D 00 00 16 0F 00 3D 7D 00 00 25 07 73 12 96 00 3D 7D 00 00 36 00 3C 7D 00 00 16 0F 00 42 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 86 00 27 10 00 00 00 1B 67 35 00 00 00 00 00 00 26 10 00 3D 7D 00 00 00 3C 7D 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 19 19 01 E6 7B 00 00 0A 00 EB B2 00 00 00 1B 0A 34 00 00 00 00 00 00 16 09 00 CC 93 00 00 00 01 CC 93 00 00 16 0F 19 00 3B 7D 00 00 09 00 44 AB 00 00 00 01 44 AB 00 00 35 A9 0D 00 00 AA 0D 00 00 01 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 1D 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 10 00 3D 7D 00 00 00 3C 7D 00 00 16 07 E4 11 97 00 42 7D 00 00 25 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 03 BC 00 00 4A 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 65 12 07 65 12 96 00 42 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 02 BC 00 00 4A 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 A5 00 3D 7D 00 00 16 06 AD 0F 07 29 13 2D 01 E5 BB 00 00 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 04 BC 00 00 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 61 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 07 00 14 9A 01 E2 7B 00 00 2C 08 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 24 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0F 16 16 06 D4 14 07 D4 14 9A 01 E2 7B 00 00 2C 3E 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 09 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0A 16 16 19 01 E6 7B 00 00 13 00 00 00 00 00 00 1B DA 30 00 00 00 00 00 00 00 39 7D 00 00 16 58 00 39 7D 00 00 00 38 7D 00 00 00 4A D1 16 0F 00 42 7D 00 00 1A 26 19 00 38 7D 00 00 09 00 DB 7B 00 00 00 01 DB 7B 00 00 07 B7 15 97 00 42 7D 00 00 25 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 2E 16 07 2E 16 96 00 42 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 0F 00 42 7D 00 00 1A 2C 0D 19 00 38 7D 00 00 09 00 DB 7B 00 00 00 01 DB 7B 00 00 07 D0 16 97 00 42 7D 00 00 25 16 55 35 D2 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D1 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 31 30 07 CB 17 19 01 E6 7B 00 00 0A 00 B2 33 00 00 00 1B 18 3E 00 00 00 00 00 00 16 0F 00 3F 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 55 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 3F 7D 00 00 16 16 07 71 18 9B 19 01 E6 7B 00 00 09 00 3A AF 00 00 00 01 3A AF 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 6B 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 21 00 8F 19 01 E6 7B 00 00 09 00 3A AF 00 00 00 01 3A AF 00 00 16 16 07 00 1B 77 00 3A 7D 00 00 2A 16 19 00 3A 7D 00 00 13 00 00 00 00 00 00 1B DA 30 00 00 00 00 00 00 00 39 7D 00 00 16 58 00 39 7D 00 00 00 38 7D 00 00 00 4A 06 1A 07 E9 18 9A 19 00 38 7D 00 00 0A 00 1C 7C 00 00 00 1B 1E 35 00 00 00 00 00 00 16 2C 26 16 31 06 06 1A 0F 00 42 7D 00 00 1A 2C 02 19 00 38 7D 00 00 09 00 DB 7B 00 00 00 01 DB 7B 00 00 07 8E 19 96 00 42 7D 00 00 25 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 05 1A 07 05 1A 97 00 42 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 31 30 07 00 1B 82 77 2E DA 72 00 00 19 1C 69 FC FF FF 16 09 00 B9 F9 FF FF 00 01 B9 F9 FF FF 2A 16 18 3F 00 19 2E DA 72 00 00 19 1C 69 FC FF FF 16 09 00 B9 F9 FF FF 00 01 B9 F9 FF FF 0A 00 47 6F 00 00 00 2D 01 47 6F 00 00 16 0F 00 43 7D 00 00 25 07 BC 1A 96 00 43 7D 00 00 36 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 16 A5 00 43 7D 00 00 16 06 83 1A 0F 00 43 7D 00 00 25 07 00 1B 96 00 43 7D 00 00 36 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 16 A5 00 43 7D 00 00 16 06 C7 1A 1B A2 34 00 00 00 00 00 00 48 45 7D 00 00 48 44 7D 00 00 16 07 61 1B 1B 13 64 00 00 00 00 00 00 16 1B DA 31 00 00 00 00 00 00 48 45 7D 00 00 48 44 7D 00 00 16 1B DB 31 00 00 00 00 00 00 48 45 7D 00 00 48 44 7D 00 00 16 04 0B 53

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

new hex: (each removal of a XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore. saves 58 bytes -- need to remove four to free up enough space)

header-
5A 7D 00 00 50 55 00 00 00 00 00 00 35 7D 00 00 00 00 00 00 00 00 00 00 45 7D 00 00 00 00 00 00 16 06 00 00 FA D7 00 00 64 1B 00 00 40 12 00 00 

kTag = XGParamTag(XComEngine(class'Engine'.static.GetEngine()).LocalizeContext.FindTag("XGParam"));
kTarget = GetPrimaryTarget();
0F 00 3B 7D 00 00 2E 4C AB 00 00 19 19 2E BC 4D 00 00 12 20 4F FE FF FF 0A 00 D7 F9 FF FF 00 1C F5 FB FF FF 16 09 00 55 4D 00 00 00 01 55 4D 00 00 13 00 00 A9 00 00 00 1B 79 2D 00 00 00 00 00 00 1F 58 47 50 61 72 61 6D 00 16 0F 00 3A 7D 00 00 1B 38 34 00 00 00 00 00 00 16 

if(kTarget != none) // jump offset corrected to 0x296
07 96 02 77 00 3A 7D 00 00 2A 16 

	kResult.strTargetName = kTarget.SafeGetCharacterName();
	kResult.bKillshot = (kTarget.GetUnitHP() + kResult.iPossibleDamage) <= 0;
	coverPerks = kTarget.GetTacticalSenseCoverBonus();
	0F 35 C5 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 19 00 3A 7D 00 00 0A 00 07 33 00 00 00 1B DE 5E 00 00 00 00 00 00 16 14 2D 35 C2 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 98 92 19 00 3A 7D 00 00 0A 00 37 34 00 00 00 1B 2F 35 00 00 00 00 00 00 16 35 C4 25 00 00 C6 25 00 00 00 00 48 45 7D 00 00 16 25 16 0F 00 41 7D 00 00 19 00 3A 7D 00 00 0A 00 D5 33 00 00 00 1B E4 34 00 00 00 00 00 00 16 

	if(kTarget.HasBonus(15) && kTarget.HasHeightAdvantageOver(m_kUnit)) // jump offset corrected to 0x1B3
	07 B3 01 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 

		coverPerks += 10;
		A1 00 41 7D 00 00 2C 0A 16 

	if(kTarget.m_bInSmokeBomb) // jump offset corrected to 0x1E2
	07 E2 01 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 

		coverPerks += 20;
		A1 00 41 7D 00 00 2C 14 16 

	if(kTarget.m_bInDenseSmoke) // jump offset corrected to 0x211
	07 11 02 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 

		coverPerks += 20;
		A1 00 41 7D 00 00 2C 14 16 
	
	coverBonus = Max(0, kTarget.m_iCurrentCoverValue - coverPerks);
	0F 00 40 7D 00 00 FA 25 93 19 00 3A 7D 00 00 09 00 D6 30 00 00 00 01 D6 30 00 00 00 41 7D 00 00 16 16 

	if(kTarget.HasAirEvadeBonus()) // jump offset corrected to 0x275
	07 75 02 19 00 3A 7D 00 00 0A 00 D1 33 00 00 00 1B 59 36 00 00 00 00 00 00 16 

		iEvasionBonus = 20;
		0F 00 3E 7D 00 00 2C 14 

	coverBonus = Max(0, coverBonus - iEvasionBonus);
	0F 00 40 7D 00 00 FA 25 93 00 40 7D 00 00 00 3E 7D 00 00 16 16 

if(ShouldShowPercentage()) // should not need jump offset correctiong
07 1C 1B 1B 15 64 00 00 00 00 00 00 16 

	kResult.iPossibleDamage = -GetPossibleDamage();
	0F 35 C4 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 8F 1B 28 34 00 00 00 00 00 00 16 16 

	if(HasProperty(36)) // jump offset corrected to 0x36C
	07 6C 03 1B 9A 36 00 00 00 00 00 00 24 24 16 

		if(iType == 10) // jump offset corrected to 0x317
		07 17 03 9A 01 E2 7B 00 00 2C 0A 16 

			kInfo.arrHitBonusStrings.AddItem(m_strDroneHack);
			55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 00 BC 00 00 16 

		else // jump offset corrected to 0x340
		06 40 03 

			kInfo.arrHitBonusStrings.AddItem(m_strChanceToStun);
			55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 01 BC 00 00 16 

		kInfo.arrHitBonusValues.AddItem(m_iHitChance);
		55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 19 BC 00 00 16 

	else // jump offset does not need correction
	06 29 0C 

		if((((iType != 25) && iType != 66) && iType != 22) && iType != 24) // jump offset does not need correction
		07 29 0C 82 82 82 9B 01 E2 7B 00 00 2C 19 16 18 0E 00 9B 01 E2 7B 00 00 2C 42 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 16 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 18 16 16 

			kInfo.arrHitBonusStrings.AddItem(m_strBonusAim);
			55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0C BC 00 00 16 

			if(m_kUnit.IsMeleeOnly()) // jump offset corrected to 0x422
			07 22 04 19 01 E6 7B 00 00 0A 00 10 34 00 00 00 1B D7 3D 00 00 00 00 00 00 16 

				kInfo.arrHitBonusValues.AddItem(100);
				55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 03 00 2C 64 16 

			else // jump offset corrected to 0x48B
			06 8B 04 

				kInfo.arrHitBonusValues.AddItem(m_kUnit.GetCharacter().m_kChar.aStats[1]);
				55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4A 00 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 

			if(kTarget != none) // jump offset does not need correction
			07 29 0C 77 00 3A 7D 00 00 2A 16 

				if(kTarget.GetCharacter().m_kChar.aStats[2] > 0) // jump offset corrected to 0x57F
				07 7F 05 97 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 25 16 

					kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyDefense);
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 06 BC 00 00 16 

					kInfo.arrHitPenaltyValues.AddItem(-kTarget.GetCharacter().m_kChar.aStats[2]);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4D 00 8F 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 16 

				m_fDistanceToTarget = VSize(m_kUnit.GetLocation() - GetPrimaryTarget().GetLocation())/ float(64); (67 file bytes)
				0F 01 1A BC 00 00 AC E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 19 1B 38 34 00 00 00 00 00 00 16 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16 16 38 3F 2C 40 16 

				if(m_fDistanceToTarget > float(m_kUnit.m_aCurrentStats[10]))
				07 B5 06 B1 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 

					kInfo.arrHitPenaltyStrings.AddItem(m_strCheating);
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 FF BB 00 00 16 

					kInfo.arrHitPenaltyValues.AddItem(Min((5*Min(GetPrimaryTarget().m_arrEnemiesSeenBy.Length, 5) -25) - int (1.1*(m_fDistanceToTarget - float(m_kUnit.m_aCurrentStats[10]))), 5));
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 09 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E CD CC 8C 3F AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 16 

					
				null-ops (303 file bytes, 3+9*60 = 543) (need 60 dummy variable calls to match virtual size)
				0B 0B 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 0B 

				if(iEvasionBonus > 0) // jump offset corrected to 0x93A
				07 3A 09 97 00 3E 7D 00 00 25 16 

					kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyEvasion);
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 05 BC 00 00 16 

					kInfo.arrHitPenaltyValues.AddItem(-iEvasionBonus);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 3E 7D 00 00 16 16 

				else // jump offset corrected to 0xA62
				06 62 0A 

					if((coverBonus != 0) && !m_bHasFlank) // jump offset corrected to 0xA62
					07 62 0A 82 9B 00 40 7D 00 00 25 16 18 0D 00 81 2D 01 E6 BB 00 00 16 16 

						if(coverBonus == 20) // jump offset corrected to 0x996
						07 96 09 9A 00 40 7D 00 00 2C 14 16 

							kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyLowCover);
							55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0A BC 00 00 16 

						else // jump offset corrected to 0x9BF
						06 BF 09 

							kInfo.arrHitPenaltyStrings.AddItem(m_strPenaltyHighCover);							
							55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 09 BC 00 00 16 

						kInfo.arrHitPenaltyValues.AddItem(-coverBonus);
						55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 40 7D 00 00 16 16 

						if(kTarget.IsAffectedByAbility(38)) // jump offset corrected to 0xA62
						07 62 0A 19 00 3A 7D 00 00 0C 00 AD 33 00 00 00 1B C5 3C 00 00 00 00 00 00 2C 26 16 

							kInfo.arrHitPenaltyStrings.AddItem(m_strHunker);
							55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 08 BC 00 00 16 

							kInfo.arrHitPenaltyValues.AddItem( -coverBonus);
							55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 71 00 8F 00 40 7D 00 00 16 16 

				if(kTarget.HasBonus(15) && kTarget.HasHeightAdvantageOver(m_kUnit)) // jump offet corrected to 0xB19
				07 19 0B 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 

					kInfo.arrHitPenaltyStrings.AddItem(PERKS().GetBonusTitle(15));
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 0F 16 16 

					kInfo.arrHitPenaltyValues.AddItem(-10);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 2C 0A 16 16 

				if(kTarget.m_bInSmokeBomb) // jump offset corrected to 0xBA1
				07 A1 0B 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 

					kInfo.arrHitPenaltyStrings.AddItem(PERKS().GetBonusTitle(44));
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 2C 16 16 

					kInfo.arrHitPenaltyValues.AddItem(-20);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 2C 14 16 16 

				if(kTarget.m_bInDenseSmoke) // jump offset does not need correction
				07 29 0C 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 

					kInfo.arrHitPenaltyStrings.AddItem(PERKS().GetBonusTitle(52));
					55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 34 16 16 

					kInfo.arrHitPenaltyValues.AddItem(-20);
					55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 2C 14 16 16 

						

// rest of function, starting with if(!HasProperty(36))
07 00 1B 81 1B 9A 36 00 00 00 00 00 00 24 24 16 16 07 EA 0E 77 01 E8 BB 00 00 2A 16 0F 00 42 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 94 00 27 10 00 00 00 1B 67 35 00 00 00 00 00 00 26 38 3A 19 01 E8 BB 00 00 0A 00 E8 9B 00 00 00 1B 92 30 00 00 00 00 00 00 16 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 19 19 01 E6 7B 00 00 0A 00 EB B2 00 00 00 1B 0A 34 00 00 00 00 00 00 16 09 00 CC 93 00 00 00 01 CC 93 00 00 16 07 19 0E 97 00 42 7D 00 00 25 16 0F 19 00 3B 7D 00 00 09 00 44 AB 00 00 00 01 44 AB 00 00 35 A9 0D 00 00 AA 0D 00 00 00 00 19 01 E8 BB 00 00 09 00 14 B9 00 00 00 01 14 B9 00 00 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 03 BC 00 00 4A 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 EA 0E 07 EA 0E 96 00 42 7D 00 00 25 16 0F 19 00 3B 7D 00 00 09 00 44 AB 00 00 00 01 44 AB 00 00 35 A9 0D 00 00 AA 0D 00 00 00 00 19 01 E8 BB 00 00 09 00 14 B9 00 00 00 01 14 B9 00 00 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 02 BC 00 00 4A 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 5A 00 00 00 00 00 00 1B 38 31 00 00 00 00 00 00 35 D2 0D 00 00 D5 0D 00 00 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 00 3C 7D 00 00 16 0F 00 3D 7D 00 00 25 07 73 12 96 00 3D 7D 00 00 36 00 3C 7D 00 00 16 0F 00 42 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 86 00 27 10 00 00 00 1B 67 35 00 00 00 00 00 00 26 10 00 3D 7D 00 00 00 3C 7D 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 19 19 01 E6 7B 00 00 0A 00 EB B2 00 00 00 1B 0A 34 00 00 00 00 00 00 16 09 00 CC 93 00 00 00 01 CC 93 00 00 16 0F 19 00 3B 7D 00 00 09 00 44 AB 00 00 00 01 44 AB 00 00 35 A9 0D 00 00 AA 0D 00 00 01 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 1D 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 10 00 3D 7D 00 00 00 3C 7D 00 00 16 07 E4 11 97 00 42 7D 00 00 25 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 03 BC 00 00 4A 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 65 12 07 65 12 96 00 42 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 2A 00 12 20 70 55 00 00 14 00 6C 55 00 00 00 1B 4A 2B 00 00 00 00 00 00 01 02 BC 00 00 4A 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 A5 00 3D 7D 00 00 16 06 AD 0F 07 29 13 2D 01 E5 BB 00 00 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 04 BC 00 00 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 61 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 07 00 14 9A 01 E2 7B 00 00 2C 08 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 24 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0F 16 16 06 D4 14 07 D4 14 9A 01 E2 7B 00 00 2C 3E 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 09 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0A 16 16 19 01 E6 7B 00 00 13 00 00 00 00 00 00 1B DA 30 00 00 00 00 00 00 00 39 7D 00 00 16 58 00 39 7D 00 00 00 38 7D 00 00 00 4A D1 16 0F 00 42 7D 00 00 1A 26 19 00 38 7D 00 00 09 00 DB 7B 00 00 00 01 DB 7B 00 00 07 B7 15 97 00 42 7D 00 00 25 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 2E 16 07 2E 16 96 00 42 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 0F 00 42 7D 00 00 1A 2C 0D 19 00 38 7D 00 00 09 00 DB 7B 00 00 00 01 DB 7B 00 00 07 D0 16 97 00 42 7D 00 00 25 16 55 35 D2 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D1 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 31 30 07 CB 17 19 01 E6 7B 00 00 0A 00 B2 33 00 00 00 1B 18 3E 00 00 00 00 00 00 16 0F 00 3F 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 55 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 3F 7D 00 00 16 16 07 71 18 9B 19 01 E6 7B 00 00 09 00 3A AF 00 00 00 01 3A AF 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 1A 2C 6B 19 1B 2A 59 00 00 00 00 00 00 16 09 00 09 66 00 00 00 01 09 66 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 21 00 8F 19 01 E6 7B 00 00 09 00 3A AF 00 00 00 01 3A AF 00 00 16 16 07 00 1B 77 00 3A 7D 00 00 2A 16 19 00 3A 7D 00 00 13 00 00 00 00 00 00 1B DA 30 00 00 00 00 00 00 00 39 7D 00 00 16 58 00 39 7D 00 00 00 38 7D 00 00 00 4A 06 1A 07 E9 18 9A 19 00 38 7D 00 00 0A 00 1C 7C 00 00 00 1B 1E 35 00 00 00 00 00 00 16 2C 26 16 31 06 06 1A 0F 00 42 7D 00 00 1A 2C 02 19 00 38 7D 00 00 09 00 DB 7B 00 00 00 01 DB 7B 00 00 07 8E 19 96 00 42 7D 00 00 25 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 06 05 1A 07 05 1A 97 00 42 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 20 00 19 00 38 7D 00 00 0A 00 20 7C 00 00 00 1B 6E 33 00 00 00 00 00 00 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 00 42 7D 00 00 16 31 30 07 00 1B 82 77 2E DA 72 00 00 19 1C 69 FC FF FF 16 09 00 B9 F9 FF FF 00 01 B9 F9 FF FF 2A 16 18 3F 00 19 2E DA 72 00 00 19 1C 69 FC FF FF 16 09 00 B9 F9 FF FF 00 01 B9 F9 FF FF 0A 00 47 6F 00 00 00 2D 01 47 6F 00 00 16 0F 00 43 7D 00 00 25 07 BC 1A 96 00 43 7D 00 00 36 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 16 A5 00 43 7D 00 00 16 06 83 1A 0F 00 43 7D 00 00 25 07 00 1B 96 00 43 7D 00 00 36 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 16 A5 00 43 7D 00 00 16 06 C7 1A 1B A2 34 00 00 00 00 00 00 48 45 7D 00 00 48 44 7D 00 00 16 07 61 1B 1B 13 64 00 00 00 00 00 00 16 1B DA 31 00 00 00 00 00 00 48 45 7D 00 00 48 44 7D 00 00 16 1B DB 31 00 00 00 00 00 00 48 45 7D 00 00 48 44 7D 00 00 16 04 0B 53

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

trial: shorter hex block replace (see if can match original virtual size) (up to but not including: if(!HasProperty(36)) )
original: (original virtual size = 0x1B64)
0F 00 3B 7D 00 00 2E 4C AB 00 00 19 19 2E BC 4D 00 00 12 20 4F FE FF FF 0A 00 D7 F9 FF FF 00 1C F5 FB FF FF 16 09 00 55 4D 00 00 00 01 55 4D 00 00 13 00 00 A9 00 00 00 1B 79 2D 00 00 00 00 00 00 1F 58 47 50 61 72 61 6D 00 16 0F 00 3A 7D 00 00 1B 38 34 00 00 00 00 00 00 16 07 0E 04 77 00 3A 7D 00 00 2A 16 0F 35 C5 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 19 00 3A 7D 00 00 0A 00 07 33 00 00 00 1B DE 5E 00 00 00 00 00 00 16 14 2D 35 C2 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 98 92 19 00 3A 7D 00 00 0A 00 37 34 00 00 00 1B 2F 35 00 00 00 00 00 00 16 35 C4 25 00 00 C6 25 00 00 00 00 48 45 7D 00 00 16 25 16 0F 00 41 7D 00 00 19 00 3A 7D 00 00 0A 00 D5 33 00 00 00 1B E4 34 00 00 00 00 00 00 16 07 11 02 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 A1 00 41 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0A 16 07 9E 02 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 A1 00 41 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 07 2B 03 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 A1 00 41 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 0F 00 40 7D 00 00 FA 25 93 19 00 3A 7D 00 00 09 00 D6 30 00 00 00 01 D6 30 00 00 00 41 7D 00 00 16 16 07 ED 03 19 00 3A 7D 00 00 0A 00 D1 33 00 00 00 1B 59 36 00 00 00 00 00 00 16 0F 00 3E 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 0F 00 40 7D 00 00 FA 25 93 00 40 7D 00 00 00 3E 7D 00 00 16 16 07 1C 1B 1B 15 64 00 00 00 00 00 00 16 0F 35 C4 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 8F 1B 28 34 00 00 00 00 00 00 16 16 07 E4 04 1B 9A 36 00 00 00 00 00 00 24 24 16 07 8F 04 9A 01 E2 7B 00 00 2C 0A 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 00 BC 00 00 16 06 B8 04 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 01 BC 00 00 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 19 BC 00 00 16 06 29 0C 07 29 0C 82 82 82 9B 01 E2 7B 00 00 2C 19 16 18 0E 00 9B 01 E2 7B 00 00 2C 42 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 16 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 18 16 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0C BC 00 00 16 07 9A 05 19 01 E6 7B 00 00 0A 00 10 34 00 00 00 1B D7 3D 00 00 00 00 00 00 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 03 00 2C 64 16 06 03 06 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4A 00 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 07 29 0C 77 00 3A 7D 00 00 2A 16 07 F7 06 97 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 06 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4D 00 8F 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 16 07 5D 07 97 00 3E 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 05 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 3E 7D 00 00 16 16 06 48 09 07 48 09 82 9B 00 40 7D 00 00 25 16 18 0D 00 81 2D 01 E6 BB 00 00 16 16 07 17 08 9A 00 40 7D 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0A BC 00 00 16 06 40 08 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 09 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 40 7D 00 00 16 16 07 48 09 19 00 3A 7D 00 00 0C 00 AD 33 00 00 00 1B C5 3C 00 00 00 00 00 00 2C 26 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 08 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 71 00 90 93 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 02 26 16 8F 00 40 7D 00 00 16 16 16 07 5D 0A 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 0F 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 0A 16 16 07 43 0B 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 2C 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 16 07 29 0C 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 34 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 02 00 F0 2C 00 00 00 2C 14 16 16 


new: 0x1B64  (need 62 dummy variable calls)
0F 00 3B 7D 00 00 2E 4C AB 00 00 19 19 2E BC 4D 00 00 12 20 4F FE FF FF 0A 00 D7 F9 FF FF 00 1C F5 FB FF FF 16 09 00 55 4D 00 00 00 01 55 4D 00 00 13 00 00 A9 00 00 00 1B 79 2D 00 00 00 00 00 00 1F 58 47 50 61 72 61 6D 00 16 0F 00 3A 7D 00 00 1B 38 34 00 00 00 00 00 00 16 07 96 02 77 00 3A 7D 00 00 2A 16 0F 35 C5 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 19 00 3A 7D 00 00 0A 00 07 33 00 00 00 1B DE 5E 00 00 00 00 00 00 16 14 2D 35 C2 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 98 92 19 00 3A 7D 00 00 0A 00 37 34 00 00 00 1B 2F 35 00 00 00 00 00 00 16 35 C4 25 00 00 C6 25 00 00 00 00 48 45 7D 00 00 16 25 16 0F 00 41 7D 00 00 19 00 3A 7D 00 00 0A 00 D5 33 00 00 00 1B E4 34 00 00 00 00 00 00 16 07 B3 01 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 A1 00 41 7D 00 00 2C 0A 16 07 E2 01 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 A1 00 41 7D 00 00 2C 14 16 07 11 02 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 A1 00 41 7D 00 00 2C 14 16 0F 00 40 7D 00 00 FA 25 93 19 00 3A 7D 00 00 09 00 D6 30 00 00 00 01 D6 30 00 00 00 41 7D 00 00 16 16 07 75 02 19 00 3A 7D 00 00 0A 00 D1 33 00 00 00 1B 59 36 00 00 00 00 00 00 16 0F 00 3E 7D 00 00 2C 14 0F 00 40 7D 00 00 FA 25 93 00 40 7D 00 00 00 3E 7D 00 00 16 16 07 1C 1B 1B 15 64 00 00 00 00 00 00 16 0F 35 C4 25 00 00 C6 25 00 00 00 01 48 45 7D 00 00 8F 1B 28 34 00 00 00 00 00 00 16 16 07 6C 03 1B 9A 36 00 00 00 00 00 00 24 24 16 07 17 03 9A 01 E2 7B 00 00 2C 0A 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 00 BC 00 00 16 06 40 03 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 01 BC 00 00 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 19 BC 00 00 16 06 29 0C 07 29 0C 82 82 82 9B 01 E2 7B 00 00 2C 19 16 18 0E 00 9B 01 E2 7B 00 00 2C 42 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 16 16 16 18 0E 00 9B 01 E2 7B 00 00 2C 18 16 16 55 35 D6 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0C BC 00 00 16 07 22 04 19 01 E6 7B 00 00 0A 00 10 34 00 00 00 1B D7 3D 00 00 00 00 00 00 16 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 03 00 2C 64 16 06 8B 04 55 35 D5 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4A 00 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 07 29 0C 77 00 3A 7D 00 00 2A 16 07 7F 05 97 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 06 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 4D 00 8F 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 00 19 19 00 3A 7D 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 16 16 0F 01 1A BC 00 00 AC E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 19 1B 38 34 00 00 00 00 00 00 16 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16 16 38 3F 2C 40 16 07 B5 06 B1 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 FF BB 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 09 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E CD CC 8C 3F AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 16 0B 0B 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 00 3A 7D 00 00 0B 07 3A 09 97 00 3E 7D 00 00 25 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 05 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 3E 7D 00 00 16 16 06 62 0A 07 62 0A 82 9B 00 40 7D 00 00 25 16 18 0D 00 81 2D 01 E6 BB 00 00 16 16 07 96 09 9A 00 40 7D 00 00 2C 14 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 0A BC 00 00 16 06 BF 09 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 09 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0C 00 8F 00 40 7D 00 00 16 16 07 62 0A 19 00 3A 7D 00 00 0C 00 AD 33 00 00 00 1B C5 3C 00 00 00 00 00 00 2C 26 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 0A 00 01 08 BC 00 00 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 71 00 8F 00 40 7D 00 00 16 16 07 19 0B 82 19 00 3A 7D 00 00 0C 00 C6 33 00 00 00 1B 66 36 00 00 00 00 00 00 2C 0F 16 18 29 00 19 00 3A 7D 00 00 13 00 9E 33 00 00 00 1B 7E 36 00 00 00 00 00 00 01 E6 7B 00 00 16 16 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 0F 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 2C 0A 16 16 07 A1 0B 19 00 3A 7D 00 00 0A 00 F9 30 00 00 00 2D 01 F9 30 00 00 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 2C 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 2C 14 16 16 07 29 0C 19 00 3A 7D 00 00 0A 00 FB 30 00 00 00 2D 01 FB 30 00 00 55 35 D4 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 23 00 19 1B 2A 59 00 00 00 00 00 00 16 0C 00 43 66 00 00 00 1B 55 31 00 00 00 00 00 00 2C 34 16 16 55 35 D3 25 00 00 D8 25 00 00 00 00 48 44 7D 00 00 63 00 8F 2C 14 16 16 


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

test out whether squadsight shooter counts as "seeing"

change 1.1 value to 0.0
before: with m_arrEnemiesSeenBy and 1.1
0F 01 11 BC 00 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E CD CC 8C 3F AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16

after: with m_arrEnemiesSeenBy and 0.0
0F 01 11 BC 00 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9A 30 00 00 00 01 9A 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E 00 00 00 00 AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 
after: with m_arrEnemiesInRange and 0.0
0F 01 11 BC 00 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 97 30 00 00 00 01 97 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E 00 00 00 00 AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 
after: with m_arrVisibleEnemies and 0.0
0F 01 11 BC 00 00 F9 93 93 90 2C 05 F9 36 19 1B 38 34 00 00 00 00 00 00 16 09 00 9C 30 00 00 00 01 9C 30 00 00 2C 05 16 16 2C 19 16 38 44 AB 1E 00 00 00 00 AF 01 1A BC 00 00 38 3F 1A 2C 0A 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 16 16 2C 05 16 

m_arrEnemiesSeenBy (9A 30 00 00)-- all enemies that can "see" the unit. This includes enemies that see the unit via squadsight and battlescanners.
m_arrEnemiesInRange (97 30 00 00) -- all enemies that are within range of the unit. This does not include battlescanners.
m_arrVisibleEnemies (9C 30 00 00) -- appears to function the same as m_arrEnemiesInRange. Could give different results in some cases.

References

Referred to by this article:

That refer to this article:

  • <none>