Commit Graph

476 Commits

Author SHA1 Message Date
Tamás Bálint Misius
8b5cf394e0 Replace http_* calls with Download calls in non-RequestBroker stuff 2019-03-07 22:56:08 -05:00
jacob1
772148900e Fix stamp and local save thumbnails being stretched 2019-03-03 23:45:33 -05:00
jacob1
768202ca9b Version 94.1 2019-02-21 00:23:45 -05:00
jacob1
0c6ce20880 Add "Force Integer Scaling" option for fullscreen
Also:
recreate the window when enabling resizable window, same workaround I applied to my mod for jacob1/The-Powder-Toy#24
recreate the window when toggling fullscreen, to work around some bugs where the window is sized incorrectly or the mouse position doesn't match where the cursor is
Don't capture mouse cursor when this is a debug build
2019-02-18 22:18:29 -05:00
jacob1
240bb3bd92 restrict saves to version 94.0 when they use newer elements / features 2019-02-10 22:02:17 -05:00
wolfy1339
a2bb531c46 Remove inclusion of deprecated C++ headers 2019-01-31 20:09:15 -05:00
jacob1
87fb94ce94 Delete unused Thumbnail handling code 2018-11-27 22:13:29 -05:00
jacob1
48bc6e02ba Fix gcc 8 warnings 2018-11-03 19:36:07 -04:00
nunom2005
31b45312b2 Add a message a message while fetching the motd (#603) 2018-10-30 21:01:17 -04:00
jacob1
3707ecd563 fix "publish" button in save browser 2018-08-24 23:11:09 -04:00
krawthekrow
11d33d5b77 call rayt linear detector 2018-06-24 10:37:11 -04:00
jacob1
38fac7046a add #define NOMINMAX before windows.h includes 2018-05-17 21:49:46 -04:00
jacob1
6ef0f065a6 fix .what methods on exceptions 2018-05-17 20:55:29 -04:00
mniip
30dd49235d Add ToLower/ToUpper 2018-05-14 05:12:32 +03:00
mniip
32aaafee94 Move data into either cpp files or const arrays 2018-05-08 07:38:55 +03:00
mniip
f8586ea3a2 Remove ByteString::Stream 2018-05-04 23:10:39 +03:00
mniip
1485ae5a21 Fix incorrect uses of String(char[]) 2018-05-04 20:05:26 +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
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
de757bc2c3 made sure the windows version actually compiled 2018-04-23 22:32:03 -04:00
jacob1
6731fa16b7 fix memory leaks when loading stamps ('l') and viewing saves 2018-04-21 00:15:15 -04:00
moonheart08
22b9bf4953 Adds RAYT (#540) 2018-04-10 21:32:19 -04:00
wolfy1339
27f6a6b297 Strip whitespace from files in repo (#553) 2018-04-03 21:46:01 -04:00
jacob1
dfc5bd1d85 don't restrict containing certain new 93.0 features to 93.0 (so renderer can render them) 2018-04-01 15:28:54 -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
b89ea68acd remove fromNewerVersion TODOs in GameSave.cpp 2018-03-24 14:38:26 -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
126acb7db5 change TSNS/HSWC/PSNS/PUMP .tmp to 0 in older saves 2018-03-18 19:59:48 -04:00
jacob1
f45d0d1683 save palette now works for elements stored in ctype/tmp/tmp2 2018-03-17 21:46:35 -04:00
jacob1
01741b05ce betas should still look for stable updates 2018-03-12 23:32:37 -04:00
jacob1
6d515c3009 remove debug thing, blame jacob1 2018-03-11 23:03:11 -04:00
jacob1
138410c41f blame simon
render compatibility stuff, allow renderer to open saves with elements it doesn't understand, because something is better than nothing
2018-03-11 23:02:12 -04:00
jacob1
3b95ff7983 93.0 save loading fix (todo: remove this stuff on 93.0 release) 2018-03-10 20:30:20 -05:00
jacob1
c861d69f9c add RESTRICT_VERSION check to digitation stuff, update readme date 2018-03-10 17:03:44 -05:00
jacob1
3d66b7e263 remove hardcoded op 2018-02-03 17:38:47 -05:00
jacob1
5012c3cfe6 fix build error when UPDATESERVER is defined 2018-01-01 12:12:43 -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
ac24810da5 add some defines to reduce usages of hardcoded r>>8 2017-12-28 12:03:26 -05:00
jacob1
c31267b06f use unique_ptr in GameSave::readPsv, rename variables 2017-12-27 16:57:32 -05:00
jacob1
ae9b416f2f use c++11 (unique_ptr) in GameSave::readOPS 2017-12-27 13:00:48 -05:00
jacob1
887d60628d use c++11, use unique_ptr in GameSave::SerializeOPS 2017-12-27 11:50:09 -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
wolfy1339
255ca13fab Remove unused code in src/Config.h (Fixes #516)
- Remove commented out code as it was not used anywhere in the code
2017-11-23 00:18:44 -05:00
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
e4089a276a fix illuminati symbols appearing when rescanning stamps 2017-09-04 12:51:28 -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
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
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
057435baa6 Differentiate between created date / updated date in save preview
still only shows most recent date, this just changes the text
2017-06-30 21:21:09 -04:00
jacob1
572e432045 update snapshot save restriction code 2017-06-04 18:10:07 -04:00
jacob1
35ce9570d6 make Mrprocom's name blue 2017-06-04 17:48:31 -04:00
jacob1
ce054bfc3f fix misc. errors reported by clang static analyzer 2017-05-06 20:02:23 -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
2df333c99f TPT is now shown in desktop menus when installing on linux
uses powder-48.png as icon + 3rd .desktop entry
2016-09-04 21:27:55 -04:00
jacob1
b405674d3d minor updates to .desktop files 2016-09-04 20:17:35 -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
9a855cc8cb fix some commas in HTTP.cpp that should be semicolons 2016-08-02 08:31:33 -04:00
jacob1
59ac872d5f restrict saves using newer features of elements 2016-07-26 19:33:04 -04:00
jacob1
9cae1f0fe7 HTTP.cpp: parsing headers shouldn't be case sensitive 2016-07-24 16:28:20 -04:00
wolfy1339
b65e94900e Use C++ includes (#308)
Replaces stdio.h, stdlib.h, string.h, math.h, time.h, limits.h and othters with their C++ equivalents.
2016-07-17 23:37:24 -04:00
jacob1
a3865c8f49 remove debugging stuff 2016-07-09 19:07:03 -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
7e4924e7ab windows pthread_t is uncooperative, just check this instead 2016-06-11 13:08:27 -04:00
jacob1
5b5390f822 attempted error fix 2016-06-11 12:57:13 -04:00
SopaXorzTaker
0af4b54bc3 extra NULL check
It is undefined behavior what happens when you try to call pthread_join on a NULL thread (which will happen if you close the game before opening the save browser). Seems to be harmless, but make sure we don't do that just in case --jacob1
2016-06-11 10:46:59 -04:00
jacob1
64f81000cd Fix typo 2016-04-27 00:00:28 -04:00
jacob1
a8427ef33a only use -Wno-unused-result on Linux, also actually fix the unused results that we could possibly care about
Fixes cross compilers, TODO: I don't think scons can check if a flag exists but might support adding a test for that, even if through hacky means, like CheckFramework
2016-04-26 23:55:14 -04:00
jacob1
1171c308e1 Fix warnings, fix crash when ctrl+click opening a save 2016-04-02 20:47:50 -04:00
jacob1
ad49bfbb82 ALL CAPS R COOL 2016-03-27 11:46:30 -04:00
jacob1
40c2ff27b0 Test using DownloadManager from my mod instead of RequestBroker
The crash when opening saves on mac is definitely something to do with the threading, and i'd rather just test this first to see if it fixes it

Copied from my mod almost entirely as-is, with the changes to HTTP.cpp included, also added locks into Download.cpp even though it is probably overkill
2016-03-27 11:41:36 -04:00
jacob1
81c68c46b0 Check for beta updates even if not a beta
The site has been updated to not send beta update information unless user is enrolled in beta updates
2016-03-13 23:35:29 -04:00
jacob1
13d3547211 Compiling fix for scons on windows
something is up with the pthreads library (dynamic compiles still broken), probably windows libraries all need to be recompiled and distributed separately like I did for visual studio
2016-03-12 00:36:11 -05:00
jacob1
983ed4eb53 use json page when publishing saves from save browser 2016-02-24 22:06:43 -05:00
jacob1
be170fe73d prevent errors being printed to stderr when opening saves
adding a hack onto a hack
2016-02-13 16:23:57 -05:00
jacob1
4e484ae2a4 compiler fixes, apparently using [] as intended is ambiguous ... 2016-01-26 00:24:14 -05:00
jacob1
855d735b50 replace the rest of the cajun references with jsoncpp 2016-01-25 23:52:46 -05:00
jacob1
df1a2243fd use jsoncpp for ParseServerReturn and startup check 2016-01-25 22:58:09 -05:00
jacob1
5c1cc0c0fb rewrite powder.pref handling to use jsoncpp instead of cajun
cajun is a hard to use library with many necessary features missing. It also has been causing the windows version, and probably the mac version, to randomly crash.

Other json stuff still uses cajun (TODO: remove)
2016-01-25 22:30:43 -05:00
jacob1
82dc5e1f71 don't save powder.pref in a .plist file on OS X
untested, but it didn't make sense how we were doing it anyway. Also, it was spelled wrong
2016-01-24 15:44:13 -05:00
jacob1
3cf5395697 make jacobot / boxmein have blue nicks in save comments (hack) 2016-01-16 11:39:04 -05:00
jacob1
adf0fa72df Actually use .Properties instead of .Falldown for wall blocking 2015-12-30 23:45:05 -05:00
jacob1
6930d830bf shouldn't return an error in whatever case this is (reverted from commit ec99fcdf5d) 2015-12-02 11:25:24 -05:00
jacob1
ec99fcdf5d shouldn't return an error in whatever case this is 2015-12-01 01:15:30 -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
59377e49e5 fix 'Prev' button placement 2015-10-11 02:05:49 -04:00
jacob1
a8c141c144 show more specific error when catching json exceptions 2015-10-10 17:39:47 -04: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
93d6816740 Send username with alternate update server request 2015-09-26 16:50:02 -04:00
jacob1
cae8c9e095 fix some compile errors with last commit, remove snapshot version info from HUD and add to intro text instead, add tpt.version.snapshot 2015-09-26 14:56:37 -04:00
jacob1
908f60d47a support alternate update servers, and optional changelogs 2015-09-26 11:47:51 -04:00
jacob1
9b9555226b fix compiling in visual studio, fix maybe bug with updates? 2015-09-20 00:59:37 -04:00
jacob1
9048a3c50e new lua API: platform
you can get current OS / build information, exe name, restart tpt, open a link in the web browser, and use clipboard copy/paste functions

Also remove some older Platform.h file which wasn't really needed or used
2015-08-31 23:33: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
4cc753edc1 fix crash from last commit (OnResponseFailed needs to check if it is a valid listener) 2015-08-29 15:20:50 -04:00
jacob1
9f9fef6cad Add new function ParseServerReturn, try to properly display all http errors
Also fix crash with invalid ptsave link, and fix some cases where it wouldn't ever tell you it errored
2015-08-29 13:14:17 -04:00
nucular
c2ba1d24d4 Fixed compiling on mingw-w64 2015-08-26 22:59:05 +02:00
jacob1
e990eead10 add CleanText function from my mod, used when copying / pasting / loading signs 2015-07-10 00:05:58 -04:00
jacob1
906b4a973f profile viewer now shows age, website, and save stats
Also, add Multiline type textboxes (allows pressing enter) and fix some other bugs
2015-07-09 20:17:04 -04:00
jacob1
c786640c74 always use a ScrollPanel in the profile viewer
also fix Textbox autosize. TODO: add a bunch more info to the profile viewer
2015-07-09 14:25:01 -04:00
jacob1
7b904c6840 fix DLAY delay in older saves 2015-06-27 21:05:28 -04:00
Aditya Vaidya
13cc593d13 Fixed most spelling errors in code. 'originaly' is read as 'original Y', so not a typo 2015-05-18 15:16:01 -05:00
jacksonmj
34567bc496 Merge pull request #247 from ryanmjacobs:fix_pointer_checks 2015-05-16 02:19:08 +01:00
jacob1
cee08b2024 On first run, set scale to 2 if screen size is large enough 2015-05-14 23:22:20 -04: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
jacob1
a422e43beb visual studio error fix + warning fix 2015-02-25 18:56:50 -05: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
57d1b4916d fix last two PVS-Studio bugs, closes #232 2015-02-13 21:45:22 -05:00
jacob1
1840f4e39c fix crash when uploading save 2015-02-04 00:37:25 -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
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
b2954a7f0a Publish button in browser (replaces Unpublish button when unpublished saves are selected)
Works using the html page and isn't really the best way until @simtr implements Delete.json&Mode=Publish or something
2015-01-10 18:18:28 -05:00
jacob1
1a50217acd better fix for thumbnails getting mixed up (static int instead of rand), fixes #96 2015-01-10 15:45:35 -05:00
jacob1
4a3a6dee30 improve .desktop file installed on linux
escape Exec properly so paths with spaces or quotes work, and add Path key so that it starts in the right working directory
2015-01-10 00:14:38 -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
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
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
1289465a2c update stamps.def when deleting stamps, missing stamps show up as "error loading save" and can be deleted 2014-11-11 23:48:36 -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
Simon Robertshaw
0d617ace7b Decorate thread entry points in headers 2014-08-15 22:50:28 +01:00
Simon Robertshaw
a629eb9bfc Force stack re-alignment for entry-points from phread_create with mingw & windows to fix SSE crashes in child threads 2014-08-15 21:42:33 +01:00
jacksonmj
c83945e281 Allow PHOT deco, in old saves only 2014-08-05 22:11:07 +01:00