1751 (*item)->value = (char*)pool_strdup(&ini->pool, value, strlen(value)); |
1751 (*item)->value = (char*)pool_strdup(&ini->pool, value, strlen(value)); |
1752 item = &(*item)->next; |
1752 item = &(*item)->next; |
1753 } |
1753 } |
1754 } |
1754 } |
1755 |
1755 |
|
1756 /** |
|
1757 * Save the version of OpenTTD to the ini file. |
|
1758 * @param ini the ini to write to |
|
1759 */ |
|
1760 static void SaveVersionInConfig(IniFile *ini) |
|
1761 { |
|
1762 extern const char _openttd_revision[]; |
|
1763 extern uint32 _openttd_newgrf_version; |
|
1764 |
|
1765 IniGroup *group = ini_getgroup(ini, "version", -1); |
|
1766 |
|
1767 if (group == NULL) return; |
|
1768 group->item = NULL; |
|
1769 IniItem **item = &group->item; |
|
1770 |
|
1771 char version[9]; |
|
1772 snprintf(version, lengthof(version), "%08X", _openttd_newgrf_version); |
|
1773 |
|
1774 const char *versions[][2] = { |
|
1775 { "version_string", _openttd_revision }, |
|
1776 { "version_number", version } |
|
1777 }; |
|
1778 |
|
1779 for (uint i = 0; i < lengthof(versions); i++) { |
|
1780 *item = ini_item_alloc(group, versions[i][0], strlen(versions[i][0])); |
|
1781 (*item)->value = (char*)pool_strdup(&ini->pool, versions[i][1], strlen(versions[i][1])); |
|
1782 item = &(*item)->next; |
|
1783 } |
|
1784 } |
|
1785 |
1756 /* Save a GRF configuration to the given group name */ |
1786 /* Save a GRF configuration to the given group name */ |
1757 static void GRFSaveConfig(IniFile *ini, const char *grpname, const GRFConfig *list) |
1787 static void GRFSaveConfig(IniFile *ini, const char *grpname, const GRFConfig *list) |
1758 { |
1788 { |
1759 IniGroup *group = ini_getgroup(ini, grpname, -1); |
1789 IniGroup *group = ini_getgroup(ini, grpname, -1); |
1760 IniItem **item; |
1790 IniItem **item; |
1815 IniFile *ini = ini_load(_config_file); |
1845 IniFile *ini = ini_load(_config_file); |
1816 HandleSettingDescs(ini, ini_save_settings, ini_save_setting_list); |
1846 HandleSettingDescs(ini, ini_save_settings, ini_save_setting_list); |
1817 GRFSaveConfig(ini, "newgrf", _grfconfig_newgame); |
1847 GRFSaveConfig(ini, "newgrf", _grfconfig_newgame); |
1818 GRFSaveConfig(ini, "newgrf-static", _grfconfig_static); |
1848 GRFSaveConfig(ini, "newgrf-static", _grfconfig_static); |
1819 NewsDisplaySaveConfig(ini, "news_display", _news_display_opt); |
1849 NewsDisplaySaveConfig(ini, "news_display", _news_display_opt); |
|
1850 SaveVersionInConfig(ini); |
1820 ini_save(_config_file, ini); |
1851 ini_save(_config_file, ini); |
1821 ini_free(ini); |
1852 ini_free(ini); |
1822 } |
1853 } |
1823 |
1854 |
1824 static const SettingDesc *GetSettingDescription(uint index) |
1855 static const SettingDesc *GetSettingDescription(uint index) |