X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fcommand%2Fgeneric.qc;h=d00aa29972bfd5aed65c1eaf6a8173005718fe0d;hb=04bbc270623d9f75f19d00c93b6f5b2c51734bf4;hp=766639856b6eb5a3520062e1143a594636378e81;hpb=52ae1315c1851e595d12ffc13e2407dee0b24e5e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/command/generic.qc b/qcsrc/common/command/generic.qc index 766639856..d00aa2997 100644 --- a/qcsrc/common/command/generic.qc +++ b/qcsrc/common/command/generic.qc @@ -233,34 +233,35 @@ void GenericCommand_dumpnotifs(float request) { case CMD_REQUEST_COMMAND: { + #ifndef MENUQC float fh, alsoprint = FALSE; - string filename = argv(1); if(filename == "") { - filename = "notifications_dump.txt"; + filename = "notifications.cfg"; alsoprint = FALSE; } else if(filename == "-") { - filename = "notifications_dump.txt"; + filename = "notifications.cfg"; alsoprint = TRUE; } fh = fopen(filename, FILE_WRITE); if(fh >= 0) { - fputs(fh, "dump of notifications list:\n"); - if(alsoprint) { print("dump of notifications list:\n"); } Dump_Notifications(fh, alsoprint); - print(sprintf("File located in ^2data/data/%s^7.\n", filename)); + print(sprintf("Dumping notifications... File located in ^2data/data/%s^7.\n", filename)); fclose(fh); } else { print(sprintf("^1Error: ^7Could not open file '%s'!\n", filename)); } + #else + print(_("Notification dump command only works with cl_cmd and sv_cmd.\n")); + #endif return; } @@ -268,7 +269,60 @@ void GenericCommand_dumpnotifs(float request) case CMD_REQUEST_USAGE: { print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " dumpnotifs [filename]")); - print(" Where 'filename' is the file to write (default is notifications_dump.txt),\n"); + print(" Where 'filename' is the file to write (default is notifications.cfg),\n"); + print(" if supplied with '-' output to console as well as default,\n"); + print(" if left blank, it will only write to default.\n"); + return; + } + } +} + +void GenericCommand_dumpturrets(float request) +{ + switch(request) + { + case CMD_REQUEST_COMMAND: + { + #ifdef SVQC + tur_config_file = -1; + tur_config_alsoprint = -1; + string filename = argv(1); + + if(filename == "") + { + filename = "turrets_dump.cfg"; + tur_config_alsoprint = FALSE; + } + else if(filename == "-") + { + filename = "turrets_dump.cfg"; + tur_config_alsoprint = TRUE; + } + tur_config_file = fopen(filename, FILE_WRITE); + + if(tur_config_file >= 0) + { + Dump_Turret_Settings(); + print(sprintf("Dumping turrets... File located in ^2data/data/%s^7.\n", filename)); + fclose(tur_config_file); + tur_config_file = -1; + tur_config_alsoprint = -1; + } + else + { + print(sprintf("^1Error: ^7Could not open file '%s'!\n", filename)); + } + #else + print(_("Turrets dump command only works with sv_cmd.\n")); + #endif + return; + } + + default: + case CMD_REQUEST_USAGE: + { + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " dumpturrets [filename]")); + print(" Where 'filename' is the file to write (default is turrets_dump.cfg),\n"); print(" if supplied with '-' output to console as well as default,\n"); print(" if left blank, it will only write to default.\n"); return; @@ -425,6 +479,49 @@ void GenericCommand_removefromlist(float request, float argc) } } +void GenericCommand_restartnotifs(float request) +{ + switch(request) + { + case CMD_REQUEST_COMMAND: + { + #ifndef MENUQC + print(sprintf( + strcat( + "Restart_Notifications(): Restarting %d notifications... ", + "Counts: MSG_ANNCE = %d, MSG_INFO = %d, MSG_CENTER = %d, MSG_MULTI = %d, MSG_CHOICE = %d\n" + ), + ( + NOTIF_ANNCE_COUNT + + NOTIF_INFO_COUNT + + NOTIF_CENTER_COUNT + + NOTIF_MULTI_COUNT + + NOTIF_CHOICE_COUNT + ), + NOTIF_ANNCE_COUNT, + NOTIF_INFO_COUNT, + NOTIF_CENTER_COUNT, + NOTIF_MULTI_COUNT, + NOTIF_CHOICE_COUNT + )); + Destroy_All_Notifications(); + CALL_ACCUMULATED_FUNCTION(RegisterNotifications); + #else + print(_("Notification restart command only works with cl_cmd and sv_cmd.\n")); + #endif + return; + } + + default: + case CMD_REQUEST_USAGE: + { + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " restartnotifs")); + print(" No arguments required.\n"); + return; + } + } +} + void GenericCommand_settemp(float request, float argc) { switch(request) @@ -483,6 +580,32 @@ void GenericCommand_settemp_restore(float request, float argc) } } +void GenericCommand_runtest(float request, float argc) +{ + switch(request) + { + case CMD_REQUEST_COMMAND: + { + if(argc > 1) + { + float i; + for(i = 1; i < argc; ++i) + TEST_Run(argv(i)); + } + else + TEST_RunAll(); + return; + } + + default: + case CMD_REQUEST_USAGE: + { + print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " [function to run]")); + return; + } + } +} + /* 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) @@ -515,13 +638,16 @@ void GenericCommand_(float request) GENERIC_COMMAND("addtolist", GenericCommand_addtolist(request, arguments), "Add a string to a cvar") \ GENERIC_COMMAND("dumpcommands", GenericCommand_dumpcommands(request), "Dump all commands on the program to *_cmd_dump.txt") \ GENERIC_COMMAND("dumpnotifs", GenericCommand_dumpnotifs(request), "Dump all notifications into notifications_dump.txt") \ + GENERIC_COMMAND("dumpturrets", GenericCommand_dumpturrets(request), "Dump all turrets into turrets_dump.txt") \ GENERIC_COMMAND("maplist", GenericCommand_maplist(request, arguments), "Automatic control of maplist") \ GENERIC_COMMAND("nextframe", GenericCommand_nextframe(request, arguments, command), "Execute the given command next frame of this VM") \ GENERIC_COMMAND("qc_curl", GenericCommand_qc_curl(request, arguments), "Queries a URL") \ GENERIC_COMMAND("removefromlist", GenericCommand_removefromlist(request, arguments), "Remove a string from a cvar") \ + GENERIC_COMMAND("restartnotifs", GenericCommand_restartnotifs(request), "Re-initialize all notifications") \ GENERIC_COMMAND("rpn", GenericCommand_rpn(request, arguments, command), "RPN calculator") \ GENERIC_COMMAND("settemp", GenericCommand_settemp(request, arguments), "Temporarily set a value to a cvar which is restored later") \ GENERIC_COMMAND("settemp_restore", GenericCommand_settemp_restore(request, arguments), "Restore all cvars set by settemp command") \ + GENERIC_COMMAND("runtest", GenericCommand_runtest(request, arguments), "Run unit tests") \ /* nothing */ void GenericCommand_macro_help()