Advertisement
tjd802

Fix EXP Bug

Aug 12th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.27 KB | None | 0 0
  1. MOD_NAME=Fix xp 1.1
  2. AUTHOR=Oakeman
  3. DESCRIPTION=Fixes bug where the squad doesn't get the no dead soldier xp bonus on covert extractions. Bugs where the covert operative on covert extractions doesn't get the no dead bonus and doesn't get psi-xp. Also included a mod to add Cyberdisks and Uber Ethereal as better aliens.
  4.  
  5. UPK_FILE=XComGame.upk
  6.  
  7. OBJECT=XGBattle.Done.AdditionalBonuses:AUTO
  8.  
  9. [REPLACEMENT_CODE]
  10. //missionEvent = ((SpecialMissionBonus()) ? 5 : 4);
  11. 0F 00 <.missionEvent> 45 1B <SpecialMissionBonus> 16 [@] ( 2C 05 ) [@] ( 2C 04 )
  12. //noDeadSoldiers = NoDeadSoldiersBonus();
  13. 14 2D 00 <.noDeadSoldiers> 1B <NoDeadSoldiersBonus> 16
  14. //kSquad = XGBattle_SP(XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle).GetHumanPlayer().GetSquad();
  15. 0F 00 <.kSquad> 19 19 2E <Class.XGBattle_SP> 19 2E <Class.XComTacticalGRI> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComTacticalGRI.m_kBattle> 00 ( 01 <XComTacticalGRI.m_kBattle> ) [@] <XGBattle_SP.GetHumanPlayer.ReturnValue> 00 ( 1B <GetHumanPlayer> 16 ) [@] <XGPlayer.GetSquad.ReturnValue> 00 ( 1B <GetSquad> 16 )
  16. //I = 0;
  17. 0F 00 <.I> 25
  18. [#label001]
  19. //if(I < kSquad.GetNumMembers()) [Loop If]
  20. 07 [@label009] 96 00 <.I> 19 00 <.kSquad> [@] <XGSquadNativeBase.GetNumMembers.ReturnValue> 00 ( 1B <GetNumMembers> 16 ) 16
  21. //kUnit = kSquad.GetMemberAt(I);
  22. 0F 00 <.kUnit> 19 00 <.kSquad> [@] <XGSquadNativeBase.GetMemberAt.ReturnValue> 00 ( 1B <GetMemberAt> 00 <.I> 16 )
  23. //if(kUnit.IsAlive())
  24. 07 [@label008] 19 00 <.kUnit> [@] <XGUnitNativeBase.IsAlive.ReturnValue> 00 ( 1B <IsAlive> 16 )
  25. //kSoldier = XGCharacter_Soldier(kUnit.GetCharacter());
  26. 0F 00 <.kSoldier> 2E <Class.XGCharacter_Soldier> 19 00 <.kUnit> [@] <XGUnit.GetCharacter.ReturnValue> 00 ( 1B <GetCharacter> 16 )
  27. //kSoldier.AddXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.CalcXP(kUnit, missionEvent, none));
  28. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <AddXP> 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.CalcXP.ReturnValue> 00 ( 1B <CalcXP> 00 <.kUnit> 00 <.missionEvent> 2A 16 ) 16 )
  29. //if(noDeadSoldiers)
  30. 07 [@label002] 2D 00 <.noDeadSoldiers>
  31. //kSoldier.AddXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.CalcXP(kUnit, 6, none));
  32. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <AddXP> 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.CalcXP.ReturnValue> 00 ( 1B <CalcXP> 00 <.kUnit> 2C 06 2A 16 ) 16 )
  33. //if((kSoldier.m_kChar.aUpgrades[158] > 0) && kSoldier.m_kChar.aStats[6] < XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.COUNCIL_STAT_MAX)
  34. 07 [@label002] 82 97 1A 2C 9E 35 <XGTacticalGameCoreNativeBase.TCharacter.aUpgrades> <XGTacticalGameCoreNativeBase.TCharacter> 00 00 19 00 <.kSoldier> [@] <XGCharacter.m_kChar> 00 ( 01 <XGCharacter.m_kChar> ) 25 16 18 [@] ( 96 1A 2C 06 35 <XGTacticalGameCoreNativeBase.TCharacter.aStats> <XGTacticalGameCoreNativeBase.TCharacter> 00 00 19 00 <.kSoldier> [@] <XGCharacter.m_kChar> 00 ( 01 <XGCharacter.m_kChar> ) 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCoreNativeBase.COUNCIL_STAT_MAX> 00 ( 01 <XGTacticalGameCoreNativeBase.COUNCIL_STAT_MAX> ) 16 16 )
  35. //kSoldier.m_kChar.aStats[6] += 1;
  36. A1 1A 2C 06 35 <XGTacticalGameCoreNativeBase.TCharacter.aStats> <XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.kSoldier> [@] <XGCharacter.m_kChar> 00 ( 01 <XGCharacter.m_kChar> ) 26 16
  37. //kSoldier.m_kChar.aStats[1] += 1;
  38. A1 1A 26 35 <XGTacticalGameCoreNativeBase.TCharacter.aStats> <XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.kSoldier> [@] <XGCharacter.m_kChar> 00 ( 01 <XGCharacter.m_kChar> ) 2C 01 16
  39. //kSoldier.m_kChar.aStats[7] += 1;
  40. A1 1A 2C 07 35 <XGTacticalGameCoreNativeBase.TCharacter.aStats> <XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.kSoldier> [@] <XGCharacter.m_kChar> 00 ( 01 <XGCharacter.m_kChar> ) 2C 01 16
  41. [#label002]
  42. //kSoldier.AddPsiXP(255);
  43. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <AddPsiXP> 2C FF 16 )
  44. //if(kSoldier.m_kSoldier.iRank < 6)
  45. 07 [@label004] 96 35 <XGTacticalGameCoreNativeBase.TSoldier.iRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 06 16
  46. //if(kSoldier.m_kSoldier.iXP >= XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetXPRequired(kSoldier.m_kSoldier.iRank + 2))
  47. 07 [@label003] 99 35 <XGTacticalGameCoreNativeBase.TSoldier.iXP> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetXPRequired.ReturnValue> 00 ( 1B <GetXPRequired> 92 35 <XGTacticalGameCoreNativeBase.TSoldier.iRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 02 16 16 ) 16
  48. //kSoldier.SetXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetXPRequired(kSoldier.m_kSoldier.iRank + 2) - 1);
  49. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <SetXP> 93 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetXPRequired.ReturnValue> 00 ( 1B <GetXPRequired> 92 35 <XGTacticalGameCoreNativeBase.TSoldier.iRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 02 16 16 ) 26 16 16 )
  50. [#label003]
  51. //else
  52. 06 [@label005]
  53. [#label004]
  54. //if(kSoldier.m_kSoldier.iRank == 6)
  55. 07 [@label005] 9A 35 <XGTacticalGameCoreNativeBase.TSoldier.iRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 06 16
  56. //if(kSoldier.m_kSoldier.iXP >= XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetXPRequired(7))
  57. 07 [@label005] 99 35 <XGTacticalGameCoreNativeBase.TSoldier.iXP> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetXPRequired.ReturnValue> 00 ( 1B <GetXPRequired> 2C 07 16 ) 16
  58. //kSoldier.SetXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetXPRequired(7));
  59. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <SetXP> 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetXPRequired.ReturnValue> 00 ( 1B <GetXPRequired> 2C 07 16 ) 16 )
  60. [#label005]
  61. //if(kSoldier.m_kSoldier.iPsiRank < 6)
  62. 07 [@label007] 96 35 <XGTacticalGameCoreNativeBase.TSoldier.iPsiRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 06 16
  63. //if(kSoldier.m_kSoldier.iPsiXP >= XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetPsiXPRequired(kSoldier.m_kSoldier.iPsiRank + 1))
  64. 07 [@label006] 99 35 <XGTacticalGameCoreNativeBase.TSoldier.iPsiXP> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetPsiXPRequired.ReturnValue> 00 ( 1B <GetPsiXPRequired> 92 35 <XGTacticalGameCoreNativeBase.TSoldier.iPsiRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 01 16 16 ) 16
  65. //kSoldier.SetPsiXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetPsiXPRequired(kSoldier.m_kSoldier.iPsiRank + 1) - 0);
  66. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <SetPsiXP> 93 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetPsiXPRequired.ReturnValue> 00 ( 1B <GetPsiXPRequired> 92 35 <XGTacticalGameCoreNativeBase.TSoldier.iPsiRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 01 16 16 ) 25 16 16 )
  67. [#label006]
  68. //else
  69. 06 [@label008]
  70. [#label007]
  71. //if(kSoldier.m_kSoldier.iPsiRank == 7)
  72. 07 [@label008] 9A 35 <XGTacticalGameCoreNativeBase.TSoldier.iPsiRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 2C 07 16
  73. //if(kSoldier.m_kSoldier.iPsiXP >= XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetPsiXPRequired(6))
  74. 07 [@label008] 99 35 <XGTacticalGameCoreNativeBase.TSoldier.iPsiXP> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 19 00 <.kSoldier> [@] <XGCharacter_Soldier.m_kSoldier> 00 ( 01 <XGCharacter_Soldier.m_kSoldier> ) 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetPsiXPRequired.ReturnValue> 00 ( 1B <GetPsiXPRequired> 2C 06 16 ) 16
  75. //kSoldier.SetPsiXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.GetPsiXPRequired(6));
  76. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <SetPsiXP> 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.GetPsiXPRequired.ReturnValue> 00 ( 1B <GetPsiXPRequired> 2C 06 16 ) 16 )
  77. [#label008]
  78. //++ I;
  79. A5 00 <.I> 16
  80. //goto J0xCE; [Loop Continue]
  81. 06 [@label001]
  82. [#label009]
  83. //if(XGBattle_SPCovertOpsExtraction(XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle) != none)
  84. 07 [@label010] 77 2E <Class.XGBattle_SPCovertOpsExtraction> 19 2E <Class.XComTacticalGRI> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComTacticalGRI.m_kBattle> 00 ( 01 <XComTacticalGRI.m_kBattle> ) 2A 16
  85. //kUnit = XGBattle_SPCovertOpsExtraction(XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle).GetCovertOperative();
  86. 0F 00 <.kUnit> 19 2E <Class.XGBattle_SPCovertOpsExtraction> 19 2E <Class.XComTacticalGRI> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComTacticalGRI.m_kBattle> 00 ( 01 <XComTacticalGRI.m_kBattle> ) [@] <XGBattle_SPCovertOpsExtraction.GetCovertOperative.ReturnValue> 00 ( 1B <GetCovertOperative> 16 )
  87. //if(kUnit != none)
  88. 07 [@label010] 77 00 <.kUnit> 2A 16
  89. //kSoldier = XGCharacter_Soldier(kUnit.GetCharacter());
  90. 0F 00 <.kSoldier> 2E <Class.XGCharacter_Soldier> 19 00 <.kUnit> [@] <XGUnit.GetCharacter.ReturnValue> 00 ( 1B <GetCharacter> 16 )
  91. //kSoldier.AddXP(120);
  92. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <AddXP> 2C 78 16 )
  93.  
  94. //kSoldier.AddPsiXP(255);
  95. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <AddPsiXP> 2C FF 16 )
  96. //if(noDeadSoldiers)
  97. 07 [@IfNoDead] 2D 00 <.noDeadSoldiers>
  98. //kSoldier.AddXP(XComGameReplicationInfo(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kGameCore.CalcXP(kUnit, 6, none));
  99. 19 00 <.kSoldier> [@] <NullRef> 00 ( 1B <AddXP> 19 19 2E <Class.XComGameReplicationInfo> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComGameReplicationInfo.m_kGameCore> 00 ( 01 <XComGameReplicationInfo.m_kGameCore> ) [@] <XGTacticalGameCore.CalcXP.ReturnValue> 00 ( 1B <CalcXP> 00 <.kUnit> 2C 06 2A 16 ) 16 )
  100. [#IfNoDead]
  101.  
  102. [#label010]
  103. //return;
  104. 04 0B
  105. 53
  106.  
  107.  
  108. OBJECT=XGBattle.Done.NoDeadSoldiersBonus:AUTO
  109.  
  110. [REPLACEMENT_CODE]
  111. //kSquad = XGBattle_SP(XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle).GetHumanPlayer().GetSquad();
  112. 0F 00 <.kSquad> 19 19 2E <Class.XGBattle_SP> 19 2E <Class.XComTacticalGRI> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComTacticalGRI.m_kBattle> 00 ( 01 <XComTacticalGRI.m_kBattle> ) [@] <XGBattle_SP.GetHumanPlayer.ReturnValue> 00 ( 1B <GetHumanPlayer> 16 ) [@] <XGPlayer.GetSquad.ReturnValue> 00 ( 1B <GetSquad> 16 )
  113. //I = 0;
  114. 0F 00 <.I> 25
  115. [#label001]
  116. //if(I < kSquad.GetNumMembers()) [Loop If]
  117. 07 [@label003] 96 00 <.I> 19 00 <.kSquad> [@] <XGSquadNativeBase.GetNumMembers.ReturnValue> 00 ( 1B <GetNumMembers> 16 ) 16
  118. //kUnit = kSquad.GetMemberAt(I);
  119. 0F 00 <.kUnit> 19 00 <.kSquad> [@] <XGSquadNativeBase.GetMemberAt.ReturnValue> 00 ( 1B <GetMemberAt> 00 <.I> 16 )
  120. //if(!kUnit.IsDead())
  121. 07 [@label002] 81 19 00 <.kUnit> [@] <XGUnitNativeBase.IsDead.ReturnValue> 00 ( 1B <IsDead> 16 ) 16
  122. //++ healthySoldiers;
  123. A5 00 <.healthySoldiers> 16
  124. [#label002]
  125. //++ I;
  126. A5 00 <.I> 16
  127. //goto J0x9C; [Loop Continue]
  128. 06 [@label001]
  129. [#label003]
  130.  
  131. //if(XGBattle_SPCovertOpsExtraction(XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle) != none)
  132. 07 [@label010] 77 2E <Class.XGBattle_SPCovertOpsExtraction> 19 2E <Class.XComTacticalGRI> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComTacticalGRI.m_kBattle> 00 ( 01 <XComTacticalGRI.m_kBattle> ) 2A 16
  133. //kUnit = XGBattle_SPCovertOpsExtraction(XComTacticalGRI(class'Engine'.static.GetCurrentWorldInfo().GRI).m_kBattle).GetCovertOperative();
  134. 0F 00 <.kUnit> 19 2E <Class.XGBattle_SPCovertOpsExtraction> 19 2E <Class.XComTacticalGRI> 19 12 20 <Engine.Engine> [@] <Engine.Engine.GetCurrentWorldInfo.ReturnValue> 00 ( 1C <Engine.Engine.GetCurrentWorldInfo> 16 ) [@] <Engine.WorldInfo.GRI> 00 ( 01 <Engine.WorldInfo.GRI> ) [@] <XComTacticalGRI.m_kBattle> 00 ( 01 <XComTacticalGRI.m_kBattle> ) [@] <XGBattle_SPCovertOpsExtraction.GetCovertOperative.ReturnValue> 00 ( 1B <GetCovertOperative> 16 )
  135. //if(kUnit != none)
  136. 07 [@label010] 77 00 <.kUnit> 2A 16
  137. //++ healthySoldiers;
  138. A5 00 <.healthySoldiers> 16
  139. [#label010]
  140.  
  141. //return healthySoldiers >= kSquad.GetNumMembers();
  142. 04 99 00 <.healthySoldiers> 19 00 <.kSquad> [@] <XGSquadNativeBase.GetNumMembers.ReturnValue> 00 ( 1B <GetNumMembers> 16 ) 16
  143. //return ReturnValue;
  144. 04 3A <.ReturnValue>
  145. 53
  146.  
  147.  
  148. //Delete everything after this line if you don't want Cyberdisks to give the better alien xp bonus.
  149.  
  150. OBJECT=XGTacticalGameCore.IsBetterAlien:AUTO
  151.  
  152. [REPLACEMENT_CODE]
  153. //bCheckSoldierRank = true;
  154. 49 [@] ( 27 15 )
  155. //iRank = kSoldier.iRank;
  156. 0F 00 <.iRank> 35 <XGTacticalGameCoreNativeBase.TSoldier.iRank> <XGTacticalGameCoreNativeBase.TSoldier> 00 00 00 <.kSoldier>
  157. //iAlien = iTargetCharType;
  158. 0F 00 <.iAlien> 00 <.iTargetCharType>
  159. //if(bCheckSoldierRank)
  160. 07 [@label001] 2D 00 <.bCheckSoldierRank>
  161. //isLesserRank = iRank < 4;
  162. 14 2D 00 <.isLesserRank> 96 00 <.iRank> 2C 04 16
  163. //else
  164. 06 [@label002]
  165. [#label001]
  166. //isLesserRank = true;
  167. 14 2D 00 <.isLesserRank> 27
  168. [#label002]
  169. //if(isLesserRank)
  170. 07 [@label003] 2D 00 <.isLesserRank>
  171. //return ((((((iAlien == 9) || iAlien == 11) || iAlien == 12) || iAlien == 16) || iAlien == 18) || iAlien == 21) || iAlien == 8;
  172. 04 84 84 84 84 84 84 84 9A 00 <.iAlien> 2C 09 16 18 [@] ( 9A 00 <.iAlien> 2C 0B 16 16 ) 18 [@] ( 9A 00 <.iAlien> 2C 0C 16 16 ) 18 [@] ( 9A 00 <.iAlien> 2C 10 16 16 ) 18 [@] ( 9A 00 <.iAlien> 2C 12 16 16 ) 18 [@] ( 9A 00 <.iAlien> 2C 15 16 16 ) 18 [@] ( 9A 00 <.iAlien> 2C 08 16 16 ) 18 [@] ( 9A 00 <.iAlien> 2C 13 16 16 )
  173. [#label003]
  174. //return false;
  175. 04 28
  176. //return ReturnValue;
  177. 04 3A <.ReturnValue>
  178. 53
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement