mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-13 02:42:22 +01:00
Rift tour
This commit is contained in:
@@ -65,6 +65,95 @@ struct FActorSpawnParametersUE500
|
||||
TFunction<void(UObject*)> CustomPreSpawnInitalization; // my favorite
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
||||
static inline PadHexB0 CreateSpawnParameters(ESpawnActorCollisionHandlingMethod SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::Undefined, bool bDeferConstruction = false, UObject* Owner = nullptr)
|
||||
{
|
||||
if (Engine_Version >= 500)
|
||||
{
|
||||
FActorSpawnParametersUE500 addr{};
|
||||
|
||||
addr.Owner = Owner;
|
||||
addr.bDeferConstruction = bDeferConstruction;
|
||||
addr.SpawnCollisionHandlingOverride = SpawnCollisionHandlingOverride;
|
||||
return *(PadHexB0*)&addr;
|
||||
}
|
||||
else
|
||||
{
|
||||
FActorSpawnParameters addr{};
|
||||
|
||||
addr.Owner = Owner;
|
||||
addr.bDeferConstruction = bDeferConstruction;
|
||||
addr.SpawnCollisionHandlingOverride = SpawnCollisionHandlingOverride;
|
||||
return *(PadHexB0*)&addr;
|
||||
}
|
||||
|
||||
return PadHexB0();
|
||||
}
|
||||
|
||||
class UWorld : public UObject, public FNetworkNotify
|
||||
{
|
||||
public:
|
||||
static inline UObject* (*SpawnActorOriginal)(UWorld* World, UClass* Class, FTransform const* UserTransformPtr, void* SpawnParameters);
|
||||
|
||||
template <typename T = AActor>
|
||||
T*& GetGameMode()
|
||||
{
|
||||
static auto AuthorityGameModeOffset = GetOffset("AuthorityGameMode");
|
||||
return this->Get<T*>(AuthorityGameModeOffset);
|
||||
}
|
||||
|
||||
class AGameState*& GetGameState()
|
||||
{
|
||||
static auto GameStateOffset = GetOffset("GameState");
|
||||
return this->Get<class AGameState*>(GameStateOffset);
|
||||
}
|
||||
|
||||
class UNetDriver*& GetNetDriver()
|
||||
{
|
||||
static auto NetDriverOffset = GetOffset("NetDriver");
|
||||
return this->Get<class UNetDriver*>(NetDriverOffset);
|
||||
}
|
||||
|
||||
UGameInstance* GetOwningGameInstance()
|
||||
{
|
||||
static auto OwningGameInstanceOffset = GetOffset("OwningGameInstance");
|
||||
return this->Get<UGameInstance*>(OwningGameInstanceOffset);
|
||||
}
|
||||
|
||||
inline FTimerManager& GetTimerManager()
|
||||
{
|
||||
return GetOwningGameInstance()->GetTimerManager();
|
||||
// return (GetOwningGameInstance() ? GetOwningGameInstance()->GetTimerManager() : *TimerManager);
|
||||
}
|
||||
|
||||
template <typename ActorType>
|
||||
ActorType* SpawnActor(UClass* Class, FTransform UserTransformPtr = FTransform(), PadHexB0 SpawnParameters = CreateSpawnParameters())
|
||||
{
|
||||
auto actor = (ActorType*)SpawnActorOriginal(this, Class, &UserTransformPtr, &SpawnParameters);
|
||||
|
||||
return actor;
|
||||
}
|
||||
|
||||
template <typename ActorType>
|
||||
ActorType* SpawnActor(UClass* Class, FVector Location, FQuat Rotation = FQuat(), FVector Scale3D = FVector(1, 1, 1), PadHexB0 SpawnParameters = CreateSpawnParameters())
|
||||
{
|
||||
FTransform UserTransformPtr{};
|
||||
UserTransformPtr.Translation = Location;
|
||||
UserTransformPtr.Rotation = Rotation;
|
||||
UserTransformPtr.Scale3D = Scale3D;
|
||||
|
||||
auto actor = SpawnActor<ActorType>(Class, UserTransformPtr, SpawnParameters);
|
||||
|
||||
return actor;
|
||||
}
|
||||
|
||||
AWorldSettings* GetWorldSettings(bool bCheckStreamingPersistent = false, bool bChecked = true) const;
|
||||
AWorldSettings* K2_GetWorldSettings(); // DONT USE WHEN POSSIBLE
|
||||
|
||||
void Listen();
|
||||
};
|
||||
#else
|
||||
// #define USE_VIRTUALALLOC_SPAWNPARAMS
|
||||
|
||||
static inline void* CreateSpawnParameters(ESpawnActorCollisionHandlingMethod SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::Undefined, bool bDeferConstruction = false, UObject* Owner = nullptr)
|
||||
@@ -195,4 +284,5 @@ public:
|
||||
AWorldSettings* K2_GetWorldSettings(); // DONT USE WHEN POSSIBLE
|
||||
|
||||
void Listen();
|
||||
};
|
||||
};
|
||||
#endif
|
||||
Reference in New Issue
Block a user