Commit graph

139 commits

Author SHA1 Message Date
nashmuhandes
166d69164d Set the depth fade render state from sprites 2024-09-09 02:53:31 +08:00
Dileep V. Reddy
8a5e7449c1 Consolidated isometric mode commits. 2024-08-11 15:55:21 +02:00
nashmuhandes
a5b08f0fb1 Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-08-04 07:21:43 +08:00
nashmuhandes
593e1c0225 Add SPF_NOMIPMAP to force actor sprites or particles to have no mipmaps. This makes tiny sprites/particles look more crisp and legible in the distance. Mipmapping causes the sprites/particles to have an inconsistent look where they'd sometimes be clearly visible and sometimes less visible depending on camera distance and movement. 2024-08-03 18:45:48 -03:00
Magnus Norddahl
bde15af593 Merge remote-tracking branch 'gzdoom/master' 2024-07-23 19:23:26 +02:00
Magnus Norddahl
330ec45d84 Merge tag 'g4.12.2' 2024-06-23 22:27:45 +02:00
Major Cooke
5fc3d44ba5 Added SPF_ROLLCENTER for particles and visual thinkers. 2024-06-23 11:09:29 -04:00
Major Cooke
c56d70f2b1 Added SPF_(NO)FACECAMERA flagst for specifying camera facing on particles and visual thinkers.
- This also adds ensures facing camera is applied to these via the option menu.
2024-06-23 10:07:22 -04:00
Rachael Alexanderson
cf8a04c457
- simplify squishing to square pixels for particles and rollsprites 2024-05-21 03:09:47 -04:00
Rachael Alexanderson
7ef6fa97a7
- make roll and flat sprites square 2024-05-03 14:32:53 -04:00
Rachael Alexanderson
4bf2fb0ef8
- make particles square 2024-05-03 02:04:29 -04:00
Rachael Alexanderson
25f791156f
- fixed: rollsprites now 'unstretch' properly in regular y-billboarding 2024-04-28 01:32:33 -04:00
Rachael Alexanderson
586e89954a
- fixed: rollsprites now 'unstretch' properly in regular y-billboarding 2024-04-23 20:31:05 -04:00
Rachael Alexanderson
112c6cbccf
Merge branch 'master' of https://github.com/ZDoom/gzdoom into gzdoom-update-4-12-1 2024-04-21 11:05:59 -04:00
Rachael Alexanderson
111fd48348
- stretch billboarding sprites properly according to the level's aspect ratio 2024-04-20 17:53:08 -04:00
nashmuhandes
a72057945b Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-03-16 04:37:28 +08:00
Major Cooke
fe0de5053a - Fixed: ROLLCENTER was always being applied even when the flag wasn't present. 2024-03-15 01:17:19 -03:00
nashmuhandes
74a27be3fd Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-03-10 03:34:37 +08:00
Boondorl
b469770ecc Reworked view offsetting
View offsets are now added after the base position and angles (accounting for interpolation) are calculated. Behavior was centralized into a singular tracer that all view offsets now use to prevent clipping out of the map. Cleaned up camera rendering behavior. Angles are now properly normalized after all offsetting is accounted for. The chase cam can now update in real-time instead of forcing interpolation.
2024-03-01 07:10:26 -05:00
Rachael Alexanderson
d8ef27e0ed
Squashed commit of the following:
commit ad25b50089b6e01b8e4291e34cfe3a008af9128d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:12:46 2024 -0500

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

    This reverts commit d2c2c93cf1.

commit 8537f0d8db804f0076b90daa66b750e44dccf44c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:12:41 2024 -0500

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

    This reverts commit dc897eacc0.

commit d45f6ebf11f31d246f2de4f3bbd11f7970783125
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:10:21 2024 -0500

    Revert "Restored r_orthographic behavior."

    This reverts commit 26908f5bc5.

commit be0836feef9b95f12828eeed4319c726ef13780d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:09:15 2024 -0500

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

    This reverts commit 08b03e6b19.

commit 688288a9199b912203022cb4db37503f6270e0c3
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:09:06 2024 -0500

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

    This reverts commit d3405837ce.

commit 72b7df9fa1841d665c2846dd31a89c6f48123e55
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:08:59 2024 -0500

    Revert "Restored r_orthographic behavior."

    This reverts commit e171f4eb6a.

commit aa954132bf29f2f8a51bf09dae127e5ffe2c5670
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:08:48 2024 -0500

    Revert "Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works."

    This reverts commit c8a7507e8e.

commit 3ce90e87a3a9956b615995b57b90619e89bbcff4
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:00:46 2024 -0500

    Revert "Cleaning up implementation of isometric camera with optional orthographic projection."

    This reverts commit 25f1407228.

commit 3aafd363e40c8d1d2ebbe3c61aeb2b80a74e565a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:25 2024 -0500

    Revert "Small change to SpectatorCamera actor."

    This reverts commit 2b555d7556.

commit a41911f8907731c098de71ca3e14261ac432ec8c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:16 2024 -0500

    Revert "SpectatorCamera can now follow the 'tracer' actor. Also added a 'lagdistance' property for lazy follow."

    This reverts commit 7fbb4cd06c.

commit 19398edd065b7b483b8c7be42cb16026695e241a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:05 2024 -0500

    Revert "Minor addition toe SpectatorCamera. Added three chase modes to lazy follow. 0: Catch up until tracer is centered again. 1: Same but don't move if tracer isn't moving (camera moving when character is not is jarring). 2: Stop chasing if tracer is closer than lagdistance. Game modes benefit from a 'center camera' button but that doesn't have to be hard-baked into the engine."

    This reverts commit c3ca564cfc.
2024-02-09 12:15:17 -05:00
Dileep V. Reddy
25f1407228 Cleaning up implementation of isometric camera with optional orthographic projection.
All CVars, mapinfo variables, and playerinfo/playerpawn variables are gone.
A Camera actor named 'SpectatorCamera' is defined in warsrc/static/zscript/actors/shared/camera.zs

The following new flag bits were defined in the 'DViewPosition' struct for use with actor->ViewPos in src/playsim/actor.h:
	VPSF_ALLOWOUTOFBOUNDS =		1 << 3,			// Allow viewpoint to go out of bounds (hardware renderer only).
	VPSF_ORTHOGRAPHIC =		1 << 4,			// Use orthographic projection.
	VPSF_ISOMETRICSPRITES =		1 << 5,			// Displace sprites towards camera and don't billboard (drawn from isometric perspective).

Basically, spawn a SpectatorCamera actor with the appropriate flags and set it to player.camera.
See example template: https://www.mediafire.com/file/fv8rytayjt9l6g1/isometric_actor_wads.zip/file

Has been tested with multiplayer death and disconnection (and respawns). Not tested with portals.
Still only works with hardware renderer (mostly). But should be compatible with older mods and libraries.
2024-02-01 08:43:34 -05:00
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
Magnus Norddahl
3cc38c1d14 Merge remote-tracking branch 'gzdoom/master' 2024-01-18 10:43:42 +01: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
RaveYard
7f7363e30b Convert fogball calculations from sRGB to linear 2024-01-11 01:33:36 +08:00
Magnus Norddahl
805bce1166 Merge remote-tracking branch 'gzdoom/master' 2024-01-10 04:03:35 +01: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
Magnus Norddahl
73ada7f84b Merge remote-tracking branch 'gzdoom/staging' 2024-01-02 17:10:47 +01:00
Major Cooke
751ee7390b Fixed incorrect offsetting for SpriteOffset. 2023-12-20 17:50:36 -05:00
nashmuhandes
72e3c01449 Revert Fogball to a scripted class 2023-12-11 11:38:18 +01:00
nashmuhandes
17aac06007 - Use the Fogball's 4th arg for the radius
- Add Fogball DoomEdNum
2023-12-11 11:37:24 +01:00
Magnus Norddahl
a76dfafbaa Fix misc bugs in the fogball implementation - it works now 2023-12-11 11:37:24 +01:00
nashmuhandes
909309f1e8 Use the actor fields intended for fogball customization 2023-12-11 11:36:43 +01:00
dpjudas
81cdc402c9 Add code collecting fogballs from the visible scene 2023-12-11 11:34:14 +01: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