Game Development Community

TSE HEAD not compiling?

by Josh Moore · in Torque Game Engine Advanced · 09/24/2005 (2:11 pm) · 1 replies

I downloaded TSE Head yesterday so I can run it on my new system with a SM 3.0 video card. However there seems to be 2 major errors in consoleInternal.cpp and audio.cpp. I get tons of errors from both files, but I'm assuming they're cuased from the first errors in the files. Here's the code:

consoleInternal.cpp
void Dictionary::Entry::setStringValue(const char * value)
{
   if(type <= TypeInternalString)
   {
      // Let's not remove empty-string-valued global vars from the dict.
      // If we remove them, then they won't be exported, and sometimes
      // it could be necessary to export such a global.  There are very
      // few");
      if(gEvalState.stack[i]->scopeNamespace && gEvalState.stack[i]->scopeNamespace->mName)
      {
         dStrcat(buf, gEvalState.stack[i]->scopeNamespace->mName);
         dStrcat(buf, "::");
      }
      dStrcat(buf, gEvalState.stack[i]->scopeName);
   }
   Con::printf("BackTrace: %s", buf);

}
As you can clearly see, the "i" variable is not defined, and even if it was, I don't think the code would be stable/work right.

And audio.cpp, function void alxLoopingUpdate():
ngList::iterator tmp = mStreamingCulledList.findImage((*itr)->mHandle);
"ngList" is not defined.


Edit: I'm thinking that some files might not have gotten uploaded in a recent update?

#1
09/24/2005 (4:12 pm)
My current CVS checkout (just updated) show this:

void Dictionary::Entry::setStringValue(const char * value)
{
   if(type <= TypeInternalString)
   {
      // Let's not remove empty-string-valued global vars from the dict.
      // If we remove them, then they won't be exported, and sometimes
      // it could be necessary to export such a global.  There are very
      // few empty-string global vars so there's no performance-related
      // need to remove them from the dict.
/*
      if(!value[0] && name[0] == '$')
      {
         gEvalState.globalVars.remove(this);
         return;
      }
*/

      fval = dAtof(value);
      ival = (U32)fval;
      type = TypeInternalString;

      // may as well add to the next cache line
      U32 newLen = ((dStrlen(value) + 1) + 15) & ~15;
      if(sval == typeValueEmpty)
         sval = (char *) dMalloc(newLen);
      else if(newLen > bufferLen)
         sval = (char *) dRealloc(sval, newLen);
      bufferLen = newLen;
      dStrcpy(sval, value);
   }
   else
      Con::setData(type, dataPtr, 0, 1, &value);
}

So I suspect that you may just have gotten a hiccup from CVS where it decided to merge two things together in a crazy way.