Commit Graph

9321 Commits

Author SHA1 Message Date
Christoph Oelckers ac3c00883d - implemented saving of new format savegames as zips. The code for that was adapted from zipdir.c. 2016-09-21 17:37:56 +02:00
Christoph Oelckers 810ef8f775 - save global savegame data to JSON as well.
This is incomplete and untested, just a safety commit before going on.
2016-09-21 12:19:13 +02:00
Christoph Oelckers dbea80e943 - put savegame extension in version.h 2016-09-21 09:06:04 +02:00
Christoph Oelckers 67239cd623 - added a FileWriter class (taken from another project of mine) and changed m_png.cpp to use it.
This is so that PNGs can be written to memory, not just to an external file. stdio's FILE cannot be easily redirected but a C++ class can.
The writer is very simple and primitive right now, allowing no seeking, but for the job at hand it is sufficient.

Note that large parts of savegame creation have been disabled, because they are about to be rewritten and it makes no sense to adjust them all before.
2016-09-21 09:01:12 +02:00
Rachael Alexanderson eeb4cbdfbc Merge http://github.com/rheit/zdoom 2016-09-21 01:47:36 -04:00
raa-eruanna d9e60644b1 Some Linux SDL fixes. Will have to do this for Mac, later, too. 2016-09-21 01:08:00 -04:00
Braden Obrzut 8aa09768f0 - Fixed: Memory(Array)Reader's seek range didn't include the end of file. Since GetLength exists this is inconsequential for ZDoom, but still incorrect. 2016-09-20 21:23:37 -04:00
Magnus Norddahl b6c64416be Added SceneData texture as the second colorbuffer when rendering a scene and placed fog data into it 2016-09-21 02:04:56 +02:00
Christoph Oelckers 075e98c967 - use FCompressedBuffer to store level snapshots. FCompressedMemFile has been removed. 2016-09-21 01:48:23 +02:00
Christoph Oelckers da83d9e2bd - converted player serializer and everything it needs.
This means that everything belonging to the level snapshot will be generated in the JSON output.
2016-09-21 01:18:29 +02:00
Christoph Oelckers 3a1191281f - some preparations for converting the player serialization code.
- converted sound and canvas texture serialization.
- refactored file_zip, so that it can be used to load loose zip files and extract their compressed data directly.
- added handling to FSerializer to generate and consume compressed Zip file entries.

If all goes well this will allow saving savegames as Zips when the rework is done, which will make analyzing them a lot easier.
2016-09-20 23:13:12 +02:00
Christoph Oelckers 970c168b13 - re-added serialization of treanslations.
- removed more dead code.
2016-09-20 19:45:32 +02:00
Christoph Oelckers e101014432 - converted the user variable serializer. 2016-09-20 18:27:47 +02:00
Christoph Oelckers e41296a64d - added some separators to dobject.cpp
- added restore code for subsector automap info.
2016-09-20 13:30:31 +02:00
Christoph Oelckers f3e8c7c241 - fixed incomplete hudmessage serialization.
- fixed a few errors in the ACS module serializer.
- reordered a few things to how they were in the old code.
- optimized serialization of the level.Scrolls array to happen within the sector. This is to allow skipping 0-entries which normally constitute the vast majority of them.
2016-09-20 13:21:41 +02:00
Christoph Oelckers cf1e6d5275 - converted FBehavior::StaticSerializeModuleStates.
- removed some code which is no longer needed.
2016-09-20 11:35:25 +02:00
Christoph Oelckers 42e38f6cc1 - more cleanup to reduce references to FArchive. 2016-09-20 10:59:48 +02:00
Christoph Oelckers af6404f763 - all DObjects converted.
- cleaned out some old cruft that's no longer needed.
2016-09-20 10:27:53 +02:00
Christoph Oelckers daf43f9d35 - added polyobject serializer.
- added sanity checks to prevent a savegame from being loaded with an incompatible map
- refactored a few things to simplify serialization.
- started work on main level serializer function.
2016-09-20 09:11:13 +02:00
Magnus Norddahl 24f748da03 Add gbuffer pass support to FShaderManager and FRenderState 2016-09-20 02:57:57 +02:00
Christoph Oelckers ab43e0c8cb - all thinker serializers done. 2016-09-20 00:41:22 +02:00
Magnus Norddahl 77233f2f65 Merge remote-tracking branch 'upstream/master' into truecolor
# Conflicts:
#	src/v_video.cpp
2016-09-19 23:55:15 +02:00
Christoph Oelckers a5000ead4c - another batch. 2016-09-19 19:58:04 +02:00
Christoph Oelckers e89d072abc - most thinkers are done. Some stuff about polyobject pointers is temporarily disabled right now because some of the required functions have already been pulled out. 2016-09-19 19:14:30 +02:00
Christoph Oelckers 340c7795f3 - clean out the dump. It's not like this branch is ever going zo be used for saving with the old code anyway. Only the stuff needed to not make it crash or fail on compilation is kept. 2016-09-19 16:10:25 +02:00
Christoph Oelckers 88eab9d1f9 - And another batch of serializers. 2016-09-19 15:07:53 +02:00
Christoph Oelckers a542e99143 - a few more 2016-09-19 13:36:58 +02:00
Christoph Oelckers 7edf4c1afc - added new serializers to several classes and moved the old ones to the dump file. 2016-09-19 12:53:42 +02:00
Christoph Oelckers d24aa5dec9 - reformatting for easier search. 2016-09-19 10:47:59 +02:00
Christoph Oelckers e754fae0a8 - removed FS HUD pics. No mod in existence ever used them and a quickly thrown together test showed that the code did not even work. And since there's no reason to fix it they are gone now. 2016-09-19 10:41:21 +02:00
Christoph Oelckers c665cc53f9 - moved new code to its proper location and started moving the replaced old archive code to a placeholder file for easy removal later. 2016-09-19 10:34:54 +02:00
raa-eruanna 20e620bbe7 Merge http://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2016-09-19 03:05:38 -04:00
Christoph Oelckers 475077f1de Merge branch 'master' of https://github.com/rheit/zdoom 2016-09-19 09:01:34 +02:00
Christoph Oelckers daf33b5b4f - master is now at 2.3pre. 2016-09-19 09:01:21 +02:00
Christoph Oelckers 65c6388d44 Merge branch 'master' into json 2016-09-19 03:54:36 +02:00
Christoph Oelckers 3eb1af6957 - added a GetMissileDamage function to DECORATE which can be used to properly retrieve an actor's damage value.
The damage property should be considered deprecated inside expressions from now on.
2016-09-19 03:45:22 +02:00
Christoph Oelckers f1ba19073f - split Damage into two variables: DamageVal for the old constant and DamageFunc for the DECORATE function.
The way this was done was a major headache inducer, requiring reconstruction of the function each time the value was changed and in general made actor damage a major hassle.
There was a DECORATE wrapper to mimic the original behavior but this looked quite broken because it completely ignored the different semantics of both damage calculation types.
It also made it impossible to determine if damage was a function or a value.
This accessor has been reverted to what it should be, only returning the constant, which now is -1 for a damage function. I am sorry if this may break the odd mod out but a quick look over some DECORATE-heavy stuff showed that this was never combined in any of them so that accessing 'damage' in DECORATE code depended on an actual damage function.

To get proper damage, a future commit will add a DECORATE function which calls AActor::GetMissileDamage.
2016-09-19 03:36:51 +02:00
Christoph Oelckers 967ed48fd3 - fixing. 2016-09-19 01:48:48 +02:00
Christoph Oelckers 718614a820 - cleanup 2016-09-19 01:07:51 +02:00
Magnus Norddahl b1871b272b Merge branch 'exposure_pass' into lightmath 2016-09-18 19:31:36 +02:00
Magnus Norddahl 210dd6d26a Make bloom/exposure less aggressive 2016-09-18 19:31:09 +02:00
Christoph Oelckers ceaa040750 - added a workaround to avoid sprite splitting when it may cause glitches for sprites that get rotated in the draw pass. 2016-09-18 17:45:02 +02:00
Christoph Oelckers a5628518c1 - cut down on data size by not saving trivial defaults. 2016-09-18 16:41:34 +02:00
Magnus Norddahl 38be2333d0 Merge branch 'exposure_pass' into lightmath
# Conflicts:
#	src/gl/renderer/gl_renderbuffers.cpp
#	src/gl/renderer/gl_renderbuffers.h
#	src/gl/renderer/gl_renderer.h
#	src/gl/scene/gl_scene.cpp
2016-09-18 16:22:44 +02:00
Magnus Norddahl 8dd12c8216 Merge remote-tracking branch 'gzdoom_upstream/master' into lightmath 2016-09-18 16:01:21 +02:00
Magnus Norddahl 1e2935f4e0 Added exposure pass calculating the bloom/tonemap exposure based on what the eye is seeing 2016-09-18 15:57:22 +02:00
Christoph Oelckers 9313a99e12 - started implementing a JSON based serializer. Unfortunately it is far too slow to be of any real use. 2016-09-18 13:26:34 +02:00
Christoph Oelckers 3db7d9ad84 - fixed: AActor::alternative was not declared as a pointer. 2016-09-18 12:22:56 +02:00
raa-eruanna e47e6d1d6e Merge http://github.com/coelckers/gzdoom 2016-09-17 20:06:22 -04:00
Christoph Oelckers 6b4aee28bc Merge branch 'master' of https://github.com/rheit/zdoom 2016-09-17 20:22:43 +02:00