diff --git a/Engine/source/console/consoleTypes.cpp b/Engine/source/console/consoleTypes.cpp index 6c993c446..09765bf34 100644 --- a/Engine/source/console/consoleTypes.cpp +++ b/Engine/source/console/consoleTypes.cpp @@ -710,6 +710,31 @@ ConsoleSetType( TypeColorI ) Con::printf("Color must be set as { r, g, b [,a] }, { r g b [b] } or { stockColorName }"); } +//----------------------------------------------------------------------------- +// TypeSimObjectPtr +//----------------------------------------------------------------------------- +ConsoleType(SimObject, TypeSimObjectPtr, SimObject*, "") + +ConsoleSetType(TypeSimObjectPtr) +{ + if (argc == 1) + { + SimObject **obj = (SimObject **)dptr; + *obj = Sim::findObject(argv[0]); + } + else + Con::printf("(TypeSimObjectPtr) Cannot set multiple args to a single S32."); +} + +ConsoleGetType(TypeSimObjectPtr) +{ + SimObject **obj = (SimObject**)dptr; + static const U32 bufSize = 128; + char* returnBuffer = Con::getReturnBuffer(bufSize); + dSprintf(returnBuffer, bufSize, "%s", *obj ? (*obj)->getName() ? (*obj)->getName() : (*obj)->getIdString() : ""); + return returnBuffer; +} + //----------------------------------------------------------------------------- // TypeSimObjectName //----------------------------------------------------------------------------- diff --git a/Engine/source/console/consoleTypes.h b/Engine/source/console/consoleTypes.h index c026b8e1a..ce5e7134a 100644 --- a/Engine/source/console/consoleTypes.h +++ b/Engine/source/console/consoleTypes.h @@ -123,6 +123,8 @@ DefineConsoleType( TypeColorF, ColorF ) DefineConsoleType( TypeSimObjectName, SimObject* ) DefineConsoleType( TypeShader, GFXShader * ) +DefineConsoleType(TypeSimObjectPtr, SimObject*) + /// A persistent reference to an object. This reference indirectly goes /// through the referenced object's persistent ID. DefineConsoleType( TypeSimPersistId, SimPersistID* )