mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-14 16:14:38 +00:00
skip trying to be clever and just report the variable name being checked directly
This commit is contained in:
parent
55ac453ab9
commit
011a8906ff
14 changed files with 29 additions and 33 deletions
|
|
@ -35,7 +35,7 @@
|
||||||
// When an effect is added using "addEffect", this validator intercepts the value
|
// When an effect is added using "addEffect", this validator intercepts the value
|
||||||
// and adds it to the dynamic effects list.
|
// and adds it to the dynamic effects list.
|
||||||
//
|
//
|
||||||
void afxEffectGroupData::egValidator::validateType(SimObject* object, void* typePtr)
|
void afxEffectGroupData::egValidator::validateType(SimObject* object, StringTableEntry varname, void* typePtr)
|
||||||
{
|
{
|
||||||
afxEffectGroupData* eff_data = dynamic_cast<afxEffectGroupData*>(object);
|
afxEffectGroupData* eff_data = dynamic_cast<afxEffectGroupData*>(object);
|
||||||
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ class afxEffectGroupData : public afxEffectBaseData
|
||||||
U32 id;
|
U32 id;
|
||||||
public:
|
public:
|
||||||
egValidator(U32 id) { this->id = id; }
|
egValidator(U32 id) { this->id = id; }
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool do_id_convert;
|
bool do_id_convert;
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
// When an effect is added using "addEffect", this validator intercepts the value
|
// When an effect is added using "addEffect", this validator intercepts the value
|
||||||
// and adds it to the dynamic effects list.
|
// and adds it to the dynamic effects list.
|
||||||
//
|
//
|
||||||
void afxEffectronData::ewValidator::validateType(SimObject* object, void* typePtr)
|
void afxEffectronData::ewValidator::validateType(SimObject* object, StringTableEntry varname, void* typePtr)
|
||||||
{
|
{
|
||||||
afxEffectronData* eff_data = dynamic_cast<afxEffectronData*>(object);
|
afxEffectronData* eff_data = dynamic_cast<afxEffectronData*>(object);
|
||||||
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ class afxEffectronData : public afxChoreographerData
|
||||||
U32 id;
|
U32 id;
|
||||||
public:
|
public:
|
||||||
ewValidator(U32 id) { this->id = id; }
|
ewValidator(U32 id) { this->id = id; }
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool do_id_convert;
|
bool do_id_convert;
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
// created for each effect list and an id is used to identify which list to add the effect
|
// created for each effect list and an id is used to identify which list to add the effect
|
||||||
// to.
|
// to.
|
||||||
//
|
//
|
||||||
void afxMagicSpellData::ewValidator::validateType(SimObject* object, void* typePtr)
|
void afxMagicSpellData::ewValidator::validateType(SimObject* object, StringTableEntry varname, void* typePtr)
|
||||||
{
|
{
|
||||||
afxMagicSpellData* spelldata = dynamic_cast<afxMagicSpellData*>(object);
|
afxMagicSpellData* spelldata = dynamic_cast<afxMagicSpellData*>(object);
|
||||||
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ class afxMagicSpellData : public afxChoreographerData, public afxMagicSpellDefs
|
||||||
U32 id;
|
U32 id;
|
||||||
public:
|
public:
|
||||||
ewValidator(U32 id) { this->id = id; }
|
ewValidator(U32 id) { this->id = id; }
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool mDo_id_convert;
|
bool mDo_id_convert;
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
// When an effect is added using "addEffect", this validator intercepts the value
|
// When an effect is added using "addEffect", this validator intercepts the value
|
||||||
// and adds it to the dynamic effects list.
|
// and adds it to the dynamic effects list.
|
||||||
//
|
//
|
||||||
void afxSelectronData::ewValidator::validateType(SimObject* object, void* typePtr)
|
void afxSelectronData::ewValidator::validateType(SimObject* object, StringTableEntry varname, void* typePtr)
|
||||||
{
|
{
|
||||||
afxSelectronData* sele_data = dynamic_cast<afxSelectronData*>(object);
|
afxSelectronData* sele_data = dynamic_cast<afxSelectronData*>(object);
|
||||||
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class afxSelectronData : public afxChoreographerData, public afxSelectronDefs
|
||||||
U32 id;
|
U32 id;
|
||||||
public:
|
public:
|
||||||
ewValidator(U32 id) { this->id = id; }
|
ewValidator(U32 id) { this->id = id; }
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool do_id_convert;
|
bool do_id_convert;
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
// When an effect is added using "addEffect", this validator intercepts the value
|
// When an effect is added using "addEffect", this validator intercepts the value
|
||||||
// and adds it to the dynamic effects list.
|
// and adds it to the dynamic effects list.
|
||||||
//
|
//
|
||||||
void afxPhraseEffectData::ewValidator::validateType(SimObject* object, void* typePtr)
|
void afxPhraseEffectData::ewValidator::validateType(SimObject* object, StringTableEntry varname, void* typePtr)
|
||||||
{
|
{
|
||||||
afxPhraseEffectData* eff_data = dynamic_cast<afxPhraseEffectData*>(object);
|
afxPhraseEffectData* eff_data = dynamic_cast<afxPhraseEffectData*>(object);
|
||||||
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
afxEffectBaseData** ew = (afxEffectBaseData**)(typePtr);
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class afxPhraseEffectData : public GameBaseData, public afxEffectDefs, public af
|
||||||
U32 id;
|
U32 id;
|
||||||
public:
|
public:
|
||||||
ewValidator(U32 id) { this->id = id; }
|
ewValidator(U32 id) { this->id = id; }
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool do_id_convert;
|
bool do_id_convert;
|
||||||
|
|
|
||||||
|
|
@ -646,7 +646,6 @@ void ConsoleObject::addProtectedFieldV(const char* in_pFieldname,
|
||||||
f.offset = in_fieldOffset;
|
f.offset = in_fieldOffset;
|
||||||
f.elementCount = in_elementCount;
|
f.elementCount = in_elementCount;
|
||||||
f.validator = v;
|
f.validator = v;
|
||||||
f.validator->fieldIndex = sg_tempFieldList.size();
|
|
||||||
f.flag = flags;
|
f.flag = flags;
|
||||||
|
|
||||||
f.setDataFn = in_setDataFn;
|
f.setDataFn = in_setDataFn;
|
||||||
|
|
@ -722,7 +721,6 @@ void ConsoleObject::addFieldV(const char* in_pFieldname,
|
||||||
f.writeDataFn = &defaultProtectedWriteFn;
|
f.writeDataFn = &defaultProtectedWriteFn;
|
||||||
f.elementCount = in_elementCount;
|
f.elementCount = in_elementCount;
|
||||||
f.validator = v;
|
f.validator = v;
|
||||||
f.validator->fieldIndex = sg_tempFieldList.size();
|
|
||||||
f.networkMask = 0;
|
f.networkMask = 0;
|
||||||
|
|
||||||
sg_tempFieldList.push_back(f);
|
sg_tempFieldList.push_back(f);
|
||||||
|
|
|
||||||
|
|
@ -1097,7 +1097,7 @@ void SimObject::setDataField(StringTableEntry slotName, const char *array, const
|
||||||
Con::setData(fld->type, (void *) (((const char *)this) + fld->offset), array1, 1, &value, fld->table);
|
Con::setData(fld->type, (void *) (((const char *)this) + fld->offset), array1, 1, &value, fld->table);
|
||||||
|
|
||||||
if(fld->validator)
|
if(fld->validator)
|
||||||
fld->validator->validateType(this, (void *) (((const char *)this) + fld->offset));
|
fld->validator->validateType(this, fld->pFieldname, (void *) (((const char *)this) + fld->offset));
|
||||||
|
|
||||||
if (fld->networkMask != 0)
|
if (fld->networkMask != 0)
|
||||||
{
|
{
|
||||||
|
|
@ -1111,7 +1111,7 @@ void SimObject::setDataField(StringTableEntry slotName, const char *array, const
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fld->validator)
|
if(fld->validator)
|
||||||
fld->validator->validateType(this, (void *) (((const char *)this) + fld->offset));
|
fld->validator->validateType(this, fld->pFieldname, (void *) (((const char *)this) + fld->offset));
|
||||||
|
|
||||||
onStaticModified( slotName, value );
|
onStaticModified( slotName, value );
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
#include "math/mPoint3.h"
|
#include "math/mPoint3.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
void TypeValidator::consoleError(SimObject *object, const char *format, ...)
|
void TypeValidator::consoleError(SimObject *object, StringTableEntry varname, const char *format, ...)
|
||||||
{
|
{
|
||||||
char buffer[1024];
|
char buffer[1024];
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
|
|
@ -37,22 +37,21 @@ void TypeValidator::consoleError(SimObject *object, const char *format, ...)
|
||||||
va_end(argptr);
|
va_end(argptr);
|
||||||
|
|
||||||
AbstractClassRep *rep = object->getClassRep();
|
AbstractClassRep *rep = object->getClassRep();
|
||||||
AbstractClassRep::Field &fld = rep->mFieldList[fieldIndex];
|
|
||||||
const char *objectName = object->getName();
|
const char *objectName = object->getName();
|
||||||
if(!objectName)
|
if(!objectName)
|
||||||
objectName = "unnamed";
|
objectName = "unnamed";
|
||||||
|
|
||||||
|
|
||||||
Con::warnf("%s - %s(%d) - invalid value for %s: %s",
|
Con::warnf("%s - %s(%d) - invalid value for %s: %s",
|
||||||
rep->getClassName(), objectName, object->getId(), fld.pFieldname, buffer);
|
rep->getClassName(), objectName, object->getId(), varname, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FRangeValidator::validateType(SimObject *object, void *typePtr)
|
void FRangeValidator::validateType(SimObject *object, StringTableEntry varname, void *typePtr)
|
||||||
{
|
{
|
||||||
F32 *v = (F32 *) typePtr;
|
F32 *v = (F32 *) typePtr;
|
||||||
if(*v < minV || *v > maxV)
|
if(*v < minV || *v > maxV)
|
||||||
{
|
{
|
||||||
consoleError(object, "=(%g). Must be between %g and %g", *v, minV, maxV);
|
consoleError(object, varname, "=(%g). Must be between %g and %g", *v, minV, maxV);
|
||||||
if(*v < minV)
|
if(*v < minV)
|
||||||
*v = minV;
|
*v = minV;
|
||||||
else if(*v > maxV)
|
else if(*v > maxV)
|
||||||
|
|
@ -60,12 +59,12 @@ void FRangeValidator::validateType(SimObject *object, void *typePtr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRangeValidator::validateType(SimObject *object, void *typePtr)
|
void IRangeValidator::validateType(SimObject *object, StringTableEntry varname, void *typePtr)
|
||||||
{
|
{
|
||||||
S32 *v = (S32 *) typePtr;
|
S32 *v = (S32 *) typePtr;
|
||||||
if(*v < minV || *v > maxV)
|
if(*v < minV || *v > maxV)
|
||||||
{
|
{
|
||||||
consoleError(object, "=(%d). Must be between %d and %d", *v, minV, maxV);
|
consoleError(object, varname, "=(%d). Must be between %d and %d", *v, minV, maxV);
|
||||||
if(*v < minV)
|
if(*v < minV)
|
||||||
*v = minV;
|
*v = minV;
|
||||||
else if(*v > maxV)
|
else if(*v > maxV)
|
||||||
|
|
@ -73,13 +72,13 @@ void IRangeValidator::validateType(SimObject *object, void *typePtr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRangeValidatorScaled::validateType(SimObject *object, void *typePtr)
|
void IRangeValidatorScaled::validateType(SimObject *object, StringTableEntry varname, void *typePtr)
|
||||||
{
|
{
|
||||||
S32 *v = (S32 *) typePtr;
|
S32 *v = (S32 *) typePtr;
|
||||||
*v /= factor;
|
*v /= factor;
|
||||||
if(*v < minV || *v > maxV)
|
if(*v < minV || *v > maxV)
|
||||||
{
|
{
|
||||||
consoleError(object, "=(%d). Scaled value must be between %d and %d", *v, minV, maxV);
|
consoleError(object, varname, "=(%d). Scaled value must be between %d and %d", *v, minV, maxV);
|
||||||
if(*v < minV)
|
if(*v < minV)
|
||||||
*v = minV;
|
*v = minV;
|
||||||
else if(*v > maxV)
|
else if(*v > maxV)
|
||||||
|
|
@ -87,13 +86,13 @@ void IRangeValidatorScaled::validateType(SimObject *object, void *typePtr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Point3NormalizeValidator::validateType(SimObject *object, void *typePtr)
|
void Point3NormalizeValidator::validateType(SimObject *object, StringTableEntry varname, void *typePtr)
|
||||||
{
|
{
|
||||||
Point3F *v = (Point3F *) typePtr;
|
Point3F *v = (Point3F *) typePtr;
|
||||||
const F32 len = v->len();
|
const F32 len = v->len();
|
||||||
if(!mIsEqual(len, 1.0f))
|
if(!mIsEqual(len, 1.0f))
|
||||||
{
|
{
|
||||||
consoleError(object, "=(%g). Vector length must be %g", len, length);
|
consoleError(object, varname, "=(%g). Vector length must be %g", len, length);
|
||||||
*v *= length / len;
|
*v *= length / len;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,7 @@
|
||||||
class TypeValidator
|
class TypeValidator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
S32 fieldIndex;
|
TypeValidator() {}
|
||||||
TypeValidator() : fieldIndex(0) {}
|
|
||||||
~TypeValidator() {}
|
~TypeValidator() {}
|
||||||
/// Prints a console error message for the validator.
|
/// Prints a console error message for the validator.
|
||||||
///
|
///
|
||||||
|
|
@ -39,11 +38,11 @@ class TypeValidator
|
||||||
/// @code
|
/// @code
|
||||||
/// className objectName (objectId) - invalid value for fieldName: msg
|
/// className objectName (objectId) - invalid value for fieldName: msg
|
||||||
/// @endcode
|
/// @endcode
|
||||||
void consoleError(SimObject *object, const char *format, ...);
|
void consoleError(SimObject *object, StringTableEntry varname, const char *format, ...);
|
||||||
|
|
||||||
/// validateType is called for each assigned value on the field this
|
/// validateType is called for each assigned value on the field this
|
||||||
/// validator is attached to.
|
/// validator is attached to.
|
||||||
virtual void validateType(SimObject *object, void *typePtr) = 0;
|
virtual void validateType(SimObject *object, StringTableEntry varname, void *typePtr) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -58,7 +57,7 @@ public:
|
||||||
maxV = mFabs(maxValue) > F32_MIN ? maxValue : 0.0f;
|
maxV = mFabs(maxValue) > F32_MIN ? maxValue : 0.0f;
|
||||||
mFidelity = fidelity;
|
mFidelity = fidelity;
|
||||||
}
|
}
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
F32 getMin() { return minV; };
|
F32 getMin() { return minV; };
|
||||||
F32 getMax() { return maxV; };
|
F32 getMax() { return maxV; };
|
||||||
F32 getFidelity() { return mFidelity; };
|
F32 getFidelity() { return mFidelity; };
|
||||||
|
|
@ -75,7 +74,7 @@ public:
|
||||||
maxV = maxValue;
|
maxV = maxValue;
|
||||||
mFidelity = fidelity;
|
mFidelity = fidelity;
|
||||||
}
|
}
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
S32 getMin() { return minV; };
|
S32 getMin() { return minV; };
|
||||||
S32 getMax() { return maxV; };
|
S32 getMax() { return maxV; };
|
||||||
S32 getFidelity() { return mFidelity; };
|
S32 getFidelity() { return mFidelity; };
|
||||||
|
|
@ -96,7 +95,7 @@ public:
|
||||||
maxV = maxValueScaled;
|
maxV = maxValueScaled;
|
||||||
factor = scaleFactor;
|
factor = scaleFactor;
|
||||||
}
|
}
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
S32 getMin() { return minV; };
|
S32 getMin() { return minV; };
|
||||||
S32 getMax() { return maxV; };
|
S32 getMax() { return maxV; };
|
||||||
S32 getScaleFactor() { return factor; };
|
S32 getScaleFactor() { return factor; };
|
||||||
|
|
@ -108,7 +107,7 @@ class Point3NormalizeValidator : public TypeValidator
|
||||||
F32 length;
|
F32 length;
|
||||||
public:
|
public:
|
||||||
Point3NormalizeValidator(F32 normalizeLength = 1.0f) : length(normalizeLength) { }
|
Point3NormalizeValidator(F32 normalizeLength = 1.0f) : length(normalizeLength) { }
|
||||||
void validateType(SimObject *object, void *typePtr) override;
|
void validateType(SimObject *object, StringTableEntry varname, void *typePtr) override;
|
||||||
F32 getLength() { return length; };
|
F32 getLength() { return length; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue