code cleanup: make header defines more consistent, JOYSENSOR header guard had a typo...
[blender-staging.git] / source / gameengine / Converter / KX_BlenderSceneConverter.h
index c8009eb94374066b69621f54a98ddabed2d3e02c..436bdb555c96521fc7112c3f8b951ccb0515694d 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * $Id$
- *
+/*
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
@@ -15,7 +13,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
  * ***** END GPL LICENSE BLOCK *****
  */
-#ifndef __KX_BLENDERSCENECONVERTER_H
-#define __KX_BLENDERSCENECONVERTER_H
+
+/** \file KX_BlenderSceneConverter.h
+ *  \ingroup bgeconv
+ */
+
+#ifndef __KX_BLENDERSCENECONVERTER_H__
+#define __KX_BLENDERSCENECONVERTER_H__
 
 #include "KX_HashedPtr.h"
-#include "GEN_Map.h"
+#include "CTR_Map.h"
 #include <stdio.h>
 
 #include "KX_ISceneConverter.h"
 #include "KX_IpoConvert.h"
 
+using namespace std;
+
 class KX_WorldInfo;
 class SCA_IActuator;
 class SCA_IController;
@@ -43,7 +48,6 @@ class RAS_MeshObject;
 class RAS_IPolyMaterial;
 class BL_InterpolatorList;
 class BL_Material;
-struct IpoCurve;
 struct Main;
 struct Scene;
 
@@ -57,12 +61,12 @@ class KX_BlenderSceneConverter : public KX_ISceneConverter
        // Should also have a list of collision shapes. 
        // For the time being this is held in KX_Scene::m_shapes
 
-       GEN_Map<CHashedPtr,KX_GameObject*>      m_map_blender_to_gameobject;            /* cleared after conversion */
-       GEN_Map<CHashedPtr,RAS_MeshObject*>     m_map_mesh_to_gamemesh;                         /* cleared after conversion */
-       GEN_Map<CHashedPtr,SCA_IActuator*>      m_map_blender_to_gameactuator;          /* cleared after conversion */
-       GEN_Map<CHashedPtr,SCA_IController*>m_map_blender_to_gamecontroller;    /* cleared after conversion */
+       CTR_Map<CHashedPtr,KX_GameObject*>      m_map_blender_to_gameobject;            /* cleared after conversion */
+       CTR_Map<CHashedPtr,RAS_MeshObject*>     m_map_mesh_to_gamemesh;                         /* cleared after conversion */
+       CTR_Map<CHashedPtr,SCA_IActuator*>      m_map_blender_to_gameactuator;          /* cleared after conversion */
+       CTR_Map<CHashedPtr,SCA_IController*>m_map_blender_to_gamecontroller;    /* cleared after conversion */
        
-       GEN_Map<CHashedPtr,BL_InterpolatorList*> m_map_blender_to_gameAdtList;
+       CTR_Map<CHashedPtr,BL_InterpolatorList*> m_map_blender_to_gameAdtList;
        
        Main*                                   m_maggie;
        vector<struct Main*>    m_DynamicMaggie;
@@ -74,9 +78,6 @@ class KX_BlenderSceneConverter : public KX_ISceneConverter
        bool                                    m_usemat;
        bool                                    m_useglslmat;
 
-       void localDel_ipoCurve ( IpoCurve * icu );
-//     struct Ipo* findIpoForName(char* objName);
-
 public:
        KX_BlenderSceneConverter(
                Main* maggie,
@@ -112,8 +113,8 @@ public:
 
        void RegisterBlenderMaterial(BL_Material *mat);
        
-       void RegisterInterpolatorList(BL_InterpolatorList *adtList, struct AnimData *for_adt);
-       BL_InterpolatorList *FindInterpolatorList(struct AnimData *for_adt);
+       void RegisterInterpolatorList(BL_InterpolatorList *actList, struct bAction *for_act);
+       BL_InterpolatorList *FindInterpolatorList(struct bAction *for_act);
 
        void RegisterGameActuator(SCA_IActuator *act, struct bActuator *for_actuator);
        SCA_IActuator *FindGameActuator(struct bActuator *for_actuator);
@@ -142,11 +143,13 @@ public:
 
        struct Scene* GetBlenderSceneForName(const STR_String& name);
 
-//     struct Main* GetMain() { return m_maggie; };
+//     struct Main* GetMain() { return m_maggie; }
        struct Main*              GetMainDynamicPath(const char *path);
        vector<struct Main*> &GetMainDynamic();
        
-       bool LinkBlendFile(const char *path, char *group, KX_Scene *scene_merge, char **err_str);
+       bool LinkBlendFileMemory(void *data, int length, const char *path, char *group, KX_Scene *scene_merge, char **err_str, short options);
+       bool LinkBlendFilePath(const char *path, char *group, KX_Scene *scene_merge, char **err_str, short options);
+       bool LinkBlendFile(struct BlendHandle *bpy_openlib, const char *path, char *group, KX_Scene *scene_merge, char **err_str, short options);
        bool MergeScene(KX_Scene *to, KX_Scene *from);
        RAS_MeshObject *ConvertMeshSpecial(KX_Scene* kx_scene, Main *maggie, const char *name);
        bool FreeBlendFile(struct Main *maggie);
@@ -156,36 +159,41 @@ public:
                printf("BGE STATS!\n");
 
                printf("\nAssets...\n");
-               printf("\t m_worldinfos: %d\n", m_worldinfos.size());
-               printf("\t m_polymaterials: %d\n", m_polymaterials.size());
-               printf("\t m_meshobjects: %d\n", m_meshobjects.size());
-               printf("\t m_materials: %d\n", m_materials.size());
+               printf("\t m_worldinfos: %d\n", (int)m_worldinfos.size());
+               printf("\t m_polymaterials: %d\n", (int)m_polymaterials.size());
+               printf("\t m_meshobjects: %d\n", (int)m_meshobjects.size());
+               printf("\t m_materials: %d\n", (int)m_materials.size());
 
                printf("\nMappings...\n");
-               printf("\t m_map_blender_to_gameobject: %d\n", m_map_blender_to_gameobject.size());
-               printf("\t m_map_mesh_to_gamemesh: %d\n", m_map_mesh_to_gamemesh.size());
-               printf("\t m_map_blender_to_gameactuator: %d\n", m_map_blender_to_gameactuator.size());
-               printf("\t m_map_blender_to_gamecontroller: %d\n", m_map_blender_to_gamecontroller.size());
-               printf("\t m_map_blender_to_gameAdtList: %d\n", m_map_blender_to_gameAdtList.size());
+               printf("\t m_map_blender_to_gameobject: %d\n", (int)m_map_blender_to_gameobject.size());
+               printf("\t m_map_mesh_to_gamemesh: %d\n", (int)m_map_mesh_to_gamemesh.size());
+               printf("\t m_map_blender_to_gameactuator: %d\n", (int)m_map_blender_to_gameactuator.size());
+               printf("\t m_map_blender_to_gamecontroller: %d\n", (int)m_map_blender_to_gamecontroller.size());
+               printf("\t m_map_blender_to_gameAdtList: %d\n", (int)m_map_blender_to_gameAdtList.size());
 
 #ifdef WITH_CXX_GUARDEDALLOC
                MEM_printmemlist_pydict();
 #endif
 //             /printf("\t m_ketsjiEngine->m_scenes: %d\n", m_ketsjiEngine->CurrentScenes()->size());
        }
+       
+       /* LibLoad Options */
+       enum 
+       {
+               LIB_LOAD_LOAD_ACTIONS = 1,
+               LIB_LOAD_VERBOSE = 2,
+               LIB_LOAD_LOAD_SCRIPTS = 4,
+       };
 
 
 
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
        PyObject *GetPyNamespace();
 #endif
        
 #ifdef WITH_CXX_GUARDEDALLOC
-public:
-       void *operator new( unsigned int num_bytes) { return MEM_mallocN(num_bytes, "GE:KX_BlenderSceneConverter"); }
-       void operator delete( void *mem ) { MEM_freeN(mem); }
+       MEM_CXX_CLASS_ALLOC_FUNCS("GE:KX_BlenderSceneConverter")
 #endif
 };
 
-#endif //__KX_BLENDERSCENECONVERTER_H
-
+#endif  /* __KX_BLENDERSCENECONVERTER_H__ */