XCOM Squadsight Aim Penalty Get Shot Summary Notes
Revision as of 04:12, 17 November 2018 by Dubiousintent (talk | contribs) (Added 'Category:Mod_Creation' & 'Category:Mods')
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>