123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- //-----------------------------------------------------------------------------
- // Copyright (c) 2013 GarageGames, LLC
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files (the "Software"), to
- // deal in the Software without restriction, including without limitation the
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- // sell copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in
- // all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- // IN THE SOFTWARE.
- //-----------------------------------------------------------------------------
- ConsoleFunctionGroupBegin( Output, "Functions to output to the console." );
- /*! @addtogroup ConsoleOutput Console Output
- @ingroup TorqueScriptFunctions
- @{
- */
- /*! Use the echo function to print messages to the console.
- @param text Any valid text string.
- @param ... Any additional valid text string(s).
- @return No return value.
- @sa error, warn
- */
- ConsoleFunctionWithDocs(echo, ConsoleVoid, 2, 0, ( text, [...]* ))
- {
- U32 len = 0;
- S32 i;
- for(i = 1; i < argc; i++)
- len += dStrlen(argv[i]);
- char *ret = Con::getReturnBuffer(len + 1);
- ret[0] = 0;
- for(i = 1; i < argc; i++)
- dStrcat(ret, argv[i]);
- Con::printf("%s", ret);
- ret[0] = 0;
- }
- /*! Prints a separator to the console.
- */
- ConsoleFunctionWithDocs(echoSeparator, ConsoleVoid, 0, 0, ())
- {
- Con::printSeparator();
- }
- /*! Use the warn function to print warning messages to the console. These messages usually yellow or orange.
- @param text Any valid text string.
- @param ... Any additional valid text string(s).
- @return No return value.
- @sa warn, error
- */
- ConsoleFunctionWithDocs(warn, ConsoleVoid, 2, 0, ( text, [...]* ))
- {
- U32 len = 0;
- S32 i;
- for(i = 1; i < argc; i++)
- len += dStrlen(argv[i]);
- char *ret = Con::getReturnBuffer(len + 1);
- ret[0] = 0;
- for(i = 1; i < argc; i++)
- dStrcat(ret, argv[i]);
- Con::warnf(ConsoleLogEntry::General, "%s", ret);
- ret[0] = 0;
- }
- /*! Use the error function to print error messages to the console. These messages usually print in red.
- @param text Any valid text string.
- @param ... Any additional valid text string(s).
- @return No return value.
- @sa echo, warn
- */
- ConsoleFunctionWithDocs(error, ConsoleVoid, 2, 0, ( text, [...]* ))
- {
- U32 len = 0;
- S32 i;
- for(i = 1; i < argc; i++)
- len += dStrlen(argv[i]);
- char *ret = Con::getReturnBuffer(len + 1);
- ret[0] = 0;
- for(i = 1; i < argc; i++)
- dStrcat(ret, argv[i]);
- Con::errorf(ConsoleLogEntry::General, "%s", ret);
- ret[0] = 0;
- }
- /*! Use the collapseEscape function to replace all escape sequences ('xx') with an expanded version ('xx').
- @param text A string, possibly containing escape sequences.
- @return Returns a copy of text with all escape sequences expanded.
- @sa collapseEscape
- */
- ConsoleFunctionWithDocs(expandEscape, ConsoleString, 2, 2, ( text ))
- {
- TORQUE_UNUSED( argc );
- char *ret = Con::getReturnBuffer(dStrlen(argv[1])*2 + 1); // worst case situation
- expandEscape(ret, argv[1]);
- return ret;
- }
- /*! Use the collapseEscape function to replace all escape sequences ('xx') with a collapsed version ('xx').
- @param text A string, possibly containing escape sequences.
- @return Returns a copy of text with all escape sequences converted to an encoding.
- @sa expandEscape
- */
- ConsoleFunctionWithDocs(collapseEscape, ConsoleString, 2, 2, ( text ))
- {
- TORQUE_UNUSED( argc );
- char *ret = Con::getReturnBuffer(dStrlen(argv[1]) + 1); // worst case situation
- dStrcpy( ret, argv[1] );
- collapseEscape( ret );
- return ret;
- }
- /*! Use the setLogMode function to set the logging level based on bits that are set in the mode argument.
- This is a general debug method and should be used in all but release cases and perhaps even then.
- @param mode A bitmask enabling various types of logging. See 'Logging Modes' table below.
- @return No return value.
- @sa intputLog
- */
- ConsoleFunctionWithDocs(setLogMode, ConsoleVoid, 2, 2, ( mode ))
- {
- TORQUE_UNUSED( argc );
- Con::setLogMode(dAtoi(argv[1]));
- }
- /*! Use the setEchoFileLoads function to enable/disable echoing of file loads (to console).
- This does not completely disable message, but rather adds additional methods when echoing is set to true. File loads will always echo a compile statement if compiling is required, and an exec statement at all times
- @param enable A boolean value. If this value is true, extra information will be dumped to the console when files are loaded.
- @return No return value.
- */
- ConsoleFunctionWithDocs(setEchoFileLoads, ConsoleVoid, 2, 2, ( enable ))
- {
- TORQUE_UNUSED( argc );
- ResourceManager->setFileNameEcho(dAtob(argv[1]));
- }
- //----------------------------------------------------------------
- /*! Use the quit function to stop the engine and quit to the command line.
- @return No return value
- */
- ConsoleFunctionWithDocs(quit, ConsoleVoid, 1, 1, ())
- {
- TORQUE_UNUSED( argc );
- TORQUE_UNUSED( argv );
- Platform::postQuitMessage(0);
- }
- /*! quitWithErrorMessage(msg)
- - Quit, showing the provided error message. This is equivalent
- to an AssertISV.
- @param Error Message
- @return No return value
- */
- ConsoleFunctionWithDocs(quitWithErrorMessage, ConsoleVoid, 2, 2, (msg string))
- {
- AssertISV(false, argv[1]);
- }
- //----------------------------------------------------------------
- /*! Open a URL in the user's favorite web browser.
- */
- ConsoleFunctionWithDocs( gotoWebPage, ConsoleVoid, 2, 2, ( address ))
- {
- TORQUE_UNUSED( argc );
- const char* protocolSep = dStrstr(argv[1],"://");
- if( protocolSep != NULL )
- {
- Platform::openWebBrowser(argv[1]);
- return;
- }
- // if we don't see a protocol seperator, then we know that some bullethead
- // sent us a bad url. We'll first check to see if a file inside the sandbox
- // with that name exists, then we'll just glom "http://" onto the front of
- // the bogus url, and hope for the best.
-
- char urlBuf[2048];
- if(Platform::isFile(argv[1]) || Platform::isDirectory(argv[1]))
- {
- dSprintf(urlBuf, sizeof(urlBuf), "file://%s",argv[1]);
- }
- else
- dSprintf(urlBuf, sizeof(urlBuf), "http://%s",argv[1]);
-
- Platform::openWebBrowser(urlBuf);
- return;
- }
- //----------------------------------------------------------------
- /*! Use the cls function to clear the console output.
- @return No return value
- */
- ConsoleFunctionWithDocs( cls, ConsoleVoid, 1, 1, ())
- {
- Con::cls();
- };
- //----------------------------------------------------------------
- ConsoleFunctionGroupEnd(Output)
- /*! @} */ // group ConsoleOutput
|