From ae6b035f107e1bc9cd466a15358ce83ec7865e34 Mon Sep 17 00:00:00 2001 From: Lukas Joergensen Date: Fri, 8 Dec 2017 20:50:44 +0100 Subject: [PATCH] Improve console dump with additional information, such as array sizes and variadic function --- Engine/source/console/consoleDoc.cpp | 30 ++++++++++++++++++----- Engine/source/console/consoleInternal.cpp | 4 ++- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/Engine/source/console/consoleDoc.cpp b/Engine/source/console/consoleDoc.cpp index b63d7293a..4fb6921dd 100644 --- a/Engine/source/console/consoleDoc.cpp +++ b/Engine/source/console/consoleDoc.cpp @@ -185,7 +185,7 @@ void printGroupStart(const char * aName, const char * aDocs) Con::printf(" /*! */"); } -void printClassMember(const bool isDeprec, const char * aType, const char * aName, const char * aDocs) +void printClassMember(const bool isDeprec, const char * aType, const char * aName, const char * aDocs, S32 aElementCount) { Con::printf(" /*!"); @@ -200,7 +200,14 @@ void printClassMember(const bool isDeprec, const char * aType, const char * aNam Con::printf(" */"); - Con::printf(" %s %s;", isDeprec ? "deprecated" : aType, aName); + if (aElementCount == 1) + { + Con::printf(" %s %s;", isDeprec ? "deprecated" : aType, aName); + } + else + { + Con::printf(" %s %s[%i];", isDeprec ? "deprecated" : aType, aName, aElementCount); + } } void printGroupEnd() @@ -235,8 +242,17 @@ void Namespace::printNamespaceEntries(Namespace * g, bool dumpScript, bool dumpE // If it's a function if( eType >= Entry::ConsoleFunctionType ) { - printClassMethod(true, typeNames[eType], funcName, ewalk->getArgumentsString().c_str(), - ewalk->getDocString().c_str()); + if (ewalk->mHeader != NULL) + { + // The function was defined with types, so we can print out the actual return type + printClassMethod(true, ewalk->mHeader->mReturnString, funcName, ewalk->getArgumentsString().c_str(), + ewalk->getDocString().c_str()); + } + else + { + printClassMethod(true, typeNames[eType], funcName, (ewalk->getArgumentsString() + "...").c_str(), + ewalk->getDocString().c_str()); + } } else if(ewalk->mType == Entry::GroupMarker) { @@ -416,7 +432,8 @@ void Namespace::dumpClasses( bool dumpScript, bool dumpEngine ) true, "", (*fieldList)[j].pFieldname, - (*fieldList)[j].pFieldDocs + (*fieldList)[j].pFieldDocs, + (*fieldList)[j].elementCount ); } else @@ -427,7 +444,8 @@ void Namespace::dumpClasses( bool dumpScript, bool dumpEngine ) false, cbt ? cbt->getTypeClassName() : "", (*fieldList)[j].pFieldname, - (*fieldList)[j].pFieldDocs + (*fieldList)[j].pFieldDocs, + (*fieldList)[j].elementCount ); } } diff --git a/Engine/source/console/consoleInternal.cpp b/Engine/source/console/consoleInternal.cpp index 1d1477325..eadee5d7b 100644 --- a/Engine/source/console/consoleInternal.cpp +++ b/Engine/source/console/consoleInternal.cpp @@ -1607,8 +1607,10 @@ namespace { if (dStrcmp(nativeType, "char*") == 0 || dStrcmp(nativeType, "char *") == 0) return "string"; - else if (dStrcmp(nativeType, "S32") == 0 || dStrcmp(nativeType, "U32") == 0) + else if (dStrcmp(nativeType, "S32") == 0) return "int"; + else if (dStrcmp(nativeType, "U32") == 0) + return "uint"; else if (dStrcmp(nativeType, "F32") == 0) return "float";