synched with trunk at revision 32129
[blender.git] / source / gameengine / Ketsji / KX_GameActuator.h
1  
2 //
3 // actuator for global game stuff
4 //
5 // $Id$
6 //
7 // ***** BEGIN GPL 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.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program; if not, write to the Free Software Foundation,
21 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 //
23 // The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24 // All rights reserved.
25 //
26 // The Original Code is: all of this file.
27 //
28 // Contributor(s): none yet.
29 //
30 // ***** END GPL LICENSE BLOCK *****
31 //
32
33 #ifndef __KX_GAMEACTUATOR
34 #define __KX_GAMEACTUATOR
35
36 #include "SCA_IActuator.h"
37
38 #include "SCA_IScene.h" /* Replace_IScene only */
39 #include "KX_Scene.h" /* Replace_IScene only */
40
41 class KX_GameActuator : public SCA_IActuator
42 {
43         Py_Header;
44 protected:
45         int                                                     m_mode;
46         bool                                            m_restart;
47         STR_String                                      m_filename;
48         STR_String                                      m_loadinganimationname;
49         class SCA_IScene*                       m_scene;
50         class KX_KetsjiEngine*          m_ketsjiengine;
51
52  public:
53         enum KX_GameActuatorMode
54         {
55                 KX_GAME_NODEF = 0,
56                 KX_GAME_LOAD,
57                 KX_GAME_START,
58                 KX_GAME_RESTART,
59                 KX_GAME_QUIT,
60                 KX_GAME_SAVECFG,
61                 KX_GAME_LOADCFG,
62                 KX_GAME_MAX
63
64         };
65
66         KX_GameActuator(SCA_IObject* gameobj,
67                                          int mode,
68                                          const STR_String& filename,
69                                          const STR_String& loadinganimationname,
70                                          SCA_IScene* scene,
71                                          KX_KetsjiEngine* ketsjiEngine);
72         virtual ~KX_GameActuator();
73
74         virtual CValue* GetReplica();
75
76         virtual bool Update();
77         
78         virtual void Replace_IScene(SCA_IScene *val)
79         {
80                 m_scene= val;
81         };
82
83         /* --------------------------------------------------------------------- */
84         /* Python interface ---------------------------------------------------- */
85         /* --------------------------------------------------------------------- */
86         
87 }; /* end of class KX_GameActuator */
88
89 #endif
90