Christoph Oelckers
564ec9e518
- renamed player_struct::opos
2022-10-02 20:46:58 +02:00
Christoph Oelckers
5f4c35e9aa
- renamed player_struct::pos
2022-10-02 20:46:58 +02:00
Christoph Oelckers
6bd854da88
- floatified player_struct::truecz/truefz.
2022-10-02 20:46:58 +02:00
Christoph Oelckers
7fce0ed7ae
- renamed truefz and truecz
2022-10-02 20:46:57 +02:00
Christoph Oelckers
665ee69eba
- Duke: cleanup on z-checks, part 3.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
b853e9caa0
- Duke: cleanup on z-checks, part 1.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4506b5cb08
- cleaned up the remaining uses of the integer floorz/ceilingz variables.
...
This concerns two particularly ugly blocks of code in the move functions - these were fully redone with pure floating point math.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
89c0e4234c
- remapped all copy assignments to DDukeActor::ceilingz/floorz.
...
This commit does not work! It was split for clarity.
2022-10-02 20:46:57 +02:00
Christoph Oelckers
4787bddddd
- Duke: replaced most read access to DDukeActor::floorz/ceilingz with a wrapper function.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
793e9b7623
- renamed DDukeActor::floorz, ceilingz.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
7745701d4b
- floatified opos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
5df4caa82f
- renamed interpolate functions as preparation for floatifying opos.
2022-10-02 20:46:56 +02:00
Christoph Oelckers
9627f00f32
- Duke: added emulation for a sound system bug that prevents certain duplicate sounds from playing.
...
Since our sound system does not reject this case, the calling code must check for the relevant condition.
2022-10-01 12:59:43 +02:00
Christoph Oelckers
8325e7369f
- removed floorzptr and ceilingzptr.
...
These were obstacles for further changes.
2022-08-27 10:01:01 +02:00
Christoph Oelckers
c84d75b8bf
- use inline access functions to read floorz/ceilingz.
2022-08-27 09:58:16 +02:00
Christoph Oelckers
0672572e63
- renamed sectortype::floorz and ceilingz as preparation for floatification
2022-08-27 09:47:48 +02:00
Christoph Oelckers
204d6018f4
- Duke: renamed all spr.pos
...
This was pure search&replace with no other code edits.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
f629ec1916
- Duke: full pos assignments
2022-08-26 19:53:06 +02:00
Christoph Oelckers
0ad571b72d
- Duke: wrapped remaining write access to spr.pos
2022-08-26 19:53:06 +02:00
Christoph Oelckers
f4ed59ccb7
- Duke: ninth batch.
2022-08-26 19:53:06 +02:00
Christoph Oelckers
378d126114
- Duke: first batch of refactoring writes to spr.pos.
2022-08-26 19:53:05 +02:00
Richard Gobeille
55408e6e3c
- Duke3d: smooth movement of recons.
2022-06-05 21:00:36 +02:00
Mitchell Richters
7282e0d8bf
- Remove multiple addadjustment()
/settarget()
overloads in favour of native binangle
/fixedhoriz
versions only.
...
* Simplifies these classes a bit.
* Better shows intent in actual game code.
* Removes unnecessary int to double conversions.
2022-05-30 20:35:41 +10:00
Christoph Oelckers
951b93123a
- fixed incorrect symbolic constant for statnum.
2022-02-19 09:50:05 +01:00
Christoph Oelckers
63f1a968d6
- do not update the sector for sector effectors moving themselves.
...
They need to stay in their originally assigned sector forever, or really bad things can happen.
If due to some math imprecisions they change their sector, they can screw up the entire map.
2022-02-15 22:18:25 +01:00
Christoph Oelckers
f44736a5b6
-use an access function for reading wall positions so that we have a non-modifiable value wherever this is possible.
2022-02-15 22:18:23 +01:00
Christoph Oelckers
89ef81da55
- renamed walltype::pos as preparation for refactoring.
...
no functional changes here
2022-02-15 22:18:22 +01:00
Christoph Oelckers
82898e42a6
- fix the camera.
...
- camera flag added
2022-01-27 01:05:12 +01:00
Christoph Oelckers
8e89bc29e4
- new explosion flags
2022-01-27 01:05:12 +01:00
Christoph Oelckers
fba8f54bb3
- two more flags to get sprite indices out of movecrack.
...
# Conflicts:
# source/games/duke/src/constants.h
2022-01-27 00:48:39 +01:00
Christoph Oelckers
3d0c794224
- two more flags for LASERLINE.
2022-01-27 00:46:24 +01:00
Christoph Oelckers
0574da7cd4
- SE24 cleanup using flags.
...
The whole setup is actually very simple, once all the mess got removed from the code.
2022-01-27 00:42:49 +01:00
Christoph Oelckers
fc94fb9651
- replaced checktimetosleep with a flag.
2022-01-27 00:42:07 +01:00
Christoph Oelckers
125c3e8004
- flammable flags.
2022-01-27 00:41:33 +01:00
Christoph Oelckers
913b0622b8
- use symbolic constants
2022-01-27 00:35:45 +01:00
Christoph Oelckers
58b718d2a2
- turn all special actor type checks in moveflammable into flags.
...
Also wrap all flag checks in actorflag function
2022-01-27 00:34:21 +01:00
Christoph Oelckers
5bc8b1c2d3
- Duke: added two more flags to eliminate the references to the crane's tile numbers.
2022-01-25 22:26:53 +01:00
Christoph Oelckers
a252b206d1
- exported DukeActor's native member variables.
...
This includes renaming two native ones because they shared the same name with members of spritetype.
2022-01-24 00:24:47 +01:00
Christoph Oelckers
24a67e194d
- Duke: reverted sector storage to temp_data[0] for the subway.
...
This was the ultimate revenge of the Spaghetti code: Somewhere in there, something needs this value in temp_data[0], but I cannot find where this is...
2022-01-13 22:34:43 +01:00
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
da5a92852f
- cleanup of Duke's actor flags.
2022-01-11 00:12:32 +01:00
Christoph Oelckers
0f925d4cc0
- Duke: fixed monster sight sounds not being played.
2022-01-09 21:25:02 +01:00
Christoph Oelckers
a50430bf68
- Duke: fixed SE02's handling of sloping sectors.
2022-01-09 13:38:10 +01:00
Mitchell Richters
771a84338e
- Fix typo in MOVEFTA flag (was NOVEFTA
). Thanks Gaerzi!
2022-01-08 22:30:34 +11: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
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
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
cd599a7a15
- Duke: abstracted all checks for TILE_APLAYER with an isPlayer method.
2021-12-31 18:51:43 +01:00
Christoph Oelckers
552668418a
- moved opos and oang to DCoreActor.
2021-12-30 18:21:02 +01:00
Christoph Oelckers
c10fb1278a
- moved the backup... methods to DCoreActor.
2021-12-30 17:10:08 +01:00
Christoph Oelckers
5498699faf
- use DCoreActor::sector() wherever possible.
2021-12-30 16:51:56 +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
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
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
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
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
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
34f14aa4c3
- added vector variants of FindDistance2D and FindDistance3D
2021-12-30 09:58:07 +01:00
Christoph Oelckers
7bbd4343a8
- renamed all shadowing variables in Duke.
2021-12-30 09:57:33 +01:00
Christoph Oelckers
8c35224fe1
- Duke: removed all t-pointers to temp_data in actors.cpp.
2021-12-30 09:57:22 +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
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
f1e608685e
- more parts of actor_d.cpp
2021-12-30 09:56:57 +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
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
e02f4d8fd1
- randomFlip stuff.
...
To avoid casting from int to flags.
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
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
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
4a5de6f56e
- make sure that all changes of wall coordinates invalidate associated data.
...
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
d1f088a858
- SW/Exhumed fixed sound relinking on actor destruction.
...
This still passed the sprites instead of the actors. Moved the relinking code to DCoreActor::Destroy because it is the same for all games.
Also did a little bit of sound cleanup to ensure the sound backend does not hold stale actor pointers.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
8ee5d1b0d7
- activated the garbage collector
...
This finally gets rid of all static storage for actors - so no more indices ever! :)
2021-12-26 23:10:00 +01:00
Christoph Oelckers
138690d34e
- do not use auto to make local copies of TObjPtr's.
...
This will just copy the object without performing the read barrier on the source data which is not what we want here.
For these assignments the type must be explicit.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
5d09748af9
- Duke: added some null pointer checks.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
122a1f009d
- moved gamevar storage to player and actor objects respectively.
...
For actors this eliminates the need to for sprite indices which was the intended goal. It also properly associates the gamevars with their owners.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
f855b1020f
- actor lists refactored.
...
No more shorts, no more static arrays.
This was one of the biggest blockers for unlimiting the engine.
2021-12-26 23:09:54 +01:00
Mitchell Richters
0c6e55d1b8
- Silence all the -Wuninitialized
and -Wmaybe-uninitialized
warnings relating to HitInfo
objects passed through to functions by reference.
2021-12-26 23:09:50 +01:00
Christoph Oelckers
b7a5ea8ef6
- moved some common utilities into the backend.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
6748a39c8f
- deprecate the sector index variant of pushmove
2021-12-26 23:09:43 +01:00
Christoph Oelckers
70d7e81f4f
- adapted getzrange to the new interface.
...
This was mainly removing game side solutions in favor of a common one in the backend.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
4788c7ba5e
- made Collision derive from a common base class and refactored clipmove to a single engine-side entry point.
...
Done for Doom so far.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
10dce7dd2d
- adapted all hitscan calls in Duke/RR.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
33c707c708
- Duke: getangle simplification
2021-12-26 23:08:40 +01:00
Christoph Oelckers
38d64fc437
spritetype::setsector
2021-12-25 21:28:57 +01:00
Christoph Oelckers
3bd1272e08
- sectnum removal step
2021-12-25 21:28:56 +01:00
Christoph Oelckers
6aac952658
- started eliminating sectnum
2021-12-25 21:28:56 +01:00
Christoph Oelckers
d1f7269ca8
replaced cursectnum with a cursector pointer
2021-12-25 21:28:56 +01:00
Christoph Oelckers
69a7b4d0bc
- final cleanup before replacement
2021-12-25 21:28:55 +01:00
Christoph Oelckers
fcbf861ad4
- final preparations for changing type of cursectnum
2021-12-25 21:28:55 +01:00
Christoph Oelckers
312b1fd39f
- cursectnum first half
2021-12-25 21:28:55 +01:00
Christoph Oelckers
b1b0c5d25c
— Duke: use twoSided utility where appropriate.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
d115d90961
- Duke: prefer calling the sector pointer variants of engine functions.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
ef7fcd824f
- use insector and sector pointer initialization for iterator
2021-12-25 21:28:54 +01:00
Christoph Oelckers
c5e45f1021
- use actor->sector() to initialize iterators.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
aada3f3d19
- renamed DDukeActor::getSector.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
9ab35816ea
- the crane still stored a sector index in temp_data.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
69c21407a7
- pass a sector pointer to checkcursectnums.
2021-12-25 21:28:39 +01:00
Christoph Oelckers
3ce2375a3e
- LocateTheLocator + related sector storage in temp_data
2021-12-25 21:28:39 +01:00
Christoph Oelckers
64f1029416
- Duke: pass a sector pointer to callsound.
2021-12-25 21:28:39 +01:00
Mitch Richters
c6f2aaf1b7
- Miscellaneous fixes to commit to change sector checks over to validSectorIndex()
.
...
* Fix missed changeover in Blood's `actSpawnSprite()`.
* Fix non-negated check on a `validSectorIndex()` call in Blood's `debrisMove()`.
* Removed a superfluous terminator in Duke's `actor.cpp`.
* Fixed bad call to `validSectorIndex()` in Exhumed's `AIAnim::Tick()`.
2021-12-25 21:28:37 +01:00
Christoph Oelckers
999ec3c95a
use validSectorIndex checks where appropriate.
...
Let’s hope that this sloppiness doesn’t have negative effects with broken maps.
# Conflicts:
# source/games/sw/src/sprite.cpp
# Conflicts:
# source/games/duke/src/prediction.cpp
# source/games/duke/src/render.cpp
2021-12-25 21:28:37 +01:00
Mitchell Richters
ee1ffd2347
- Duke: Fix lotag signedness issue affecting SE10 (door auto-close).
...
* Originated in 01abe7b2ac
while removing a casting to short.
* Fixes #594 .
2021-12-10 17:26:56 +11:00
Mitch Richters
63a19bbb15
- Port spritetype::insector()
over from develop and use with sector nullptr checks in 6539d72663
.
2021-12-07 19:56:50 +11:00
Mitch Richters
6539d72663
- Duke/RR: Add three sector nullptr checks after receiving crash in Redneck Rampage Route 66 while noclipping.
2021-12-07 19:44:35 +11:00
Christoph Oelckers
2949361c82
- Duke/RR: added null checks to all spawn() calls
2021-11-29 00:56:32 +01:00
Christoph Oelckers
4c7662b4ea
- Duke/RR: guard all calls to EGS with a null pointer check.
...
Spawning sprites into the void will crash the engine so these must be blocked which requires a failure check here.
With this pressing fire while in the void no longer crashes the game - it won't fire anything, either, though.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
fcbb7320a8
- Duke/RR: added all checks needed for not letting Duke crash with noclip when not accepting -1 as a valid sector pointer.
...
All places that were causing a crash are now guared by calling 'insector()'.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
8972dbe5da
- actorstayput
2021-11-29 00:56:31 +01:00
Christoph Oelckers
4a81d45630
- the remaining sector[] stuff in Duke/RR.
...
What remains is either engine interface code or not easily replaced.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
5e66a3331d
- getanimationgoal.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
3970c9a757
- use sector pointers in actors_lava.cpp
2021-11-29 00:56:30 +01:00
Christoph Oelckers
09c2677fe7
- lots of EGS calls.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
876d1dbe1f
- operatesectors and activatebysector.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
a7634c4cad
- Duke: use pointers in interpolation interface.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
0d8b380b05
- use wallsofsector for all remaining iterations over a sector's walls.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
0f2f46ec35
- made one_parallax_sectnum a pointer
2021-11-29 00:56:26 +01:00
Christoph Oelckers
9d8e7ea759
- crane cleanup
...
This now uses its own struct where it can store the needed actor pointer directly.
2021-11-29 00:56:22 +01:00
Christoph Oelckers
d405da9195
- changed furthestcanseepoint return value
...
This does not need to return a sector - the caller merely expects success or failure.
2021-11-29 00:56:22 +01:00
Christoph Oelckers
1a11e445c3
- remaining hitscans in player_d.cpp
2021-11-29 00:56:21 +01:00
Christoph Oelckers
b68c66dae6
-Duke/RR: started migrating hitscan to pointer usage.
2021-11-29 00:56:21 +01:00
Christoph Oelckers
ad030d7e23
- Duke: SE20 + SE128 are wall-free
...
Also use symbolic constantfor SE_128 to make it easier to find.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
010162261e
- Duke: use utilities in handle_se19
2021-11-29 00:55:39 +01:00
Christoph Oelckers
312bf5bf95
- Duke: use wall utilities in bounce and queball
2021-11-29 00:55:39 +01:00
Christoph Oelckers
01abe7b2ac
- addressed most unused/uninitialized variable warnings from MSVC.
2021-11-29 00:55:30 +01:00
Christoph Oelckers
c6bd5c04c7
- fixed most warnings GCC pointed out in game code.
2021-11-29 00:55:29 +01:00
Christoph Oelckers
dcccb0d653
- Duke: added [[fallthrough]] annotations wherever needed.
2021-11-29 00:55:29 +01:00
Christoph Oelckers
2d91786516
- changed all sector variables being passed to pushmove to full ints
2021-11-08 23:18:40 +01:00
Christoph Oelckers
2e1ff313b0
- Duke: only use the main clipmove function and match clipmove_ex’s interface
2021-11-08 23:11:29 +01:00
Christoph Oelckers
6b6c3f26a5
- use wallsofsector in a few more places.
2021-11-07 18:08:22 +01:00
Christoph Oelckers
59df3b0e19
- added a little utility that allows iterating over the walls of a sector with C++ for's.
2021-11-07 17:27:05 +01:00
Christoph Oelckers
fd2764dc6e
- Duke: eliminated all local short variables in actors*.cpp.
2021-11-07 16:30:55 +01:00
Christoph Oelckers
f95af3368b
- use ints in hitscan wrapper as well.
2021-11-07 16:20:59 +01:00
Christoph Oelckers
b13398c268
- quick global wall[] replacements.
2021-11-07 15:57:29 +01:00
Christoph Oelckers
d45f687d4b
- pass a sector pointer to floorspace/ceilingspace.
2021-11-07 15:00:06 +01:00
Christoph Oelckers
060da8ec1d
- Duke: replaced most sector array accesses with pointers in actors.cpp.
...
This already helped to find one 16 bit value that stored a sector index.
2021-11-07 15:00:06 +01:00
Christoph Oelckers
9a1c80c464
- Duke: added a wrapper for player_struct::cursectnum to directly return the sector pointer.
...
This eliminates more than 10% of the existing direct references to the sector[] array.
2021-11-06 21:59:42 +01:00
Christoph Oelckers
c3cbd1b1eb
- Duke: cleanup of cycler code.
...
Now uses a struct instead of an array with magic indices.
2021-11-06 21:53:15 +01:00
Christoph Oelckers
1c0e3d849b
- addressed the updatesector related deprecation warnings with Duke.
2021-11-06 20:46:08 +01:00
Christoph Oelckers
83fe41e71e
- made updatesector receive a 32 bit int pointer and deprecated the 16 bit variant.
2021-11-06 15:53:16 +01:00
Christoph Oelckers
f4cc5b5b89
- Duke: const-ify SE24 tile lists
2021-11-06 14:19:55 +01:00
Christoph Oelckers
c8d65a1f06
- use sector wrappers where easily doable with search and replace.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
b548d9eca2
- a few more quick sector[] replacements.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
8818a3f1cb
- Duke: added a getSector method to DDukeActor.
2021-11-06 14:19:54 +01:00
Mitch Richters
eb8b075727
- binaryangle.h
: Change binangle
bitshift operators to operate on signed value to properly handle angles > 1024.
2021-11-01 22:13:39 +11:00
Mitch Richters
a1570c185f
- Duke: Remove posx
/posy
/posz
variables and replace with points in the previously unionised pos
vec3_t
variable.
2021-10-31 17:52:52 +11:00
Christoph Oelckers
821f3d356b
- renamed DDukeActor::GetIndex to GetSpriteIndex to bring it in line with the other games.
2021-10-24 09:22:35 +02:00
Christoph Oelckers
b1ac1ad585
- more changesprite* renaming.
2021-10-12 21:36:42 +02:00
Christoph Oelckers
948f194064
- fixed warnings in Duke.
2021-10-08 19:21:29 +02:00
Christoph Oelckers
6be611fd94
- fixed merge.
2021-09-12 18:32:11 +02:00
Christoph Oelckers
0bd0923f44
- cleaned up some dirty code.
2021-08-30 08:07:40 +02:00
Christoph Oelckers
5b38343407
- fixed sprite exclusion logic in getzrange.
...
This was using the wrong flag.
2021-06-09 00:31:54 +02:00
Christoph Oelckers
dc846dcd49
- Duke: avoid clipping against self when executing script logic for floor sprites.
...
A good place to see the result is a kitchen knife in E4L2 that went missing due to the faulty check.
2021-06-01 21:21:39 +02:00
Christoph Oelckers
cb2bc7967a
- fixed the remaining warnings.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
03289f5097
- silenced some warnings.
2021-05-12 21:47:32 +02:00
Christoph Oelckers
82194bbf6b
Merge branch 'master' into newrenderer
...
# Conflicts:
# source/games/exhumed/src/2d.cpp
2021-04-17 13:22:30 +02:00
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
dc8b72b2ce
Merge branch 'master' into newrenderer2
...
# Conflicts:
# source/games/duke/src/actors.cpp
# source/games/duke/src/hudweapon_d.cpp
# source/games/duke/src/hudweapon_r.cpp
# source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers
96d78ab9e6
- made DukeActor::s a pointer.
...
As a reference we would never be able to export this to scripting
2021-04-15 19:21:43 +02:00
Mitchell Richters
f343bd8d5e
- Fix death camera issues stemming from f254eeb465
.
...
* Adjustment in `__addadjustment()` needs to be signed.
* Output of `bvectangbam()` needs to be signed before Duke/SW left-shift the value.
2021-04-11 17:52:29 +10:00
Christoph Oelckers
68b7628f56
- RRRA: Sector effector type 156 is not supposed to scroll the floor texture.
2021-04-07 18:12:25 +02:00
Christoph Oelckers
6ebbf1288d
- Duke/RR: Don't delete master switch sprites.
...
The sound system may play sounds on them after their deletion - this resulted in undefined behavior. To ensure properly defined behavior the sprite needs to be retained at least as long as the sound controller may still need it - which cannot be reliably determined so it has to be kept around forever. This would be easier if the sound controller code had proper start and stop events instead of inferring what to do from secondary information.
Fixes #288 .
2021-04-04 13:01:32 +02:00
Christoph Oelckers
a46792e519
- fixed SE21 handler.
...
This one is most prominently noticeable in WW2GI's first map where blowing up a crack has no effect.
This must have happened when removing all those dangerous pointer to long casts that were so popular back in the bad old days.
Fixes #266
2021-02-26 13:14:44 +01:00
Mitchell Richters
18fbc8996b
- Duke: Remove a few redundant sprite backups and change some backups to what's actually needed.
2021-01-06 06:22:31 +11:00
Mitchell Richters
97159c20c1
- Duke: Leverage new spritetype
methods within Duke, removing bposx
/bposy
/bposz
from hittype.
2021-01-06 06:22:29 +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
aae175f287
- Replace divscale##()
calls with MulScale()
from common.
...
* Regex for reference: divscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:20 +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
7d9f868e4c
- Replace dmulscale##()
calls with DMulScale()
from common.
...
* Regex for reference: dmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:10 +11:00
Mitchell Richters
e8c20f502b
- Duke: Back up sprite's angle in ticker and interpolate in gi->GetInput()
if !SyncInput()
. Sprite angle now works properly with cl_syncinput 1
.
2021-01-04 13:27:31 +11:00
Mitchell Richters
22f28477e4
- Duke: Revert backing up of sprite's ang
to tempang
from be12da6bfb
and subsequent interpolation of sprite's ang in 21da658617
and directly update the sprite's angle in gi->GetInput()
like the other games.
...
* Fixes #251 .
2021-01-04 08:49:57 +11:00
Mitchell Richters
0cab84f17a
- Duke: Backport EDuke32 commits b1e3f3bcf9c5214ae835d09e12cc41bac4f057ce & 4c4fdd1f4ab9381b60db06f37ec270850599e1ae in relation to swinging doors.
2021-01-03 15:45:38 +11:00
Mitchell Richters
86bb6b1cdc
- Duke: Backport EDuke32 commit ac64e11553344084753cdd75abd898ec2c725a16 to fix buggy swinging doors, most apparent on E4L1.
2021-01-02 23:41:03 +11:00
Mitchell Richters
be12da6bfb
- Automap: Put in framework to interpolate automap player.
2021-01-02 18:23:01 +11:00
Christoph Oelckers
72df9c26d8
- Duke: fixed: SE31's handler overwrote the interpolation coordinates, which rendered interpolation ineffective.
...
Also removing some redundant coordinate copying. Since we save all sprite coordinates at the start of a frame, there is no need to do the same again in the stat handlers.
Fixes #237
2020-12-11 19:17:41 +01:00
Christoph Oelckers
dd75c8dbe4
- weaken the reverb in Duke.
...
Unfortunately the entire thing is very poorly defined, not setting it for sectors but for sprites with a distance. But some of these sprites cover non-reverb sectors as well and this can produce some ugly sound field in spots where this isn't wanted at all.
2020-12-01 16:34:47 +01:00
Christoph Oelckers
92bf1232da
- Duke: documented global variables for eventual scriptification.
...
Most are only needed internally or for very special uses and do not need any scripting consideration.
2020-11-29 15:09:23 +01:00
Christoph Oelckers
7ad0750839
- grouped all of Duke's constant per-session state in a single struct.
...
Mainly done so later the script export can be done more easily.
This also renames a few of the affected variables for clarity.
2020-11-29 13:54:58 +01:00
Christoph Oelckers
d545eb7aa9
- make sector panning variables floats and added some convenience wrappers.
2020-11-26 18:32:35 +01:00
Mitchell Richters
80ff918b17
- gameinput.h: For PlayerAngle struct methods settarget()
, properly set target as angle + delta between angle & target within method and not game-side.
2020-11-26 17:26:29 +11:00
Mitchell Richters
e57d6f8785
- Duke: Fix crane's angle settarget()
call.
...
* Fixes #185 .
2020-11-22 21:18:12 +01:00
Mitchell Richters
ea4ad0548a
- All Games: Make use of new addadjustment()
overloads in PlayerAngle
struct created in 25207e4f1818a5ed38648ce87673329cd75e20e4.
2020-11-22 21:18:11 +01:00
Mitchell Richters
bf8b1238c6
- buildutils: Replace sintable[]
use within Duke's actors.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
70b75f72b5
- Duke: Fix issues with crane angle adjustment in movecrane()
following changes in fca846272e
.
...
* Fixes #170 .
2020-11-12 23:21:03 +11:00
Christoph Oelckers
d8e331ef0f
- changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
...
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
6729859e39
- fixed the crane.
...
Cannot take the special value out of the owner field. :(
2020-11-04 21:25:59 +01:00
Christoph Oelckers
0eb10f0313
- newowner and related code.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
d0db810ab0
- ud.camerasprite -> actor.
2020-11-04 20:40:08 +01:00
Christoph Oelckers
4c3435bacf
- moved some non-owner info out of the owner field.
...
This only handles items where both reading and writing can be located.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
15fc884909
- owners in spawn.cpp
2020-11-04 20:40:06 +01:00
Christoph Oelckers
e2e24fc508
- spawn.cpp part 2.
...
(Beware of the crane! That one's hacky!)
2020-11-04 20:40:06 +01:00
Christoph Oelckers
eb5cd98d9a
- fixed a few bad parameters.
2020-11-04 20:39:39 +01:00
Christoph Oelckers
7c6ea9cff7
- activatebysector.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
635b53f78f
- RR-movement + dummyplayersprite
2020-11-04 19:55:13 +01:00
Christoph Oelckers
32a7c2349e
- shoot interface transitioned/operateweapon mostly done.
2020-11-03 22:01:58 +01:00
Christoph Oelckers
4258c27248
- switched the checkhitsprite interface to actors.
2020-11-03 21:43:50 +01:00
Christoph Oelckers
ca78ed9b63
- shootweapon
2020-11-03 21:43:49 +01:00
Christoph Oelckers
17737eea85
- wrapped hitscan in a variant returning an actor.
2020-11-03 20:43:38 +01:00
Christoph Oelckers
de92287d0b
- fixed the messed up parameter order of OnEvent.
...
This should serve as a textbook example why passing around indices is a very, very bad idea!
2020-11-03 19:21:42 +01:00
Christoph Oelckers
4dd9be7b6d
..
...
- activatewarpelevators
2020-11-03 06:52:26 +01:00
Christoph Oelckers
6adc2f8e55
- findplayer
2020-11-01 17:07:47 +01:00
Christoph Oelckers
d4ee8a1c48
- removed a few redundant GetIndex calls.
2020-11-01 15:08:48 +01:00
Christoph Oelckers
2d1b8a2b4b
- use the cleaned up movesprite interface in moveweapons.
2020-11-01 14:51:32 +01:00
Christoph Oelckers
861342a278
- guts_d and guts_r.
2020-11-01 11:32:34 +01:00
Christoph Oelckers
b9aa5de217
- fixed merge error in handle_se00.
2020-11-01 10:52:38 +01:00
Christoph Oelckers
6a97b3d58e
- renamed variables.
2020-11-01 10:49:50 +01:00
Christoph Oelckers
f0b1ab504d
- fall_common and its fallspecial subfunction.
2020-11-01 10:48:26 +01:00
Christoph Oelckers
185b795481
- renamed variables in alterang.
2020-11-01 10:45:09 +01:00
Christoph Oelckers
85ea1df76a
- alterang
2020-11-01 10:44:16 +01:00
Christoph Oelckers
31e5023004
- dodge, furthestcanseepoint, furthestangle.
2020-11-01 10:41:25 +01:00
Christoph Oelckers
4e675ea322
- makeitfall
2020-11-01 10:41:24 +01:00
Christoph Oelckers
291edcdab8
- getglobalz
2020-11-01 10:41:16 +01:00
Christoph Oelckers
8f75a58343
- shared SE31 code.
2020-11-01 10:31:41 +01:00
Christoph Oelckers
21fb3fb7bb
- shared SE25 code.
2020-11-01 10:27:54 +01:00
Christoph Oelckers
00f5a08390
- shared SE24 code.
2020-11-01 10:27:41 +01:00
Christoph Oelckers
02813802d4
- the 5 remaining shared SE handlers.
2020-11-01 10:12:27 +01:00
Christoph Oelckers
769bc3bd22
- handle_se20-26.
2020-11-01 10:02:58 +01:00