(svn r9565) -Feature: Add list_patches console command. This shows all patches along with their current values. Based on patch by madman2003/GrimRC.

This commit is contained in:
peter1138
2007-04-05 12:59:57 +00:00
parent 8c67992051
commit 56882d2f5e
3 changed files with 34 additions and 0 deletions

View File

@@ -1829,6 +1829,25 @@ void IConsoleGetPatchSetting(const char *name)
name, value, (sd->desc.flags & SGF_0ISDISABLED) ? "(0) " : "", sd->desc.min, sd->desc.max);
}
void IConsoleListPatches()
{
IConsolePrintF(_icolour_warn, "All patches with their current value:");
for (const SettingDesc *sd = _patch_settings; sd->save.cmd != SL_END; sd++) {
char value[80];
const void *ptr = GetVariableAddress((_game_mode == GM_MENU) ? &_patches_newgame : &_patches, &sd->save);
if (sd->desc.cmd == SDT_BOOLX) {
snprintf(value, lengthof(value), (*(bool*)ptr == 1) ? "on" : "off");
} else {
snprintf(value, lengthof(value), "%d", (uint32)ReadValue(ptr, sd->save.conv));
}
IConsolePrintF(_icolour_def, "%s = %s", sd->desc.name, value);
}
IConsolePrintF(_icolour_warn, "Use 'patch' command to change a value");
}
/** Save and load handler for patches/settings
* @param osd SettingDesc struct containing all information
* @param object can be either NULL in which case we load global variables or