Commit Graph

1143 Commits

Author SHA1 Message Date
Cracker1000
823ff9080e Remove unnecessary .life change from PSNS 2022-04-18 14:39:11 -04:00
cracker1000
29ed52d50e Fix find mode not highlighting WARP particles 2022-04-10 11:52:47 +02:00
Departing
d5f94f4718
Added chemically strengthening GLAS (#837) 2022-04-04 23:17:08 -04:00
jacob1
14348437a6
Fix TRON being unable to pathfind to the top and left edges of the screen 2022-03-18 18:13:01 -04:00
Tamás Bálint Misius
df7bbd3b8e
Prevent SaveRenderer from calling into Lua
Also clear SaveRenderer graphics cache along with the main Renderer's when needed, and revert to built-in element callbacks rather than nothing at all when assigning nil to a callback slot in Lua.
2022-02-23 22:22:10 +01:00
jacob1
477909d00f
Redo code that makes SOAP float on OIL
Rather than hacking velocity, do it directly through can_move. Add a special case to make it slowly float upwards, rather than immediate like most weight differences in TPT.
2022-02-21 23:56:52 -05:00
jacob1
982fdff528
Add safeguard to try_move to ensure we don't write to out of bounds pmap
This is a follow up to this crash fix - 0ed8d0a0be
This may possibly fix other crashes users occasionally experience, especially in the case of high velocity particles with loop edge mode on. Even so, there are other bugs at play, as a crash here can't be triggered if pmap is in a correct state
2022-02-21 23:36:10 -05:00
Tamás Bálint Misius
7ab720d847
Fix pipe mirroring (fixes #750 again) 2022-02-04 09:07:02 +01:00
jacob1
eadd381da9
Fix incorrect RNG call in WARP, code cleanup
x velocity was set using .chance instead of .between. This always returned false, meaning vx always was set to .5 giving a rightward bias
2022-01-06 20:29:07 -05:00
xphere07
674134588c
Upgrade to C++17 (#819) 2021-12-13 14:41:02 +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
dbd971fb05
Convert float pavg[2] to int tmp3, tmp4
Also add GameSave::PressureInTmp3 to check for elements with pressure memory and fix TUNG not sampling pressure on creation. This does not in itself fix #822 because tmp3 and tmp4 are still saved in 16 bits each, so full ctypes still don't fit in tmp3.
2021-12-09 07:49:31 +01:00
Tamás Bálint Misius
b587732d7b
Fix render failing to compile with GCC 11
Due to Client::SetPref not being available for use by AddCustomGol. GCC 7 didn't mind this, weird.
2021-12-07 16:44:48 +01:00
jacob1
0ed8d0a0be
Fix flood_water movement cancel check
This fixes a crash with water equalization on, with loop mode enabled, when there are high velocity particles near the edges. This can be occasionally reproduced with id:2800901

The water was moved to a new position and pmap updated, but the movement code continued, assuming water was at its old position. pmap for the WATR's old position won't be cleared once it moves, leaving a stale entry. If a particle then looks up the water in that location and tries to swap positions, this can cause a crash at the end of try_move
2021-10-23 00:52:13 -04:00
Tamás Bálint Misius
5582d6881d
Update tpt-libs, add support for compiling with MinGW on Windows 2021-10-22 23:14:54 +02:00
Tamás Bálint Misius
d675d483bd
Leave the original GameSave alone in Simulation::Load 2021-10-13 11:26:48 +02:00
jacob1
323c443d2a
Minor LIGH compat fix
old LIGH with invalid high .tmp2 will spawn a line of LIGH, rather than disappearing
2021-08-29 14:02:21 -04:00
jacob1
44590d82e9
Add a few more Lua functions
sim.replaceModeFlags
sim.listCustomGol
sim.addCustomGol
sim.removeCustomGol
tpt.perfectCircleBrush
sim.floodDeco
2021-08-27 23:57:55 -04:00
jacob1
63fe8e46b2
LIGH now lasts longer and expands frame-by-frame, fix LIGH stamping bug 2021-08-26 22:26:55 -04:00
Tamás Bálint Misius
eac92d1b04
Optimise undo history memory usage
By storing only the differences between Snapshots where possible.
NOTE: This may be reverted later if it causes too much trouble.
2021-08-04 17:19:15 +02:00
Tamás Bálint Misius
ea07244119
Refresh history code in GameMVC 2021-08-04 17:08:23 +02:00
Cracker1000
a3a45db3e4
Add AMBP and AMBM tools (#778)
Co-authored-by: Tamás Bálint Misius <lbphacker@gmail.com>
2021-07-29 17:50:24 +02:00
Tamás Bálint Misius
c0e065cc76
Fix certain Lua APIs mangling integers
Also fix a few warnings.
2021-07-18 20:33:50 +02:00
Tamás Bálint Misius
5f90a80fe3
Disallow GOL rulesets with no B states 2021-07-15 21:05:24 +02:00
jacob1
e80dc7b114
Preserve GoL deco in older saves; deco on builtin GoL no longer renders when decorations are off 2021-07-14 00:26:21 -04:00
jacob1
943f9d6c03
LITH explodes when overcharged, update charge graphics 2021-07-14 00:17:47 -04:00
jacob1
cea629c6c0
Make LITH->GLAS reaction easier 2021-07-13 23:01:02 -04:00
jacob1
f2d92bc3d7
Don't let GLOW ctype go negative 2021-07-13 21:50:36 -04:00
Tamás Bálint Misius
cfeda0fdba
Fix GOL showing up where it shouldn't
The underlying problem was that the spreading step in SimulateGOL would record activity concerning a cell to builtinGol even if said cell already housed a non-GOL particle. The culling step handles these records and purges them once it's done (thus builtinGol only ever has non-zero values inside SimulateGOL), except in this case, it saw the non-GOL particle and skipped the cell without purging the corresponding records. This would later let GOL spread seemingly out of nowhere.
2021-07-11 12:21:48 +02:00
moonheart08
a014c81ad6
Last minute explosiveness enhancement for LITH (#788) 2021-07-10 16:17:58 -04:00
catsoften
c6a52d1425 Prevent ROCK from repeatedly breaking into STNE and reforming under pressure 2021-07-10 00:18:46 -04:00
jacob1
8a788fac78
Misc minor changes to new elements
LITH: show .tmp2 in HUD, remove outdated comment
SLCN: update description
ROCK: form under pressure from both normal LAVA and LAVA(STNE), as these are basically the same thing
2021-07-09 22:09:24 -04:00
moonheart08
66c5287824
Adjust color of LITH (#787) 2021-07-04 14:55:20 -04:00
jacob1
fe49e58de8
Make ROCK more resistant to DEST (like CNCT is) 2021-07-03 23:34:38 -04:00
catsoften
e97925f0fd
Change PTNM reactions to take pressure from reacting particle's coordinates (#784) 2021-06-27 20:27:02 -04:00
jacob1
91a1f19c52
Adjust LITH color slightly so that it isn't the same as CNCT 2021-06-27 18:47:09 -04:00
jacob1
76699d2f7e
Make ROCK harder to get, greatly increase ACID resistance
This helps prevent ROCK from appearing in normal situations, which can easily get to pressure > 2 just from the movement of the falling LAVA.
2021-06-27 18:39:51 -04:00
Tamás Bálint Misius
dcf0764fd8
Return a reason for failure from sim.loadStamp 2021-06-21 08:04:32 +02:00
Tamás Bálint Misius
ffe730c615
Save ambient heat temperature and add it to options 2021-06-04 22:39:07 +02:00
Simon Robertshaw
10a6bb7120 Remove pastel glow on "inactive" GLOW, fix FIRE_ADD variables.
FIRE_ADD, firea/r/g/b variables adjusted to work similar to v51.1.
Use RNG to assist with smooth(er) transition from PMODE_FLAT to PMODE_ADD
2021-05-22 21:48:06 +01:00
Sam Robertson
2c207a934e
Makes GLOW element glow under pressure. Fixes #774
Co-authored-by: Tamás Bálint Misius <lbphacker@gmail.com>
2021-05-22 11:18:31 +02:00
jacob1
14be92c013
Prop tool - only check GoL rulestings / names for ctype
They are meaningless when applied to any other property, even .type
2021-05-19 00:04:23 -04:00
jacob1
a25fa700e2
Don't show GoL .tmp in HUD, check if create_part was successful while simulating GoL 2021-05-11 23:40:31 -04:00
jacob1
829c0bced5
Fix issue allowing drawing unlimited LIGH with 1x1 cursor
Also fix warnings from a previous commit
2021-05-10 21:04:08 -04:00
jacob1
aac6b7258c
Improve stack pasting behavior
It will now clear all particles in positions being pasted over
2021-05-10 00:02:27 -04:00
Tamás Bálint Misius
2e16eecae0
Fix a bunch of LDTC and DTEC issues
Namely: LDTC GoL detection, ctype-drawing and HUD rendering, alongside DTEC HUD rendering.
2021-04-18 20:32:32 +02:00
jacob1
f441626de4 Fix some issues in elementCount
Count goes negative if an element is killed due to .life=0 on the same frame an elementRecount is scheduled
element count skyrockets when recount is scheduled during game pause
Element count increases by a static amount when undoing, because it schedules a recount without clearing the old counts
2021-04-18 14:01:51 -04:00
Tamás Bálint Misius
11f6abdfca
Update elementCount when restoring a snapshot (fixes #592) 2021-04-18 15:48:10 +02:00
moonheart08
a3f5731a43
Add element LITH (#726)
Co-authored-by: Tamás Bálint Misius <lbphacker@gmail.com>
2021-04-17 00:01:26 +02:00
jacob1
ffb88259d6 Split Simulation::IsValidElement into IsElement and IsElementOrNone
Allows finer control over whether you want none included or not.
Fixes some invalid things being allowed for element 0 in legacy lua api
Fixes {ctype} signs showing 0 instead of NONE
2021-04-11 23:20:33 -04:00