(svn r14041) -Feature(tte): make it possible to filter list_patches output like it's done for other list_* console commands

This commit is contained in:
glx 2008-08-11 17:15:31 +00:00
parent ebe9ae2b17
commit 16aac30c66
3 changed files with 8 additions and 5 deletions

View File

@ -1267,13 +1267,13 @@ DEF_CONSOLE_CMD(ConPatch)
DEF_CONSOLE_CMD(ConListPatches)
{
if (argc == 0) {
IConsoleHelp("List patch options. Usage: 'list_patches'");
IConsoleHelp("List patch options. Usage: 'list_patches [<pre-filter>]'");
return true;
}
if (argc != 1) return false;
if (argc > 2) return false;
IConsoleListPatches();
IConsoleListPatches((argc == 2) ? argv[1] : NULL);
return true;
}

View File

@ -2385,11 +2385,14 @@ void IConsoleGetPatchSetting(const char *name)
}
}
void IConsoleListPatches()
void IConsoleListPatches(const char *prefilter)
{
IConsolePrintF(CC_WARNING, "All patches with their current value:");
for (const SettingDesc *sd = _patch_settings; sd->save.cmd != SL_END; sd++) {
if (prefilter != NULL) {
if (strncmp(sd->desc.name, prefilter, min(strlen(sd->desc.name), strlen(prefilter))) != 0) continue;
}
char value[80];
const void *ptr = GetVariableAddress((_game_mode == GM_MENU) ? &_settings_newgame : &_settings_game, &sd->save);

View File

@ -10,7 +10,7 @@
void IConsoleSetPatchSetting(const char *name, const char *value);
void IConsoleSetPatchSetting(const char *name, int32 value);
void IConsoleGetPatchSetting(const char *name);
void IConsoleListPatches();
void IConsoleListPatches(const char *prefilter);
void LoadFromConfig();
void SaveToConfig();