Commit Graph

190 Commits

Author SHA1 Message Date
jacob1
2e17b848b1 Make element names a String (unicode support)
This won't be used by official elements, but mods or lua scripts could and do use unicode
2019-03-12 00:10:43 -04:00
jacob1
55e6074942 use override in all possible places 2019-03-09 21:07:32 -05:00
jacob1
79aef1dab6 prevent weirdness when ctrl/shift/alt key event is canceled 2019-02-24 15:29:02 -05:00
jacob1
3fb134f814 Fix issue on qwertz keyboard layouts where the first key input after opening the console would be ignored
This seems like a hack, but I think it's the intended way to do this?
2019-02-20 22:12:22 -05:00
jacob1
16d686e949 fix replace mode semicolon shortcut 2019-02-19 21:53:44 -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
25c1b13bd4 improve find tool handling with GoL, can now find specific life elements
Reverts most of LBPHacker's previous commit, lol
2019-02-16 19:13:05 -05:00
Tamás Bálint Misius
4ff1dc0bc3 Fix a few more random PMAPBITS issues 2019-02-16 18:57:51 -05:00
jacob1
abce030d5d ignore mouse button 4/5 when drawing, fixes #626
perhaps in the future we'll add a use to these
2019-01-31 20:06:09 -05:00
jacob1
3b3775addf Add blur lua event, called when opening another interface window 2018-12-27 21:17:24 -05:00
jacob1
87fb94ce94 Delete unused Thumbnail handling code 2018-11-27 22:13:29 -05:00
Tamás Bálint Misius
e48bd482f6 Add close event 2018-11-16 23:02:05 -05:00
jacob1
a8489ba6f5 add new events api, replaces legacy event functions
event.register(event.mousedown, function(...) print(...) end)
event.unregister(event.mousedown, somefunc)

mouseclick event split into mousedown, mouseup, mousemove, mousewheel
keypress event split into keypress, keyrelease, textinput. key* events only contain keycode and scancode, don't attempt to represent a letter (was very broken at this before). Also have helpful shift/ctrl/alt flags passed in. textinput just represents inserted text, can probably even handle foreign characters.
register_step replaced with event.tick event

All legacy register_* and unregister_ functions are removed. There is a compatibility lua script, might embed it later. tpt.set_shortcuts / tpt.test also removed. event.getmodifiers added, just a misc function to get the currently held modifiers

Lots of code duplication to handle each event is removed, it's not handled in a more generic way. Although the Event class / child classes could use some work.
2018-11-16 00:07:26 -05:00
krawthekrow
bdc3f300ba show conv tmp as element name in hud 2018-07-21 22:36:06 -04:00
krawthekrow
d05e4b2d0b show ldtc tmp2 in hud 2018-07-21 22:27:11 -04:00
jacob1
8e09edd188 fix typo in favorites menu 2018-07-07 21:41:36 -04:00
LBPHacker
a3a3b3be1a Make ctrl+shift+click toggle favorite status 2018-07-07 19:10:41 -04:00
jacob1
53f6807ea6 make fps update less often in hud 2018-06-04 23:48:40 -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
3b428789c7 fix selecting another element turning off find tool 2018-05-17 20:59:37 -04:00
mniip
f8586ea3a2 Remove ByteString::Stream 2018-05-04 23:10:39 +03:00
mniip
6c9cb174fb Change some uses of String::Stream to StringBuilder 2018-05-02 22:11:41 +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
jacob1
6731fa16b7 fix memory leaks when loading stamps ('l') and viewing saves 2018-04-21 00:15:15 -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
jacob1
b07e8d93d5 When finding particles, show how many were found in HUD 2018-03-07 23:19:55 -05:00
jacob1
c3ff761288 my editor decided to use spaces here for some reason 2018-03-03 22:07:36 -05:00
jacob1
bd7f9fa247 prevent people from stealing the 404 save 2018-03-03 22:05:08 -05:00
jacob1
f9b5c6bb1a use std::string instead of c strings for sign stuff, fixes #545 2018-03-03 20:44:03 -05:00
jacob1
0d1c3f5f49 ctrl+p shortcut to select prop tool 2018-02-03 17:39:23 -05:00
jacob1
3d66b7e263 remove hardcoded op 2018-02-03 17:38:47 -05:00
jacob1
b5159ab74e Changes to save format and PIPE
Update save format to optionally store type as two bits
PIPE now stores element in ctype
Disallow uploading saves using two bytes in type or other fields
update save format to store pmapbits and automatically convert data
2017-12-31 23:55:41 -05:00
jacob1
0c8c4de125 convert all of the rest of the things except GameSave.cpp and pipe/ray elements
also add sim.PMAPBITS and sim.PMAPMASK constants
2017-12-29 21:01:28 -05:00
jacob1
ac24810da5 add some defines to reduce usages of hardcoded r>>8 2017-12-28 12:03:26 -05:00
jacob1
4ff0a9f52c only expand stamp in the direction you are moving 2017-10-04 21:07:00 -04:00
jacob1
6bd068713e recording improvements
remove 'r' record shortcut
add tpt.record function. Still gives the user a confirm prompt
recordings now go into recordings/<timestamp>/, where timestamp is the time the recording was started. <timestamp> is returned by the tpt.record function. Each new recording starts the filenames over at 0 again.

you probably still need a lua script to use the recording feature, this should make it easier for those
2017-09-04 14:06:28 -04:00
jacob1
6931f35520 hold shift when saving or loading stamps to not save / load pressure, closes #491 2017-08-03 00:13:06 -04:00
jacob1
ac489c9295 hide .tmp in HUD for RFRG and RFGL 2017-07-29 22:54:39 -04:00
jacob1
b38b2047e6 some changes to sign handling (attempt to fix crash that I can't reproduce) 2017-07-28 21:19:06 -04:00
jacob1
adb39b91a9 attempt to reduce "script is not responding" when debugging (valgrind / breakpoints) 2017-07-28 20:32:46 -04:00
jacob1
cbad202ac2 fix brush when CELL is changed to 1 2017-07-28 19:40:50 -04:00
jacob1
1cfd9d8fc7 only display updates based on build number, not version number 2017-07-23 16:41:38 -04:00
jacob1
aad8eba5df Version 92.0
also update README, and make ctrl+a moderator only shortcut
2017-07-23 10:58:52 -04:00
jacob1
6efedcdd33 undo authors changes on ctrl+z, prevent excessive nesting 2017-07-15 16:21:16 -04: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
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