marauder2k7 5 meses atrás
pai
commit
c6e0eade04

+ 1 - 1
Engine/source/console/console.cpp

@@ -71,7 +71,7 @@ char* ConsoleValue::convertToBuffer() const
 
 const char* ConsoleValue::getConsoleData() const
 {
-   return Con::getData(ct->consoleType, ct->dataPtr, 0, ct->enumTable);
+   return Con::getData(type, dataPtr, 0, enumTable);
 }
 
 ConsoleDocFragment* ConsoleDocFragment::smFirst;

+ 14 - 21
Engine/source/console/console.h

@@ -128,15 +128,9 @@ enum ConsoleValueType
    cvConsoleValueType = 0
 };
 
-struct ConsoleValueConsoleType
-{
-   S32 consoleType;
-   void* dataPtr;
-   EnumTable* enumTable;
-};
-
 class ConsoleValue
 {
+public:
 #pragma warning( push )
 #pragma warning( disable : 4201 ) // warning C4201: nonstandard extension used : nameless struct/union
    union
@@ -150,7 +144,8 @@ class ConsoleValue
 
       struct
       {
-         ConsoleValueConsoleType* ct;
+         void* dataPtr;
+         EnumTable* enumTable;
       };
    };
 
@@ -164,15 +159,14 @@ class ConsoleValue
 
    TORQUE_FORCEINLINE void cleanupData()
    {
-      if (type == ConsoleValueType::cvString)
+      if (type == cvString)
       {
          if (s != StringTable->EmptyString())
             dFree(s);
       }
+
       type = ConsoleValueType::cvNULL;
    }
-
-public:
    ConsoleValue()
    {
       type = ConsoleValueType::cvSTEntry;
@@ -199,7 +193,7 @@ public:
          setString(ref.s);
          break;
       default:
-         setConsoleData(ref.ct->consoleType, ref.ct->dataPtr, ref.ct->enumTable);
+         setConsoleData(ref.type, ref.dataPtr, ref.enumTable);
          break;
       }
    }
@@ -224,7 +218,7 @@ public:
          setString(ref.s);
          break;
       default:
-         setConsoleData(ref.ct->consoleType, ref.ct->dataPtr, ref.ct->enumTable);
+         setConsoleData(ref.type, ref.dataPtr, ref.enumTable);
          break;
       }
       return *this;
@@ -322,8 +316,6 @@ public:
       }
       cleanupData();
 
-      U32 oldLen = dStrlen(s);
-
       type = ConsoleValueType::cvString;
       s = (char*)dMalloc(len + 1);
 
@@ -357,12 +349,13 @@ public:
       setStringTableEntry(StringTable->EmptyString());
    }
 
-   TORQUE_FORCEINLINE void setConsoleData(S32 consoleType, void* dataPtr, const EnumTable* enumTable)
+   TORQUE_FORCEINLINE void setConsoleData(S32 inConsoleType, void* inDataPtr, const EnumTable* inEnumTable)
    {
       cleanupData();
-      type = ConsoleValueType::cvConsoleValueType;
-      ct = new ConsoleValueConsoleType{ consoleType, dataPtr, const_cast<EnumTable*>(enumTable) };
-   }
+      type = inConsoleType;
+      dataPtr = inDataPtr;
+      enumTable = const_cast<EnumTable*>(inEnumTable);
+   };
 
    TORQUE_FORCEINLINE S32 getType() const
    {
@@ -384,11 +377,11 @@ public:
       return type >= ConsoleValueType::cvConsoleValueType;
    }
 
-   TORQUE_FORCEINLINE ConsoleValueConsoleType* getConsoleType() const
+   TORQUE_FORCEINLINE S32 getConsoleType() const
    {
       if(type >= ConsoleValueType::cvConsoleValueType)
       {
-         return ct;
+         return type;
       }
       else
       {

+ 3 - 6
Engine/source/console/consoleInternal.h

@@ -349,8 +349,7 @@ public:
          if (value.isConsoleType())
          {
             const char* dptr = Con::getData(TypeS32, &val, 0);
-            ConsoleValueConsoleType* cvt = value.getConsoleType();
-            Con::setData(cvt->consoleType, cvt->dataPtr, 0, 1, &dptr, cvt->enumTable);
+            Con::setData(value.type, value.dataPtr, 0, 1, &dptr, value.enumTable);
          }
          else
          {
@@ -373,8 +372,7 @@ public:
          if (value.isConsoleType())
          {
             const char* dptr = Con::getData(TypeF32, &val, 0);
-            ConsoleValueConsoleType* cvt = value.getConsoleType();
-            Con::setData(cvt->consoleType, cvt->dataPtr, 0, 1, &dptr, cvt->enumTable);
+            Con::setData(value.type, value.dataPtr, 0, 1, &dptr, value.enumTable);
          }
          else
          {
@@ -397,8 +395,7 @@ public:
 
          if (value.isConsoleType())
          {
-            ConsoleValueConsoleType* cvt = value.getConsoleType();
-            Con::setData(cvt->consoleType, cvt->dataPtr, 0, 1, &val, cvt->enumTable);
+            Con::setData(value.type, value.dataPtr, 0, 1, &val, value.enumTable);
          }
          else
          {

+ 1 - 1
Engine/source/console/engineDoc.cpp

@@ -148,7 +148,7 @@ static void dumpVariable(  Stream& stream,
 
    // Skip variables for which we can't decipher their type.
 
-   ConsoleBaseType* type = ConsoleBaseType::getType( entry->value.getConsoleType()->consoleType );
+   ConsoleBaseType* type = ConsoleBaseType::getType( entry->value.type );
    if( !type )
    {
       Con::errorf( "Can't find type for variable '%s'", entry->name );