Files
Project-Reboot-3.0/Project Reboot 3.0/FortGameplayAbilityAthena_PeriodicItemGrant.h
Milxnor f49f166c2d great
pickup combining, almost finish shadow stones, fix some bugs with gadgets, clean up some code.
2023-05-02 23:48:05 -04:00

58 lines
1.8 KiB
C++

#pragma once
#include "Object.h"
#include "Stack.h"
#include "GameplayAbilityTypes.h"
#include "FortWorldItemDefinition.h"
struct FActiveItemGrantInfo
{
static UStruct* GetStruct()
{
static auto Struct = FindObject<UStruct>("/Script/FortniteGame.ActiveItemGrantInfo");
return Struct;
}
static int GetStructSize() { return GetStruct()->GetPropertiesSize(); }
UFortWorldItemDefinition*& GetItem()
{
static auto ItemOffset = FindOffsetStruct("/Script/FortniteGame.ActiveItemGrantInfo", "Item");
return *(UFortWorldItemDefinition**)(__int64(this) + ItemOffset);
}
FScalableFloat& GetAmountToGive()
{
static auto AmountToGiveOffset = FindOffsetStruct("/Script/FortniteGame.ActiveItemGrantInfo", "AmountToGive");
return *(FScalableFloat*)(__int64(this) + AmountToGiveOffset);
}
FScalableFloat& GetMaxAmount()
{
static auto MaxAmountOffset = FindOffsetStruct("/Script/FortniteGame.ActiveItemGrantInfo", "MaxAmount");
return *(FScalableFloat*)(__int64(this) + MaxAmountOffset);
}
};
class UFortGameplayAbilityAthena_PeriodicItemGrant : public UObject // UFortGameplayAbility
{
public:
static inline void (*StopItemAwardTimersOriginal)(UObject* Context, FFrame& Stack, void* Ret);
static inline void (*StartItemAwardTimersOriginal)(UObject* Context, FFrame& Stack, void* Ret);
TMap<FActiveItemGrantInfo, FScalableFloat>& GetItemsToGrant()
{
static auto ItemsToGrantOffset = GetOffset("ItemsToGrant");
return Get<TMap<FActiveItemGrantInfo, FScalableFloat>>(ItemsToGrantOffset);
}
TArray<FTimerHandle>& GetActiveTimers()
{
static auto ActiveTimersOffset = GetOffset("ActiveTimers");
return Get<TArray<FTimerHandle>>(ActiveTimersOffset);
}
static void StopItemAwardTimersHook(UObject* Context, FFrame& Stack, void* Ret);
static void StartItemAwardTimersHook(UObject* Context, FFrame& Stack, void* Ret);
};