changeset 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
parents ca8b215793c4
children e735ee1cab89
files src/console_cmds.cpp
diffstat 1 files changed, 28 insertions(+), 12 deletions(-) [+]
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;
 		}
 	}