-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathModule.RelatedWorld.cpp
More file actions
59 lines (46 loc) · 1.55 KB
/
Module.RelatedWorld.cpp
File metadata and controls
59 lines (46 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright Delta-Proxima Team (c) 2007-2020
#include "Modules/ModuleManager.h"
#include "RelatedWorldModuleInterface.h"
#include "WorldDirector.h"
#include "FunctionHook.h"
#include "GameFramework/Character.h"
DECLARE_UFUNCTION_HOOK(AActor, OnRep_ReplicatedMovement);
DECLARE_UFUNCTION_HOOK(ACharacter, ClientAdjustPosition);
#if ENGINE_MINOR_VERSION >= 26
DECLARE_UFUNCTION_HOOK(ACharacter, ClientMoveResponsePacked);
#endif
DECLARE_UFUNCTION_HOOK(APlayerController, ServerUpdateCamera);
class FRelatedWorldModule : public IRelatedWorldModule
{
public:
void StartupModule()
{
WorldDirector = NewObject<UWorldDirector>();
check(WorldDirector);
WorldDirector->AddToRoot();
ENABLE_UFUNCTION_HOOK(AActor, OnRep_ReplicatedMovement);
ENABLE_UFUNCTION_HOOK(ACharacter, ClientAdjustPosition);
#if ENGINE_MINOR_VERSION >= 26
ENABLE_UFUNCTION_HOOK(ACharacter, ClientMoveResponsePacked);
#endif
FLAGS_UFUNCTION_HOOK(APlayerController, ServerUpdateCamera, FUNC_Static);
ENABLE_UFUNCTION_HOOK(APlayerController, ServerUpdateCamera);
}
void ShutdownModule()
{
WorldDirector->RemoveFromRoot();
}
virtual FORCEINLINE UWorldDirector* GetWorldDirector() const
{
return WorldDirector;
}
private:
DEFINE_UFUNCTION_HOOK(AActor, OnRep_ReplicatedMovement);
DEFINE_UFUNCTION_HOOK(ACharacter, ClientAdjustPosition);
#if ENGINE_MINOR_VERSION >= 26
DEFINE_UFUNCTION_HOOK(ACharacter, ClientMoveResponsePacked);
#endif
DEFINE_UFUNCTION_HOOK(APlayerController, ServerUpdateCamera);
UWorldDirector* WorldDirector;
};
IMPLEMENT_MODULE(FRelatedWorldModule, RelatedWorld);