console_cmds.c
changeset 289 6dd77b0ac456
parent 262 86ce6901f81d
child 301 3b69e7025af9
--- a/console_cmds.c	Sat Sep 18 16:40:06 2004 +0000
+++ b/console_cmds.c	Sun Sep 19 15:24:45 2004 +0000
@@ -7,7 +7,7 @@
 #include "variables.h"
 
 #if defined(WIN32)
-# define ENABLE_NETWORK
+#	define ENABLE_NETWORK
 #endif
 
 
@@ -17,20 +17,20 @@
 
 // ** console command / variable defines ** //
 
-#define DEF_CONSOLE_CMD(yyyy) static _iconsole_var * yyyy(byte argc, byte* argv[], byte argt[])
+#define DEF_CONSOLE_CMD(yyyy) static _iconsole_var * yyyy(byte argc, char* argv[], byte argt[])
 #define DEF_CONSOLE_CMD_HOOK(yyyy) static bool yyyy(_iconsole_cmd * hookcmd)
 #define DEF_CONSOLE_VAR_HOOK(yyyy) static bool yyyy(_iconsole_var * hookvar)
 
 
 // ** supporting functions ** //
 
-static int32 GetArgumentInteger(byte *arg)
+static uint32 GetArgumentInteger(const char* arg)
 {
-	int32 result;
-	sscanf((char *)arg, "%u", &result);
+	uint32 result;
+	sscanf(arg, "%u", &result);
 
 	if (result == 0 && arg[0] == '0' && arg[1] == 'x')
-		sscanf((char *)arg, "%x", &result);
+		sscanf(arg, "%x", &result);
 
 	return result;
 }
@@ -44,7 +44,7 @@
 	if (_networking) {
 		IConsoleError("this command is forbidden in multiplayer");
 		return false;
-		}
+	}
 	return true;
 }
 
@@ -54,7 +54,7 @@
 	if (_networking) {
 		IConsoleError("this variable is forbidden in multiplayer");
 		return false;
-		}
+	}
 	return true;
 }
 #endif
@@ -64,7 +64,7 @@
 	if (!_networking_server) {
 		IConsoleError("this variable only makes sense for a network server");
 		return false;
-		}
+	}
 	return true;
 }
 
@@ -78,6 +78,7 @@
 	return 0;
 }
 
+#ifdef _DEBUG
 DEF_CONSOLE_CMD(ConResetTile)
 {
 	if (argc == 2) {
@@ -87,6 +88,7 @@
 
 	return 0;
 }
+#endif
 
 DEF_CONSOLE_CMD(ConScrollToTile)
 {
@@ -105,9 +107,9 @@
 
 DEF_CONSOLE_CMD(ConNetworkConnect)
 {
-	byte * ip;
-	const byte *port = NULL;
-	const byte *player = NULL;
+	char* ip;
+	const char *port = NULL;
+	const char *player = NULL;
 	uint16 rport;
 
 	if (argc<2) return NULL;
@@ -117,14 +119,14 @@
 
 	ParseConnectionString(&player, &port, ip);
 
-	IConsolePrintF(_iconsole_color_default,"Connecting to %s...", ip);
+	IConsolePrintF(_iconsole_color_default, "Connecting to %s...", ip);
 	if (player!=NULL) {
 		_network_playas = atoi(player);
-		IConsolePrintF(_iconsole_color_default,"    player-no: %s", player);
+		IConsolePrintF(_iconsole_color_default, "    player-no: %s", player);
 	}
 	if (port!=NULL) {
 		rport = atoi(port);
-		IConsolePrintF(_iconsole_color_default,"    port: %s", port);
+		IConsolePrintF(_iconsole_color_default, "    port: %s", port);
 	}
 
 	NetworkCoreConnectGame(ip, rport);
@@ -146,7 +148,7 @@
 	if (argc<2) return NULL;
 
 	doerror = true;
-	_script_file = fopen(argv[1],"rb");
+	_script_file = fopen(argv[1], "rb");
 
 	if (_script_file == NULL) {
 		if (argc>2) if (atoi(argv[2])==0) doerror=false;
@@ -157,11 +159,8 @@
 	_script_running = true;
 
 	while (!feof(_script_file) && _script_running) {
-
-		fgets((char *)&cmd, 1024, _script_file);
-
-		IConsoleCmdExec((byte *) &cmd);
-
+		fgets(cmd, sizeof(cmd), _script_file);
+		IConsoleCmdExec(cmd);
 	}
 
 	_script_running = false;
@@ -182,13 +181,14 @@
 DEF_CONSOLE_CMD(ConScript)
 {
 	extern FILE* _iconsole_output_file;
-	if (_iconsole_output_file!=NULL) {
-		IConsolePrintF(_iconsole_color_default,"file output complete");
+	if (_iconsole_output_file != NULL) {
+		IConsolePrintF(_iconsole_color_default, "file output complete");
 		fclose(_iconsole_output_file);
 	} else {
-		if (argc<2) return NULL;
-		IConsolePrintF(_iconsole_color_default,"file output started to: %s",argv[1]);
-		_iconsole_output_file = fopen(argv[1],"ab");
+		if (argc < 2) return NULL;
+		IConsolePrintF(_iconsole_color_default, "file output started to: %s",
+			argv[1]);
+		_iconsole_output_file = fopen(argv[1], "ab");
 		if (_iconsole_output_file == NULL) IConsoleError("could not open file");
 	}
 	return NULL;
@@ -197,93 +197,94 @@
 
 DEF_CONSOLE_CMD(ConEcho)
 {
-	if (argc<2) return NULL;
+	if (argc < 2) return NULL;
 	IConsolePrint(_iconsole_color_default, argv[1]);
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConEchoC)
 {
-	if (argc<3) return NULL;
+	if (argc < 3) return NULL;
 	IConsolePrint(atoi(argv[1]), argv[2]);
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConPrintF)
 {
-	if (argc<3) return NULL;
-	IConsolePrintF(_iconsole_color_default, argv[1] ,argv[2],argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]);
+	if (argc < 3) return NULL;
+	IConsolePrintF(_iconsole_color_default, argv[1] , argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14], argv[15], argv[16], argv[17], argv[18], argv[19]); /* XXX ugh... */
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConPrintFC)
 {
-	if (argc<3) return NULL;
-	IConsolePrintF(atoi(argv[1]), argv[2] ,argv[3],argv[4],argv[5],argv[6],argv[7],argv[8],argv[9],argv[10],argv[11],argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19]);
+	if (argc < 3) return NULL;
+	IConsolePrintF(atoi(argv[1]), argv[2] , argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10], argv[11], argv[12], argv[13], argv[14], argv[15], argv[16], argv[17], argv[18], argv[19]); /* XXX ugh... */
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConScreenShot)
 {
-	if (argc<2) {
-		_make_screenshot=1;
+	if (argc < 2) {
+		_make_screenshot = 1;
 	} else {
-		if (strcmp(argv[1],"big")==0) {
+		if (strcmp(argv[1], "big") == 0)
 			_make_screenshot=2;
-			}
-		if (strcmp(argv[1],"no_con")==0) {
+		if (strcmp(argv[1], "no_con") == 0) {
 			IConsoleClose();
-			_make_screenshot=1;
-			}
+			_make_screenshot = 1;
 		}
+	}
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConInfoVar)
 {
-	if (argc<2) return NULL;
-	if (argt[1]!=ICONSOLE_VAR_REFERENCE) {
+	if (argc < 2) return NULL;
+	if (argt[1] != ICONSOLE_VAR_REFERENCE) {
 		IConsoleError("first argument has to be a variable reference");
-		} else {
-		_iconsole_var * item;
-		item = (_iconsole_var *) argv[1];
-		IConsolePrintF(_iconsole_color_default,"var_name: %s",item->name);
-		IConsolePrintF(_iconsole_color_default,"var_type: %i",item->type);
-		IConsolePrintF(_iconsole_color_default,"var_addr: %i",item->addr);
-		if (item->_malloc) IConsolePrintF(_iconsole_color_default,"var_malloc: internal");
-			else IConsolePrintF(_iconsole_color_default, "var_malloc: external");
+	} else {
+		_iconsole_var* item;
+		item = (_iconsole_var*)argv[1];
+		IConsolePrintF(_iconsole_color_default, "var_name: %s", item->name);
+		IConsolePrintF(_iconsole_color_default, "var_type: %i", item->type);
+		IConsolePrintF(_iconsole_color_default, "var_addr: %i", item->data.addr);
+		if (item->_malloc)
+			IConsolePrintF(_iconsole_color_default, "var_malloc: internal");
+		else
+			IConsolePrintF(_iconsole_color_default, "var_malloc: external");
 		if (item->hook_access) IConsoleWarning("var_access hooked");
 		if (item->hook_before_change) IConsoleWarning("var_before_change hooked");
 		if (item->hook_after_change) IConsoleWarning("var_after_change hooked");
-		}
+	}
 	return NULL;
 }
 
 
 DEF_CONSOLE_CMD(ConInfoCmd)
 {
-	if (argc<2) return NULL;
-	if (argt[1]!=ICONSOLE_VAR_UNKNOWN) {
+	if (argc < 2) return NULL;
+	if (argt[1] != ICONSOLE_VAR_UNKNOWN) {
 		IConsoleError("first argument has to be a command name");
-		} else {
-		_iconsole_cmd * item;
+	} else {
+		_iconsole_cmd* item;
 		item = IConsoleCmdGet(argv[1]);
-		if (item==NULL) {
+		if (item == NULL) {
 			IConsoleError("the given command was not found");
 			return NULL;
 		}
-		IConsolePrintF(_iconsole_color_default,"cmd_name: %s",item->name);
-		IConsolePrintF(_iconsole_color_default,"cmd_addr: %i",item->addr);
+		IConsolePrintF(_iconsole_color_default, "cmd_name: %s", item->name);
+		IConsolePrintF(_iconsole_color_default, "cmd_addr: %i", item->addr);
 		if (item->hook_access) IConsoleWarning("cmd_access hooked");
 		if (item->hook_before_exec) IConsoleWarning("cmd_before_exec hooked");
 		if (item->hook_after_exec) IConsoleWarning("cmd_after_exec hooked");
-		}
+	}
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConDebugLevel)
 {
-	if (argc<2) return NULL;
+	if (argc < 2) return NULL;
 	SetDebugString(argv[1]);
 	return NULL;
 }
@@ -296,100 +297,68 @@
 
 DEF_CONSOLE_CMD(ConHelp)
 {
-	IConsolePrint(13	," -- console help -- ");
-	IConsolePrint(1		," variables: [command to list them: list_vars]");
-	IConsolePrint(1		," *temp_string = \"my little \"");
-	IConsolePrint(1		,"");
-	IConsolePrint(1		," commands: [command to list them: list_cmds]");
-	IConsolePrint(1		," [command] [\"string argument with spaces\"] [argument 2] ...");
-	IConsolePrint(1		," printf \"%s world\" *temp_string");
-	IConsolePrint(1		,"");
-	IConsolePrint(1		," command/variable returning a value into an variable:");
-	IConsolePrint(1		," *temp_uint16 << random");
-	IConsolePrint(1		," *temp_uint16 << *temp_uint16_2");
-	IConsolePrint(1		,"");
+	IConsolePrint(13, " -- console help -- ");
+	IConsolePrint( 1, " variables: [command to list them: list_vars]");
+	IConsolePrint( 1, " *temp_string = \"my little \"");
+	IConsolePrint( 1, "");
+	IConsolePrint( 1, " commands: [command to list them: list_cmds]");
+	IConsolePrint( 1, " [command] [\"string argument with spaces\"] [argument 2] ...");
+	IConsolePrint( 1, " printf \"%s world\" *temp_string");
+	IConsolePrint( 1, "");
+	IConsolePrint( 1, " command/variable returning a value into an variable:");
+	IConsolePrint( 1, " *temp_uint16 << random");
+	IConsolePrint( 1, " *temp_uint16 << *temp_uint16_2");
+	IConsolePrint( 1, "");
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConRandom)
 {
-	_iconsole_var * result;
+	/* XXX memory leak */
+	_iconsole_var* result;
 	result = IConsoleVarAlloc(ICONSOLE_VAR_UINT16);
-	IConsoleVarSetValue(result,rand());
+	IConsoleVarSetValue(result, rand());
 	return result;
 }
 
 DEF_CONSOLE_CMD(ConListCommands)
 {
-	_iconsole_cmd * item;
-	int l = 0;
-
-	if (argv[1]!=NULL) l = strlen((char *) argv[1]);
-
-	item = _iconsole_cmds;
-	while (item != NULL) {
-		if (argv[1]!=NULL) {
+	const _iconsole_cmd* item;
+	size_t l = 0;
 
-			if (memcmp((void *) item->name, (void *) argv[1],l)==0)
-					IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
-			} else {
+	if (argv[1] != NULL) l = strlen(argv[1]);
 
-			IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
-			}
-		item = item->_next;
-		}
+	for (item = _iconsole_cmds; item != NULL; item = item->_next)
+		if (argv[1] == NULL || strncmp(item->name, argv[1], l) == 0)
+			IConsolePrintF(_iconsole_color_default, "%s", item->name);
 
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConListVariables)
 {
-	_iconsole_var * item;
-	int l = 0;
-
-	if (argv[1]!=NULL) l = strlen((char *) argv[1]);
-
-	item = _iconsole_vars;
-	while (item != NULL) {
-		if (argv[1]!=NULL) {
+	const _iconsole_var* item;
+	size_t l = 0;
 
-			if (memcmp(item->name, argv[1],l)==0)
-					IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
-			} else {
+	if (argv[1] != NULL) l = strlen(argv[1]);
 
-			IConsolePrintF(_iconsole_color_default,"%s",item->name);
-
-			}
-		item = item->_next;
-		}
+	for (item = _iconsole_vars; item != NULL; item = item->_next)
+		if (argv[1] == NULL || strncmp(item->name, argv[1], l) == 0)
+			IConsolePrintF(_iconsole_color_default, "%s", item->name);
 
 	return NULL;
 }
 
 DEF_CONSOLE_CMD(ConListDumpVariables)
 {
-	_iconsole_var * item;
-	int l = 0;
-
-	if (argv[1]!=NULL) l = strlen((char *) argv[1]);
-
-	item = _iconsole_vars;
-	while (item != NULL) {
-		if (argv[1]!=NULL) {
+	const _iconsole_var* item;
+	size_t l = 0;
 
-			if (memcmp(item->name, argv[1],l)==0)
-					IConsoleVarDump(item,NULL);
-
-			} else {
+	if (argv[1] != NULL) l = strlen(argv[1]);
 
-			IConsoleVarDump(item,NULL);
-
-			}
-		item = item->_next;
-		}
+	for (item = _iconsole_vars; item != NULL; item = item->_next)
+		if (argv[1] == NULL || strncmp(item->name, argv[1], l) == 0)
+			IConsoleVarDump(item, NULL);
 
 	return NULL;
 }
@@ -402,19 +371,19 @@
 void IConsoleDebugLibRegister()
 {
 	// stdlib
-	extern bool _stdlib_con_developer;
+	extern bool _stdlib_con_developer; /* XXX extern in .c */
 
-	IConsoleVarRegister("con_developer",(void *) &_stdlib_con_developer,ICONSOLE_VAR_BOOLEAN);
-	IConsoleVarMemRegister("temp_bool",ICONSOLE_VAR_BOOLEAN);
-	IConsoleVarMemRegister("temp_int16",ICONSOLE_VAR_INT16);
-	IConsoleVarMemRegister("temp_int32",ICONSOLE_VAR_INT32);
-	IConsoleVarMemRegister("temp_pointer",ICONSOLE_VAR_POINTER);
-	IConsoleVarMemRegister("temp_uint16",ICONSOLE_VAR_UINT16);
-	IConsoleVarMemRegister("temp_uint16_2",ICONSOLE_VAR_UINT16);
-	IConsoleVarMemRegister("temp_uint32",ICONSOLE_VAR_UINT32);
-	IConsoleVarMemRegister("temp_string",ICONSOLE_VAR_STRING);
-	IConsoleVarMemRegister("temp_string2",ICONSOLE_VAR_STRING);
-	IConsoleCmdRegister("resettile",ConResetTile);
+	IConsoleVarRegister("con_developer", &_stdlib_con_developer, ICONSOLE_VAR_BOOLEAN);
+	IConsoleVarMemRegister("temp_bool", ICONSOLE_VAR_BOOLEAN);
+	IConsoleVarMemRegister("temp_int16", ICONSOLE_VAR_INT16);
+	IConsoleVarMemRegister("temp_int32", ICONSOLE_VAR_INT32);
+	IConsoleVarMemRegister("temp_pointer", ICONSOLE_VAR_POINTER);
+	IConsoleVarMemRegister("temp_uint16", ICONSOLE_VAR_UINT16);
+	IConsoleVarMemRegister("temp_uint16_2", ICONSOLE_VAR_UINT16);
+	IConsoleVarMemRegister("temp_uint32", ICONSOLE_VAR_UINT32);
+	IConsoleVarMemRegister("temp_string", ICONSOLE_VAR_STRING);
+	IConsoleVarMemRegister("temp_string2", ICONSOLE_VAR_STRING);
+	IConsoleCmdRegister("resettile", ConResetTile);
 }
 #endif
 
@@ -425,51 +394,49 @@
 void IConsoleStdLibRegister()
 {
 	// stdlib
-	extern byte _stdlib_developer;
+	extern byte _stdlib_developer; /* XXX extern in .c */
 
 #ifdef _DEBUG
 	IConsoleDebugLibRegister();
-#else
-	(void)ConResetTile; // Silence warning, this is only used in _DEBUG
 #endif
 
-	// functions [please add them alphabeticaly]
+	// functions [please add them alphabetically]
 #ifdef ENABLE_NETWORK
-	IConsoleCmdRegister("connect",ConNetworkConnect);
-	IConsoleCmdHook("connect",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork);
+	IConsoleCmdRegister("connect", ConNetworkConnect);
+	IConsoleCmdHook("connect", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetwork);
 #endif
-	IConsoleCmdRegister("debug_level",ConDebugLevel);
-	IConsoleCmdRegister("dump_vars",ConListDumpVariables);
-	IConsoleCmdRegister("echo",ConEcho);
-	IConsoleCmdRegister("echoc",ConEchoC);
-	IConsoleCmdRegister("exec",ConExec);
-	IConsoleCmdRegister("exit",ConExit);
-	IConsoleCmdRegister("help",ConHelp);
-	IConsoleCmdRegister("info_cmd",ConInfoCmd);
-	IConsoleCmdRegister("info_var",ConInfoVar);
-	IConsoleCmdRegister("list_cmds",ConListCommands);
-	IConsoleCmdRegister("list_vars",ConListVariables);
-	IConsoleCmdRegister("printf",ConPrintF);
-	IConsoleCmdRegister("printfc",ConPrintFC);
-	IConsoleCmdRegister("quit",ConExit);
-	IConsoleCmdRegister("random",ConRandom);
-	IConsoleCmdRegister("resetengines",ConResetEngines);
-	IConsoleCmdHook("resetengines",ICONSOLE_HOOK_ACCESS,ConCmdHookNoNetwork);
-	IConsoleCmdRegister("return",ConReturn);
-	IConsoleCmdRegister("screenshot",ConScreenShot);
-	IConsoleCmdRegister("script",ConScript);
-	IConsoleCmdRegister("scrollto",ConScrollToTile);
+	IConsoleCmdRegister("debug_level",  ConDebugLevel);
+	IConsoleCmdRegister("dump_vars",    ConListDumpVariables);
+	IConsoleCmdRegister("echo",         ConEcho);
+	IConsoleCmdRegister("echoc",        ConEchoC);
+	IConsoleCmdRegister("exec",         ConExec);
+	IConsoleCmdRegister("exit",         ConExit);
+	IConsoleCmdRegister("help",         ConHelp);
+	IConsoleCmdRegister("info_cmd",     ConInfoCmd);
+	IConsoleCmdRegister("info_var",     ConInfoVar);
+	IConsoleCmdRegister("list_cmds",    ConListCommands);
+	IConsoleCmdRegister("list_vars",    ConListVariables);
+	IConsoleCmdRegister("printf",       ConPrintF);
+	IConsoleCmdRegister("printfc",      ConPrintFC);
+	IConsoleCmdRegister("quit",         ConExit);
+	IConsoleCmdRegister("random",       ConRandom);
+	IConsoleCmdRegister("resetengines", ConResetEngines);
+	IConsoleCmdHook("resetengines", ICONSOLE_HOOK_ACCESS, ConCmdHookNoNetwork);
+	IConsoleCmdRegister("return",     ConReturn);
+	IConsoleCmdRegister("screenshot", ConScreenShot);
+	IConsoleCmdRegister("script",     ConScript);
+	IConsoleCmdRegister("scrollto",   ConScrollToTile);
 
 	// variables [please add them alphabeticaly]
-	IConsoleVarRegister("developer",(void *) &_stdlib_developer,ICONSOLE_VAR_BYTE);
+	IConsoleVarRegister("developer", &_stdlib_developer, ICONSOLE_VAR_BYTE);
 #ifdef ENABLE_NETWORK
-	IConsoleVarRegister("net_client_timeout",&_network_client_timeout,ICONSOLE_VAR_UINT16);
-	IConsoleVarHook("*net_client_timeout",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient);
-	IConsoleVarRegister("net_ready_ahead",&_network_ready_ahead,ICONSOLE_VAR_UINT16);
-	IConsoleVarRegister("net_sync_freq",&_network_sync_freq,ICONSOLE_VAR_UINT16);
-	IConsoleVarHook("*net_sync_freq",ICONSOLE_HOOK_ACCESS,ConVarHookNoNetClient);
+	IConsoleVarRegister("net_client_timeout", &_network_client_timeout, ICONSOLE_VAR_UINT16);
+	IConsoleVarHook("*net_client_timeout", ICONSOLE_HOOK_ACCESS, ConVarHookNoNetClient);
+	IConsoleVarRegister("net_ready_ahead", &_network_ready_ahead, ICONSOLE_VAR_UINT16);
+	IConsoleVarRegister("net_sync_freq", &_network_sync_freq, ICONSOLE_VAR_UINT16);
+	IConsoleVarHook("*net_sync_freq", ICONSOLE_HOOK_ACCESS, ConVarHookNoNetClient);
 #endif
 
 
 }
-/* -------------------- dont cross this line --------------------- */
+/* -------------------- don't cross this line --------------------- */