| Line |   | 
|---|
| 1 |  | 
|---|
| 2 | #include <iostream> | 
|---|
| 3 |  | 
|---|
| 4 | #include "base_object.h" | 
|---|
| 5 | #include "lunar.h" | 
|---|
| 6 |  | 
|---|
| 7 | #include "script_class.h" | 
|---|
| 8 |  | 
|---|
| 9 |  | 
|---|
| 10 | class Object : public BaseObject { | 
|---|
| 11 |    public: | 
|---|
| 12 |      static const char className[]; | 
|---|
| 13 |      static Lunar<Object>::RegType methods[]; | 
|---|
| 14 |  | 
|---|
| 15 |      Object(lua_State* L) {callCount = 0; } | 
|---|
| 16 |      Object(){callCount = 0;}; | 
|---|
| 17 |      ~Object() { printf("deleted Object (%p)\n", this); } | 
|---|
| 18 |  | 
|---|
| 19 |         //meber functions | 
|---|
| 20 |      void takeParam(int i) | 
|---|
| 21 |      { | 
|---|
| 22 |        printf("Lua passed %i to c++\n",i); | 
|---|
| 23 |      } | 
|---|
| 24 |  | 
|---|
| 25 |      int printName(lua_State* L) | 
|---|
| 26 |      { | 
|---|
| 27 |        this->printName(); | 
|---|
| 28 |        return 0; | 
|---|
| 29 |      } | 
|---|
| 30 |  | 
|---|
| 31 |      void printName() | 
|---|
| 32 |      { | 
|---|
| 33 |        callCount ++; | 
|---|
| 34 |        printf("Hi i'm object %p ! This is the %i. call.\n",this,callCount); | 
|---|
| 35 |      } | 
|---|
| 36 |  | 
|---|
| 37 |      int getCallCount(){ return callCount; } | 
|---|
| 38 |  | 
|---|
| 39 |    private: | 
|---|
| 40 |      int callCount; | 
|---|
| 41 |  | 
|---|
| 42 |  }; | 
|---|
| 43 |  | 
|---|
| 44 |  const char Object::className[] = "Object"; | 
|---|
| 45 |  | 
|---|
| 46 |  Lunar<Object>::RegType Object::methods[] = { | 
|---|
| 47 |    {"printName", new ExecutorLua0<Object>(&Object::printName)}, | 
|---|
| 48 |    {"getCallCount", new ExecutorLua0ret<Object, int>(&Object::getCallCount)}, | 
|---|
| 49 |    {"takeParam", new ExecutorLua1<Object, int>(&Object::takeParam)}, | 
|---|
| 50 |    {0,0} | 
|---|
| 51 |  }; | 
|---|
| 52 |  | 
|---|
| 53 |  CREATE_SCRIPTABLE_CLASS(Object, CL_TEST_OBJECT); | 
|---|
       
      
      Note: See 
TracBrowser
        for help on using the repository browser.