6289 Commits

Author SHA1 Message Date
Tamás Bálint Misius
d1c0680a54 Snapshot 381 snapshot-381 2025-01-30 22:56:36 +01:00
Tamás Bálint Misius
ce2f36c0a9 Remove dt 2025-01-30 22:50:03 +01:00
Tamás Bálint Misius
fa4f2ae54f Do simulation rendering at a lower rate than UI rendering
Specifically, either at the UI rendering rate or the FPS cap, whichever is lower, or simply at the UI rendering rate if there is no FPS cap.

Also, always render the UI at the screen refresh rate; importantly, even when the simulation is unpaused. Unpausing the simulation would lower the UI rendering rate to the FPS cap to prevent rendering from being too out of sync with the simulation, but this is now impossible.

Also stop displaying 0 FPS when the simulation is paused. This now closely matches the way FPS used to be displayed, i.e. display simulation tick rate when the simulation is unpaused, display renderer tick rate when it's paused, and don't display SDL tick rate anywhere.
2025-01-30 22:50:03 +01:00
Tamás Bálint Misius
3d2d8f4936 Prevent our colour codes from making it to stdout 2025-01-26 10:25:32 +01:00
Tamás Bálint Misius
3ee6741fcb Fix PIPE rendering garbage when carrying PIPE
Broken since 0f1218df0c where I neglected to port a memset over.
2025-01-25 23:59:19 +01:00
Tamás Bálint Misius
c97a43b58f Fix some tick schedule bugs
Client wouldn't get ticked if the simulation was paused >_> Also fix some old bugs that would allow weird delay values to be derived when tick schedule was given weird target FPS values.
2025-01-25 21:22:19 +01:00
Tamás Bálint Misius
bdcc753dff Fix misleading message about updates
Specifically, when TPT is actually configured at build time to ignore updates.
2025-01-25 21:18:42 +01:00
Tamás Bálint Misius
53230ee102 Disable fake newer version check for stable builds
It's really annoying when a stable workflow fails because nextVersion didn't get updated, whereas we actively seek out this variable when planning a new version between stables.
2025-01-25 19:38:32 +01:00
jacob1
2b163b4b5d Version 99.1 (Build 380) v99.1.380 2025-01-25 13:18:58 -05:00
jm211
b5872657c5 Fix ACID sometimes eating one more particle than allowed (#982) 2025-01-25 00:19:45 -05:00
jacob1
04dac4c020 Very safe optimizations 2025-01-24 22:28:50 -05:00
Tamás Bálint Misius
e8921ca6db Separate emscripten debug info 2025-01-24 11:55:34 +01:00
Tamás Bálint Misius
cb65cf8ffd Fix crash on startup on emscripten
Parts::data was never initialized, and this mattered on emscripten, even though it didn't matter anywhere else.
2025-01-24 01:19:24 +01:00
Tamás Bálint Misius
ea93bae302 Make emscripten work with draw limits 2025-01-23 23:59:55 +01:00
Tamás Bálint Misius
e87f404d90 Provide a default refresh rate when it cannot be queried 2025-01-23 23:31:38 +01:00
Saveliy Skresanov
79f2bbcae5 Fix LITH breaking temperature limits. 2025-01-23 19:50:46 +07:00
Saveliy Skresanov
3da994c3b8 Prevent heat convection in liquids looking farther than 1px away. 2025-01-23 01:19:07 +07:00
Saveliy Skresanov
2e27cbfddf Fix "far away" air heat and velocity code working correctly only in one direction. 2025-01-23 00:50:02 +07:00
Tamás Bálint Misius
c32166efdc Make the fps cap a per-view property
And have ui.fpsCap set only GameView's fps cap. This is the closest we'll be getting to the fps cap being true to its name (i.e. actually controlling frames per second, rather than ticks per second) with this iteration of the user interface. Also disable SRT if the sim is paused. Together, these changes fix some old problems such as non-sim user interfaces burning CPU for no reason when the fps cap is removed.
2025-01-22 17:22:10 +01:00
Tamás Bálint Misius
6576872074 Remove emscripten-only vsync fps limit type
This was ill-designed: "vsync" should be a draw cap limit, if anything. We can't currently think of a way to allow both vsync and a different arbitrary fps limit without banishing the simulation to another thread, so this gets shelved now.
2025-01-22 16:15:17 +01:00
Tamás Bálint Misius
99f3aabbf6 Don't tick the entire user interface every sim tick
So now user interface ticks (event processing, animation, etc) happen in tandem with drawing the user interface. This happens to solve some weird lag issues on linux with ibus, and who knows how many other similar performance problems we're not aware of.
2025-01-22 15:47:39 +01:00
Tamás Bálint Misius
7aee6b77e3 Allow http.post to specify form part content type 2025-01-18 21:37:28 +01:00
Tamás Bálint Misius
48fb16292a Fix some warnings 2025-01-17 20:55:44 +01:00
Tamás Bálint Misius
8cde7a85ac Add support for aarch64 on linux 2025-01-17 20:44:14 +01:00
Saveliy Skresanov
8ebb38c281 Prevent a potential division by zero. 2025-01-17 23:30:39 +07:00
Saveliy Skresanov
f7bedb3b5f Move velocity line to the debug mode DEBUG_AIRVEL. 2025-01-17 22:38:30 +07:00
Tamás Bálint Misius
fa8237218d Snapshot 379 snapshot-379 2025-01-16 12:59:23 +01:00
Tamás Bálint Misius
165ea90d6a Give visual indication of vote/fav requests being in progress 2025-01-16 12:58:24 +01:00
Tamás Bálint Misius
09ba266165 Fix some cases of bogus missing element warnings
Namely, the ones caused by element numbers already invalid at the time of saving. This makes it impossible to intentionally have invalid element numbers in the low bits of properties listed in CarriesTypeIn, but these bits are considered to be under TPT's control anyway, so this is ok.
2025-01-15 19:08:57 +01:00
Tamás Bálint Misius
2b0ee9392c Make a copy of particles before saving them and work off that
This is a minor refactor before the next commit; the significance of that commit would get lost in this noise otherwise.
2025-01-15 19:01:27 +01:00
Tamás Bálint Misius
a7d73102d6 Fix ptsave: being handled before autorun.lua
This would leave saves opened this way missing elements, but also not produce a warning in the preview, because by that time that preview is made, autorun.lua has been run.
2025-01-15 00:07:34 +01:00
Saveliy Skresanov
452849df74 Draw air velocity line near cursor when air velocity mode and debug HUD are on. 2025-01-13 22:38:43 +07:00
Saveliy Skresanov
dbfeca5bd0 Make ambient heat drag effects weaker. 2025-01-13 21:54:22 +07:00
Saveliy Skresanov
8b8a6fa0b9 Remove old latent heat code, but leave LATENTHEAT switch and element
property in case if we do a proper implementation later.
2025-01-13 19:00:37 +07:00
Tamás Bálint Misius
9f038416cc Allow disabling the automatic update check at startup
Some people really don't like when an app immediately phones home the moment they open it. This of course means losing automatic notification and motds but oh well.
2025-01-12 16:38:51 +01:00
Tamás Bálint Misius
6848c3542f Snapshot 378 snapshot-378 2025-01-10 16:18:47 +01:00
Tamás Bálint Misius
4c2c95c72b Fix more missing elements in some older saves not showing up as such
This implements some the TODO from the previous commit, efd3a80611.
2025-01-10 16:12:45 +01:00
Tamás Bálint Misius
efd3a80611 Fix missing elements in some older saves not showing up as such
Broken since a38e1c48bb, where older saves were allowed to work off the legacy identity mapping of save numbers to element numbers. The problem was that this could leave even those element numbers mapped that were associated by the palette with unknown element identifiers. These elements would then fail to spawn but would not show up as missing in the save preview.

Still not perfect, see the TODO in the diff.
2025-01-09 16:14:49 +01:00
Tamás Bálint Misius
d83b49a1ed Update tpt-libs
Like 5103db8288, this addresses the upload issues experienced on windows, but this time with the official fix from libcurl developers; see the relevant tpt-libs commit.
2025-01-07 21:34:47 +01:00
Tamás Bálint Misius
30942137c7 Fix SPRK sometimes being impossible to paste
Broken since 462460b6b3, where Load started using create_part with p == -3, running all sorts of checks against SPRK and sometimes failing.
2025-01-07 16:34:52 +01:00
Tamás Bálint Misius
59f34a1526 Fix pasting bailing early when any particle fails to spawn
Broken since 462460b6b3, where the break in the old code was thoughtlessly moved to the new code, the issue being that create_part failing doesn't necessarily mean that we're out of particle IDs. I don't think pasting is a hot enough operation for such optimizations to be necessary, so continue should be fine.
2025-01-07 16:32:42 +01:00
Tamás Bálint Misius
4701766ec3 Fix some particles flickering when SRT is enabled
Broken since c645269c86, where we started giving the renderer thread only the live part of Simulation::parts. Or at least intended to, but ended up copying whatever amount we should have copied the previous time around. The flickering was hard to notice because the number of particles rarely changes much between frames.
2025-01-07 14:55:51 +01:00
Tamás Bálint Misius
462460b6b3 Manage particle lifetime with create/kill_part only
This should fix the long-standing issue of Create/ChangeType callbacks not being called in all cases when particles were created or changed type.

I'm eagerly awaiting reports of the horrendous crashes this will inevitably cause.
2025-01-05 20:40:58 +01:00
Tamás Bálint Misius
3fe5dcc447 Fix crash on exit while there are Lua components visible
Broken since 02b679aec3 and extremely similar to 74386631e0, which makes sure that both LSI and GameView are alive when destroying Lua windows: in this case, they both need to be alive when destroying components attached to the main window. Also, the main window has to exist still.
2025-01-05 10:38:09 +01:00
Tamás Bálint Misius
f7753ff76f Fix create_gain/cherenkov_photon leaving particles partially initialized 2025-01-03 20:04:09 +01:00
Tamás Bálint Misius
afe4a26299 Make SRT work with event.AFTERSIMDRAW
AFTERSIMDRAW can be composited on the main thread on top of the frame that got rendered in parallel, so there is no reason to have it hinder SRT. This cannot be done with BEFORESIMDRAW, which is applied to the frame before the rest of the sim is rendered. If we had proper associative compositing with pre-multiplied alpha, it could be, but this doesn't really work well with the colour space we're using right now (sRGB, with u8 components).
2025-01-01 21:55:37 +01:00
Tamás Bálint Misius
87cf63dbcc Disable steam builds for mods and ordinary official workflows
Ordinary i.e. not stables, betas, or snapshots.
2025-01-01 16:51:49 +01:00
Tamás Bálint Misius
6dd0e9533f Fix Rect::operator & (intersection)
Completely neglected to normalize the Rect's size. Somehow completely asymptomatic unless looking at the favourites menu if it's too long to fit on the screen, on MacOS. Yeah.

Another in the series of fixes for easily avoidable problems introduced in c2bb777212 by my infinite wisdom >_>. The previous (and thankfully, first) commit in the series is 8cab4ab738.
2024-12-30 15:22:54 +01:00
jacob1
a32f0fe178 Version 99.0 (Build 377) v99.0.377 2024-12-24 22:50:36 -05:00
jacob1
64af43eccd Build number 375 -> 376 (new beta) v99.0.376b 2024-12-22 23:36:20 -05:00