diff options
Diffstat (limited to 'settings.c')
-rw-r--r-- | settings.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/settings.c b/settings.c index 86d73191c..6dea5e74a 100644 --- a/settings.c +++ b/settings.c @@ -1582,6 +1582,7 @@ int32 CmdChangePatchSetting(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) Patches *patches_ptr = (_game_mode == GM_MENU) ? &_patches_newgame : &_patches; void *var = ini_get_variable(&sd->save, patches_ptr); Write_ValidateSetting(var, sd, (int32)p2); + if (sd->desc.proc != NULL) sd->desc.proc((int32)ReadValue(var, sd->save.conv)); InvalidateWindow(WC_GAME_OPTIONS, 0); } @@ -1611,6 +1612,7 @@ bool SetPatchValue(uint index, const Patches *object, int32 value) void *var2 = ini_get_variable(&sd->save, &_patches_newgame); Write_ValidateSetting(var2, sd, value); } + if (sd->desc.proc != NULL) sd->desc.proc((int32)ReadValue(var, sd->save.conv)); InvalidateWindow(WC_GAME_OPTIONS, 0); return true; } @@ -1653,7 +1655,6 @@ bool IConsoleSetPatchSetting(const char *name, int32 value) ptr = ini_get_variable(&sd->save, patches_ptr); success = SetPatchValue(index, patches_ptr, value); - if (success && sd->desc.proc != NULL) sd->desc.proc(value); return success; } |