Commit graph

1622 commits

Author SHA1 Message Date
Christoph Oelckers
42b87362ee - When keeping around a dummy sprite, make sure that the engine's utilities cannot find it anymore.
This was causing issues with the master switch sprites in Duke that have to be kept for sound purposes.
Unfortunately, both hitscan and neartag are far too dumb to analyze sprites they may hit in any way and needed some help skipping such sprites.
2021-04-17 09:37:38 +02:00
Christoph Oelckers
0ee28fb45e - also handle SW's voxels. 2021-04-11 13:38:23 +02:00
Christoph Oelckers
9fd3ab6b5e - fixed texture precaching.
After the migration to GZDoom's full backend this never created any textureds when precaching things.
2021-04-11 09:59:55 +02:00
Christoph Oelckers
0bdbf0f1cb - fixed: alpha was never set for voxels.
Fixes #304
2021-04-11 08:26:36 +02:00
alexey.lysiuk
57c7a85d9f - fixed compilation with Clang
source/build/src/defs.cpp:3198:56: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2021-04-09 15:55:30 +03:00
Christoph Oelckers
fb02b38279 - better .def loading logic.
To allow cumulative loading without interfering with other ports, Raze will now look for files called xxxx-raze.def, where xxxx is the default .def name (e.g. duke3d-raze.def for Duke3D.) and if that is found, cumulatively load all same-named files - it will fall back on the default name if no such thing is found.
-def still overrides both and will not cumulatively load.
2021-04-09 14:30:01 +02:00
Christoph Oelckers
778a75c097 - fixed rffdefineid handler passing a bad file name to the backend. 2021-04-08 21:36:52 +02:00
Christoph Oelckers
424c0ce3f4 - testing some script parser improvements. 2021-04-06 15:07:12 +02:00
Christoph Oelckers
8e31c34b06 - fixed tileImportFromTexture.
* the parser read numbers with leading zeros as octal, which is not wanted here
* texture lookup by file name must be forced for root directory entries.
2021-04-04 21:02:04 +02:00
Christoph Oelckers
97a0cb2a10 - handle voxel rotation in the backend to enable it for all games.
This was previously only present in the Blood module and missed in Exhumed from upstream so the entire option was rather pointless.
Fixes #290
2021-04-04 10:33:29 +02:00
Christoph Oelckers
952bccbf5f - added a check for game-side-defined voxels when discarding one-sided wall sprites viewed from the back. 2021-04-03 21:49:28 +02:00
Christoph Oelckers
ac82838859 - removed unused 'wallvisible' function. 2021-03-15 18:58:14 +01:00
Christoph Oelckers
8aa59f2385 - use clamp instead of bit masking to handle out of range interpolation factors for models. 2021-03-15 11:35:39 +01:00
Christoph Oelckers
ad8654ed06 - fixed maphack loader.
The duplicate 'currentSprite' variable prevented it from doing anything.
Also cleaned up the interface a bit to avoid using a global variable for parameter passing.

Fixes #279
2021-03-07 09:39:16 +01:00
Christoph Oelckers
bbd5c0ac8b - transitioned voxel rendering to use the backend's implementation. 2021-03-02 17:10:34 +01:00
Christoph Oelckers
2094b6420f - use local screen size variables in automap code. 2021-02-27 12:30:20 +01:00
Christoph Oelckers
783328c5fa - removed some unused declarations. 2021-02-27 12:29:07 +01:00
Christoph Oelckers
99f1f0952a - little bit of engine cleanup. 2021-02-25 12:16:21 +01:00
Christoph Oelckers
cf672b508f - removed unused 'updatesectorexclude' function. 2021-02-02 23:13:40 +01:00
Christoph Oelckers
c342594691 - Exhumed: fixed wall scrollers. 2021-01-14 23:55:45 +01:00
Mitchell Richters
07a43c572e - Build: Extend spritetype struct with interpolation variables and numerous methods to do with pos, angle and interpolation of such. 2021-01-06 06:22:27 +11:00
Mitchell Richters
5124c0daec - Amalgamate ksgn and sgn into Sgn in cmdlib.h, and remove pragmas.h. 2021-01-05 07:31:37 +11:00
Mitchell Richters
b36bea7c69 - Replace scale() calls with Scale() from common. 2021-01-05 07:31:34 +11:00
Mitchell Richters
3c5d553456 - Move krecipasm() from pragmas.h into polymost.cpp. 2021-01-05 07:31:30 +11:00
Mitchell Richters
d460f048fa - Remove klabs() define and replace with abs(). 2021-01-05 07:31:28 +11:00
Mitchell Richters
b9c2af130a - Replace divscale() calls with DivScale() from common. 2021-01-05 07:31:26 +11:00
Mitchell Richters
868aa7f07a - Replace mulscale() calls with MulScale() from common. 2021-01-05 07:31:24 +11:00
Mitchell Richters
b5aac8723f - Replace dmulscale() calls with DMulScale() from common. 2021-01-05 07:31:22 +11:00
Mitchell Richters
aae175f287 - Replace divscale##() calls with MulScale() from common.
* Regex for reference: divscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:20 +11:00
Mitchell Richters
f20daa2595 - Replace divscale64() calls with DivScaleU() from common. 2021-01-05 07:31:17 +11:00
Mitchell Richters
2396179dfc - Replace mulscale##() calls with MulScale() from common.
* Regex for reference: mulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:15 +11:00
Mitchell Richters
8cf2588bad - Replace fmulscale##() calls with MulScaleF() from common.
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
7d9f868e4c - Replace dmulscale##() calls with DMulScale() from common.
* Regex for reference: dmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:10 +11:00
Mitchell Richters
8f75f06efd - Replace tmulscale##() calls with TMulScale() from common. 2021-01-05 07:31:08 +11:00
Mitchell Richters
b191a482d6 - Remove hw_detailmapping and hw_glowmapping since they're no longer relevant with GZDoom's backend (they're always in an on state). 2021-01-03 21:39:21 +11:00
Mitchell Richters
d3b95d4d70 - Build/Duke: Remove the only use case for drawrooms() inline wrapper and change getcamspriteang() to return binangle instead of a build angle. 2021-01-03 17:35:19 +11:00
Christoph Oelckers
0f8e73ce77 - inlined calc_globalshifts to get rid of two global variables. 2020-12-30 09:55:57 +01:00
Christoph Oelckers
1a2b93f402 - fixed sky panning in Duke.
This needs to take the composite texture into account because panning in Build is based on tile size, not map dimension.
It was also redone to use floating point to get rid of the horrible precision of the scrolling effect.
2020-12-06 20:49:32 +01:00
Mitchell Richters
1e8fe482f3 - Duke: Partially address excessively fast sky in E4L1 as reported in #217.
* Before d545eb7aa9, `moveclouds()` simply set `ceilingxpanning`/`ceilingypanning`. Afterwards, it was accumulating with every passing loop.
* Despite fixing this, still seems a bit fast.
2020-12-06 23:51:20 +11:00
Christoph Oelckers
d04013066c - build a composite texture of all the segments for sky rendering to reduce the seams between the single segments. 2020-12-04 22:29:25 +01:00
Christoph Oelckers
396e3cd524 - actually call the model animation timer somewhere.
Now models also animate properly. :)
2020-12-02 00:19:22 +01:00
Christoph Oelckers
25ef58f897 - re-enabled all model specific code in Duke's animatesprites function and removed some remaining software renderer-only code in the engine. 2020-12-01 23:57:39 +01:00
Christoph Oelckers
9a507e5d0a - fixed model rendering.
(What a stupid mistake... :?)

Model animations still do not work as intended, though.
2020-12-01 22:03:20 +01:00
Christoph Oelckers
2cd3927613 - use floats for wall panning offsets. 2020-11-26 18:32:35 +01:00
Christoph Oelckers
d545eb7aa9 - make sector panning variables floats and added some convenience wrappers. 2020-11-26 18:32:35 +01:00
Christoph Oelckers
9a4073508d - Blood: Savegame fully transitioned to JSON
not tested yet.
2020-11-23 09:53:58 +01:00
Christoph Oelckers
169d708547 - removed all remaining uses of tilesiz. 2020-11-23 08:55:02 +01:00
Christoph Oelckers
d60bc8be9f - replaced all remaining uses of tilesiz[].y 2020-11-23 08:39:49 +01:00
Christoph Oelckers
bbf1352db1 - replaced approx 1/3 of all accesses to the tilesiz wrapper class. 2020-11-23 00:18:30 +01:00
Mitchell Richters
0190a98a10 - Remove calcSinTableValue() inline function and clean up use of PI/fPI and BANG2RAD #defines. 2020-11-22 21:18:10 +01:00