summaryrefslogtreecommitdiff
path: root/src/openttd.cpp
AgeCommit message (Collapse)Author
2020-12-22Change: [Linkgraph] Pause the game when linkgraph jobs lag (#6470)Jonathan G Rennison
Check if the job is still running two date fract ticks before it is due to join, and if so pause the game until its done. When loading a game, check if the game would block immediately due to a job which is scheduled to be joined within two date fract ticks, and if so pause the game until its done. This avoids the main thread being blocked on a thread join, which appears to the user as if the game is unresponsive, as the UI does not repaint and cannot be interacted with. Show if pause is due to link graph job in status bar, update network messages. This does not apply for network clients.
2020-12-15Add: support for emscripten (play-OpenTTD-in-the-browser)Patric Stout
Emscripten compiles to WASM, which can be loaded via HTML / JavaScript. This allows you to play OpenTTD inside a browser. Co-authored-by: milek7 <me@milek7.pl>
2020-12-13Fix 8bef06a2: don't use "extern" when you want to implement a global (#8373)Patric Stout
2020-12-13Add: save openttd.cfg immediately on changing a setting (#8358)Patric Stout
Formally it was only done on exit. This means that if it crashes changes in settings were not stored. This is often rather frustrating. Additionally, targets (like emscripten) where people are unlike to use "Exit Game", will never see their configuration stored. The drawback is that on every setting change there is some minor I/O of writing the ini file to disk again.
2020-12-08Fix: useless warning with -snull and no BaseSounds available (#8361)Patric Stout
If I explicitly tell the system I do not want sound, I still get presented a nice message I do not have any BaseSounds available on my system, and that I should download one to enjoy sound. Well, let me tell you, with "-snull" that is really really not going to help. So please, be quiet, and let me enjoy the game without "boooooo" and "DING DING DING". Thank you.
2020-09-24Feature: Improve restart commandBerbe
When the restart command is issued, a normal map is always spawned. This improvement takes into account the current state of _file_to_saveload to check if a savegame/scenario/heightmap was previously loaded, and loads the same resource again.
2020-05-21Codechange: Store info about the dedicated server log file in globals with ↵Michael Lutz
automatic destruction to simplify control flow in openttd_main.
2020-05-21Codechange: Use std::string in the driver and blitter selection code.Michael Lutz
2020-05-21Codechange: Store base set related texts in std::strings.Michael Lutz
2020-05-12Add: stations_near and industries_near cache check (#8139)glx22
2020-05-07Add: docking tiles cache check (#8120)glx22
2019-12-26Fix: Reference correct section in README file for baseset infoNiels Martin Hansen
2019-12-21Codechange: Replace FOR_ALL_TOWNS with range-based for loopsglx
2019-12-21Codechange: Replace FOR_ALL_ROADSTOPS with range-based for loopsglx
2019-12-21Codechange: Replace vehicle related FOR_ALL with range-based for loopsglx
2019-12-21Codechange: Replace station related FOR_ALL with range-based for loopsglx
2019-12-21Codechange: Replace FOR_ALL_COMPANIES with range-based for loopsglx
2019-11-10Cleanup: Removed SVN headersS. D. Cloudt
2019-05-01Feature: Add NotRoadTypes (NRT)peter1138
2019-04-29Codechange: Remove Company/OwnerByte typesCharles Pigott
2019-04-24Change: Zoom title game by UI zoom levelNiels Martin Hansen
2019-04-10Codechange: Use null pointer literal instead of the NULL macroHenry Wilson
2019-04-09Codechange: If something is a vector of strings, use a vector of strings ↵Michael Lutz
instead of an AutoFreeSmallVector.
2019-04-06Codechange: Replace custom thread code with C++11 thread objects.Michael Lutz
We assume a conforming C++11 compiler environment that has a valid <thread>-header. Failure to run a real thread is handled gracefully.
2019-04-06Codechange: Replace custom mutex code with C++11 mutex'es.Michael Lutz
A conforming compiler with a valid <mutex>-header is expected. Most parts of the code assume that locking a mutex will never fail unexpectedly, which is generally true on all common platforms that don't just pretend to be C++11. The use of condition variables in driver code is checked.
2019-03-26Codechange: Removed SmallVector completelyHenry Wilson
2019-03-26Codechange: Replaced SmallVector::Append() with ↵Henry Wilson
std::vector::[push|emplace]_back()
2019-03-26Codechange: Replaced SmallVector::Get() const with std alternativesHenry Wilson
2019-03-20Remove: ENABLE_NETWORK switchPatric Stout
This switch has been a pain for years. Often disabling broke compilation, as no developer compiles OpenTTD without, neither do any of our official binaries. Additionaly, it has grown so hugely in our codebase, that it clearly shows that the current solution was a poor one. 350+ instances of "#ifdef ENABLE_NETWORK" were in the code, of which only ~30 in the networking code itself. The rest were all around the code to do the right thing, from GUI to NewGRF. A more proper solution would be to stub all the functions, and make sure the rest of the code can simply assume network is available. This was also partially done, and most variables were correct if networking was disabled. Despite that, often the #ifdefs were still used. With the recent removal of DOS, there is also no platform anymore which we support where networking isn't working out-of-the-box. All in all, it is time to remove the ENABLE_NETWORK switch. No replacement is planned, but if you feel we really need this option, we welcome any Pull Request which implements this in a way that doesn't crawl through the code like this diff shows we used to.
2019-03-16Remove: OPFCharles Pigott
2019-03-05Remove: MorphOS / AmigaOS supportPatric Stout
In 10 years there is no commit to change how MorphOS works, and we have no active maintainer for it. It is unlikely it works in its current state (but not impossible). With the arrival of SDL2 (and removal of SDL), MorphOS is no longer support. There is an SDL2 port for MorphOS, but it is not maintained by upstream SDL2, and nobody can currently test it out. If anyone wants to re-add MorphOS, please do (revert this patch, fix the problems, and create a Pull Request). If you need any help doing so, let us know! It is not that we don't like MorphOS, it is that we don't have anyone fixing the problems :(
2019-02-23Add: Show performance of AI and GS in framerate windowNiels Martin Hansen
2019-02-02Codechange: Additional type safety for saveload version variables.Peter Nelson
2019-01-30Fix: don't show OS error box for non GUI video driversglx
2019-01-17Fix: Some code and comment typosnikolas
Found with codespell
2019-01-11Change: Animate text effects by real time instead of game ticks.Peter Nelson
2019-01-11Change: Switch various window timers to real time instead of game ticks.Peter Nelson
2019-01-11Change: Split up Window::OnTick into OnGameTick and OnRealtimeTick. Adjust ↵Peter Nelson
timers to work with milliseconds instead of ticks.
2019-01-10Add #4115: default company colour setting (#6998)Gabda87
Works only in single player.
2018-12-27Fix: [Win32] WIN32 may not be defined, always prefer the compiler predefined ↵glx
macro _WIN32
2018-11-01Fix #6460: [AI] Add start_date parameter for Random AIs on new gameSamuXarick
2018-10-31Doc: Lots and lots of doxymentation fixesCharles Pigott
2018-10-27Fix e00908f: Visual C++ 2015 compile errorNiels Martin Hansen
Microsoft Visual C++ 2015 Update 3 (and possibly other versions) consider a struct member undefined in a static_assert in the struct body. Moving the static_assert to a member function solves the issue.
2018-10-11Fix #6898: Replace atoi() with strtoul()Miguel Horta
Normalize type and parsing of generation_seed across all files Add assert_compile() to ensure correct type
2018-07-19Feature: Framerate display window (#6822)Niels Martin Hansen
Frame rate and various game loop/graphics timing measurements and graphs. Accessible via the Help menu, and can print some stats in the console via the fps command.
2018-06-24Change: Modernise music control logic implementation (#6839)Niels Martin Hansen
Rewrite of almost the entire music control logic to a more modern style, hopefully also easier to understand. The old playlist handling made it look like arcane magic, which it doesn't have to be. - Playlists are now stored in std::vector of objects instead of arrays of bytes with magic sentinel values, that need to be rotated around all the time. Position in playlist is stored as a simple index. - The theme song is now reserved for the title screen, it doesn't play on any of the standard playlists, but is still available for use on custom playlists. - When the player enters/leaves the game from the main menu, the music always restarts. - Playback state (playing or not) is kept even if music becomes unavailable due to an empty playlist (or an empty music set), so it can restart immediately if music becomes available again. - The shuffle algorithm was changed to a standard Fisher-Yates. - Possibly better behavior when editing a custom playlist while it's playing. - Custom playlists should be compatible. - Framework for supporting custom playlists with songs from multiple music sets.
2018-04-29Remove: WinCE supportPatric Stout
2018-04-29Remove: PSP supportPatric Stout
2018-04-21Cleanup: Use new filename for README file. (#6738)Ricardo N Feliciano
2017-01-14(svn r27732) -Change: Turn the message about 'missing baseset sprites' from ↵frosch
a popup into a static message that only shows in non-release versions, just like the 'missing translations' message.