|
4 | 4 | #include <hk330/hkReferencedObject.h> |
5 | 5 | #include <Sonicteam/SoX/Math/Vector.h> |
6 | 6 | #include <hk330/hkArray.h> |
7 | | -#include <hk330/hkMultiThreadCheck.h> |
8 | 7 |
|
9 | 8 | namespace hk330 |
10 | 9 | { |
11 | 10 | class hkpRigidBody; |
12 | 11 | class hkpPhantom; |
13 | 12 | class hkpRigidBody; |
14 | 13 | class hkpCollisionFilter; |
| 14 | + class hkpsimulation; |
| 15 | + class hkpSimulationIsland; |
| 16 | + class hkpBroadPhase; |
| 17 | + class hkpTypedBroadPhaseDispatcher; |
| 18 | + class hkpProcessCollisionInput; |
| 19 | + class hkpCollisionDispatcher; |
| 20 | + class hkpWorldMaintenanceMgr; |
| 21 | + class hkWorldMemoryAvailableWatchDog; |
| 22 | + class hkpPhantomBroadPhaseListener; |
| 23 | + class hkpEntityEntityBroadPhaseListener; |
| 24 | + class hkpBroadPhaseBorderListener; |
| 25 | + class hkpWorldOperationQueue; |
15 | 26 | class hkpWorld : public hkReferencedObject |
16 | 27 | { |
17 | 28 | public: |
18 | | - xpointer<void> m_simulation; |
| 29 | + |
| 30 | + xpointer<hkpsimulation> m_simulation; |
| 31 | + MARATHON_INSERT_PADDING(20); |
19 | 32 | Sonicteam::SoX::Math::Vector m_gravity; |
20 | | - xpointer<void> m_fixedIsland; |
| 33 | + xpointer<hkpSimulationIsland> m_fixedIsland; |
21 | 34 | xpointer<hkpRigidBody> m_fixedRigidBody; |
22 | | - hkArray<void> m_activeSimulationIslands; |
23 | | - hkArray<void> m_inactiveSimulationIslands; |
24 | | - hkArray<void> m_dirtySimulationIslands; |
25 | | - xpointer<void> m_maintenanceMgr; |
26 | | - xpointer<void> m_memoryWatchDog; |
27 | | - MARATHON_INSERT_PADDING(8); |
28 | | - xpointer<void> m_broadPhase; //should be at this right position |
29 | | - xpointer<void> m_broadPhaseDispatcher; |
30 | | - xpointer<void> m_phantomBroadPhaseListener; |
31 | | - xpointer<void> m_entityEntityBroadPhaseListener; |
32 | | - xpointer<void> m_broadPhaseBorderListener; |
33 | | - //xpointer<void> m_multithreadedSimulationJobData; |
34 | | - //Some of them are are not need (duno why) 4 bytes |
35 | | - xpointer<void> m_collisionInput; |
| 35 | + hkArray<hkpSimulationIsland*> m_activeSimulationIslands; |
| 36 | + hkArray<hkpSimulationIsland*> m_inactiveSimulationIslands; |
| 37 | + hkArray<hkpSimulationIsland*> m_dirtySimulationIslands; |
| 38 | + xpointer<hkpWorldMaintenanceMgr> m_maintenanceMgr; |
| 39 | + xpointer<hkWorldMemoryAvailableWatchDog> m_memoryWatchDog; |
| 40 | + xpointer<hkpBroadPhase> m_broadPhase; |
| 41 | + xpointer<hkpTypedBroadPhaseDispatcher> m_broadPhaseDispatcher; |
| 42 | + xpointer<hkpPhantomBroadPhaseListener> m_phantomBroadPhaseListener; |
| 43 | + xpointer<hkpEntityEntityBroadPhaseListener> m_entityEntityBroadPhaseListener; |
| 44 | + xpointer<hkpBroadPhaseBorderListener> m_broadPhaseBorderListener; |
| 45 | + xpointer<hkpProcessCollisionInput> m_collisionInput; |
36 | 46 | xpointer<hkpCollisionFilter> m_collisionFilter; |
37 | | - // xpointer<void> m_collisionDispatcher; probably (not need) |
38 | | - xpointer<void> m_convexListFilter; |
39 | | - MARATHON_INSERT_PADDING(8); |
40 | | - xpointer<void> m_pendingOperations; // Correct Place |
41 | | - be<int32_t> m_pendingOperationsCount; //Correct Place |
| 47 | + xpointer<hkpCollisionDispatcher> m_collisionDispatcher; |
| 48 | + xpointer<hkpWorldOperationQueue> m_pendingOperations; |
| 49 | + be<int32_t> m_pendingOperationsCount; |
42 | 50 | be<int32_t> m_criticalOperationsLockCount; |
43 | 51 | be<int32_t> m_criticalOperationsLockCountForPhantoms; |
44 | | - be<bool> m_blockExecutingPendingOperations; //Correct Place |
45 | | - be<bool> m_criticalOperationsAllowed; |
46 | | - xpointer<void> hkpDebugInfoOnPendingOperationQueues; |
47 | | - be<int32_t> m_pendingOperationQueueCount; |
48 | | - hkMultiThreadCheck m_multiThreadCheck; |
49 | | - be<bool> m_processActionsInSingleThread; |
50 | | - be<uint32_t> m_minDesiredIslandSize; |
51 | | - xpointer<void> m_modifyConstraintCriticalSection; |
52 | | - xpointer<void> m_worldLock; |
53 | | - xpointer<void> m_islandDirtyListCriticalSection; |
54 | | - xpointer<void> m_propertyMasterLock; |
55 | | - be<bool> m_wantSimulationIslands; |
56 | | - be<float> m_snapCollisionToConvexEdgeThreshold; |
57 | | - be<float> m_snapCollisionToConcaveEdgeThreshold; |
58 | | - be<float> m_enableToiWeldRejection; |
59 | | - be<float> m_wantDeactivation; |
60 | | - be<float> m_shouldActivateOnRigidBodyTransformChange; |
61 | | - be<float> m_highFrequencyDeactivationPeriod; |
62 | | - be<float> m_lowFrequencyDeactivationPeriod; |
63 | | - be<float> m_deactivationReferenceDistance; |
64 | | - be<float> m_toiCollisionResponseRotateNormal; |
65 | | - be<int32_t> m_simulationType; |
66 | | - be<uint32_t> m_lastEntityUid; |
67 | | - hkArray<xpointer<hkpPhantom>> hkpPhantom; |
68 | | - |
| 52 | + bool m_blockExecutingPendingOperations; |
| 53 | + bool m_criticalOperationsAllowed; |
| 54 | + MARATHON_INSERT_PADDING(0x2C); |
| 55 | + hkArray<hkpPhantom*> m_phantoms; //0xCC |
69 | 56 |
|
70 | | - //sub_828306E0 |
71 | | - //hkWorld_updateFilterOnSinglePhantom 8282D528 |
72 | | - //hkpworld::internal_executePendingOperations 8282DB94 |
73 | | - void updateCollisionFilterOnPhantom(hk330::hkpPhantom* phantom, uint32_t updateShapeCollectionFilter); |
| 57 | + void updateCollisionFilterOnWorld(uint32_t updateMode,uint32_t updateShapeCollectionFilter) |
| 58 | + { |
| 59 | + GuestToHostFunction<void>(sub_82832910, this, updateMode, updateShapeCollectionFilter); |
| 60 | + } |
74 | 61 | }; |
75 | 62 | } |
0 commit comments