Index: settings.c =================================================================== --- settings.c (revision 7134) +++ settings.c (working copy) @@ -1123,21 +1123,26 @@ return InValidateDetailsWindow(0); } +int32 CmdSetAutoReplace(TileIndex tile, uint32 flags, uint32 p1, uint32 p2); + static int32 EngineRenewUpdate(int32 p1) { DoCommandP(0, 0, _patches.autorenew, NULL, CMD_SET_AUTOREPLACE); +// CmdSetAutoReplace(0, 1, 0, _patches.autorenew); return 0; } static int32 EngineRenewMonthsUpdate(int32 p1) { DoCommandP(0, 1, _patches.autorenew_months, NULL, CMD_SET_AUTOREPLACE); +// CmdSetAutoReplace(0, 1, 1, _patches.autorenew_months); return 0; } static int32 EngineRenewMoneyUpdate(int32 p1) { DoCommandP(0, 2, _patches.autorenew_money, NULL, CMD_SET_AUTOREPLACE); +// CmdSetAutoReplace(0, 1, 2, _patches.autorenew_money); return 0; } /* End - Callback Functions */ @@ -1569,6 +1574,7 @@ 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); } @@ -1598,6 +1604,7 @@ 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; } @@ -1640,7 +1647,6 @@ 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; } Index: settings_gui.c =================================================================== --- settings_gui.c (revision 7134) +++ settings_gui.c (working copy) @@ -832,7 +832,6 @@ if (value != oldvalue) { SetPatchValue(page->entries[btn].index, patches_ptr, value); SetWindowDirty(w); - if (sdb->proc != NULL) sdb->proc((int32)ReadValue(var, sd->save.conv)); } } else { /* only open editbox for types that its sensible for */ @@ -875,8 +874,6 @@ SetPatchValue(pe->index, patches_ptr, value); SetWindowDirty(w); - - if (sd->desc.proc != NULL) sd->desc.proc((int32)ReadValue(var, sd->save.conv)); } break; }