Initial revision
[blender.git] / source / gameengine / Ketsji / KX_GameActuator.h
1  
2 //
3 // actuator for global game stuff
4 //
5 // $Id$
6 //
7 // ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
8 //
9 // This program is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU General Public License
11 // as published by the Free Software Foundation; either version 2
12 // of the License, or (at your option) any later version. The Blender
13 // Foundation also sells licenses for use in proprietary software under
14 // the Blender License.  See http://www.blender.org/BL/ for information
15 // about this.
16 //
17 // This program is distributed in the hope that it will be useful,
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 // GNU General Public License for more details.
21 //
22 // You should have received a copy of the GNU General Public License
23 // along with this program; if not, write to the Free Software Foundation,
24 // Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
25 //
26 // The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
27 // All rights reserved.
28 //
29 // The Original Code is: all of this file.
30 //
31 // Contributor(s): none yet.
32 //
33 // ***** END GPL/BL DUAL LICENSE BLOCK *****
34 //
35
36 #ifndef __KX_GAMEACTUATOR
37 #define __KX_GAMEACTUATOR
38
39 #include "SCA_IActuator.h"
40
41 class KX_GameActuator : public SCA_IActuator
42 {
43         Py_Header;
44         int                                                     m_mode;
45         bool                                            m_restart;
46         STR_String                                      m_filename;
47         STR_String                                      m_loadinganimationname;
48         class KX_Scene*                         m_scene;
49         class KX_KetsjiEngine*          m_ketsjiengine;
50
51  public:
52         enum KX_GameActuatorMode
53         {
54                 KX_GAME_NODEF = 0,
55                 KX_GAME_LOAD,
56                 KX_GAME_START,
57                 KX_GAME_RESTART,
58                 KX_GAME_QUIT,
59                 KX_GAME_MAX
60
61         };
62
63         KX_GameActuator(SCA_IObject* gameobj,
64                                          int mode,
65                                          const STR_String& filename,
66                                          const STR_String& loadinganimationname,
67                                          KX_Scene* scene,
68                                          KX_KetsjiEngine* ketsjiEngine,
69                                          PyTypeObject* T=&Type);
70         virtual ~KX_GameActuator();
71
72         virtual CValue* GetReplica();
73
74         virtual bool Update(double curtime,double deltatime);
75         
76         /* --------------------------------------------------------------------- */
77         /* Python interface ---------------------------------------------------- */
78         /* --------------------------------------------------------------------- */
79
80         virtual PyObject*  _getattr(char *attr);
81
82         
83 }; /* end of class KX_GameActuator */
84
85 #endif
86