]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Reflectively list entity fields as description for unknown entities in developer...
authorTimePath <andrew.hardaker1995@gmail.com>
Mon, 17 Aug 2015 06:38:53 +0000 (16:38 +1000)
committerTimePath <andrew.hardaker1995@gmail.com>
Mon, 17 Aug 2015 06:38:53 +0000 (16:38 +1000)
qcsrc/common/oo.qh
qcsrc/menu/xonotic/datasource.qc
qcsrc/menu/xonotic/dialog_media_guide.qc

index 01c9db915423f38d662c62d20721cdaf9676859e..5f990ff84a61021636e1b7e9062668e5dd673ba2 100644 (file)
@@ -118,7 +118,16 @@ STATIC_INIT(RegisterClasses) { RegisterClasses(); }
 #define _vtbl NULL
 CLASS(Object, );
     METHOD(Object, describe, string(entity this))
-    string Object_describe(entity this) { return _("No description"); }
+    string Object_describe(entity this) {
+        string s = _("No description");
+        if (cvar("developer")) {
+            for (int i = 0, n = numentityfields(); i < n; ++i) {
+                string value = getentityfieldstring(i, this);
+                if (value != "") s = sprintf("%s\n%s = %s", s, entityfieldname(i), value);
+            }
+       }
+        return s;
+    }
     METHOD(Object, display, void(entity this, void(string name, string icon) returns))
     void Object_display(entity this, void(string name, string icon) returns) { returns(sprintf("entity %i", this), "nopreview_menuskin"); }
 ENDCLASS(Object)
index f0db56eb7af438d6f909626c9d4623028148e6be..3c484e3ceb1ee0e6511cb5901d6df1450f22ac7e 100644 (file)
@@ -16,7 +16,7 @@ CLASS(DataSource, Object)
     entity DataSource_true;
     entity DataSource_false;
     INIT_STATIC(DataSource) {
-        DataSource_true = new(dummy);
+        DataSource_true = NEW(Object);
         DataSource_false = NULL;
     }
 ENDCLASS(DataSource)
index 3c2fb8acd3fa908b0194d54d37497f25059bfdd2..d4b9354046335683945264fe280f4856a554367b 100644 (file)
@@ -34,6 +34,7 @@ CLASS(DebugSource, DataSource)
         for (entity it = NULL; (it = nextent(it)); ) {
             if (!it.instanceOfObject) continue;
             if (it.instanceOfItem) continue;
+            if (it.classname == "Object") continue;
             if (it.classname == "vtbl") continue;
             if (!tail) {
                 tail = head = it;