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