src/settings.cpp
branch0.6
changeset 9353 1127b484af20
parent 9192 7e4b0b777375
child 10328 721fe18a2176
equal deleted inserted replaced
9352:d7b2f0bbd0ec 9353:1127b484af20
  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)