Commit Graph

2761 Commits

Author SHA1 Message Date
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
jacob1
131b965af2 Add Lua apis to interact with DefaultProperties, Create, CreateAllowed, and ChangeType 2019-12-09 22:32:30 -05:00
jacob1
bf7d182de5 Add CreateAllowed and ChangeType events
Used in create_part, kill_part, and part_change_type, allows us to remove element-specific stuff in those functions
Note: difference between Create and ChangeType is that Create is called when we want to initialize default element properties, but ChangeType is called every time a particle is changed to that type, even if it doesn't need default properties set. ChangeType is mainly used for things that need accurate state tracking, like the stkm spawn status.
ChangeType is called every time a particle is changed to or from its type, which includes if the particle is deleted, and also Lua.

Neither of these functions are called when loading saves, that's probably an oversight, will fix later
2019-11-29 19:32:33 -05:00
jacob1
9993290b72 Add Create function, handles setting default properties for elements that need randomness or special code
Most of the switch statement in create_part is gone. There's a few others that I will get rid of in future commits. There will also be a CreateAllowed function, and a ChangeType. ChangeType will handle stuff that is duplicated in both create_part and part_change_type. Considering making a Destroy function instead of ChangeType, though.

Later on, Lua events will be made for all 3

Credit to jacksonmj for the original design of all of this, I copied it into my mod years ago
2019-11-28 00:22:17 -05:00
Tamás Bálint Misius
5c1ea5ef0d
Blacklist SPRK in PCLN's and PBCN's ctypeDraw function
Apparently it used to be blacklisted before ctype-drawing got redone.
2019-11-27 21:00:47 +01:00
jacob1
0078fb4c6f Add DefaultProperties, replaces some of the case statements in create_part
The rest will will in a commit soon that adds the Create event and some other stuff
Lua events will come after that
PLSM default temp lowered to MAX_TEMP
2019-11-25 22:08:18 -05:00
jacob1
459790ffe0 also allow nil here 2019-11-24 23:20:22 -05:00
jacob1
876a9b3096 Fix crashes if returning invalid arguments from graphics or ctypeDraw lua functions 2019-11-24 23:12:22 -05:00
jacob1
b09158220f Fix crash if error happens in ctypeDraw lua function 2019-11-22 23:37:17 -05:00
Tamás Bálint Misius
d17c67b3a4
Fix unsigned integer properties being returned as signed integers from Lua functions 2019-11-14 00:28:27 +01:00
jacob1
7af51b55ac Fix STK2 rocket boots not saving in saves 2019-11-03 10:31:18 -05:00
jacob1
9ed7f1e85a Fix crash if any built-in scripts try to use the interface api
We don't have any scripts like this and never will. But if we did, this would fix the crash.
2019-10-17 23:56:40 -04:00
Tamás Bálint Misius
5f7dd033ec
Revert previous change, add NewtonianGravity element property instead 2019-10-17 22:29:24 +02:00
Tamás Bálint Misius
6b85231f23
Incorporate Gravity property into calculation of acceleration due to newtonian gravity 2019-10-16 01:27:48 +02:00
jacob1
a50b172999 Fix clang 8 compile warnings 2019-10-04 00:21:10 -04:00
Tamás Bálint Misius
ec2576d37f
Keep GameModel brush radius consistent 2019-09-30 14:55:17 +02:00
Nick Renieris
024c3c1b45 gui/game/brush: Add smooth/organic elliptical brush
Not sure why TPT's ellptical brush currently looks like that,
when you type "pixel circle" on Google every result is the
smooth version.

Got the idea from this post:
https://powdertoy.co.uk/Browse/View.html?ID=2464991

Signed-off-by: Nick Renieris <velocityra@gmail.com>
2019-09-26 22:25:32 +02:00
Tamás Bálint Misius
1cea59e521
Make sRGB the default colour space for deco tools, see 51e5f2b 2019-09-22 23:10:57 +02:00
Tamás Bálint Misius
742e030a13
Add gamma = 2.2 and 1.8 modes, see 51e5f2b 2019-09-21 22:16:52 +02:00
Tamás Bálint Misius
a6127bc1fb
Add Lua API for deco tool colour space, see 51e5f2b 2019-09-21 21:58:50 +02: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
51b78be139
Nicer implementation of sim.parts 2019-09-15 22:14:46 +02:00
jacob1
28d5345bf9 Fix off-by-one issue in sim.parts, fixes #678 2019-09-15 15:37:54 -04:00
Tamás Bálint Misius
66ef37e778
Don't destroy the new command being entered in ConsoleView
Not a perfect solution as it doesn't remember the modifications
made to previous commands, but it's more common to be concerned
about the command being entered than about the changes made to
the previous commands.
2019-09-14 19:38:49 +02:00
Tamás Bálint Misius
0e237a1f4b
Remove unused variables from Simulation::FloodINST
These were left behind from before the CoordStack update.
2019-09-14 19:19:24 +02:00
jacob1
88d165fb24 Fix deleting stamps not working 2019-09-13 00:35:36 -04:00
Sebastián Mestre
da5f8068c0 Use CoordStack for INST Flooding (#676) 2019-09-07 19:56:23 -04:00
Nick Renieris
c08b333909 graphics/gldrawmethods: Fix compilation
Was probably broken by ff27d69424

Signed-off-by: Nick Renieris <velocityra@gmail.com>
2019-09-06 09:33:40 -04:00
Tamás Bálint Misius
f22c27e977
Fix VS warning complaining about std::fill(float *, float *, int) 2019-09-04 14:52:38 +02:00
jacob1
5dd4897fa4 Add somewhat ugly --nohttp option
used for the renderer to not include libcurl, because it isn't installed on the tpt server
2019-08-29 23:33:45 -04:00
jacob1
6279bbeed3 Fix missing period in update notification, --no-fft compile fix 2019-08-29 22:49:16 -04:00
mniip
f44d42dde8 Fix signedness warnings in String.h 2019-08-18 12:10:01 +03:00
mniip
33f4f54de1 Fix --nolua compilation 2019-08-18 11:54:32 +03:00
jacob1
b975dc2938 Make water equalization fill in areas slightly more naturally 2019-08-10 22:46:41 -04:00
jacob1
2e154e5ff9 Rewrite flood_water to use CoordStack and fix stack overflow, fixes #646 2019-08-10 22:38:44 -04:00
jacob1
d61db0fd63 Fix frame # not showing properly in HUD when recording 2019-08-10 20:43:00 -04:00
jacob1
0ec50951f7 LSNS: formatting changes, change if statements to switch 2019-08-10 17:22:46 -04:00
jacob1
41d54857f2 Fix cipher list on Windows. Lock cipher changes behind a define, not going to define it for now 2019-08-09 22:52:29 -04:00
jacob1
ec0be1cdc9 Fix CELL size check when loading OPS saves 2019-08-05 00:22:37 -04:00
jacob1
e280fea031 arbitrary gravity code cleanup
Was working on modernizing the code in my mod, copied all the changes here too
2019-08-05 00:08:06 -04:00
Tamás Bálint Misius
ee2a765758
Only allow strong ciphers to be used
How fun it will be to keep this list up to date...
2019-08-03 00:16:12 +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
Tamás Bálint Misius
7158a00f44
Prevent protocol downgrade attacks 2019-08-02 01:31:02 +02:00
Tamás Bálint Misius
89ef7ce216
Okay, it wasn't functionally equivalent (see 79f9a2d6) 2019-08-01 16:54:28 +02:00
Tamás Bálint Misius
79f9a2d62d
Prioritise ctypeDraw functions over sparking
This adds an exception from brush-based sparking behaviour for
elements that have a ctypeDraw function. A functionally equivalent
exception has been removed in de1fc0f, thus making it impossible to
ctype-draw SPRK on a few elements that otherwise aren't sparkable,
such as CONV.
2019-08-01 16:47:29 +02:00
jacob1
9327eecd7b Update gravity mask even while paused 2019-07-31 22:28:02 -04:00
jacob1
7a3c0c1d9a Fix tpt.eltransition.<elem>.presHighType 2019-07-31 22:10:35 -04:00
Tamás Bálint Misius
8b81023770
Replace a few occurrences of hard-coded font height with FONT_H
These two are all I managed to find, but there may be others.
2019-07-31 23:57:13 +02:00
Tamás Bálint Misius
de1fc0f906
Revise ctype-drawing (fixes #657) 2019-07-27 19:12:05 +02:00
jacob1
a73d1f97f6 Fix stamps not saving properly to stamps.def. Make "Rescan Stamps" sort stamps by time created 2019-07-26 23:09:27 -04:00
jacob1
c696a11793 Fix 'l' crash 2019-07-24 00:43:48 -04:00
Ian Bastos
4383de7ad5 Implement file drop handler (#666) 2019-07-24 00:04:41 -04:00
jacob1
9faf95a858 misc whitespace changes 2019-07-23 00:11:48 -04:00
jacob1
fb06e0028b Add disable-network command line argument 2019-07-23 00:11:26 -04:00
Tamás Bálint Misius
7ad797275b
Make Renderer::ResetModes actually reset modes
See 2333786.
2019-07-22 16:18:05 +02: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
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
cf7e478ac5
Use tool desc. and relevant menu desc. in tool search (fixes #289) 2019-07-16 22:17:11 +02:00
Tamás Bálint Misius
dbd5999d1c
Reinstate inversion of inclusion of pressure when shift is held
This feature was removed temporarily in a407aba.

Whether pressure is included when saving or loading is
determined as follows:

 * load-like operations (which invoke Simulation::Load) always
   include pressure;
 * save-like operations (which invoke Simulation::Save) include
   pressure if the Simulation.IncludePressure preference node
   is true;
 * finally the state of the shift key inverts the decision.
2019-07-16 19:43:52 +02:00
Tamás Bálint Misius
a407aba087
Make Simulation.IncludePressure pref node accessible from OptionsView
Also remove ugly and messy behaviour depending on whether
shift is being held while copying or stamping.
2019-07-10 00:35:49 +02:00
Tamás Bálint Misius
5391fc3ee0 Get widths in order, various other things 2019-07-06 09:03:07 +02:00
yarek
bc5fd4ffc8 Small UI refactor
nFixed category refreshing
2019-07-06 09:03:07 +02:00
yarek
803182dda4 Add horizontal separator 2019-07-06 09:03:07 +02:00
yareky
5508f0ccfd Allows to change menu selection from hovering to mouse click
New option in the menu available. This new  menu behaviour is disabled by default.
2019-07-06 09:03:07 +02:00
Cracker1000
b2adbb54db Add .life serialization support to lsns (#652) 2019-06-25 20:57:43 +02:00
Tamás Bálint Misius
92a748bf76
Add missing standard include (fixes #644)
... which is apparently needed on some systems. I guess we might
be missing includes all over the place.
2019-06-12 22:52:12 +02:00
Tamás Bálint Misius
8897c6daea
Make elem.free rebuild menus (fixes #649)
Also make sure removed elements don't stay selected.
2019-06-11 21:12:22 +02:00
Tamás Bálint Misius
75e6ece184
Expose transition constants to Lua (fixes #654) 2019-06-11 20:43:34 +02:00
Tamás Bálint Misius
07b0d52f90
Add more transition type checks and fix tpt.eltransition
Though I'm quite sure nobody actually cares about that table. It's been broken for a
very long time.

The PROP tool now properly calls part_change_type when type is being set.
2019-06-03 19:27:06 +02:00
Tamás Bálint Misius
97bde1111d
Fix part_change_type not being called by sim.partProperty 2019-06-03 12:59:39 +02:00
Tamás Bálint Misius
8671332e60
Fix transition properties not being validated
Also clean up some more of the Lua API code, again. Eww.
2019-06-02 17:49:21 +02:00
jacob1
20c98e9b48 Add sim.CELL constant + some other change I made a while ago for some reason 2019-05-15 00:21:17 -04:00
Tamás Bálint Misius
c193e88c28
Leave only the 'wants pressure' check in Simulation::Load for QRTZ/GLAS/TUNG 2019-05-07 21:15:41 +02:00
Nuno Miguel
81380acc86 Fix namespace error 2019-04-20 23:12:54 -04: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
jacob1
711453ad65 Fix crash when searching in element search ui 2019-04-17 23:49:27 -04:00
Tamás Bálint Misius
e1d32c9352
Move notification out of block locking associated mutex in Gravity.cpp
I don't know how it ended up inside, I wanted it outside. For the record,
signalling the CV while the associated mutex is locked is a pessimisation,
it just yields predictable scheduling.
2019-04-17 09:50:41 +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
2e76b10619
Use C++11 threads 2019-04-17 00:23:57 +02:00
Tamás Bálint Misius
9d92b77163
Clean up sign-related code a bit
Also draw search signs with purple text and thread signs with red.
2019-04-12 17:09:34 +02:00
Tamás Bálint Misius
59afaec70f
Fix Element::Identifier assignment leak (closes #205)
I didn't use 'fixes' because this doesn't strictly fix that specific
bug (I think?). Anyway, it does remove strdup which is mentioned in the
issue.

Also fix elem.free not allowing DEFAULTFOO_PT_STUFF and similar to
be freed.
2019-04-12 00:27:27 +02:00
jacob1
76a92d75d2 Fix POLO eating PROT ID#0 no matter where it is 2019-04-09 22:11:14 -04:00
Tamás Bálint Misius
06e2836726
Fix Lua reference leaks (fixes #638) 2019-04-09 15:28:40 +02:00
Tamás Bálint Misius
783310dc16
Fix a few exceptions returning pointers to temporaries in what()
LocalBrowserModelException and GameModelException returned pointers to
data owned by temporaries in what(). Solution: don't create a temporary
in what(), store the ByteString version of the error message in the
exception.
2019-04-08 19:18:54 +02:00
iczero
2ba0f70efd Fix race condition in Gravity.cpp 2019-04-07 23:31:08 +02:00
Tamás Bálint Misius
ff39c82e48
Print libcurl error buffer to stderr on client error 2019-04-05 21:22:51 +02:00
Tamás Bálint Misius
e3fefe30d1
Add option to redirect cout/cerr to files 2019-04-05 20:55:05 +02:00
jacob1
ea4c355748 better capitalization 2019-04-03 20:19:25 -04:00
Tamás Bálint Misius
6468a51ac1
Add more SSL client error strings 2019-04-04 01:39:11 +02:00
Tamás Bálint Misius
79c5813ba3
Fix msvc compile error again 2019-04-02 19:53:11 +02:00
Tamás Bálint Misius
c8df51a8b3
Fix {ctype} sign macro displaying Empty for non-element ctypes 2019-04-02 19:50:01 +02:00
jacob1
58a3411255 Fix msvc compile error 2019-03-31 16:42:21 -04:00
Tamás Bálint Misius
c8960d1358
Add more sign macros (fixes #578) 2019-03-31 21:44:54 +02:00
Tamás Bálint Misius
3de92f5ef4
Fix pavg loading behaviour of QRTZ/GLAS/TUNG (fixes #607)
Those particles now save/load pavg if pressure is being saved/loaded.
This means they won't ever break again when being loaded as part of
a stamp.

They actually save pavg01 * 64 because pavg is saved as an integer and
these elements are too sensitive to pressure changes for integer pavg
values to be adequate.
2019-03-31 12:18:41 +02:00
jacob1
d22d22e662 Fix pressure / ambient heat being saved as 0 instead of not at all when shift is held 2019-03-30 20:25:51 -04:00