Commit Graph

111 Commits

Author SHA1 Message Date
Tamás Bálint Misius
36800a76cd
Complain about missing custom elements when opening online saves
The complaint manifests as a button in the bottom right corner of the half-size preview.

Also convert the loading error popup to such a button.
2023-10-15 13:30:28 +02:00
Tamás Bálint Misius
374209eebe
Remove a few outdated windows-only preprocessor hacks 2023-10-15 12:04:22 +02:00
Tamás Bálint Misius
3388094110
Fix failing to change the favourite status of a save crashing the game
I have no idea where the code that used to handle PreviewModelException went but it's pointless anyway; out the window it goes.
2023-08-29 17:10:18 +02:00
Tamás Bálint Misius
7365d7e11c
Emscripten: Add Platform::MarkPresentable
So the website knows when to swap the thumbnail with the canvas of the TPT instance
2023-08-23 00:42:34 +02:00
Tamás Bálint Misius
6ceb51b408
Handle ptsave urls with GameController 2023-08-22 23:51:17 +02:00
Tamás Bálint Misius
96dea30480
Emscripten: Remove all other blocking prompt calls 2023-08-22 00:26:31 +02:00
Tamás Bálint Misius
c73fa1bcdd
Prevent almost all HTTP requests from blocking
The ones that remain blocking are the ones that run on different threads; see Task, yet another big mess to clean up.
2023-06-10 19:19:53 +02:00
Tamás Bálint Misius
c2f8a7df25
Fix crash on exit when multiple windows are open
Controllers would delete their Views even if they failed to pop them from the window stack.

Have I mentioned that I really hate our MVC?
2023-06-10 18:56:05 +02:00
Tamás Bálint Misius
ee87f0a0a7
Fix vote bars in previews touching the enclosing rects 2023-05-13 13:21:05 +02:00
Tamás Bálint Misius
a9d231587c
Show save button thumbnail in the preview if it's available
This is good enough for now but also more limited than I'd like because if the thumbnail arrives (gets rendered or downloaded) later than the preview is opened, it's never shown.
2023-05-13 13:21:05 +02:00
Tamás Bálint Misius
0f95ce82f8
Sanitize GameSave/SaveInfo/SaveFile ownership 2023-05-11 12:40:23 +02:00
Tamás Bálint Misius
60a7ce1aae
Use _rgb literals where possible 2023-04-30 14:22:56 +02:00
Tamás Bálint Misius
410dc71f42
Fix some deprecation warnings
Namely:

 - [[deprecated("Use DrawPixel/BlendPixel")]]
 - [[deprecated("Use DrawLine/BlendLine")]]
 - [[deprecated("Use DrawRect/BlendRect")]]
 - [[deprecated("Use DrawFilledRect/BlendFilledRect")]]
2023-04-30 14:06:54 +02:00
Tamás Bálint Misius
9fbb780728
Fix some deprecation warnings
Namely:

 - [[deprecated("Use BlendChar")]]
 - [[deprecated("Use AddChar")]]
 - [[deprecated("Use XorPixel")]]
 - [[deprecated("Use AddPixel")]]
 - [[deprecated("Use XorLine")]]
 - [[deprecated("Use XorDottedRect")]]
 - [[deprecated("Use XorImage")]]
 - [[deprecated("Use BlendEllipse")]]
 - [[deprecated("Use BlendFilledEllipse")]]
 - [[deprecated("Use DrawFilledRect (beware off by 1)")]]
2023-04-30 11:27:58 +02:00
Tamás Bálint Misius
f5cbc30d85
Fix some deprecation warnings
Namely:

 - [[deprecated("Use BlendTextOutline")]]
 - [[deprecated("Use BlendText")]]
 - [[deprecated("Use BlendImage")]]
 - [[deprecated("Use BlendImage")]]
 - [[deprecated("Use TextSize().X - 1 (yes this is very bad code eww)")]]
2023-04-29 15:50:34 +02:00
Tamás Bálint Misius
eee42b2ea3
Fix RNG usage
Mostly boils down to having graphics functions use Renderer's RNG, update and similar functions Simulation's.
2023-04-15 18:22:03 +02:00
mniip
b26a1b4a88 VideoBuffer pointer correctness 2023-04-05 14:52:20 +02:00
mniip
7f84887f6d Refactor things referencing VideoBuffer internals 2023-04-05 02:30:05 +02:00
mniip
e5af4dab68 Refactor resize-related code 2023-04-05 02:30:05 +02:00
mniip
e93db9c06a RasterDrawMethods CRTP, PlaneAdapters in VideoBuffer, Graphics, and Renderer 2023-04-05 02:29:35 +02:00
Tamás Bálint Misius
159d0eb4b7
Group platform files into their own directory 2023-01-27 17:31:40 +01:00
Tamás Bálint Misius
4f0c365e05
Preprocessor purge round 19: Split and minimize usage of Config.h
Also mostly banish it from other headers, and shuffle standard header includes to minimize cross-contamination between headers.
2023-01-27 09:27:32 +01:00
Tamás Bálint Misius
91a9973bfd
Refactor HTTP
Request ownership is no longer flaky. Requests are now owned by the code that makes requests, and Requests and the RequestManager co-own RequestHandles. RequestManager disowns a RequestHandle if it's done with it or if Request code reports that it's no longer needed.

All libcurl code has been moved to RequestManager. This is nice because once NOHTTP is removed, we can add any number of RequestManager implementations, for example one for Android.

Client outliving RequestManager is still a problem, this will have to be addressed later.
2023-01-27 09:26:40 +01:00
Tamás Bálint Misius
b2b06bf009
Preprocessor purge round 3: spaghetti headers 2023-01-27 09:26:38 +01:00
Tamás Bálint Misius
e4c2ec5a00
Preprocessor purge round 2: #pragma once 2023-01-27 09:26:38 +01:00
Tamás Bálint Misius
59354731df
Remove all PTI code, use libpng to load avatars and thumbnails
Also write PNGs with libpng, and BMPs with SDL, and have the renderer only generate a large PNG thumbnail, and disable HTTP/2 multiplexing for now so we don't get banned when loading avatars.

simon pls reply to the stupid emails already.
2022-10-23 20:21:05 +02:00
Tamás Bálint Misius
04e899e824
Use std::vector<char> consistently for file operations
This made it possible to get rid of two GameSave constructors.

Also clean up Client::LoadSaveFile, Client::ReadFile, and Client::WriteFile in the process, and remove unused SaveRenderer::Render
2022-09-08 06:45:25 +02:00
Tamás Bálint Misius
513d2cae3e
Update tpt-libs
Also restructure meson.build and the ghactions workflow a bit, and enable -ffunction-sections and -fdata-sections.

Note that starcatcher uploads have not been tested and most likely don't work.
2022-09-03 07:01:21 +02:00
jacob1
d1016cf58d
move Platform.cpp to common/, seems to fit in a little better there 2021-06-26 00:58:37 -04:00
Tamás Bálint Misius
d8e641b977
Fix dangling pointer smuggling in PreviewModelException 2021-05-22 14:53:45 +02:00
Tamás Bálint Misius
2a23a38120
Normalise GetPrefs 2021-04-18 12:23:31 +02:00
Tamás Bálint Misius
4b7e85c2fb
Fix a metric ton of MSVC warnings 2021-02-15 21:24:44 +01:00
Tamás Bálint Misius
360297c338
Mesonification 2020-12-14 20:16:52 +01:00
Tamás Bálint Misius
fe15566d2c
Only change modes when the lock is being held, see 2333786 (fixes #700) 2020-03-23 23:08:52 +01:00
Tamás Bálint Misius
7330d0412a
Fix random warnings from clang 8.0.0 2020-01-21 14:43:22 +01:00
Tamás Bálint Misius
7629c98f22
Get rid of tiny callback classes, round No.1
I say round No.1 because I'm not sure if there are any left.
Hopefully there aren't.
2019-12-16 21:20:33 +01:00
Tamás Bálint Misius
23337862a4
Use current rendering modes when placing a save (fixes #446) 2019-07-22 10:38:13 +02:00
Tamás Bálint Misius
0179cefc78
Flatten include trees 2019-04-20 15:36:11 +02:00
Tamás Bálint Misius
5810a19dbc
Get GetUserName out of the way on Windows 2019-04-17 01:16:45 +02:00
Tamás Bálint Misius
263f756a20 Add STATICSCHEME macro to be used with requests to STATICSERVER
Make up your mind, jacob1!
2019-03-18 23:50:38 -04:00
Tamás Bálint Misius
5bc3c03082 Change scheme to https everywhere 2019-03-18 23:50:38 -04:00
Tamás Bálint Misius
3d22c1ed4e Fix dumb things that aren't necessarily lethal but are eyesores 2019-03-18 23:50:38 -04:00
jacob1
55e6074942 use override in all possible places 2019-03-09 21:07:32 -05:00
Tamás Bálint Misius
30c7f6ded7 Rename Download* to Request* and move HTTP stuff inside src/client/http 2019-03-07 22:56:08 -05:00
Tamás Bálint Misius
53f2018c7e Turn RequestBroker::RetrieveAvatar into a request derived from Download
Also add http namespace because classes clashed a lot.
2019-03-07 22:56:08 -05:00
Tamás Bálint Misius
8b5cf394e0 Replace http_* calls with Download calls in non-RequestBroker stuff 2019-03-07 22:56:08 -05:00
jacob1
87fb94ce94 Delete unused Thumbnail handling code 2018-11-27 22:13:29 -05:00
jacob1
e5230b5b9f upgrade to SDL 2
Still currently in process, there are some issues:
Windows version doesn't work, mac version might not work, opengl might not work
Icon doesn't work (on Linux at least)
Lua will need some changes, there are some sdl 1.2 hacks in there
When entering fullscreen, the window loses focus
When holding down mouse out of bounds, mouse move events stop being sent
When letting go of mouse out of bounds, mouseup event doesn't take into account double scale mode
Clicking on startup without moving mouse will draw at 0,0 for a frame
Renderer probably won't compile because USE_SDL doesn't entirely work

... and maybe others

Some nice things were done though:
no more blit2, sdl can do the scaling itself
3d effect removed, no reason to support this joke any longer
No need to support copy/paste ourselves, sdl does it now
text handling done much better now, separate events for key presses and text input
when a new window is shown, all events ignored until next tick (ignore textinput event if window shown from key press event like console)
2018-05-25 21:19:44 -04:00
mniip
30dd49235d Add ToLower/ToUpper 2018-05-14 05:12:32 +03:00
mniip
f8586ea3a2 Remove ByteString::Stream 2018-05-04 23:10:39 +03:00