Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.cpp15
-rw-r--r--source/gameengine/Expressions/KX_HashedPtr.h2
-rw-r--r--source/gameengine/Ketsji/KX_CameraIpoSGController.cpp14
-rw-r--r--source/gameengine/Ketsji/KX_GameObject.cpp12
-rw-r--r--source/gameengine/Ketsji/KX_IPO_SGController.cpp14
-rw-r--r--source/gameengine/Ketsji/KX_LightIpoSGController.cpp14
-rw-r--r--source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp15
-rw-r--r--source/gameengine/Ketsji/KX_PyConstraintBinding.cpp12
-rw-r--r--source/gameengine/Ketsji/KX_WorldIpoController.cpp14
-rw-r--r--source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h2
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp12
-rw-r--r--source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h2
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp2
-rw-r--r--source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h2
-rw-r--r--source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp2
-rw-r--r--source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h2
-rw-r--r--source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h2
17 files changed, 91 insertions, 47 deletions
diff --git a/source/gameengine/Expressions/KX_HashedPtr.cpp b/source/gameengine/Expressions/KX_HashedPtr.cpp
index d01ff1626d7..b1eeff20766 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.cpp
+++ b/source/gameengine/Expressions/KX_HashedPtr.cpp
@@ -35,18 +35,23 @@
#include <config.h>
#endif
-unsigned int KX_Hash(unsigned int inDWord)
+unsigned int KX_Hash(void * inDWord)
{
- unsigned int key = inDWord;
+#if defined(_WIN64)
+ unsigned __int64 key = (unsigned __int64)inDWord;
+#else
+ unsigned long key = (unsigned long)inDWord;
+#endif
+
key += ~(key << 16);
key ^= (key >> 5);
key += (key << 3);
key ^= (key >> 13);
key += ~(key << 9);
key ^= (key >> 17);
- return key;
-};
+ return (unsigned int)(key & 0xffffffff);
+}
CHashedPtr::CHashedPtr(void* val) : m_valptr(val)
@@ -57,5 +62,5 @@ CHashedPtr::CHashedPtr(void* val) : m_valptr(val)
unsigned int CHashedPtr::hash() const
{
- return KX_Hash((unsigned int) m_valptr);
+ return KX_Hash(m_valptr);
}
diff --git a/source/gameengine/Expressions/KX_HashedPtr.h b/source/gameengine/Expressions/KX_HashedPtr.h
index 18d183c2ae8..06e86854d82 100644
--- a/source/gameengine/Expressions/KX_HashedPtr.h
+++ b/source/gameengine/Expressions/KX_HashedPtr.h
@@ -32,7 +32,7 @@
#ifndef __KX_HASHEDPTR
#define __KX_HASHEDPTR
-unsigned int KX_Hash(unsigned int inDWord);
+unsigned int KX_Hash(void * inDWord);
class CHashedPtr
{
diff --git a/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp b/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
index 425493dbe7e..38064739ff0 100644
--- a/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_CameraIpoSGController.cpp
@@ -38,6 +38,12 @@
#include <config.h>
#endif
+#if defined(_WIN64)
+typedef unsigned __int64 uint_ptr;
+#else
+typedef unsigned long uint_ptr;
+#endif
+
bool KX_CameraIpoSGController::Update(double currentTime)
{
if (m_modified)
@@ -92,10 +98,10 @@ SG_Controller* KX_CameraIpoSGController::GetReplica(class SG_Node* destnode)
iporeplica->AddInterpolator(copyipo);
MT_Scalar* scaal = ((KX_ScalarInterpolator*)*i)->GetTarget();
- int orgbase = (int)this;
- int orgloc = (int)scaal;
- int offset = orgloc-orgbase;
- int newaddrbase = (int)iporeplica + offset;
+ uint_ptr orgbase = (uint_ptr)this;
+ uint_ptr orgloc = (uint_ptr)scaal;
+ uint_ptr offset = orgloc-orgbase;
+ uint_ptr newaddrbase = (uint_ptr)iporeplica + offset;
MT_Scalar* blaptr = (MT_Scalar*) newaddrbase;
copyipo->SetNewTarget((MT_Scalar*)blaptr);
}
diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp
index da81439fccb..93917151932 100644
--- a/source/gameengine/Ketsji/KX_GameObject.cpp
+++ b/source/gameengine/Ketsji/KX_GameObject.cpp
@@ -35,6 +35,12 @@
#include <config.h>
#endif
+#if defined(_WIN64)
+typedef unsigned __int64 uint_ptr;
+#else
+typedef unsigned long uint_ptr;
+#endif
+
#ifdef WIN32
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
@@ -1068,12 +1074,12 @@ PyObject* KX_GameObject::PyGetPhysicsId(PyObject* self,
PyObject* kwds)
{
KX_IPhysicsController* ctrl = GetPhysicsController();
- int physid=0;
+ uint_ptr physid=0;
if (ctrl)
{
- physid= (int)ctrl->GetUserData();
+ physid= (uint_ptr)ctrl->GetUserData();
}
- return PyInt_FromLong(physid);
+ return PyInt_FromLong((long)physid);
}
KX_PYMETHODDEF_DOC(KX_GameObject, getDistanceTo,
diff --git a/source/gameengine/Ketsji/KX_IPO_SGController.cpp b/source/gameengine/Ketsji/KX_IPO_SGController.cpp
index e54fb11dc14..920a65be0fb 100644
--- a/source/gameengine/Ketsji/KX_IPO_SGController.cpp
+++ b/source/gameengine/Ketsji/KX_IPO_SGController.cpp
@@ -35,6 +35,12 @@
#include <config.h>
#endif
+#if defined(_WIN64)
+typedef unsigned __int64 uint_ptr;
+#else
+typedef unsigned long uint_ptr;
+#endif
+
#ifdef WIN32
// This warning tells us about truncation of __long__ stl-generated names.
// It can occasionally cause DevStudio to have internal compiler warnings.
@@ -168,10 +174,10 @@ SG_Controller* KX_IpoSGController::GetReplica(class SG_Node* destnode)
iporeplica->AddInterpolator(copyipo);
MT_Scalar* scaal = ((KX_ScalarInterpolator*)*i)->GetTarget();
- int orgbase = (int)&m_ipo_xform;
- int orgloc = (int)scaal;
- int offset = orgloc-orgbase;
- int newaddrbase = (int)&iporeplica->m_ipo_xform;
+ uint_ptr orgbase = (uint_ptr)&m_ipo_xform;
+ uint_ptr orgloc = (uint_ptr)scaal;
+ uint_ptr offset = orgloc-orgbase;
+ uint_ptr newaddrbase = (uint_ptr)&iporeplica->m_ipo_xform;
newaddrbase += offset;
MT_Scalar* blaptr = (MT_Scalar*) newaddrbase;
copyipo->SetNewTarget((MT_Scalar*)blaptr);
diff --git a/source/gameengine/Ketsji/KX_LightIpoSGController.cpp b/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
index e1bb3329ca8..45865b7a682 100644
--- a/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_LightIpoSGController.cpp
@@ -38,6 +38,12 @@
#include <config.h>
#endif
+#if defined(_WIN64)
+typedef unsigned __int64 uint_ptr;
+#else
+typedef unsigned long uint_ptr;
+#endif
+
bool KX_LightIpoSGController::Update(double currentTime)
{
if (m_modified)
@@ -97,10 +103,10 @@ SG_Controller* KX_LightIpoSGController::GetReplica(class SG_Node* destnode)
iporeplica->AddInterpolator(copyipo);
MT_Scalar* scaal = ((KX_ScalarInterpolator*)*i)->GetTarget();
- int orgbase = (int)this;
- int orgloc = (int)scaal;
- int offset = orgloc-orgbase;
- int newaddrbase = (int)iporeplica + offset;
+ uint_ptr orgbase = (uint_ptr)this;
+ uint_ptr orgloc = (uint_ptr)scaal;
+ uint_ptr offset = orgloc-orgbase;
+ uint_ptr newaddrbase = (uint_ptr)iporeplica + offset;
MT_Scalar* blaptr = (MT_Scalar*) newaddrbase;
copyipo->SetNewTarget((MT_Scalar*)blaptr);
}
diff --git a/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp b/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
index 58c1494724c..b6d385da8ca 100644
--- a/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
+++ b/source/gameengine/Ketsji/KX_ObColorIpoSGController.cpp
@@ -37,6 +37,13 @@
#include <config.h>
#endif
+#if defined(_WIN64)
+typedef unsigned __int64 uint_ptr;
+#else
+typedef unsigned long uint_ptr;
+#endif
+
+
bool KX_ObColorIpoSGController::Update(double currentTime)
{
if (m_modified)
@@ -87,10 +94,10 @@ SG_Controller* KX_ObColorIpoSGController::GetReplica(class SG_Node* destnode)
iporeplica->AddInterpolator(copyipo);
MT_Scalar* scaal = ((KX_ScalarInterpolator*)*i)->GetTarget();
- int orgbase = (int)this;
- int orgloc = (int)scaal;
- int offset = orgloc-orgbase;
- int newaddrbase = (int)iporeplica + offset;
+ uint_ptr orgbase = (uint_ptr)this;
+ uint_ptr orgloc = (uint_ptr)scaal;
+ uint_ptr offset = orgloc-orgbase;
+ uint_ptr newaddrbase = (uint_ptr)iporeplica + offset;
MT_Scalar* blaptr = (MT_Scalar*) newaddrbase;
copyipo->SetNewTarget((MT_Scalar*)blaptr);
}
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
index f11a9a763fe..2317f9c3a9c 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
@@ -352,13 +352,17 @@ static PyObject* gPyRemoveConstraint(PyObject* self,
PyObject* args,
PyObject* kwds)
{
- int constraintid;
-
- if (PyArg_ParseTuple(args,"i",&constraintid))
+#if defined(_WIN64)
+ __int64 constraintid;
+ if (PyArg_ParseTuple(args,"L",&constraintid))
+#else
+ long constraintid;
+ if (PyArg_ParseTuple(args,"l",&constraintid))
+#endif
{
if (PHY_GetActiveEnvironment())
{
- PHY_GetActiveEnvironment()->removeConstraint(constraintid);
+ PHY_GetActiveEnvironment()->removeConstraint((void *)constraintid);
}
}
Py_INCREF(Py_None); return Py_None;
diff --git a/source/gameengine/Ketsji/KX_WorldIpoController.cpp b/source/gameengine/Ketsji/KX_WorldIpoController.cpp
index c4800dc9d91..ded251f391e 100644
--- a/source/gameengine/Ketsji/KX_WorldIpoController.cpp
+++ b/source/gameengine/Ketsji/KX_WorldIpoController.cpp
@@ -37,6 +37,12 @@
#include <config.h>
#endif
+#if defined(_WIN64)
+typedef unsigned __int64 uint_ptr;
+#else
+typedef unsigned long uint_ptr;
+#endif
+
bool KX_WorldIpoController::Update(double currentTime)
{
if (m_modified)
@@ -92,10 +98,10 @@ SG_Controller* KX_WorldIpoController::GetReplica(class SG_Node* destnode)
iporeplica->AddInterpolator(copyipo);
MT_Scalar* scaal = ((KX_ScalarInterpolator*)*i)->GetTarget();
- int orgbase = (int)this;
- int orgloc = (int)scaal;
- int offset = orgloc-orgbase;
- int newaddrbase = (int)iporeplica + offset;
+ uint_ptr orgbase = (uint_ptr)this;
+ uint_ptr orgloc = (uint_ptr)scaal;
+ uint_ptr offset = orgloc-orgbase;
+ uint_ptr newaddrbase = (uint_ptr)iporeplica + offset;
MT_Scalar* blaptr = (MT_Scalar*) newaddrbase;
copyipo->SetNewTarget((MT_Scalar*)blaptr);
}
diff --git a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
index 2214d642d7b..bddc1e03be1 100644
--- a/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
+++ b/source/gameengine/Physics/BlOde/OdePhysicsEnvironment.h
@@ -53,7 +53,7 @@ public:
float pivotX,float pivotY,float pivotZ,
float axisX,float axisY,float axisZ);
- virtual void removeConstraint(int constraintid);
+ virtual void removeConstraint(void * constraintid);
virtual PHY_IPhysicsController* rayTest(PHY_IPhysicsController* ignoreClient,float fromX,float fromY,float fromZ, float toX,float toY,float toZ,
float& hitX,float& hitY,float& hitZ,float& normalX,float& normalY,float& normalZ);
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
index c1bfa43d788..c375abbdb16 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
@@ -192,7 +192,7 @@ void CcdPhysicsEnvironment::removeCcdPhysicsController(CcdPhysicsController* ctr
if ((&p2p->GetRigidBodyA() == ctrl->GetRigidBody() ||
(&p2p->GetRigidBodyB() == ctrl->GetRigidBody())))
{
- removeConstraint(int(p2p));
+ removeConstraint(p2p);
//only 1 constraint per constroller
break;
}
@@ -209,7 +209,7 @@ void CcdPhysicsEnvironment::removeCcdPhysicsController(CcdPhysicsController* ctr
if ((&p2p->GetRigidBodyA() == ctrl->GetRigidBody() ||
(&p2p->GetRigidBodyB() == ctrl->GetRigidBody())))
{
- removeConstraint(int(p2p));
+ removeConstraint(p2p);
//only 1 constraint per constroller
break;
}
@@ -768,13 +768,11 @@ int CcdPhysicsEnvironment::createConstraint(class PHY_IPhysicsController* ctrl
}
-void CcdPhysicsEnvironment::removeConstraint(int constraintid)
+void CcdPhysicsEnvironment::removeConstraint(void* p2p)
{
-
- Point2PointConstraint* p2p = (Point2PointConstraint*) constraintid;
-
std::vector<Point2PointConstraint*>::iterator i =
- std::find(m_p2pConstraints.begin(), m_p2pConstraints.end(), p2p);
+ std::find(m_p2pConstraints.begin(), m_p2pConstraints.end(),
+ (Point2PointConstraint *)p2p);
if (!(i == m_p2pConstraints.end()) )
{
diff --git a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
index 8bacbad8914..8e526421116 100644
--- a/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.h
@@ -75,7 +75,7 @@ class CcdPhysicsEnvironment : public PHY_IPhysicsEnvironment
virtual int createConstraint(class PHY_IPhysicsController* ctrl,class PHY_IPhysicsController* ctrl2,PHY_ConstraintType type,
float pivotX,float pivotY,float pivotZ,
float axisX,float axisY,float axisZ);
- virtual void removeConstraint(int constraintid);
+ virtual void removeConstraint(void* constraintid);
virtual PHY_IPhysicsController* rayTest(PHY_IPhysicsController* ignoreClient, float fromX,float fromY,float fromZ, float toX,float toY,float toZ,
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
index a640acd9b3d..0b6f8a4ded4 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.cpp
@@ -101,7 +101,7 @@ int DummyPhysicsEnvironment::createConstraint(class PHY_IPhysicsController* ct
}
-void DummyPhysicsEnvironment::removeConstraint(int constraintid)
+void DummyPhysicsEnvironment::removeConstraint(void * constraintid)
{
if (constraintid)
{
diff --git a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
index fde27e822d6..0a359feea6d 100644
--- a/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Dummy/DummyPhysicsEnvironment.h
@@ -61,7 +61,7 @@ public:
float pivotX,float pivotY,float pivotZ,
float axisX,float axisY,float axisZ);
- virtual void removeConstraint(int constraintid);
+ virtual void removeConstraint(void * constraintid);
virtual PHY_IPhysicsController* rayTest(PHY_IPhysicsController* ignoreClient, float fromX,float fromY,float fromZ, float toX,float toY,float toZ,
float& hitX,float& hitY,float& hitZ,float& normalX,float& normalY,float& normalZ);
diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp
index 6cd5d513357..8d03fd4b0f4 100644
--- a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp
+++ b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.cpp
@@ -117,7 +117,7 @@ int SumoPhysicsEnvironment::createConstraint(
return constraintid;
}
-void SumoPhysicsEnvironment::removeConstraint(int constraintid)
+void SumoPhysicsEnvironment::removeConstraint(void * constraintid)
{
if (constraintid)
{
diff --git a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
index 62672d8ba48..c93e34825b9 100644
--- a/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
+++ b/source/gameengine/Physics/Sumo/SumoPhysicsEnvironment.h
@@ -66,7 +66,7 @@ public:
float pivotX,float pivotY,float pivotZ,
float axisX,float axisY,float axisZ);
- virtual void removeConstraint(int constraintid);
+ virtual void removeConstraint(void * constraintid);
virtual PHY_IPhysicsController* rayTest(PHY_IPhysicsController* ignoreClient,float fromX,float fromY,float fromZ, float toX,float toY,float toZ,
float& hitX,float& hitY,float& hitZ,float& normalX,float& normalY,float& normalZ);
diff --git a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
index c847e638bce..1158563527a 100644
--- a/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
+++ b/source/gameengine/Physics/common/PHY_IPhysicsEnvironment.h
@@ -83,7 +83,7 @@ class PHY_IPhysicsEnvironment
virtual int createConstraint(class PHY_IPhysicsController* ctrl,class PHY_IPhysicsController* ctrl2,PHY_ConstraintType type,
float pivotX,float pivotY,float pivotZ,
float axisX,float axisY,float axisZ)=0;
- virtual void removeConstraint(int constraintid)=0;
+ virtual void removeConstraint(void * constraintid)=0;
virtual PHY_IPhysicsController* rayTest(PHY_IPhysicsController* ignoreClient, float fromX,float fromY,float fromZ, float toX,float toY,float toZ,
float& hitX,float& hitY,float& hitZ,float& normalX,float& normalY,float& normalZ)=0;