author | truelight |
Thu, 15 Mar 2007 00:15:52 +0000 | |
branch | noai |
changeset 9395 | 4337e022594c |
parent 9393 | 04bd925b9069 |
child 9404 | ef9e171617a3 |
permissions | -rw-r--r-- |
9365
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
1 |
/* $Id$ */ |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
2 |
|
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
3 |
/** @file squirrel.hpp declarations of the class for squirrel loader */ |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
4 |
|
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
5 |
#ifndef SQUIRREL_HPP |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
6 |
#define SQUIRREL_HPP |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
7 |
|
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
8 |
#include "../core/ai_controller.hpp" |
9389
cb4e3c4ae84e
(svn r9181) [NoAI] -Fix: allow compilation with MINGW and _UNICODE (squirrel has some problems with that)
glx
parents:
9387
diff
changeset
|
9 |
#ifdef _UNICODE |
cb4e3c4ae84e
(svn r9181) [NoAI] -Fix: allow compilation with MINGW and _UNICODE (squirrel has some problems with that)
glx
parents:
9387
diff
changeset
|
10 |
/* Disable unicode for squirrel to allow compilation with MINGW |
cb4e3c4ae84e
(svn r9181) [NoAI] -Fix: allow compilation with MINGW and _UNICODE (squirrel has some problems with that)
glx
parents:
9387
diff
changeset
|
11 |
* and simplify coding for WIN32 (squirrel headers miss a lot of "string" functions) |
cb4e3c4ae84e
(svn r9181) [NoAI] -Fix: allow compilation with MINGW and _UNICODE (squirrel has some problems with that)
glx
parents:
9387
diff
changeset
|
12 |
*/ |
cb4e3c4ae84e
(svn r9181) [NoAI] -Fix: allow compilation with MINGW and _UNICODE (squirrel has some problems with that)
glx
parents:
9387
diff
changeset
|
13 |
#undef _UNICODE |
cb4e3c4ae84e
(svn r9181) [NoAI] -Fix: allow compilation with MINGW and _UNICODE (squirrel has some problems with that)
glx
parents:
9387
diff
changeset
|
14 |
#endif |
9365
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
15 |
#include <squirrel.h> |
9395
4337e022594c
(svn r9187) [NoAI] -Change: renamed SquirrelCore to SquirrelEngine, as it is more
truelight
parents:
9393
diff
changeset
|
16 |
#include "engine.hpp" |
9365
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
17 |
|
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
18 |
class Squirrel: public AIController { |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
19 |
private: |
9381
df270ca8eec8
(svn r9171) [NoAI] -Fix: call GameLoop() of the instance directly
truelight
parents:
9377
diff
changeset
|
20 |
HSQOBJECT SQ_instance; ///< The internal instance of squirrel |
9395
4337e022594c
(svn r9187) [NoAI] -Change: renamed SquirrelCore to SquirrelEngine, as it is more
truelight
parents:
9393
diff
changeset
|
21 |
SquirrelEngine *engine; ///< The SquirrelEngine |
9375
8bbd77b18de4
(svn r9163) [NoAI] -Codechange: put AddMethod in his own function, so calling often is easier
truelight
parents:
9373
diff
changeset
|
22 |
|
8bbd77b18de4
(svn r9163) [NoAI] -Codechange: put AddMethod in his own function, so calling often is easier
truelight
parents:
9373
diff
changeset
|
23 |
/** |
9373
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
24 |
* Registers all our classes, so it can be used from Squirrel. |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
25 |
*/ |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
26 |
void RegisterClasses(); |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
27 |
|
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
28 |
/** |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
29 |
* Constructor for Squirrel AIController. We assign the real 'this' value to |
9377
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
30 |
* the instance pointer, so we can easy look up this->. |
9373
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
31 |
*/ |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
32 |
static SQInteger SQConstructor(HSQUIRRELVM vm); |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
33 |
|
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
34 |
/** |
9377
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
35 |
* Destructor for Squirrel AIController. This is called if the class is |
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
36 |
* destroyed inside the script. |
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
37 |
*/ |
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
38 |
static SQInteger SQDestructor(SQUserPointer p, SQInteger size); |
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
39 |
|
3f1327677bcd
(svn r9166) [NoAI] -Add: added destructor code, so we can do things there in the future
truelight
parents:
9375
diff
changeset
|
40 |
/** |
9373
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
41 |
* A wrapper around the AIController class, as that can't be automated. |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
42 |
*/ |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
43 |
static SQInteger SQGetTick(HSQUIRRELVM vm); |
d03563181088
(svn r9160) [NoAI] -Add: added AIController for Squirrel; all AIs, C++ or Squirrel, should extend this class
truelight
parents:
9365
diff
changeset
|
44 |
|
9385
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
45 |
/** |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
46 |
* This is called by the init-part of a script to indicate there is an AI class. |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
47 |
*/ |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
48 |
static SQInteger SQRegisterAI(HSQUIRRELVM vm); |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
49 |
|
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
50 |
/** |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
51 |
* Create a class with the name 'class' and set all pointers correctly. |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
52 |
*/ |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
53 |
bool SQCreateClass(const char *classname); |
56803dfb2ff6
(svn r9176) [NoAI] -Add: added a RegisterAI() proc, that makes the AI known to the
truelight
parents:
9381
diff
changeset
|
54 |
|
9365
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
55 |
public: |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
56 |
Squirrel(const char *script_dir); |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
57 |
~Squirrel(); |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
58 |
|
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
59 |
/* virtual */ void GameLoop(); |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
60 |
}; |
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
61 |
|
c3d08e0b1083
(svn r9151) [NoAI] -Add: added squirrel module that loads squirrel scripts and
truelight
parents:
diff
changeset
|
62 |
#endif /* SQUIRREL_HPP */ |