Commit graph

239 commits

Author SHA1 Message Date
Dileep V. Reddy
c8a7507e8e Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
d3405837ce Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
08b03e6b19 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 12:13:42 -05:00
Rachael Alexanderson
af08413e10
- reverting pull request #2361 - apparently pull request #2364 changed some behaviour and these two do not play nice together. One or the other unfortunately has to be rolled back to allow GZDoom to build properly again.
Revert "Restored r_orthographic behavior."

This reverts commit 26908f5bc5.

Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

This reverts commit dc897eacc0.

Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

This reverts commit d2c2c93cf1.
2024-01-21 08:18:16 -05:00
Dileep V. Reddy
dc897eacc0 Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 03:34:00 -05:00
Dileep V. Reddy
d2c2c93cf1 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 03:34:00 -05:00
Major Cooke
278ebf3202 Aded FLIPSPRITEOFFSET<X/Y> for actors and bFlipOffset<X/Y> for visual thinkers.
- Inverts the direction that (Sprite)Offset pushes the sprite without affecting *any* other offsets, allowing them to combine seemlessly.
2024-01-21 03:33:48 -05:00
Major Cooke
4e48250cf2 CalculateVertices Refactor
- Added roll support for Y billboarding
- Fixed a bunch of broken checks that prevented Y billboarding from working properly
- Y billboarding takes precedence over sprite facing
- Optimized ROLLCENTER: now combines the sprite's embedded offsets with SpriteOffsets instead of doing wasteful transforms before/after rotations
- Greatly cleaned up a bunch of cruft
2024-01-21 03:33:48 -05:00
Rachael Alexanderson
1c7f195353
- reverse y offset for SpriteOffset to be consistent with software renderer and past versions 2024-01-18 03:00:44 -05:00
Ricardo Luís Vaz Silva
98e6330eaa allow modeldef flags to be overriden 2024-01-16 10:27:08 -05:00
Ricardo Luís Vaz Silva
b7e5d3d052 rename SPF_STANDALONE_ANIMATIONS to SPF_LOCAL_ANIM 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
3bd80ab8f6 Do the same for Visual Thinkers 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
7eab519795 Implement animated particles that aren't tied to the global animation timer 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
35e56d3f42 Minor optimizations to VisualThinker
* remove duplicated fields
* make native functions use direct calls
* remove unnecessary pointer from particle_t
* create HWSprite directly in Construct
2024-01-06 20:06:57 -05:00
Major Cooke
f647545c1d Disabled player sprites when crossing through portals. 2024-01-04 07:23:24 -05:00
Major Cooke
751ee7390b Fixed incorrect offsetting for SpriteOffset. 2023-12-20 17:50:36 -05:00
Rachael Alexanderson
102c467de5 - add option to override renderflags +BILLBOARD[NO]FACECAMERA 2023-12-09 18:18:28 -05:00
Rachael Alexanderson
b4d5c7d669 - add actor flag +BILLBOARDNOFACECAMERA which forces sprite aimed at camera heading instead of camera position when gl_billboard_faces_camera is true
```
class ZombieManNoFaceCamera : Zombieman replaces Zombieman
{
	default
	{
		+BILLBOARDNOFACECAMERA;
	}
}
```
2023-12-09 05:57:51 -05:00
Rachael Alexanderson
97336cf7c2 - add missing nullptr check 2023-12-08 16:22:22 -05:00
Rachael Alexanderson
3caa6247be - add flag +BILLBOARDFACECAMERA - renders actor billboard to always face the camera
tested with this code snippet:
```
class ZombieManFaceCamera : Zombieman replaces Zombieman
{
	default
	{
		+BILLBOARDFACECAMERA;
	}
}
```
2023-12-08 10:12:58 -05:00
Rachael Alexanderson
4b54aac288 - rename ZSprites to VisualThinkers 2023-11-22 12:11:57 -05:00
Ricardo Luís Vaz Silva
5d5e7ca042 Decoupled IQM Model Animations 2023-11-20 22:08:33 -05:00
Ricardo Luís Vaz Silva
1a8dfd2dfa ActorModelData cleanup in preparation for decoupled model animations 2023-11-20 22:08:33 -05:00
Major Cooke
848dbd4d3d Fixed uninitialized variables causing issues with other compilers. 2023-11-20 22:07:58 -05:00
Major Cooke
8fcd2c5f43 Fixed compilation with CI 2023-11-17 08:06:11 -05:00
Major Cooke
48e7c2d994 - Proper heap handling of HWSprite pointer
- Added `Construct()` method and ensure it's called when created from any means
2023-11-17 08:06:11 -05:00
Major Cooke
0b6bae59ee Added scolor property, allowing for colorizing ZSprites.
- fixed ZSprites not updating important variables while frozen.
2023-11-17 08:06:11 -05:00
Major Cooke
b6b1b25035 Added ZSprites.
- Effectively similar to Actors, but without the excess.
- Can be created with either the `level` function or the static `Spawn` function in ZSprite.
- STAT_SPRITE belongs to ZSprites only; ZSprites cannot be moved out of, nor can anything else be moved in to, this statnum.

Misc:

- Fixed (Sprite)Offset taking roll into account.

Crediting phantombeta, RicardoLuis0 and RaveYard for assistance.
2023-11-17 08:06:11 -05:00
Christoph Oelckers
9f90c64727 use FTranslationID in the high level parts of the hardware renderer. 2023-11-09 23:04:11 +01:00
Christoph Oelckers
8c5eb2c807 use FTranslationID in all places where strict type checking is needed.
This means all properties in serializable classes now use this wrapper type. The backend hasn't been changed yet
2023-11-09 23:04:10 +01:00
Christoph Oelckers
299728d3d9 fix copy/paste error in HWWallDispatcher 2023-11-02 21:40:08 +01:00
Professor Hastig
677e1c888b fixed: Skewing to front and back floor was swapped. 2023-11-02 16:27:43 +01:00
Christoph Oelckers
bdee1f3d34 added per-sector sky UDMF properties.
(Hardware rendering only, the SW renderer is not in a state where this is easily done.)
2023-10-29 17:49:59 +01:00
Professor Hastig
77e5fd3081 fixed skewing for lower tiers. 2023-10-26 09:40:31 -04:00
Christoph Oelckers
eeac40fffc take most direct drawinfo references out of HWWall. 2023-10-25 21:35:42 +02:00
Christoph Oelckers
1f5df23818 took several functions out of HWDrawInfo.
The only thing they needed from that class is the Level pointer and the light mode, this is better passed in as function argument.
2023-10-25 21:19:58 +02:00
Christoph Oelckers
b48caddb96 reworked the skewing properties.
The Eternity-based definitions are currently disabled due to unclear semantics and overall unsatisfying design. They can be re-enabled once their precise working has been established.
New properties were added to replace them with something that will be clearly specified and is fully ortohonal i.e. they will allow to align an upper tier skew with the floor as well and a lower tier's skew with a ceiling.
2023-10-20 18:14:20 +02:00
Professor Hastig
f92f6b8de4 added wall texture skewing.
This uses the same UDMF properties as Eternity recently introduced for the same feature.
2023-10-20 08:23:56 +02:00
Christoph Oelckers
9cd57faec1 rewrite of HWWalls to allow grabbing the output from the render item generator. 2023-10-19 18:35:51 +02:00
Christoph Oelckers
89535b803a Backend update from Raze. 2023-10-07 18:42:24 +02:00
Professor Hastig
ab8711b57a removed several bad casts to 'long'.
The 'long' type should generally be avoided because its size differs on Windows and Linux/Mac so it is almost guaranteed to cause undefined behavior
2023-10-04 16:47:43 +02:00
Christoph Oelckers
5f11fd051b - fixed the overlapping sector handler in hw_fakeflat.cpp.
this picked the wrong plane as the proper texture cutoff.
2023-09-16 22:17:09 +02:00
Christoph Oelckers
6847a9a5c1 - added a nomirrors compatibility handler and applied it to Conf256's CONF55 map.
This is for disabling broken plane reflection setups.
2023-09-14 20:21:35 +02:00
Christoph Oelckers
16cefb7528 - some angle cleanup
* clean out the angle conversion helpers from basics.h.
* use degrees instead of radians in TMatrix3x3.
2023-08-12 10:10:27 +02:00
Ricardo Luís Vaz Silva
1852f14f30 fix rare crash due to null caller 2023-08-02 01:05:24 -04:00
Ricardo Luís Vaz Silva
bcbb85b1dd Add Weapon::ModifyBobLayer , Weapon::ModifyBobLayer3D and Weapon::ModifyBobPivotLayer3D 2023-08-02 01:05:24 -04:00
Professor Hastig
666a99f204 lightmode refactor
* make all legacy light modes except 'Doom' MAPINFO only. A CVAR still exists for testing but its value won't be saved to the config.
* user can only select between "performance', 'software' and 'vanilla'. 'performance' is the old 'Doom' mode which is still needed to speed things up on low end hardware.
* MAPINFO can not enforce any of the two software light modes, as low end users require the option to change this to the 'performance' setting. Selecting one will always revert to the user's light mode selection.
2023-07-17 22:50:05 +02:00
Hugo Locurcio
ad49d52b1c Add cvars to sprite shadows progressively according to thing <-> floor distance
This also adds the `r_actorspriteshadowalpha` and `r_actorspriteshadowfadeheight`
cvars for greater control (only effective in hardware renderers).
These are set to 0.5 and 0 by default, which means this fading behavior
is disabled by default.

When enabled, this has two benefits:

- It becomes easier for the player to judge an entity's height since
  the shadow opacity now gives this information.
- Entities that are far high above the ground no longer cast a shadow,
  which looked strange.
2023-01-25 17:43:04 -05:00
Ricardo Luís Vaz Silva
8e7897233e Add Alternate Light Blending Options 2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
de65d1b96f Misc Fixes for BobWeapon3D
- Fix inverted Y axis for offset/old BobWeapon
- finish adding PSPF_MIRROR
- fix missing pivot
2022-12-12 15:23:12 +01:00