- Timestamp:
- Jun 22, 2006, 1:09:20 PM (19 years ago)
- Location:
- trunk/src
- Files:
-
- 1 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/defs/class_id.h
r8619 r8711 222 222 // Testing Entities 223 223 CL_TEST_ENTITY = 0x00000409, 224 CL_ACCOUNT = 0x00000410,225 CL_TEST_OBJECT = 0x00000411,226 224 227 225 // misc -
trunk/src/lib/coord/p_node.h
r8490 r8711 103 103 /** @returns the absolute position */ 104 104 inline const Vector& getAbsCoor () const { return this->absCoordinate; }; 105 /** @returns the absolute X coordinate. */ 106 inline float getAbsCoorX() { return this->absCoordinate.x; }; 107 /** @returns the absolute Y Coordinate */ 108 inline float getAbsCoorY() { return this->absCoordinate.y; }; 109 /** @returns the absolute Z Coordinate */ 110 inline float getAbsCoorZ() { return this->absCoordinate.z; }; 111 105 112 /** @returns the absolute position */ 106 113 inline const Vector& getLastAbsCoor () const { return this->lastAbsCoordinate; }; 114 107 115 void shiftCoor (const Vector& shift); 108 116 void shiftCoor (float x, float y, float z) { this->shiftCoor(Vector(x, y, z)); }; -
trunk/src/lib/gui/gl/glgui_handler.cc
r8450 r8711 23 23 24 24 #include "class_list.h" 25 #include <cassert> 25 26 26 27 #include <cassert> -
trunk/src/lib/script_engine/Makefile.am
r8408 r8711 16 16 script_manager.cc \ 17 17 script_class.cc \ 18 script_method.cc \ 19 \ 20 account.cc \ 21 object.cc 22 23 18 script_method.cc 19 24 20 AM_CPPFLAGS= @LUA_INCLUDES@ 25 21 -
trunk/src/lib/script_engine/lunartest2.lua
r8408 r8711 22 22 23 23 function main(arg) 24 io.write("hello i am main! ")24 io.write("hello i am main!\n") 25 25 -- use parameter 26 26 io.write("main received ", arg) 27 27 io.write(" as parameter\n") 28 28 29 o = Object() 30 o:printName() 29 31 30 --call member of an inserted object 32 31 Obj:printName() 33 32 34 33 --create object of a registered type 35 --o = Object()36 --o:printName()34 o = Object() 35 o:printName() 37 36 38 37 --take returnvalue from c -
trunk/src/lib/script_engine/script.cc
r8408 r8711 1 /* 2 orxonox - the future of 3D-vertical-scrollers 3 4 Copyright (C) 2004 orx 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 ### File Specific: 12 main-programmer: Silvan Nellen 13 co-programmer: Benjamin Grauer 14 */ 15 1 16 #include "script.h" 2 17 #include "script_class.h" 3 18 #include "luaincl.h" 4 19 20 #include "util/loading/resource_manager.h" 5 21 6 22 #include "loading/load_param.h" … … 58 74 { 59 75 76 std::string filedest(ResourceManager::getInstance()->getDataDir()); 77 filedest += "scripts/" + filename; 78 60 79 if(currentFile.length() != 0) 61 80 { … … 64 83 } 65 84 66 int error = luaL_loadfile (luaState, file name.c_str());85 int error = luaL_loadfile (luaState, filedest.c_str()); 67 86 68 87 if(error == 0) 69 88 { 89 70 90 error = lua_pcall(luaState, 0, 0, 0); 71 91 … … 192 212 bool Script::pushParam(int param, std::string& toFunction) 193 213 { 194 if(currentFunction .compare(toFunction) == 0)214 if(currentFunction == toFunction) 195 215 { 196 216 lua_pushnumber(luaState, (lua_Number) param); 197 217 argumentCount++; 198 return true;218 return true; 199 219 } 200 220 else … … 267 287 returnCount--; 268 288 } 289 else 290 printf("ERROR: Form %s : trying to retreive non bolean value",this->currentFile.c_str()); 269 291 } 270 292 return returnValue; … … 313 335 } 314 336 337 bool Script::registerStandartClasses() 338 { 339 bool success = false; 340 341 //success = this->registerClass(std::string("Vector")); 342 343 return success; 344 } 345 346 347 bool Script::registerClass( const std::string& className) 348 { 349 BaseObject* scriptClass = ClassList::getObject(className, CL_SCRIPT_CLASS); 350 //printf("The script class for %s is at %p \n",className.c_str(),scriptClass); 351 WorldObject tmpObj; 352 if (scriptClass != NULL) 353 { 354 tmpObj.type = className; 355 if( !classIsRegistered(className) ) 356 { 357 static_cast<ScriptClass*>(scriptClass)->registerClass(this); 358 tmpObj.name = ""; 359 registeredObjects.push_back(tmpObj); 360 return true; 361 } 362 } 363 return false; 364 365 } 315 366 316 367 bool Script::classIsRegistered(const std::string& type) -
trunk/src/lib/script_engine/script.h
r8408 r8711 1 /*! 2 * @file scrip.h 3 * wrapper for a lua_State 4 */ 5 1 6 #ifndef _SCRIPT_H 2 7 #define _SCRIPT_H … … 58 63 59 64 int reportError(int error); //!< Get errormessage from the lua stack and print it. 65 bool registerStandartClasses(); //!< Register all the classes that the script might need 66 bool registerClass(const std::string& className); //!< Register a class but dont add any instances 60 67 bool classIsRegistered(const std::string& type); //!< Checks wheter the class "type" has already been registered with the script 61 68 bool objectIsAdded(const std::string& name); //!< Checks wheter the object "name" has already been added to the script -
trunk/src/lib/script_engine/script_class.cc
r8408 r8711 10 10 11 11 ### File Specific: 12 main-programmer: ...12 main-programmer: Benjamin Grauer 13 13 co-programmer: ... 14 14 */ -
trunk/src/lib/script_engine/script_manager.cc
r8408 r8711 1 /* 2 orxonox - the future of 3D-vertical-scrollers 3 4 Copyright (C) 2004 orx 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 ### File Specific: 12 main-programmer: Silvan Nellen 13 co-programmer: Benjamin Grauer 14 */ 15 16 1 17 #include <string> 2 18 #include <list> -
trunk/src/lib/script_engine/script_manager.h
r8271 r8711 1 /*! 2 * @file scrip_manager.h 3 * manages the scripts 4 */ 5 1 6 #ifndef _SCRIPT_MANAGER_H 2 7 #define _SCRIPT_MANAGER_H -
trunk/src/lib/script_engine/script_method.cc
r8413 r8711 10 10 11 11 ### File Specific: 12 main-programmer: ...12 main-programmer: Benjamin Grauer 13 13 co-programmer: ... 14 14 */ -
trunk/src/lib/script_engine/script_method.h
r8413 r8711 1 1 /*! 2 * @file script_ class.h2 * @file script_method.h 3 3 * @brief Definition of ... 4 4 */ -
trunk/src/lib/util/executor/executor_lua.h
r8527 r8711 182 182 183 183 184 /////////// 185 //// 3 //// 186 /////////// 187 //! Executes a Function with a lua_State* parameter. 188 template<class T, typename type0, typename type1, typename type2> class ExecutorLua3 : public Executor 189 { 190 public: 191 /** 192 * @brief Constructor of a ExecutorXML 193 * @param function a Function to call 194 */ 195 ExecutorLua3(void(T::*function)(type0, type1, type2)) 196 : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>()) 197 { 198 this->functionPointer = function; 199 this->functorType = Executor_Objective | Executor_NoLoadString; 200 } 201 202 /** 203 * @brief executes the Command on BaseObject 204 * @param object the BaseObject to execute this Executor on 205 * @param loadString ignored in this case 206 */ 207 virtual void operator()(BaseObject* object, const SubString& = SubString()) const 208 { 209 PRINTF(1)("no usefull executor\n"); 210 } 211 212 virtual void operator()(BaseObject* object, int& count, void* values) const 213 { 214 lua_State* state = (lua_State*)values; 215 count = 0; 216 217 (dynamic_cast<T*>(object)->*(functionPointer))( 218 fromLua<type0>(state, 1), 219 fromLua<type1>(state, 2), 220 fromLua<type2>(state, 3) ); 221 } 222 223 /** 224 * @returns a _new_ Copy of this Executor 225 */ 226 virtual Executor* clone () const 227 { 228 return new ExecutorLua3<T, type0, type1, type2>(this->functionPointer); 229 } 230 private: 231 void (T::*functionPointer)(type0, type1, type2); 232 }; 233 184 234 185 235 … … 209 259 this->functorType = Executor_Objective | Executor_NoLoadString; 210 260 } 211 261 212 262 /** 213 263 * @brief executes the Command on BaseObject -
trunk/src/story_entities/game_world.cc
r8490 r8711 142 142 } 143 143 144 #include "account.cc"145 #include "object.cc"146 144 /** 147 145 * loads the GameWorld by initializing all resources, and set their default values. … … 187 185 188 186 //remove this after finished testing !!!! 189 Object* obj= new Object(); 190 obj->setName("Obj"); 191 Account* a = new Account(); 192 a->setName("a"); 193 Account *b = new Account(30); 194 b->setName("b"); 195 187 //Object* obj= new Object(); 188 //obj->setName("Obj"); 189 //Account* a = new Account(); 190 //a->setName("a"); 191 //Account *b = new Account(30); 192 //b->setName("b"); 196 193 197 194 LoadParamXML(root, "ScriptManager", &this->scriptManager, ScriptManager, loadParams); -
trunk/src/world_entities/script_trigger.cc
r8408 r8711 1 //for testing 2 #include "luaincl.h" 1 /* 2 orxonox - the future of 3D-vertical-scrollers 3 4 Copyright (C) 2004 orx 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 ### File Specific: 12 main-programmer: Silvan Nellen 13 co-programmer: ... 14 */ 15 3 16 4 17 #include "script_trigger.h" … … 20 33 this->toList(OM_COMMON); 21 34 35 returnCount = 1; 36 actionFinished = false; 22 37 doDebugDraw = false; 38 invert = false; 23 39 scriptCalled = false; 24 40 scriptIsOk = false; 41 triggerLasts = false; 25 42 loadParams(root); 26 43 … … 71 88 .describe("True if the script shoul only be called once") 72 89 .defaultValues(""); 90 LoadParam(root, "invert", this, ScriptTrigger, setInvert) 91 .describe("") 92 .defaultValues(""); 93 LoadParam(root, "triggerlasts", this, ScriptTrigger, setTriggerLasts) 94 .describe("") 95 .defaultValues(""); 73 96 LoadParam(root, "debugdraw", this, ScriptTrigger, setDebugDraw) 74 97 .describe("True if the script should only be called once") … … 118 141 void ScriptTrigger::tick(float timestep) 119 142 { 120 121 if( this->distance(target) < radius) 143 if(actionFinished) return; 144 145 if(triggerLasts && scriptCalled) 146 { 147 executeAction(timestep); 148 return; 149 } 150 151 if( !invert && this->distance(target) < radius) 122 152 { 123 153 if(!callOnce) 124 154 { 125 executeAction(); 155 executeAction(timestep); 156 scriptCalled = true; 126 157 } 127 158 else if(callOnce && !scriptCalled) 128 159 { 129 executeAction( );160 executeAction(timestep); 130 161 scriptCalled = true; 131 162 } 163 164 } 165 else if( invert && this->distance(target) > radius) 166 { 167 if(!callOnce) 168 { 169 executeAction(timestep); 170 } 171 else if(callOnce && !scriptCalled) 172 { 173 executeAction(timestep); 174 scriptCalled = true; 175 } 176 132 177 } 133 178 //else … … 137 182 138 183 139 void ScriptTrigger::executeAction( )184 void ScriptTrigger::executeAction(float timestep) 140 185 { 141 186 if(scriptIsOk) 142 187 { 143 testScriptingFramework();144 /*if(!(script->selectFunction(this->functionName,0)) )188 //testScriptingFramework(); 189 if(!(script->selectFunction(this->functionName,returnCount)) ) 145 190 printf("Error ScriptTrigger: Selection of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str()); 191 192 script->pushParam( timestep, this->functionName); 193 146 194 if( !(script->executeFunction()) ) 147 printf("Error ScriptTrigger: Execution of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str());*/ 195 printf("Error ScriptTrigger: Execution of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str()); 196 197 actionFinished = script->getReturnedBool(); 148 198 } 199 200 149 201 } 150 202 … … 165 217 } 166 218 167 219 /* 168 220 void ScriptTrigger::testScriptingFramework() 169 221 { … … 208 260 printf("-------------------------- top of the stack:%i\n",lua_gettop(script->getLuaState())); 209 261 210 } 262 }*/ -
trunk/src/world_entities/script_trigger.h
r8408 r8711 1 /*! 2 * @file scrip_trigger.h 3 * triggeres a script 4 */ 5 1 6 #ifndef _SCRIPT_TRIGGER_H 2 7 #define _SCRIPT_TRIGGER_H … … 22 27 /// DO WORK 23 28 virtual void tick(float timestep); 24 virtual void executeAction( );29 virtual void executeAction(float timestep); 25 30 void testScriptingFramework(); 26 31 … … 30 35 void setTriggerParent(const std::string& name); 31 36 void setCallOnce(const bool call) { this->callOnce = call; } 37 void setTriggerLasts(const bool lasts) { this->triggerLasts = lasts; } 38 void setInvert(const bool inv) { this->invert = invert; } 32 39 void setRadius(const float radius) { if(radius>0) this->radius = radius; } 33 40 void setDelay(const float time){if(delay>0) this->delay = delay; } 34 41 void setScript(const std::string& file); 35 void setFunction(const std::string& function){ this->functionName = function; 42 void setFunction(const std::string& function){ this->functionName = function;} 36 43 void setDebugDraw(const bool draw) { this->doDebugDraw = draw; } 37 44 … … 43 50 WorldEntity* target; 44 51 bool callOnce; 52 bool triggerLasts; 53 bool invert; 45 54 float radius; 46 55 float delay; … … 52 61 bool scriptCalled; 53 62 bool scriptIsOk; 63 bool actionFinished; 64 int returnCount; //TODO: set return count correctly 54 65 55 66 }; -
trunk/src/world_entities/space_ships/helicopter.h
r8408 r8711 12 12 #include "sound_buffer.h" 13 13 #include "sound_source.h" 14 15 #include "script_class.h" 14 16 15 17 class Helicopter : public Playable … … 38 40 virtual void process(const Event &event); 39 41 40 virtual void moveUp(bool move){bUp = move;}; 42 virtual void moveUp(bool move){bAscend = move;}; 43 virtual void moveDown(bool move){bDescend = move;}; 41 44 42 45 … … 80 83 }; 81 84 82 //CREATE_SCRIPTABLE_CLASS(Helicopter, CL_HELICOPTER, 83 // addMethod("moveUp", ExecutorLua1<Object,bool>(&Helicopter::moveUp)) 84 // ); 85 CREATE_SCRIPTABLE_CLASS(Helicopter, CL_HELICOPTER, 86 addMethod("moveUp", ExecutorLua1<Helicopter,bool>(&Helicopter::moveUp)) 87 ->addMethod("moveDown", ExecutorLua1<Helicopter,bool>(&Helicopter::moveDown)) 88 ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor)) 89 ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX)) 90 ->addMethod("getAbsCoorY", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorY)) 91 ->addMethod("getAbsCoorZ", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorZ)) 92 93 ); 85 94 86 95
Note: See TracChangeset
for help on using the changeset viewer.