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); |