Browse Source

skip trying to be clever and just report the variable name being checked directly

AzaezelX 7 months ago
parent
commit
011a8906ff

+ 1 - 1
Engine/source/afx/afxEffectGroup.cpp

@@ -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);

+ 1 - 1
Engine/source/afx/afxEffectGroup.h

@@ -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;

+ 1 - 1
Engine/source/afx/afxEffectron.cpp

@@ -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);

+ 1 - 1
Engine/source/afx/afxEffectron.h

@@ -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;

+ 1 - 1
Engine/source/afx/afxMagicSpell.cpp

@@ -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);

+ 1 - 1
Engine/source/afx/afxMagicSpell.h

@@ -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;

+ 1 - 1
Engine/source/afx/afxSelectron.cpp

@@ -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);

+ 1 - 1
Engine/source/afx/afxSelectron.h

@@ -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;

+ 1 - 1
Engine/source/afx/ce/afxPhraseEffect.cpp

@@ -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);

+ 1 - 1
Engine/source/afx/ce/afxPhraseEffect.h

@@ -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;

+ 0 - 2
Engine/source/console/consoleObject.cpp

@@ -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);

+ 2 - 2
Engine/source/console/simObject.cpp

@@ -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;

+ 10 - 11
Engine/source/console/typeValidators.cpp

@@ -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;
    }
    }
 }
 }

+ 7 - 8
Engine/source/console/typeValidators.h

@@ -30,8 +30,7 @@
 class TypeValidator
 class TypeValidator
 {
 {
    public:
    public:
-   S32 fieldIndex;
-   TypeValidator() : fieldIndex(0) {}
+   TypeValidator() {}
    ~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; };
 };
 };