diff --git a/Code/CryEngine/CryPhysics/physicalentity.cpp b/Code/CryEngine/CryPhysics/physicalentity.cpp
index 4f54d21..d0c591a 100644
--- a/Code/CryEngine/CryPhysics/physicalentity.cpp
+++ b/Code/CryEngine/CryPhysics/physicalentity.cpp
@@ -21,7 +21,12 @@
#include "rigidentity.h"
#include "softentity.h"
-RigidBody g_StaticRigidBodies[MAX_PHYS_THREADS];
+RigidBody *GetStaticRigidBodies()
+{
+ static RigidBody g_StaticRigidBodies[MAX_PHYS_THREADS];
+ return g_StaticRigidBodies;
+}
+
CPhysicalEntity g_StaticPhysicalEntity(0);
geom CPhysicalEntity::m_defpart;
diff --git a/Code/CryEngine/CryPhysics/physicalentity.h b/Code/CryEngine/CryPhysics/physicalentity.h
index 084bb6d..77617df 100644
--- a/Code/CryEngine/CryPhysics/physicalentity.h
+++ b/Code/CryEngine/CryPhysics/physicalentity.h
@@ -393,8 +393,8 @@ public:
static int g_nPartsAlloc,g_nJointsAlloc;
};
-extern RigidBody g_StaticRigidBodies[];
-#define g_StaticRigidBody (g_StaticRigidBodies[0])
+extern RigidBody *GetStaticRigidBodies();
+#define g_StaticRigidBody (GetStaticRigidBodies()[0])
extern CPhysicalEntity g_StaticPhysicalEntity;
template<class T> int GetStructSize(T *pstruct);
diff --git a/Code/CryEngine/CryPhysics/rigidbody.cpp b/Code/CryEngine/CryPhysics/rigidbody.cpp
index 49f6460..ab671ab 100644
--- a/Code/CryEngine/CryPhysics/rigidbody.cpp
+++ b/Code/CryEngine/CryPhysics/rigidbody.cpp
@@ -447,14 +447,14 @@ char *AllocSolverTmpBuf(int size)
return 0;
}
-extern RigidBody g_StaticRigidBodies[];
+extern RigidBody *GetStaticRigidBodies();
void RegisterContact(entity_contact *pcontact)
{
int iCaller = get_iCaller_int();
if (!(pcontact->flags & (contact_maintain_count|contact_rope)))
pcontact->pBounceCount = &pcontact->iCount;
- if ((UINT_PTR)pcontact->pbody[1]-(UINT_PTR)g_StaticRigidBodies<(UINT_PTR)(sizeof(RigidBody)*MAX_PHYS_THREADS))
- pcontact->pbody[1] = &g_StaticRigidBodies[iCaller];
+ if ((UINT_PTR)pcontact->pbody[1]-(UINT_PTR)GetStaticRigidBodies()<(UINT_PTR)(sizeof(RigidBody)*MAX_PHYS_THREADS))
+ pcontact->pbody[1] = &GetStaticRigidBodies()[iCaller];
g_pContacts[g_nContacts++] = pcontact;
g_nContacts = min(g_nContacts,(int)(CRY_ARRAY_COUNT(g_pContacts))-1);
}