Commit Graph

92 Commits

Author SHA1 Message Date
Tamás Bálint Misius
0f95ce82f8
Sanitize GameSave/SaveInfo/SaveFile ownership 2023-05-11 12:40:23 +02:00
Tamás Bálint Misius
416f84a1c4
Read stamps from stamps.json
... while retaining all the functionality of stamps.def.

Also fix stamp names encoding only 32 bits of the timestamp, migrate from stamps.def to stamps.json if the latter doesn't exist, delete both on migration to the shared data directory, rescan stamps at startup, and make rescanning a painless process in general by removing invalid entries and adding missing entires at the beginning of the list.
2023-01-27 09:27:33 +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
163203b321
Preprocessor purge round 17: easy parts of WIN, LIN, MACOSX, AND 2023-01-27 09:26:41 +01:00
Tamás Bálint Misius
746dbb0cba
Manage search model requests in SearchModel
Also make Client an ExplicitSingleton, and thus fix all known instances of Requests outliving RequestManager.
2023-01-27 09:26:41 +01:00
Tamás Bálint Misius
afda2826bf
Refactor preferences 2023-01-27 09:26:41 +01:00
Tamás Bálint Misius
f0ffa2eeb1
Preprocessor purge round 15: FONTEDITOR, RENDERER 2023-01-27 09:26:40 +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
e4c2ec5a00
Preprocessor purge round 2: #pragma once 2023-01-27 09:26:38 +01:00
Tamás Bálint Misius
ebb87a17c6
Unbundle bzip2 and jsoncpp, update tpt-libs
Also Disallow linking against non-C++ system Lua, unless configuring with -Dworkaround_noncpp_lua=true, add -Dworkaround_elusive_bzip2 and friends, and get rid of the -image_base hack for macos.
2022-10-20 23:15:49 +02:00
Tamás Bálint Misius
304cc3a47b
Move Read/WriteFile from Client to Platform 2022-10-05 19:55:04 +02:00
Tamás Bálint Misius
09c2704928
Add CAFile and CAPath config options, use mbedtls in static builds
This is how we'll handle systems where the cert bundle and cert directory is stored where mbedtls doesn't expect it.

Also update tpt-libs to get new curl and mbedtls.
2022-09-25 06:13:35 +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
jacob1
6e0ace2e4d
Add / move some filesystem methods to Platform.cpp 2021-06-26 00:58:37 -04:00
Tamás Bálint Misius
360297c338
Mesonification 2020-12-14 20:16:52 +01:00
Ian Bastos
4383de7ad5 Implement file drop handler (#666) 2019-07-24 00:04:41 -04:00
jacob1
fb06e0028b Add disable-network command line argument 2019-07-23 00:11:26 -04:00
Tamás Bálint Misius
0179cefc78
Flatten include trees 2019-04-20 15:36:11 +02:00
Tamás Bálint Misius
296b758193 Follow redirects and fix save loading by ptsave parameter 2019-03-18 23:50:38 -04: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
1864a8649d Turn RequestBroker::Get/SaveUserInfoAsync into a request derived from Download
Also move everything http_ into Download and DownloadManager and nuke RequestBroker.
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
mniip
ff27d69424 Switch from std::string to String/ByteString in most of the code
Also switch SimulationData from weird arrays to std::vector
2018-04-30 21:13:24 +03:00
jacob1
67bc12de97 Fix issue where TPT was bought by EA 2018-04-01 15:26:13 -04:00
jacob1
40d2850ff7 TPT has now gone free to play! Many elements are unlocked by default, but by using Powdercoins you can unlock new elements and promote your saves to front page! 2018-03-31 22:40:23 -04:00
jacob1
6efedcdd33 undo authors changes on ctrl+z, prevent excessive nesting 2017-07-15 16:21:16 -04:00
jacob1
8e5b0c760e Add logging inside saves which remembers which other saves material was taken from
The logging is saved inside the bson data in all online saves, local saves, stamps, and clipboard pieces. It is loaded back when reloading each of those.

See #474 for the format of the data. It is the same format for the bson data. Note that "links" is an array of objects. It can be recursive.

There is some effort to not duplicate information, we don't care if you loaded a stamp 10 times or if you are using the clipboard in your own save. Extra information is mostly not saved for your own stuff, only when you take material from other saves.

Press ctrl+a in debug builds to show what info it is currently saving in Client. Also enabled in snapshots for now.

There is one unrelated change in here, which fixes a crash pointed out by QuanTech. It was also save related and it was too close to the other changes to separate it into another commit. It fixes a crash when saving signs with invalid unicode. the BSON library doesn't like this, it was returning an error but we ignored it, which caused a crash. It now notices those errors. I also had to update several Serialize calls to check if it actually returned save data, or else it then would have started crashing there instead.
Also some debug prints were removed
2017-07-13 00:19:35 -04:00
jacob1
40c2ff27b0 Test using DownloadManager from my mod instead of RequestBroker
The crash when opening saves on mac is definitely something to do with the threading, and i'd rather just test this first to see if it fixes it

Copied from my mod almost entirely as-is, with the changes to HTTP.cpp included, also added locks into Download.cpp even though it is probably overkill
2016-03-27 11:41:36 -04:00
jacob1
5c1cc0c0fb rewrite powder.pref handling to use jsoncpp instead of cajun
cajun is a hard to use library with many necessary features missing. It also has been causing the windows version, and probably the mac version, to randomly crash.

Other json stuff still uses cajun (TODO: remove)
2016-01-25 22:30:43 -05:00
jacob1
908f60d47a support alternate update servers, and optional changelogs 2015-09-26 11:47:51 -04:00
jacob1
9f9fef6cad Add new function ParseServerReturn, try to properly display all http errors
Also fix crash with invalid ptsave link, and fix some cases where it wouldn't ever tell you it errored
2015-08-29 13:14:17 -04:00
jacob1
cee08b2024 On first run, set scale to 2 if screen size is large enough 2015-05-14 23:22:20 -04:00
jacob1
54d985f975 gcc warning fixes (up to lua files) 2015-01-16 17:26:13 -05:00
jacob1
b2954a7f0a Publish button in browser (replaces Unpublish button when unpublished saves are selected)
Works using the html page and isn't really the best way until @simtr implements Delete.json&Mode=Publish or something
2015-01-10 18:18:28 -05:00
jacob1
1289465a2c update stamps.def when deleting stamps, missing stamps show up as "error loading save" and can be deleted 2014-11-11 23:48:36 -05:00
jacob1
6463d04f6c fix a few of the most spammy warnings (there are still hundreds of warnings though)
TODO: actually fix all the warnings
2014-10-23 00:42:13 -04:00
mniip
4b914d12c2 fix tags order (#141) 2013-11-12 09:16:17 +04:00
Simon Robertshaw
ddd51aed3d Async Request methods for SaveInfo and SaveData 2013-07-28 10:30:01 +01:00
Simon Robertshaw
3edee42971 Call OnResponseReady with an identifier for the request, add a WebRequest class 2013-07-27 12:38:52 +01:00
jacob1
f4432b4759 give an error when a local save isn't saved properly, instead of exiting and pretending it worked 2013-07-15 14:59:15 -04:00
Simon Robertshaw
81a34222d1 POST requests for APIRequest, allow saving user details from within the game, Asynchronous HTTP POST 2013-03-21 21:49:06 +00:00
Simon Robertshaw
f05044ab68 APIRequest, Aync methods for client, Profile edit/viewer (WIP) 2013-03-16 17:45:18 +00:00
Simon Robertshaw
86b7a11800 Make thumbnailbroker more general purpose, image requests for requestbroker, avatars in previewview 2013-03-12 21:17:19 +00:00
Simon Robertshaw
e6bca489c9 AvatarButton/holder, rename ThumbnailBroker for more general purposes 2013-03-10 18:08:34 +00:00
jacob1
c06afff0a5 selecting a stamp moves it to the front of the list again (unless you hold ctrl)
attempted to do MVC right?
2012-12-18 12:20:52 -05:00
Simon Robertshaw
38862a78d1 New Conversation notifications 2012-12-09 12:05:27 +00:00
jacob1
3a29fc0268 Save local saves as current name option (overwrites them automatically). Fix filename not showing when first saving a local save 2012-10-26 15:15:38 +01:00
Simon Robertshaw
b35fd0298c Flush stamps list to file when deletins, Rename stamps undelete function to rescan 2012-10-05 15:46:42 +01:00