summaryrefslogtreecommitdiff
path: root/Runtime/Core/Callbacks/PlayerLoopCallbacks.h
blob: 49dd86e3dc3be9f95e1744d39067a4e40a543236 (plain)
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
#pragma once

#include "Runtime/Modules/ExportModules.h"

struct PlayerLookCallbacks
{
	typedef void UpdateFunc ();
	
	PlayerLookCallbacks ();
	
	// Animators
	UpdateFunc* AnimatorFixedUpdateRetargetIKWrite;
	UpdateFunc* AnimatorUpdateRetargetIKWrite;
	UpdateFunc* AnimatorUpdateFKMove;
	UpdateFunc* AnimatorFixedUpdateFKMove;
	
	// Physics
	UpdateFunc* PhysicsFixedUpdate;
	UpdateFunc* PhysicsUpdate;
	UpdateFunc* PhysicsRefreshWhenPaused;
	UpdateFunc* PhysicsSkinnedClothUpdate;
	UpdateFunc* PhysicsResetInterpolatedTransformPosition;
	
	// 2D Physics
	UpdateFunc* Physics2DUpdate;
	UpdateFunc* Physics2DFixedUpdate;
	UpdateFunc* Physics2DResetInterpolatedTransformPosition;
	
	// Navmesh
	UpdateFunc* NavMeshUpdate;
	
	// Legacy Animation
	UpdateFunc* LegacyFixedAnimationUpdate;
	UpdateFunc* LegacyAnimationUpdate;
};
EXPORT_COREMODULE extern PlayerLookCallbacks gPlayerLoopCallbacks;

#define CALL_UPDATE_MODULAR(x)  if (gPlayerLoopCallbacks.x) gPlayerLoopCallbacks.x ();
#define REGISTER_PLAYERLOOP_CALL(name,body) struct name { static void Forward () { body; } };  gPlayerLoopCallbacks.name = name::Forward;