Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9298 in orxonox.OLD


Ignore:
Timestamp:
Jul 17, 2006, 9:29:22 AM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: merged the branche scripting back here.

merged with command:
svn merge -r9239:HEAD https://svn.orxonox.net/orxonox/branches/scripting .
no conflicts

Location:
trunk/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/script_engine/script.cc

    r9235 r9298  
    1717#include "script_class.h"
    1818#include "luaincl.h"
    19 
     19#include "debug.h"
    2020#include "util/loading/resource_manager.h"
    2121
     
    5050
    5151
     52Script::Script(const std::string& filename)
     53{
     54  this->setClassID(CL_SCRIPT, "Script");
     55
     56  returnCount = argumentCount = 0;
     57
     58  luaState = lua_open();
     59
     60  luaopen_base(luaState);
     61  luaopen_table(luaState);
     62  luaopen_io(luaState);
     63  luaopen_string(luaState);
     64  luaopen_math(luaState);
     65  luaopen_debug(luaState);
     66 
     67  this->loadFile(filename);
     68
     69}
     70
    5271Script::~Script()
    5372{
     
    5978void Script::loadParams(const TiXmlElement* root)
    6079{
    61   //printf("Loading params for %p \n",this);
     80  //printf(("Loading params for %p \n",this);
    6281  BaseObject::loadParams(root);
    6382
    64   LOAD_PARAM_START_CYCLE(root, object);
     83 LOAD_PARAM_START_CYCLE(root, object);
    6584  {
    6685    LoadParam_CYCLE(object, "object", this, Script, addObject)
    67         .describe("The name of an object that is needed by a script");
     86       .describe("The name of an object that is needed by a script");
    6887  }
    69   LOAD_PARAM_END_CYCLE(object);
     88 LOAD_PARAM_END_CYCLE(object);
    7089
    7190
     
    87106   if(currentFile.length() != 0)
    88107   {
    89      printf("Could not load %s because an other file is already loaded: %s\n",filename.c_str(), currentFile.c_str());
     108     printf("SCRIPT %s : ERROR: Could not load %s because an other file is already loaded: %s\n",currentFile.c_str(),filename.c_str(), currentFile.c_str());
    90109     return false;
    91110    }
     
    104123     else
    105124     {
    106        printf("ERROR while loading file %s: \n",filename.c_str());
     125       printf("SCRIPT %s : ERROR: while loading file %s: \n",currentFile.c_str(),filename.c_str());
    107126       reportError(error);
    108127     }
     
    111130   else
    112131   {
    113      printf("ERROR while loading file %s: \n",filename.c_str());
     132     printf("SCRIPT %s : ERROR: while loading file %s: \n",currentFile.c_str(),filename.c_str());
    114133     reportError(error);
    115134   }
     
    121140 void Script::addObject(const std::string& className, const std::string& objectName)
    122141 {
    123    //printf("Script %s: I am about to add %s of class %s\n",this->getName(),objectName.c_str(),className.c_str());
     142   //printf(("Script %s: I am about to add %s of class %s\n",this->getName(),objectName.c_str(),className.c_str());
    124143
    125144   BaseObject* scriptClass = ClassList::getObject(className, CL_SCRIPT_CLASS);
    126   // printf("The script class for %s is at %p \n",className.c_str(),scriptClass);
     145  // printf(("The script class for %s is at %p \n",className.c_str(),scriptClass);
    127146   WorldObject tmpObj;
    128147   if (scriptClass != NULL)
     
    135154
    136155     BaseObject* object = ClassList::getObject(objectName, className);
    137     // printf("%s is at %p \n",objectName.c_str(),object);
     156    // printf(("%s is at %p \n",objectName.c_str(),object);
    138157     if (object != NULL && !objectIsAdded(objectName))
    139158     {
     
    150169 bool Script::executeFile()
    151170 {
    152    printf("WARNING: script.executeFile is not implemented yet");
     171   PRINT(2)("WARNING: script.executeFile is not implemented yet\n");
    153172   /*if(currentFile.length() != 0)
    154173   {
     
    183202   }
    184203   else
    185      printf("There is an other function active ( %s ) or there are unremoved return values on the stack. Please remove them first.\n",currentFunction.c_str());
     204     printf("SCRIPT %s : ERROR: There is an other function active ( %s ) or there are unremoved return values on the stack. Please remove them first.\n",currentFile.c_str(),currentFunction.c_str());
    186205   return false;
    187206 }
     
    195214    if(error != 0)
    196215    {
    197      printf("ERROR while executing function %s: \n",currentFunction.c_str());
     216      printf("SCRIPT %s : ERROR: Failed to execute function %s: \n",currentFile.c_str(),currentFunction.c_str());
    198217     reportError(error);
    199218     //clean up
     
    210229   }
    211230   else
    212      printf("Error: no function selected.\n");
     231     printf("SCRIPT %s : ERROR: no function selected.\n",currentFile.c_str());
    213232
    214233   return false;
     
    227246   else
    228247   {
    229     printf("Couldn't add parameter because the wrong function is selected: %s instead of %s\n", currentFunction.c_str(), toFunction.c_str());
     248     printf("SCRIPT %s : ERROR: Couldn't add parameter because the wrong function is selected: %s instead of %s\n",currentFile.c_str(), currentFunction.c_str(), toFunction.c_str());
    230249    return false;
    231250   }
     
    244263   else
    245264   {
    246      printf("Couldn't add parameter because the wrong function is selected: %s instead of %s\n", currentFunction.c_str(), toFunction.c_str());
     265     printf("SCRIPT %s : ERROR: Couldn't add parameter because the wrong function is selected: %s instead of %s\n",currentFile.c_str(), currentFunction.c_str(), toFunction.c_str());
    247266     return false;
    248267   }
     
    260279   else
    261280   {
    262      printf("Couldn't add parameter because the wrong function is selected: %s instead of %s\n", currentFunction.c_str(), toFunction.c_str());
     281     printf("SCRIPT %s : ERROR: Couldn't add parameter because the wrong function is selected: %s instead of %s\n",currentFile.c_str(), currentFunction.c_str(), toFunction.c_str());
    263282     return false;
    264283   }
     
    295314     }
    296315     else
    297        printf("ERROR: Form %s : trying to retreive non bolean value",this->currentFile.c_str());
     316       printf("SCRIPT %s : ERROR: Trying to retreive non bolean value\n",this->currentFile.c_str());
    298317   }
    299318   return returnValue;
     
    346365 {
    347366  const char *msg = lua_tostring(luaState, -1);
    348   if (msg == NULL) msg = "(error with no message)";
    349   fprintf(stderr, "ERROR: %s\n", msg);
     367  if (msg == NULL) msg = "(error with no message)\n";
     368  printf("ERROR: %s\n", msg);
    350369  lua_pop(luaState, 1);
    351370 }
     
    368387 {
    369388   BaseObject* scriptClass = ClassList::getObject(className, CL_SCRIPT_CLASS);
    370    //printf("The script class for %s is at %p \n",className.c_str(),scriptClass);
     389   //printf(("The script class for %s is at %p \n",className.c_str(),scriptClass);
    371390   WorldObject tmpObj;
    372391   if (scriptClass != NULL)
  • trunk/src/lib/script_engine/script.h

    r9235 r9298  
    2424  public:
    2525    Script(const TiXmlElement* root = NULL);
     26    Script(const std::string& filename);
    2627    ~Script();
    2728
  • trunk/src/world_entities/npcs/gate.cc

    r9235 r9298  
    1313   ### File Specific
    1414   main-programmer: Patrick Boenzli
    15    co-programmer:
     15   co-programmer: Silvan Nellen
    1616*/
    1717#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
     
    4141                            addMethod("hide", ExecutorLua0<WorldEntity>(&WorldEntity::hide))
    4242                            ->addMethod("unhide", ExecutorLua0<WorldEntity>(&WorldEntity::unhide))
    43                            // ->addMethod("destroy", ExecutorLua0<Gate>(&Gate::destroy()))   
     43                            ->addMethod("destroy", ExecutorLua0<Gate>(&Gate::destroy))   
    4444                            ->addMethod("setAbsCoor", ExecutorLua3<PNode,float,float,float>(&PNode::setAbsCoor))
    4545                            ->addMethod("getAbsCoorX", ExecutorLua0ret<PNode, float>(&PNode::getAbsCoorX))
     
    6666  this->scale = 1.0f;
    6767  this->actionRadius = 1.0;
     68  this->destroyed = false;
    6869
    6970  if( root != NULL)
     
    151152void Gate::open()
    152153{
    153   if( this->bLocked)
     154  if( this->bLocked || this->destroyed)
    154155    return;
    155156
     
    164165void Gate::close()
    165166{
     167 
     168  if( this->destroyed)
     169    return;
     170 
    166171  this->setAnimation(GATE_CLOSE, MD2_ANIM_ONCE);
    167172  this->bOpen = false;
     
    171176void Gate::destroy()
    172177{
     178  if( this->destroyed)
     179    return;
     180 
    173181  this->setAnimation(GATE_DIE, MD2_ANIM_ONCE);
    174182
    175   Explosion::explode(this, Vector(10,10,10));
     183  Explosion::explode(this, Vector(this->getScaling()/160,this->getScaling()/160,this->getScaling()/160));
     184 
     185 
     186  this->destroyed = true;
    176187}
    177188
  • trunk/src/world_entities/npcs/gate.h

    r9235 r9298  
    5050
    5151  private:
     52    bool           destroyed;         //!< true if the door is destroyed
    5253    bool           bOpen;             //!< true if the door is open
    5354    bool           bLocked;           //!< true if this door is locked
  • trunk/src/world_entities/projectiles/guided_missile.cc

    r9235 r9298  
    4343  this->lifeSpan = 4.0;
    4444  this->agility = 3.5;
    45   this->maxVelocity = 75;
     45  this->maxVelocity = 100;
    4646
    4747  this->emitter = new DotEmitter(100, 5, M_2_PI);
  • trunk/src/world_entities/script_trigger.cc

    r9235 r9298  
    3232             ->addMethod("setTarget", ExecutorLua1<ScriptTrigger, const std::string&>(&ScriptTrigger::setTarget))
    3333             ->addMethod("setTriggerParent", ExecutorLua1<ScriptTrigger, const std::string&>(&ScriptTrigger::setTriggerParent))
    34              ->addMethod("setTriggerLasts", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setTriggerLasts))
     34             ->addMethod("setTriggerRemains", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setTriggerRemains))
     35             ->addMethod("setActiveOnCreation", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setActiveOnCreation))
    3536             ->addMethod("setInvert", ExecutorLua1<ScriptTrigger, bool>(&ScriptTrigger::setInvert))
    3637             ->addMethod("setRadius", ExecutorLua1<ScriptTrigger, float>(&ScriptTrigger::setRadius))
     
    4849 */
    4950ScriptTrigger::ScriptTrigger(const TiXmlElement* root)
    50 {
     51{ PRINT(1)("testerror\n");
    5152  this->setClassID(CL_SCRIPT_TRIGGER, "ScriptTrigger");
    5253  this->toList(OM_COMMON);
     
    5960  scriptCalled = false;
    6061  scriptIsOk = false;
    61   triggerLasts = true;
     62  triggerRemains = true;
    6263  addToScript = false;
     64  this->activeOnCreation = false;
    6365 
    6466  if(root != NULL)
     
    119121      .describe("")
    120122      .defaultValues(false);
    121   LoadParam(root, "triggerlasts", this, ScriptTrigger, setTriggerLasts)
     123  LoadParam(root, "triggerRemains", this, ScriptTrigger, setTriggerRemains)
    122124      .describe("")
    123125      .defaultValues(true);
     
    172174  if(scriptFinished) return;
    173175
    174   if(triggerLasts && scriptCalled)
     176  if(activeOnCreation)
     177   {
     178     executeAction(timestep);
     179     return;
     180   }
     181   
     182  if(triggerRemains && scriptCalled)
    175183  {
    176184    executeAction(timestep);
     
    182190    executeAction(timestep);
    183191    scriptCalled = true;
     192    return;
    184193 
    185194  }
     
    188197    executeAction(timestep);
    189198    scriptCalled = true;
     199    return;
    190200  }
    191201 //else
     
    202212       //testScriptingFramework();
    203213    if(!(script->selectFunction(this->functionName,returnCount)) )
    204       printf("Error ScriptTrigger: Selection of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str());
     214      PRINT(1)("Error ScriptTrigger: Selection of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str());
    205215     
    206216    script->pushParam( timestep, this->functionName);
    207217     
    208218    if( !(script->executeFunction()) )
    209       printf("Error ScriptTrigger: Execution of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str());
     219      PRINT(1)("Error ScriptTrigger: Execution of %s in %s failed.\n",functionName.c_str(), script->getFileName().c_str());
    210220     
    211221    scriptFinished = script->getReturnedBool();
  • trunk/src/world_entities/script_trigger.h

    r9006 r9298  
    3535    void setTarget(WorldEntity* target) { if(target!=NULL) this->target=target; }
    3636    void setTriggerParent(const std::string& name);
    37     void setTriggerLasts(const bool lasts) { this->triggerLasts = lasts; }
     37    void setTriggerRemains(const bool lasts) { this->triggerRemains = lasts; }
     38    void setActiveOnCreation(const bool avtive) { this->activeOnCreation = avtive; }
    3839    void setInvert(const bool inv) { this->invert = invert; }
    3940    void setDelay(float delay) { this->delay = delay; };
     
    5051
    5152    WorldEntity* target;
    52     bool         triggerLasts;
     53    bool         triggerRemains;
     54    bool         activeOnCreation;
    5355    bool         invert;
    5456    float        radius;
  • trunk/src/world_entities/space_ships/spacecraft_2d.cc

    r9235 r9298  
    498498    this->bForward = event.bPressed; //this->shiftCoor(0,.1,0);
    499499  else if( event.type == KeyMapper::PEV_BACKWARD)
    500     this->bBackward = event.bPressed; //this->shiftCoor(0,-.1,0);
     500  {this->bBackward = event.bPressed; printf(" %f, %f, %f \n",getAbsCoorX(),getAbsCoorY(),getAbsCoorZ());} //this->shiftCoor(0,-.1,0);
    501501  else if( event.type == EV_MOUSE_MOTION)
    502502  {
  • trunk/src/world_entities/weapons/aiming_system.cc

    r9235 r9298  
    115115  if( this->owner != killer)
    116116  {
    117     PRINTF(0)("real hit: %s\n", killer->getClassName());
     117    //PRINTF(0)("real hit: %s\n", killer->getClassName());
    118118    this->selectionList.push_back(killer);
    119119  }
  • trunk/src/world_entities/world_entity.h

    r9235 r9298  
    129129
    130130  /* --- Character Attribute Block --- */
     131  /** @returns the scaling of the model */
     132  float getScaling(){return this->scaling;}
    131133  /** @returns the damage dealt by this world entity */
    132134  float getDamage() const { return this->damage; }
Note: See TracChangeset for help on using the changeset viewer.