OpenTTD Source 20260311-master-g511d3794ce
misc_sl.cpp File Reference

Saving and loading of things that didn't fit anywhere else. More...

#include "../stdafx.h"
#include "saveload.h"
#include "compat/misc_sl_compat.h"
#include "../timer/timer_game_calendar.h"
#include "../timer/timer_game_economy.h"
#include "../zoom_func.h"
#include "../window_gui.h"
#include "../window_func.h"
#include "../viewport_func.h"
#include "../gfx_func.h"
#include "../core/random_func.hpp"
#include "../fios.h"
#include "../timer/timer.h"
#include "../timer/timer_game_tick.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  DATEChunkHandler
 Save load date related variables as well as persistent tick counters. More...
struct  VIEWChunkHandler

Functions

void SaveViewportBeforeSaveGame ()
void ResetViewportAfterLoadGame ()
const ChunkHandlerTable _misc_chunk_handlers (misc_chunk_handlers)

Variables

TileIndex _cur_tileloop_tile
uint16_t _disaster_delay
 Delay counter for considering the next disaster.
uint8_t _trees_tick_ctr
 Determines when to consider building more trees.
uint8_t _age_cargo_skip_counter
 Skip aging of cargo? Used before savegame version 162.
TimeoutTimer< TimerGameTick_new_competitor_timeout
static const SaveLoad _date_desc []
static const SaveLoad _date_check_desc []
static const SaveLoad _view_desc []
static const DATEChunkHandler DATE
static const VIEWChunkHandler VIEW
static const ChunkHandlerRef misc_chunk_handlers []
int _saved_scrollpos_x
int _saved_scrollpos_y
ZoomLevel _saved_scrollpos_zoom

Detailed Description

Saving and loading of things that didn't fit anywhere else.

Definition in file misc_sl.cpp.

Function Documentation

◆ ResetViewportAfterLoadGame()

void ResetViewportAfterLoadGame ( )

Definition at line 56 of file misc_sl.cpp.

◆ SaveViewportBeforeSaveGame()

void SaveViewportBeforeSaveGame ( )

Definition at line 40 of file misc_sl.cpp.

Variable Documentation

◆ _age_cargo_skip_counter

uint8_t _age_cargo_skip_counter

Skip aging of cargo? Used before savegame version 162.

Definition at line 81 of file misc_sl.cpp.

Referenced by OrderList::AfterLoadVehiclesPhase1.

◆ _cur_tileloop_tile

TileIndex _cur_tileloop_tile
extern

Definition at line 799 of file landscape.cpp.

◆ _date_check_desc

const SaveLoad _date_check_desc[]
static
Initial value:
= {
SLEG_CONDVAR("date", _load_check_data.current_date, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
SLEG_CONDVAR("date", _load_check_data.current_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
}
LoadCheckData _load_check_data
Data loaded from save during SL_LOAD_CHECK.
Definition fios_gui.cpp:41
#define SLEG_CONDVAR(name, variable, type, from, to)
Storage of a global variable in some savegame versions.
Definition saveload.h:1148
@ SL_MAX_VERSION
Highest possible saveload version.
Definition saveload.h:418
@ SL_MIN_VERSION
First savegame version.
Definition saveload.h:31
@ SLV_31
31 5999
Definition saveload.h:80

Definition at line 112 of file misc_sl.cpp.

◆ _date_desc

const SaveLoad _date_desc[]
static
Initial value:
= {
SLEG_CONDVAR("date", TimerGameCalendar::date, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
SLEG_VAR("date_fract", TimerGameCalendar::date_fract, SLE_UINT16),
SLEG_CONDVAR("tick_counter", TimerGameTick::counter, SLE_FILE_U16 | SLE_VAR_U64, SL_MIN_VERSION, SLV_U64_TICK_COUNTER),
SLEG_CONDVAR("age_cargo_skip_counter", _age_cargo_skip_counter, SLE_UINT8, SL_MIN_VERSION, SLV_162),
SLEG_CONDVAR("cur_tileloop_tile", _cur_tileloop_tile, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_6),
SLEG_CONDVAR("cur_tileloop_tile", _cur_tileloop_tile, SLE_UINT32, SLV_6, SL_MAX_VERSION),
SLEG_VAR("next_disaster_start", _disaster_delay, SLE_UINT16),
SLEG_VAR("random_state[0]", _random.state[0], SLE_UINT32),
SLEG_VAR("random_state[1]", _random.state[1], SLE_UINT32),
SLEG_VAR("company_tick_counter", _cur_company_tick_index, SLE_FILE_U8 | SLE_VAR_U32),
SLEG_VAR("trees_tick_counter", _trees_tick_ctr, SLE_UINT8),
SLEG_CONDVAR("pause_mode", _pause_mode, SLE_UINT8, SLV_4, SL_MAX_VERSION),
SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period.value, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_109),
SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period.value, SLE_UINT32, SLV_109, SLV_AI_START_DATE),
SLEG_CONDVAR("competitors_interval", _new_competitor_timeout.period.value, SLE_UINT32, SLV_AI_START_DATE, SL_MAX_VERSION),
SLEG_CONDVAR("competitors_interval_elapsed", _new_competitor_timeout.storage.elapsed, SLE_UINT32, SLV_AI_START_DATE, SL_MAX_VERSION),
SLEG_CONDVAR("competitors_interval_fired", _new_competitor_timeout.fired, SLE_BOOL, SLV_AI_START_DATE, SL_MAX_VERSION),
}
static uint16_t sub_date_fract
Subpart of date_fract that we use when calendar days are slower than economy days.
static Date date
Current date in days (day counter).
static DateFract date_fract
Fractional part of the day.
static Date date
Current date in days (day counter).
static DateFract date_fract
Fractional part of the day.
static uint days_since_last_month
Number of days that have elapsed since the last month.
static TickCounter counter
Monotonic counter, in ticks, since start of game.
uint _cur_company_tick_index
used to generate a name for one company that doesn't have a name yet per tick
TimeoutTimer< TimerGameTick > _new_competitor_timeout({ TimerGameTick::Priority::CompetitorTimeout, 0 }, []() { if(_game_mode==GM_MENU||!AI::CanStartNew()) return;if(_networking &&Company::GetNumItems() >=_settings_client.network.max_companies) return;if(_settings_game.difficulty.competitors_interval==0) return;uint8_t n=0;for(const Company *c :Company::Iterate()) { if(c->is_ai) n++;} if(n >=_settings_game.difficulty.max_no_competitors) return;Command< Commands::CompanyControl >::Post(CompanyCtrlAction::NewAI, CompanyID::Invalid(), CompanyRemoveReason::None, INVALID_CLIENT_ID);})
Start a new competitor company if possible.
uint16_t _disaster_delay
Delay counter for considering the next disaster.
GameSessionStats _game_session_stats
Statistics about the current session.
Definition gfx.cpp:52
PauseModes _pause_mode
The current pause mode.
Definition gfx.cpp:51
uint8_t _age_cargo_skip_counter
Skip aging of cargo? Used before savegame version 162.
Definition misc_sl.cpp:81
uint8_t _trees_tick_ctr
Determines when to consider building more trees.
Definition tree_cmd.cpp:45
Randomizer _random
Random used in the game state calculations.
#define SLEG_CONDSSTR(name, variable, type, from, to)
Storage of a global std::string in some savegame versions.
Definition saveload.h:1179
#define SLEG_VAR(name, variable, type)
Storage of a global variable in every savegame version.
Definition saveload.h:1225
@ SLV_AI_START_DATE
309 PR#10653 Removal of individual AI start dates and added a generic one.
Definition saveload.h:350
@ SLV_4
4.0 1 4.1 122 0.3.3, 0.3.4 4.2 1222 0.3.5 4.3 1417 4.4 1426
Definition saveload.h:37
@ SLV_6
6.0 1721 6.1 1768
Definition saveload.h:46
@ SLV_SAVEGAME_ID
313 PR#10719 Add an unique ID to every savegame (used to deduplicate surveys).
Definition saveload.h:355
@ SLV_CALENDAR_SUB_DATE_FRACT
328 PR#11428 Add sub_date_fract to measure calendar days.
Definition saveload.h:373
@ SLV_ECONOMY_DATE
326 PR#10700 Split calendar and economy timers and dates.
Definition saveload.h:371
@ SLV_109
109 15075
Definition saveload.h:173
@ SLV_INDUSTRY_ACCEPTED_HISTORY
357 PR#14321 Add per-industry history of cargo delivered and waiting.
Definition saveload.h:408
@ SLV_162
162 22713
Definition saveload.h:237
@ SLV_U64_TICK_COUNTER
300 PR#10035 Make tick counter 64bit to avoid wrapping.
Definition saveload.h:340

Definition at line 84 of file misc_sl.cpp.

◆ _disaster_delay

uint16_t _disaster_delay
extern

Delay counter for considering the next disaster.

Definition at line 57 of file disaster_vehicle.cpp.

◆ _saved_scrollpos_x

int _saved_scrollpos_x

Keep track of current game position.

Definition at line 35 of file misc_sl.cpp.

Referenced by AfterLoadGame().

◆ _saved_scrollpos_y

int _saved_scrollpos_y

Keep track of current game position.

Definition at line 36 of file misc_sl.cpp.

Referenced by AfterLoadGame().

◆ _saved_scrollpos_zoom

ZoomLevel _saved_scrollpos_zoom

Keep track of current game position.

Definition at line 37 of file misc_sl.cpp.

Referenced by AfterLoadGame().

◆ _trees_tick_ctr

uint8_t _trees_tick_ctr
extern

Determines when to consider building more trees.

Definition at line 45 of file tree_cmd.cpp.

Referenced by DecrementTreeCounter().

◆ _view_desc

const SaveLoad _view_desc[]
static
Initial value:
= {
SLEG_CONDVAR("x", _saved_scrollpos_x, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
SLEG_CONDVAR("y", _saved_scrollpos_y, SLE_FILE_I16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_6),
SLEG_VAR("zoom", _saved_scrollpos_zoom, SLE_UINT8),
}
ZoomLevel _saved_scrollpos_zoom
Definition misc_sl.cpp:37
int _saved_scrollpos_x
Definition misc_sl.cpp:35
int _saved_scrollpos_y
Definition misc_sl.cpp:36

Definition at line 157 of file misc_sl.cpp.

◆ DATE

const DATEChunkHandler DATE
static

Definition at line 186 of file misc_sl.cpp.

◆ misc_chunk_handlers

const ChunkHandlerRef misc_chunk_handlers[]
static
Initial value:
= {
DATE,
VIEW,
}

Definition at line 188 of file misc_sl.cpp.

◆ VIEW

const VIEWChunkHandler VIEW
static

Definition at line 187 of file misc_sl.cpp.