Mercurial > hg > openttd
diff src/console_cmds.cpp @ 12025:1eceb7d6fb2f draft
(svn r16432) -Feature(tte): use 'scrollto x y' in console to scroll to tile with given coordinates
author | smatz <smatz@openttd.org> |
---|---|
date | Tue, 26 May 2009 13:16:58 +0000 (2009-05-26) |
parents | 47c1a32b550d |
children | 8c5b158f0d40 |
line wrap: on
line diff
--- 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 <tile>'"); - 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 <tile>' or 'scrollto <x> <y>'"); + 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; } }