- Timestamp:
- Jun 8, 2006, 4:50:50 PM (18 years ago)
- Location:
- trunk/src
- Files:
-
- 5 deleted
- 22 edited
- 11 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/Makefile.am
r7810 r8271 28 28 $(libORXlibs_a_LIBRARIES_) \ 29 29 $(CURL_LIBS) \ 30 @QT_LIBS@ 30 @QT_LIBS@ \ 31 -L../extern_libs @LUA_LIBS@ 31 32 32 33 orxonox_SOURCES = \ -
trunk/src/defs/class_id.h
r8190 r8271 84 84 85 85 CL_WORLD_ENTITY = 0x40000000, 86 87 CL_RESOURCE = 0x80000000,88 86 89 87 /// subsuper-classes … … 223 221 // Testing Entities 224 222 CL_TEST_ENTITY = 0x00000409, 223 CL_ACCOUNT = 0x00000410, 224 CL_TEST_OBJECT = 0x00000411, 225 225 226 226 // misc … … 242 242 CL_AMMO_CONTAINER = 0x00000604, 243 243 CL_HUD = 0x00000620, 244 245 246 CL_SCRIPT_MANAGER = 0x00000650, 247 CL_SCRIPT = 0x00000651, 248 CL_SCRIPT_CLASS = 0x00000652, 249 CL_SCRIPT_TRIGGER = 0x00000652, 244 250 245 251 -
trunk/src/defs/include_paths.am
r8145 r8271 26 26 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/newmat 27 27 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/sound 28 AM_CXXFLAGS+=-I$(MAINSRCDIR)/lib/script_engine 28 29 AM_CXXFLAGS+=-I$(MAINSRCDIR)/defs 29 30 AM_CXXFLAGS+=-I$(MAINSRCDIR)/font … … 35 36 AM_CXXFLAGS+=-I$(MAINSRCDIR)/util/track 36 37 AM_CXXFLAGS+=-I$(MAINSRCDIR)/subprojects 38 AM_CXXFLAGS+=-I$(MAINSRCDIR)/../extern_libs -
trunk/src/lib/BuildLibs.am
r8190 r8271 6 6 $(LIB_PREFIX)/gui/gl/libORXglgui.a \ 7 7 $(LIB_PREFIX)/gui/libORXbasegui.a \ 8 $(LIB_PREFIX)/script_engine/libORXscript.a \ 8 9 $(LIB_PREFIX)/graphics/importer/libORXimporter.a \ 9 10 $(LIB_PREFIX)/graphics/libORXgraphics.a \ -
trunk/src/lib/Makefile.am
r8061 r8271 16 16 util/executor/executor.cc \ 17 17 util/executor/executor_functional.cc \ 18 util/executor/executor_lua.cc \ 18 19 \ 19 20 util/loading/resource_manager.cc \ … … 45 46 util/executor/executor_functional.h \ 46 47 util/executor/executor_xml.h \ 48 util/executor/executor_lua.h \ 47 49 util/executor/functor_list.h \ 50 \ 48 51 util/preferences.h \ 49 52 util/threading.h \ -
trunk/src/lib/gui/gl/signal_connector.cc
r8145 r8271 92 92 { 93 93 if (this->isValid()) 94 (*this->exec)(this->object, 0, NULL); 94 { 95 static int count = 0; 96 (*this->exec)(this->object, count, NULL); 97 } 95 98 } 96 99 … … 102 105 { 103 106 if (exec != NULL && object != NULL) 104 (*this->exec)(this->object, 1, (void*)&value0); 107 { 108 static int count = 1; 109 (*this->exec)(this->object, count, (void*)&value0); 110 } 105 111 } 106 112 … … 114 120 if (exec != NULL && object != NULL) 115 121 { 122 static int count = 2; 116 123 MultiType mt[] = { value0, value1 }; 117 (*this->exec)(this->object, 2, mt);124 (*this->exec)(this->object, count, mt); 118 125 } 119 126 } … … 129 136 if (exec != NULL && object != NULL) 130 137 { 138 static int count = 3; 131 139 MultiType mt[] = { value0, value1, value2 }; 132 (*this->exec)(this->object, 3, mt);140 (*this->exec)(this->object, count, mt); 133 141 } 134 142 } … … 145 153 if (exec != NULL && object != NULL) 146 154 { 155 static int count = 4; 147 156 MultiType mt[] = { value0, value1, value2, value3 }; 148 (*this->exec)(this->object, 4, mt);157 (*this->exec)(this->object, count, mt); 149 158 } 150 159 } … … 162 171 if (exec != NULL && object != NULL) 163 172 { 173 static int count = 5; 164 174 MultiType mt[] = { value0, value1, value2, value3, value4 }; 165 (*this->exec)(this->object, 5, mt);175 (*this->exec)(this->object, count, mt); 166 176 } 167 177 } -
trunk/src/lib/lang/class_list.cc
r8145 r8271 221 221 return (*bo); 222 222 } 223 } 224 return NULL; 225 } 226 227 228 /** 229 * @brief checks if the BaseObject* object exists. 230 * @param objectName the name of the BaseObject to look for 231 * @param classID if not CL_NULL it will only search through a specific type of Objects. Otherwise it will be searched everywhere. 232 * @return true, if the Object Exists in the specified ClassID, false otherwise 233 * @todo: speed this up!! 234 */ 235 BaseObject* ClassList::getObject(const std::string& objectName, const std::string& className) 236 { 237 ClassList* cl = ClassList::getClassList(className); 238 if (cl != NULL) 239 { 240 std::list<BaseObject*>::iterator bo; 241 for (bo = cl->objectList.begin(); bo != cl->objectList.end(); bo++) 242 if ((*bo)->getName() != NULL && objectName == (*bo)->getName()) 243 return (*bo); 223 244 } 224 245 return NULL; -
trunk/src/lib/lang/class_list.h
r7429 r8271 42 42 static const std::list<BaseObject*>* getList(const std::string& className); // { return (ClassList* fl = ClassList::getClassList(className) != NULL)? &(fl->objectList) : NULL; }; 43 43 static const std::list<std::string>* getClassNames(); 44 static BaseObject* getObject(const std::string& name, ClassID classID = CL_NULL); 44 static BaseObject* getObject(const std::string& objectName, ClassID classID = CL_NULL); 45 static BaseObject* getObject(const std::string& objectName, const std::string& className); 45 46 static bool exists(const BaseObject* object, ClassID classID = CL_NULL); 46 47 static bool exists(const std::string& className, const std::string& objectName); -
trunk/src/lib/script_engine/Makefile.am
r8061 r8271 1 1 MAINSRCDIR=../.. 2 2 include $(MAINSRCDIR)/defs/include_paths.am 3 4 5 LIB_PREFIX=$(MAINSRCDIR)/lib 6 include $(MAINSRCDIR)/lib/BuildLibs.am 7 8 3 9 4 10 INCLUDES= -I../../../extern_libs … … 6 12 noinst_LIBRARIES = libORXscript.a 7 13 8 libORXscript_a_SOURCES = 14 libORXscript_a_SOURCES = \ 15 script.cc\ 16 script_manager.cc\ 17 script_class.cc\ 18 account.cc \ 19 object.cc 20 9 21 10 22 AM_CPPFLAGS= @LUA_INCLUDES@ 11 23 12 bin_PROGRAMS = account 13 account_SOURCES = \ 14 account.cc\ 15 Script.cc 24 noinst_HEADERS = \ 25 lunar.h\ 26 script.h\ 27 script_manager.h\ 28 script_class.h 16 29 17 30 18 31 19 account_LDADD = libORXscript.a -L../../../extern_libs @LUA_LIBS@20 32 21 #main_LDFLAGS = 33 check_PROGRAMS = example 22 34 23 35 24 noinst_HEADERS = \ 25 lunar.h\ 26 Script.h 36 37 38 39 40 41 example_DEPENDENCIES = \ 42 $(MAINSRCDIR)/world_entities/libORXwe.a \ 43 $(libORXlibs_a_LIBRARIES_) \ 44 $(MAINSRCDIR)/util/libORXutils.a 45 46 example_LDADD = \ 47 $(MAINSRCDIR)/util/libORXutils.a \ 48 $(libORXlibs_a_LIBRARIES_) \ 49 libORXscript.a -L../../../extern_libs @LUA_LIBS@ \ 50 $(MAINSRCDIR)/world_entities/libORXwe.a \ 51 $(libORXlibs_a_LIBRARIES_) \ 52 $(MAINSRCDIR)/util/libORXutils.a 53 54 example_SOURCES= \ 55 example.cc \ 56 \ 57 ../util/executor/executor_lua.cc -
trunk/src/lib/script_engine/lunar.h
r8061 r8271 3 3 4 4 #include <string> 5 #include "Script.h" 5 #include <cassert> 6 #include "script.h" 6 7 7 8 #include "luaincl.h" 9 #include "executor/executor_lua.h" 8 10 9 11 … … 12 14 typedef struct { T *pT; } userdataType; 13 15 public: 14 typedef int (T::*mfp)(lua_State *L);16 typedef Executor* mfp; 15 17 typedef struct { const char *name; mfp mfunc; } RegType; 16 18 … … 139 141 static int insertObject(Script* script, T* obj, const std::string& name, bool gc=false) 140 142 { 141 if(script != NULL) 142 return insertObject(script->getLuaState(), obj, name, gc); 143 144 143 assert (script != NULL); 144 return insertObject(script->getLuaState(), obj, name, gc); 145 145 } 146 146 … … 163 163 // get member function from upvalue 164 164 RegType *l = static_cast<RegType*>(lua_touserdata(L, lua_upvalueindex(1))); 165 return (obj->*(l->mfunc))(L); // call member function 165 int value; 166 (*l->mfunc)(obj, value, L); // call member function 167 return value; 166 168 } 167 169 -
trunk/src/lib/script_engine/lunartest2.lua
r8061 r8271 15 15 getmetatable(Account).__index = parent 16 16 17 18 function test() 19 io.write("Hi i'm test\n") 20 end 21 22 17 23 function main(arg) 24 -- use parameter 18 25 io.write("main received ", arg) 19 26 io.write(" as parameter\n") 27 28 --call member of an inserted object 20 29 Obj:printName() 30 31 --create object of a registered type 32 o = Object() 33 o:printName() 34 35 --take returnvalue from c 36 callCount = Obj:getCallCount() 37 io.write("callCount is now ",callCount) 38 io.write("\n") 39 40 --pass parameters to a c++ method 41 Obj:takeParam(3) 42 43 --print object information 21 44 print('a =', a) 22 45 print('b =', b) … … 28 51 Obj:printName() 29 52 30 return 2 53 return 2,false,2.72 54 31 55 --debug.debug() 32 56 end -
trunk/src/lib/util/executor/executor.h
r8048 r8271 53 53 // EXECUTE 54 54 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 55 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const = 0;55 virtual void operator()(BaseObject* object, int& count, void* values) const = 0; 56 56 /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */ 57 57 virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const = 0; -
trunk/src/lib/util/executor/executor_functional.h
r8048 r8271 123 123 124 124 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 125 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const125 virtual void operator()(BaseObject* object, int& count, void* values) const 126 126 { 127 127 (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(); … … 163 163 164 164 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 165 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const165 virtual void operator()(BaseObject* object, int& count, void* values) const 166 166 { 167 167 const MultiType* mt = (const MultiType*)values; … … 227 227 228 228 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 229 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const229 virtual void operator()(BaseObject* object, int& count, void* values) const 230 230 { 231 231 const MultiType* mt = (const MultiType*)values; … … 282 282 283 283 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 284 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const284 virtual void operator()(BaseObject* object, int& count, void* values) const 285 285 { 286 286 const MultiType* mt = (const MultiType*)values; … … 340 340 341 341 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 342 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const342 virtual void operator()(BaseObject* object, int& count, void* values) const 343 343 { 344 344 const MultiType* mt = (const MultiType*)values; … … 400 400 401 401 /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */ 402 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const402 virtual void operator()(BaseObject* object, int& count, void* values) const 403 403 { 404 404 const MultiType* mt = (const MultiType*)values; -
trunk/src/lib/util/executor/executor_lua.cc
r8057 r8271 18 18 #include "executor_lua.h" 19 19 20 template<> bool fromLua<bool>(lua_state* state, int index) { return lua_toboolean(state, index); }; 21 template<> int fromLua<int>(lua_state* state, int index) { return (int)lua_toumber(state, index); }; 22 template<> unsigned int fromLua<unsigned int>(lua_state* state, int index) { return (unsigned int)lua_tonumber(state, index); }; 23 template<> float fromLua<float>(lua_state* state, int index) { return (float)lua_tonumber(state, index); }; 24 template<> char fromLua<char>(lua_state* state, int index) { reutnr (char)lua_tonumber(state, index); }; 25 template<> const std::string& fromLua<const std::string&>(lua_state* state, int index) { return lua_tostring(state, index); }; 20 std::string temp; 21 22 template<> bool fromLua<bool>(lua_State* state, int index) { return lua_toboolean(state, index); }; 23 template<> int fromLua<int>(lua_State* state, int index) { return (int)lua_tonumber(state, index); }; 24 template<> unsigned int fromLua<unsigned int>(lua_State* state, int index) { return (unsigned int)lua_tonumber(state, index); }; 25 template<> float fromLua<float>(lua_State* state, int index) { return (float)lua_tonumber(state, index); }; 26 template<> char fromLua<char>(lua_State* state, int index) { return (char)lua_tonumber(state, index); }; 27 template<> const std::string& fromLua<const std::string&>(lua_State* state, int index) { temp = lua_tostring(state, index); return temp; }; 26 28 27 29 28 30 29 template<> void toLua<bool>(lua_ state* state, bool value) { lua_pushboolean(state, (int) value); };30 template<> void toLua<int>(lua_ state* state, int value) { lua_pushnumber(state, (lua_Number) value); };31 template<> void toLua<unsigned int>(lua_ state* state, unsigned int value){ lua_pushnumber(state, (lua_Number) value); };32 template<> void toLua<float>(lua_ state* state, float value) { lua_pushnumber(state, (lua_Number) value); };33 template<> void toLua<char>(lua_ state* state, char value) { lua_pushnumber(state, (lua_Number) value); };34 template<> void toLua<const std::string&>(lua_ state* state, const std::string& value) {lua_pushstring (state, value.c_str()); }31 template<> void toLua<bool>(lua_State* state, bool value) { lua_pushboolean(state, (int) value); }; 32 template<> void toLua<int>(lua_State* state, int value) { lua_pushnumber(state, (lua_Number) value); }; 33 template<> void toLua<unsigned int>(lua_State* state, unsigned int value){ lua_pushnumber(state, (lua_Number) value); }; 34 template<> void toLua<float>(lua_State* state, float value) { lua_pushnumber(state, (lua_Number) value); }; 35 template<> void toLua<char>(lua_State* state, char value) { lua_pushnumber(state, (lua_Number) value); }; 36 template<> void toLua<const std::string&>(lua_State* state, const std::string& value) {lua_pushstring (state, value.c_str()); } -
trunk/src/lib/util/executor/executor_lua.h
r8057 r8271 4 4 */ 5 5 6 #ifndef _EXECUTOR_ SPECIALS_H7 #define _EXECUTOR_ SPECIALS_H6 #ifndef _EXECUTOR_LUA_H 7 #define _EXECUTOR_LUA_H 8 8 9 9 #include "executor.h" 10 10 #include "compiler.h" 11 11 #include "debug.h" 12 12 #include "luaincl.h" 13 13 14 14 15 15 16 template<typename type> type fromLua(lua_ state* state, int index) { PRINTF(1)("NOT IMPLEMENTED\n"); };17 template<> bool fromLua<bool>(lua_ state* state, int index);18 template<> int fromLua<int>(lua_ state* state, int index);19 template<> unsigned int fromLua<unsigned int>(lua_ state* state, int index);20 template<> float fromLua<float>(lua_ state* state, int index);21 template<> char fromLua<char>(lua_ state* state, int index);22 template<> const std::string& fromLua<const std::string&>(lua_ state* state, int index);23 24 25 template<typename type> void toLua(lua_ state* state, type value) { PRINTF(1)("NOT IMPLEMENTED\n"); };26 template<> void toLua<bool>(lua_ state* state, bool value);27 template<> void toLua<int>(lua_ state* state, int value);28 template<> void toLua<unsigned int>(lua_ state* state, unsigned int value);29 template<> void toLua<float>(lua_ state* state, float value);30 template<> void toLua<char>(lua_ state* state, char value);31 template<> void toLua<const std::string&>(lua_ state* state, const std::string& value);16 template<typename type> type fromLua(lua_State* state, int index) { PRINTF(1)("NOT IMPLEMENTED\n"); }; 17 template<> bool fromLua<bool>(lua_State* state, int index); 18 template<> int fromLua<int>(lua_State* state, int index); 19 template<> unsigned int fromLua<unsigned int>(lua_State* state, int index); 20 template<> float fromLua<float>(lua_State* state, int index); 21 template<> char fromLua<char>(lua_State* state, int index); 22 template<> const std::string& fromLua<const std::string&>(lua_State* state, int index); 23 24 25 template<typename type> void toLua(lua_State* state, type value) { PRINTF(1)("NOT IMPLEMENTED\n"); }; 26 template<> void toLua<bool>(lua_State* state, bool value); 27 template<> void toLua<int>(lua_State* state, int value); 28 template<> void toLua<unsigned int>(lua_State* state, unsigned int value); 29 template<> void toLua<float>(lua_State* state, float value); 30 template<> void toLua<char>(lua_State* state, char value); 31 template<> void toLua<const std::string&>(lua_State* state, const std::string& value); 32 32 33 33 // FORWARD DECLARATION 34 34 35 /////////////////////// 36 ///// WITHOUT RET ///// 37 /////////////////////// 35 38 36 39 /////////// 37 40 //// 0 //// 38 41 /////////// 39 //! Executes a Function with a lua_ state* parameter.42 //! Executes a Function with a lua_State* parameter. 40 43 template<class T> class ExecutorLua0 : public Executor 41 44 { … … 62 65 } 63 66 64 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const67 virtual void operator()(BaseObject* object, int& count, void* values) const 65 68 { 66 69 (dynamic_cast<T*>(object)->*(functionPointer))(); 70 count = 0; 67 71 } 68 72 … … 72 76 virtual Executor* clone () const 73 77 { 74 return = new ExecutorLua0<T>(ExecutorLua0<T>(this->functionPointer)); 75 } 78 return new ExecutorLua0<T>(ExecutorLua0<T>(this->functionPointer)); 79 } 80 private: 81 void (T::*functionPointer)(); 76 82 }; 77 83 … … 81 87 //// 1 //// 82 88 /////////// 83 //! Executes a Function with a lua_ state* parameter.89 //! Executes a Function with a lua_State* parameter. 84 90 template<class T, typename type0> class ExecutorLua1 : public Executor 85 91 { … … 89 95 * @param function a Function to call 90 96 */ 91 ExecutorLua 0(void(T::*function)(type0))97 ExecutorLua1(void(T::*function)(type0)) 92 98 : Executor(ExecutorParamType<type0>()) 93 99 { … … 106 112 } 107 113 108 virtual void operator()(BaseObject* object, unsigned int count, void* values) const 109 { 110 lua_state* state = (lua_state*)values; 114 virtual void operator()(BaseObject* object, int& count, void* values) const 115 { 116 lua_State* state = (lua_State*)values; 117 count = 0; 111 118 112 119 (dynamic_cast<T*>(object)->*(functionPointer))(fromLua<type0>(state, 1)); … … 118 125 virtual Executor* clone () const 119 126 { 120 return = new ExecutorLua0<T>(ExecutorLua0<T>(this->functionPointer)); 121 } 127 return new ExecutorLua1<T, type0>((this->functionPointer)); 128 } 129 private: 130 void (T::*functionPointer)(type0); 122 131 }; 123 132 … … 127 136 //// 2 //// 128 137 /////////// 129 //! Executes a Function with a lua_ state* parameter.130 template<class T, typename type0, typename type1> class ExecutorLua 1: public Executor131 { 132 public: 133 /** 134 * @brief Constructor of a ExecutorXML 135 * @param function a Function to call 136 */ 137 ExecutorLua 0(void(T::*function)(type0, type1))138 //! Executes a Function with a lua_State* parameter. 139 template<class T, typename type0, typename type1> class ExecutorLua2 : public Executor 140 { 141 public: 142 /** 143 * @brief Constructor of a ExecutorXML 144 * @param function a Function to call 145 */ 146 ExecutorLua2(void(T::*function)(type0, type1)) 138 147 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>()) 139 148 { … … 152 161 } 153 162 154 virtual void operator()(BaseObject* object, unsigned int count, void* values) const 155 { 156 lua_state* state = (lua_state*)values; 163 virtual void operator()(BaseObject* object, int& count, void* values) const 164 { 165 lua_State* state = (lua_State*)values; 166 count = 0; 157 167 158 168 (dynamic_cast<T*>(object)->*(functionPointer))( … … 166 176 virtual Executor* clone () const 167 177 { 168 return = new ExecutorLua0<T>(ExecutorLua0<T>(this->functionPointer)); 169 } 170 }; 171 172 173 174 #endif /* _EXECUTOR_SPECIALS_H */ 178 return new ExecutorLua2<T, type0, type1>(this->functionPointer); 179 } 180 private: 181 void (T::*functionPointer)(type0, type1); 182 }; 183 184 185 186 187 188 189 190 //////////////////// 191 ///// WITH RET ///// 192 //////////////////// 193 194 195 /////////// 196 //// 0 //// 197 /////////// 198 //! Executes a Function with a lua_State* parameter. 199 template<class T, typename ret> class ExecutorLua0ret : public Executor 200 { 201 public: 202 /** 203 * @brief Constructor of a ExecutorXML 204 * @param function a Function to call 205 */ 206 ExecutorLua0ret(ret (T::*function)()) 207 : Executor() 208 { 209 this->functionPointer = function; 210 this->functorType = Executor_Objective | Executor_NoLoadString; 211 } 212 213 /** 214 * @brief executes the Command on BaseObject 215 * @param object the BaseObject to execute this Executor on 216 * @param loadString ignored in this case 217 */ 218 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 219 { 220 PRINTF(1)("no usefull executor\n"); 221 } 222 223 virtual void operator()(BaseObject* object, int& count, void* values) const 224 { 225 lua_State* state = (lua_State*)values; 226 count = 1; 227 228 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))()); 229 } 230 231 /** 232 * @returns a _new_ Copy of this Executor 233 */ 234 virtual Executor* clone () const 235 { 236 return new ExecutorLua0ret<T, ret>(this->functionPointer); 237 } 238 private: 239 ret (T::*functionPointer)(); 240 }; 241 242 243 244 /////////// 245 //// 1 //// 246 /////////// 247 //! Executes a Function with a lua_State* parameter. 248 template<class T, typename ret, typename type0> class ExecutorLua1ret : public Executor 249 { 250 public: 251 /** 252 * @brief Constructor of a ExecutorXML 253 * @param function a Function to call 254 */ 255 ExecutorLua1ret(ret (T::*function)(type0)) 256 : Executor(ExecutorParamType<type0>()) 257 { 258 this->functionPointer = function; 259 this->functorType = Executor_Objective | Executor_NoLoadString; 260 } 261 262 /** 263 * @brief executes the Command on BaseObject 264 * @param object the BaseObject to execute this Executor on 265 * @param loadString ignored in this case 266 */ 267 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 268 { 269 PRINTF(1)("no usefull executor\n"); 270 } 271 272 virtual void operator()(BaseObject* object, int& count, void* values) const 273 { 274 lua_State* state = (lua_State*)values; 275 count = 1; 276 277 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 278 fromLua<type0>(state, 1))); 279 } 280 281 /** 282 * @returns a _new_ Copy of this Executor 283 */ 284 virtual Executor* clone () const 285 { 286 return new ExecutorLua1ret<T, ret, type0>(this->functionPointer); 287 } 288 private: 289 ret (T::*functionPointer)(type0); 290 }; 291 292 /////////// 293 //// 2 //// 294 /////////// 295 //! Executes a Function with a lua_State* parameter. 296 template<class T, typename ret, typename type0, typename type1> class ExecutorLua2ret : public Executor 297 { 298 public: 299 /** 300 * @brief Constructor of a ExecutorXML 301 * @param function a Function to call 302 */ 303 ExecutorLua2ret(ret (T::*function)(type0, type1)) 304 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>()) 305 { 306 this->functionPointer = function; 307 this->functorType = Executor_Objective | Executor_NoLoadString; 308 } 309 310 /** 311 * @brief executes the Command on BaseObject 312 * @param object the BaseObject to execute this Executor on 313 * @param loadString ignored in this case 314 */ 315 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 316 { 317 PRINTF(1)("no usefull executor\n"); 318 } 319 320 virtual void operator()(BaseObject* object, int& count, void* values) const 321 { 322 lua_State* state = (lua_State*)values; 323 count = 1; 324 325 toLua<ret>(state, (dynamic_cast<T*>(object)->*(functionPointer))( 326 fromLua<type0>(state, 1), 327 fromLua<type1>(state, 2) )); 328 } 329 330 /** 331 * @returns a _new_ Copy of this Executor 332 */ 333 virtual Executor* clone () const 334 { 335 return new ExecutorLua2ret<T, ret, type0, type1>(this->functionPointer); 336 } 337 private: 338 ret (T::*functionPointer)(type0, type1); 339 }; 340 341 342 343 344 345 346 347 #endif /* _EXECUTOR_LUA_H */ -
trunk/src/lib/util/executor/executor_xml.h
r8051 r8271 1 1 /*! 2 * @file executor .h2 * @file executor_xml.h 3 3 * Definition of a on-screen-shell 4 4 */ 5 5 6 #ifndef _EXECUTOR_ SPECIALS_H7 #define _EXECUTOR_ SPECIALS_H6 #ifndef _EXECUTOR_XML_H 7 #define _EXECUTOR_XML_H 8 8 9 9 #include "executor.h" … … 65 65 } 66 66 67 virtual void operator()(BaseObject* object, unsigned intcount, void* values) const67 virtual void operator()(BaseObject* object, int& count, void* values) const 68 68 { 69 69 PRINTF(1)("missuse of XML-operator, OR IMPLEMENT.\n"); … … 82 82 }; 83 83 84 #endif /* _EXECUTOR_ SPECIALS_H */84 #endif /* _EXECUTOR_XML_H */ -
trunk/src/lib/util/loading/resource.cc
r7195 r8271 26 26 Resource::Resource (const std::string& fileName) 27 27 { 28 this->setClassID(CL_RESOURCE, "Resource");28 // this->setClassID(CL_RESOURCE, "Resource"); 29 29 30 30 } -
trunk/src/story_entities/game_world.cc
r8255 r8271 139 139 } 140 140 141 141 #include "account.cc" 142 #include "object.cc" 142 143 /** 143 144 * loads the GameWorld by initializing all resources, and set their default values. … … 181 182 this->dataXML = (TiXmlElement*)root->Clone(); 182 183 184 185 Object* obj= new Object(); 186 obj->setName("Obj"); 187 Account* a = new Account(); 188 a->setName("a"); 189 Account *b = new Account(30); 190 b->setName("b"); 191 192 LoadParamXML(root, "ScriptManager", &this->scriptManager, ScriptManager, loadParams); 193 183 194 delete XMLDoc; 184 195 this->releaseLoadScreen(); … … 191 202 ErrorMessage GameWorld::unloadData() 192 203 { 204 193 205 PRINTF(3)("GameWorld::~GameWorld() - unloading the current GameWorld\n"); 206 this->scriptManager.flush(); 207 194 208 delete this->shell; 195 209 … … 215 229 this->bRunning = true; 216 230 231 State::setScripManager(&this->scriptManager); 232 217 233 this->run(); 218 234 } … … 225 241 { 226 242 PRINTF(3)("GameWorld::stop() - got stop signal\n"); 243 State::setScripManager(NULL); 227 244 this->bRunning = false; 228 245 } -
trunk/src/story_entities/game_world.h
r8190 r8271 11 11 #include "game_world_data.h" 12 12 #include "playable.h" 13 #include "script_manager.h" 13 14 14 15 namespace OrxShell { class Shell; }; 15 16 class WorldEntity; 16 17 class GameRules; 18 17 19 18 20 /** How many frames time values to keep … … 103 105 GameRules* gameRules; //!< Pointer to the data structure containig the game rules 104 106 105 106 107 private: 107 108 /* external modules interfaces */ 109 ScriptManager scriptManager; 108 110 OrxShell::Shell* shell; 109 111 }; -
trunk/src/util/state.cc
r7039 r8271 38 38 39 39 ObjectManager* State::objectManager = NULL; 40 40 ScriptManager* State::scriptManager = NULL; 41 41 42 42 unsigned int State::resX = 1; -
trunk/src/util/state.h
r8148 r8271 18 18 class ObjectManager; 19 19 class GameRules; 20 21 class ScriptManager; 20 22 21 23 … … 92 94 93 95 96 97 //////////////////// 98 /// SCRIP_ENGINE /// 99 //////////////////// 100 static void setScripManager(ScriptManager* scriptManager) { State::scriptManager = scriptManager; }; 101 static ScriptManager* getScriptManager() { return State::scriptManager; }; 102 94 103 //////////// 95 104 /// Menu /// … … 116 125 117 126 static SkyBox* skyBox; //!< The SkyBox used in the current world. 127 128 static ScriptManager* scriptManager; //!< The ScriptManager. 129 118 130 static unsigned int resX; //!< The X Resolution of the screen. 119 131 static unsigned int resY; //!< The Y Resolution of the screen. -
trunk/src/world_entities/WorldEntities.am
r8186 r8271 51 51 world_entities/elements/text_element.cc \ 52 52 \ 53 world_entities/effects/lightning_bolt.cc 53 world_entities/effects/lightning_bolt.cc \ 54 \ 55 world_entities/script_trigger.cc 54 56 55 57 … … 103 105 elements/text_element.h \ 104 106 \ 105 effects/lightning_bolt.h 107 effects/lightning_bolt.h \ 108 \ 109 script_trigger.h
Note: See TracChangeset
for help on using the changeset viewer.