Commit Graph

4932 Commits

Author SHA1 Message Date
Christoph Oelckers 61f5247b71 -let's hope this will solve the pausing problem for good.
The checks for game pause were totally inconsistent, so now there is a utility function that tells whether the game is supposed to run or not.
pause can also take 3 values now - 0 for no pause, 1 for pause from opening the menu or console or 2 for hitting the pause button.
2020-07-21 22:46:26 +02:00
Christoph Oelckers 6227f9f7fd - optimizations for better savegame performance. 2020-07-21 21:32:38 +02:00
Christoph Oelckers 1869a7930e - hooked up the new savegame code.
Not tested yet.
2020-07-21 00:07:02 +02:00
Christoph Oelckers 9ace06ad81 . deleted the old savegame.h file. 2020-07-20 23:22:40 +02:00
Christoph Oelckers 7eb158bf72 - properly tabified everything. 2020-07-20 23:21:27 +02:00
Christoph Oelckers ba7997b611 - implemented most of the savegame code and deleted the old one. 2020-07-20 23:07:44 +02:00
Christoph Oelckers c16115d76c - first stage of new savegame code.
This also refactors the animateptr array into something serializable. This kind of pointer lookup is virtually unrestorable without creating platform locked savegames.
2020-07-20 20:40:29 +02:00
Christoph Oelckers 2d78643c4d - initial savegame work. 2020-07-20 18:43:50 +02:00
Christoph Oelckers 06fa1391f5 - did some cleanup on the global variables. 2020-07-20 18:43:50 +02:00
Christoph Oelckers 16efa87701 - started sorting variables in globals.h and removed player.h after cleaning it out. 2020-07-20 18:43:50 +02:00
Christoph Oelckers 7d7ae9e463 - fixed gamestartup parser so that it can detect script versions again. 2020-07-20 18:43:50 +02:00
Christoph Oelckers 3028b3f3fd - merged game.h into global.h and game.cpp into global.cpp.
Meaning that all global declarations are in one file now.
2020-07-20 18:43:50 +02:00
Christoph Oelckers 08909f414a - merged playerdata_t into player_struct 2020-07-20 18:43:49 +02:00
Christoph Oelckers a40343ae00 - premap.h is also gone because it didn't contain anything relevant anymore. 2020-07-20 18:43:49 +02:00
Christoph Oelckers c3fb679992 - more header cleanup work, macros.h is gone. 2020-07-20 18:43:49 +02:00
Christoph Oelckers 2dcaf25fea - put the entire CON parser into a class to make its state local to the caller 2020-07-20 18:43:49 +02:00
Christoph Oelckers 9346b5de7e - testing stuff. 2020-07-20 18:43:48 +02:00
Christoph Oelckers f9842fc4a8 - implemented running screen jobs from the main loop.
The entire game now has only one single place where videoNextPage gets called.
2020-07-20 18:43:48 +02:00
Christoph Oelckers e2e9c8ad01 - fixed the timer. 2020-07-20 18:43:48 +02:00
Christoph Oelckers 31b9995406 - rewrote the ScreenJob player as a class that can be called by an asynchronous dispatcher.
Works, except for timing issues with ANMs.
2020-07-20 18:43:48 +02:00
Mitchell Richters 2ce612e8ab - remove multiplier when finalising player's angle in `FinalizeInput()`.
Not sure how this came to be but was causing rather accelerated angle adjustments compared to the stock game.
2020-07-20 20:38:38 +10:00
Christoph Oelckers 72bf70811e - restructured exitlevel for asynchronous handling of the summary screen. 2020-07-19 00:53:13 +02:00
Christoph Oelckers a1001c5fdd - changed startnewgame to handle the screen jobs asynchronously. 2020-07-19 00:26:36 +02:00
Christoph Oelckers a3e9ea97a8 - merged the two main loops into one.
Yet to do: Run the screen jobs from the main loop as well.
2020-07-18 23:50:46 +02:00
Christoph Oelckers e97e663b49 - more restructuring of asynchronously playing sequences. 2020-07-18 22:38:19 +02:00
Christoph Oelckers c767ead84f - properly route gameexitfrommenu through the callbacks. 2020-07-18 21:28:57 +02:00
Christoph Oelckers ded0edae0c - fixed return_to_center 2020-07-18 14:30:17 +02:00
Christoph Oelckers d88ae50923 - moved a few global variables around so that they don't get lost for handling savegames or a global state reset. 2020-07-18 13:38:16 +02:00
Christoph Oelckers 36d61fc662 - make sure that the static time counters in the input code do not accumulate while not in use.
The one for holding the turn key needs to be reset any time there is no turning and everything needs to be cleared when the input state is cleared. And all need to check for the case where the static state is not set yet.
2020-07-18 13:27:24 +02:00
Christoph Oelckers e70115ff5c - put the CON interpreter into a class to get rid of its global variables. 2020-07-18 12:37:35 +02:00
Christoph Oelckers 28965eefd5 - moved the main loop to gameloop.cpp. 2020-07-18 11:56:49 +02:00
Christoph Oelckers f9e76ba178 - merged the last two functions of the input code with input.cpp. 2020-07-18 09:59:16 +02:00
Christoph Oelckers ac3925f64d - cleanup 2020-07-18 01:40:18 +02:00
Christoph Oelckers ba69084aa5 - consolidated the movement block check after discovering that it wasn't handling things properly for all games. 2020-07-18 01:34:13 +02:00
Christoph Oelckers 47a0b14b43 - the main input function is also free of conflicts. That leaves 3 functions with roughly 4kb of code that cannot be redone without using EDuke code. 2020-07-18 00:59:10 +02:00
Christoph Oelckers 6c2600df51 - cleanup of the main input code.
Only 8 kb code left that is clearly recognizable as coming from EDuke32.
2020-07-18 00:34:20 +02:00
Christoph Oelckers 1d685d24e9 - fixed handling of BitsToSend. 2020-07-17 22:19:22 +02:00
Christoph Oelckers 7bc2befc84 - consolidated the finalizing parts of the input code and fully merged most of the bike/boat handlers.
Turned out that the only major difference was already split off into subfunctions.
2020-07-17 22:09:01 +02:00
Christoph Oelckers 61d08f41e0 - fixed DTA_KeepRatio. 2020-07-17 21:14:58 +02:00
Christoph Oelckers d1b4c34ff9 - re-added the hud_input call that somehow got lost. 2020-07-17 21:09:07 +02:00
Christoph Oelckers 29e107ad24 - use CCMDs for weapon and inventory selection, courtesy of ZDuke. 2020-07-17 20:56:10 +02:00
Christoph Oelckers 01d3ca870d - more consolidation between old and new input paths.
This also simplifies the one_eighty handling to be closer to the original idea.
2020-07-17 11:46:23 +02:00
Christoph Oelckers dc9c8a0e60 - consolidation of pitch code for aim mode 0. 2020-07-17 00:32:26 +02:00
Christoph Oelckers 7ba4e4de97 - weapon selection offloaded and cleaned up. 2020-07-16 23:32:00 +02:00
Christoph Oelckers 43c4c5eb5e - consolidated some parts common to the 3 input routines. 2020-07-16 22:49:26 +02:00
Christoph Oelckers ff9e2c3f5e - same procedure for the motorcycle - and again roughly 10% of the input code down. 2020-07-16 19:16:56 +02:00
Christoph Oelckers fca4bdcafb - split out the main movement calculation out of P_PlayerInputBoat and used the original code for providing a replacement. 2020-07-16 18:58:31 +02:00
Christoph Oelckers 38751d19ac - changed all SYNCINPUT #defines into runtime checks so that both parts can be used and consolidated the 4 versions of the SeaSick code. 2020-07-16 17:59:25 +02:00
Christoph Oelckers 2888f29e32 - reenable the logos. 2020-07-16 15:18:27 +02:00
Christoph Oelckers f530732c46 - adjustments for input 2020-07-16 15:03:09 +02:00
Christoph Oelckers 55feadd11c - render the weapons with the DrawTexture interface and properly handle rotatesprite's alignment modes 2020-07-16 13:23:26 +02:00
Christoph Oelckers a066c5bc4b - make everything compile again. 2020-07-16 00:27:09 +02:00
Christoph Oelckers 39a6ab6f0e - input update - safety commit 2020-07-15 23:44:07 +02:00
Christoph Oelckers d139720607 - cleaned up the setup code and consolidated everything in a separate file. 2020-07-15 21:11:23 +02:00
Christoph Oelckers ea6c74d0e6 - transitioned the local input handler.
There wasn't anything EDuke32-specific in there - nearly everything mapped perfectly to JFDuke.
2020-07-15 19:48:04 +02:00
Christoph Oelckers a0cd407632 - cleanup on pausing code. 2020-07-15 18:10:31 +02:00
Christoph Oelckers 381e15a9b2 - renamed playerdata_t::input back to sync and made it a static array again. 2020-07-15 13:10:18 +02:00
Christoph Oelckers a9f152c1fe - added JFDuke's label type checker and did some cleanup on the CON init code.
Most importantly: Use dynamic buffers for managing the labels instead of hijacking some other storage space.
2020-07-15 12:34:42 +02:00
Christoph Oelckers 866be28da0 - clear the input state when starting a new map or loading a savegame. 2020-07-15 09:21:47 +02:00
Christoph Oelckers 99161e2e4a - made ps an array of player_struct like it originally was. 2020-07-15 00:26:58 +02:00
Christoph Oelckers 2fd2ad2212 - sky code cleanup and transitioning of Duke's. 2020-07-15 00:06:19 +02:00
Christoph Oelckers 4598cf13d7 - reverted the frags array to its original form, moved InitRRRASkies to zz_common.cpp and deleted zz_premap.cpp. 2020-07-14 21:42:46 +02:00
Christoph Oelckers d5689d3926 - removed net.h as well. 2020-07-14 21:31:15 +02:00
Christoph Oelckers 1e9679aceb - removed faketimerhandler and the last static remains of EDuke's netcode. 2020-07-14 21:15:37 +02:00
Christoph Oelckers af225abf80 ... 2020-07-14 21:05:26 +02:00
Christoph Oelckers 05abc262ba - removed libdivide for good and the unused C++ wrapper for fix16 along with it. 2020-07-14 20:57:42 +02:00
Christoph Oelckers 3cd475570c - fixing problems. 2020-07-14 20:39:48 +02:00
Christoph Oelckers 424716bb88 - say goodbye to libdivide! 2020-07-14 20:21:16 +02:00
Christoph Oelckers 2f3d405f8b - moved getatoken to scriptfile.cpp so common.cpp could be removed. 2020-07-14 19:51:54 +02:00
Christoph Oelckers f9c03760a3 - removed setuptile DEF command due to the hacky implementation and general uselessness of what can be done with it. 2020-07-14 17:47:11 +02:00
Christoph Oelckers fedeec73c7 - cleaned out some unused parts of engine.cpp 2020-07-14 17:35:19 +02:00
Christoph Oelckers 5655015691 - YAX is also gone now. 2020-07-14 16:06:14 +02:00
Christoph Oelckers 1d9d1396ac - got rid of print.h (a.k.a. 'how not do design a text formatting library'.) 2020-07-14 15:41:19 +02:00
Christoph Oelckers 117e78cb3b - removed clipshape feature as it is a feature of modern EDuke32 maps only. 2020-07-14 15:36:25 +02:00
Christoph Oelckers 19ef0cd295 - removed screentext and reverted Blood to its original text output. 2020-07-14 15:25:35 +02:00
Christoph Oelckers 1a0b388570 - removed a few tabledivide uses in the game modules 2020-07-14 14:08:59 +02:00
Christoph Oelckers aa01adb2f1 - removed osd.h as it was merely a minimal wrapper around c_dispatch, giving some alias names.
Nothing that's needed when cutting ties to upstream.
2020-07-14 14:00:27 +02:00
Christoph Oelckers 2e05ff532b - got rid of the struct trackers.
They were only used for handling an undefined case in the renderer but the overhead and side effects were too severe.
2020-07-14 13:51:03 +02:00
Christoph Oelckers f307b2a954 - removed the old Duke and RR subprojects.
These seriously stand in the way of backend cleanup that is needed to do a release based on the new code.
2020-07-14 13:09:34 +02:00
Christoph Oelckers 7e261425bb - time to get rid of clockticks.hpp.
Aside from its non-existent license it was also not the correct way to handle more precise view interpolation.
2020-07-14 13:00:52 +02:00
Christoph Oelckers a93ed1e502 Merge branch 'master' into back_to_basics2
# Conflicts:
#	source/blood/src/view.cpp
#	source/core/gamecontrol.cpp
2020-07-14 12:57:38 +02:00
Christoph Oelckers 9caf1ead91 - use the common interpolation function for Blood.
This keeps the main calculation for time difference in one place.
2020-07-14 12:48:56 +02:00
Christoph Oelckers 893686709b - removed the redundant rfreq factor from CalcSmoothRatio.
I never realized it was redundant when consolidating the interpolation math into one function - originally this was done in a way that it wasn't obvious.
This also eliminates the dependency on refreshFreq which never actually made any sense.
2020-07-14 12:32:59 +02:00
Christoph Oelckers 481ac965cf - reverted ClockTicks to an integer so that interpolation can be reimplemented without it affecting the global game timer.
The entire method at use here is essentially not correct. Interpolation should be handled independently of the game timer directly based on the underlying clock, like in ZDoom.
There's interpolation bugs in the Build games that cannot be fixed if totalclock is used for it, but if we use something else we do not need a fractional totalclock.
2020-07-14 11:52:38 +02:00
Christoph Oelckers a24034e087 - removed some demo code from savegame.cpp. 2020-07-07 23:07:03 +02:00
Christoph Oelckers 319e2e2745 - minor cleanup 2020-07-07 23:01:34 +02:00
Christoph Oelckers ecddd8687c - newgame is clean now. 2020-07-07 22:41:31 +02:00
Christoph Oelckers 63eaec916b - fixed a few things.
Basic level progression is working, special cases still need testing, but for now it's good enough.
2020-07-07 21:38:20 +02:00
Christoph Oelckers 01fce31f43 - everything compiles again.
Still needs testing.
2020-07-07 20:27:21 +02:00
Christoph Oelckers 915b566612 - another safety commit. 2020-07-07 17:56:20 +02:00
Christoph Oelckers 6b86d7606f - safety commit - does not compile! 2020-07-07 13:19:09 +02:00
alexey.lysiuk df2b3b6b17 - made mouse scaling in Cocoa backend match other platforms 2020-07-07 11:37:23 +03:00
Christoph Oelckers dd45749650 - got rid of m_level_number and m_volume_number.
These were only needed so that G_NewGame_EnterLevel could be called without parameters. Ouch!
2020-07-07 10:17:02 +02:00
Christoph Oelckers 7f3c0ef16c - safety commit 2020-07-07 09:39:33 +02:00
Christoph Oelckers 34874d1a21 - migrated displayrest and took the opportunity to un-fuck the palette management. 2020-07-07 04:54:12 +02:00
Christoph Oelckers b6f410923e - restored most of the original user_defs.
Most of the added EDuke things were gone anyway.
2020-07-07 00:16:54 +02:00
Christoph Oelckers 43ff87f47f - lightened player.h a bit more. 2020-07-06 23:50:14 +02:00
Christoph Oelckers dca7e158bb - "po" reverted 2020-07-06 23:33:33 +02:00
Christoph Oelckers e8ebeefaad - started consolidating the struct types.h 2020-07-06 23:24:35 +02:00
Christoph Oelckers 642ae03d90 - use player_struct from JFDuke. 2020-07-06 23:05:48 +02:00