|
OpenTTD Source
14.0-beta3
|
#include "stdafx.h"#include "blitter/factory.hpp"#include "sound/sound_driver.hpp"#include "music/music_driver.hpp"#include "video/video_driver.hpp"#include "mixer.h"#include "fontcache.h"#include "error.h"#include "error_func.h"#include "gui.h"#include "base_media_base.h"#include "saveload/saveload.h"#include "company_cmd.h"#include "company_func.h"#include "command_func.h"#include "news_func.h"#include "fios.h"#include "aircraft.h"#include "roadveh.h"#include "train.h"#include "ship.h"#include "console_func.h"#include "screenshot.h"#include "network/network.h"#include "network/network_server.h"#include "network/network_func.h"#include "ai/ai.hpp"#include "ai/ai_config.hpp"#include "settings_func.h"#include "genworld.h"#include "progress.h"#include "strings_func.h"#include "vehicle_func.h"#include "gamelog.h"#include "animated_tile_func.h"#include "roadstop_base.h"#include "elrail_func.h"#include "rev.h"#include "highscore.h"#include "station_base.h"#include "crashlog.h"#include "engine_func.h"#include "core/random_func.hpp"#include "rail_gui.h"#include "road_gui.h"#include "core/backup_type.hpp"#include "hotkeys.h"#include "newgrf.h"#include "misc/getoptdata.h"#include "game/game.hpp"#include "game/game_config.hpp"#include "town.h"#include "subsidy_func.h"#include "gfx_layout.h"#include "viewport_func.h"#include "viewport_sprite_sorter.h"#include "framerate_type.h"#include "industry.h"#include "network/network_gui.h"#include "network/network_survey.h"#include "misc_cmd.h"#include "timer/timer.h"#include "timer/timer_game_calendar.h"#include "timer/timer_game_economy.h"#include "timer/timer_game_realtime.h"#include "timer/timer_game_tick.h"#include "social_integration.h"#include "linkgraph/linkgraphschedule.h"#include <system_error>#include "safeguards.h"Go to the source code of this file.
Data Structures | |
| struct | AfterNewGRFScan |
| Callback structure of statements to be executed after the NewGRF scan. More... | |
Functions | |
| void | CallLandscapeTick () |
| void | DoPaletteAnimations () |
| void | MusicLoop () |
| Check music playback status and start/stop/song-finished. More... | |
| void | CallWindowGameTickEvent () |
| Dispatch OnGameTick event over all windows. | |
| bool | HandleBootstrap () |
| Handle all procedures for bootstrapping OpenTTD without a base graphics set. More... | |
| void | AfterLoadCompanyStats () |
| Rebuilding of company statistics after loading a savegame. | |
| Company * | DoStartupNewCompany (bool is_ai, CompanyID company=INVALID_COMPANY) |
| Create a new company and sets all company variables default values. More... | |
| void | OSOpenBrowser (const std::string &url) |
| void | RebuildTownCaches () |
| Rebuild all the cached variables of towns. | |
| void | ShowOSErrorBox (const char *buf, bool system) |
| void | UserErrorI (const std::string &str) |
| Error handling for fatal user errors. More... | |
| void | FatalErrorI (const std::string &str) |
| Error handling for fatal non-user errors. More... | |
| static void | ShowHelp () |
| Show the help message when someone passed a wrong parameter. | |
| static void | WriteSavegameInfo (const std::string &name) |
| static void | ParseResolution (Dimension *res, const char *s) |
| Extract the resolution from the given string and store it in the 'res' parameter. More... | |
| static void | ShutdownGame () |
| Uninitializes drivers, frees allocated memory, cleans pools, ... More... | |
| static void | LoadIntroGame (bool load_newgrfs=true) |
| Load the introduction game. More... | |
| void | MakeNewgameSettingsLive () |
| void | OpenBrowser (const std::string &url) |
| void | PostMainLoop () |
| int | openttd_main (int argc, char *argv[]) |
| Main entry point for this lovely game. More... | |
| void | HandleExitGameRequest () |
| static void | OnStartScenario () |
| Triggers everything required to set up a saved scenario for a new game. | |
| static void | OnStartGame (bool dedicated_server) |
| Triggers everything that should be triggered when starting a game. More... | |
| static void | MakeNewGameDone () |
| static void | MakeNewGame (bool from_heightmap, bool reset_settings) |
| static void | MakeNewEditorWorldDone () |
| static void | MakeNewEditorWorld () |
| bool | SafeLoad (const std::string &filename, SaveLoadOperation fop, DetailedFileType dft, GameMode newgm, Subdirectory subdir, std::shared_ptr< LoadFilter > lf=nullptr) |
| Load the specified savegame but on error do different things. More... | |
| static void | UpdateSocialIntegration (GameMode game_mode) |
| void | SwitchToMode (SwitchMode new_mode) |
| static void | CheckCaches () |
| Check the validity of some of the caches. More... | |
| void | StateGameLoop () |
| State controlling game loop. More... | |
| void | ChangeAutosaveFrequency (bool reset) |
| Reset the interval of the autosave. More... | |
| bool | RequestNewGRFScan (NewGRFScanCallback *callback) |
| Request a new NewGRF scan. More... | |
| void | GameLoop () |
Variables | |
| std::string | _config_file |
| Configuration file of OpenTTD. | |
| bool | _save_config = false |
| bool | _request_newgrf_scan = false |
| NewGRFScanCallback * | _request_newgrf_scan_callback = nullptr |
| static const OptionData | _options [] |
| Options of OpenTTD. More... | |
| static IntervalTimer< TimerGameRealtime > | _autosave_interval ({std::chrono::milliseconds::zero(), TimerGameRealtime::AUTOSAVE}, [](auto) { _pause_mode &=~PM_COMMAND_DURING_PAUSE;_do_autosave=true;SetWindowDirty(WC_STATUS_BAR, 0);static FiosNumberedSaveName _autosave_ctr("autosave");DoAutoOrNetsave(_autosave_ctr);_do_autosave=false;SetWindowDirty(WC_STATUS_BAR, 0);}) |
| Interval for regular autosaves. More... | |
Functions related to starting OpenTTD.
Definition in file openttd.cpp.
| void ChangeAutosaveFrequency | ( | bool | reset | ) |
Reset the interval of the autosave.
If reset is not set, this does not set the elapsed time on the timer, so if the interval is smaller, it might result in an autosave being done immediately.
| reset | Whether to reset the timer back to zero, or to continue. |
Definition at line 1533 of file openttd.cpp.
References _autosave_interval, _settings_client, TimerGameRealtime::AUTOSAVE, GUISettings::autosave_interval, and ClientSettings::gui.
|
static |
Check the validity of some of the caches.
Especially in the sense of desyncs between the cached value and what the value would be when calculated from the 'base' data.
Definition at line 1238 of file openttd.cpp.
| Company* DoStartupNewCompany | ( | bool | is_ai, |
| CompanyID | company = INVALID_COMPANY |
||
| ) |
Create a new company and sets all company variables default values.
| is_ai | is an AI company? |
| company | CompanyID to use for the new company |
Definition at line 582 of file company_cmd.cpp.
| void FatalErrorI | ( | const std::string & | str | ) |
Error handling for fatal non-user errors.
| str | the string to print. |
Definition at line 135 of file openttd.cpp.
References VideoDriver::GetInstance().
| bool HandleBootstrap | ( | ) |
Handle all procedures for bootstrapping OpenTTD without a base graphics set.
This requires all kinds of trickery that is needed to avoid the use of sprites from the base graphics set which are pretty interwoven.
Definition at line 362 of file bootstrap_gui.cpp.
References _network_available, BlitterFactory::GetCurrentBlitter(), and BaseMedia< GraphicsSet >::GetUsedSet().
|
static |
Load the introduction game.
| load_newgrfs | Whether to load the NewGRFs or not. |
Definition at line 318 of file openttd.cpp.
| void MusicLoop | ( | ) |
Check music playback status and start/stop/song-finished.
Called from main loop.
Definition at line 454 of file music_gui.cpp.
References _music.
|
static |
Triggers everything that should be triggered when starting a game.
| dedicated_server | Whether this is a dedicated server or not. |
Definition at line 862 of file openttd.cpp.
References COMPANY_SPECTATOR, GetFirstPlayableCompanyID(), IConsoleCmdExec(), NetworkServerUpdateGameInfo(), and SetLocalCompany().
| int openttd_main | ( | int | argc, |
| char * | argv[] | ||
| ) |
Main entry point for this lovely game.
| argc | The number of arguments passed to this game. |
| argv | The values of the arguments. |
Definition at line 518 of file openttd.cpp.
|
static |
Extract the resolution from the given string and store it in the 'res' parameter.
| res | variable to store the resolution in. |
| s | the string to decompose. |
Definition at line 270 of file openttd.cpp.
| bool RequestNewGRFScan | ( | NewGRFScanCallback * | callback | ) |
Request a new NewGRF scan.
This will be executed on the next game-tick. This is mostly needed to ensure NewGRF scans (which are blocking) are done in the game-thread, and not in the draw-thread (which most often triggers this request).
| callback | Optional callback to call when NewGRF scan is completed. |
Definition at line 1546 of file openttd.cpp.
| bool SafeLoad | ( | const std::string & | filename, |
| SaveLoadOperation | fop, | ||
| DetailedFileType | dft, | ||
| GameMode | newgm, | ||
| Subdirectory | subdir, | ||
| std::shared_ptr< LoadFilter > | lf = nullptr |
||
| ) |
Load the specified savegame but on error do different things.
If loading fails due to corrupt savegame, bad version, etc. go back to a previous correct state. In the menu for example load the intro game again.
| filename | file to be loaded |
| fop | mode of loading, always SLO_LOAD |
| newgm | switch to this mode of loading fails due to some unknown error |
| subdir | default directory to look for filename, set to 0 if not needed |
| lf | Load filter to use, if nullptr: use filename + subdir. |
Definition at line 969 of file openttd.cpp.
References DFT_GAME_FILE, DFT_OLD_GAME_FILE, and SLO_LOAD.
|
static |
Uninitializes drivers, frees allocated memory, cleans pools, ...
Generally, prepares the game for shutting down
Definition at line 287 of file openttd.cpp.
| void StateGameLoop | ( | ) |
State controlling game loop.
The state must not be changed from anywhere but here. That check is enforced in DoCommand.
Definition at line 1427 of file openttd.cpp.
References _network_server, _networking, _pause_mode, Game::GameLoop(), HasModalProgress(), PerformanceMeasurer::Paused(), PFE_GAMELOOP, PFE_GL_AIRCRAFT, PFE_GL_ECONOMY, PFE_GL_LANDSCAPE, PFE_GL_ROADVEHS, PFE_GL_SHIPS, PFE_GL_TRAINS, PM_UNPAUSED, Layouter::ReduceLineCache(), PerformanceAccumulator::Reset(), StateGameLoop_LinkGraphPauseControl(), and UpdateLandscapingLimits().
Referenced by ClientNetworkGameSocketHandler::GameLoop().
| void UserErrorI | ( | const std::string & | str | ) |
Error handling for fatal user errors.
| str | the string to print. |
Definition at line 114 of file openttd.cpp.
|
static |
Interval for regular autosaves.
Initialized at zero to disable till settings are loaded.
Referenced by ChangeAutosaveFrequency().
|
static |
Options of OpenTTD.
Definition at line 482 of file openttd.cpp.