Skip to content

Commit

Permalink
replace KFGFxObject_TraderItems only if the patch is applied
Browse files Browse the repository at this point in the history
  • Loading branch information
GenZmeY committed Jan 7, 2024
1 parent 56e9889 commit 9420515
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 8 deletions.
11 changes: 8 additions & 3 deletions CTI/Classes/CTI.uc
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ private function PostInit()
ServerPatch();
}

Trader.static.OverwriteTraderItems(KFGRI, WeapDefs, LogLevel);
Trader.static.OverwriteTraderItems(KFGRI, WeapDefs, bApplyPatch, LogLevel);

`Log_Info("Trader items:" @ WeapDefs.Length);

Expand Down Expand Up @@ -257,16 +257,21 @@ private function ServerPatch()
}
}

if (KFGRI.TraderItems.class != class'KFGFxObject_TraderItems')
{
`Log_Warn("Custom TraderItems detected:" @ String(KFGRI.TraderItems.class) $ ". There may be compatibility issues.");
}

AutoPurchaseHelper = class<KFPlayerController>(KFGI.PlayerControllerClass).default.PurchaseHelperClass;
if (AutoPurchaseHelper != class'KFPlayerController'.default.PurchaseHelperClass)
{
`Log_Warn("Custom PurchaseHelperClass detected:" @ String(AutoPurchaseHelper) $ ". There may be compatibility issues.");
`Log_Warn("Custom PurchaseHelper detected:" @ String(AutoPurchaseHelper) $ ". There may be compatibility issues.");
}

InventoryManager = class<KFInventoryManager>(KFGI.DefaultPawnClass.default.InventoryManagerClass);
if (InventoryManager != class'KFPawn'.default.InventoryManagerClass)
{
`Log_Warn("Custom InventoryManagerClass detected:" @ String(InventoryManager) $ ". There may be compatibility issues.");
`Log_Warn("Custom InventoryManager detected:" @ String(InventoryManager) $ ". There may be compatibility issues.");
}
}

Expand Down
6 changes: 5 additions & 1 deletion CTI/Classes/CTI_AutoPurchaseHelper.uc
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,11 @@ public function SetWeaponInformation(KFWeapon KFW)
{
local int i;

GetCTI_TraderItems();
if (GetCTI_TraderItems() == None)
{
Super.SetWeaponInformation(KFW);
return;
}

for (i = 0; i < CTI_TraderItems.AllItems.Length; i++)
{
Expand Down
2 changes: 0 additions & 2 deletions CTI/Classes/CTI_GFxMenu_Trader.uc
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,7 @@ public function Callback_BuyOrSellItem()
}
else
{
`log("Callback_BuyOrSellItem: SelectedItemIndex="$SelectedItemIndexInt, MyKFIM.bLogInventory);
ItemInfo = OwnedItemList[SelectedItemIndexInt];
`log("Callback_BuyOrSellItem: ItemInfo="$ItemInfo.DefaultItem.ClassName, MyKFIM.bLogInventory);
MyKFPC.GetPurchaseHelper().SellWeapon(ItemInfo, SelectedItemIndexInt);

SetNewSelectedIndex(OwnedItemList.length);
Expand Down
2 changes: 1 addition & 1 deletion CTI/Classes/CTI_RepInfo.uc
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ private simulated function Finished()
if (KFGRI != None)
{
`Log_Debug("Finished: Trader.static.OverwriteTraderItems");
Trader.static.OverwriteTraderItems(KFGRI, RepArray, LogLevel);
Trader.static.OverwriteTraderItems(KFGRI, RepArray, PatchRequired, LogLevel);
`Log_Info("Trader items successfully synchronized!");
}
else
Expand Down
10 changes: 9 additions & 1 deletion CTI/Classes/Trader.uc
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ public static simulated function Array< class<KFWeaponDefinition> > GenerateWeap
public static simulated function OverwriteTraderItems(
KFGameReplicationInfo KFGRI,
const out Array<class<KFWeaponDefinition> > WeapDefs,
bool ApplyPatch,
E_LogLevel LogLevel)
{
local CTI_GFxObject_TraderItems TraderItemsCTI;
Expand Down Expand Up @@ -188,7 +189,14 @@ public static simulated function OverwriteTraderItems(
TraderItemsCTI.SetItemsInfo(TraderItemsCTI.SaleItems);
TraderItemsCTI.SetItemsInfo(TraderItemsCTI.AllItems);

KFGRI.TraderItems = TraderItemsCTI;
if (ApplyPatch)
{
KFGRI.TraderItems = TraderItemsCTI;
}
else
{
KFGRI.TraderItems.SaleItems = TraderItemsCTI.SaleItems;
}
}

private static function bool WeaponClassIsUnique(String WeaponClassPath, const out Array<class<KFWeaponDefinition> > WeapDefs, E_LogLevel LogLevel)
Expand Down

0 comments on commit 9420515

Please sign in to comment.