Commit Graph

167 Commits

Author SHA1 Message Date
jacob1
97c4123533 translate wall grids when shifting stamps by more than 4 pixels 2017-10-04 21:07:00 -04:00
jacob1
4ff0a9f52c only expand stamp in the direction you are moving 2017-10-04 21:07:00 -04:00
krawthekrow
ca542b1ef1 autoexpand save when particles are translated out of boundaries 2017-10-04 21:07:00 -04:00
jacob1
8fe3ca0f5c don't use std::pow here 2017-07-29 11:26:53 -04:00
jacob1
b02a72a77b add length limit to authors on saving/loading, fix type issue causing mass duplication
When making a local save, then stamping and loading the stamp (without doing anything else in between), issues with the code would cause the unsigned int in the json to turn into a normal int. It would then think the authors data from the stamp was from something else and append it. For users that do an excessive amount of stamping, this causes duplication in the authors links that shouldn't have ever happened.
2017-07-28 20:00:19 -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
ddce20da5b authors clipboard fix
MergeStampAuthorInfo prevents some duplication now, don't need this
2017-07-16 21:33:49 -04:00
jacob1
08ba035a53 fix nesting checks 2017-07-15 16:27:11 -04:00
jacob1
6efedcdd33 undo authors changes on ctrl+z, prevent excessive nesting 2017-07-15 16:21:16 -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
jacob1
572e432045 update snapshot save restriction code 2017-06-04 18:10:07 -04:00
jacob1
8d492ef549 meant to move those functions into GameSave class 2017-04-25 00:05:15 -04:00
jacob1
5ce60b5f5f clean up massive repeated code in GameSave.cpp 2017-04-24 23:59:47 -04:00
jacob1
c98f63bd89 save ambient heat in saves, if it is enabled 2017-04-24 22:29:45 -04:00
jacob1
184777ed12 GameSave.cpp 2D array cleanup 2017-04-23 22:44:31 -04:00
jacob1
6d6a615a37 msvc min/max fixes 2017-04-23 12:30:39 -04:00
jacob1
40972f9434 pressure and air velocity are now saved in saves 2017-04-22 17:06:28 -04:00
jacob1
fc451e5385 don't allow publishing E182 saves 2016-09-04 21:49:24 -04:00
jacob1
89e7238f3b fix invalid read in BSON.cpp when loading some kinds of invalid saves 2016-08-14 18:18:59 -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
jacob1
cd41aac1f7 allow snapshots to still publish saves, as long as they don't use new features 2016-08-07 15:31:28 -04:00
jacob1
59ac872d5f restrict saves using newer features of elements 2016-07-26 19:33:04 -04:00
jacob1
16b93083d4 Changes to support starcatcher build server with updates
Cherry-picked from 3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
3ddaec7b2a
2016-07-09 19:00:54 -04:00
jacob1
adf0fa72df Actually use .Properties instead of .Falldown for wall blocking 2015-12-30 23:45:05 -05:00
jacksonmj
bb455ea893 Add more breaks.
Fixes tmp values being set to 0 for CRAY.
2015-10-13 10:23:19 +01:00
jacob1
31b1e6aace only require version 91.0, will add note on snapshot page about possibly breaking 2015-10-12 21:52:26 -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
jacob1
63843c2bd7 add new minimumVersion setting in saves, can restrict the smallest version of TPT that is able to open the save. Uses major/minor version for this
Also add RESTRICTVERSION macro to help when adding restrictions later
Also show errors when opening broken stamps now too
2015-10-02 21:25:15 -04:00
jacksonmj
1bd861719f Turn "save from newer version" back into an error, until an improved method of checking compatibility can be devised 2015-10-02 21:10:06 +01:00
jacob1
b184c78cff "Save from a newer version" is now just a warning (OPS format never changes)
Also, actual save errors now prevent you from clicking "Open" (which allowed you to vote and do other stuff even though the save was never loaded)
2015-10-01 21:35:40 -04:00
jacob1
282d1fbf0c fix: CRAY from older saves should set .tmp2 to 0 2015-08-30 19:03:01 -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
5caf8bc8e1 allow longer signs, add 'None' justification where the pointer line isn't drawn
signs have a longer width limit and hard 45 character limit from the textbox and when loading saves
2015-08-29 18:56:38 -04:00
jacob1
e990eead10 add CleanText function from my mod, used when copying / pasting / loading signs 2015-07-10 00:05:58 -04:00
jacob1
7b904c6840 fix DLAY delay in older saves 2015-06-27 21:05:28 -04:00
jacksonmj
34567bc496 Merge pull request #247 from ryanmjacobs:fix_pointer_checks 2015-05-16 02:19:08 +01:00
jacksonmj
72329af09d Fix DLAY delay changing during save+load
by rounding temperatures to nearest instead of always flooring.

Effect on DLAY delay:
Room temperature offset - loaded as whole number of degrees C, so rounding to nearest deg C gives the same number as flooring.
Full - loaded as whole number of K = original whole deg C - 0.15. Rounding to nearest deg C means the whole deg C delay from before saving is used as the number of frames to delay, instead of deg C - 1 if flooring was used.
2015-03-27 17:39:05 +00:00
Ryan Jacobs
55a30673c4 Remove unnecessary pointer checks.
There are *no* more spacing issues. I used tabs exclusively.
Also, I made changes off of the develop branch.

Here's the Ruby regex that I used:
text.gsub!(/(( |\t)*)if ?\((.*)\) ?{?\n?( |\t)*(free ?\(|delete |delete\[\] )(.*)\)?;/, "\\1\\5\\6;")
2015-02-14 22:13:26 -08: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
54d985f975 gcc warning fixes (up to lua files) 2015-01-16 17:26:13 -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
jacob1
0ad225d1fc update VIBR randoms, fix any VINE in old saves also 2015-01-07 19:32:49 -05:00
Martin Ettl
34c85c262c Fix potential memory leaks.
(Merging pull request #234, amended by jacksonmj: some leaks already fixed in develop branch.)
2014-12-29 16:37:04 +00: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
jacksonmj
fb796c873b PSTN: allow movement amount to be set by temperature. Requires major version increment. 2014-11-04 15:38:41 +00:00
jacob1
6463d04f6c fix a few of the most spammy warnings (there are still hundreds of warnings though)
TODO: actually fix all the warnings
2014-10-23 00:42:13 -04:00
jacob1
c16caed5dd fix level 1 msvc compiling warnings + initialize debugFlags 2014-10-08 00:15:51 -04:00
jacksonmj
c83945e281 Allow PHOT deco, in old saves only 2014-08-05 22:11:07 +01:00
jacksonmj
aa74deb6d5 Mismatched new[]/delete for serialised GameSave data 2013-12-23 17:17:40 +00:00
Simon Robertshaw
e1616fdd82 Hotfix: Don't open saves larger than 200MB 2013-12-08 16:58:17 +00:00
jacksonmj
75b7b85703 Fix sign duplication when loading a save 2013-11-03 14:26:51 +00:00
jacksonmj
02a4c17d72 Ignore invalid walls in some old saves, so that they load correctly
E.g. save 10631 from old server
2013-10-17 16:09:38 +01:00
jacob1
aa2ec3d162 fix SOAP crashes by making sure particle id's are between 0 and NPART. Also cut off .life to between 0 and 65535 when saving 2013-09-12 14:35:10 -04:00
jacob1
332aa25bf6 save pavg[] in saves, for VIRS, PIPE, and STOR 2013-09-11 20:41:43 -04:00
jacksonmj
9eccad80b1 Missing breaks in readOPS
Causing some elements to be loaded incorrectly
2013-09-08 18:14:12 +01:00
jacob1
d38af2764c move QRTZ .tmp into .tmp2 and .ctype into .tmp, fixes bug where sparking QRTZ resets .ctype and stops it from growing 2013-08-29 22:18:35 -04:00
jacksonmj
bebe9bd8fd Add a way for photons to set the colour of FILT (major version bump required)
Also add some new FILT modes, and make FILT modes affect BIZR and
BRAY colour in the same way as they affect photon colour. Photons
passing next to DTEC will set the colour of all FILT in a straight
line starting from any FILT adjacent to the DTEC (a bit like an
ARAY beam), and the exact colour of the photon will be used for
FILT interactions instead of the colour based on temperature.

FILT tmp=4: red shift, tmp=5: blue shift. Size of shift determined
by FILT temperature. tmp=6: FILT has no effect on photon colour
(possible before by using invalid tmp modes, but here's a supported
method of doing it. Invalid tmp modes should be automatically replaced
in existing saves).

Also, FILT mode is now described in the HUD.
2013-08-29 17:19:07 +01:00
jacob1
8d5fe459fe 'n' to toggle Newtonian Gravity, quickoption tooltips show which keys you need to press to toggle them 2013-07-15 13:09:19 -04:00
jacob1
519d220101 save more settings in powder.pref like ngrav_enable, aheat_enable, pretty powders, and debug hud. Also save ambient heat in saves, and add a warning in the intro text in betas that you can't save publically 2013-07-02 15:09:00 -04:00
jacob1
776b2f6607 fix version tagging in saves 2013-06-24 00:02:00 -04:00
jacksonmj
4e4bd9a11b Signed integers can be negative, so prop>x does not always correctly indicate whether higher bytes are used 2013-06-11 00:26:41 +01:00
jacob1
6f8e2c0345 remove unneeded / duplicate constants, fix SPC_AIR/other tools so it won't conflict with lua elements (the 11th one won't work right now) 2013-05-16 17:01:33 -04:00
jacob1
037618e6f8 remove auto generated comments from all files, fix some missing tabs, remove unused variables from config.h 2013-03-06 12:05:59 -05:00
jacob1
8b83ae9f95 PSTN ctype sets the element that stops it, FRME with a tmp of one is non-sticky (doesn't pull) 2013-03-03 16:36:37 -05:00
jacob1
b92bd245c8 fix 4 MB memory leak on every save 2013-02-24 15:23:34 -05:00
jacob1
0939494747 fix problems found with valgrind with shifting stamps and saving 2013-02-24 14:12:48 -05:00
jacob1
7379a6b5ba fix crash when hovering the mouse over invalid wall types 2013-02-24 11:50:20 -05:00
Simon Robertshaw
5beb4255c8 Tag origin version info in save files 2013-02-17 11:30:53 +00:00
Simon Robertshaw
e7b174a78d Revert "move version info to version.h, no longer needs full recompile on version change"
This reverts commit b3a2ab735b.
2013-01-19 22:00:56 +00:00
jacob1
b3a2ab735b move version info to version.h, no longer needs full recompile on version change 2013-01-15 11:28:28 -05:00
jacob1
41751da619 change some free/malloc's back to delete/new's 2013-01-12 21:06:52 -05:00
jacob1
d1abfc313e fix mismatched free()/delete's 2013-01-06 18:26:38 -05:00
jacob1
e685e30d58 make sure that simulation variables are initialized, fixes things like water equalization always being on in old saves 2012-12-18 13:33:29 -05:00
jacksonmj
9c6f3c7fbb Fix crash in GameSave::serialiseOPS
Only particlesCount particles have been copied from the Simulation.
All the rest are uninitialised, and may have coordinates outside the
game area. Using those uninitialised coordinates in the index for
partsPosFirstMap may cause a crash.
2012-12-16 23:01:04 +00:00
Simon Robertshaw
00190b4aab Don't print PSV debug information when compiled for release 2012-12-16 16:38:12 +00:00
jacob1
d57fe7618c fix walls loading incorrectly in extremely old saves. Fix some invalid save formats being loadable (it was onlychecking the 'O' in OPS) 2012-12-12 17:31:06 -05:00
Simon Robertshaw
05148e8a8d C++erific text cleaner function, also, it's a good idea to actually clean text coming from signs... 2012-12-09 00:14:48 +00:00
jacob1
e5a284a2ba fix compiling warnings / error 2012-12-06 12:34:32 -05:00
Simon Robertshaw
51a5af6d5d Remove some debug printing 2012-11-12 10:48:20 +00:00
Simon Robertshaw
29189693b3 Element palette for automatic element ID/mod mapping 2012-11-12 10:22:16 +00:00
jacob1
fd07d35e34 limit the number of signs that can be placed 2012-10-26 15:13:00 +01:00
Simon Robertshaw
0801497ed2 Fix wall clipping during stamp rotation 2012-10-01 12:02:04 +01:00
Simon Robertshaw
1ac964d9ba Ensure saves are expanded in memory when performing translate operations. Fixes #174 2012-09-03 12:38:09 +01:00
Simon Robertshaw
082072a05e OPS: Fix byte order when unpacking 4 byte tmp fields 2012-08-25 16:29:27 +01:00
Simon Robertshaw
ba1ce66968 Correct particlesCount when reading PSv format, particlesCount was being assigned to the last index and thus was one less that desired. fixes #138 2012-08-21 01:09:22 +01:00
Simon Robertshaw
b318c3721a TPT: Powered pipe, based on jacob1's commits 2012-08-20 16:48:03 +01:00
Simon Robertshaw
9dd9d52564 Herp derp, forgot to call dealloc in GameSave destructor 2012-08-19 20:57:14 +01:00
Simon Robertshaw
c0c30bd305 Looks like calling the destructor manually is not a good idea. 2012-08-19 20:44:50 +01:00
Simon Robertshaw
21f050800b Load signs from OPS data 2012-08-17 17:08:24 +01:00
Simon Robertshaw
074dcd0b42 Precompile some headers. Fix sconscript to prevent recompiling everything 2012-08-13 15:43:57 +01:00
Simon Robertshaw
8ca27520a4 Use forward declarations more to avoid excessive includes 2012-08-12 22:32:57 +01:00
Simon Robertshaw
cbefea85d7 Local Saving, Server Saving rewrite 2012-08-01 22:29:22 +01:00
Simon Robertshaw
c14a008d46 Corrections to GameSave to prevent conflicts in the Expanded state, improve Save preview comments display 2012-07-28 18:38:34 +01:00
Simon Robertshaw
aa774771a0 Collapse gamesave to save space in memory 2012-07-28 02:23:21 +01:00
Simon Robertshaw
5befe5c25f Local file browser + some more interesting things like Progress bar UI component 2012-07-27 20:06:17 +01:00
Simon Robertshaw
e36bc8e4ae TPT: Gravity modes and Newtonian gravity for fireworks 31ce22f122 2012-07-25 17:44:29 +01:00
Simon Robertshaw
5031291bf6 TPT: Save an extra tmp2 byte, for EXOT fed8b7b2cc 2012-07-25 17:16:56 +01:00
Simon Robertshaw
6585a4640b TPT: Replace all explosion sparks with new element (EMBR) 1d5b081942 2012-07-25 17:12:15 +01:00
Simon Robertshaw
33de0482a2 Use exceptions instead of goto to corrup state. Fix Fan wall loading with PSV and New wall IDs with OPS 2012-07-20 19:39:38 +01:00
Simon Robertshaw
332fbfe590 Ensure GameSave internal pointers are NULL at the start 2012-07-20 17:43:08 +01:00