Christoph Oelckers
85cce1128a
- do proper handling of the 'no shadow' case for Duke's bad guys.
...
Using a flag like RedNukem instead of hacking dispicnum, which occasionally does reach the renderer and causes problems.
2022-01-13 00:42:34 +01:00
Christoph Oelckers
ddcee4ecbf
- split up g_visibility into two variables.
...
This is preparation for experimenting with the weapon flashes that can be quite annoying with how they brighten distant parts of the level far more than nearby parts.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
da5a92852f
- cleanup of Duke's actor flags.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
e892de21ec
- preparations for unlimited tsprites.
...
Right now it is a no-op because Polymost cannot deal with this properly.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
3c54495c58
- Duke: hardened the sound controller a bit by flagging the callsound call from doanimations as most likely terminating.
...
This allows avoiding unnecessary sound repeats on some doors.
A real fix is not possible with the broken setup here - the sound controller can only implicitly toggle its state so it is likely that improper use is frequent.
2022-01-09 23:03:11 +01:00
Christoph Oelckers
0f925d4cc0
- Duke: fixed monster sight sounds not being played.
2022-01-09 21:25:02 +01:00
Christoph Oelckers
e1661e0de1
- Duke: disabled sound limiting.
...
This does not work with how the game uses sounds. Unlike Doom the sound engine in DOS Duke has no channel limit so any sound can play as many times as the game deems fit.
2022-01-09 15:18:35 +01:00
Christoph Oelckers
694f44774f
- Duke: added missing z-offset in hits.
...
Among other things, this made throwing pipebombs on slopes misbehave.
2022-01-09 14:43:59 +01:00
Christoph Oelckers
a50430bf68
- Duke: fixed SE02's handling of sloping sectors.
2022-01-09 13:38:10 +01:00
Christoph Oelckers
3c2c53c7e1
- fixed NAM's sniper rifle.
...
This was using one of WW2GI's apl* variables, but shouldn't.
2022-01-08 21:42:44 +01:00
Christoph Oelckers
70087ebc12
- fixed: The new renderer still called the Polymost screen finish function.
...
This led to a second, redundant postprocessing step with incorrect matrix values.
It now calls screen->Update() directly without the unneeded stuff, but this required a bit of reordering in the game code to ensure that the renderer receives the weapon data to display.
2022-01-08 13:50:47 +01:00
Christoph Oelckers
5759bcc1a6
- Duke/RR: removed all in-game assignments to g_visibility.
...
These are remnants of the software renderer which used it to calculate light fading but with the current hardware renderers none of these ever reach the renderer, the values are never used.
2022-01-08 13:49:06 +01:00
Mitchell Richters
771a84338e
- Fix typo in MOVEFTA flag (was NOVEFTA
). Thanks Gaerzi!
2022-01-08 22:30:34 +11:00
Christoph Oelckers
a3162f6ccf
- renamed testnewrenderer CVAR.
2022-01-07 12:49:41 +01:00
Mitchell Richters
e5bcb8ee61
- Duke: Repair issues with handle_se32()
following lost Sgn()
call.
...
* Originated from "- first batch of routing all write access to sectortype::ceilingz and floorz through a function interface.".
2022-01-05 22:45:33 +11:00
Mitchell Richters
eca3c29261
- Duke: Fix nullptr issue in RR's processinput_r()
.
2022-01-05 19:22:21 +11:00
Christoph Oelckers
5ff7d45f7f
- Duke/RR: better handling for one random kill scenario in the player movement code.
...
Using the same appoach as EDuke32 - instead of outright killing the player it will first reset its position and retry the pushmove check.
2022-01-05 09:20:54 +01:00
Mitchell Richters
9de4b4753a
- Duke: Add nullptr check to haskey()
.
2022-01-05 18:05:15 +11:00
Mitchell Richters
b422b049c1
- Duke: Fix bad interp check in RR's dofurniture()
.
2022-01-05 10:03:33 +11:00
Mitchell Richters
874f9952f8
- Duke: Fix bad clipmove result check in movesprite_ex_r()
.
2022-01-05 09:50:22 +11:00
Christoph Oelckers
47b9de1fb4
- RR: interpolate moving furniture.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
33aee54113
- RR: interpolate jaildoors and minecarts.
2022-01-04 17:18:25 +01:00
Christoph Oelckers
45b88277a3
- Platoon Leader: Set explicit sky offset for the third episode's orange sky.
2022-01-04 17:17:58 +01:00
Christoph Oelckers
8dedcf94d3
- Duke: removed special precaching for sky texture
...
Due to precomposition these single tiles will never be rendered anyway.
2022-01-04 17:17:58 +01:00
Mitchell Richters
6414a4ce78
- Duke: Add nullptr check to footprints()
code.
2022-01-04 22:44:11 +11:00
Christoph Oelckers
226807db34
- RR: fixed wakeup check logic in movefta.
...
Essentially the feature must be on for all RR actors and off for all Duke actors.
RR's original logic here to exclude animals was broken and non-functional.
2022-01-04 09:39:55 +01:00
Mitchell Richters
783dd98641
- Duke: Fix nullptr check for Duke and RR that was causing a crash in a glitched spot in RR's E1L1.
2022-01-04 14:00:18 +11:00
Christoph Oelckers
1d091ae395
- merged both movefta functions, using the already defined flags instead of explicit picnum checks.
2022-01-02 15:59:24 +01:00
Christoph Oelckers
e42fc5e743
- use the newly added flag to consolidate ifhitsector.
2022-01-02 12:27:36 +01:00
Christoph Oelckers
cc6d52013d
- made Duke actor flags type safe and added a few new definitions that are not active yet.
2022-01-02 10:17:44 +01:00
Christoph Oelckers
cd599a7a15
- Duke: abstracted all checks for TILE_APLAYER with an isPlayer method.
2021-12-31 18:51:43 +01:00
Christoph Oelckers
3eb640658f
- don't typedef MATTGAMEVAR
2021-12-31 13:12:20 +01:00
Christoph Oelckers
61d4d06783
- RRRA: fixed typo in portal setup.
2021-12-30 22:16:39 +01:00
Christoph Oelckers
552668418a
- moved opos and oang to DCoreActor.
2021-12-30 18:21:02 +01:00
Christoph Oelckers
7f62df517d
- moved all interpolate* methods from spritetypebase to DCoreActor.
...
The places where it was used on tsprites were redone to use the actor's base coordinate, which at the point of the operation would always be the same.
2021-12-30 17:32:31 +01:00
Christoph Oelckers
c10fb1278a
- moved the backup... methods to DCoreActor.
2021-12-30 17:10:08 +01:00
Christoph Oelckers
6c381d4392
- removed sector() method from low level sprite type.
2021-12-30 16:58:48 +01:00
Christoph Oelckers
5498699faf
- use DCoreActor::sector() wherever possible.
2021-12-30 16:51:56 +01:00
Christoph Oelckers
88e4bb9f79
- moved sectno method to DCoreActor.
2021-12-30 16:39:43 +01:00
Christoph Oelckers
f0b7fe4add
- use setsector from DCoreActor.
...
Also did a bit of cleanup
2021-12-30 16:36:04 +01:00
Christoph Oelckers
af6ca40e3d
- use DCoreActor::insector instead of spritetype::insector.
2021-12-30 16:24:51 +01:00
Mitchell Richters
225a2a39da
- Duke: Replace player_struct
noise_*
variables with a vector.
2021-12-31 00:19:33 +11:00
Mitchell Richters
1e90b0bbbe
- Duke: Replace player_struct
bobposy
with bobpos.Y
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
034e1fd175
- Duke: Replace player_struct
bobposx
with bobpos.X
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
f9b728d188
- Duke: Replace DDukeActor
lastvy
with ovel.Y
calls.
2021-12-30 23:00:44 +11:00
Mitchell Richters
8932b2fc1d
- Duke: Replace DDukeActor
lastvx
with ovel.X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
0bc26e78ba
- Duke: Replace player_struct
loogiey[64]
with loogie[64].Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
e196a4daa3
- Duke: Replace player_struct
loogiex[64]
with loogie[64].X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
2d6bc783c4
- Duke: Replace player_struct
exity
with exit.Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
8d2595ea84
- Duke: Replace player_struct
exitx
with exit.X
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
19a9fc462f
- Duke: Replace CraneDef
poley
with pole.Y
calls.
2021-12-30 23:00:43 +11:00
Mitchell Richters
034727d902
- Duke: Replace CraneDef
polex
with pole.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
4b1fbf13df
- Duke: Replace CraneDef
z
with pos.Z
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
3dfcbafd93
- Duke: Replace CraneDef
y
with pos.Y
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
8006d8e394
- Duke: Replace CraneDef
x
with pos.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
788be33c1a
- Duke: Replace player_orig
oz
with opos.Z
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
f5dd8ba3b9
- Duke: Replace player_orig
oy
with opos.Y
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
c5d94f9a8e
- Duke: Replace player_orig
ox
with opos.X
calls.
2021-12-30 23:00:42 +11:00
Mitchell Richters
8a94022f5d
- Duke: - Duke: Replace FireProj
position and velocity variables with vectors.
2021-12-30 23:00:42 +11:00
Mitchell Richters
fd8c7bfa52
- Duke: Replace player_struct
poszv
with vel.Z
calls.
2021-12-30 23:00:41 +11:00
Mitchell Richters
b2023efb44
- Duke: Replace player_struct
posyv
with vel.Y
calls.
2021-12-30 23:00:41 +11:00
Mitchell Richters
31ed257f39
- Duke: Replace player_struct
posxv
with vel.X
calls.
2021-12-30 23:00:41 +11:00
Mitchell Richters
9bbb54fe2e
- Replace every line that just contains spaces or tabs with an empty line feed in all files except 3rd party libraries.
2021-12-30 20:30:21 +11:00
Christoph Oelckers
f9cea2b1db
- turning one check in hitradius into a flag.
2021-12-30 09:58:48 +01:00
Christoph Oelckers
3fcecedf32
- deleted ClearContent functions from actor classes.
...
this is a leftover from pre-DObject times and no longer needed.
2021-12-30 09:58:47 +01:00
Christoph Oelckers
16635e53fc
- renamed DDukeActor::picnum to attackertype.
...
This one having the same name here as spritetype::picnum is just confusing as hell and badly describes this variable's function.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
059412b75e
- first batch of routing all write access to sectortype::ceilingz and floorz through a function interface.
...
We need this for implementing "precise" rendering to flag vertices as dirty.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
12619671e6
- Duke/RR: added fudging to work around aiming randomization issues with the pistol when autoaim is off.
...
Solution is the same as in RedNukem/EDuke32: do one hitscan directly in aiming order and if that hits a sprite, use it as aiming target.
2021-12-30 09:58:10 +01:00
Christoph Oelckers
ce1daa82c2
- Duke: make camera actors temporarily invisible before rendering a scene.
...
Mainly needed for voxel/model replacements of the security camera sprite.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
34f14aa4c3
- added vector variants of FindDistance2D and FindDistance3D
2021-12-30 09:58:07 +01:00
Christoph Oelckers
e3ce0da111
- make all actor pointers in the player struct regular pointers.
2021-12-30 09:58:06 +01:00
Christoph Oelckers
7bbd4343a8
- renamed all shadowing variables in Duke.
2021-12-30 09:57:33 +01:00
Mitchell Richters
e15c887f90
- Duke: Fix bad setup in initcrane()
following actor sprite pointer cleanups.
2021-12-30 09:57:31 +01:00
Christoph Oelckers
3adbed4826
- t[] replacement in spawn code.
2021-12-30 09:57:22 +01:00
Christoph Oelckers
9b932b2d91
- t[] replacement in actors_d.cpp and actors_r.cpp.
2021-12-30 09:57:22 +01:00
Christoph Oelckers
8c35224fe1
- Duke: removed all t-pointers to temp_data in actors.cpp.
2021-12-30 09:57:22 +01:00
Christoph Oelckers
6766a5922a
- pass actors to calcChaseCamPos.
2021-12-30 09:57:18 +01:00
Christoph Oelckers
ed0c27b240
- Duke: deleted unused spritetype* variants of badguy() and bossguy()
2021-12-30 09:57:15 +01:00
Christoph Oelckers
09634c4993
- use actors instead of sprites in the new renderer's API.
2021-12-30 09:57:15 +01:00
Christoph Oelckers
d0143db8fe
- got rid of sx() and sm() inlines.
2021-12-30 09:57:13 +01:00
Mitchell Richters
3adf81e4f9
- Duke: Replace player_struct
oposz
with opos.Z
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
111aa16e64
- Duke: Replace player_struct
oposy
with opos.Y
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
0e897c29b0
- Duke: Replace player_struct
oposx
with opos.X
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
dd0ff465b0
- Replace spritetypebase
oz
with opos.Z
calls and eliminate spritetypebase
opos
union.
2021-12-30 09:57:07 +01:00
Mitchell Richters
a79b4b5ffc
- Replace spritetypebase
oy
with opos.Y
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
e0fb92bb01
- Replace spritetypebase
ox
with opos.X
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
baf78848eb
- Replace spritetypebase
z
with pos.Z
calls and eliminate spritetypebase
pos
union.
2021-12-30 09:57:06 +01:00
Mitchell Richters
cecb8dc48e
- Replace spritetypebase
y
with pos.Y
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
33ca55023f
- Replace spritetypebase
x
with pos.X
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
09e00a69fe
- Replace walltype
y
with pos.Y
calls and eliminate walltype
pos
union.
2021-12-30 09:57:04 +01:00
Mitchell Richters
51b647da87
- Replace walltype
x
with pos.X
calls.
2021-12-30 09:57:04 +01:00
Mitchell Richters
b2ab64bb62
- Capitalise vec3_t
z
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
68e2691be7
- Capitalise vec3_t
y
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
c549cc5276
- Capitalise vec3_t
x
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
118ceb18ca
- Capitalise vec2_t
y
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba
- Capitalise vec2_t
x
variable.
2021-12-30 09:57:02 +01:00
Christoph Oelckers
6f9484a9ee
- fixed compilation on GCC.
...
error: operands to ?: have different types ‘std::nullptr_t’ and ‘TObjPtr<Duke3d::DDukeActor*>’
2021-12-30 09:57:01 +01:00
Christoph Oelckers
1240818122
- getting rid of DDukeActor::s, final part.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
f216857f55
- Getting rid of DDukeActor::s, part 1.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
99507ed048
- spawn_d.cpp
2021-12-30 09:57:00 +01:00
Christoph Oelckers
df2fc596f9
- spawn.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
45a2b9766e
- sectors_r.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
d532c496f1
- sectors_d.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
f816f2fb22
- ->s in non-gameplay files.
2021-12-30 09:56:59 +01:00
Christoph Oelckers
edf3fd0f82
- premap_r.cpp + dependencies.
2021-12-30 09:56:59 +01:00
Christoph Oelckers
1f40dfa411
- premap.cpp + premap_d.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
e76e28cdea
- the rest of player_r.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
0768c9e8b6
- non 'actor' parts of player_r.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
de22c8ca26
- 's->' in player_d.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
6b675cc849
- non 'actor' parts of player_d.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
b55e04d455
- game_misc.cpp + gameexec.cpp.
2021-12-30 09:56:58 +01:00
Christoph Oelckers
a982c7e590
- player.cpp + noise.cpp.
2021-12-30 09:56:58 +01:00
Christoph Oelckers
c0ea208ba3
- animatesprites_d.cpp and animatesprites_r.cpp.
2021-12-30 09:56:57 +01:00
Christoph Oelckers
9eb7c536ab
- the rest of actors_r.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
7d5cf6e631
- first third of actors_r.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
8ff53eae7d
- second half of actors_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
f1e608685e
- more parts of actor_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
b7a4c484e9
- large block of s = actor->s; in actors_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
44895411b9
- a large block of 'act->s' in actors_r.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
8dcc128697
- deal with 'spri = actor->s;'
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0df97f00ec
- the remaining 's's in actor.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
f5151e31a5
- globally replaced all 's->' with 'actor->spr.' in duke/src/actors.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
55cb5aaac6
- global search & replace of ->s-> with ->spr.
...
This is the largest part of uses of DDukeActor's 's' pointer.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0284ec1cb0
- replacement of DDukeActor::s and pointers to DCoreActor::spr, part 3.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0f7024e70e
- replacement of DDukeActor::s and pointers to DCoreActor::spr, part 2.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
997c12f67a
- replacement of DDukeActor::s and pointers to DCoreActor::spr.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
6fd4d6d550
- ported slope sorite support from NBlood.
...
For Polymost only so far.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
df0c577cf4
- replaced most of numsectors, too.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
f1c0298825
- replaced numwalls with wall.Size in several places.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
65bc6e6aef
- removed the now redundant wall() and sector() interator helper functions.
...
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
986fccfddc
- use symbolic constants for all places where globalorientation is checked for the alignment bits.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
5ff36f491e
- fixed the remaining places where the compiler complained about cstat.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
2d648924e8
- the final Duke flags.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
e02f4d8fd1
- randomFlip stuff.
...
To avoid casting from int to flags.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
8f0f0e8816
- manual sprite flag replacements in Duke.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
8e0b9f7ce6
- some automatic, some manual sprite flag replacements
2021-12-30 09:56:49 +01:00
Christoph Oelckers
ace01d02bc
- alignment flags and a few leftovers.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
82fb03e399
- another batch of search&replace, with smaller results.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
c5ae454207
- another big batch of automatic replacements.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
5b65e214e0
- global search & replace of the more frequent sprite flag patterns.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
8f012d1beb
- made wall flags type safe
2021-12-30 09:56:47 +01:00
Christoph Oelckers
adbf5177a7
- flag combo stuff.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b263c3ac6b
- wall and sprite flags in Duke, just simple cases.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
6e32832428
- made sector ceiling/floor flags type safe.
...
- made sector flags type safe.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b0e3c6b5ec
- some remaining sector flag stuff
2021-12-30 09:56:45 +01:00
Christoph Oelckers
d0a06ae961
- deal with most of CSTAT_SECTOR_SKY and CSTAT_SECTOR_SLOPE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
98f0886b3d
-Duke/RR: Automatic replacement for CSTAT_SPRITE_INVISIBLE and CSTAT_SPRITE_BLOCK_ALL
2021-12-30 09:56:45 +01:00
Christoph Oelckers
8d0013128e
- Exhumed: use symbolic constant CSTAT_SPRITE_INVISIBLE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
1edccf1423
- added slope setter methods to sectortype.
...
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00