]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/command/generic.qc
Rename server/items.qc to server/items/spawning.qc
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / command / generic.qc
index c58a3df75a50d83e55731bc5955020f999781007..bd149e7895139f2ea021d73bca8c24642c9cc749 100644 (file)
@@ -57,7 +57,7 @@ void Curl_URI_Get_Callback(int id, float status, string data)
 //  Command Sub-Functions
 // =======================
 
-void GenericCommand_addtolist(float request, float argc)
+void GenericCommand_addtolist(int request, int argc)
 {
        switch(request)
        {
@@ -86,18 +86,18 @@ void GenericCommand_addtolist(float request, float argc)
                }
 
                default:
-                       LOG_INFO("Incorrect parameters for ^2addtolist^7");
+                       LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " addtolist variable value");
-                       LOG_INFO("  Where 'variable' is what to add 'value' to.");
-                       LOG_INFO("See also: ^2removefromlist^7");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " addtolist variable value");
+                       LOG_HELP("  Where 'variable' is what to add 'value' to.");
+                       LOG_HELP("See also: ^2removefromlist^7");
                        return;
                }
        }
 }
 
-void GenericCommand_qc_curl(float request, float argc)
+void GenericCommand_qc_curl(int request, int argc)
 {
        switch(request)
        {
@@ -163,13 +163,13 @@ void GenericCommand_qc_curl(float request, float argc)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " qc_curl [--key N] [--cvar] [--exec] URL [postargs...]");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " qc_curl [--key N] [--cvar] [--exec] URL [postargs...]");
                        return;
                }
        }
 }
 
-GENERIC_COMMAND(dumpcommands, "Dump all commands on the program to *_cmd_dump.txt")
+GENERIC_COMMAND(dumpcommands, "Dump all commands on the program to <program>_cmd_dump.txt", false)
 {
        switch(request)
        {
@@ -184,23 +184,28 @@ GENERIC_COMMAND(dumpcommands, "Dump all commands on the program to *_cmd_dump.tx
                                #ifdef SVQC
                                        CMD_Write("dump of server console commands:\n");
                                        GameCommand_macro_write_aliases(fh);
+                                       CMD_Write("\n");
 
-                                       CMD_Write("\ndump of networked client only commands:\n");
+                                       CMD_Write("dump of networked client only commands:\n");
                                        ClientCommand_macro_write_aliases(fh);
+                                       CMD_Write("\n");
 
-                                       CMD_Write("\ndump of common commands:\n");
+                                       CMD_Write("dump of common commands:\n");
                                        CommonCommand_macro_write_aliases(fh);
+                                       CMD_Write("\n");
 
-                                       CMD_Write("\ndump of ban commands:\n");
+                                       CMD_Write("dump of ban commands:\n");
                                        BanCommand_macro_write_aliases(fh);
+                                       CMD_Write("\n");
                                #endif
 
                                #ifdef CSQC
                                        CMD_Write("dump of client commands:\n");
                                        LocalCommand_macro_write_aliases(fh);
+                                       CMD_Write("\n");
                                #endif
 
-                               CMD_Write("\ndump of generic commands:\n");
+                               CMD_Write("dump of generic commands:\n");
                                GenericCommand_macro_write_aliases(fh);
 
                                LOG_INFO("Completed dump of aliases in ^2data/data/", GetProgramCommandPrefix(), "_dump.txt^7.");
@@ -217,14 +222,14 @@ GENERIC_COMMAND(dumpcommands, "Dump all commands on the program to *_cmd_dump.tx
                default:
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " dumpcommands");
-                       LOG_INFO("  No arguments required.");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " dumpcommands");
+                       LOG_HELP("  No arguments required.");
                        return;
                }
        }
 }
 
-void GenericCommand_maplist(float request, float argc)
+void GenericCommand_maplist(int request, int argc)
 {
        switch(request)
        {
@@ -295,19 +300,19 @@ void GenericCommand_maplist(float request, float argc)
                }
 
                default:
-                       LOG_INFO("Incorrect parameters for ^2maplist^7");
+                       LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " maplist action [map]");
-                       LOG_INFO("  Where 'action' is the command to complete,");
-                       LOG_INFO("  and 'map' is what it acts upon (if required).");
-                       LOG_INFO("  Full list of commands here: \"add, cleanup, remove, shuffle.\"");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " maplist action [map]");
+                       LOG_HELP("  Where 'action' is the command to complete,");
+                       LOG_HELP("  and 'map' is what it acts upon (if required).");
+                       LOG_HELP("  Full list of commands here: \"add, cleanup, remove, shuffle.\"");
                        return;
                }
        }
 }
 
-void GenericCommand_nextframe(float request, float arguments, string command)
+void GenericCommand_nextframe(int request, string command)
 {
        switch(request)
        {
@@ -320,14 +325,14 @@ void GenericCommand_nextframe(float request, float arguments, string command)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " nextframe command...");
-                       LOG_INFO("  Where command will be executed next frame of this VM");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " nextframe command...");
+                       LOG_HELP("  Where command will be executed next frame of this VM");
                        return;
                }
        }
 }
 
-void GenericCommand_removefromlist(float request, float argc)
+void GenericCommand_removefromlist(int request, int argc)
 {
        switch(request)
        {
@@ -351,34 +356,43 @@ void GenericCommand_removefromlist(float request, float argc)
                }
 
                default:
-                       LOG_INFO("Incorrect parameters for ^2removefromlist^7");
+                       LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " removefromlist variable value");
-                       LOG_INFO("  Where 'variable' is what cvar to remove 'value' from.");
-                       LOG_INFO("See also: ^2addtolist^7");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " removefromlist variable value");
+                       LOG_HELP("  Where 'variable' is what cvar to remove 'value' from.");
+                       LOG_HELP("See also: ^2addtolist^7");
                        return;
                }
        }
 }
 
-void GenericCommand_restartnotifs(float request)
+void GenericCommand_restartnotifs(int request)
 {
        switch(request)
        {
                case CMD_REQUEST_COMMAND:
                {
                        #ifdef GAMEQC
-                       int NOTIF_ANNCE_COUNT   = 0; FOREACH(Notifications, it.nent_type == MSG_ANNCE,   { ++NOTIF_ANNCE_COUNT;  });
-                       int NOTIF_INFO_COUNT    = 0; FOREACH(Notifications, it.nent_type == MSG_INFO,    { ++NOTIF_INFO_COUNT;   });
-                       int NOTIF_CENTER_COUNT  = 0; FOREACH(Notifications, it.nent_type == MSG_CENTER,  { ++NOTIF_CENTER_COUNT; });
-                       int NOTIF_MULTI_COUNT   = 0; FOREACH(Notifications, it.nent_type == MSG_MULTI,   { ++NOTIF_MULTI_COUNT;  });
-                       int NOTIF_CHOICE_COUNT  = 0; FOREACH(Notifications, it.nent_type == MSG_CHOICE,  { ++NOTIF_CHOICE_COUNT; });
+                       int NOTIF_ANNCE_COUNT = 0;
+                       int NOTIF_INFO_COUNT = 0;
+                       int NOTIF_CENTER_COUNT = 0;
+                       int NOTIF_MULTI_COUNT = 0;
+                       int NOTIF_CHOICE_COUNT = 0;
+                       FOREACH(Notifications, true, {
+                               switch (it.nent_type)
+                               {
+                                       case MSG_ANNCE: ++NOTIF_ANNCE_COUNT; break;
+                                       case MSG_INFO: ++NOTIF_INFO_COUNT; break;
+                                       case MSG_CENTER: ++NOTIF_CENTER_COUNT; break;
+                                       case MSG_MULTI: ++NOTIF_MULTI_COUNT; break;
+                                       case MSG_CHOICE: ++NOTIF_CHOICE_COUNT; break;
+                               }
+                       });
+
                        LOG_INFOF(
-                           (
-                    "Restart_Notifications(): Restarting %d notifications... "
-                    "Counts: MSG_ANNCE = %d, MSG_INFO = %d, MSG_CENTER = %d, MSG_MULTI = %d, MSG_CHOICE = %d"
-                ),
+                               "Restart_Notifications(): Restarting %d notifications... "
+                               "Counts: MSG_ANNCE = %d, MSG_INFO = %d, MSG_CENTER = %d, MSG_MULTI = %d, MSG_CHOICE = %d",
                                (
                                        NOTIF_ANNCE_COUNT +
                                        NOTIF_INFO_COUNT +
@@ -403,14 +417,14 @@ void GenericCommand_restartnotifs(float request)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " restartnotifs");
-                       LOG_INFO("  No arguments required.");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " restartnotifs");
+                       LOG_HELP("  No arguments required.");
                        return;
                }
        }
 }
 
-void GenericCommand_settemp(float request, float argc)
+void GenericCommand_settemp(int request, int argc)
 {
        switch(request)
        {
@@ -430,18 +444,18 @@ void GenericCommand_settemp(float request, float argc)
                }
 
                default:
-                       LOG_INFO("Incorrect parameters for ^2settemp^7");
+                       LOG_INFOF("Incorrect parameters for ^2%s^7", argv(0));
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " settemp \"cvar\" \"arguments\"");
-                       LOG_INFO("  Where 'cvar' is the cvar you want to temporarily set with 'arguments'.");
-                       LOG_INFO("See also: ^2settemp_restore^7");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " settemp \"cvar\" \"arguments\"");
+                       LOG_HELP("  Where 'cvar' is the cvar you want to temporarily set with 'arguments'.");
+                       LOG_HELP("See also: ^2settemp_restore^7");
                        return;
                }
        }
 }
 
-void GenericCommand_settemp_restore(float request, float argc)
+void GenericCommand_settemp_restore(int request)
 {
        switch(request)
        {
@@ -460,15 +474,15 @@ void GenericCommand_settemp_restore(float request, float argc)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " settemp_restore");
-                       LOG_INFO("  No arguments required.");
-                       LOG_INFO("See also: ^2settemp^7");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " settemp_restore");
+                       LOG_HELP("  No arguments required.");
+                       LOG_HELP("See also: ^2settemp^7");
                        return;
                }
        }
 }
 
-void GenericCommand_runtest(float request, float argc)
+void GenericCommand_runtest(int request, int argc)
 {
        switch(request)
        {
@@ -488,7 +502,7 @@ void GenericCommand_runtest(float request, float argc)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " [function to run]");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " [function to run]");
                        return;
                }
        }
@@ -496,7 +510,7 @@ void GenericCommand_runtest(float request, float argc)
 
 /* use this when creating a new command, making sure to place it in alphabetical order... also,
 ** ADD ALL NEW COMMANDS TO commands.cfg WITH PROPER ALIASES IN THE SAME FASHION!
-void GenericCommand_(float request)
+void GenericCommand_(int request)
 {
        switch(request)
        {
@@ -509,8 +523,8 @@ void GenericCommand_(float request)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " "));
-                       print("  No arguments required.\n");
+                       LOG_HELP("Usage:^3 ", GetProgramCommandPrefix(), " ");
+                       LOG_HELP("  No arguments required.");
                        return;
                }
        }
@@ -518,23 +532,23 @@ void GenericCommand_(float request)
 */
 
 // Do not hard code aliases for these, instead create them in commands.cfg... also: keep in alphabetical order, please ;)
-GENERIC_COMMAND(addtolist, "Add a string to a cvar") { GenericCommand_addtolist(request, arguments); }
-GENERIC_COMMAND(maplist, "Automatic control of maplist") { GenericCommand_maplist(request, arguments); }
-GENERIC_COMMAND(nextframe, "Execute the given command next frame of this VM") { GenericCommand_nextframe(request, arguments, command); }
-GENERIC_COMMAND(qc_curl, "Queries a URL") { GenericCommand_qc_curl(request, arguments); }
-GENERIC_COMMAND(removefromlist, "Remove a string from a cvar") { GenericCommand_removefromlist(request, arguments); }
-GENERIC_COMMAND(restartnotifs, "Re-initialize all notifications") { GenericCommand_restartnotifs(request); }
-GENERIC_COMMAND(rpn, "RPN calculator") { GenericCommand_rpn(request, arguments, command); }
-GENERIC_COMMAND(settemp, "Temporarily set a value to a cvar which is restored later") { GenericCommand_settemp(request, arguments); }
-GENERIC_COMMAND(settemp_restore, "Restore all cvars set by settemp command") { GenericCommand_settemp_restore(request, arguments); }
-GENERIC_COMMAND(runtest, "Run unit tests") { GenericCommand_runtest(request, arguments); }
+GENERIC_COMMAND(addtolist, "Add a string to a cvar", true) { GenericCommand_addtolist(request, arguments); }
+GENERIC_COMMAND(maplist, "Automatic control of maplist", true) { GenericCommand_maplist(request, arguments); }
+GENERIC_COMMAND(nextframe, "Execute the given command next frame of this VM", true) { GenericCommand_nextframe(request, command); }
+GENERIC_COMMAND(qc_curl, "Queries a URL", true) { GenericCommand_qc_curl(request, arguments); }
+GENERIC_COMMAND(removefromlist, "Remove a string from a cvar", true) { GenericCommand_removefromlist(request, arguments); }
+GENERIC_COMMAND(restartnotifs, "Re-initialize all notifications", false) { GenericCommand_restartnotifs(request); }
+GENERIC_COMMAND(rpn, "RPN calculator", true) { GenericCommand_rpn(request, arguments, command); }
+GENERIC_COMMAND(settemp, "Temporarily set a value to a cvar which is restored later", false) { GenericCommand_settemp(request, arguments); }
+GENERIC_COMMAND(settemp_restore, "Restore all cvars set by settemp command", false) { GenericCommand_settemp_restore(request); }
+GENERIC_COMMAND(runtest, "Run unit tests", false) { GenericCommand_runtest(request, arguments); }
 
 void GenericCommand_macro_help()
 {
-       FOREACH(GENERIC_COMMANDS, true, LOG_INFOF("  ^2%s^7: %s", it.m_name, it.m_description));
+       FOREACH(GENERIC_COMMANDS, true, LOG_HELPF("  ^2%s^7: %s", it.m_name, it.m_description));
 }
 
-float GenericCommand_macro_command(float argc, string command)
+float GenericCommand_macro_command(int argc, string command)
 {
        string c = strtolower(argv(0));
        FOREACH(GENERIC_COMMANDS, it.m_name == c, {
@@ -544,7 +558,7 @@ float GenericCommand_macro_command(float argc, string command)
        return false;
 }
 
-float GenericCommand_macro_usage(float argc)
+float GenericCommand_macro_usage(int argc)
 {
        string c = strtolower(argv(1));
        FOREACH(GENERIC_COMMANDS, it.m_name == c, {
@@ -567,7 +581,7 @@ void GenericCommand_macro_write_aliases(float fh)
 
 float GenericCommand(string command)
 {
-       float argc = tokenize_console(command);
+       int argc = tokenize_console(command);
        float n, j, f, i;
        string s, s2, c;
        vector rgb;