commit 48c8d3b4b265836e7e092b7553e16bd68fc1728e Author: Evan Ramos Date: Thu May 21 01:32:40 2020 -0500 SW: Remove pre-release software warning commit aee713b59a65d0a0f81c20c48b9499f5fb132927 Author: Evan Ramos Date: Sun May 17 23:52:33 2020 -0500 Synchronize file extensions for GRP scanning between Duke 3D and SW This way running both from the same folder won't invalidate the cache. commit ba2dc697888a08ad4d32bed719a7a52ff387d5e2 Author: Evan Ramos Date: Sun May 17 23:50:24 2020 -0500 SW: Add forgotten call to FreeGroupsCache() commit f8286c718e6df26020858cdddc36927a73186f07 Author: Evan Ramos Date: Sun May 17 23:47:42 2020 -0500 SW: Fix warning: function 'MNU_ClearFlags' is not needed and will not be emitted [-Wunneeded-internal-declaration] commit 0e93318436a613fe568a36b5cd9cacd1a9745ebc Author: Evan Ramos Date: Tue Feb 18 23:59:55 2020 -0600 SW: Fix music volume slider commit 7c9331a210179565844f5f6272063f807f2d5c48 Author: Evan Ramos Date: Tue Feb 18 23:34:57 2020 -0600 SW: Add FOV slider commit 3e9cbdd65d5b11d43cce8b140f43cae274c2d0e2 Author: Evan Ramos Date: Tue Feb 18 22:54:19 2020 -0600 SW: Add "Game Saved" message commit c1db471ddf59eae082ae0e206ea292f0f7f60679 Author: Evan Ramos Date: Tue Feb 18 21:50:20 2020 -0600 SW: Fall back gracefully if map mirror tags are not fully correct commit 1fe56a76475a359ae27bd49b5f50891c6a05c9c1 Author: Evan Ramos Date: Tue Feb 18 21:08:00 2020 -0600 SW: Instrument Saveables with debug_break commit c19a28c851801f0b12f6757b3d57678b5e8ddadf Author: Evan Ramos Date: Tue Feb 18 20:55:05 2020 -0600 SW: Add PanelSpriteFunc values to saveables commit 07df0ebb7c7680a6b307527f72135efa6f3ae9a7 Author: NY00123 Date: Sun May 3 00:20:48 2020 +0300 SW: Afraid that we should disable almost all kinds of SOs in multiplayer for now, due to possible jitters. Currently leaving remote-controlled SOs. commit bb3ead12e92b9551ae4f44f8648b38f3a79a0315 Author: NY00123 Date: Fri May 1 18:47:30 2020 +0300 SW: Call FunctionKeys from getinput only if the latter is called from faketimerhandler. This should fix the timing of playing an RTS file's sound and sending the corresponding message. commit 5e14c8f909de86ad7f2c6378d9fdb9fa18550b85 Author: NY00123 Date: Fri May 1 18:46:55 2020 +0300 SW: Fix aiming in coop view commit 00ed85d50b7b34cf3fa573b1645299c9d9bd6c85 Author: NY00123 Date: Fri May 1 18:10:48 2020 +0300 SW: Don't interpolate a non-remote sector object controlled by the player. Make sure looking up/down is still smooth. commit 5ea24e8277fb6694bcf635e0d0512c3e2a37db5b Author: NY00123 Date: Fri May 1 16:35:46 2020 +0300 SW: Disable interpolation of sector objects that don't move as smooth as possible in multiplayer commit cac10455d271603af794407e83330b1112564a4c Author: NY00123 Date: Fri May 1 15:11:08 2020 +0300 Store sector object interpolation data in saved game commit 8a4c9ba0e3c9a4b21307ede02f2a9f54905aca60 Author: NY00123 Date: Fri May 1 15:05:18 2020 +0300 Remove the preceding sprite interpolation functions, not needed anymore commit 95485ac55eb6b1604d068768e06b3508df66f90f Author: NY00123 Date: Fri May 1 14:29:12 2020 +0300 SW: Let's make use of interpso.*. Still need to do a few more things. commit b7dbf622167c1e9d6d4e8f0de31978efda174f65 Author: NY00123 Date: Fri May 1 13:03:53 2020 +0300 Add Sector Object interpolation menu toggle; Still having no impact. commit d3c0b9e1e6f9269057c22ba92fc048f5425b26d2 Author: NY00123 Date: Fri May 1 12:28:49 2020 +0300 SW: Add the currently-unused interpso.* files, enabling interpolation of sector objects as whole groups of points and sprite angles. The following goals are intended to be achieved with this code: - Make it easy to let the user toggle sector object interpolation. - Interpolate the angles of sprites carried by sector objects. - Use the right amount of samples for interpolating a sector object, depending on the players' locations, as done in the checks within DoSector. Unfortunately, modifying DoSector itself to unconditionally call MoveSectorObjects(sop, synctics) technically changes the way sectors move (in the logical sense), and was found out to make a specifically constructed user map unbeatable. - Make it easy to disable interpolation of a whole sector object in case of a need. This is especially important if such an object is controlled by a player in multiplayer, mostly since this isn't compatible with the way player prediction is working. commit 9ea0503b06386c0351434ee65a4339bde2a0a0db Author: NY00123 Date: Fri May 1 12:12:28 2020 +0300 SW: Add the currently unused InterpolateSO option. A known issue, which also applies to existing settings like the voxel toggle, is that its value gets written to the saved game, and when such a game is loaded, the its value gets overwritten by the one in the saved game. Options should move to settings.cfg later, anyway. commit c7125c9dd0d12afa4bdb99df6820d503358625cd Author: NY00123 Date: Fri May 1 00:56:26 2020 +0300 SW: Add the oangdiff field to USER struct as suggested by Hendricks, and use it in MovePoints. This will be used for interpolating the angles of sprites carried by SOs soon. commit 999a491c716b3b152f31332618ed2c9bdea12da0 Author: NY00123 Date: Sun Apr 19 21:27:33 2020 +0300 SW: Interpolate the player's bob_z, based on suggestion by Striker. Using pp instead of ppp seems to work better with prediction. commit 2b1a271cb2f457dbd1aa5ad3f65f81a4cb8318f4 Author: NY00123 Date: Sun Apr 19 21:16:56 2020 +0300 sw/src/network.cpp: Disable most of the packet transmission debug messages unless NET_DEBUG_MSGS is defined commit c3773c20d7ae29b32d0a31e26edc69c8cc9e295e Author: NY00123 Date: Sun Apr 19 21:15:57 2020 +0300 sw/src/draw.cpp: Import from Duke3D the Polymost shadow drawing hacks commit dbf1e37362ccf5f01422aa8d897ea0e5bf197a47 Author: NY00123 Date: Sun Apr 19 00:58:45 2020 +0300 sw/src/network.cpp: Fix waitforeverybody in Master/Slave modes. This uses SVN r1135 and r1143 as a reference. commit 6f4e768620e20768202dc80e5c171490374871a4 Author: NY00123 Date: Sat Apr 18 23:54:28 2020 +0300 sw/src/network.cpp: Fix sending of messages in Master/Slave. Thanks Dynamo for spotting the bug. commit 4a8175566f84a2b12aee4b654c218c240a3036e1 Author: NY00123 Date: Sat Apr 18 17:38:31 2020 +0300 sw/src/draw.cpp:analyzesprites: Interpolate other players' sprites, in a similar manner to what's done in Duke3D (with the addition of the angle). There seem to be some jitters with this, mostly in Master/Slave mode. Decreasing PAKRATE in mmulti.cpp might also increase the frequency of this occuring in Peer-2-Peer mode. commit 989cc96dfa8869602632be6fa7ff67e5f0d0cb39 Author: NY00123 Date: Sat Apr 18 14:01:35 2020 +0300 sw/src/jsector.cpp:JS_DrawMirrors: Make camera oscilation less dependent on the frame rate. It would probably be better to update this from the game loop side, like in Duke3D, but it's still better than the preceding situation. commit 9d6c8da02de3f2fb87f4a502cdbc3f25885b2696 Author: Mitchell Richters Date: Sat Apr 18 11:10:35 2020 +0300 SW: Q16.16 refinements in DoPlayerDeathFollowKiller. commit 1f5442791246b0a5204a5c676adc420c03cff360 Author: Mitchell Richters Date: Sat Apr 18 11:03:00 2020 +0300 SW: Add GetDeltaQ16Angle. commit 4c71e46e32da29901eb059b336dcb1b1cec24f05 Author: NY00123 Date: Sat Apr 18 01:55:39 2020 +0300 Add PedanticQ16AngleFloor to sw/src/game.h and use it in DoPlayerTurn commit 0c6a86e0bcd9a5aed07e53166da2576738a74b38 Author: NY00123 Date: Sat Apr 18 00:47:17 2020 +0300 SW: Remove drive_oangvel from PLAYERstruct. We can use local variables instead. commit b2b278767c43995f8fa00543fcbccaf46957f8f6 Author: NY00123 Date: Sat Apr 18 00:10:55 2020 +0300 SW - Hopefully a better way to decide if getinput should call DoPlayerTurn/DoPlayerHorizon while input is tied to the frame rate: Introduce the new player flags PF2_INPUT_CAN_TURN and PF2_INPUT_CAN_AIM. Set PF2_INPUT_CAN_TURN if DoPlayerTurn can be called outside of getinput. Similarly set PF2_INPUT_CAN_AIM if DoPlayerHorizon can be called in this manner. getinput will only call DoPlayerTurn/DoPlayerHorizon if PF2_INPUT_CAN_TURN/PF2_INPUT_CAN_AIM is set. These flags are reset right before the call to the player's current DoPlayerAction function. For one example in which this assists, it's not always the case that DoPlayerDeathFollowKiller may call DoPlayerTurn, even if we assume that pp->input.q16angvel is never zero. commit dd867e71fff0a6d7609c5604252ca35db6e995b7 Author: NY00123 Date: Sat Apr 18 00:09:27 2020 +0300 SW: Temporarily lock angle and horiz right upon player death commit f2d8af9bc19d326223c2ded23983538e255a54b5 Author: NY00123 Date: Fri Apr 17 17:33:20 2020 +0300 sw/src/draw.cpp:drawscreen: Don't interpolate while the game is paused commit bcddc01a99651a1b41de29b1913d4a4634b91c5f Author: NY00123 Date: Fri Apr 17 23:33:10 2020 +0300 sw/src/game.cpp: Remove unused ReloadPromptMode variable commit 3cdeeab05899171e0b983e5a4f883e6cd0b4fb2f Author: NY00123 Date: Fri Apr 17 17:31:23 2020 +0300 Minor SW cleanup: Have a single declaration of GamePaused within game.h. Do the same with ReloadPrompt. commit 30eb858f81fdd0483c1f74f291fca3a3e93457f8 Author: NY00123 Date: Fri Apr 17 16:26:12 2020 +0300 SW: Migrate the player's RevolveAng field to Q16.16 format. This fixes truncations of q16ang in MovePlayer. One known fixed issue is a minor micro-shaking effect, reproduced while standing on a non-moving SO (e.g., the bus in level 1). The latter is also related to the use of camq16ang. Based in idea on patch from mjr4077au. commit 82c02f4200ab59d18506ab324aa54ae5626d9639 Author: NY00123 Date: Fri Apr 17 16:24:25 2020 +0300 sw/src/draw.cpp:drawscreen: Use GetQ16AngleFromVect for pointing at a remote-controlled SO. In case PedanticMode == FALSE, this leads to small improvements with aiming at the car in EXAMPLE.MAP. commit bdd4cd86fbb86a99b35a4dd63a7aaa94acd66586 Author: NY00123 Date: Sat Apr 18 10:43:54 2020 +0300 Add GetQ16AngleFromVect wrapper function to sw/src/game.h commit 9bdb87cea937307907daf0db1fb1fc40f3a7e45f Author: NY00123 Date: Fri Apr 17 16:21:22 2020 +0300 Add gethiq16angle and the getq16angle wrapper to the engine commit c8887525e5045ea4d6eb7181eb848c372fb569a9 Author: NY00123 Date: Thu Apr 16 21:43:14 2020 +0300 SW: Lock angle and horiz right after teleporting to sprite commit 1a3c9e3a15ba788607dfd96ebcc75a2198be6d69 Author: NY00123 Date: Thu Apr 16 02:24:21 2020 +0300 sw/src/draw.cpp:drawscreen: Removing the check that pp->sop_control is non-null seems to resolve the newly introduced interpolation issue for looking up/down while controlling a sector object. We can also remove the PF_DEAD test, since game.cpp:getinput should lock any kind of aiming. src/src/game.cpp:getinput: We now, however, need to further lock turning here while controlling a sector object. commit 5e6acf23dfff91a30a55977aa2c36c783fc0f76d Author: NY00123 Date: Thu Apr 16 02:12:32 2020 +0300 SW: Ensure the player's rendering angle is in sync with a rotating sector. This re-introduces the angle interpolation in drawscreen while sector object interpolation is in use. A side-effect of this is that looking up/down is now less smooth while controlling a sector object (e.g., a turret). commit 966e9bdb5328806ca163537bab134b2c9787c4bd Author: NY00123 Date: Wed Apr 15 18:42:15 2020 +0300 sw/src/track.cpp:MovePlayer: We also need to update pp->camq16ang here. Note that this angle is currently not interpolated, as done for the sector. commit bf31bc2987a3eccd31d343622327bd4ee0f9c5a1 Author: NY00123 Date: Wed Apr 15 14:45:19 2020 +0300 sw/src/track.cpp:MovePlayer: Missed this in preceding interpolation fixes commit ab8aee8e378a5bac027ec56a84268fa2f134ca07 Author: NY00123 Date: Wed Apr 15 13:21:11 2020 +0300 sw/src/track.cpp: If interpolation is enabled, also cover the SO's midpoint. Fixes aiming at a remote controlled SO. See https://voidpoint.io/terminx/eduke32 for more details.