Christoph Oelckers
231107921e
- handle a few more operators
2022-10-14 20:31:56 +02:00
Christoph Oelckers
588af5aa71
- add_int_zvel with -
2022-10-14 20:31:56 +02:00
Christoph Oelckers
8bfedc327f
- add_int_zvel
2022-10-14 20:31:56 +02:00
Christoph Oelckers
6ddfd8e97a
- set_int_zvel
2022-10-14 20:31:55 +02:00
Christoph Oelckers
70d0d0622b
- wrapped 0 assignments to zvel
2022-10-14 20:31:55 +02:00
Christoph Oelckers
a9d96864d3
- more zvel wrapping
2022-10-14 20:31:55 +02:00
Christoph Oelckers
3f7b423a4a
- zvel wrapping, part 1.
2022-10-14 20:31:55 +02:00
Christoph Oelckers
5a580c145e
- Backend update from GZDoom.
2022-10-14 20:19:48 +02:00
Mitchell Richters
5407de6924
- Use MaxSmoothRatio
everywhere so refactoring is easier later on.
2022-10-14 18:19:03 +02:00
Mitchell Richters
7d85acac13
- Clean up remaining automap interfaces to finish the floatification.
...
* Even though we pre-calculate the sine/cosine needed in `DrawOverheadMap()`, Duke and SW require the full angle for their more mature automaps.
2022-10-14 18:19:02 +02:00
Mitchell Richters
79f4702d1e
- Exhumed: Floatify automap draw code.
2022-10-14 18:13:50 +02:00
Christoph Oelckers
785575604b
- no need to use int_delta when all we want is the angle.
2022-10-13 22:54:43 +02:00
Christoph Oelckers
05a7fe8f36
- renamed walltype::fdelta and fcenter
2022-10-13 22:54:43 +02:00
Christoph Oelckers
6ce01e24d2
- renamed walltype::delta and walltype::center
2022-10-13 22:54:42 +02:00
Christoph Oelckers
70d0b2ea93
- Exhumed: floatified most of CreatePushBlock
2022-10-13 22:54:42 +02:00
Christoph Oelckers
559c24fa92
- 3 simple set_int_pos replacements
2022-10-13 20:58:12 +02:00
Christoph Oelckers
ac3302733f
- floatified FindWallSprites
2022-10-13 20:58:12 +02:00
Christoph Oelckers
f4d8ccf7b9
- floatified WarpToCoords
2022-10-13 20:58:12 +02:00
Christoph Oelckers
93fd94ecbb
- partial floatification of movesprite
2022-10-13 20:23:52 +02:00
Christoph Oelckers
21feb41d78
- Exhumed: gave local variables in FindWallSprites meaningful names
2022-10-13 19:59:16 +02:00
Christoph Oelckers
7ddfd944e6
- floatified position in BuildEnergyBlock
2022-10-13 19:59:15 +02:00
Christoph Oelckers
07826c7791
- eliminated DCoreActor::copyXY
2022-10-13 00:59:05 +02:00
Mitchell Richters
4d04a4dd3a
- Floatified automap's gZoom
.
...
* Also use the global directly in automap functions instead of passing it around as function variables.
2022-10-13 00:59:04 +02:00
Mitchell Richters
f5116dd787
- Pass a DAngle through to all the automap code.
2022-10-13 00:59:04 +02:00
Mitchell Richters
e970ed0f27
- Migrate spritetypebase::interpolatedvec3()
to backend solution.
...
* Also eliminate unused `interpolatedvec2() method from class.
2022-10-13 00:59:03 +02:00
Mitchell Richters
1e36aa0e7f
- Move TAngle<>
interpolation function to common and add ones for TVector<>
classes.
2022-10-13 00:59:03 +02:00
Mitchell Richters
dbcde19834
- Remove some Normalized360()
method calls I added where it shouldn't be necessary.
2022-10-13 00:59:03 +02:00
Christoph Oelckers
d573ba4cad
- pass map start as DVector3
2022-10-13 00:59:01 +02:00
Christoph Oelckers
45be09e6ab
- more angle assignments
2022-10-13 00:59:01 +02:00
Christoph Oelckers
a5a3669238
- eliminated the SetActor/Z function receiving a vec3_t pointer.
...
The only one left is the one with a DVector3 now.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
9af2045dee
- code cleanup in Exhumed's Lion AI.
2022-10-12 22:10:36 +02:00
Christoph Oelckers
97223af592
- silenced a few conversion truncation warnings.
2022-10-12 15:49:07 +02:00
Christoph Oelckers
f35c610328
- the remaining cansee calls
2022-10-11 18:09:48 +02:00
Christoph Oelckers
72187a7f3b
- mummy’s cansee and FindPlayer
2022-10-11 18:09:05 +02:00
Christoph Oelckers
209867e036
- cleaned out some unnecessary inlines.
2022-10-09 22:00:43 +02:00
Christoph Oelckers
766ddeb445
- one more batch of trivial replacements
2022-10-09 08:21:53 +02:00
Christoph Oelckers
7152868077
- trivial replacements in Exhumed.
2022-10-09 08:21:53 +02:00
Christoph Oelckers
aa0080039f
- refactored coordinate display to have a single unified printing function.
...
The games will now only return the data, this has also been added for Exhumed.
Printing will now be in actual map units, not build's internal mixed format.
2022-10-08 19:28:57 +02:00
Christoph Oelckers
c0c74fca84
- fishy grenade stuff
2022-10-08 19:28:56 +02:00
Christoph Oelckers
163146250d
- Exhumed: clean up PlayFXAtXYZ interface and its global variable abuse
2022-10-08 19:28:43 +02:00
Christoph Oelckers
de18371e06
- handle lasthit in Exhumed
2022-10-08 16:11:24 +02:00
Christoph Oelckers
0ee39bfad9
- getangle cleanup
2022-10-08 16:11:23 +02:00
Christoph Oelckers
4403a6a411
- eliminated redundant and less precise GetMyAngle function
...
The engine's getangle function just works fine here.
2022-10-08 16:11:23 +02:00
Christoph Oelckers
c66c750547
- handle all constant add_int_z calls in Exhumed
2022-10-08 16:11:23 +02:00
Christoph Oelckers
3a77742b72
- handle most set_int_z calls in Exhumed
2022-10-08 16:11:23 +02:00
Christoph Oelckers
ae79f3e3c3
- half of GetActorHeight
2022-10-08 16:11:23 +02:00
Christoph Oelckers
f78ecd22a4
- Exhumed: eliminated several set_int_pos calls
2022-10-08 16:11:01 +02:00
Christoph Oelckers
7d9406bf01
- AngleDiff
2022-10-08 10:06:04 +02:00
Christoph Oelckers
9d5acf8350
- getangle calls
2022-10-08 10:06:04 +02:00
Christoph Oelckers
d5bcc64206
- Exhumed: AddFlash floatified
2022-10-08 10:06:04 +02:00
Christoph Oelckers
f6c7a1c41d
- final BuildAnim calls
...
This was a bit more complex.
2022-10-08 10:06:04 +02:00
Christoph Oelckers
8ee10c5488
- Exhumed: use DVector3 in BuildAnim and some related code
2022-10-08 10:06:03 +02:00
Christoph Oelckers
4d02cdcce9
- use explicit types in hitscan calls
2022-10-06 20:50:47 +02:00
Christoph Oelckers
3a9f9988f4
- redid clipinsidebox* functions.
...
* Completely rewritten to be less obtuse.
* Consolidated the two variants.
* Renamed to be clearer about what they do.
2022-10-05 18:31:45 +02:00
Christoph Oelckers
b9d0c9d6ba
- simplified slope sprite code a bit and got rid of clipinsidebox overload.
2022-10-05 18:29:30 +02:00
Christoph Oelckers
e6f1d92567
- use floats for spawning Exhumed actors
2022-10-05 18:25:57 +02:00
Christoph Oelckers
5505c362e2
- floatified hitpos
2022-10-05 18:11:59 +02:00
Christoph Oelckers
55ade2eda4
- use int_hitpos() access function where applicable
2022-10-05 18:10:44 +02:00
Christoph Oelckers
296b5d7edd
- renamed HitInfo::hitpos
2022-10-05 18:03:41 +02:00
Christoph Oelckers
8f4c418a1b
- pos simplifications
2022-10-05 18:00:25 +02:00
Christoph Oelckers
360e01a778
another batch of set_int_pos in Exhumed.
2022-10-05 17:38:44 +02:00
Christoph Oelckers
f485f9d42e
- batch of set_int_pos in Exhumed
2022-10-05 17:36:31 +02:00
Mitchell Richters
d28d6cd4cf
- Utilise actor sprite's full precision in instances where angle was converted to Build and back again.
2022-10-05 00:36:30 +02:00
Mitchell Richters
5c84f93c08
- Use the static constexpr nullAngle
everywhere possible.
2022-10-05 00:36:30 +02:00
Mitchell Richters
02dfe2cb62
- Repair interpolation issues following change of sprite angles from integer to DAngle
types.
2022-10-05 00:36:30 +02:00
Christoph Oelckers
fe6fcdff1f
- use DAngle for actors
...
Note that intangle needs to be kept - primarily for SW's ST tags.
2022-10-05 00:36:29 +02:00
Mitchell Richters
abb8b87be1
- Eliminate last remaining binangle
inline utilities.
2022-10-05 00:36:28 +02:00
Mitchell Richters
c25493762b
- Eliminate bvectangbam()
.
2022-10-05 00:36:28 +02:00
Mitchell Richters
b23e77d9c7
- Replace player's ang
with DAngle
object.
...
* This commit does not build. Committed items are everything that's been done by find and replace.
* Next commit has hand-performed changes that are better separated out for clarity.
2022-10-05 00:36:27 +02:00
Mitchell Richters
dbc46e2a75
- Change out PlayerAngle::settarget()
's input from binangle
to DAngle
.
2022-10-05 00:36:27 +02:00
Mitchell Richters
13ea55b4cb
- Replace player's rotscrnang
and look_ang
angles with DAngle
objects.
...
* Went the el cheapo route and added some floating point Build angle methods. As these and the integer build methods are really just refactoring aids, we'll come back to this in due course.
2022-10-05 00:36:26 +02:00
Mitchell Richters
d3022947eb
- Replace use of binangle
in gi->processSprites()
with DAngle
object.
2022-10-05 00:36:24 +02:00
Mitchell Richters
aee102ba73
- Exhumed: Replace all uses of binangle
with DAngle
objects.
...
# Conflicts:
# source/games/exhumed/src/view.cpp
2022-10-05 00:36:23 +02:00
Mitchell Richters
ebac932efe
- Update render_drawrooms()
and render_camtex()
to work off DAngle
objects.
2022-10-05 00:36:23 +02:00
Mitchell Richters
c935fc2226
- Refactor chase cam positional code to use DAngle
input rather than binangle
.
...
* These changes still maintain Build's integer positional values in Q28.4/Q24.8, changing this will be done later on.
2022-10-05 00:36:22 +02:00
Christoph Oelckers
9a27dc2020
- handle all leftover __int_angles.
...
Most were in comments but were changed anyway.
2022-10-05 00:36:21 +02:00
Christoph Oelckers
6bdfa09dd1
- the remaining angle stuff.
2022-10-05 00:36:21 +02:00
Christoph Oelckers
2d51058de8
- add_int_ang
2022-10-05 00:35:14 +02:00
Christoph Oelckers
c2f4fa8bb5
- more angles
2022-10-04 23:56:44 +02:00
Christoph Oelckers
d55a84d7eb
- set_int_ang in Exhumed
2022-10-04 23:56:44 +02:00
Christoph Oelckers
f54e4b8a9a
- more int_ang()
2022-10-04 23:56:43 +02:00
Christoph Oelckers
33d5b54ce0
- use int_ang().
2022-10-04 23:56:43 +02:00
Christoph Oelckers
735b9a8fed
- renamed ang to __int_angle
2022-10-04 23:56:42 +02:00
Christoph Oelckers
3edbec4f55
- use copyXY method where possible.
2022-10-04 18:44:16 +02:00
Christoph Oelckers
6816e32d23
- call float 'interpolated' functions for setting tsprite's pos.
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
de81bb18c8
- Exhumed: fixed vertical aiming for hitscan weapons.
...
This code originally did some inept parameter merging which got broken in an earlier refactoring.
2022-10-01 14:35:20 +02:00
Christoph Oelckers
109684c029
- renamed a few things to make searching easier.
2022-08-27 10:03:10 +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
1231f6025d
- handle the last remaining uses of __int_pos that can be done with the function interface.
2022-08-26 19:53:10 +02:00
Christoph Oelckers
8ccaa0ab8c
- more tsprite position stuff
2022-08-26 19:53:10 +02:00
Christoph Oelckers
170387ab26
- tspritetype::pos access wrappers, part 1.
2022-08-26 19:53:10 +02:00
Christoph Oelckers
dc94dedc6b
- renaming spritetype::pos
2022-08-26 19:53:10 +02:00
Christoph Oelckers
ad9931081e
-fix some bugs, handle occurences in recently changed code
2022-08-26 19:53:10 +02:00
Christoph Oelckers
43bd8acb31
- Exhumed: renamed all spr.pos.
2022-08-26 19:53:08 +02:00
Christoph Oelckers
78720f93b2
- Exhumed: refactored all write accesses to spr.pos
2022-08-26 19:53:07 +02:00
Christoph Oelckers
2e0c62a2c7
- Exhumed: fourth batch of refactoring writes to spr.pos.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
255e12872c
- Exhumed: third batch of refactoring writes to spr.pos.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
24101f8e92
- Exhumed: second batch of refactoring writes to spr.pos.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
4131451a1a
- Exhumed: first batch of refactoring writes to spr.pos.
2022-08-26 19:53:07 +02:00
Christoph Oelckers
4f391e46ce
- added GetSoundPos variant taking a reference instead of pointer.
2022-08-26 19:53:03 +02:00
Christoph Oelckers
97b7f4b46a
- Exhumed: exported a handful of missed messages to the string table
2022-08-17 20:39:00 +02:00
Christoph Oelckers
4aee3bef47
- Exhumed: fixed coordinate bug with queen
...
# Conflicts:
# source/games/exhumed/src/queen.cpp
2022-08-17 20:38:55 +02:00
Christoph Oelckers
4d423004e9
- unlimited the displayable sprites.
...
Now with Polymost gone this can finally be done properly.
2022-08-07 10:25:15 +02:00
Christoph Oelckers
738c133d05
- animation precaching cleanup.
...
No need to handle animations on the,game side. markTileForPrecache already handles this - now also for oscillating animations.
2022-08-05 23:48:43 +02:00
Christoph Oelckers
83c0ad55f2
- rewrote nextsectorneighborzptr with a better parameter interface
2022-08-05 18:43:48 +02:00
Christoph Oelckers
ec66f39535
- replaced a few naked chars with better types.
2022-08-05 17:04:46 +02:00
Christoph Oelckers
c2fc7577db
- cleanup of 3D viewport code.
...
Removes all the hackery that Polymost needed and now uses a sane struct to store the info.
2022-08-05 17:04:45 +02:00
Christoph Oelckers
c5ec2af020
- Exhumed: fix position init in BuildfRat
...
This is only the cheat case, which is why this wasn’t detected earlier.
2022-08-05 09:41:25 +02:00
Christoph Oelckers
291726cc55
- removed the Polymost renderer.
2022-08-03 15:50:27 +02:00
Mitchell Richters
71fb91940d
Revert "- Simplify PlayerHorizon::settarget()
by adding a dedicated angle setter that resets interpolated value as well."
...
This reverts commit 0416834d9d
.
Revert "- Simplify `PlayerAngle::settarget()` by adding a dedicated angle setter that resets interpolated value as well."
This reverts commit 5a550613f3
.
Revert "- Add bool `lock` to `PlayerHorizon::settarget()` when setting target from the ticker without having to call setters and resetters."
This reverts commit 18541d1ab4
.
Revert "- Add bool `lock` to `PlayerAngle::settarget()` when setting target from the ticker without having to call setters and resetters."
This reverts commit 1ac58dc41c
.
* We need to ensure only the ticker can unlock the player's input if it's telling us to lock the input.
2022-06-06 18:41:45 +10:00
Mitchell Richters
5a550613f3
- Simplify PlayerAngle::settarget()
by adding a dedicated angle setter that resets interpolated value as well.
2022-05-30 21:22:10 +10:00
Mitchell Richters
0416834d9d
- Simplify PlayerHorizon::settarget()
by adding a dedicated angle setter that resets interpolated value as well.
2022-05-30 21:21:52 +10: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
aab13addb7
-renamed spritetype’s owner field to ‚intowner‘
...
Mainly for easier searching.
Also remove the duplicate ‚detail‘ field.
2022-05-24 00:30:41 +02:00
Christoph Oelckers
377b0fa8c8
- Exhumed: pin death arms to the right side of the screen
2022-05-06 00:03:54 +02:00
Christoph Oelckers
3114059145
- fixed sprite indices for map spawned sprites.
2022-03-20 12:08:47 +01:00
Rachael Alexanderson
735740e453
- add level names to title bar (and by proxy, to RPC)
2022-03-18 05:06:58 -04:00
Christoph Oelckers
a1339f014c
- store indices in sectionsPerSector.
2022-02-20 23:11:04 +01:00
Mitchell Richters
009c03f430
- Exhumed: Properly fix interpolation issues when at the end of the level instead of trying to back up everything.
...
Revert "- Exhumed: Don't force the framerate to reduce to ticrate at end of each level, instead interpolate player's position to prevent draw errors."
This reverts commit 57d54a2105
.
Revert "- Exhumed: Extend 57d54a2105
to back up the player's `bobangle` variable as well at the map's end."
This reverts commit 520c03b4f1
.
Revert "- Exhumed: Extend 520c03b4f1
to back up the player's `totalvel` variable as well at the map's end."
This reverts commit 1446486871
.
2022-02-20 20:35:35 +11:00
Christoph Oelckers
892c361449
- avoid pointer arithmetic in feebtag.
2022-02-19 10:11:12 +01:00
Christoph Oelckers
71943abed0
- changed math utilities to floating point coordinate system.
2022-02-15 22:18:26 +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
12b25df582
- Exhumed: handle unterminated strings in LoadSound without reading beyond their end.
2022-01-29 13:29:59 +01:00
Christoph Oelckers
ca9936a601
- Exhumed: fix issues with uninitialized buffer data in seq_ReadSequence.
2022-01-29 12:25:48 +01:00
Christoph Oelckers
0e89bffabd
- Exhumed: fixed surace collisions of projectiles.
...
There was some commented out undefined behavior here, we need to properly define this case.
2022-01-25 00:57:59 +01:00
Christoph Oelckers
30adac6e7f
- Exhumed: removed erroneous target assignment in Anubis AI.
2022-01-25 00:25:52 +01:00
Christoph Oelckers
f194fb6c90
- added a name to tilenum function so that we can define picnums by name in scripted actors.
2022-01-24 00:24:47 +01:00
Christoph Oelckers
a23124a201
- Exhumed: fixed check for bad ending cutscene.
2022-01-22 23:11:34 +01:00
Mitchell Richters
1446486871
- Exhumed: Extend 520c03b4f1
to back up the player's totalvel
variable as well at the map's end.
2022-01-19 23:00:04 +11:00
Christoph Oelckers
3aff12cf4c
- sky management rework.
2022-01-16 12:12:43 +01:00
Mitchell Richters
520c03b4f1
- Exhumed: Extend 57d54a2105
to back up the player's bobangle
variable as well at the map's end.
2022-01-16 08:32:22 +11:00
Christoph Oelckers
40cee808a1
- Exhumed: use proper distance calculations when spawning weapon flashes.
...
The cheap distance approximation here tended to fail on longer walls.
2022-01-15 18:33:37 +01:00
Christoph Oelckers
b1d3e8ee54
- Exhumed: Avoid playing the same pickup sound while another copy of it is already active.
...
The pickup code here is not robust enough to play the sound only once per pickup.
2022-01-15 16:11:42 +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
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
a3162f6ccf
- renamed testnewrenderer CVAR.
2022-01-07 12:49:41 +01:00
Christoph Oelckers
2f66377511
- Exhumed: use the loop flag when starting music.
2022-01-04 12:42:45 +01:00
Christoph Oelckers
9c07f05f0f
- Exhumed: clear all pointers in the player struct when starting a level.
2022-01-04 12:42:45 +01:00
Christoph Oelckers
78f02fbd55
- avoid larger time jumps in Ramses text scroll.
2022-01-04 12:42:45 +01:00
Christoph Oelckers
8267f327e3
- Exhumed: hide all screen overlays when Ramses is talking.
2022-01-04 12:42:45 +01:00
Christoph Oelckers
894f9a6b0a
- Exhumed: fix Ramses text overlay display.
2022-01-04 12:42:44 +01:00
Mitchell Richters
57d54a2105
- Exhumed: Don't force the framerate to reduce to ticrate at end of each level, instead interpolate player's position to prevent draw errors.
2022-01-04 21:43:08 +11:00
Christoph Oelckers
a9b162b8e9
- moved the tsprite flags from cstat2 to clipdist which was already holding other ones.
...
cstat2 should only hold flags for game-side sprites.
2021-12-30 19:00:35 +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
f0b7fe4add
- use setsector from DCoreActor.
...
Also did a bit of cleanup
2021-12-30 16:36:04 +01:00
Mitchell Richters
8f468607ff
- Exhumed: Replace Player
velocity and damage variables with vectors.
2021-12-31 00:19:33 +11:00
Christoph Oelckers
9158796284
- partial replacement of tspriteptr_t.
2021-12-30 11:48:10 +01: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
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
bf9defc062
- SW: moved some Polymost hack stuff to its proper place.
2021-12-30 09:58:46 +01:00
Christoph Oelckers
fb53f32603
- handle the remaining write accesses to ceilingz and floorz.
...
Everything is routed through the wrapper functions now.
2021-12-30 09:58:14 +01:00
Christoph Oelckers
913f6e713d
- Hack for Exhumed: palette 4 does not fade to black so sprites should not have shades above numshades.
...
The new renderer will treat such shades as completely black to ensure proper rendering of shadows - but for this palette this must be skipped.
2021-12-30 09:58:09 +01:00
Christoph Oelckers
de3e66016c
- removed the Actor() access method from Exhumed's player as well.
2021-12-30 09:58:06 +01:00
Mitchell Richters
95d270fbdd
- Exhumed: Clean up local functions variables to prevent redefinition conflicts.
2021-12-30 09:57:31 +01:00
Christoph Oelckers
fd78cb57c1
- fixed some bad flag replacements.
...
0x7fff is not ~CSTAT_SPRITE_BLOCK but ~CSTAT_SPRITE_INVISIBLE.
2021-12-30 09:57:29 +01:00
Christoph Oelckers
92f2182e6e
- SW: all s() in actor.cpp
2021-12-30 09:57:28 +01:00
Christoph Oelckers
2718b3a5e3
- remaining s() in Exhumed
2021-12-30 09:57:28 +01:00
Christoph Oelckers
d4c01ce957
- remaining s() in queen.cpp.
2021-12-30 09:57:28 +01:00
Christoph Oelckers
4610fc6e99
- remaining s() in player.cpp.
2021-12-30 09:57:27 +01:00
Christoph Oelckers
d40da386a4
- remaining s() in object.cpp.
2021-12-30 09:57:27 +01:00
Christoph Oelckers
301350ef8c
- remaining s() in move.cpp
2021-12-30 09:57:27 +01:00
Christoph Oelckers
7eaf669295
- remaining s() in bullet.cpp, grenade.cpp and gun.cpp.
2021-12-30 09:57:27 +01:00
Christoph Oelckers
cd6bb5305e
- second batch of Exhumed's s().
2021-12-30 09:57:27 +01:00
Christoph Oelckers
6f0e7e3784
- Exhumed: batch of several s().
2021-12-30 09:57:27 +01:00
Christoph Oelckers
56bd9e7e27
- Exhumed: pActor->s() in spider.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
05d2b90418
- Exhumed: pActor->s() in anubis.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
046ff607dc
- Exhumed: pActor->s() in wasp.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
eda75a38d2
- Exhumed: pActor->s() in snake.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
0fb92e3928
- Exhumed: pActor->s() in set.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
b34a4af15e
- Exhumed: pActor->s() in scorp.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
013cf05042
- Exhumed: pActor->s() in runlist.cpp
2021-12-30 09:57:26 +01:00
Christoph Oelckers
318678b5a1
- Exhumed: pActor->s() in roach.cpp
2021-12-30 09:57:25 +01:00
Christoph Oelckers
a6c592b12c
- Exhumed: pActor->s() in rex.cpp
2021-12-30 09:57:25 +01:00
Christoph Oelckers
b02feec2e8
- Exhumed: pActor->s() in rat.cpp
2021-12-30 09:57:25 +01:00
Christoph Oelckers
430a0263d5
- Exhumed: pActor->s() in ra.cpp
2021-12-30 09:57:25 +01:00
Christoph Oelckers
d162c36113
- Exhumed: pActor->s() in queen.cpp
2021-12-30 09:57:25 +01:00
Christoph Oelckers
b641da3959
- Exhumed: pActor->s() in player.cpp and view.cpp.
2021-12-30 09:57:25 +01:00
Christoph Oelckers
b6d04ffec0
- Exhumed: pActor->s() in object.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
dca478d284
- Exhumed: pActor->s() in mummy.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
23f274120c
- Exhumed: pActor->s() in move.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
ca88e241e1
- Exhumed: pActor->s() in lion.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
5700b8ade6
- Exhumed: pActor->s() in lavadude.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
33918ac554
- Exhumed: pActor->s() in items.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
1d01a6cff7
- Exhumed: pActor->s() in init.cpp + lighting.cpp
2021-12-30 09:57:24 +01:00
Christoph Oelckers
613dd67578
- Exhumed: pActor->s() in grenade.cpp
2021-12-30 09:57:23 +01:00
Christoph Oelckers
79e6412ad5
- Exhumed: pActor->s() in fish.cpp
2021-12-30 09:57:23 +01:00
Christoph Oelckers
a7cebcafbb
- Exhumed: pActor->s() in bullet.cpp
2021-12-30 09:57:23 +01:00
Christoph Oelckers
03759ef73b
- Exhumed: pActor->s() in bubbles.cpp
2021-12-30 09:57:23 +01:00
Christoph Oelckers
89a1fcdfac
- Exhumed: pActor->s() in anims.cpp
2021-12-30 09:57:23 +01:00
Christoph Oelckers
1bb7f3764d
- handle all s() cases in Exhumed using pSprite but not pActor->s().
2021-12-30 09:57:23 +01:00
Christoph Oelckers
6766a5922a
- pass actors to calcChaseCamPos.
2021-12-30 09:57:18 +01:00
Christoph Oelckers
f67e39450e
- deal with a handful of s() uses that do not match the more common patterns.
2021-12-30 09:57:13 +01:00
Christoph Oelckers
a2fc415b30
- fixed Exhumed panning setup.
...
Converted it to floating point and removed the nonsensical & with the texture size that was clearing significant bits.
2021-12-30 09:57:09 +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
e0e6efe0a0
- Exhumed: fixed some sound source issues.
2021-12-30 09:57:01 +01:00
Christoph Oelckers
d9d05e90b5
- globally replaced all occurences of '->s().' with '->spr.'
2021-12-30 09:57:00 +01:00
Christoph Oelckers
c16b090fbe
- Exhumed: clear lasthitsect when starting a new level.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
e42c3afbea
- Exhumed: fixed trap setup.
...
Must clear the structure before the first return and iterate over the walls by reference, otherwise bad pointers will get copied.
2021-12-30 09:56:55 +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
8039d81467
- the remaining Exhumed flags.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
988a91904a
- a large of Exhumed flags, most search& replace plus a few local variable types.
2021-12-30 09:56:49 +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
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
8d0013128e
- Exhumed: use symbolic constant CSTAT_SPRITE_INVISIBLE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
dddf48fd3e
- cleaned up and renamed buildtypes.h.
...
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
46d7487a3b
- SW: clear all pointer variables the player may still hold when terminating a level.
2021-12-30 09:53:10 +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
Mitchell Richters
2f567bdb74
- Exhumed: Fix two signed/unsigned comparison warnings in PlayFX2()
.
...
* Lines in question:
** 606 | if (chan->SoundID == nSound + 1)
** 621 | if (chan->SoundID == nSound + 1)
* All data sent to `PlayFX2()` and functions that wrap `PlayFX2()` are signed values, so keep signed all the way through.
2021-12-26 23:10:06 +01:00
Christoph Oelckers
d8ccfa1a5f
- cleaned up nextsectorneighborz, added a safe variant and use this in all places where the sector pointer is not validated.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
b8c4354691
- got rid of the MAX... constants and adjusted all places still using them.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
838bed7800
- final cleanup of sectnum related stuff.
...
Made sure that remaining uses of sector indices are safe to be kept and deleted a few redundant functions.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6d432fca0a
- made spritetype::sectnum a pointer.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6a43a270fa
- use sectno() access function where we really need a sector index.
2021-12-26 23:10:01 +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
1d371b8cbf
- clear some data on init.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
8dde6a3074
- Added GC support to Exhumed
2021-12-26 23:09:59 +01:00
Christoph Oelckers
588f88c9cc
- migrated the actors to DObjects.
...
No GC yet, only the classes have been altered and some GC-related features been added.
Full switchover will require adding GC support to all data in the game.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
8a2385dd89
- actor clearing cleaned up.
...
We still need this until we can get rid of the static arrays...
2021-12-26 23:09:55 +01:00
Christoph Oelckers
4cecb6f955
- removed the old actor savegame code and instead implemented a virtual Serialize function.
...
This isn't hooked up yet, currently savegames are non-functional. They will come back once the global actor arrays are no longer relevant for maintenance.
2021-12-26 23:09:55 +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
Christoph Oelckers
eaff9e359f
- refactored the owner index in tspritetype.
...
This is now a separate type from spritetype which contains an actor pointer instead so that sprite display can be handled without requiring a static sprite array.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
e13a275cfc
- got rid of the sole linear sprite iterator in Exhumed and deleted the iterator code entirely.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
6600f55543
- separate map loading from actor spawning for the other games, too.
...
It still uses the horribly messed up original spawn logic, though.
2021-12-26 23:09:51 +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
5dfc79bdbe
- MarkSectorSeen
2021-12-26 23:09:48 +01:00
Christoph Oelckers
a22634f228
- sectnum reduction.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
221d9fe28e
- adapted Duke's and Exhumed's sound code to directly work with actors.
...
This was already wrapped so all that needed to be done was removing the wrapper.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
97b19a5cb1
- adapted Blood's sound engine to using actors.
...
Note: Savegames won't work on this commit for the other games!
2021-12-26 23:09:45 +01:00
Christoph Oelckers
b7a5ea8ef6
- moved some common utilities into the backend.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
bbb860ccf3
- consolidate the iterators in the backend.
...
Using a template class that can adapt to the game specific types.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
12f6b05cbe
- use access functions, all done by search & replace.
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
729076b79d
- adapted neartag in SW and Exhumed.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
91e2391911
- adapted neartag in Duke.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
b3bbf8932e
- same procedure for Exhumed.
2021-12-26 23:08:58 +01:00
Christoph Oelckers
96b9572905
- moved parts of the HitInfo subclasses into the backend.
...
All the game code now needs to do is a single 'using' statement.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
4bfb03b6b3
- adapted hitscan calls in Exhumed.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
9380819e4e
- initialize actorArray for all games.
...
- the foundation for an actor aware backend.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
52c80f187a
- added coreactor.h
2021-12-26 23:08:55 +01:00
Christoph Oelckers
624ad6a2ad
- cleanup stuff.
...
Removed unneeded prototypes, renamed some variables; no logic changes.
2021-12-25 21:29:05 +01:00
Christoph Oelckers
943641d18e
- renamed all nSector pointers to pSector
...
No logic changes!
2021-12-25 21:29:04 +01:00
Christoph Oelckers
a3ecbe6371
- MoveQS
2021-12-25 21:29:04 +01:00
Christoph Oelckers
b1b7608cf7
- most remaining sectnum references.
2021-12-25 21:29:04 +01:00
Christoph Oelckers
2027c6ebaf
- the last sector[]
2021-12-25 21:29:04 +01:00
Christoph Oelckers
6e786fcf1e
- RadialDamage + DimSector
2021-12-25 21:29:04 +01:00
Christoph Oelckers
24d4680f6e
- sector[] in move.cpp
2021-12-25 21:29:03 +01:00
Christoph Oelckers
80f80ed5e5
- initsect
2021-12-25 21:29:03 +01:00
Christoph Oelckers
f09e7ed32f
- spawn functions.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
40ae38c173
- calcChaseCamPos.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
a3f1821670
- nPlayerViewSect
2021-12-25 21:29:03 +01:00
Christoph Oelckers
eaa155d52e
- various sectnums,
2021-12-25 21:29:02 +01:00
Christoph Oelckers
9b19845dfb
- AddMovingSector/CheckPushBlock
2021-12-25 21:29:02 +01:00
Christoph Oelckers
63d66e95c5
- runlist_ProcessSectorTag
2021-12-25 21:29:02 +01:00
Christoph Oelckers
1163a79da9
- renamed sectp in runlist_ProcessSectorTag
2021-12-25 21:29:02 +01:00
Christoph Oelckers
a58548c2f9
- AIElev
2021-12-25 21:29:02 +01:00
Christoph Oelckers
7713723045
- Bullets and bobs.
2021-12-25 21:29:02 +01:00
Christoph Oelckers
b191bca49e
- BuildAnim
2021-12-25 21:29:01 +01:00
Christoph Oelckers
2394420f48
- quick replacements
2021-12-25 21:29:01 +01:00
Christoph Oelckers
109ff8c3cb
- Above and Below
2021-12-25 21:29:01 +01:00
Christoph Oelckers
7b84a1464c
- don't access invalid sector in DrawView.
...
Old bug exposed by having operator[] assert on bad access to sector[].
2021-12-25 21:29:01 +01:00
Christoph Oelckers
aee560624d
- some more sectors.
2021-12-25 21:29:01 +01:00
Christoph Oelckers
78d9b78193
- most of the rest of the walls.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
5374dafb56
- switches
2021-12-25 21:29:00 +01:00
Christoph Oelckers
ec12eb11f6
- palette loops for renderer.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
cdef530597
- PlayerPushSect
2021-12-25 21:29:00 +01:00
Christoph Oelckers
5e01841f1e
- MoveSector et.al.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
0b254255e2
- sector ambience
2021-12-25 21:28:59 +01:00
Christoph Oelckers
c933eff59f
- Traps
2021-12-25 21:28:59 +01:00
Christoph Oelckers
e57f9e08e9
- slides.
2021-12-25 21:28:59 +01:00
Christoph Oelckers
44639faabb
- Flickers
2021-12-25 21:28:59 +01:00
Christoph Oelckers
e90d1266ae
- Glows.
2021-12-25 21:28:59 +01:00
Christoph Oelckers
dfbb5192fb
- addFlash at.al.
2021-12-25 21:28:59 +01:00
Christoph Oelckers
20891f276d
- use pointers in runlist_ProcessWallTag and all its subfunctions.
2021-12-25 21:28:58 +01:00
Christoph Oelckers
2d937891ac
- 3x twoSided
2021-12-25 21:28:58 +01:00
Christoph Oelckers
2d1f5fc576
- Exhumed: some cleanup.
2021-12-25 21:28:58 +01:00
Christoph Oelckers
61d5680950
more wall loops
2021-12-25 21:28:58 +01:00