1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 08:47:17 +01:00

Fix algorithms.

This commit is contained in:
Sandu Liviu Catalin 2020-04-30 20:03:24 +03:00
parent 9dd016a229
commit 185c51ef8f
3 changed files with 49 additions and 49 deletions

View File

@ -65,7 +65,7 @@ private:
bool m_CyclicLock; // Prevent the script callback from entering a loop. bool m_CyclicLock; // Prevent the script callback from entering a loop.
// -------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------
Uint32 m_StringTruncate; // The length at which to trincate strings in debug. Uint32 m_StringTruncate; // The length at which to truncate strings in debug.
// -------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------
std::FILE* m_File; // Handle to the file where the logs should be saved. std::FILE* m_File; // Handle to the file where the logs should be saved.

View File

@ -307,11 +307,11 @@ static inline LightObj Player_FirstWhereNameMatches(bool neg, bool cs, CSStr nam
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name matches or not the specified one. * Process all entities of this type where the name matches or not the specified one.
*/ */
static inline Uint32 Player_EachWhereNameEquals(bool neg, bool cs, CSStr name, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameEquals(bool neg, bool cs, CSStr name, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemFunc< CPlayer > fwd(env, func); ForwardElemFunc< CPlayer > fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachEqualsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachEqualsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -323,11 +323,11 @@ static inline Uint32 Player_EachWhereNameEquals(bool neg, bool cs, CSStr name, L
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name matches or not the specified one. * Process all entities of this type where the name matches or not the specified one.
*/ */
static inline Uint32 Player_EachWhereNameEqualsData(bool neg, bool cs, CSStr name, LightObj & data, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameEqualsData(bool neg, bool cs, CSStr name, LightObj & data, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemDataFunc< CPlayer > fwd(data, env, func); ForwardElemDataFunc< CPlayer > fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachEqualsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachEqualsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -339,11 +339,11 @@ static inline Uint32 Player_EachWhereNameEqualsData(bool neg, bool cs, CSStr nam
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name begins with the specified string. * Process all entities of this type where the name begins with the specified string.
*/ */
static inline Uint32 Player_EachWhereNameBegins(bool neg, bool cs, CSStr name, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameBegins(bool neg, bool cs, CSStr name, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemFunc< CPlayer > fwd(env, func); ForwardElemFunc< CPlayer > fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachBeginsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachBeginsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -355,11 +355,11 @@ static inline Uint32 Player_EachWhereNameBegins(bool neg, bool cs, CSStr name, L
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name begins with the specified string. * Process all entities of this type where the name begins with the specified string.
*/ */
static inline Uint32 Player_EachWhereNameBeginsData(bool neg, bool cs, CSStr name, LightObj & data, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameBeginsData(bool neg, bool cs, CSStr name, LightObj & data, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemDataFunc< CPlayer > fwd(data, env, func); ForwardElemDataFunc< CPlayer > fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachBeginsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachBeginsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -371,11 +371,11 @@ static inline Uint32 Player_EachWhereNameBeginsData(bool neg, bool cs, CSStr nam
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name ends or not with the specified string. * Process all entities of this type where the name ends or not with the specified string.
*/ */
static inline Uint32 Player_EachWhereNameEnds(bool neg, bool cs, CSStr name, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameEnds(bool neg, bool cs, CSStr name, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemFunc< CPlayer > fwd(env, func); ForwardElemFunc< CPlayer > fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachEndsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachEndsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -387,11 +387,11 @@ static inline Uint32 Player_EachWhereNameEnds(bool neg, bool cs, CSStr name, Lig
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name ends or not with the specified string. * Process all entities of this type where the name ends or not with the specified string.
*/ */
static inline Uint32 Player_EachWhereNameEndsData(bool neg, bool cs, CSStr name, LightObj & data, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameEndsData(bool neg, bool cs, CSStr name, LightObj & data, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemDataFunc< CPlayer > fwd(data, env, func); ForwardElemDataFunc< CPlayer > fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachEndsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachEndsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -403,11 +403,11 @@ static inline Uint32 Player_EachWhereNameEndsData(bool neg, bool cs, CSStr name,
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name contains the specified string. * Process all entities of this type where the name contains the specified string.
*/ */
static inline Uint32 Player_EachWhereNameContains(bool neg, bool cs, CSStr name, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameContains(bool neg, bool cs, CSStr name, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemFunc< CPlayer > fwd(env, func); ForwardElemFunc< CPlayer > fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachContainsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachContainsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -419,11 +419,11 @@ static inline Uint32 Player_EachWhereNameContains(bool neg, bool cs, CSStr name,
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name contains the specified string. * Process all entities of this type where the name contains the specified string.
*/ */
static inline Uint32 Player_EachWhereNameContainsData(bool neg, bool cs, CSStr name, LightObj & data, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameContainsData(bool neg, bool cs, CSStr name, LightObj & data, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemDataFunc< CPlayer > fwd(data, env, func); ForwardElemDataFunc< CPlayer > fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachContainsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachContainsWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -435,11 +435,11 @@ static inline Uint32 Player_EachWhereNameContainsData(bool neg, bool cs, CSStr n
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name matches the specified filter. * Process all entities of this type where the name matches the specified filter.
*/ */
static inline Uint32 Player_EachWhereNameMatches(bool neg, bool cs, CSStr name, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameMatches(bool neg, bool cs, CSStr name, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemFunc< CPlayer > fwd(env, func); ForwardElemFunc< CPlayer > fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachMatchesWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachMatchesWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),
@ -451,11 +451,11 @@ static inline Uint32 Player_EachWhereNameMatches(bool neg, bool cs, CSStr name,
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the name matches the specified filter. * Process all entities of this type where the name matches the specified filter.
*/ */
static inline Uint32 Player_EachWhereNameMatchesData(bool neg, bool cs, CSStr name, LightObj & data, LightObj & env, Function & func) static inline Uint32 Player_EachWhereNameMatchesData(bool neg, bool cs, CSStr name, LightObj & data, Function & func)
{ {
SQMOD_VALID_NAME_STR(name) SQMOD_VALID_NAME_STR(name)
// Create a new element forwarder // Create a new element forwarder
ForwardElemDataFunc< CPlayer > fwd(data, env, func); ForwardElemDataFunc< CPlayer > fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachMatchesWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(), EachMatchesWhile(InstSpec< CPlayer >::CBegin(), InstSpec< CPlayer >::CEnd(),
ValidInstFunc< CPlayer >(), PlayerName(), ValidInstFunc< CPlayer >(), PlayerName(),

View File

@ -957,8 +957,8 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Base constructor. * Base constructor.
*/ */
ForwardElemFunc(LightObj & env, Function & func) ForwardElemFunc(Function & func)
: mEnv(env.IsNull() ? func.GetEnv() : env.mObj), mFunc(func.GetFunc()), mCount(0) : mEnv(func.GetEnv()), mFunc(func.GetFunc()), mCount(0)
{ {
if (mFunc.IsNull()) if (mFunc.IsNull())
{ {
@ -1031,8 +1031,8 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Base constructor. * Base constructor.
*/ */
ForwardElemDataFunc(LightObj & data, LightObj & env, Function & func) ForwardElemDataFunc(LightObj & data, Function & func)
: mEnv(env.IsNull() ? func.GetEnv() : env.mObj), mFunc(func.GetFunc()), mData(data), mCount(0) : mEnv(func.GetEnv()), mFunc(func.GetFunc()), mData(data), mCount(0)
{ {
if (mFunc.IsNull()) if (mFunc.IsNull())
{ {
@ -1377,10 +1377,10 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all active entities of this type. * Process all active entities of this type.
*/ */
static inline Uint32 EachActive(LightObj & env, Function & func) static inline Uint32 EachActive(Function & func)
{ {
// Create a new element forwarder // Create a new element forwarder
ForwardElem fwd(env, func); ForwardElem fwd(func);
// Process each entity in the pool // Process each entity in the pool
CollectWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), CollectWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(),
std::reference_wrapper< ForwardElem >(fwd)); std::reference_wrapper< ForwardElem >(fwd));
@ -1391,10 +1391,10 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all active entities of this type. * Process all active entities of this type.
*/ */
static inline Uint32 EachActiveData(LightObj & data, LightObj & env, Function & func) static inline Uint32 EachActiveData(LightObj & data, Function & func)
{ {
// Create a new element forwarder // Create a new element forwarder
ForwardElemData fwd(data, env, func); ForwardElemData fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
CollectWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), CollectWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(),
std::reference_wrapper< ForwardElemData >(fwd)); std::reference_wrapper< ForwardElemData >(fwd));
@ -1405,11 +1405,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag matches or not the specified one. * Process all entities of this type where the tag matches or not the specified one.
*/ */
static inline Uint32 EachWhereTagEquals(bool neg, bool cs, CSStr tag, LightObj & env, Function & func) static inline Uint32 EachWhereTagEquals(bool neg, bool cs, CSStr tag, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElem fwd(env, func); ForwardElem fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachEqualsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachEqualsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElem >(fwd), tag, !neg, cs); std::reference_wrapper< ForwardElem >(fwd), tag, !neg, cs);
@ -1420,11 +1420,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag matches or not the specified one. * Process all entities of this type where the tag matches or not the specified one.
*/ */
static inline Uint32 EachWhereTagEqualsData(bool neg, bool cs, CSStr tag, LightObj & data, LightObj & env, Function & func) static inline Uint32 EachWhereTagEqualsData(bool neg, bool cs, CSStr tag, LightObj & data, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElemData fwd(data, env, func); ForwardElemData fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachEqualsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachEqualsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElemData >(fwd), tag, !neg, cs); std::reference_wrapper< ForwardElemData >(fwd), tag, !neg, cs);
@ -1435,11 +1435,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag begins with the specified string. * Process all entities of this type where the tag begins with the specified string.
*/ */
static inline Uint32 EachWhereTagBegins(bool neg, bool cs, CSStr tag, LightObj & env, Function & func) static inline Uint32 EachWhereTagBegins(bool neg, bool cs, CSStr tag, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElem fwd(env, func); ForwardElem fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachBeginsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachBeginsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElem >(fwd), tag, strlen(tag), !neg, cs); std::reference_wrapper< ForwardElem >(fwd), tag, strlen(tag), !neg, cs);
@ -1450,11 +1450,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag begins with the specified string. * Process all entities of this type where the tag begins with the specified string.
*/ */
static inline Uint32 EachWhereTagBeginsData(bool neg, bool cs, CSStr tag, LightObj & data, LightObj & env, Function & func) static inline Uint32 EachWhereTagBeginsData(bool neg, bool cs, CSStr tag, LightObj & data, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElemData fwd(data, env, func); ForwardElemData fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachBeginsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachBeginsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElemData >(fwd), tag, strlen(tag), !neg, cs); std::reference_wrapper< ForwardElemData >(fwd), tag, strlen(tag), !neg, cs);
@ -1465,11 +1465,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag ends or not with the specified string. * Process all entities of this type where the tag ends or not with the specified string.
*/ */
static inline Uint32 EachWhereTagEnds(bool neg, bool cs, CSStr tag, LightObj & env, Function & func) static inline Uint32 EachWhereTagEnds(bool neg, bool cs, CSStr tag, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElem fwd(env, func); ForwardElem fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachEndsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachEndsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElem >(fwd), tag, strlen(tag), !neg, cs); std::reference_wrapper< ForwardElem >(fwd), tag, strlen(tag), !neg, cs);
@ -1480,11 +1480,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag ends or not with the specified string. * Process all entities of this type where the tag ends or not with the specified string.
*/ */
static inline Uint32 EachWhereTagEndsData(bool neg, bool cs, CSStr tag, LightObj & data, LightObj & env, Function & func) static inline Uint32 EachWhereTagEndsData(bool neg, bool cs, CSStr tag, LightObj & data, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElemData fwd(data, env, func); ForwardElemData fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachEndsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachEndsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElemData >(fwd), tag, strlen(tag), !neg, cs); std::reference_wrapper< ForwardElemData >(fwd), tag, strlen(tag), !neg, cs);
@ -1495,11 +1495,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag contains the specified string. * Process all entities of this type where the tag contains the specified string.
*/ */
static inline Uint32 EachWhereTagContains(bool neg, bool cs, CSStr tag, LightObj & env, Function & func) static inline Uint32 EachWhereTagContains(bool neg, bool cs, CSStr tag, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElem fwd(env, func); ForwardElem fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachContainsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachContainsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElem >(fwd), tag, !neg, cs); std::reference_wrapper< ForwardElem >(fwd), tag, !neg, cs);
@ -1510,11 +1510,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag contains the specified string. * Process all entities of this type where the tag contains the specified string.
*/ */
static inline Uint32 EachWhereTagContainsData(bool neg, bool cs, CSStr tag, LightObj & data, LightObj & env, Function & func) static inline Uint32 EachWhereTagContainsData(bool neg, bool cs, CSStr tag, LightObj & data, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElemData fwd(data, env, func); ForwardElemData fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachContainsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachContainsWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElemData >(fwd), tag, !neg, cs); std::reference_wrapper< ForwardElemData >(fwd), tag, !neg, cs);
@ -1525,11 +1525,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag match the specified filter. * Process all entities of this type where the tag match the specified filter.
*/ */
static inline Uint32 EachWhereTagMatches(bool neg, bool cs, CSStr tag, LightObj & env, Function & func) static inline Uint32 EachWhereTagMatches(bool neg, bool cs, CSStr tag, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElem fwd(env, func); ForwardElem fwd(func);
// Process each entity in the pool // Process each entity in the pool
EachMatchesWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachMatchesWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElem >(fwd), tag, !neg, cs); std::reference_wrapper< ForwardElem >(fwd), tag, !neg, cs);
@ -1540,11 +1540,11 @@ public:
/* -------------------------------------------------------------------------------------------- /* --------------------------------------------------------------------------------------------
* Process all entities of this type where the tag match the specified filter. * Process all entities of this type where the tag match the specified filter.
*/ */
static inline Uint32 EachWhereTagMatchesData(bool neg, bool cs, CSStr tag, LightObj & data, LightObj & env, Function & func) static inline Uint32 EachWhereTagMatchesData(bool neg, bool cs, CSStr tag, LightObj & data, Function & func)
{ {
SQMOD_VALID_TAG_STR(tag) SQMOD_VALID_TAG_STR(tag)
// Create a new element forwarder // Create a new element forwarder
ForwardElemData fwd(data, env, func); ForwardElemData fwd(data, func);
// Process each entity in the pool // Process each entity in the pool
EachMatchesWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(), EachMatchesWhile(Inst::CBegin(), Inst::CEnd(), ValidInst(), InstTag(),
std::reference_wrapper< ForwardElemData >(fwd), tag, !neg, cs); std::reference_wrapper< ForwardElemData >(fwd), tag, !neg, cs);