replace KFGFxObject_TraderItems only if the patch is applied

This commit is contained in:
GenZmeY 2024-01-07 19:40:23 +03:00
parent 56e98896e9
commit 9420515c64
Signed by: GenZmeY
GPG Key ID: 424DA4BC3CB2CF39
5 changed files with 23 additions and 8 deletions

View File

@ -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);
@ -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.");
}
}

View File

@ -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++)
{

View File

@ -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);

View File

@ -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

View File

@ -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;
@ -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)