OpenTTD Source 20260531-master-g0e951f3528
openttd.h File Reference

Some generic types. More...

#include <atomic>
#include <chrono>
#include "core/enum_type.hpp"

Go to the source code of this file.

Data Structures

struct  GameSessionStats

Typedefs

using DisplayOptions = EnumBitSet<DisplayOption, uint8_t>
 Bitset of DisplayOption elements.
using PauseModes = EnumBitSet<PauseMode, uint8_t>

Enumerations

enum class  GameMode : uint8_t { Menu , Normal , Editor , Bootstrap }
 Mode which defines the state of the game. More...
enum class  SwitchMode : uint8_t {
  None , NewGame , RestartGame , ReloadGame ,
  Editor , LoadGame , Menu , SaveGame ,
  SaveHeightmap , GenerateRandomLand , LoadScenario , StartHeightmap ,
  LoadHeightmap , RestartHeightmap , JoinGame
}
 Mode which defines what mode we're switching to. More...
enum class  DisplayOption : uint8_t {
  ShowTownNames = 0 , ShowStationNames = 1 , ShowSigns = 2 , FullAnimation = 3 ,
  FullDetail = 5 , ShowWaypointNames = 6 , ShowCompetitorSigns = 7
}
 Display Options. More...
enum class  PauseMode : uint8_t {
  Normal = 0 , SaveLoad = 1 , Join = 2 , Error = 3 ,
  ActiveClients = 4 , GameScript = 5 , LinkGraph = 6 , CommandDuringPause = 7
}
 Modes of pausing we've got. More...

Functions

void AskExitGame ()
void AskExitToGameMenu ()
int openttd_main (std::span< std::string_view > arguments)
 Main entry point for this lovely game.
void StateGameLoop ()
 State controlling game loop.
void HandleExitGameRequest ()
void SwitchToMode (SwitchMode new_mode)
bool RequestNewGRFScan (struct NewGRFScanCallback *callback=nullptr)
 Request a new NewGRF scan.
void GenerateSavegameId ()
 Generate an unique savegame ID.
void OpenBrowser (const std::string &url)
void ChangeAutosaveFrequency (bool reset)
 Reset the interval of the autosave.

Variables

GameMode _game_mode
SwitchMode _switch_mode
 The next mainloop command.
GameSessionStats _game_session_stats
 Statistics about the current session.
std::atomic< bool > _exit_game
bool _save_config
PauseModes _pause_mode
 The current pause mode.

Detailed Description

Some generic types.

Definition in file openttd.h.

Typedef Documentation

◆ DisplayOptions

Bitset of DisplayOption elements.

Definition at line 56 of file openttd.h.

◆ PauseModes

using PauseModes = EnumBitSet<PauseMode, uint8_t>

Definition at line 81 of file openttd.h.

Enumeration Type Documentation

◆ DisplayOption

enum class DisplayOption : uint8_t
strong

Display Options.

Enumerator
ShowTownNames 

Display town names.

ShowStationNames 

Display station names.

ShowSigns 

Display signs.

FullAnimation 

Perform palette animation.

FullDetail 

Also draw details of track and roads.

ShowWaypointNames 

Display waypoint names.

ShowCompetitorSigns 

Display signs, station names and waypoint names of opponent companies. Buoys and oilrig-stations are always shown, even if this option is turned off.

Definition at line 45 of file openttd.h.

◆ GameMode

enum class GameMode : uint8_t
strong

Mode which defines the state of the game.

Enumerator
Menu 

In the main menu.

Normal 

Playing a game.

Editor 

In the scenario editor.

Bootstrap 

In the content bootstrap process.

Definition at line 18 of file openttd.h.

◆ PauseMode

enum class PauseMode : uint8_t
strong

Modes of pausing we've got.

Enumerator
Normal 

A game normally paused.

SaveLoad 

A game paused for saving/loading.

Join 

A game paused for 'pause_on_join'.

Error 

A game paused because a (critical) error.

ActiveClients 

A game paused for 'min_active_clients'.

GameScript 

A game paused by a game script.

LinkGraph 

A game paused due to the link graph schedule lagging.

CommandDuringPause 

A game paused, and a command executed during the pause; resets on autosave.

Definition at line 71 of file openttd.h.

◆ SwitchMode

enum class SwitchMode : uint8_t
strong

Mode which defines what mode we're switching to.

Enumerator
None 

Not switching game mode.

NewGame 

New Game --> 'Random game'.

RestartGame 

Restart --> 'Random game' with current settings.

ReloadGame 

Reload the savegame / scenario / heightmap you started the game with.

Editor 

Switch to scenario editor.

LoadGame 

Load game, Play Scenario.

Menu 

Switch to game intro menu.

SaveGame 

Save game.

SaveHeightmap 

Save heightmap.

GenerateRandomLand 

Generate random land within scenario editor.

LoadScenario 

Load scenario from scenario editor.

StartHeightmap 

Load a heightmap and start a new game from it.

LoadHeightmap 

Load heightmap from scenario editor.

RestartHeightmap 

Load a heightmap and start a new game from it with current settings.

JoinGame 

Join a network game.

Definition at line 26 of file openttd.h.

Function Documentation

◆ AskExitGame()

void AskExitGame ( )

Definition at line 412 of file intro_gui.cpp.

◆ AskExitToGameMenu()

void AskExitToGameMenu ( )

Definition at line 432 of file intro_gui.cpp.

◆ ChangeAutosaveFrequency()

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.

Parameters
resetWhether to reset the timer back to zero, or to continue.

Definition at line 1311 of file openttd.cpp.

References _autosave_interval, _settings_client, and TimerGameRealtime::Autosave.

Referenced by GameOptionsWindow::OnDropdownSelect().

◆ GenerateSavegameId()

void GenerateSavegameId ( )

Generate an unique savegame ID.

Definition at line 89 of file misc.cpp.

References _game_session_stats, and GenerateUid().

Referenced by AfterLoadGame().

◆ HandleExitGameRequest()

void HandleExitGameRequest ( )

Definition at line 813 of file openttd.cpp.

◆ OpenBrowser()

void OpenBrowser ( const std::string & url)

Definition at line 361 of file openttd.cpp.

◆ openttd_main()

int openttd_main ( std::span< std::string_view > arguments)

Main entry point for this lovely game.

Parameters
argumentsThe command line arguments passed to the application.
Returns
0 when there is no error.

Definition at line 496 of file openttd.cpp.

References _blitter_autodetected, _config_file, _cur_resolution, _dedicated_forks, _file_to_saveload, _game_session_stats, _ini_blitter, _ini_musicdriver, _ini_sounddriver, _ini_videodriver, _load_check_data, _skip_all_newgrf_scanning, _support8bpp, _switch_mode, GetOptData::arguments, TarScanner::Baseset, BLT_8BPP, Check, VideoDriver::ClaimMousePointer(), CreateOptions(), Debug, DeterminePaths(), TarScanner::DoScan(), Editor, BaseMedia< GraphicsSet >::FindSets(), BaseMedia< MusicSet >::FindSets(), BaseMedia< SoundsSet >::FindSets(), FiosGetSavegameListCallback(), FiosGetScenarioListCallback(), FONTSIZES_REQUIRED, FS2OTTD(), GameFile, GENERATE_NEW_SEED, GenerateWorld(), GetEncodedString(), VideoDriver::GetInstance(), GetOptData::GetOpt(), GraphicsSet::GetOrCreateExtraConfig(), GetString(), BaseMedia< GraphicsSet >::GetUsedSet(), GWM_EMPTY, HandleBootstrap(), Heightmap, BaseMusic::ini_set, BaseSounds::ini_set, SocialIntegration::Initialize(), InitializeLanguagePacks(), InitializeSpriteSorter(), InitWindowSystem(), GRFConfig::IsCompatible(), Load, FontCache::LoadFontCaches(), LoadFromConfig(), LoadGame, LoadHeightmap, LoadIntroGame(), LoadScenario, VideoDriver::MainLoop(), Menu, Min, Driver::Music, NetworkStartUp(), NewGame, None, Ok, GetOptData::opt, OTTD2FS(), ParseFullConnectionString(), ParseInteger(), ParseResolution(), RequestNewGRFScan(), Save, Savegame, SaveOrLoad(), Scenario, ScheduleErrorMessage(), BlitterFactory::SelectBlitter(), DriverFactoryBase::SelectDriver(), SetDebugString(), BaseMedia< GraphicsSet >::SetSet(), BaseMedia< MusicSet >::SetSet(), BaseMedia< SoundsSet >::SetSet(), BaseMedia< GraphicsSet >::SetSetByName(), BaseMedia< MusicSet >::SetSetByName(), BaseMedia< SoundsSet >::SetSetByName(), BaseMedia< GraphicsSet >::SetSetByShortname(), ShowHelp(), ShutdownGame(), Driver::Sound, StartHeightmap, UpdateGUIZoom(), and Driver::Video.

◆ RequestNewGRFScan()

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

Parameters
callbackOptional callback to call when NewGRF scan is completed.
Returns
True when the NewGRF scan was actually requested, false when the scan was already running.

Definition at line 1324 of file openttd.cpp.

Referenced by NetworkContentDownloadStatusWindow::Close(), ConRescanNewGRF(), NewGRFWindow::OnClick(), and openttd_main().

◆ StateGameLoop()

◆ SwitchToMode()

void SwitchToMode ( SwitchMode new_mode)

Definition at line 1016 of file openttd.cpp.

Variable Documentation

◆ _exit_game

std::atomic<bool> _exit_game
extern

Definition at line 48 of file gfx.cpp.

◆ _game_mode

GameMode _game_mode
extern

Definition at line 49 of file gfx.cpp.

◆ _game_session_stats

GameSessionStats _game_session_stats
extern

◆ _pause_mode

◆ _save_config

bool _save_config
extern

Definition at line 110 of file openttd.cpp.

◆ _switch_mode