rename and negate DISABLE_PYTHON --> WITH_PYTHON
[blender.git] / source / gameengine / Ketsji / KX_GameActuator.cpp
index 3090c668f03e4f6f059160dac5b3bc11f467aed6..1a195913e4a707f855eb9192502b0d7de56b9d78 100644 (file)
@@ -17,7 +17,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.
@@ -36,9 +36,8 @@
 #include "KX_KetsjiEngine.h"
 #include "KX_PythonInit.h" /* for config load/saving */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include <stdio.h>
+#include <stdlib.h>
 
 /* ------------------------------------------------------------------------- */
 /* Native functions                                                          */
@@ -48,10 +47,9 @@ KX_GameActuator::KX_GameActuator(SCA_IObject *gameobj,
                                                                   int mode,
                                                                   const STR_String& filename,
                                                                   const STR_String& loadinganimationname,
-                                                                  KX_Scene* scene,
-                                                                  KX_KetsjiEngine* ketsjiengine,
-                                                                  PyTypeObject* T)
-                                                                  : SCA_IActuator(gameobj, T)
+                                                                  SCA_IScene* scene,
+                                                                  KX_KetsjiEngine* ketsjiengine)
+                                                                  : SCA_IActuator(gameobj, KX_ACT_GAME)
 {
        m_mode = mode;
        m_filename = filename;
@@ -73,8 +71,6 @@ CValue* KX_GameActuator::GetReplica()
 {
        KX_GameActuator* replica = new KX_GameActuator(*this);
        replica->ProcessReplica();
-       // this will copy properties and so on...
-       CValue::AddDataToReplica(replica);
        
        return replica;
 }
@@ -128,6 +124,7 @@ bool KX_GameActuator::Update()
                }
        case KX_GAME_SAVECFG:
                {
+#ifdef WITH_PYTHON
                        if (m_ketsjiengine)
                        {
                                char mashal_path[512];
@@ -151,11 +148,15 @@ bool KX_GameActuator::Update()
                                } else {
                                        printf("Warning: could not create marshal buffer\n");
                                }
+                               if (marshal_buffer)
+                                       delete [] marshal_buffer;
                        }
                        break;
+#endif // WITH_PYTHON
                }
        case KX_GAME_LOADCFG:
                {
+#ifdef WITH_PYTHON
                        if (m_ketsjiengine)
                        {
                                char mashal_path[512];
@@ -190,6 +191,7 @@ bool KX_GameActuator::Update()
                                }
                        }
                        break;
+#endif // WITH_PYTHON
                }
        default:
                ; /* do nothing? this is an internal error !!! */
@@ -199,8 +201,7 @@ bool KX_GameActuator::Update()
 }
 
 
-
-
+#ifdef WITH_PYTHON
 
 /* ------------------------------------------------------------------------- */
 /* Python functions                                                          */
@@ -208,77 +209,36 @@ bool KX_GameActuator::Update()
 
 /* Integration hooks ------------------------------------------------------- */
 PyTypeObject KX_GameActuator::Type = {
-       PyObject_HEAD_INIT(&PyType_Type)
-               0,
-               "KX_GameActuator",
-               sizeof(KX_GameActuator),
-               0,
-               PyDestructor,
-               0,
-               __getattr,
-               __setattr,
-               0, //&MyPyCompare,
-               __repr,
-               0, //&cvalue_as_number,
-               0,
-               0,
-               0,
-               0
-};
-
-
-
-PyParentObject KX_GameActuator::Parents[] =
-{
-       &KX_GameActuator::Type,
-               &SCA_IActuator::Type,
-               &SCA_ILogicBrick::Type,
-               &CValue::Type,
-               NULL
+       PyVarObject_HEAD_INIT(NULL, 0)
+       "KX_GameActuator",
+       sizeof(PyObjectPlus_Proxy),
+       0,
+       py_base_dealloc,
+       0,
+       0,
+       0,
+       0,
+       py_base_repr,
+       0,0,0,0,0,0,0,0,0,
+       Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+       0,0,0,0,0,0,0,
+       Methods,
+       0,
+       0,
+       &SCA_IActuator::Type,
+       0,0,0,0,0,0,
+       py_base_new
 };
 
-
-
 PyMethodDef KX_GameActuator::Methods[] =
 {
-       {"getFile",     (PyCFunction) KX_GameActuator::sPyGetFile, METH_VARARGS, (PY_METHODCHAR)GetFile_doc},
-       {"setFile", (PyCFunction) KX_GameActuator::sPySetFile, METH_VARARGS, (PY_METHODCHAR)SetFile_doc},
        {NULL,NULL} //Sentinel
 };
 
-/* getFile */
-const char KX_GameActuator::GetFile_doc[] = 
-"getFile()\n"
-"get the name of the file to start.\n";
-PyObject* KX_GameActuator::PyGetFile(PyObject* self, PyObject* args, PyObject* kwds)
-{      
-       return PyString_FromString(m_filename);
-}
-
-/* setFile */
-const char KX_GameActuator::SetFile_doc[] =
-"setFile(name)\n"
-"set the name of the file to start.\n";
-PyObject* KX_GameActuator::PySetFile(PyObject* self, PyObject* args, PyObject* kwds)
-{
-       char* new_file;
-       
-       if (!PyArg_ParseTuple(args, "s", &new_file))
-       {
-               return NULL;
-       }
-       
-       m_filename = STR_String(new_file);
-
-       Py_RETURN_NONE;
-
-}
-       
-
-
-PyObject* KX_GameActuator::_getattr(const char *attr)
-{
-       _getattr_up(SCA_IActuator);
-}
-
+PyAttributeDef KX_GameActuator::Attributes[] = {
+       KX_PYATTRIBUTE_STRING_RW("fileName",0,100,false,KX_GameActuator,m_filename),
+       KX_PYATTRIBUTE_INT_RW("mode", KX_GAME_NODEF+1, KX_GAME_MAX-1, true, KX_GameActuator, m_mode),
+       { NULL }        //Sentinel
+};
 
+#endif // WITH_PYTHON