Commit Graph

207 Commits

Author SHA1 Message Date
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
3e3ee8a722
Convert hmap data to gradients 2022-12-25 11:09:08 +01:00
Tamás Bálint Misius
7bfce3e4a8
Fix local browser offering to open broken saves
It wouldn't actually open them, it'd just exit back to the currently open save. It's better to tell the user the reason why the save is broken instead.
2022-12-18 15:32:45 +01:00
Tamás Bálint Misius
9e2185c8a2
Keep thumbnails of SaveButtons with lazily loaded SaveFiles 2022-12-18 10:38:37 +01:00
Tamás Bálint Misius
1beaebb928
Fix nullptr deref in SaveButtons without an associated SaveFile
I've seen the nullptr deref, but I don't see how it's possible at all. A condition for file->LazyUnload to be called is for SaveButton::wantsDraw to be false, but for that to happen, SaveButton::Tick has to be called after a call to SaveButton::Draw to reset it to false, and then *again* for it to see it being false on entry.

Whatever, the bug is genuinely there and is bad, and easy to fix, no need to figure out in what way it is bad exactly.
2022-12-15 07:46:41 +01:00
Tamás Bálint Misius
2cd1f7bad3
Fix local browser handling large amounts saves badly
So instead of loading every save in sight and rendering the thumbnails for them too, SaveButtons will only do this when they are actually visible, and unload saves and thumbnails when they are not.

Also remove the "Rendering thumbnails" progress bar, which did absolutely nothing.
2022-12-14 19:04:59 +01:00
Tamás Bálint Misius
a3a874f4d6
Get png avatars from the static server
Also restore concurrent connection / stream counts, and fix a bug that would cause AvatarButtons to try to fetch avatars before they knew what name they belonged to. I apparently broke this in the first PNG commit.
2022-10-24 22:12:10 +02: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
715333295b
Add clip rect feature to Graphics and gfx.setClipRect
Also retire the separate VideoBuffer in Panel and hiding ToolButtons in the GameView ToolButton panel in favour of clip rects.
2022-10-11 20:47:39 +02:00
Tamás Bálint Misius
f18bd6553f
Remove long defunct OpenGL code paths 2022-10-11 20:11:14 +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
23a368dbf0
Clean up DirectionSelector and surrounding code
I really should have done this before merging it >_>

Also fix a few warnings.
2022-08-23 13:47:45 +02:00
catsoften
6aa68adbf4
Add custom gravity mode and replace hardcoded gravity interactions (#820)
Co-authored-by: Tamás Bálint Misius <lbphacker@gmail.com>
2022-07-31 08:19:16 +02:00
Tamás Bálint Misius
656ace10c6
Add support for MacOS on ARM
Also build with real -no-pie on ghactions, and fix SDL include directories (it's probably blind luck that they worked correctly on most systems).
2022-02-18 18:56:41 +01:00
Tamás Bálint Misius
ce84e60074
Fix a few warnings
I found these looking at ghactions output.
2021-12-09 09:11:47 +01:00
Tamás Bálint Misius
6653080400
Fix cursor placement in textboxes with single-character text
TextWrapper used faulty logic for converting local points to wrapped text indices: a check on curr was skipped if next was end-of-range.
2021-10-17 13:59:35 +02:00
Tamás Bálint Misius
688dc272e4
Update tpt-libs
Also remove duplicate momentumScroll member from Engine.
2021-08-22 12:42:33 +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
jacob1
3c9882598c
When air temp textbox is defocused, correct out of range temperatures 2021-06-18 23:07:17 -04:00
jacob1
fca0c62cd7
Remove "Auto Draw Rate" option, there is no reason to turn this off
It can still be turned off or adjusted via Lua, though
2021-05-10 00:07:52 -04:00
Tamás Bálint Misius
2a23a38120
Normalise GetPrefs 2021-04-18 12:23:31 +02:00
Tamás Bálint Misius
1681ca77d8
Add Lua support for composition 2021-04-02 10:21:54 +02:00
Tamás Bálint Misius
3dbf6d7810
Use SDL text input correctly, add basic composition support 2021-04-02 10:21:52 +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
7724a60467
Compress font data 2020-12-25 19:46:13 +01:00
Tamás Bálint Misius
360297c338
Mesonification 2020-12-14 20:16:52 +01:00
Tamás Bálint Misius
18dfd6de86
Copy all text in Label, Textbox, etc. if none is selected (fixes #720)
This is more in line with what Cut does in Textboxes when nothing is selected.
2020-10-11 21:13:29 +02:00
Vladimir
f137bad7f8
Limit redrawing frequency (#693)
Co-authored-by: Tamás Bálint Misius <lbphacker@gmail.com>
2020-10-11 11:58:52 +02:00
Tamás Bálint Misius
bdcf486a8d
Refactor MomentumScroll to be more in line with other interface prefs 2020-10-10 21:57:29 +02:00
grufkork
02b26a9da3
Change ScrollPanel scroll behaviour
Small change to replace the momentum-based scrolling with the more common method of scrolling with each scroll wheel step.
2020-10-08 14:36:11 +02:00
nixls
d6de7e2ba8
Make Copy and Cut buttons disappear when no text is selected (#730) 2020-10-04 23:13:58 +02:00
Tamás Bálint Misius
efc693bf43
Fix initial mouse position and unsafe SDL_Event union access 2020-08-23 00:25:43 +02:00
Tamás Bálint Misius
5c190c1a7a
Remove gaps between lines of selected text 2020-07-01 16:18:35 +02:00
Tamás Bálint Misius
21b9e1a645
Allow everything Unicode except noncharacters and control characters
Thanks mniip, see a113cbe.
2020-03-12 09:49:45 +01:00
Tamás Bálint Misius
a113cbe57d
Don't allow literally *all* code points to be entered
Oops, my bad. See a2a8c876b.
2020-03-10 11:46:06 +01:00
mniip
fd5867b57d Merge branch 'font-latin-1' 2020-03-10 01:28:57 +03:00
mniip
6607b7e845 Make font editor more convenient 2020-03-10 01:00:41 +03:00
Tamás Bálint Misius
c40a6bf13f Allow non-ASCII text to be pasted into textboxes
There is no end to the ASCII-isms >_>
2020-03-09 23:44:18 +03:00
Tamás Bálint Misius
a2a8c876b3 Finalize latin-1 supplement changes
Swap both versions of O with acute and grave accents
Fix a few ASCII-isms
Fix intro text; the latin-1 changes broke the line under The Powder Toy
2020-03-09 23:44:18 +03: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
51e5f2bffa
Add option to make deco tools use sRGB colour space
Currently only affects the smudge tool. I'd have to look
into the others to decide if they need chaging. They probably
do though, they're not exactly intuitive.

I also fixed a bug with DropDowns where their popup would
show up in some random place if the parent window was a
ScrollPanel, and changed a few alignments here and there.
Notably, DropDowns now align the popup so that the currently
selected item is vertically centered and doesn't move when
the popup is opened.
2019-09-21 21:37:34 +02:00
Tamás Bálint Misius
0bdf7ad914
Prevent newlines from being needlessly appended (fixes #667)
That wrap_if_needed call would sometimes cause empty newlines
to appear under otherwise already well-wrapped blocks of text.

The idea is that whenever a new character is about to be appended,
the current line is checked for being too long with that character
included, and the character is only actually appended after the
wrapper makes sure that appending it won't overflow the line by
inserting a newline. This means that wrap_if_needed is only ever
called before pushing the current character to records, never
after, as was the case here.
2019-08-02 16:58:39 +02:00
Ian Bastos
4383de7ad5 Implement file drop handler (#666) 2019-07-24 00:04:41 -04:00
Tamás Bálint Misius
8223e06670
Fix selection background of formatted labels
The metrics of the rectangles comprising the selection background
were calculated based on the selected range and the unformatted
text, so these rectangles would be off when the formatted text
was different (i.e. had any formatting).
2019-07-19 11:28:51 +02:00
Tamás Bálint Misius
34b4665d4b
Purge the last traces of PositionAtCharIndex and CharIndexAtPosition
Also fix a bunch of other ugly things.
2019-07-19 09:47:15 +02:00
Tamás Bálint Misius
7c793020c6
Fix highlighting in ConsoleView 2019-07-19 09:22:55 +02:00
Tamás Bálint Misius
bea4576d89
Allow wrapping after certain punctuation characters 2019-07-19 08:58:47 +02:00
Tamás Bálint Misius
4bb85578a8
Fix text wrapping (fixes #166)
This breaks the syntax highlighting in ConsoleView.
I haven't yet thought of a way to fix that properly,
ideas anyone?
2019-07-19 02:53:54 +02:00
Tamás Bálint Misius
e1b3ddcbcb
Nuke using namespace std; 2019-04-20 17:03:23 +02:00
Tamás Bálint Misius
0179cefc78
Flatten include trees 2019-04-20 15:36:11 +02:00
Tamás Bálint Misius
2e76b10619
Use C++11 threads 2019-04-17 00:23:57 +02:00
Tamás Bálint Misius
06e2836726
Fix Lua reference leaks (fixes #638) 2019-04-09 15:28:40 +02:00
jacob1
55e6074942 use override in all possible places 2019-03-09 21:07:32 -05:00
Tamás Bálint Misius
d3fe7e39a5 Turn ThumbnailRendererTask into an AbandonableTask 2019-03-09 20:40:11 -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
af4d022087 Add RequestMonitor 2019-03-07 22:56:08 -05:00
Tamás Bálint Misius
3a76a3a514 Turn RequestBroker::RetrieveThumbnail into a request derived from Download
Also start moving RenderThumbnail out of RequestBroker into its own Task. Add mutex to SaveRenderer to guard Render().
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
jacob1
772148900e Fix stamp and local save thumbnails being stretched 2019-03-03 23:45:33 -05:00
jacob1
d021cbb5cf USE_SDL is no longer used 2019-03-01 09:58:07 -05:00
jacob1
dd3d9dfaad change a bunch of virtual to override (should fix annoying mac compile warnings) 2019-03-01 00:07:31 -05:00
jacob1
08cd32abbe use scancode instead of keycode for most keyboard shortcuts
keys like 0-9, tab, enter, ctrl/shift/alt, ins, and del are still looking for keys instead of scan codes, just in case (but I expect them to be always equivalent anyway)
2019-02-19 21:46:56 -05:00
jacob1
0c6ce20880 Add "Force Integer Scaling" option for fullscreen
Also:
recreate the window when enabling resizable window, same workaround I applied to my mod for jacob1/The-Powder-Toy#24
recreate the window when toggling fullscreen, to work around some bugs where the window is sized incorrectly or the mouse position doesn't match where the cursor is
Don't capture mouse cursor when this is a debug build
2019-02-18 22:18:29 -05:00
jacob1
edba703aab don't allow right click -> select a save when you aren't logged in 2019-02-07 23:30:09 -05:00
Tamás Bálint Misius
5a57c37ae9 Make close event trigger consistently 2018-11-20 21:06:59 -05:00
jacob1
53f6807ea6 make fps update less often in hud 2018-06-04 23:48:40 -04:00
mniip
48a333f0de Fix some scrolling issues 2018-05-30 13:35:44 +03:00
jacob1
743ec98e3f add resizable window and original fullscreen options 2018-05-25 21:19:44 -04:00
jacob1
7ac7eec6cf more sdl2 fixes:
don't recreate window every scale / fullscreen change
better renderer handling, input scaling no longer needed even if window resizing is enabled
load/save window position (replaces old windows code to do this)
calculate initial mouse position on startup because sdl no longer does this for us
2018-05-25 21:19:44 -04:00
jacob1
bd8550c2d5 fix a few more sdl 2 bugs:
mouse movement captured outside the window when mouse is down
fullscreen now focuses the window (there is a bug where you have to click once to get mouse input, though)
add linux icon, will need to be redone properly because it's offcentered with a black border (mask isn't present)
allow typing ~ into the console + some other fixes
2018-05-25 21:19:44 -04: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
jacob1
6ef0f065a6 fix .what methods on exceptions 2018-05-17 20:55:29 -04:00
mniip
d404f4a538 Fix some C++14-isms.
Apparently C++11 is more strict regarding default argument and return
value conversions. Also return brace-initializer construction has had
little support.
2018-05-08 05:48:32 +03:00
mniip
f8586ea3a2 Remove ByteString::Stream 2018-05-04 23:10:39 +03:00
mniip
1485ae5a21 Fix incorrect uses of String(char[]) 2018-05-04 20:05:26 +03:00
mniip
a121c62c3b Add some helper methods and rewrite some of the string manipulation code 2018-05-02 01:32:04 +03:00
mniip
833383b121 Move TPT's icons to the (real) Private Use Area of the unicode 2018-05-01 07:03:48 +03: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
wolfy1339
27f6a6b297 Strip whitespace from files in repo (#553) 2018-04-03 21:46:01 -04: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
f2ac8a951c add ctrl+q shortcut to exit the game from anywhere 2018-03-10 16:01:14 -05:00
LBPHacker
a12785cd5d Use a dropdown instead of a textbox
Textboxes don't mix well with error messages fired from from keypress handlers.
2017-11-23 12:24:34 -05:00
wolfy1339
87f3ada7b0 Remove stuff from Config.h that doesn't belong 2017-11-23 00:12:48 -05:00
jacob1
5ee10d14e4 reduce unnecessary #include dependency chains
for example, elements no longer include Client.h or Graphics.h, and interface stuff won't include Window.h or Graphics.h unless requested
2017-07-13 23:24:35 -04:00
jacob1
0f40db4ef9 proper ctrl+backspace support 2017-05-08 23:45:18 -04:00
jacob1
cdc8f64896 fix clang compile warnings, fixes #406
also, sim.ambientAirTemp takes floats now
2017-04-27 23:08:06 -04:00
jacob1
6d6a615a37 msvc min/max fixes 2017-04-23 12:30:39 -04:00
jacob1
ca792f12b5 misc compiler warning fixes (multiple compilers) 2017-02-20 19:14:50 -05:00
jacob1
f0f104097d finish / fix ecb08952e5
must have accidentally reverted Keys.h halfway through making it?
2016-07-23 19:15:07 -04:00
jacob1
ecb08952e5 Add SDL_keysym.h, Use official SDL constants 2016-07-19 22:42:10 -04:00
Matthew Miller
083d488566 Added a favorites menu. (#298)
Added a favorites menu.
2016-06-25 11:55:18 -04:00
jacob1
aa99258101 more cleanup so that 3D can stay a more permanent thing 2016-04-02 00:10:15 -04:00
jacob1
535ade0ec4 InformationMessage expands like the other dialogs, "numeric" textboxes now allow negative numbers 2016-03-31 22:05:55 -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
76aeef24a4 ctrl+a support in Labels 2015-12-18 00:33:40 -05:00
jacob1
998f5a4cad fix infinite loop error message sometimes always coming up on startup 2015-11-29 01:59:36 -05:00
jacob1
a81a41b67f fix being able to change between box/line/flood fill while drawing (by releasing keys), a bunch of other extremely obscure fixes 2015-09-22 21:40:19 -04:00
jacob1
13a71b611a more tptmp mouse fixes, fix buttons and menusection buttons staying highlighted sometimes 2015-09-22 19:59:31 -04:00