interact + pickuo

This commit is contained in:
Milxnor
2023-03-11 09:24:00 -05:00
parent 59c338c401
commit 07950d84a2
33 changed files with 663 additions and 150 deletions

View File

@@ -1,6 +1,7 @@
#pragma once
#include "Actor.h"
#include "FortPawn.h"
enum class EFortPickupSourceTypeFlag : uint8_t
{
@@ -28,12 +29,61 @@ enum class EFortPickupSpawnSource : uint8_t
ENUM_CLASS_FLAGS(EFortPickupSourceTypeFlag)
struct FFortPickupLocationData
{
AFortPawn*& GetPickupTarget()
{
static auto PickupTargetOffset = FindOffsetStruct("/Script/FortniteGame.FortPickupLocationData", "PickupTarget");
return *(AFortPawn**)(__int64(this) + PickupTargetOffset);
}
float& GetFlyTime()
{
static auto FlyTimeOffset = FindOffsetStruct("/Script/FortniteGame.FortPickupLocationData", "FlyTime");
return *(float*)(__int64(this) + FlyTimeOffset);
}
AFortPawn*& GetItemOwner()
{
static auto ItemOwnerOffset = FindOffsetStruct("/Script/FortniteGame.FortPickupLocationData", "ItemOwner");
return *(AFortPawn**)(__int64(this) + ItemOwnerOffset);
}
FVector& GetStartDirection()
{
static auto StartDirectionOffset = FindOffsetStruct("/Script/FortniteGame.FortPickupLocationData", "StartDirection");
return *(FVector*)(__int64(this) + StartDirectionOffset);
}
FGuid& GetPickupGuid()
{
static auto PickupGuidOffset = FindOffsetStruct("/Script/FortniteGame.FortPickupLocationData", "PickupGuid");
return *(FGuid*)(__int64(this) + PickupGuidOffset);
}
};
class AFortPickup : public AActor
{
public:
static inline char (*CompletePickupAnimationOriginal)(AFortPickup* Pickup);
void TossPickup(FVector FinalLocation, class AFortPawn* ItemOwner, int OverrideMaxStackCount, bool bToss, EFortPickupSourceTypeFlag InPickupSourceTypeFlags, EFortPickupSpawnSource InPickupSpawnSource);
FFortPickupLocationData* GetPickupLocationData()
{
static auto PickupLocationDataOffset = this->GetOffset("PickupLocationData");
return this->GetPtr<FFortPickupLocationData>(PickupLocationDataOffset);
}
FFortItemEntry* GetPrimaryPickupItemEntry()
{
static auto PrimaryPickupItemEntryOffset = this->GetOffset("PrimaryPickupItemEntry");
return this->GetPtr<FFortItemEntry>(PrimaryPickupItemEntryOffset);
}
static AFortPickup* SpawnPickup(class UFortItemDefinition* ItemDef, FVector Location, int Count,
EFortPickupSourceTypeFlag PickupSource = EFortPickupSourceTypeFlag::Other, EFortPickupSpawnSource SpawnSource = EFortPickupSpawnSource::Unset,
int LoadedAmmo = -1, class AFortPawn* Pawn = nullptr);
static char CompletePickupAnimationHook(AFortPickup* Pickup);
};