///---------------------------------------------------------------------------------
///
///---------------------------------------------------------------------------------
bool RunConsoleCommandFromLine( const std::string& line )
{
    std::string lineLC = ConvertToLowerCase( line );

    std::vector< std::string> args;
    Tokenize( lineLC, args, "( ,;)" );

    DeveloperConsoleArguments argsObj( args, 1 );
    DeveloperConsole::WriteLine( line, INFO_TEXT_COLOR );
    return RunConsoleCommand( args[0], &argsObj );
}
예제 #2
0
 Sys::chainreturn Hotkeys(SDL_Event event)
 {
     switch(event.type)
     {
     case SDL_KEYDOWN:
         switch(event.key.keysym.sym)
         {
         case SDLK_BACKQUOTE:
             consoleActive = !consoleActive;
             console.display->visible = consoleActive;
             console.input->visible   = consoleActive;
             if(consoleActive)
             {
                 SDL_StartTextInput();
                 console.input->line = "";
             }
             else
             {
                 SDL_StopTextInput();
                 console.input->line = "";
             }
             return Sys::CHAIN_FINISH;
         case SDLK_RETURN:
             RunConsoleCommand(console.input->line);
             console.input->line = "";
             // TODO: Commit command
             return Sys::CHAIN_FINISH;
         case SDLK_BACKSPACE:
             if(console.input->line.length() > 0)
                 console.input->line.erase(console.input->line.end()-1);
         }
         break;
     case SDL_TEXTINPUT:
         if(strcmp("`", event.text.text) != 0)
             console.input->line += event.text.text;
         break;
     }
     return Sys::CHAIN_CONTINUE;
 }