Commit Graph

547 Commits

Author SHA1 Message Date
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
Tamás Bálint Misius
0179cefc78
Flatten include trees 2019-04-20 15:36:11 +02: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
Tamás Bálint Misius
47f898ca5a
Tweak replace mode and specific delete mode (fixes #631) 2019-03-30 23:59:20 +01:00
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
28bfa9dfc9 GoL is now affected by stasis wall 2019-02-20 23:25:28 -05:00
jacob1
e8b4256503 Fix gravity sometimes persisting a frame after ctrl+z / clearing sim, fixes #571 2019-01-14 21:11:06 -05:00
jacob1
d0dd9ec22f fix sim.brush being double size, fix compile warning 2018-11-21 12:38:26 -05:00
jacob1
48bc6e02ba Fix gcc 8 warnings 2018-11-03 19:36:07 -04:00
jacob1
7f215a6a17 fix particle #0 not being removed from the photons map when moving 2018-09-09 10:53:02 -04:00
jacob1
bbef295fe3 fix default elements disappearing when loading saves if the identifiers don't match 2018-08-24 23:10:46 -04:00
jacob1
92244f78bb initialize some variables to fix -Werror=maybe-uninitialized warnings
most aren't actually bugs, but gcc isn't able to determine that the paths it can follow guarantee they are initialized
2018-07-08 00:49:35 -04:00
jacob1
56cba4595c Merge branch 'unicode' 2018-05-06 20:15:23 -04:00
jacob1
49703404be change almost all the rest of the rng calls to .chance/.between 2018-05-05 11:56:17 -04:00
mniip
a121c62c3b Add some helper methods and rewrite some of the string manipulation code 2018-05-02 01:32:04 +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
67132c9925 fix another out of bounds crash relating to stasis wall 2018-04-28 11:45:16 -04:00
jacob1
be57130c7a fix crash when particles are out of bounds 2018-04-28 00:27:03 -04:00
jacob1
db8b32363e remove tpt-math.h includes 2018-04-28 00:09:14 -04:00
jacob1
601af1feff fix compile warnings, remove ugly PRTI/PRTO hack 2018-04-23 21:57:30 -04:00
Saveliy Skresanov
cda029ff42 Use xoroshiro128+ random generator (everywhere besides BSON code). 2018-04-23 22:47:44 +07:00
jacob1
11b2f58db7 define M_PI in tpt-math.h 2018-04-05 23:31:28 -04:00
jacob1
7f985b47dc whitespace fixes + description change 2018-04-03 22:33:25 -04:00
moonheart08
3f99a59cb2 Adds STASIS wall. (#556) 2018-04-03 22:24:38 -04:00
wolfy1339
27f6a6b297 Strip whitespace from files in repo (#553) 2018-04-03 21:46:01 -04:00
jacob1
07868ba2b7 Adjust SOAP links to non-SOAP particles properly when saving 2018-04-01 16:04:38 -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
1f97199df6 fix solar panels sometimes not working 2018-03-25 18:34:25 -04:00
jacob1
fac996722b save stickmen rocket boots / fan flag in saves 2018-03-24 13:09:02 -04:00
jacob1
3bd35ce83f fix STKM + fan wall 2018-03-21 23:58:27 -04:00
jacob1
f45d0d1683 save palette now works for elements stored in ctype/tmp/tmp2 2018-03-17 21:46:35 -04:00
jacob1
c861d69f9c add RESTRICT_VERSION check to digitation stuff, update readme date 2018-03-10 17:03:44 -05:00
jacob1
ab4cdf2aa1 minor efficiency fix 2018-03-10 15:43:25 -05:00
jacob1
ad5b12fe6d part_change_type now returns true if it killed the particle 2018-03-10 15:39:39 -05:00
jacob1
5a61e6a619 a bunch of fixes to heat/pressure digitation
add limits so that you don't get impossible temp or pressures
only undigitize from FILT 1 pixel away
ensure everything only works through FILT, not sometimes PHOT or BRAY
HSWC with .tmp of 1 no longer conducts heat to FILT
2018-03-07 23:03:10 -05:00
jacob1
5f4c5fb118 Fix &255 usage 2018-02-28 22:01:49 -05:00
krawthekrow
d7e26e8c03 fix free particle list messing up during particle debug 2018-02-24 18:24:07 -05:00
jombo23
0a63e1afb5 Add Cyclone Tool and Brush X/Y Arguments (#542) 2018-02-13 00:08:00 -05:00
Nikolay Marchuk
30b8078ad2 fix undoing changes in gravity mask 2018-02-13 00:06:55 -05:00
jacob1
1237b49e37 allow compiling renderer with --msvc in scons 2018-02-11 14:47:36 -05:00
jacob1
07988147b9 prevent compiling if pmap doesn't have enough space, make lua elements favor 1 byte IDs 2018-01-01 00:31:44 -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
20e1abd840 update Simulation.cpp to use new macros 2017-12-29 17:34:19 -05:00
jacob1
fbf7210814 fix division by 0 in PHOT+C5 interaction, shoot the photon off at 90 degrees instead 2017-12-27 18:11:33 -05:00
jacob1
23c68b1db1 fix issue loading manually created SOAP bubbles in some saves 2017-12-19 22:15:32 -05:00
jacob1
553eaf9524 fix loading saves with stacked particles 2017-12-19 21:15:19 -05:00
jacob1
e956e7c5fd fix issue where stamps would stack if you loaded multiple in one frame
sim.loadStamp in the console, or a lua script
2017-12-03 19:30:21 -05:00
jacob1
c2064b48c3 fix comment 2017-11-23 22:23:56 -05:00
jacob1
3529f6f468 fix ambient heat not loading in ctrl+c paste, fix pressure resetting to 0 when loading saves without pressure 2017-11-23 22:09:33 -05:00
jacob1
78fb27b354 fix SOAP links not saving/loading properly 2017-11-23 21:53:21 -05:00
jacob1
2ccbec1d05 include tpt-minmax header in Simulation 2017-11-23 15:12:47 -05:00
krawthekrow
62d57cc1de fix indentation 2017-11-23 00:42:42 -05:00
jacob1
77b6f44c74 fix issue with molten STKM that could break the simulation and cause crashes 2017-09-28 23:12:16 -04:00
LBPHacker
ce58c4aadf Fix Simulation::Restore decrementing life values
Simulation::Restore used to call Simulation::RecalcFreeParticles. The problem with that was that RecalcFreeParticles does more than just what its name suggests: it also decrements life values. Restore shouldn't do that. The solution is to tie decrementing life values to an argument in RecalcFreeParticles. This is also makes to code more future-proof as it lets everyone know that they have to keep their eyes peeled when invoking RecalcFreeParticles.
2017-08-17 00:23:37 -04:00
jacob1
1dd4b00ec6 minor gravity transition fix 2017-08-06 19:41:04 -04:00
jacob1
6fca44fd70 fix newtonian gravity state transitions flashing 2017-08-05 17:53:41 -04:00
jacob1
26f70331de fix debug thing breaking pressure display in HUD, fixes #494 2017-08-03 23:12:03 -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
99c568f136 ensure air doesn't "leak" out of TTAN containers when loading stamps and saves 2017-08-02 23:49:51 -04:00
jacob1
541417008e fix FIGH spawning glitch: id:2165807 2017-07-24 21:44:37 -04:00
jacob1
6d141b0722 add new PhotonReflectWavelengths property, add reflection color for POLO 2017-07-16 00:07:32 -04:00
My main account
284e653aa5 Convert another if-elseif block to switch (#465) 2017-06-30 20:01:12 -04:00
jacob1
2e4617c956 GAS+CAUS+pressure = RFRG, move HEAC to solids 2017-06-18 23:32:25 -04:00
My main account
5de384cfbc Fix CRAY creating FILT 2017-06-18 21:49:47 -04:00
iczero
3336209527 Fix STOR modded element processing
fixes #460, again
2017-06-18 09:02:20 -04:00
jacob1
67b87b1dab palette now used for default elements again, with some fixes
palette now used in VIRS, fixes #460
2017-06-18 00:08:41 -04:00
jacob1
1718fe9287 HEAC is now meltable via LIGH, fix HEAC hardness, fixes #441 2017-06-11 21:10:19 -04:00
jacob1
fb2431d99e replace some if-else with switch statements, code formatting, closes #444 2017-06-11 20:39:23 -04:00
jacob1
1cb3917fcc Fix comment 2017-06-04 21:33:45 -04:00
jacob1
1fb883a450 replace E181 with SAWD (sawdust), created by hitting WOOD with high velocity particles 2017-06-04 14:50:14 -04:00
jacob1
9bc19d9933 fix elementRecount parenthesis 2017-05-10 00:11:53 -04:00
jacob1
b9c658ae20 elements are only recounted when unpaused, apparently 2017-05-09 21:52:40 -04:00
jacob1
2d7934bca6 fix elementRecount never being reset to false, fixes #417 2017-05-09 21:49:54 -04:00
jacob1
abf60508cd fix ambient heat being reset when creating saves 2017-05-06 23:57:27 -04:00
jacob1
9b954c7ed5 CRAY(LIGH) defaults to LIGH with .life 30 2017-05-06 19:40:22 -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
c98f63bd89 save ambient heat in saves, if it is enabled 2017-04-24 22:29:45 -04:00
jacob1
ddd326eafd fix LSNS 2017-04-23 12:51:40 -04:00
jacob1
40972f9434 pressure and air velocity are now saved in saves 2017-04-22 17:06:28 -04:00
jacob1
866289c179 remove duplicate function, fix Simulation::GetParticleType, fixes #402 2017-04-21 20:24:24 -04:00
Nickolay
7078d7e528 Customizable FRAY and INVS (#390) 2017-04-20 17:37:09 -04:00
jacob1
076ec711a9 fix photon refraction on windows 2017-04-16 21:41:50 -04:00
jacob1
d3f0896599 Changes by Skylark:
Double the preciseness of photon refracting
photon refracting efficiency improvement on GCC
CRMC now slightly scatters photons when reflecting
BGLA now scatters photons
PQRT scatters photons like QRTZ does
C5 frequency doubling, id:2087410
*slight styling changes by jacob1*
2017-04-11 23:15:01 -04:00
Capacitor Set
2d4c195c86 Fix memory leaks 2017-03-19 23:05:39 -04:00
jacob1
8f4e3a56bd reduce ctrl+z snapshot memory usage 2017-02-09 22:55:05 -05:00
jacob1
85e2516a42 missed movement code fixes from my mod? b7ef4c8f2b95 2016-10-01 00:16:50 -04:00
jacob1
69d28bd7b0 Fix crash with really high speed photons, a check is needed here too 2016-09-24 10:07:53 -04:00
Mark Theng
8de12d616e fix resume simulation/reload in the middle of subframe debugging (#330) 2016-09-04 21:33:33 -04:00
jacob1
6dc1c222bc catch potential ParseExceptions when loading saves, use bson error handler to prevent exit(-5) 2016-08-14 18:18:59 -04:00
Simon Robertshaw
b8e2113b05 Another experimental element, floats on water, supports other structures 2016-08-07 16:15:30 +01:00
jacksonmj
f6615deed2 Fix uninitialised variable (sim->player(2).rocketBoots) 2016-07-24 20:09:28 +01:00
SopaXorzTaker
17398dd201 RPEL's ctype sets the element it repels 2016-07-17 16:47:43 -04:00
SopaXorzTaker
c85ac21d84 Fix gravity field appearing after ctrl+z even if gravity is off, Fixes #293 2016-06-11 10:29:09 -04:00
jacob1
d63c6012c6 force a stacking check when undoing (id:1997880) 2016-06-11 10:21:25 -04:00
jacob1
15068552b5 really fix the remainders in loop edge mode 2016-03-12 13:54:50 -05:00
jacob1
ccec5fbff4 that .5f should have been ouside the remainder_p
also fix random compile warning (error?)
2016-03-12 13:24:59 -05:00
jacob1
d334209027 loop edge mode: allow particles to have velocities greater than the size of the screen
Also, added terminal velocity for stickmen
2016-03-12 13:14:34 -05:00
jacob1
f6d82b6f8a separate t and v argument in create_part, fix LIGH not defaulting to .life of 30 with clones / console 2016-01-11 22:38:42 -05:00
jacob1
adf0fa72df Actually use .Properties instead of .Falldown for wall blocking 2015-12-30 23:45:05 -05:00
jacob1
c76ec2be43 PHOT going through turned off GPMP turns into GRVT
GRVT .tmp depends on the GPMP temp
2015-12-26 01:24:22 -05:00
jacob1
5ba34021bc jacksonmj: Reduce ETRD lag e7c4b989654e
Improvement isn't as good as the EMP one in normal cases, but for intentional lag bomb saves it is much better. Tested it and confirmed it worked just like before this commit. etrd_life0_count is hopefully valid, the accuracy may not be as good as in jacksonmj's fork
2015-12-19 01:39:03 -05:00
jacob1
bb9b35f01d jacksonmj: EMP lag is hereby banished. eeef50c0fcba
EMP destruction loop now happens once per frame instead of once per EMP
particle.
2015-12-18 23:10:28 -05:00
jacob1
f1ea32516d jacksonmj: Stop using Element.State 618c4b5ce5cd 2015-12-18 01:14:31 -05:00
jacob1
3226ce0ac2 jacksonmj: Always use Properties instead of Falldown to decide whether particles can pass through walls e52a62354473 2015-12-18 00:51:04 -05:00
jacob1
9cab6959b6 fix flood fill delete on normal particles also deleting photons 2015-11-30 14:20:37 -05:00
jacob1
7fcc056cb6 fix really fast particles moving through EHOLE 2015-10-15 00:26:57 -04:00
jacksonmj
d0445258c5 CONV tmp value can now be used to restrict which elements get converted. Requires version bump to 92. 2015-10-13 01:33:19 +01:00
jacksonmj
d88c18adaf Fix collision detection for liquids on top of streamlines 2015-10-13 00:49:42 +01:00
jacob1
bc112b54df initialize GoL variables, add sim.gspeed function 2015-10-10 00:03:04 -04:00
jacob1
9b9555226b fix compiling in visual studio, fix maybe bug with updates? 2015-09-20 00:59:37 -04:00
jacob1
5433766311 fix ETRD creating plasma as if it were created by the brush (-2) 2015-09-01 12:26:06 -04:00
jacob1
48dbc4182d Add CRMC from my mod 3dd3fb2f7801 92f0301295f6 2015-08-30 18:29:21 -04:00
jacob1
ed4678c9a8 add deco flood fill, flood fills based on color being close enough
flood fill brush is hidden when deco tools are selected like this because it gets in the way. Renderer::vid is compared here so there could definitely be issues, but it works fine when used under normal conditions
2015-08-30 01:38:32 -04:00
jacob1
2ebc522c36 add ERASEALL wall from my mod (erases walls, particles, and signs) 2015-08-30 00:18:06 -04:00
jacob1
37794c01af .tmp2 for CRAY now sets creation offset (just like DRAY)
LIFE info moved into .ctype, no reason to use a whole extra variable for it
2015-08-29 22:02:05 -04:00
jacob1
f95db0278e really fix coordinates when placing stamps ... 2015-07-07 00:44:06 -04:00
jacob1
8e7e8e0670 some changes to LIGH creation (mostly from lua) 2015-05-11 20:50:10 -04:00
jacob1
b1fc134204 fix crash with high speed photons in loop edge mode 2015-05-10 21:48:09 -04:00
jacob1
aa854557f7 fix WOOD sometimes creating water when burning 2015-05-10 20:55:03 -04:00
jacob1
fc5f3671f1 new function sim.clearRect, plus fix rounding errors breaking ctrl+x 2015-03-12 00:54:27 -04:00
jacksonmj
84f6ede2b8 Fix for commit d71a0d98: also adjust melting point of BRMT(TUNG) based on TUNG HighTemperature value 2015-03-05 00:14:26 +00:00
jacksonmj
d71a0d98eb Allow TUNG melting point to be changed from Lua
Also set lava LowTemperature threshold to MAX_TEMP, to simplify changing melting points from Lua.
2015-02-23 13:24:27 +00:00
jacob1
03e07945e3 fix lua element update bugs, fixes #244
also add new mode for functions run before the normal update function
2015-02-13 14:18:55 -05:00
jacob1
2c0287b71d PARTICLEDEBUG define which turns on some particle debugging key shortcuts
Also fix particle updating bug
2015-02-06 20:33:10 -05:00
jacob1
b1a3c404b6 fix platform / sconscript flag specific warnings, --no-warnings no longer defaults to true 2015-01-16 23:39:42 -05:00
jacob1
efd69b208d fix a ton more errors in the interface code, including all the -Wreorder ones 2015-01-16 19:58:39 -05:00
jacob1
3a52453561 move more stuff around, remove loop through particles to decrease life and put it in the pmap one instead (like in my mod) 2015-01-11 14:36:40 -05:00
jacob1
577ae3400f move some stuff around (without changes) in Simulation.cpp, add sim.updateParticles function 2015-01-11 13:17:18 -05:00
jacob1
dce874484a fix all the gcc warnings in the element files (except one in PSTN) + all the unused variable warnings 2015-01-10 22:43:33 -05:00
jacksonmj
236ff08da9 Fix some problems noted in http://www.viva64.com/en/b/0298/
I've left some of the less important items, like SearchView.cpp "'then' statement is equivalent to the 'else' statement", and RequestBroker::Request::~Request, because I don't feel like spending a few days entirely rewriting those files at the moment (which is what I'd end up doing if I started fixing minor problems and refactoring...)

GameSave::readOPS - not changed. At some point we may have to move to a larger type for element IDs (probably two or four bytes), but PT_NUM isn't likely to be raised to the maximum value of that type immediately, so this check will be needed then. There should be an elements[partsData[i]].Enabled check in there too, but it might be a bit difficult - I'm not sure how to access a Simulation object from GameSave::readOPS...

Notes on changes:

Graphics::textsize, Element_FRZW::Element_FRZW - typos

Button::Draw - the extra case was originally used to invert the icon (draw it in black instead of in white) when the button was clicked. However, the icon colour is now automatically set depending on the background colour. (Note similar conditions "if(Enabled) { if(isButtonDown || (isTogglable && toggle)) " near the start of the function - same logic but in a different place, setting icon colour indirectly).

Simulation::transform_save - unused redundant function, everything uses GameSave::Transform which does much the same thing.

PreviewView::NotifySaveChanged - should be height==YRES/2, it's checking whether the preview image is the correct size, and resizing it if it isn't.

Element_FWRK::update - no idea why that line was there, even though it was my commit that originally added it...
2014-12-25 17:09:35 +00:00
cracker64
a115e78952 More element optimizations!
ACEL, changed a range check
DRAY, Fixed repetitive checking
GOLD, less rand()
PLNT, removed range checks, less rand()
PROT, used a switch()
VIBR, less rand()
VINE, less rand(), fixed growing along WOOD
VIRS, less rand()
2014-12-06 15:43:11 -05:00
jacob1
6da5b08fd2 fix for fast particles moving through VOID 2014-11-22 13:04:04 -05:00
jacob1
16ce3a68c0 more jacksonmj suggestions: save edgeMode in saves, BVBR absorption fix, life saving fix, DEUT graphics change, PROT fix, SOAP graphics fix 2014-11-21 15:41:22 -05:00
jacob1
e20f6b101b jacksonmj: "Allow ELEC to pass through GLOW, fixes ELEC->PHOT reaction in GLOW." f162984e22e5 + some parts of "Misc small fixes" 95cf5bd67c2b 2014-11-21 15:41:22 -05:00
jacob1
a182e925fe some elementpallete fixes + fix SPAWN2 ToolButton 2014-11-20 22:44:02 -05:00
jacob1
6ce2d5fe92 #define MAX_FIGHTERS + some fixes 2014-11-20 22:11:20 -05:00
jacob1
c9cc2a1a6b more accurate elementCount (part_change_type, pasting stamps, lua), prevent having multiple STKM / SPWN even more 2014-11-20 21:51:45 -05:00
jacob1
6066ae8341 prevent having multiple stickmen on the screen, also add playerst.spawnID 2014-11-20 18:51:33 -05:00
jacob1
a31f4df0a1 fix being unable to draw METL/PSCN/INST ctype on CRAY 2014-11-07 12:28:49 -05:00
jacksonmj
1eeed277a0 Fix initialisation of transitionOccurred 2014-11-06 00:46:15 +00:00
jacksonmj
829e2cca7d Flatter surface when liquids solidify 2014-11-06 00:32:25 +00:00
jacksonmj
9e7ead9bcc Change melting point for snow with wrong ctype back to 273.15 2014-11-05 23:32:49 +00:00
jacksonmj
57409b0b41 Change order in which particles are created by the rectangle and brush tools
to make liquid movement look less weird in normal gravity
2014-11-01 15:38:39 +00:00
jacksonmj
02e1969ef2 Fix SNOW(WATR) melting temperature
Broken by fixing SNOW(SLTW) melting temperature in a78bd78bfc
2014-10-31 16:39:30 +00:00
jacksonmj
f7b53d0231 Prevent fast particles from skipping over DESTROYALL wall 2014-10-27 17:50:58 +00:00
jacob1
12f00db240 loop edge mode from my mod (also works with stickmen) 2014-10-24 00:18:51 -04:00
jacob1
b59ecf2d65 add airblock wall 2014-07-03 14:30:12 -04:00
jacob1
f68fadb3f4 make PHOT only able to move 2 pixels at a time through things again 2014-07-03 12:05:26 -04:00