Ver Fonte

Merge branch 'development' into ShaderConstBuffer-CleanupRefactor

marauder2k7 há 1 ano atrás
pai
commit
ae11d996d9

+ 0 - 1
.github/workflows/build-windows-msvc.yml

@@ -9,7 +9,6 @@ concurrency:
     cancel-in-progress: true
 jobs:
     build-windows:
-        if: github.repository == 'TorqueGameEngines/Torque3D'
         name: ${{matrix.config.name}}
         runs-on: windows-latest
         strategy:

+ 0 - 1
.github/workflows/test-results-linux.yml

@@ -21,7 +21,6 @@ jobs:
                   runos: ubuntu-latest,
                   artifact-name: "torque3dLinuxGCCUnitTest"
                 }
-              
         steps:
             - name: Download Linux Test Report
               uses: dawidd6/action-download-artifact@v2

+ 22 - 0
Engine/source/console/arrayObject.cpp

@@ -404,6 +404,22 @@ void ArrayObject::uniqueKey()
 
 //-----------------------------------------------------------------------------
 
+void ArrayObject::uniquePair()
+{
+   for (S32 i = 0; i < mArray.size(); i++)
+   {
+      for (S32 j = i + 1; j < mArray.size(); j++)
+      {
+         if (isEqual(mArray[i].key, mArray[j].key) && isEqual(mArray[i].value, mArray[j].value))
+         {
+            erase(j);
+            j--;
+         }
+      }
+   }
+}
+//-----------------------------------------------------------------------------
+
 void ArrayObject::duplicate(ArrayObject* obj)
 {
    empty();
@@ -740,6 +756,12 @@ DefineEngineMethod( ArrayObject, uniqueKey, void, (),,
    object->uniqueKey();
 }
 
+DefineEngineMethod(ArrayObject, uniquePair, void, (), ,
+   "Removes any elements that have duplicated key and value pairs (leaving the first instance)")
+{
+   object->uniquePair();
+}
+
 DefineEngineMethod( ArrayObject, duplicate, bool, ( ArrayObject* target ),,
    "Alters array into an exact duplicate of the target array.\n"
    "@param target ArrayObject to duplicate\n" )

+ 5 - 1
Engine/source/console/arrayObject.h

@@ -158,6 +158,10 @@ public:
    /// (keeps the first instance only)
    void uniqueKey();
 
+   /// Removes any duplicate keys from the array
+   /// (keeps the first instance only)
+   void uniquePair();
+
    /// Makes this array an exact duplicate of another array
    void duplicate( ArrayObject *obj );
 
@@ -229,4 +233,4 @@ public:
    static void initPersistFields();
 };
 
-#endif // _ARRAYOBJECT_H_
+#endif // _ARRAYOBJECT_H_

+ 1 - 1
Templates/BaseGame/game/core/utility/scripts/helperFunctions.tscript

@@ -650,7 +650,7 @@ function populateAllFonts()
          continue;
       %fontarray.push_back(%obj.fontType,%obj.fontSize);
    }
-   %fontarray.uniqueKey();
+   %fontarray.uniquePair();
    
    %fontarrayCount = %fontarray.count();