- fix for BGE warnings
authorCampbell Barton <ideasman42@gmail.com>
Wed, 19 Aug 2009 10:26:43 +0000 (10:26 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 19 Aug 2009 10:26:43 +0000 (10:26 +0000)
- when C++ uses guardedalloc SYS_DeleteSystem was called after MEM_printmemlist(), making it look like there was a leak.

19 files changed:
intern/string/STR_String.h
source/blender/windowmanager/intern/wm_init_exit.c
source/gameengine/Converter/BL_ArmatureObject.cpp
source/gameengine/Converter/BL_ShapeDeformer.cpp
source/gameengine/Converter/KX_BlenderScalarInterpolator.cpp
source/gameengine/Converter/KX_BlenderScalarInterpolator.h
source/gameengine/Converter/KX_BlenderSceneConverter.cpp
source/gameengine/Converter/KX_IpoConvert.cpp
source/gameengine/Ketsji/KX_CameraActuator.cpp
source/gameengine/Ketsji/KX_GameObject.cpp
source/gameengine/Ketsji/KX_IpoActuator.cpp
source/gameengine/Ketsji/KX_IpoActuator.h
source/gameengine/Ketsji/KX_PythonInit.cpp
source/gameengine/Ketsji/KX_PythonInitTypes.cpp
source/gameengine/Ketsji/KX_PythonSeq.cpp
source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
source/gameengine/Physics/Bullet/CcdPhysicsController.cpp
source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
source/gameengine/VideoTexture/ImageBase.cpp

index 941430fd976139fe0ebc94307a3bdff902040e2e..a5e7a0721ec4f4cd5f1d7f8fc333617bce48454e 100644 (file)
@@ -50,6 +50,9 @@
 
 using namespace std;
 
+#ifdef WITH_CXX_GUARDEDALLOC
+#include "MEM_guardedalloc.h"
+#endif
 
 class STR_String;
 
@@ -191,6 +194,13 @@ protected:
        char   *pData;                                                                                                  // -> STR_String data
        int        Len;                                                                                                         // Data length
        int        Max;                                                                                                         // Space in data buffer
+
+
+#ifdef WITH_CXX_GUARDEDALLOC
+public:
+       void *operator new( unsigned int num_bytes) { return MEM_mallocN(num_bytes, "CXX:STR_String"); }
+       void operator delete( void *mem ) { MEM_freeN(mem); }
+#endif
 };
 
 inline  STR_String operator+(rcSTR_String    lhs, rcSTR_String   rhs)  { return STR_String(lhs.ReadPtr(), lhs.Length(), rhs.ReadPtr(), rhs.Length()); }
index ee826d5f57eed78f618f1ca044b77e4af6b67c48..9a268f8be17ae785a85199f9f767b03d7b5bfe2f 100644 (file)
@@ -266,6 +266,8 @@ void WM_exit(bContext *C)
 
        CTX_free(C);
        
+       SYS_DeleteSystem(SYS_GetSystem());
+
        if(MEM_get_memory_blocks_in_use()!=0) {
                printf("Error Totblock: %d\n", MEM_get_memory_blocks_in_use());
                MEM_printmemlist();
@@ -282,9 +284,6 @@ void WM_exit(bContext *C)
        }
 #endif 
        
-       
-       SYS_DeleteSystem(SYS_GetSystem());
-       
        exit(G.afbreek==1);
 }
 
index f8a9b1b637ffdae6ad4481ef37fb9b83be30b20b..cfd90813a16c021ff7ca1a33c877d782ccf073fa 100644 (file)
@@ -54,8 +54,8 @@ BL_ArmatureObject::BL_ArmatureObject(
 
 :      KX_GameObject(sgReplicationInfo,callbacks),
        m_objArma(armature),
-       m_scene(scene), // maybe remove later. needed for where_is_pose
        m_framePose(NULL),
+       m_scene(scene), // maybe remove later. needed for where_is_pose
        m_lastframe(0.0),
        m_activeAct(NULL),
        m_activePriority(999),
index d39917b0e5c66d2111ad20befa29274128752e4c..20ca7f07f2b19984ec981064901b97f0c9fc9719 100644 (file)
@@ -109,8 +109,8 @@ bool BL_ShapeDeformer::ExecuteShapeDrivers(void)
 {
        if (!m_shapeDrivers.empty() && PoseUpdated()) {
                vector<IpoCurve*>::iterator it;
-               void *poin;
-               int type;
+//             void *poin;
+//             int type;
 
                // the shape drivers use the bone matrix as input. Must 
                // update the matrix now
index c3264a2bc37403667483772f57ffd9d1a0ba4ec4..24910422176cbbbe1a12779caf25c76d9af7e445 100644 (file)
@@ -62,7 +62,7 @@ BL_InterpolatorList::~BL_InterpolatorList() {
        }
 }
 
-KX_IScalarInterpolator *BL_InterpolatorList::GetScalarInterpolator(char *rna_path, int array_index) {
+KX_IScalarInterpolator *BL_InterpolatorList::GetScalarInterpolator(const char *rna_path, int array_index) {
        for(BL_InterpolatorList::iterator i = begin(); (i != end()) ; i++ )
        {
                FCurve *fcu= (static_cast<BL_ScalarInterpolator *>(*i))->GetFCurve();
index eb15cee8ff97942c210e222cc6acbc061a0bd519..e7fbb8083e40c8379de8f4b0b383280bfce55017 100644 (file)
@@ -64,7 +64,7 @@ public:
        BL_InterpolatorList(struct AnimData *adt);
        ~BL_InterpolatorList();
 
-       KX_IScalarInterpolator *GetScalarInterpolator(char *rna_path, int array_index); 
+       KX_IScalarInterpolator *GetScalarInterpolator(const char *rna_path, int array_index);   
 
 
 #ifdef WITH_CXX_GUARDEDALLOC
index ebabaa55e21c60fb0fb9f0f610951721af5b67fe..3220672c392bc4774ef2747fa8f662f0dc2f3276 100644 (file)
@@ -795,6 +795,7 @@ void        KX_BlenderSceneConverter::WritePhysicsObjectToAnimationIpo(int frameNumber)
                                Object* blenderObject = gameObj->GetBlenderObject();
                                if (blenderObject && blenderObject->ipo)
                                {
+#if 0
                                        const MT_Point3& position = gameObj->NodeGetWorldPosition();
                                        //const MT_Vector3& scale = gameObj->NodeGetWorldScaling();
                                        const MT_Matrix3x3& orn = gameObj->NodeGetWorldOrientation();
@@ -804,7 +805,6 @@ void        KX_BlenderSceneConverter::WritePhysicsObjectToAnimationIpo(int frameNumber)
                                        float tmat[3][3];
                                        
                                        // XXX animato
-#if 0
                                        Ipo* ipo = blenderObject->ipo;
 
                                        //create the curves, if not existing, set linear if new
index d3a2e1a9ba461d3f18729f3153fe21cefe5c0ea3..848fcfcdaa0243c0ebe819da61dd6f4b31e98d46 100644 (file)
@@ -175,7 +175,7 @@ void BL_ConvertIpos(struct Object* blenderobject,KX_GameObject* gameobj,KX_Blend
                        KX_ObColorIpoSGController* ipocontr_obcol=NULL;
                        
                        for(int i=0; i<4; i++) {
-                               if (interp = adtList->GetScalarInterpolator("color", i)) {
+                               if ((interp = adtList->GetScalarInterpolator("color", i))) {
                                        if (!ipocontr_obcol) {
                                                ipocontr_obcol = new KX_ObColorIpoSGController();
                                                gameobj->GetSGNode()->AddSGController(ipocontr_obcol);
index faf0ca50407a0812431f624a6b47e2a1c13d611a..b5a0a63cf6883879e2a50de02f91ac5eadee5931 100644 (file)
@@ -38,9 +38,6 @@
 
 #include "PyObjectPlus.h" 
 
-STR_String KX_CameraActuator::X_AXIS_STRING = "x";
-STR_String KX_CameraActuator::Y_AXIS_STRING = "y";
-
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -353,15 +350,6 @@ CValue *KX_CameraActuator::findObject(char *obName)
        return NULL;
 }
 
-bool KX_CameraActuator::string2axischoice(const char *axisString) 
-{
-       bool res = true;
-
-       res = !(axisString == Y_AXIS_STRING);
-
-       return res;
-}
-
 /* ------------------------------------------------------------------------- */
 /* Python functions                                                          */
 /* ------------------------------------------------------------------------- */
index 146b83abd17f47914048e45c9ab0ea2da2315def..a5217273b170eb80bf930db927714f8660e722a1 100644 (file)
@@ -464,7 +464,7 @@ void KX_GameObject::AddMeshUser()
        double* fl = GetOpenGLMatrixPtr()->getPointer();
 
        SG_QList::iterator<RAS_MeshSlot> mit(m_meshSlots);
-       RAS_MeshSlot* ms;
+//     RAS_MeshSlot* ms;
        for(mit.begin(); !mit.end(); ++mit)
        {
                (*mit)->m_OpenGLMatrix = fl;
@@ -1817,10 +1817,10 @@ int KX_GameObject::pyattr_set_visible(void *self_v, const KX_PYATTRIBUTE_DEF *at
 
 PyObject* KX_GameObject::pyattr_get_worldPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
-       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
 #ifdef USE_MATHUTILS
        return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_GLOBAL);
 #else
+       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
        return PyObjectFrom(self->NodeGetWorldPosition());
 #endif
 }
@@ -1839,10 +1839,10 @@ int KX_GameObject::pyattr_set_worldPosition(void *self_v, const KX_PYATTRIBUTE_D
 
 PyObject* KX_GameObject::pyattr_get_localPosition(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
-       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
 #ifdef USE_MATHUTILS   
        return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_POS_LOCAL);
 #else  
+       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
        return PyObjectFrom(self->NodeGetLocalPosition());
 #endif
 }
@@ -1861,10 +1861,10 @@ int KX_GameObject::pyattr_set_localPosition(void *self_v, const KX_PYATTRIBUTE_D
 
 PyObject* KX_GameObject::pyattr_get_localInertia(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
-       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
 #ifdef USE_MATHUTILS
        return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_INERTIA_LOCAL);
 #else
+       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
        if (self->GetPhysicsController())
                return PyObjectFrom(self->GetPhysicsController()->GetLocalInertia());
        return Py_BuildValue("fff", 0.0f, 0.0f, 0.0f);
@@ -1922,20 +1922,20 @@ int KX_GameObject::pyattr_set_localOrientation(void *self_v, const KX_PYATTRIBUT
 
 PyObject* KX_GameObject::pyattr_get_worldScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
-       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
 #ifdef USE_MATHUTILS
        return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_GLOBAL);
 #else
+       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
        return PyObjectFrom(self->NodeGetWorldScaling());
 #endif
 }
 
 PyObject* KX_GameObject::pyattr_get_localScaling(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
 {
-       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
 #ifdef USE_MATHUTILS
        return newVectorObject_cb((PyObject *)self_v, 3, mathutils_kxgameob_vector_cb_index, MATHUTILS_VEC_CB_SCALE_LOCAL);
 #else
+       KX_GameObject* self= static_cast<KX_GameObject*>(self_v);
        return PyObjectFrom(self->NodeGetLocalScaling());
 #endif
 }
index e4eaff4f401bbb616b9d32f590147f7ca4d2312b..3f241e90836af9cd0c304a13ac2f347bf699a680 100644 (file)
 /* Type strings                                                              */
 /* ------------------------------------------------------------------------- */
 
-STR_String KX_IpoActuator::S_KX_ACT_IPO_PLAY_STRING      = "Play";
-STR_String KX_IpoActuator::S_KX_ACT_IPO_PINGPONG_STRING  = "PingPong";
-STR_String KX_IpoActuator::S_KX_ACT_IPO_FLIPPER_STRING   = "Flipper";
-STR_String KX_IpoActuator::S_KX_ACT_IPO_LOOPSTOP_STRING  = "LoopStop";
-STR_String KX_IpoActuator::S_KX_ACT_IPO_LOOPEND_STRING   = "LoopEnd";
-STR_String KX_IpoActuator::S_KX_ACT_IPO_KEY2KEY_STRING   = "Key2key";
-STR_String KX_IpoActuator::S_KX_ACT_IPO_FROM_PROP_STRING = "FromProp";
+const char *KX_IpoActuator::S_KX_ACT_IPO_PLAY_STRING      = "Play";
+const char *KX_IpoActuator::S_KX_ACT_IPO_PINGPONG_STRING  = "PingPong";
+const char *KX_IpoActuator::S_KX_ACT_IPO_FLIPPER_STRING   = "Flipper";
+const char *KX_IpoActuator::S_KX_ACT_IPO_LOOPSTOP_STRING  = "LoopStop";
+const char *KX_IpoActuator::S_KX_ACT_IPO_LOOPEND_STRING   = "LoopEnd";
+const char *KX_IpoActuator::S_KX_ACT_IPO_KEY2KEY_STRING   = "Key2key";
+const char *KX_IpoActuator::S_KX_ACT_IPO_FROM_PROP_STRING = "FromProp";
 
 /* ------------------------------------------------------------------------- */
 /* Native functions                                                          */
@@ -385,19 +385,19 @@ bool KX_IpoActuator::Update(double curtime, bool frame)
 int KX_IpoActuator::string2mode(char* modename) {
        IpoActType res = KX_ACT_IPO_NODEF;
 
-       if (modename == S_KX_ACT_IPO_PLAY_STRING) { 
+       if (strcmp(modename, S_KX_ACT_IPO_PLAY_STRING)==0) { 
                res = KX_ACT_IPO_PLAY;
-       } else if (modename == S_KX_ACT_IPO_PINGPONG_STRING) {
+       } else if (strcmp(modename, S_KX_ACT_IPO_PINGPONG_STRING)==0) {
                res = KX_ACT_IPO_PINGPONG;
-       } else if (modename == S_KX_ACT_IPO_FLIPPER_STRING) {
+       } else if (strcmp(modename, S_KX_ACT_IPO_FLIPPER_STRING)==0) {
                res = KX_ACT_IPO_FLIPPER;
-       } else if (modename == S_KX_ACT_IPO_LOOPSTOP_STRING) {
+       } else if (strcmp(modename, S_KX_ACT_IPO_LOOPSTOP_STRING)==0) {
                res = KX_ACT_IPO_LOOPSTOP;
-       } else if (modename == S_KX_ACT_IPO_LOOPEND_STRING) {
+       } else if (strcmp(modename, S_KX_ACT_IPO_LOOPEND_STRING)==0) {
                res = KX_ACT_IPO_LOOPEND;
-       } else if (modename == S_KX_ACT_IPO_KEY2KEY_STRING) {
+       } else if (strcmp(modename, S_KX_ACT_IPO_KEY2KEY_STRING)==0) {
                res = KX_ACT_IPO_KEY2KEY;
-       } else if (modename == S_KX_ACT_IPO_FROM_PROP_STRING) {
+       } else if (strcmp(modename, S_KX_ACT_IPO_FROM_PROP_STRING)==0) {
                res = KX_ACT_IPO_FROM_PROP;
        }
 
index 01051ca82dc93153e87f8607d719af1c03b22104..0581d1644eea4df12d27fb7319ff85c5ab0945c7 100644 (file)
@@ -100,13 +100,13 @@ public:
                KX_ACT_IPO_MAX
        };
 
-       static STR_String S_KX_ACT_IPO_PLAY_STRING;
-       static STR_String S_KX_ACT_IPO_PINGPONG_STRING;
-       static STR_String S_KX_ACT_IPO_FLIPPER_STRING;
-       static STR_String S_KX_ACT_IPO_LOOPSTOP_STRING;
-       static STR_String S_KX_ACT_IPO_LOOPEND_STRING;
-       static STR_String S_KX_ACT_IPO_KEY2KEY_STRING;
-       static STR_String S_KX_ACT_IPO_FROM_PROP_STRING;
+       static const char *S_KX_ACT_IPO_PLAY_STRING;
+       static const char *S_KX_ACT_IPO_PINGPONG_STRING;
+       static const char *S_KX_ACT_IPO_FLIPPER_STRING;
+       static const char *S_KX_ACT_IPO_LOOPSTOP_STRING;
+       static const char *S_KX_ACT_IPO_LOOPEND_STRING;
+       static const char *S_KX_ACT_IPO_KEY2KEY_STRING;
+       static const char *S_KX_ACT_IPO_FROM_PROP_STRING;
 
        int string2mode(char* modename);
        
index de3dcd0ebf89c727666493215a617a5bee448248..49cf895af17b1eec00daa7a2b437caa7d40d698d 100644 (file)
@@ -142,7 +142,7 @@ void        KX_RasterizerDrawDebugLine(const MT_Vector3& from,const MT_Vector3& to,cons
 // List of methods defined in the module
 
 static PyObject* ErrorObject;
-STR_String gPyGetRandomFloat_doc="getRandomFloat returns a random floating point value in the range [0..1)";
+static const char *gPyGetRandomFloat_doc="getRandomFloat returns a random floating point value in the range [0..1]";
 
 static PyObject* gPyGetRandomFloat(PyObject*)
 {
@@ -346,7 +346,7 @@ static PyObject* gPyGetBlendFileList(PyObject*, PyObject* args)
     return list;
 }
 
-static STR_String gPyGetCurrentScene_doc =  
+static const char *gPyGetCurrentScene_doc =
 "getCurrentScene()\n"
 "Gets a reference to the current scene.\n";
 static PyObject* gPyGetCurrentScene(PyObject* self)
@@ -354,7 +354,7 @@ static PyObject* gPyGetCurrentScene(PyObject* self)
        return gp_KetsjiScene->GetProxy();
 }
 
-static STR_String gPyGetSceneList_doc =  
+static const char *gPyGetSceneList_doc =
 "getSceneList()\n"
 "Return a list of converted scenes.\n";
 static PyObject* gPyGetSceneList(PyObject* self)
@@ -479,15 +479,15 @@ static struct PyMethodDef game_methods[] = {
        {"sendMessage", (PyCFunction)gPySendMessage, METH_VARARGS, (const char *)gPySendMessage_doc},
        {"getCurrentController",
        (PyCFunction) SCA_PythonController::sPyGetCurrentController,
-       METH_NOARGS, (const char *)SCA_PythonController::sPyGetCurrentController__doc__},
+       METH_NOARGS, SCA_PythonController::sPyGetCurrentController__doc__},
        {"getCurrentScene", (PyCFunction) gPyGetCurrentScene,
-       METH_NOARGS, (const char *)gPyGetCurrentScene_doc.Ptr()},
+       METH_NOARGS, gPyGetCurrentScene_doc},
        {"getSceneList", (PyCFunction) gPyGetSceneList,
-       METH_NOARGS, (const char *)gPyGetSceneList_doc.Ptr()},
+       METH_NOARGS, (const char *)gPyGetSceneList_doc},
        {"addActiveActuator",(PyCFunction) SCA_PythonController::sPyAddActiveActuator,
        METH_VARARGS, (const char *)SCA_PythonController::sPyAddActiveActuator__doc__},
        {"getRandomFloat",(PyCFunction) gPyGetRandomFloat,
-       METH_NOARGS, (const char *)gPyGetRandomFloat_doc.Ptr()},
+       METH_NOARGS, (const char *)gPyGetRandomFloat_doc},
        {"setGravity",(PyCFunction) gPySetGravity, METH_O, (const char *)"set Gravitation"},
        {"getSpectrum",(PyCFunction) gPyGetSpectrum, METH_NOARGS, (const char *)"get audio spectrum"},
        {"stopDSP",(PyCFunction) gPyStopDSP, METH_VARARGS, (const char *)"stop using the audio dsp (for performance reasons)"},
index 5260c0bb01a49f61750170455a1273f4d6102a93..61e563791c37ea748486f7133ac28952d503d0f8 100644 (file)
@@ -123,9 +123,6 @@ static void PyType_Ready_ADD(PyObject *dict, PyTypeObject *tp, PyAttributeDef *a
                        memset(attr_getset, 0, sizeof(PyGetSetDef));
                }
        } else {
-       
-               PyObject *item;
-
                PyType_Ready(tp);
                PyDict_SetItemString(dict, tp->tp_name, reinterpret_cast<PyObject *>(tp));
        }
index 4fc5252de60677d16c06eb5785fd054057ecd5b2..1098dc03b6293fea00ea50419ce176dcd0790f39 100644 (file)
@@ -375,7 +375,7 @@ PyTypeObject KX_PythonSeq_Type = {
        NULL,                       /* getattrfunc tp_getattr; */
        NULL,                       /* setattrfunc tp_setattr; */
        /* TODO, richcmp */
-       NULL, /* ( cmpfunc ) KX_PythonSeq_compare, /* cmpfunc tp_compare; */
+       NULL, /* ( cmpfunc ) KX_PythonSeq_compare, // cmpfunc tp_compare; */
        ( reprfunc ) KX_PythonSeq_repr,   /* reprfunc tp_repr; */
 
        /* Method suites for standard classes */
index ae2c0d2d6ce82459f59e4bae8597566d0cd39328..1e258420836341e4ef7d4fd4a18d9a728e20858c 100644 (file)
@@ -50,8 +50,8 @@ class KX_SCA_ReplaceMeshActuator : public SCA_IActuator
        // mesh reference (mesh to replace)
        RAS_MeshObject* m_mesh;
        SCA_IScene*      m_scene;
-       bool m_use_phys;
        bool m_use_gfx; 
+       bool m_use_phys;
 
  public:
        KX_SCA_ReplaceMeshActuator(
index 20e830c9dc39b4c5154272a6244f8a39da056d0c..12562e345838f80761b1997f0b7988402765fc35 100644 (file)
@@ -1829,8 +1829,6 @@ bool CcdShapeConstructionInfo::UpdateMesh(class KX_GameObject* gameobj, class RA
                        }
 
                        for(mf= mface, i=0; i < numpolys; mf++, i++) {
-                               unsigned int *fv = &mf->v1;
-
                                if(mf->v4) {
                                        fv_pt= quad_verts;
                                        *poly_index_pt++ = *poly_index_pt++ = index[i];
index cb5c5a1239771e16071309d70428c66126de9d2b..033daabc48f5af7c3c98ddae77eab77925d17a4b 100644 (file)
@@ -70,7 +70,6 @@ void  RAS_IPolyMaterial::Initialize(
 RAS_IPolyMaterial::RAS_IPolyMaterial() 
                : m_texturename("__Dummy_Texture_Name__"),
                m_materialname("__Dummy_Material_Name__"),
-               m_materialindex(0),
                m_tile(0),
                m_tilexrep(0),
                m_tileyrep(0),
@@ -78,6 +77,7 @@ RAS_IPolyMaterial::RAS_IPolyMaterial()
                m_transp(0),
                m_alpha(false),
                m_zsort(false),
+               m_materialindex(0),
                m_polymatid(0),
                m_flag(0),
                m_multimode(0)
@@ -100,7 +100,6 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
                                                                         bool zsort)
                : m_texturename(texname),
                m_materialname(matname),
-               m_materialindex(materialindex),
                m_tile(tile),
                m_tilexrep(tilexrep),
                m_tileyrep(tileyrep),
@@ -108,6 +107,7 @@ RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
                m_transp(transp),
                m_alpha(alpha),
                m_zsort(zsort),
+               m_materialindex(materialindex),
                m_polymatid(m_newpolymatid++),
                m_flag(0),
                m_multimode(0)
index 5e2841271a6c0b7fbac515d9db216018421eba51..0740afed2c6e788f0bb1d5bc251a25a96213a1b4 100644 (file)
@@ -219,15 +219,17 @@ bool ImageBase::checkSourceSizes (void)
                // get size of current source
                short * curSize = (*it)->getSize();
                // if size is available and is not empty
-               if (curSize[0] != 0 && curSize[1] != 0)
+               if (curSize[0] != 0 && curSize[1] != 0) {
                        // if reference size is not set
-                       if (refSize == NULL)
+                       if (refSize == NULL) {
                                // set current size as reference
                                refSize = curSize;
                // otherwise check with current size
-                       else if (curSize[0] != refSize[0] || curSize[1] != refSize[1])
+                       } else if (curSize[0] != refSize[0] || curSize[1] != refSize[1]) {
                                // if they don't match, report it
                                return false;
+                       }
+               }
        }
        // all sizes match
        return true;