summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-03-08Add: [Video] move GameLoop into its own threadPatric Stout
This allows drawing to happen while the GameLoop is doing an iteration too. Sadly, not much drawing currently can be done while the GameLoop is running, as for example PollEvent() or UpdateWindows() can influence the game-state. As such, they first need to acquire a lock on the game-state before they can be called. Currently, the main advantage is the time spend in Paint(), which for non-OpenGL drivers can be a few milliseconds. For OpenGL this is more like 0.05 milliseconds; in these instances this change doesn't add any benefits for now. This is an alternative to the former "draw-thread", which moved the drawing in a thread for some OSes. It has similar performance gain as this does, although this implementation allows for more finer control over what suffers when the GameLoop takes too long: drawing or the next GameLoop. For now they both suffer equally.
2021-03-08Codechange: don't set the window position when changing blitterMichael Lutz
There really is no need to make an extra call to the OS in these cases.
2021-03-08Codechange: remove the unused lock around BlitterPatric Stout
2021-03-08Remove: [Video] no longer draw in a threadPatric Stout
Drawing in a thread is a bit odd, and often leads to surprising issues. For example, OpenGL would only allow it if you move the full context to the thread. Which is not always easily done on all OSes. In general, the advise is to handle system events and drawing from the main thread, and do everything else in other threads. So, let's be more like other games. Additionally, putting the drawing routine in a thread was only done for a few targets. Upcoming commit will move the GameLoop in a thread, which will work for all targets.
2021-03-08Add: Buttons to open global goals from company goals and vice versadP
2021-03-08Change: Don't show global goals in company goal windowsdP
2021-03-08Fix #8817: keep NewGRF order for object class sorting (#8818)Didac Perez Parera
2021-03-08Fix #8784: using alt+enter didn't update the fullscreen toggle visibly (#8820)Patric Stout
Basically, the window was not invalidated, so it was never redrawn. This made it look like it wasn't working, but it really was.
2021-03-08Change: Clarify what effect town interactions have (#8744)Eddi-z
2021-03-08Fix #8808: [OSX, OpenGL] Crash on switching blitters due to double-mapping ↵Michael Lutz
the video buffer.
2021-03-08Fix 937d60f2: Broken company colours for 40bpp-blitter. (#8821)Michael Lutz
2021-03-08Add: Option to (dis-)allow accelerated video drivers. (#8819)Patric Stout
The video drivers using the OpenGL backend are currently our only accelerated drivers. The options defaults to off for macOS builds and to on everywhere else. Co-authored-by: Michael Lutz <michi@icosahedron.de>
2021-03-08Add: filter for "engines only" in build train window (#8733)Didac Perez Parera
2021-03-07Update: Translations from eintstranslators
estonian: 6 changes by siimsoni catalan: 3 changes by J0anJosep latvian: 37 changes by lexuslatvia portuguese (brazilian): 8 changes by Greavez polish: 1 change by azabost
2021-03-07Fix #8809: Crash when removing airport when hangar window openJonathan G Rennison
2021-03-06Update: Translations from eintstranslators
chinese (traditional): 5 changes by benny30111 estonian: 1 change by siimsoni italian: 1 change by AlphaJack ukrainian: 4 changes by StepanIvasyn tamil: 37 changes by Aswn portuguese (brazilian): 19 changes by Greavez
2021-03-05Update: Translations from eintstranslators
swedish: 1 change by kustridaren spanish (mexican): 4 changes by absay estonian: 80 changes by siimsoni arabic (egypt): 13 changes by AviationGamerX ukrainian: 1 change by StepanIvasyn dutch: 1 change by Afoklala portuguese (brazilian): 15 changes by Greavez
2021-03-04Fix dddf885f: use IConsoleError to produce console errorsPatric Stout
2021-03-04Add: allow making heightmap screenshot via consolePatric Stout
2021-03-04Feature: allow custom width/height of screenshot via consolePatric Stout
Reworked how the screenshot command works while keeping it backwards compatible. It can now more freely understand arguments, and has the ability to make SC_DEFAULTZOOM screenshots.
2021-03-04Update: Translations from eintstranslators
estonian: 22 changes by siimsoni korean: 1 change by telk5093 serbian: 41 changes by nkrs german: 1 change by Wuzzy2 romanian: 14 changes by ALEX11BR russian: 5 changes by Ln-Wolf finnish: 5 changes by hpiirai ukrainian: 2 changes by StepanIvasyn lithuanian: 105 changes by devbotas spanish: 3 changes by MontyMontana french: 5 changes by MalaGaM portuguese (brazilian): 13 changes by Greavez
2021-03-03Fix #8799: NGameAllowedSorter() is not imposing strict weak ordering ↵Patric Stout
relation (#8801) In other words, it should only (!) return true if A comes for B. This promise was broken for the situation where two values are identical. It would return true in these cases too. This is of course not possible: if two values are identical, neither come before the other. As such, the sorter was not imposing strict weak ordering relations. libstdc++ handled this scenario just fine, but libc++ crashes badly on this, as it allowed comparing of [begin, end] instead of [begin, end). libc++ considered this not a bug (and by specs, they are correct; just this way of crashing is of course a bit harsh): https://bugs.llvm.org/show_bug.cgi?id=47903
2021-03-02Fix #8774: Black screenshots when using 40bpp-blitter. (#8791)Michael Lutz
This affected all screenshot types that render to an off-screen buffer and don't copy the actual screen contents.
2021-03-02Update: Translations from eintstranslators
english (us): 4 changes by 2TallTyler italian: 4 changes by troccoli serbian: 251 changes by nkrs german: 6 changes by ebla71, 2 changes by Wuzzy2 romanian: 3 changes by ALEX11BR russian: 11 changes by Ln-Wolf ukrainian: 2 changes by StepanIvasyn lithuanian: 15 changes by devbotas spanish: 2 changes by perezdidac
2021-03-01Fix #8775: [Win32] Don't create the main window when alt-tabbing back into ↵Michael Lutz
fullscreen.
2021-03-01Fix: [Win32] Original window size was lost when tabbing in and out of ↵Michael Lutz
fullscreen.
2021-03-01Codechange: validate that "max" value of settings fit in their storagePatric Stout
This is an easy mistake to make, so protect us against making such mistakes, by validating it doesn't happen.
2021-03-01Fix: old snow_line_height had a higher maximum value than could be storedPatric Stout
So any old game made with this setting was overflowing anyway; not really a lot we can do about that now.
2021-03-01Fix: three max-values for settings could exceed their storage sizePatric Stout
2021-03-01Fix c4df0f95: bootstrap was only showing a black screen (#8788)Patric Stout
The bootstrap has the _switch_mode to SM_MENU, and never leaves this mode. Neither is it considered a modal window (while in some sense it really is). So .. we need to add another "draw anyway" exception, to make sure bootstrap is being drawn.
2021-03-01Add: Malaysia Ringgit as CurrencyLimyx826
Cause why not *Update the formating
2021-03-01Change: Zero out the gameloop timers when the game is pausedCharles Pigott
2021-03-01Change: De-limit framerate window's framerateCharles Pigott
2021-03-01Fix: [OSX] Hide dock when entering fullscreenOwen Rudge
2021-03-01Update: Translations from eintstranslators
swedish: 4 changes by kustridaren norwegian (bokmal): 3 changes by buzzCraft spanish (mexican): 12 changes by absay korean: 4 changes by telk5093 greek: 85 changes by sntovas german: 4 changes by MagnumSociety catalan: 5 changes by J0anJosep tamil: 16 changes by Ramesh78dev dutch: 4 changes by rcpaul polish: 5 changes by pAter-exe
2021-03-01Fix: terraform limit acted random when maxing out per_64k_frames settingPatric Stout
uint32 + uint32 can overflow, so cast it to uint64 first.
2021-03-01Fix 9b800a96: (a << 16) is unsigned, so don't remove the castPatric Stout
2021-02-28Fix c3dc27e3: put the max-value of fast-forward-speed-limit to within the ↵Patric Stout
storage size (#8769)
2021-02-28Update: Translations from eintstranslators
czech: 1 change by LubosKolouch
2021-02-28Add: settings to limit your fast-forward game speedPatric Stout
By default this setting is set to 2500% normal game speed.
2021-02-28Fix #6266: Ugly lists in network lobby windows on double/quad interface ↵dP
sizes with custom fonts
2021-02-28Fix: [Network] don't desync if client leaves before you finish downloading mapPatric Stout
When you are downloading a map, all the commands are queued up for you. Clients joining/leaving is done by the network protocol, and as such are processed immediately. This means that by the time you are processing the commands, a client that triggered it, might already have left. So, all commands that do something with ClientID, shouldn't error on an invalid ClientID when DC_EXEC is set, but gracefully handle the command anyway, to make sure the game-state is kept in sync with all the clients that did execute the DoCommand while the now-gone client was still there. Additionally, in the small chance a client disconnects between the server validating a DoCommand and the command being executed, also just process the command as if the client was still there. Otherwise, lag or latency can cause clients that did not receive the disconnect yet to desync.
2021-02-28Fix: [Network] don't show "server doesn't respond" while in queuePatric Stout
Send all clients in the queue every game-day a packet that they are still in the queue.
2021-02-28Fix: [Network] send map to next client if current client disconnectsPatric Stout
Also terminate creating of the savegame, as the client is gone, there really is no need for that anymore.
2021-02-28Fix: [Network] also count the person downloading the map in the queuePatric Stout
Strictly seen, there are "N" people -waiting- in front of you in the queue, but it is nicer to show "N + 1" for the person that is currently downloading the map. Avoids it showing: "0 clients in front of you". That just feels a bit off.
2021-02-28Fix: Vehicle list windows did not update when this year's profit changedCharles Pigott
Remove caching from vehicle group object. and recalculate it whenever required instead.
2021-02-28Fix #8763: [OpenGL] Cursor sprite origin can be negative.Michael Lutz
2021-02-27Change: Improve console warnings on invalid network commands (#8753)Pavel Stupnikov
2021-02-27Update: Translations from eintstranslators
swedish: 60 changes by kustridaren norwegian (bokmal): 12 changes by buzzCraft czech: 82 changes by PatrikSamuelTauchim, 1 change by tomas-vl italian: 86 changes by AlphaJack, 9 changes by federico1564S german: 16 changes by ebla71 romanian: 10 changes by ALEX11BR ukrainian: 3 changes by StepanIvasyn spanish: 1 change by MontyMontana
2021-02-27Fix: [OpenGL] Don't use OpenGL on MESA software renderers.Michael Lutz
Performance in this case is worse than not using OpenGL, so just let OTTD fall back to a different video driver.