misc.c
changeset 3046 baa216f9911a
parent 3033 9cba043eb38f
child 3112 a6fda4d4c7ca
equal deleted inserted replaced
3045:0364fedfd355 3046:baa216f9911a
   659 }
   659 }
   660 
   660 
   661 static const SaveLoad _game_opt_desc[] = {
   661 static const SaveLoad _game_opt_desc[] = {
   662 	// added a new difficulty option (town attitude) in version 4
   662 	// added a new difficulty option (town attitude) in version 4
   663 	SLE_CONDARR(GameOptions,diff,						SLE_FILE_I16 | SLE_VAR_I32, 17, 0, 3),
   663 	SLE_CONDARR(GameOptions,diff,						SLE_FILE_I16 | SLE_VAR_I32, 17, 0, 3),
   664 	SLE_CONDARR(GameOptions,diff,						SLE_FILE_I16 | SLE_VAR_I32, 18, 4, 255),
   664 	SLE_CONDARR(GameOptions,diff,						SLE_FILE_I16 | SLE_VAR_I32, 18, 4, SL_MAX_VERSION),
   665 	SLE_VAR(GameOptions,diff_level,			SLE_UINT8),
   665 	SLE_VAR(GameOptions,diff_level,			SLE_UINT8),
   666 	SLE_VAR(GameOptions,currency,				SLE_UINT8),
   666 	SLE_VAR(GameOptions,currency,				SLE_UINT8),
   667 	SLE_VAR(GameOptions,kilometers,			SLE_UINT8),
   667 	SLE_VAR(GameOptions,kilometers,			SLE_UINT8),
   668 	SLE_VAR(GameOptions,town_name,			SLE_UINT8),
   668 	SLE_VAR(GameOptions,town_name,			SLE_UINT8),
   669 	SLE_VAR(GameOptions,landscape,			SLE_UINT8),
   669 	SLE_VAR(GameOptions,landscape,			SLE_UINT8),
   679 	SlObject(&_opt, _game_opt_desc);
   679 	SlObject(&_opt, _game_opt_desc);
   680 }
   680 }
   681 
   681 
   682 
   682 
   683 static const SaveLoadGlobVarList _date_desc[] = {
   683 static const SaveLoadGlobVarList _date_desc[] = {
   684 	{&_date, 										SLE_UINT16, 0, 255},
   684 	    SLEG_VAR(_date,                  SLE_UINT16),
   685 	{&_date_fract, 							SLE_UINT16, 0, 255},
   685 	    SLEG_VAR(_date_fract,            SLE_UINT16),
   686 	{&_tick_counter, 						SLE_UINT16, 0, 255},
   686 	    SLEG_VAR(_tick_counter,          SLE_UINT16),
   687 	{&_vehicle_id_ctr_day, 			SLE_UINT16, 0, 255},
   687 	    SLEG_VAR(_vehicle_id_ctr_day,    SLE_UINT16),
   688 	{&_age_cargo_skip_counter, 	SLE_UINT8,	0, 255},
   688 	    SLEG_VAR(_age_cargo_skip_counter,SLE_UINT8),
   689 	{&_avail_aircraft, 					SLE_UINT8,	0, 255},
   689 	    SLEG_VAR(_avail_aircraft,        SLE_UINT8),
   690 	{&_cur_tileloop_tile, 			SLE_FILE_U16 | SLE_VAR_U32, 0, 5},
   690 	SLEG_CONDVAR(_cur_tileloop_tile,     SLE_FILE_U16 | SLE_VAR_U32, 0, 5),
   691 	{&_cur_tileloop_tile, 			SLE_UINT32, 6, 255},
   691 	SLEG_CONDVAR(_cur_tileloop_tile,     SLE_UINT32,                 6, SL_MAX_VERSION),
   692 	{&_disaster_delay, 					SLE_UINT16, 0, 255},
   692 	    SLEG_VAR(_disaster_delay,        SLE_UINT16),
   693 	{&_station_tick_ctr, 				SLE_UINT16, 0, 255},
   693 	    SLEG_VAR(_station_tick_ctr,      SLE_UINT16),
   694 	{&_random_seeds[0][0], 					SLE_UINT32, 0, 255},
   694 	    SLEG_VAR(_random_seeds[0][0],    SLE_UINT32),
   695 	{&_random_seeds[0][1], 					SLE_UINT32, 0, 255},
   695 	    SLEG_VAR(_random_seeds[0][1],    SLE_UINT32),
   696 	{&_cur_town_ctr, 						SLE_FILE_U8 | SLE_VAR_U32,	0, 9},
   696 	SLEG_CONDVAR(_cur_town_ctr,          SLE_FILE_U8 | SLE_VAR_U32,  0, 9),
   697 	{&_cur_town_ctr,						SLE_UINT32, 10, 255},
   697 	SLEG_CONDVAR(_cur_town_ctr,          SLE_UINT32,                10, SL_MAX_VERSION),
   698 	{&_cur_player_tick_index, 	SLE_FILE_U8 | SLE_VAR_UINT, 0, 255},
   698 	    SLEG_VAR(_cur_player_tick_index, SLE_FILE_U8  | SLE_VAR_U32),
   699 	{&_next_competitor_start, 	SLE_FILE_U16 | SLE_VAR_UINT, 0, 255},
   699 	    SLEG_VAR(_next_competitor_start, SLE_FILE_U16 | SLE_VAR_U32),
   700 	{&_trees_tick_ctr, 					SLE_UINT8,	0, 255},
   700 	    SLEG_VAR(_trees_tick_ctr,        SLE_UINT8),
   701 	{&_pause, 									SLE_UINT8,	4, 255},
   701 	SLEG_CONDVAR(_pause,                 SLE_UINT8,   4, SL_MAX_VERSION),
   702 	{&_cur_town_iter, 						SLE_UINT32,	11, 255},
   702 	SLEG_CONDVAR(_cur_town_iter,         SLE_UINT32, 11, SL_MAX_VERSION),
   703 	{NULL,											0,					0,   0}
   703 	    SLEG_END()
   704 };
   704 };
   705 
   705 
   706 // Save load date related variables as well as persistent tick counters
   706 // Save load date related variables as well as persistent tick counters
   707 // XXX: currently some unrelated stuff is just put here
   707 // XXX: currently some unrelated stuff is just put here
   708 static void SaveLoad_DATE(void)
   708 static void SaveLoad_DATE(void)
   710 	SlGlobList(_date_desc);
   710 	SlGlobList(_date_desc);
   711 }
   711 }
   712 
   712 
   713 
   713 
   714 static const SaveLoadGlobVarList _view_desc[] = {
   714 static const SaveLoadGlobVarList _view_desc[] = {
   715 	{&_saved_scrollpos_x,			SLE_FILE_I16 | SLE_VAR_INT, 0, 5},
   715 	SLEG_CONDVAR(_saved_scrollpos_x,   SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
   716 	{&_saved_scrollpos_x,			SLE_INT32, 6, 255},
   716 	SLEG_CONDVAR(_saved_scrollpos_x,   SLE_INT32,                  6, SL_MAX_VERSION),
   717 	{&_saved_scrollpos_y,			SLE_FILE_I16 | SLE_VAR_INT, 0, 5},
   717 	SLEG_CONDVAR(_saved_scrollpos_y,   SLE_FILE_I16 | SLE_VAR_I32, 0, 5),
   718 	{&_saved_scrollpos_y,			SLE_INT32, 6, 255},
   718 	SLEG_CONDVAR(_saved_scrollpos_y,   SLE_INT32,                  6, SL_MAX_VERSION),
   719 	{&_saved_scrollpos_zoom,	SLE_UINT8,	0, 255},
   719 	    SLEG_VAR(_saved_scrollpos_zoom,SLE_UINT8),
   720 	{NULL,										0,					0,   0}
   720 	    SLEG_END()
   721 };
   721 };
   722 
   722 
   723 static void SaveLoad_VIEW(void)
   723 static void SaveLoad_VIEW(void)
   724 {
   724 {
   725 	SlGlobList(_view_desc);
   725 	SlGlobList(_view_desc);
   727 
   727 
   728 static uint32 _map_dim_x;
   728 static uint32 _map_dim_x;
   729 static uint32 _map_dim_y;
   729 static uint32 _map_dim_y;
   730 
   730 
   731 static const SaveLoadGlobVarList _map_dimensions[] = {
   731 static const SaveLoadGlobVarList _map_dimensions[] = {
   732 	{&_map_dim_x, SLE_UINT32, 6, 255},
   732 	SLEG_CONDVAR(_map_dim_x, SLE_UINT32, 6, SL_MAX_VERSION),
   733 	{&_map_dim_y, SLE_UINT32, 6, 255},
   733 	SLEG_CONDVAR(_map_dim_y, SLE_UINT32, 6, SL_MAX_VERSION),
   734 	{NULL, 0, 0, 0}
   734 	    SLEG_END()
   735 };
   735 };
   736 
   736 
   737 static void Save_MAPS(void)
   737 static void Save_MAPS(void)
   738 {
   738 {
   739 	_map_dim_x = MapSizeX();
   739 	_map_dim_x = MapSizeX();