Commit graph

1527 commits

Author SHA1 Message Date
Mitchell Richters
2bf11ad378 - All Games: Remove use of timerGetTicks(). 2020-08-26 09:49:38 +10:00
Mitchell Richters
aba5c4c134 - All Games: Remove use of timerGetHiTicks(). 2020-08-26 09:49:36 +10:00
Mitchell Richters
b883204f6a - All Games: Remove remaining use of totalclock and associated timing code. 2020-08-26 09:49:34 +10:00
Mitchell Richters
76b05dbcd6 - Build (and games): Remove totalclocklock. 2020-08-26 09:48:56 +10:00
Mitchell Richters
576b13248e - Build: Use I_GetBuildTime() in place of totalclocklock in animateoffs(). This makes the SW menu work pre-game. 2020-08-26 09:48:54 +10:00
Christoph Oelckers
70cac1db54 - removed unused parts from timer.cpp. 2020-08-25 21:47:03 +02:00
Christoph Oelckers
e97fb2ab7f - reduce message spam in the notification display. 2020-08-25 20:21:18 +02:00
Mitchell Richters
d3b506eb2b - Duke (and Engine): Eliminate use of totalclock for game.
* Breaks every other game except Duke unless/until they get migrated. Done for the purpose of demonstrating PR #244.

# Conflicts:
#	source/build/src/timer.cpp
#	source/games/duke/src/game.cpp
2020-08-25 19:51:12 +02:00
Christoph Oelckers
435e13dfa4 cleanup of the timer interface.
* rewrote all uses of timerSetCallback. Most were unnecessary or long obsolete, the sound updates need to run per frame, not per tic and the UI tickers need to be handled in the main loop anyway.
* Use a more precise timer to animate the menu transition.
* uncouple other menu animations from the game timer.
2020-08-25 19:42:11 +02:00
Christoph Oelckers
8b8f048393 - moved parts of videoNextPage to app_loop. 2020-08-23 18:08:08 +02:00
Christoph Oelckers
7fe7b9b8e0 - be gone, rotatesprite. 2020-08-23 14:59:34 +02:00
Christoph Oelckers
0843f5f04a - ported the final level's text screen and exported its text to the string table. 2020-08-22 18:12:19 +02:00
Christoph Oelckers
d645674c1c - consolidated the DEF parser parts in the backend.
Only Blood had some special handling - better implement callbacks here instead of requiring a second parsing pass.
2020-08-19 20:29:37 +02:00
Christoph Oelckers
e22d9b21e4 - changed SW's cheat prefix from 'sw' to 'lw' (i.e. Lo Wang) so that the cheats do not start with two movement keys. 2020-08-19 16:51:15 +02:00
Christoph Oelckers
60275c9b6b - started with SW's new main loop.
Intro and menu are done, the game loop is quite a mess, unfortunately.
2020-08-16 20:10:26 +02:00
Christoph Oelckers
fbdc6c7a6c - removed dead Polymer handling in model code. 2020-08-16 09:36:32 +02:00
Christoph Oelckers
3f9cc1412c - transitioning helper for screen jobs. 2020-08-15 10:55:21 +02:00
Christoph Oelckers
3455610031 - base palette cleanup.
Avoid passing this anywhere in the client code. It should only be set right before rendering the 3D view and the only code using the base palette should be the 3D renderer and hud_drawsprite.
Also make the palette override CVARs 3D view only in debug mode.
2020-08-14 21:18:14 +02:00
Christoph Oelckers
249c5b5734 - removed some dead code. 2020-08-14 21:12:32 +02:00
Christoph Oelckers
66cb7f61a4 - fixed rendering on narrow screens with an aspect ratio less than 4:3 and removed some parts that are no longer needed. 2020-08-14 21:01:27 +02:00
Christoph Oelckers
9c40c2f6af - don't draw screenblends when not in a 3D view.
Fixed #174.
2020-08-12 22:52:41 +02:00
Christoph Oelckers
4fef66c78a - SW script parser cleanup 2020-08-05 22:36:37 +02:00
Mitchell Richters
8817914744 - add printcoords as an ADD_STAT() define and move string code into static function for shared use between CCMD and ADD_STAT. 2020-08-04 21:56:32 +10:00
Mitchell Richters
38fa10326d - create engine CCMD printcoords. 2020-08-04 17:53:31 +10:00
Christoph Oelckers
8acc4101be - simplified calcSinTableValue and inlined it.
There's no need for all this magic voodoo - the sin function already returns the proper values all by itself.
2020-08-02 22:03:22 +02:00
Christoph Oelckers
6a305748ff - removed some C cruft from compat.h. 2020-08-02 21:25:03 +02:00
Mitchell Richters
3d165ee182 - extend mulscale/divscale pragmas with double versions of each. 2020-08-02 21:20:54 +02:00
Mitchell Richters
9c8593018b - define new function calcSinTableValue() to calculate an equivalent sintable[] entry.
* Returns a true double result.
* Also supports fractional input for fractional input. That is, if `sintable[1]` = 50 and `sintable[2]` = 100, `calcSinTableValue(1.5)` = 75.
* Increased precision of `BANG2RAD` define to use double and not float.
* As such, revert addition of `sintablef[]`.
2020-08-02 21:20:54 +02:00
Mitchell Richters
4301706e00 - promote fclamp() and fclamp2() to double. 2020-08-02 21:20:06 +02:00
Mitchell Richters
7b8e40c7e1 - create sintable sintablef[2048] as sintables of doubles.
* Also change BANG2RAD define to be a double and not a float.
2020-08-02 21:20:06 +02:00
Christoph Oelckers
18c3d9b240 - get the frame time right at the start of the frame, not when performing interpolations.
This is to factor think time out of the time span between frames and to avoid changes if the smoothratio gets calculated multiple times.
2020-08-02 21:16:01 +02:00
Mitchell Richters
4830989d32 - remove all code used to get current display's refresh rate.
* Serves no purpose in Raze or GZDoom and appears to only have been added to the backend to facilitate the older interpolation code that was excised in 893686709b.
2020-08-02 20:57:09 +02:00
Christoph Oelckers
b6cb0ce1a1 - consolidated shade to light conversion 2020-07-31 20:58:55 +02:00
Christoph Oelckers
3bcef7d587 - disable transparency testing, unless explicitly requested.
Fixes #60
2020-07-28 21:28:10 +02:00
Christoph Oelckers
74c4bbc0e0 - preparations for refactoring Blood's HUD drawer, mainly to pass the palette explicitly to the drawers. 2020-07-27 23:29:10 +02:00
Christoph Oelckers
b2f794bde5 - cache QAVs outside the file system as well.
- delete some voxel code that's software rendering only.
- apply Big Endian byte swapping for SFXs, as well, now that this no longer involves hacking the file system cache.
2020-07-27 19:37:02 +02:00
Christoph Oelckers
be9094cb97 Silenced lots of warnings pointed out by XCode. 2020-07-23 17:02:59 +02:00
Christoph Oelckers
368298d02d - enable the menu and console everywhere, except on the intro logos. 2020-07-22 00:42:50 +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
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
866be28da0 - clear the input state when starting a new map or loading a savegame. 2020-07-15 09:21:47 +02:00
Christoph Oelckers
2fd2ad2212 - sky code cleanup and transitioning of Duke's. 2020-07-15 00:06:19 +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
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
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
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
6b86d7606f - safety commit - does not compile! 2020-07-07 13:19:09 +02:00
Christoph Oelckers
f2380f8829 - constant cleanup. 2020-07-06 13:26:26 +02:00
Christoph Oelckers
cfe1e531c5 - activated the newly added render code and deleted the old one. 2020-07-05 21:21:39 +02:00
Christoph Oelckers
8a1206edbc Merge remote-tracking branch 'remotes/origin/master' into back_to_basics2 2020-07-05 11:55:41 +02:00
Mitchell Richters
bbacc9e816 - factor in xdimenscale and viewingrangerecip when calculating renderSetVisibility().
* Changes performed in 0bd460d9e3 didn't take into account xdimenscale and viewingrangerecip like the days of old and this wasn't picked up in d80a32d379 or d80a32d379, where the applied fixes only appeared to work because they worked for me at 2560x1440p.
2020-07-03 14:42:41 +02:00
Christoph Oelckers
c09b4896a6 - made RR summary screens work. 2020-07-01 22:14:11 +02:00
Christoph Oelckers
fc017f5868 - removed unused editwall variable. 2020-06-26 20:28:57 +02:00
Christoph Oelckers
e146e73345 - consolidated the 'music' parsing in Defs (pending a refactor of the MAPINFO system.)
- removed the remaining parts of the game Defs parser because we do not want anything EDuke in here.
2020-06-24 00:40:22 +02:00
Mitchell Richters
291475eeb5 - simplify visibility calculation from changes performed in d80a32d379.
* Achieves the exact same result in a cleaner fashion.
2020-06-23 14:16:42 +02:00
Christoph Oelckers
56834dee6b - 2D animation fix. 2020-06-22 00:27:11 +02:00
Christoph Oelckers
4c00e4cf7c - got rid of the old precaching code.
# Conflicts:
#	source/games/duke/src/zz_premap.cpp
2020-06-22 00:07:25 +02:00
Christoph Oelckers
ed9b418db7 - deleted a bit more unused code.
# Conflicts:
#	source/games/duke/src/zz_config.cpp
2020-06-22 00:06:34 +02:00
Christoph Oelckers
e3153f143d hudweapon
# Conflicts:
#	source/build/src/engine.cpp
2020-06-22 00:05:07 +02:00
Christoph Oelckers
990cb2acb8 -'shoot' replaced.
# Conflicts:
#	source/build/src/palette.cpp
2020-06-21 23:24:49 +02:00
Christoph Oelckers
f56a8360b0 - spawnglass functions and fta_sounds. 2020-06-21 23:23:21 +02:00
Christoph Oelckers
18d6a8e65d - another safety commit.
# Conflicts:
#	source/games/duke/src/zz_actors.cpp
2020-06-21 23:07:42 +02:00
Christoph Oelckers
e007b9bceb - safety commit 2020-06-21 23:07:41 +02:00
Christoph Oelckers
15c744f3da - movement code of the VM transitioned 2020-06-21 23:07:41 +02:00
Christoph Oelckers
577a800843 - the rest of sector.cpp, except for the input function. 2020-06-21 22:40:12 +02:00
Christoph Oelckers
92f5236b24 - more sector stuff. 2020-06-21 22:40:12 +02:00
Christoph Oelckers
c8cb0e4efd - the beginning of sector.cpp
The math backend functions have been moved out of Build because they originally have a good license.

# Conflicts:
#	source/build/src/mdsprite.cpp
#	source/build/src/polymost.cpp
2020-06-21 22:39:05 +02:00
Christoph Oelckers
8cc273955d - moveeffectors, actors.c complete. 2020-06-21 22:38:04 +02:00
Christoph Oelckers
7b75a0683a moveactors plus backing code. 2020-06-21 22:37:29 +02:00
Christoph Oelckers
89e555761d - guts and moves 2020-06-21 22:36:09 +02:00
Christoph Oelckers
c11963b41a - movesprite 2020-06-21 22:36:08 +02:00
Mitchell Richters
d80a32d379 - fix render visibility calculation following changes in 0bd460d9e3.
* Output from PrintVis() in 9dfd3ddd02 showed resulting global visibility as 0.078125.
* Following 0bd460d9e3, resulting global visibility shown as 0.041667.
* Scaling g_visibility by (8.f / 15.f) (0.533333) restores resulting global visibility to 0.078125.
2020-06-21 10:12:54 +02:00
Mitchell Richters
3325ef272e - make r_ambientlight work globally for all games by performing adjustment engine-side. 2020-06-21 10:12:54 +02:00
Christoph Oelckers
1bb7da173a - removed a few more dependencies on Build includes. 2020-06-20 18:17:49 +02:00
Christoph Oelckers
686999381b - moved non-Build definitions out of baselayer.h. 2020-06-20 17:52:10 +02:00
Christoph Oelckers
15d869ccde -moved scancodes.h out of Build folder.
This file is from the Duke source and available under a good license so it can be moved to a better place.
2020-06-20 12:54:33 +02:00
Christoph Oelckers
198ed45357 - clean up redundancy 2020-06-20 10:58:47 +02:00
Richard C. Gobeille
d28929c437 engine: add klabs() back into ksqrtasm_old() 2020-06-17 17:10:11 +02:00
Richard C. Gobeille
4128fd62c7 engine: set g_loadedMapVersion in engineLoadBoardV5V6()
# Conflicts:
#	source/build/src/engine.cpp
2020-06-17 12:26:05 +02:00
Richard C. Gobeille
1cab7b9765 engine: add divideu64()/divideu64_noinline() 2020-06-17 12:26:03 +02:00
Dino Bollinger
9c2c1cc765 Fix 3D model animation depending on the number of sprites present on the map.
Fixes terminx/eduke32#64.
2020-06-17 12:26:03 +02:00
Christoph Oelckers
2a29dbf793 - use backend independent code to render the camera textures. 2020-06-14 21:57:21 +02:00
Christoph Oelckers
946da7d622 - moved the textures used for the animations into the texture manager.
This is to allow giving them a texture ID so that they can be used from ZScript which has no access to naked textures.
This also consolidates AnimTexture and VpxTexture.
2020-06-14 20:27:13 +02:00
Christoph Oelckers
67b1963e7c - fixed render state management.
There are effectively two states - the one in the backend and a local one in the drawer for the render list which is supposed to eliminate some of the more costly repeated calls.
This higher level state was cached globally, which did not work anymore because the real render state could be changed elsewhere without this code realizing it.
All this means that the render list drawer must create a new state cache for each call and also must apply its current pending render state before leaving to ensure that everything is properly reset.
2020-06-12 22:32:49 +02:00
Christoph Oelckers
a419181c36 - simplified screenshot code. 2020-06-12 00:39:06 +02:00
Christoph Oelckers
f2d075e0d0 - code cleanup. 2020-06-12 00:37:40 +02:00
Christoph Oelckers
6a9f1e9da1 - removed the old OpenGL interface. 2020-06-12 00:25:52 +02:00
Christoph Oelckers
ba397f5ca1 - always draw floors opaque 2020-06-11 23:55:23 +02:00
Christoph Oelckers
22aad4999c - use the engine backend to render the scene 2020-06-11 22:26:46 +02:00