# HG changeset patch # User smatz # Date 1243343818 0 # Node ID 1eceb7d6fb2f62e13b1bad08fb072c486b996abf # Parent ca8b215793c4c91e210f84809930356991b5240d (svn r16432) -Feature(tte): use 'scrollto x y' in console to scroll to tile with given coordinates diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -155,21 +155,37 @@ DEF_CONSOLE_CMD(ConScrollToTile) { - if (argc == 0) { - IConsoleHelp("Center the screen on a given tile. Usage: 'scrollto '"); - IConsoleHelp("Tile can be either decimal (34161) or hexadecimal (0x4a5B)"); - return true; - } + switch (argc) { + case 0: + IConsoleHelp("Center the screen on a given tile."); + IConsoleHelp("Usage: 'scrollto ' or 'scrollto '"); + IConsoleHelp("Numbers can be either decimal (34161) or hexadecimal (0x4a5B)."); + return true; - if (argc == 2) { - uint32 result; - if (GetArgumentInteger(&result, argv[1])) { - if (result >= MapSize()) { - IConsolePrint(CC_ERROR, "Tile does not exist"); + case 2: { + uint32 result; + if (GetArgumentInteger(&result, argv[1])) { + if (result >= MapSize()) { + IConsolePrint(CC_ERROR, "Tile does not exist"); + return true; + } + ScrollMainWindowToTile((TileIndex)result); return true; } - ScrollMainWindowToTile((TileIndex)result); - return true; + break; + } + + case 3: { + uint32 x, y; + if (GetArgumentInteger(&x, argv[1]) && GetArgumentInteger(&y, argv[2])) { + if (x >= MapSizeX() || y >= MapSizeY()) { + IConsolePrint(CC_ERROR, "Tile does not exist"); + return true; + } + ScrollMainWindowToTile(TileXY(x, y)); + return true; + } + break; } }