mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-04-29 16:25:42 +00:00
aug ArrayObject to have a uniquePair command
like uniqueket and uniquevalue, removes duplicate entries, but only if *both* match also, use that for the populateAllFonts() cache generator
This commit is contained in:
parent
242e029c21
commit
24562e6758
3 changed files with 28 additions and 2 deletions
|
|
@ -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)
|
void ArrayObject::duplicate(ArrayObject* obj)
|
||||||
{
|
{
|
||||||
empty();
|
empty();
|
||||||
|
|
@ -740,6 +756,12 @@ DefineEngineMethod( ArrayObject, uniqueKey, void, (),,
|
||||||
object->uniqueKey();
|
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 ),,
|
DefineEngineMethod( ArrayObject, duplicate, bool, ( ArrayObject* target ),,
|
||||||
"Alters array into an exact duplicate of the target array.\n"
|
"Alters array into an exact duplicate of the target array.\n"
|
||||||
"@param target ArrayObject to duplicate\n" )
|
"@param target ArrayObject to duplicate\n" )
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,10 @@ public:
|
||||||
/// (keeps the first instance only)
|
/// (keeps the first instance only)
|
||||||
void uniqueKey();
|
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
|
/// Makes this array an exact duplicate of another array
|
||||||
void duplicate( ArrayObject *obj );
|
void duplicate( ArrayObject *obj );
|
||||||
|
|
||||||
|
|
@ -229,4 +233,4 @@ public:
|
||||||
static void initPersistFields();
|
static void initPersistFields();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _ARRAYOBJECT_H_
|
#endif // _ARRAYOBJECT_H_
|
||||||
|
|
|
||||||
|
|
@ -650,7 +650,7 @@ function populateAllFonts()
|
||||||
continue;
|
continue;
|
||||||
%fontarray.push_back(%obj.fontType,%obj.fontSize);
|
%fontarray.push_back(%obj.fontType,%obj.fontSize);
|
||||||
}
|
}
|
||||||
%fontarray.uniqueKey();
|
%fontarray.uniquePair();
|
||||||
|
|
||||||
%fontarrayCount = %fontarray.count();
|
%fontarrayCount = %fontarray.count();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue