Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5111 in orxonox.OLD for trunk/src/util


Ignore:
Timestamp:
Aug 23, 2005, 11:13:56 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: reverted the last steps, because they created a huge pack of seg-faults

Location:
trunk/src/util
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/util/animation/animation3d.cc

    r5110 r5111  
    5858  // delete all the KeyFrames
    5959  tIterator<KeyFrame3D>* itKF = keyFrameList->getIterator();
    60   KeyFrame3D*  enumKF = itKF->firstElement();
     60  KeyFrame3D*  enumKF = itKF->nextElement();
    6161  while (enumKF)
    6262    {
  • trunk/src/util/animation/animation_player.cc

    r5110 r5111  
    8686  // deleting the Animation List AND all the elements of the List
    8787  tIterator<Animation>* animIt = this->animationList->getIterator();
    88   Animation* anim = animIt->firstElement();
     88  Animation* anim = animIt->nextElement();
    8989  while( anim != NULL)
    9090    {
     
    109109      // iterate through all the animations and tick them.
    110110      tIterator<Animation>* animIt = this->animationList->getIterator();
    111       Animation* anim = animIt->firstElement();
     111      Animation* anim = animIt->nextElement();
    112112      while( anim != NULL)
    113113        {
     
    147147{
    148148  tIterator<Animation>* animIt = this->animationList->getIterator();
    149   Animation* anim = animIt->firstElement();
     149  Animation* anim = animIt->nextElement();
    150150  while( anim != NULL)
    151151    {
     
    176176  // Per ANIMATION DEBUG
    177177  tIterator<Animation>* animIt = this->animationList->getIterator();
    178   Animation* anim = animIt->firstElement();
     178  Animation* anim = animIt->nextElement();
    179179  while( anim != NULL)
    180180    {
  • trunk/src/util/animation/t_animation.h

    r5110 r5111  
    108108  // delete all the KeyFrames
    109109  tIterator<KeyFrameF>* itKF = keyFrameList->getIterator();
    110   KeyFrameF*  enumKF = itKF->firstElement();
     110  KeyFrameF*  enumKF = itKF->nextElement();
    111111  while (enumKF)
    112112    {
  • trunk/src/util/garbage_collector.cc

    r5110 r5111  
    156156//
    157157//   tIterator<WorldEntity>* iterator = list->getIterator();
    158 //   WorldEntity* entity = iterator->firstElement();
     158//   WorldEntity* entity = iterator->nextElement();
    159159//   while( entity != NULL)
    160160//     {
  • trunk/src/util/loading/load_param.cc

    r5110 r5111  
    1717
    1818#include "list.h"
     19#include "array.h"
    1920#include "base_object.h"
    2021
     
    295296
    296297  tIterator<LoadParamDescription>* iterator = this->paramList->getIterator();
    297   LoadParamDescription* enumParamDesc = iterator->firstElement();
     298  LoadParamDescription* enumParamDesc = iterator->nextElement();
    298299  while (enumParamDesc)
    299300    {
     
    314315{
    315316  tIterator<LoadClassDescription>* iterator = LoadClassDescription::classList->getIterator();
    316   LoadClassDescription* enumClassDesc = iterator->firstElement();
     317  LoadClassDescription* enumClassDesc = iterator->nextElement();
    317318  while (enumClassDesc)
    318319    {
     
    336337{
    337338  tIterator<LoadParamDescription>* iterator = this->paramList->getIterator();
    338   LoadParamDescription* enumParamDesc = iterator->firstElement();
     339  LoadParamDescription* enumParamDesc = iterator->nextElement();
    339340  while (enumParamDesc)
    340341    {
     
    362363  PRINT(3)(" Listing all the Loadable Options (loaded since Game started).\n\n");
    363364  tIterator<LoadClassDescription>* classIT = LoadClassDescription::classList->getIterator();
    364   LoadClassDescription* enumClassDesc = classIT->firstElement();
     365  LoadClassDescription* enumClassDesc = classIT->nextElement();
    365366  while (enumClassDesc)
    366367    {
    367368      PRINT(3)("<%s>\n", enumClassDesc->className);
    368369      tIterator<LoadParamDescription>* paramIT = enumClassDesc->paramList->getIterator();
    369       LoadParamDescription* enumParamDesc = paramIT->firstElement();
     370      LoadParamDescription* enumParamDesc = paramIT->nextElement();
    370371      while (enumParamDesc)
    371372        {
     
    385386 * searches for classes, which beginn with classNameBegin
    386387 * @param classNameBegin the beginning string of a Class
    387  * @return a NEW char-array with ClassNames. The LIST should be deleted afterwards,
     388 * @return a NEW char-array with ClassNames. The ARRAY should be deleted afterwards,
    388389 * !! The strings MUST NOT be deleted !!
    389390 */
    390 tList<const char>* LoadClassDescription::searchClassWithShort(const char* classNameBegin)
     391Array<char*>* LoadClassDescription::searchClassWithShort(const char* classNameBegin)
    391392{
    392393  unsigned int searchLength = strlen(classNameBegin);
    393   tList<const char>* retVal = new tList<const char>;
     394  Array<char*>* retVal = new Array<char*>;
    394395
    395396  tIterator<LoadClassDescription>* iterator = LoadClassDescription::classList->getIterator();
    396   LoadClassDescription* enumClassDesc = iterator->firstElement();
     397  LoadClassDescription* enumClassDesc = iterator->nextElement();
    397398  while (enumClassDesc)
    398399  {
     
    400401        !strncasecmp(enumClassDesc->className, classNameBegin, searchLength))
    401402    {
    402       retVal->add(enumClassDesc->className);
     403      retVal->addEntry(enumClassDesc->className);
    403404    }
    404405    enumClassDesc = iterator->nextElement();
     
    406407  delete iterator;
    407408
     409  retVal->finalizeArray();
    408410  return retVal;
    409411}
     
    412414// {
    413415//   tIterator<LoadClassDescription>* iterator = LoadClassDescription::classList->getIterator();
    414 //   LoadClassDescription* enumClassDesc = iterator->firstElement();
     416//   LoadClassDescription* enumClassDesc = iterator->nextElement();
    415417//   while (enumClassDesc)
    416418//   {
  • trunk/src/util/loading/load_param.h

    r5102 r5111  
    3131// Forward Declaration //
    3232template<class T> class tList;
     33template<class T> class Array;
    3334
    3435//! macro that makes it even more easy to load a Parameter
     
    311312
    312313  static void printAll(const char* fileName = NULL);
    313   static tList<const char>* searchClassWithShort(const char* classNameBegin);
     314  static Array<char*>* searchClassWithShort(const char* classNameBegin);
    314315//  static const LoadParamDescription* getClass(const char* className);
    315316
  • trunk/src/util/resource_manager.cc

    r5110 r5111  
    7474  // deleting the Directorie Lists
    7575  tIterator<char>* tmpIt = imageDirs->getIterator();
    76   char* tmpDir = tmpIt->firstElement();
     76  char* tmpDir = tmpIt->nextElement();
    7777  while(tmpDir)
    7878    {
     
    9999      this->dataDir = new char[strlen(realDir)+1];
    100100      strcpy(this->dataDir, realDir);
    101       delete[] realDir;
     101      delete realDir;
    102102      return true;
    103103    }
    104104  else
    105105    {
    106       PRINTF(1)("%s is not a Directory, and can not be the Data Directory, leaving as %s \n", realDir, this->dataDir);
    107       delete[] realDir;
     106      PRINTF(1)("%s is not a Directory, and can not be the Data Directory, leaving as %s \n", dataDir, this->dataDir);
     107      delete realDir;
    108108      return false;
    109109    }
     
    144144      // check if the Directory has been added before
    145145      tIterator<char>* tmpImageDirs = imageDirs->getIterator();
    146       char* tmpDir = tmpImageDirs->firstElement();
     146      char* tmpDir = tmpImageDirs->nextElement();
    147147      while(tmpDir)
    148148        {
     
    363363            {
    364364              tIterator<char>* iterator = imageDirs->getIterator();
    365               tmpDir = iterator->firstElement();
     365              tmpDir = iterator->nextElement();
     366              //tmpDir = imageDirs->enumerate();
    366367              while(tmpDir)
    367368                {
     
    491492{
    492493  tIterator<Resource>* iterator = resourceList->getIterator();
    493   Resource* enumRes = iterator->firstElement();
     494  Resource* enumRes = iterator->nextElement();
    494495  while (enumRes)
    495496    {
     
    520521  //  Resource* enumRes = resourceList->enumerate();
    521522  tIterator<Resource>* iterator = resourceList->getIterator();
    522   Resource* enumRes = iterator->firstElement();
     523  Resource* enumRes = iterator->nextElement();
    523524  while (enumRes)
    524525    {
     
    602603  //  Resource* enumRes = resourceList->enumerate();
    603604  tIterator<Resource>* iterator = resourceList->getIterator();
    604   Resource* enumRes = iterator->firstElement();
     605  Resource* enumRes = iterator->nextElement();
    605606  while (enumRes)
    606607    {
     
    630631
    631632  // checking for the termination of the string given. If there is a "/" at the end cut it away
    632   if (directoryName[strlen(directoryName)-1] == '/' ||
    633       directoryName[strlen(directoryName)-1] == '\\')
     633  if (directoryName[strlen(directoryName)-1] == '/')
    634634    {
    635635      tmpDirName = new char[strlen(directoryName)+1];
     
    651651                            ))
    652652        {
    653           delete[] tmpDirName;
     653          delete tmpDirName;
    654654          return true;
    655655        }
     
    798798  PRINT(0)(" List of Image-Directories: ");
    799799  tIterator<char>* tmpIt = imageDirs->getIterator();
    800   char* tmpDir = tmpIt->firstElement();
     800  char* tmpDir = tmpIt->nextElement();
    801801  while(tmpDir)
    802802    {
     
    809809  PRINT(0)("List of all stored Resources:\n");
    810810  tIterator<Resource>* iterator = resourceList->getIterator();
    811   Resource* enumRes = iterator->firstElement();
     811  Resource* enumRes = iterator->nextElement();
    812812  while (enumRes)
    813813    {
  • trunk/src/util/shell.cc

    r5110 r5111  
    2020#include "text_engine.h"
    2121#include "list.h"
     22#include "array.h"
    2223#include "graphics_engine.h"
    2324#include "event_handler.h"
    2425
    2526#include "load_param.h"
    26 #include "class_list.h"
    27 
    28 #include "key_names.h"
    2927#include "debug.h"
    3028#include <stdarg.h>
     
    4240  this->setName("Shell");
    4341
    44   this->shellHeight = 400;
    45   this->bActive = false;
    4642  this->buffer = new tList<char>;
    4743
    48   this->textSize = 15;
    49   this->lineSpacing = 5;
     44  this->textSize = 10;
    5045
    5146  //this->bufferSize = 0;
    5247  this->bufferText = NULL;
    5348  this->setBufferSize(100);
    54   this->bufferDisplaySize = 10;
    5549  this->setBufferDisplaySize(10);
    56   this->setAbsCoor2D(3, -400);
     50  this->setAbsCoor2D(3, GraphicsEngine::getInstance()->getResolutionY());
    5751  this->delayed = 0;
    5852  this->setRepeatDelay(.3, .05);
    5953  this->pressedKey = SDLK_FIRST;
    6054
    61   this->inputLineText = NULL;
     55  this->inputLineText = TextEngine::getInstance()->createText("fonts/earth.ttf", 10, TEXT_DYNAMIC, 255, 0, 0);
     56  this->inputLineText->setAlignment(TEXT_ALIGN_LEFT);
     57  this->inputLineText->setText(NULL);
    6258  this->inputLine = new char[1];
    6359  this->inputLine[0] = '\0';
    64 
    65   this->rebuildText();
    66   this->completionList = NULL;
    67 
    68   // EVENT-Handler subscription of '`' to all States, and all other keyboard commands to ES_SEHLL
     60  this->inputLineText->setParent2D(this);
     61
     62
    6963  EventHandler* evh = EventHandler::getInstance();
    7064  evh->subscribe(this, ES_ALL, SDLK_BACKQUOTE);
     
    8377  for (int i = 0; i < this->bufferDisplaySize; i++)
    8478    delete this->bufferText[i];
    85   delete[] this->bufferText;
     79  delete this->bufferText;
    8680
    8781  // delete the inputLine
     
    9185  // delete all the Chars in the Buffers
    9286  tIterator<char>* charIterator = this->buffer->getIterator();
    93   char* charElem = charIterator->firstElement();
     87  char* charElem = charIterator->nextElement();
    9488  while (charElem != NULL)
    9589  {
     
    9993  delete charIterator;
    10094
    101 //  if (this->completionList != NULL)
    102     //delete this->completionList;
    103 
    10495  Shell::singletonRef = NULL;
    10596}
    106 
    107 
    108 void Shell::activate()
    109 {
    110   if (this->bActive == true)
    111     PRINTF(3)("The shell is already active\n");
    112   this->bActive = true;
    113 
    114   EventHandler::getInstance()->setState(ES_SHELL);
    115   this->setRelCoorSoft2D(0, 0, 1, 5);
    116 }
    117 
    118 void Shell::deactivate()
    119 {
    120   if (this->bActive == false)
    121     PRINTF(3)("The shell is already inactive\n");
    122   this->bActive = false;
    123 
    124   EventHandler::getInstance()->setState(ES_GAME);
    125   this->setRelCoorSoft2D(0, -400, 1, 5);
    126 }
    127 
    128 void Shell::setTextSize(unsigned int textSize, unsigned int lineSpacing)
    129 {
    130   this->textSize = textSize;
    131   this->lineSpacing = lineSpacing;
    132 
    133   this->rebuildText();
    134 }
    135 
    136 void Shell::rebuildText()
    137 {
    138   if (this->inputLineText == NULL)
    139     delete this->inputLineText;
    140   this->inputLineText = TextEngine::getInstance()->createText("fonts/Aniron_Bold.ttf", this->textSize, TEXT_DYNAMIC, 255, 0, 0);
    141   this->inputLineText->setAlignment(TEXT_ALIGN_LEFT);
    142   this->inputLineText->setText(NULL);
    143   this->inputLineText->setParent2D(this);
    144   this->inputLineText->setRelCoor2D(5, (this->textSize + this->lineSpacing)*this->bufferDisplaySize);
    145 
    146   this->setBufferDisplaySize(this->bufferDisplaySize);
    147 }
    148 
    149 
    15097
    15198/**
     
    159106    for (unsigned int i = 0; i < this->bufferDisplaySize; i++)
    160107      delete this->bufferText[i];
    161     delete[] this->bufferText;
     108    delete this->bufferText;
    162109  }
    163110
     
    165112  for (unsigned int i = 0; i < bufferDisplaySize; i++)
    166113  {
    167     this->bufferText[i] = TextEngine::getInstance()->createText("fonts/Aniron_Bold.ttf", this->textSize, TEXT_DYNAMIC, 255, 0, 0);
     114    this->bufferText[i] = TextEngine::getInstance()->createText("fonts/earth.ttf", this->textSize, TEXT_DYNAMIC, 255, 0, 0);
    168115    this->bufferText[i]->setAlignment(TEXT_ALIGN_LEFT);
    169     this->bufferText[i]->setRelCoor2D(5, (this->textSize + this->lineSpacing)*(bufferDisplaySize - i -1));
     116    this->bufferText[i]->setRelCoor2D(5, 12+12*i);
    170117    this->bufferText[i]->setText(NULL);
    171118    this->bufferText[i]->setParent2D(this);
    172119  }
     120
     121
    173122  this->bufferDisplaySize = bufferDisplaySize;
    174 
    175   this->shellHeight = (this->textSize + this->lineSpacing) * (bufferDisplaySize+1);
    176123}
    177124
     
    191138  // delete all the Chars in the Buffers
    192139  tIterator<char>* charIterator = this->buffer->getIterator();
    193   char* charElem = charIterator->firstElement();
     140  char* charElem = charIterator->nextElement();
    194141
    195142  while (charElem != NULL)
     
    206153 * @param line the Line as in the first argument in printf
    207154 * @param args the arguments as a va_list
     155 *
     156 * @todo optimize
    208157 */
    209158bool Shell::addBufferLineStatic(const char* line, ...)
     
    225174  return true;
    226175}
     176int curr = 0;
    227177
    228178/**
     
    249199   }
    250200
    251    if (this->bActive && likely(bufferText != NULL))
     201   if (likely(bufferText != NULL))
    252202   {
    253      Text* lastText = this->bufferText[this->bufferDisplaySize-1];
    254      Vector firstCoord = this->bufferText[0]->getRelCoorSoft2D();
    255 
    256      Text* swapText;
    257      Text* moveText = this->bufferText[0];
    258      this->bufferText[0]->setRelCoorSoft2D(this->bufferText[1]->getRelCoorSoft2D(), 5);
    259      for (unsigned int i = 1; i < this->bufferDisplaySize; i++)
     203     Text* moveText = this->bufferText[this->bufferDisplaySize-1];
     204     for (int i = this->bufferDisplaySize-1; i > 0; i--)
    260205     {
    261        if ( i < this->bufferDisplaySize-1)
    262          this->bufferText[i]->setRelCoorSoft2D(this->bufferText[i+1]->getRelCoorSoft2D(),5);
    263        swapText = this->bufferText[i];
    264        this->bufferText[i] = moveText;
    265        moveText = swapText;
     206       this->bufferText[i] = this->bufferText[i-1];
    266207     }
    267      lastText->setRelCoor2D(firstCoord);
    268      this->bufferText[0] = lastText;
    269 
    270      this->bufferText[0]->setText(newLine);
     208     this->bufferText[0] = moveText;
    271209   }
     210   this->bufferText[0]->setText(newLine);
     211   // this->bufferText->
     212//  this->inputLineText->setText(newLine);
    272213}
    273214
     
    289230{
    290231  tIterator<char>* charIterator = this->buffer->getIterator();
    291   char* charElem = charIterator->firstElement();
     232  char* charElem = charIterator->nextElement();
    292233
    293234  int i = 1;
     
    305246}
    306247
     248
    307249/**
    308250 * deletes the InputLine
     
    316258  this->inputLine = new char[1];
    317259  *this->inputLine = '\0';
     260
    318261}
    319262
     
    373316bool Shell::executeCommand()
    374317{
     318
    375319  this->addBufferLineStatic("Execute Command: %s\n", this->inputLine);
    376320  delete this->inputLine;
     
    393337}
    394338
     339
     340#include "key_names.h"
    395341/**
    396342 * listens for some event
     
    406352      if (EventHandler::getInstance()->getState() == ES_GAME)
    407353      {
    408         this->activate();
     354        EventHandler::getInstance()->setState(ES_SHELL);
     355        this->setRelCoorSoft2D(0, GraphicsEngine::getInstance()->getResolutionY()-150, 1, 5);
    409356      }
    410357
    411358      else
    412359      {
    413         this->deactivate();
     360        EventHandler::getInstance()->setState(ES_GAME);
     361        this->setRelCoorSoft2D(0, GraphicsEngine::getInstance()->getResolutionY()+10, 1, 5);
    414362      }
    415363    }
     
    434382  {
    435383    if (this->pressedKey == event.type)
    436     {
    437384      this->pressedKey = SDLK_FIRST;
    438       this->delayed = 0.0;
    439     }
     385    this->delayed = 0.0;
    440386  }
    441387}
     
    480426
    481427//  glTexCoord2f(this->texCoord.maxU, this->texCoord.minV);
    482   glVertex2f(GraphicsEngine::getInstance()->getResolutionX() - this->getAbsCoor2D().x, this->getAbsCoor2D().y  );
     428  glVertex2f(this->getAbsCoor2D().x + 800, this->getAbsCoor2D().y  );
    483429
    484430//  glTexCoord2f(this->texCoord.maxU, this->texCoord.maxV);
    485   glVertex2f(GraphicsEngine::getInstance()->getResolutionX() - this->getAbsCoor2D().x, this->getAbsCoor2D().y + this->shellHeight);
     431  glVertex2f(this->getAbsCoor2D().x + 800, this->getAbsCoor2D().y + 150);
    486432
    487433//  glTexCoord2f(this->texCoord.minU, this->texCoord.maxV);
    488   glVertex2f(this->getAbsCoor2D().x, this->getAbsCoor2D().y + this->shellHeight);
     434  glVertex2f(this->getAbsCoor2D().x, this->getAbsCoor2D().y + 150);
    489435
    490436  glEnd();
     
    505451  strcpy(completionLine, this->inputLine);
    506452
    507   char* commandBegin = strrchr(completionLine, ' ');
     453   char* commandBegin = strrchr(completionLine, ' ');
    508454  if (commandBegin == NULL)
    509455    commandBegin = completionLine;
     
    516462  }
    517463
    518   char* objectStart;
    519   if (objectStart = strstr(commandBegin, "::"))
    520   {
    521     char* classIdentity = new char[objectStart - commandBegin +1];
    522     strncpy(classIdentity, commandBegin, objectStart - commandBegin);
    523     classIdentity[objectStart - commandBegin] = '\0';
    524     this->objectComplete(objectStart+2, ClassList::StringToID(classIdentity));
    525     delete[] classIdentity;
    526   }
    527   else
    528     this->classComplete(commandBegin);
    529 
    530   delete[] completionLine;
    531 }
    532 
    533 /**
    534  * autocompletes a className
    535  * @param classBegin the Beginning of a String to autoComplete
    536  * @return true on success, false otherwise
    537  */
    538 bool Shell::classComplete(const char* classBegin)
    539 {
    540   if (unlikely(classBegin == NULL))
    541     return false;
    542   const tList<const char>* clList = ClassList::getClassList();
    543   if (clList != NULL)
    544   {
    545     const tList<const char>* classList = this->createCompleteList(clList, classBegin);
    546     if (classList != NULL)
    547       this->generalComplete(classList, classBegin, "%s::", "::");
    548     else
    549       return false;
    550   }
    551   else
    552     return false;
    553   return true;
    554 }
    555 
    556 /**
    557  * autocompletes an ObjectName
    558  * @param objectBegin the beginning string of a Object
    559  * @param classID the ID of the Class to search for.
    560  * @return true on success, false otherwise
    561  */
    562 bool Shell::objectComplete(const char* objectBegin, long classID)
    563 {
    564   printf("%s\n", objectBegin);
    565 
    566   if (unlikely(objectBegin == NULL))
    567     return false;
    568   tList<BaseObject>* boList = ClassList::getList(classID);
    569   if (boList != NULL)
    570   {
    571     printf("\n", boList->firstElement()->getName());
    572     const tList<const char>* objectList = this->createCompleteList(boList, objectBegin);
    573     if (objectList != NULL)
    574       this->generalComplete(objectList, objectBegin, "%s");
    575     else
    576       return false;
    577   }
    578   else
    579     return false;
    580   return true;
    581 }
    582 
    583 bool Shell::functionComplete(const char* functionBegin)
    584 {
    585 }
    586 
    587 /**
    588  * completes the inputline on grounds of an inputList
    589  * @param stringList the List to parse through
    590  * @param begin the String to search in the inputList, and to extend with it.
    591  * @param displayAs how to display the found value to the user, printf-style, !!with only one %s!! ex.: "::%s::"
    592  * @param addBack what should be added at the end of the completion
    593  * @param addFront what should be added to the front of one finished completion
    594  * @return true if ok, false otherwise
    595  */
    596 bool Shell::generalComplete(const tList<const char>* stringList, const char* begin, const char* displayAs, const char* addBack, const char* addFront)
    597 {
    598   if (stringList->getSize() == 0)
    599     return false;
    600 
    601   const char* addString = stringList->firstElement();
    602   unsigned int addLength = 0;
    603   unsigned int inputLenght = strlen(begin);
    604 
    605   if (addString != NULL)
    606     addLength = strlen(addString);
    607   tIterator<const char>* charIterator = stringList->getIterator();
    608   const char* charElem = charIterator->firstElement();
    609   while (charElem != NULL)
    610   {
    611     PRINTF(0)(displayAs, charElem);
    612     for (unsigned int i = inputLenght; i < addLength; i++)
    613       if (addString[i] != charElem[i])
    614     {
    615       addLength = i;
    616       break;
    617     }
    618     charElem = charIterator->nextElement();
    619   }
    620   delete charIterator;
    621 
    622   if (addLength >= inputLenght)
    623   {
    624     char* adder = new char[addLength+1];
    625     strncpy(adder, addString, addLength);
    626     adder[addLength] = '\0';
    627     this->removeCharacters(inputLenght);
    628     this->addCharacters(adder);
    629     if (addBack != NULL && stringList->getSize() == 1)
    630       this->addCharacters("::");
    631     delete[] adder;
    632   }
    633   return true;
    634 }
    635 
    636 
    637 
    638 /**
    639  * searches for classes, which beginn with classNameBegin
    640  * @param inputList the List to parse through
    641  * @param classNameBegin the beginning string
    642  * @return a NEW char-array with ClassNames. The LIST should be deleted afterwards,
    643  * !! The strings MUST NOT be deleted !!
    644  */
    645 const tList<const char>* Shell::createCompleteList(const tList<const char>* inputList, const char* classNameBegin)
    646 {
    647   if (inputList == NULL || classNameBegin == NULL)
    648     return NULL;
    649   unsigned int searchLength = strlen(classNameBegin);
    650   if (this->completionList != NULL)
    651     delete this->completionList;
    652   this->completionList = new tList<const char>;
    653 
    654 //  tList<const char>* classList = ClassList::getClassList();
    655 
    656   tIterator<const char>* iterator = inputList->getIterator();
    657   const char* enumString = iterator->firstElement();
    658   while (enumString != NULL)
    659   {
    660     if (strlen(enumString)>searchLength+1 &&
    661         !strncasecmp(enumString, classNameBegin, searchLength))
    662     {
    663       this->completionList->add(enumString);
    664     }
    665     enumString = iterator->nextElement();
    666   }
    667   delete iterator;
    668 
    669   return this->completionList;
    670 }
    671 
    672 /**
    673  * searches for classes, which beginn with classNameBegin
    674  * @param inputList the List to parse through
    675  * @param classNameBegin the beginning string
    676  * @return a NEW char-array with ClassNames. The LIST should be deleted afterwards,
    677  * !! The strings MUST NOT be deleted !!
    678  */
    679 const tList<const char>* Shell::createCompleteList(const tList<BaseObject>* inputList, const char* classNameBegin)
    680 {
    681   if (inputList == NULL || classNameBegin == NULL)
    682     return NULL;
    683   unsigned int searchLength = strlen(classNameBegin);
    684   if (this->completionList != NULL)
    685     delete this->completionList;
    686   this->completionList = new tList<const char>;
    687 
    688   tIterator<BaseObject>* iterator = inputList->getIterator();
    689   BaseObject* enumBO = iterator->firstElement();
    690   while (enumBO != NULL)
    691   {
    692     if (enumBO->getName() != NULL &&
    693         strlen(enumBO->getName())>searchLength+1 &&
    694         !strncasecmp(enumBO->getName(), classNameBegin, searchLength))
    695     {
    696       this->completionList->add(enumBO->getName());
    697     }
    698     enumBO = iterator->nextElement();
    699   }
    700   delete iterator;
    701 
    702   return this->completionList;
     464  printf("%s\n",commandBegin);
     465   Array<char*>* classArray = LoadClassDescription::searchClassWithShort(commandBegin);
     466   if (classArray->getCount() == 0)
     467   {
     468     delete[] completionLine;
     469     delete classArray;
     470     //PRINTF(0)("no completion found for %s\n", commandBegin);
     471     return false;
     472   }
     473
     474   for (unsigned int i = 0; i < classArray->getCount(); i++)
     475   {
     476     PRINTF(0)("%s\n", classArray->getEntry(i));
     477   }
     478   if (classArray->getCount() == 1)
     479   {
     480     this->removeCharacters(strlen(commandBegin));
     481     this->addCharacters(classArray->getEntry(0));
     482     this->addCharacter(' ');
     483   }
     484
     485   delete[] completionLine;
     486   delete classArray;
    703487}
    704488
     
    710494  if (this->pressedKey != SDLK_FIRST)
    711495    printf("%s::%f %f\n", SDLKToKeyname(this->pressedKey), this->delayed, this->repeatDelay);
    712 }
     496
     497}
  • trunk/src/util/shell.h

    r5107 r5111  
    3636
    3737
    38     void activate();
    39     void deactivate();
     38    void setBufferSize(unsigned int bufferSize) { this->bufferSize = bufferSize; };
    4039
    41     void setTextSize(unsigned int textSize, unsigned int lineSpacing = 1);
    42     void rebuildText();
     40    void setBufferDisplaySize(unsigned int bufferDisplaySize);
    4341
    4442    // BUFFER //
    45     void setBufferSize(unsigned int bufferSize) { this->bufferSize = bufferSize; };
    46     void setBufferDisplaySize(unsigned int bufferDisplaySize);
    4743    void flushBuffers();
    4844    static bool addBufferLineStatic(const char* line, ...);
     
    7167  private:
    7268    bool autoComplete();
    73     bool classComplete(const char* classBegin);
    74     bool objectComplete(const char* objectBegin, long classID);
    75     bool functionComplete(const char* functionBegin);
    76 
    77     bool generalComplete(const tList<const char>* stringList, const char* begin, const char* displayAs = "%s", const char* addBack = NULL, const char* addFront = NULL);
    78 
    79     const tList<const char>* Shell::createCompleteList(const tList<const char>* inputList, const char* classNameBegin);
    80     const tList<const char>* Shell::createCompleteList(const tList<BaseObject>* inputList, const char* classNameBegin);
    8169
    8270
     
    10088    unsigned int           textSize;               //!< The size of the text.
    10189    unsigned int           lineSpacing;            //!< The Spacing between lines.
    102     unsigned int           shellHeight;            //!< The hight of the Shell in Pixels
    103     bool                   bActive;                //!< if the shell is active;
    10490
    10591    char                   bufferArray[10000];     //!< a BUFFER for fast writing
    106 
    107     // completion
    108     tList<const char>*    completionList;          //!< A list of completions, that are io.
    10992};
    11093
  • trunk/src/util/track/track_manager.cc

    r5110 r5111  
    7979    {
    8080      tIterator<TrackElement>* iterator = this->children->getIterator();
    81       TrackElement* enumElem = iterator->firstElement();
     81      TrackElement* enumElem = iterator->nextElement();
    8282      while (enumElem)
    8383        {
     
    104104    {
    105105      tIterator<TrackElement>* iterator = this->children->getIterator();
    106       TrackElement* enumElem = iterator->firstElement();
     106      TrackElement* enumElem = iterator->nextElement();
    107107      TrackElement* tmpElem;
    108108      while (enumElem)
     
    133133    {
    134134      tIterator<TrackElement>* iterator = this->children->getIterator();
    135       TrackElement* enumElem = iterator->firstElement();
     135      TrackElement* enumElem = iterator->nextElement();
    136136      TrackElement* tmpElem;
    137137      while (enumElem)
     
    179179    {
    180180      tIterator<TrackElement>* iterator = this->children->getIterator();
    181       TrackElement* enumElem = iterator->firstElement();
     181      TrackElement* enumElem = iterator->nextElement();
    182182      while (enumElem)
    183183        {
     
    206206
    207207  tIterator<TrackElement>* iterator = this->children->getIterator();
    208   TrackElement* enumElem = iterator->firstElement();
     208  TrackElement* enumElem = iterator->nextElement();
    209209  for (int i = 0; i < childCount; i++)
    210210    enumElem = iterator->nextElement();
     
    234234      //TrackElement* enumElem = this->children->enumerate();
    235235      tIterator<TrackElement>* iterator = this->children->getIterator();
    236       TrackElement* enumElem = iterator->firstElement();
     236      TrackElement* enumElem = iterator->nextElement();
    237237      while (enumElem)
    238238        {
     
    331331  //TrackElement* enumElem = this->children->enumerate();
    332332  tIterator<TrackElement>* iterator = this->children->getIterator();
    333   TrackElement* enumElem = iterator->firstElement();
     333  TrackElement* enumElem = iterator->nextElement();
    334334  while (enumElem)
    335335    {
     
    975975      //TrackElement* enumElem = firstJoint->children->enumerate();
    976976      tIterator<TrackElement>* iterator = firstJoint->children->getIterator();
    977       TrackElement* enumElem = iterator->firstElement();
     977      TrackElement* enumElem = iterator->nextElement();
    978978      while (enumElem)
    979979        {
     
    10011001        {
    10021002          tIterator<TrackElement>* iterator = tmpElem->children->getIterator();
    1003           TrackElement* enumElem = iterator->firstElement();
     1003          TrackElement* enumElem = iterator->nextElement();
    10041004          //TrackElement* enumElem = tmpElem->children->enumerate();
    10051005          while (enumElem)
Note: See TracChangeset for help on using the changeset viewer.