Commit Graph

50485 Commits (909e343f403d7025944a49492d32c2a9dcaffe3f)
 

Author SHA1 Message Date
Patric Stout ae7a2b9f02 Change: allow video-drivers to miss deadlines slightly
Before, every next frame was calculated from the current time.
If for some reason the current frame was drifting a bit, the
next would too, and the next more, etc etc. This meant we rarely
hit the targets we would like, like 33.33fps.

Instead, allow video-drivers to drift slightly, and schedule the
next frame based on the time the last should have happened. Only
if the drift gets too much, that deadlines are missed for longer
period of times, schedule the next frame based on the current
time.

This makes the FPS a lot smoother, as sleeps aren't as exact as
you might think.
3 years ago
Patric Stout c81c6e5eb7 Add: draw the screen at a steady pace, also during fast-forward
During fast-forward, the game was drawing as fast as it could. This
means that the fast-forward was limited also by how fast we could
draw, something that people in general don't expect.

To give an extreme case, if you are fully zoomed out on a busy
map, fast-forward would be mostly limited because of the time it
takes to draw the screen.

By decoupling the draw-tick and game-tick, we can keep the pace
of the draw-tick the same while speeding up the game-tick. To use
the extreme case as example again, if you are fully zoomed out
now, the screen only redraws 33.33 times per second, fast-forwarding
or not. This means fast-forward is much more likely to go at the
same speed, no matter what you are looking at.
3 years ago
Patric Stout 5bfa014505 Codechange: track _realtime_tick more accurate
_realtime_tick was reset every time the diff was calculated. This
means if it would trigger, say, every N.9 milliseconds, it would
after two iterations already drift a millisecond. This adds up
pretty quick.
3 years ago
Patric Stout 25f6851ca1 Codechange: switch all video drivers to std::chrono for keeping time
On all OSes we tested the std::chrono::steady_clock is of a high
enough resolution to do millisecond measurements, which is all we
need.

By accident, this fixes a Win32 driver bug, where we would never
hit our targets, as the resolution of the clock was too low to
do accurate millisecond measurements with (it was ~16ms resolution
instead).
3 years ago
Patric Stout d437445c67 Codechange: use std::chrono to track time in modal windows
Adding to _realtime_ticks in a random place is a bit of a hack,
and by using modern C++, we can avoid this hack.
3 years ago
Tegas Aziz 1f6fb8c290
Add: Indonesia Rupiah as in-game currency (#8616)
The exchange rate is actually more like 19,000, but OpenTTD
doesn't handle such high exchange rates kindly.
3 years ago
Didac Perez Parera 96990b2ea7
Feature: Object class selection string filtering (#8603) 3 years ago
SamuXarick 7577dfa575 Codechange: Apply coding style 3 years ago
translators 259c04f41c Update: Translations from eints
russian: 1 change by Ln-Wolf
polish: 2 changes by yazalo
3 years ago
Tyler Trahan fa88cb62e1
Fix cc39fa9: New orders are non-stop by default (#8689) 3 years ago
Jonathan G Rennison bebe3acaa8
Merge pull request #217 from telk5093/jgrpp
Update: Korean translation for v0.40.2
3 years ago
Jonathan G Rennison 15b99f2e7a
Fix: Whole status bar instead of money widget refreshed on money change (#8692)
This could result in the rest of the status bar being
redrawn unnecessarily frequently
3 years ago
Jonathan G Rennison 55ed7d16f7
Fix: Unnecessary status bar redraws when there is no news to show (#8691)
InvalidateWindowData with mode SBI_NEWS_DELETED was called on the
status bar when checking for a new item of news to be shown in the
ticker, even if there is no news queued and no change occurs.
3 years ago
Jonathan G Rennison e059a88533
Fix: Autorenew failure advice due to bad refit being shown to all companies (#8681) 3 years ago
Tyler Trahan d5e18feed9
Change: Darken graph grid lines for legibility (#8690) 3 years ago
Wuzzy 27b4d6390b
Change: "(Business/Chair)man" to "...person" (#8659) 3 years ago
Patric Stout 8e0d48a0f6
Fix: [SDL2] simplify what to redraw to prevent tearing (#8685)
When there are a lot of rects to redraw, of which one of the last
ones is almost the full screen, visual tearing happens over the
vertical axis. This is most visible when scrolling the map.

This can be prevented by using less rects. To simplify the situation,
and as solutions like OpenGL need this anyway, keep a single rect
that shows the biggest size that updates everything correctly.

Although this means it needs a bit more time redrawing where it
is strictly seen not needed, it also means less commands have
to be executed in the backend. In the end, this is a trade-off,
and from experiments it seems the approach of this commit gives
a better result.
3 years ago
Michael Lutz 8bd2349ab6 Fix #8676, a2c3197f: GUI-visible settings may not be part of misc settings. 3 years ago
Michael Lutz 00c66e7096 Codechange: Allow early-load settings that are not misc settings. 3 years ago
translators 8f5b8fd769 Update: Translations from eints
german: 2 changes by Wuzzy2
slovak: 5 changes by FuryPapaya
dutch: 4 changes by LouisDeconinck
spanish: 1 change by MontyMontana
3 years ago
Patric Stout 6de188d025
Fix 52317bb7: [SDL2] ensure we don't try to blit out of bounds (#8684)
During resizing, there can still be dirty-rects ready to blit based
on the old dimensions. X11 with shared memory enabled crashes if
you try to do this. So, instead, if we resize, reset the dirty-rects.

This is fine, as moments later we mark the whole (new) screen as
dirty anyway.
3 years ago
TELK 7e3ca2163d Update: Korean translation for v0.40.2 3 years ago
Jonathan G Rennison 66b9e80315 Version: Committing version data for tag: jgrpp-0.40.2 3 years ago
Yourself 310bb876a2 Add: new town council "indifferent" attitude
Closes: #184
3 years ago
Jonathan G Rennison ed9410aba9 Debug: Add house population and mail generation to debug window 3 years ago
Patric Stout 7bdb2e79ed
Fix: framerate window showed a slightly higher rate than actually measured (#8682)
The first point was counted, but also initialized as "last". As
such, it didn't add to "total", but did add to "count", which made
the "count" 1 more than the total actually represents.
3 years ago
translators c9bcc12265 Update: Translations from eints
korean: 2 changes by telk5093
indonesian: 11 changes by dimaspaf14
russian: 2 changes by Ln-Wolf
finnish: 3 changes by hpiirai
french: 4 changes by glx22
3 years ago
Jonathan G Rennison 5cd3136170 Fix: Autorenew failure advice due to bad refit being shown to all companies 3 years ago
Jonathan G Rennison 0d385c9688 Use 3rd party optional wrapper, always use local verison on Apple 3 years ago
Jonathan G Rennison 6089347833 Revert "Cleanup: src/3rdparty/optional was removed, also remove its licensing note. (#8567)"
This reverts commit 516e863395.
3 years ago
Jonathan G Rennison aaeba6887c Revert "Cleanup: use std::optional instead of custom implementation."
This reverts commit 484ea62a62.
3 years ago
Jonathan G Rennison cb5cd11b9a Fix AddressSanitizer complaining about LanguagePack deleter
See: 024a3f62
3 years ago
Jonathan G Rennison 84eef99eaa MinGW std:🧵 suppress redundancy warning for non-debug builds
See: #216
3 years ago
Jonathan G Rennison 73be35340d Fix refreshing of vehicle panel from vehicle updates
Regression from vehicle grouping changes
3 years ago
Jonathan G Rennison 667ca4d0a7 Add help info for gfx_debug and viewport_debug console commands 3 years ago
Joan Josep b7a1750863 Doc: Add labels to landscape grid description. (#8452)
(cherry picked from commit a18188ae90)
3 years ago
Jonathan G Rennison 8fc4f13672 Fix train speed not being set to 0 for timetabled wait at waypoint orders 3 years ago
Jonathan G Rennison efe382b35a If realistic braking can't be enabled, show an extra viewport on the blocking signal 3 years ago
translators db246b82ac Update: Translations from eints
korean: 2 changes by telk5093
german: 56 changes by Wuzzy2
finnish: 2 changes by hpiirai
catalan: 2 changes by J0anJosep
polish: 9 changes by yazalo
3 years ago
Owen Rudge d3b50b9c47 Fix: [Actions] Use vcpkg to provide libpng on macOS 3 years ago
Jonathan G Rennison aa85ebe51e Show warning icon in order window if there are timetable warnings 3 years ago
glx22 45e8b7a5bd Add: Allow translation of "(Directory)" and "(Parent directory)" 3 years ago
Tyler Trahan ce06b03fac
Fix: Stopped ships shouldn't block depots (#8578) 3 years ago
dP 91cc414588 Feature: [GS] Allow non-question type windows to have no buttons 3 years ago
milek7 751f595bb6 Fix: VkMapping declarations violated C++ ODR rule. 3 years ago
frosch 5a1fa18509 Change: move the 'road drive side' selection to settings tree, and give it the same 'basic' visibilty as 'signal side'. 3 years ago
frosch c71d0f5e7f Change: move townname generator selection to mapgen GUI. 3 years ago
frosch f513a807db Codechange: move non-GUI code to non-GUI source files. 3 years ago
frosch 4ce941bbc2 Codechange: turn a constant variable into a real constant. 3 years ago
frosch d17226910d Codechange: minor rearrangement of settings in random map and heightmap GUI. 3 years ago