Commit Graph

9119 Commits

Author SHA1 Message Date
raa-eruanna 1b3f652abb Merge http://github.com/rheit/zdoom 2016-09-25 19:43:54 -04:00
raa-eruanna c8d0a478d8 Merge http://github.com/coelckers/gzdoom 2016-09-25 19:43:52 -04:00
Christoph Oelckers 750c194959 - changed order of SwapBuffers and glFinish call. The new order with glFinish coming last is recommended by OpenGL and it fixes a stalling problem with portals and camera textures visible at the same time.
- check and use WGL_EXT_swap_control_tear extension. The above change makes the system always wait for a full vsync with a wglSwapInterval of 1, so it now uses the official extension that enables adaptive vsync. Hopefully this also works on the cards where the old setup did not.
2016-09-26 01:38:25 +02:00
raa-eruanna 0bc54cbda4 Fixed SDL backend. This project is now Linux capable! 2016-09-25 17:40:37 -04:00
Christopher Bruns a7044c9a8b Remove quotation marks that cause trouble with older versions of CMake. 2016-09-25 22:11:08 +02:00
raa-eruanna d91fe1572c Merge http://github.com/coelckers/gzdoom 2016-09-25 14:08:20 -04:00
raa-eruanna 6cc1cea54d Merge branch 'master' of https://github.com/raa-eruanna/QZDoom 2016-09-25 13:50:11 -04:00
raa-eruanna 08166473ca Merge branch 'truecolor' of http://github.com/dpjudas/dpdoom
# Conflicts:
#	src/v_video.cpp
2016-09-25 13:48:52 -04:00
Rachael Alexanderson 7e19a0a644 Merge pull request #1 from alexey-lysiuk/macos_build_fix
Fixed compilation on macOS
2016-09-25 13:11:16 -04:00
alexey.lysiuk e9b1da57a3 Fixed compilation on macOS 2016-09-25 17:43:52 +03:00
Christoph Oelckers d65589281f Merge branch 'master' of https://github.com/rheit/zdoom 2016-09-25 10:28:51 +02:00
Christoph Oelckers f4462a7b93 - fixed: Any DSectorEffect thinker must be placed into STAT_SECTOREFFECT.
The slot had been there forever to address this same problem but only one of the two constructors actually set it, too bad that it was the wrong one...

This is something that normally won't be noticed. But if some actor is spawned on a moving platform, with both thinkers on the same statnum it means that the order of execution is not correct with the platform being done first, resulting in the actor to 'jump' while the platform is moving. To prevent this it is necessary that all sector movers only tick after all actors have completed their thinking turn.
2016-09-25 09:43:17 +02:00
Christoph Oelckers 92d0043a81 - undid part of the last commit and hopefully corrected it for good now.
We have to be extremely careful with the player data, because there's just too much code littered around that has certain expectations about what needs to be present and what not.
Obviously, when travelling in a hub, the player_t should be retained from the previous level. But we still have to set player_t::mo to the PlayerPawn from the savegame so that G_UnsnapshotLevel doesn't prematurely delete it and all associated voodoo dolls, because it checks player_t::mo to decide whether a player is valid or not.
The actual deletion of this redundant PlayerPawn should only be done in G_FinishTravel, after the actual player has been fully set up
2016-09-25 09:23:44 +02:00
raa-eruanna ed07ff1bdd Merge http://github.com/dpjudas/dpdoom 2016-09-25 02:19:39 -04:00
raa-eruanna 1c25ad7ce4 Merge http://github.com/rheit/zdoom 2016-09-24 23:36:51 -04:00
raa-eruanna 9ecb7d44f7 Merge http://github.com/coelckers/gzdoom 2016-09-24 23:36:47 -04:00
Christoph Oelckers 6a6a0e8017 - removed some more hubtravel related player start fudging.
* do not skip the player_t init when travelling in a hub. The old player may still be needed in some edge cases. This applies only to singleplayer for now. The multiplayer version still needs reviewing. I left it alone because it may shuffle players around which is not wanted when doing hub travelling.
 * do not spawn two temp players in G_FinishTravel. Instead handle the case where no player_t::mo can be found gracefully by adding a few nullptr checks. This temp player served no real purpose except for having a valid pointer. The actual start position was retrieved from somewhere else.
2016-09-25 01:28:27 +02:00
Christoph Oelckers 7d978a115e Merge branch 'master' of https://github.com/rheit/zdoom 2016-09-24 17:54:53 +02:00
Major Cooke 74b8e9f286 - Don't use Normalized180() on angles. This could result in ranges being wrongly inverted.
- Fixed properties not having the proper indices.
- Use ViewPos-to-actor instead of measuring actor-to-actor.
- Use the actual camera instead of the actor so camera textures can work.
2016-09-24 17:54:09 +02:00
alexey.lysiuk a419b581a8 Fixed compilation on macOS 2016-09-24 13:15:45 +03:00
Christoph Oelckers 8907a8bfe8 - fixed incorrect function name in sprites drawer.
- fixed duplicate property key in ADynamicLight serializer. Radius was already claimed by AActor so this needs a different name.
2016-09-24 12:09:53 +02:00
Christoph Oelckers 3f17d64f90 - fixed pitch comparison in visibility checking. 2016-09-24 09:42:35 +02:00
Magnus Norddahl 5ef46d1730 Merge remote-tracking branch 'gzdoom/master' into qzdoom 2016-09-24 09:37:18 +02:00
Magnus Norddahl 7ef5a9f117 Add the experimental swrenderer2 2016-09-24 09:36:37 +02:00
Major Cooke 561edd31ec Added check for angle visibility for GZDoom. 2016-09-24 09:29:00 +02:00
Christoph Oelckers 6b02ea9871 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	CMakeLists.txt
2016-09-24 09:28:09 +02:00
Christoph Oelckers 3862c77b4b - undid savegame version bump because it's not needed. 2016-09-24 09:18:25 +02:00
Major Cooke dfa4f38c8f Updated to new save game code. 2016-09-24 09:17:18 +02:00
Christopher Bruns e9f31e5f95 Fix tabbing of recent change to CMakeLists.txt to match previous version. 2016-09-24 09:17:18 +02:00
Christopher Bruns 19c3529d32 Add a comment describing my enhancement to the CMake PK3 target rule. 2016-09-24 09:17:17 +02:00
Christopher Bruns fa52c9d098 Add first level folder contents to SOURCES for PK3 targets, so I can open the files from Visual Studio.
(cherry picked from commit c378cd4ff0b901051671932a39e3cb56e82541f4)

# Conflicts:
#	CMakeLists.txt
2016-09-24 09:17:17 +02:00
Edoardo Prezioso 7e4d0ecdbf - Fixed GCC/Clang regression post serialization. 2016-09-24 09:00:31 +02:00
Magnus Norddahl 8172949800 Merge branch 'lightmath' into dpdoom 2016-09-24 08:40:47 +02:00
Magnus Norddahl 4350587714 Remove accidental UpdateCameraExposure duplicate from merge 2016-09-24 08:40:28 +02:00
Magnus Norddahl c21090333f Merge remote-tracking branch 'qzdoom/master' into dpdoom 2016-09-24 08:17:49 +02:00
Magnus Norddahl d126e91ded Merge remote-tracking branch 'gzdoom/master' 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-24 08:12:12 +02:00
Christoph Oelckers ee2766d00b - made adjustments for new savegame code. 2016-09-24 01:47:44 +02:00
Christoph Oelckers 6bfbe30b99 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
#	src/g_level.cpp
#	src/p_saveg.cpp
#	src/r_defs.h
#	src/version.h

(note that this commit will not compile!)
2016-09-24 00:40:15 +02:00
Christoph Oelckers b7c822d208 - fixed secplane_t serializer. It passed incorrect defaults to the sub-serializers and calculated negiC wrong. 2016-09-23 23:47:25 +02:00
Christoph Oelckers 69291b9cf9 - completely eliminated the horrible fudging that went on with players during hub travel. This means that DestroyMostThinkers and the player substitution mechanism in the object deserializer are gone now.
I wish I had realized this the last time it came up - it would have saved me a lot of trouble.
But as it turns out, the more recent travelling code makes all of this completely unnecessary, working perfectly fine with deleting the player pawns along with the rest of the thinkers before loading the stored ones from the savegame (and getting rid of those in G_FinishTravel.)
And with a sane savegame format that does not depend on side effects from how the thinker serializing handled linking into the lists the old code was even harmful, leaving voodoo dolls behind.
I had the exact same effect when I tried to reshuffle some things for reliably restoring portals, but did not make the connection to interference between two mutually incompatible player travelling mechanisms that just worked by sheer happenstance with the original order of things.
2016-09-23 23:03:11 +02:00
Christoph Oelckers 2318db0b1a - let DWaggleBase use the interpolation pointer of its parent instead of defining its own one.
- do not call checking code for loading savegames when writing them in ACS module serializer.
2016-09-23 22:03:44 +02:00
Christoph Oelckers 36bf099d54 - fixed: object pointers as array members may not be skipped if they are null.
- changed S_GetMusic to return a const pointer to the actual music name instead of a copy. The only thing this is used for is the savegame code and it has no use for a copy, it can work far more efficiently with a const pointer.
2016-09-23 21:24:56 +02:00
Christoph Oelckers 02b3884dff - added copyright header to serializer.cpp. 2016-09-23 20:13:22 +02:00
Christoph Oelckers e4924c3d47 - added some missing End... calls in player deserialization code.
- fixed reading of music name.

In its current state the code is now capable of reading an E1M1 savegame and continuing play.
2016-09-23 20:05:12 +02:00
Christoph Oelckers d28d02839e - fixed: An actor's default stencil color should be set in DECORATE instead of doing some hackery elsewhere to compensate for the lack of initialization. 2016-09-23 19:19:26 +02:00
Christoph Oelckers b844ab137e - added some comments about the special player treatment in hub travels because this is not really intuitive... 2016-09-23 18:12:38 +02:00
Christoph Oelckers 01d28e3eb2 - added the last missing bits of the savegame code - thinker list deserialization and handling of players during hub travel. Now testing is what remains... 2016-09-23 17:49:33 +02:00
Christoph Oelckers edb7f7959e - re-enable some commented-out stuff. 2016-09-23 14:06:51 +02:00
Christoph Oelckers 86e9282193 - removed the sequential processing of JSON objects because the benefit is too small.
After testing with a savegame on ZDCMP2 which is probably the largest map in existence, timing both methods resulted in a speed difference of less than 40 ms (70 vs 110 ms for reading all sectory, linedefs, sidedefs and objects).
This compares to an overall restoration time, including reloading the level, precaching all textures and setting everything up, of approx. 1.2 s, meaning an increase of 3% of the entire reloading time.
That's simply not worth all the negative side effects that may happen with a method that highly depends on proper code construction.
On the other hand, using random access means that a savegame version change is only needed now when the semantics of a field change, but not if some get added or deleted.

- do not I_Error out in the serializer unless caused by a programming error.

It is better to let the serializer finish, collect all the errors and I_Error out when the game is known to be in a stable enough state to allow unwinding.
2016-09-23 14:04:05 +02:00
Christoph Oelckers 5a3f1dcdb6 - made reading of objects from the savegame work.
It turned out this may not be done automatically when opening the savegame - it has to be done later, after the pre-spawned map thinkers and all connected objects have been destroyed.
The object deserializer also has to be rather careful about dealing with parse errors, because if something goes wrong a whole batch of uninitialized or partially initialized objects will be left behind to destroy.
This means that no object class may assume that anything but the default constructor has been run on it and needs to check any variable it may reference.
2016-09-23 09:38:55 +02:00