Ticket #8237: moreDebuggerHelp.diff

File moreDebuggerHelp.diff, 6.3 KB (added by SF/florob, 21 years ago)

Patch for some more debugger help

  • ./scumm/debugger.cpp

    RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.cpp,v
    retrieving revision 1.53
    diff -u -r1.53 debugger.cpp
     
    183183        if (!_s->_debuggerDialog) {
    184184                _s->_debuggerDialog = new ConsoleDialog(_s->_newgui, _s->_screenWidth);
    185185
    186                 Debug_Printf("Debugger started, type 'exit' to return to the game\n");
     186                Debug_Printf("Debugger started, type 'exit' to return to the game.\n");
     187                Debug_Printf("Type 'help' to see a little list of commands and variables.\n");
    187188        }
    188189
    189190        if (errStr) {
     
    356357
    357358        // Re-run bootscript
    358359        _s->runScript(1, 0, 0, &_s->_bootParam);
    359        
     360
    360361        _detach_now = true;
    361362        return false;
    362363}
     
    384385                return true;
    385386        }
    386387}
    387        
     388
    388389bool ScummDebugger::Cmd_LoadGame(int argc, const char **argv) {
    389390        if (argc > 1) {
    390391                int slot = atoi(argv[1]);
    391                
     392
    392393                _s->_saveLoadSlot = slot;
    393394                _s->_saveLoadFlag = 2;
    394395                _s->_saveLoadCompatible = false;
    395                
     396
    396397                _detach_now = true;
    397398                return false;
    398399        }
     
    400401        Debug_Printf("Syntax: loadgame <slotnum>\n");
    401402        return true;
    402403}
    403        
     404
    404405bool ScummDebugger::Cmd_SaveGame(int argc, const char **argv) {
    405406        if (argc > 2) {
    406407                int slot = atoi(argv[1]);
     
    421422                Debug_Printf("Syntax: show <parameter>\n");
    422423                return true;
    423424        }
    424        
     425
    425426        if (!strcmp(argv[1], "hex")) {
    426427                _s->_hexdumpScripts = true;
    427428                Debug_Printf("Script hex dumping on\n");
     
    429430                _s->_showStack = 1;
    430431                Debug_Printf("Stack tracing on\n");
    431432        } else {
    432                 Debug_Printf("Unknown show parameter '%s'\n", argv[1]);
     433                Debug_Printf("Unknown show parameter '%s'\nParameters are 'hex' for hex dumping and 'sta' for stack tracing\n", argv[1]);
    433434        }
    434435        return true;
    435436}
     
    440441                Debug_Printf("Syntax: hide <parameter>\n");
    441442                return true;
    442443        }
    443        
     444
    444445        if (!strcmp(argv[1], "hex")) {
    445446                _s->_hexdumpScripts = false;
    446447                Debug_Printf("Script hex dumping off\n");
     
    448449                _s->_showStack = 0;
    449450                Debug_Printf("Stack tracing off\n");
    450451        } else {
    451                 Debug_Printf("Unknown hide parameter '%s'\n", argv[1]);
     452                Debug_Printf("Unknown hide parameter '%s'\nParameters are 'hex' to turn off hex dumping and 'sta' to turn off stack tracing\n", argv[1]);
    452453        }
    453454        return true;
    454455}
     
    460461                Debug_Printf("Syntax: script <scriptnum> <command>\n");
    461462                return true;
    462463        }
    463        
     464
    464465        scriptnum = atoi(argv[1]);
    465        
     466
    466467        // FIXME: what is the max range on these?
    467468        // if (scriptnum >= _s->_maxScripts) {
    468469        //      Debug_Printf("Script number %d is out of range (range: 1 - %d)\n", scriptnum, _s->_maxScripts);
    469470        //      return true;
    470471        //}
    471        
     472
    472473        if ((!strcmp(argv[2], "kill")) || (!strcmp(argv[2], "stop"))) {
    473474                _s->stopScript(scriptnum);
    474475        } else if ((!strcmp(argv[2], "run")) || (!strcmp(argv[2], "start"))) {
    475476                _s->runScript(scriptnum, 0, 0, 0);
    476477                return false;
    477478        } else {
    478                 Debug_Printf("Unknown script command '%s'\n", argv[2]);
     479                Debug_Printf("Unknown script command '%s'\nUse <kill/stop | run/start> as command\n", argv[2]);
    479480        }
    480481
    481482        return true;
     
    485486        File file;
    486487        uint32 size;
    487488        int resnum;
    488        
     489
    489490        if (argc != 3) {
    490491                Debug_Printf("Syntax: importres <restype> <filename> <resnum>\n");
    491492                return true;
     
    493494
    494495        resnum = atoi(argv[3]);
    495496        // FIXME add bounds check
    496        
     497
    497498        if (!strncmp(argv[1], "scr", 3)) {
    498499                file.open(argv[2], "");
    499500                if (file.isOpen() == false) {
     
    514515                        size = file.readUint32BE();
    515516                        file.seek(-8, SEEK_CUR);
    516517                }
    517                
     518
    518519                file.read(_s->createResource(rtScript, resnum, size), size);
    519        
     520
    520521        } else
    521522                Debug_Printf("Unknown importres type '%s'\n", argv[1]);
    522523        return true;
    523524}
    524                        
     525
    525526bool ScummDebugger::Cmd_PrintScript(int argc, const char **argv) {
    526527        int i;
    527528        ScriptSlot *ss = _s->vm.slot;
     
    537538                }
    538539        }
    539540        Debug_Printf("+--------------------------------------+\n");
    540        
     541
    541542        return true;
    542543}
    543544
     
    571572                                Debug_Printf("Actor[%d].costume = %d\n", actnum, a->costume);
    572573                        }
    573574        } else {
    574                         Debug_Printf("Unknown actor command '%s'\n", argv[2]);
     575                        Debug_Printf("Unknown actor command '%s'\nUse <ignoreboxes |costume> as command\n", argv[2]);
    575576        }
    576577
    577578        return true;
    578        
     579
    579580}
    580581bool ScummDebugger::Cmd_PrintActor(int argc, const char **argv) {
    581582        int i;
     
    599600bool ScummDebugger::Cmd_PrintObjects(int argc, const char **argv) {
    600601        int i;
    601602        ObjectData *o;
    602         Debug_Printf("Objects in current room\n"); 
     603        Debug_Printf("Objects in current room\n");
    603604        Debug_Printf("+---------------------------------+--+\n");
    604605        Debug_Printf("|num |  x |  y |width|height|state|fl|\n");
    605606        Debug_Printf("+----+----+----+-----+------+-----+--+\n");
    606        
     607
    607608        for (i = 1; (i < _s->_numLocalObjects) && (_s->_objs[i].obj_nr != 0) ; i++) {
    608609                o = &(_s->_objs[i]);
    609                 Debug_Printf("|%4d|%4d|%4d|%5d|%6d|%5d|%2d|\n", 
     610                Debug_Printf("|%4d|%4d|%4d|%5d|%6d|%5d|%2d|\n",
    610611                                o->obj_nr, o->x_pos, o->y_pos, o->width, o->height, o->state, o->fl_object_index);
    611612        }
    612613        Debug_Printf("\n");
     
    616617bool ScummDebugger::Cmd_Object(int argc, const char **argv) {
    617618        int i;
    618619        int obj;
    619        
     620
    620621        if (argc < 3) {
    621622                Debug_Printf("Syntax: object <objectnum> <command> <parameter>\n");
    622623                return true;
     
    649650                _s->clearDrawObjectQueue();
    650651                _s->runHook(obj);
    651652        } else {
    652                 Debug_Printf("Unknown object command '%s'\n", argv[2]);
     653                Debug_Printf("Unknown object command '%s'\nRight now the only command is pickup", argv[2]); //change when adding commands
    653654        }
    654655
    655656        return true;
     
    659660        // console normally has 39 line width
    660661        // wrap around nicely
    661662        int width = 0, size, i;
    662        
     663
    663664        Debug_Printf("Commands are:\n");
    664665        for (i = 0 ; i < _dcmd_count ; i++) {
    665666                size = strlen(_dcmds[i].name) + 1;
    666                                
     667
    667668                if ((width + size) >= 39) {
    668669                        Debug_Printf("\n");
    669670                        width = size;
     
    674675        }
    675676
    676677        width = 0;
    677        
     678
    678679        Debug_Printf("\n\nVariables are:\n");
    679680        for (i = 0 ; i < _dvar_count ; i++) {
    680681                size = strlen(_dvars[i].name) + 1;
    681                                
     682
    682683                if ((width + size) >= 39) {
    683684                        Debug_Printf("\n");
    684685                        width = size;
     
    689690        }
    690691
    691692        Debug_Printf("\n");
    692        
     693
    693694        return true;
    694695}
    695696
     
    711712                } else
    712713                        Debug_Printf("Not a valid debug level\n");
    713714        }
    714                
     715
    715716        return true;
    716717}
    717718
    718719bool ScummDebugger::Cmd_PrintBox(int argc, const char **argv) {
    719720        int num, i = 0;
    720721        num = _s->getNumBoxes();
    721        
     722
    722723        if (argc > 1) {
    723724                for (i = 1; i < argc; i++)
    724725                        printBox(atoi(argv[i]));