add butterfly event, add dropping to 1.11 and below,

This commit is contained in:
Milxnor
2023-04-02 14:42:00 -04:00
parent f41b18f875
commit c6bbaccf7f
11 changed files with 136 additions and 59 deletions

View File

@@ -2,6 +2,14 @@
#include "FortPlayerController.h"
#include "FortPickup.h"
enum class EFortQuickBars : uint8_t
{
Primary = 0,
Secondary = 1,
Max_None = 2,
EFortQuickBars_MAX = 3
};
UFortItem* CreateItemInstance(AFortPlayerController* PlayerController, UFortItemDefinition* ItemDefinition, int Count)
{
UFortItem* NewItemInstance = ItemDefinition->CreateTemporaryItemInstanceBP(Count);
@@ -140,14 +148,6 @@ std::pair<std::vector<UFortItem*>, std::vector<UFortItem*>> AFortInventory::AddI
if (QuickBars)
{
enum class EFortQuickBars : uint8_t
{
Primary = 0,
Secondary = 1,
Max_None = 2,
EFortQuickBars_MAX = 3
};
struct
{
FGuid Item; // (Parm, IsPlainOldData)
@@ -256,6 +256,27 @@ bool AFortInventory::RemoveItem(const FGuid& ItemGuid, bool* bShouldUpdate, int
}
}
auto FortPlayerController = Cast<AFortPlayerController>(GetOwner());
if (FortPlayerController && Engine_Version < 420)
{
static auto QuickBarsOffset = FortPlayerController->GetOffset("QuickBars", false);
auto QuickBars = FortPlayerController->Get<AActor*>(QuickBarsOffset);
if (QuickBars)
{
static auto ServerRemoveItemInternalFn = FindObject<UFunction>("/Script/FortniteGame.FortQuickBars.ServerRemoveItemInternal");
struct
{
FGuid Item; // (Parm, IsPlainOldData)
bool bFindReplacement; // (Parm, ZeroConstructor, IsPlainOldData)
bool bForce; // (Parm, ZeroConstructor, IsPlainOldData)
} AFortQuickBars_ServerRemoveItemInternal_Params{ItemGuid, false, true};
QuickBars->ProcessEvent(ServerRemoveItemInternalFn, &AFortQuickBars_ServerRemoveItemInternal_Params);
}
}
// todo remove from weaponlist
if (bShouldUpdate)