Commit graph

13428 commits

Author SHA1 Message Date
Christoph Oelckers
ad0860f4bf - fixed sprite rendering being aborted if a sprite with invalid texture was encountered. 2022-12-29 14:53:21 +01:00
Christoph Oelckers
c72f5e2242 - SW: SECT_WALL_MOVE must consider tilenum 0 as 'no change'. 2022-12-29 14:40:18 +01:00
Christoph Oelckers
d064706f93 - got rid of wallpicnum and overpicnum.
All map geometry npw uses texture IDs and no longer depends on Build's tile system.
(What's missing is a new map format, though, but this was a necessary prerequisite to make that worthwile...)
2022-12-29 14:14:53 +01:00
Christoph Oelckers
f5e9e7d981 - got rid of most remaining references to wallpicnum and overpicnum.
What remains now needs changing the variables to texture IDs first.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
90702ae2f5 - consolidated the animwall code by using texture flags.
This is way too hacky for generalization. For that newly defined control actors are surely a better option.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
bfdfff7a42 - named all of SW's breakable wall textures.
We need this later when these get exported.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
b980789ddf - skip switch animation checks for custom switch actors. 2022-12-29 14:01:39 +01:00
Christoph Oelckers
95a2b85fae - migrated the rest of the switch code to use the external data. 2022-12-29 13:35:21 +01:00
Christoph Oelckers
0c0199fbdc - same procedure for wall switches 2022-12-29 13:33:02 +01:00
Christoph Oelckers
d9122a0482 - split out the sprite switch toggle handler into a common subfunction using the switch definitions. 2022-12-29 13:33:02 +01:00
Christoph Oelckers
4191a9493a - split RRRA's tag10000specialswitch into a subfunction.
Unfortunately I have no idea where this gets used so it's untested for now.
2022-12-29 13:33:02 +01:00
Christoph Oelckers
97a5fc2948 - did a clean reimplementation of resetswitch. 2022-12-29 13:33:02 +01:00
Christoph Oelckers
9bc0a43028 - fixed lookup for tile aliases pointing to non-existent tiles. 2022-12-29 13:33:02 +01:00
Christoph Oelckers
564e9d2905 - use switch types to cut doen the first switch/case block in checkhitswitch 2022-12-29 13:33:01 +01:00
Christoph Oelckers
808fb3c433 - simplified several switch check blocks using the data from the definition files. 2022-12-29 13:32:30 +01:00
Christoph Oelckers
2386ea9930 - implemented the 3 special switches
That's the developer commentary icon in World Tour, the deactivation switch for the chicken processing plant in RR and one shootable alarm bell in RRRA.
2022-12-29 13:32:30 +01:00
Christoph Oelckers
0d9fe83cba - implemented the switch parser and set up the external definitions. 2022-12-29 13:32:29 +01:00
Mitchell Richters
22f5c69b4c - Duke: Fix bad checkaccessswitch_*() calls.
* Fixes #815.
2022-12-29 22:45:36 +11:00
Mitchell Richters
e528c3fbb8 - SW: Repair whoopsie in BunnyCheat(). 2022-12-29 21:50:29 +11:00
Mitchell Richters
1d69ebe9b0 - Duke: Ensure that the expander hitscans when autoaim is "hitscan only".
* Fixes #827.
2022-12-29 21:17:41 +11:00
Mitchell Richters
fbee05e760 - SW: Restore two original cheat codes lost long ago.
* Fixes #810.
2022-12-29 20:59:19 +11:00
Mitchell Richters
9d5bae0c8e - SW: Fix clipmove call within DoPlayerMoveVehicle().
* Originating from 05ad1e38e9.
* Fixes #829.
2022-12-29 20:32:58 +11:00
Mitchell Richters
ca2a427379 - SW: Re-add CVAR_SERVERINFO back to sw_ninjahack but leave commented out, it may be needed later. 2022-12-29 19:41:41 +11:00
Mitchell Richters
6065140f68 - SW: Remove CVAR_SERVERINFO flag from sw_ninjahack and take them out of the global space. 2022-12-29 19:36:18 +11:00
Mitchell Richters
b0b2f1bf1b - SW: Only bring the weapon back up after doing chops if not on a vehicle with a weapon. 2022-12-29 19:25:17 +11:00
Mitchell Richters
c240c8e6ee - SW: Fix two bad calls to pushmove() where a fixed point adjustment was used.
* Came in from 3ac4e7ed2d.
* Fixes #816.
2022-12-29 19:02:56 +11:00
Mitchell Richters
dcd0e62466 - SW: Remove call to doYawKeys() from DoPlayerDeathFollowKiller(). 2022-12-29 14:35:42 +11:00
Mitchell Richters
96e8565ba7 - Blood: Reset player's render angle state only for the console player. 2022-12-29 14:35:42 +11:00
Mitchell Richters
572ec96467 - SW: Reset player's render angle state only for the console player. 2022-12-29 14:35:41 +11:00
Mitchell Richters
7593114fc7 - SW: Tidy up UpdatePlayerSprite() a bit. 2022-12-29 14:35:41 +11:00
Mitchell Richters
774c7795b1 - SW: Apply same fix to DoPlayerClimb(). 2022-12-29 14:35:38 +11:00
Mitchell Richters
7e1e447f98 - SW: Apply same fix to DoPlayerFly(). 2022-12-29 14:27:59 +11:00
Mitchell Richters
09304ef298 - SW: Fix player diving height issues.
* Fixes #822.
2022-12-29 14:27:59 +11:00
Mitchell Richters
6c7797a9f0 - SW: Clean up some noisy commented out calls to DoPlayerHeight(). 2022-12-29 13:50:27 +11:00
Rachael Alexanderson
6b8bdcc449 - fix math error on ARM architectures 2022-12-28 02:07:10 -05:00
Mitchell Richters
adc2396f31 - Duke: Extend fix from previous commit to appropriately resize the VMValue array also. 2022-12-24 15:41:37 +11:00
CandiceJoy
a943652799 Fixed a Mac debug build crash where CallAnimate attempted to pass one too many parameters to the VM. 2022-12-23 10:38:59 +01:00
Mitchell Richters
0b3076d2b4 - SW: Fix PreMapCombineFloors() setup due to player actor not yet being initialised.
* Fixes #804.
2022-12-23 19:18:08 +11:00
Mitchell Richters
4890f1d9dc - SW: Adjustments to the death height code on the back of the last commit. 2022-12-23 19:18:07 +11:00
Mitchell Richters
5f1581be9d - SW: Rework the player's height adjustment to use the pos.Z setter from during the refactor.
* I tried to get smart during the refactor when I should have kept it simple.
* Fixes #813.
2022-12-23 19:18:07 +11:00
Kevin Caccamo
996e0ef6cf Attempt to fix #806
Default-initialize TilesetBuildInfo `info`.
Also, make every function in defparser.cpp static except for loaddefinitionsfile, since that's the only function which is called from other source files.
2022-12-22 22:14:13 +01:00
Christoph Oelckers
c7e25726c1 - use memset to clear 'gs' in loadconst.
MSVC compiled the old assignment to memsetting a local copy and then memcpying it to the destination, but this struct is far too large for that and was causing occasional stack errors when debugging.
2022-12-20 12:44:34 +01:00
Christoph Oelckers
ab97f00cd1 - delete entry for Vulkan's natvis file from project 2022-12-18 19:40:27 +01:00
Christoph Oelckers
ef7c72ce9f - Blood: add all statically stored EventObjects to the GC processor. 2022-12-18 17:54:54 +01:00
Christoph Oelckers
b1e2b2addf - backend cleanup from GZDoom. 2022-12-18 16:31:50 +01:00
Christoph Oelckers
d7da983c5e - removed Vulksn SDK from main source folder.
This is now part of ZVulkan.
2022-12-18 16:27:24 +01:00
Christoph Oelckers
e3d16d254d - fixed: when deactivating the app, pausing the sound system should not depend on the game's internal pause state.
All this tells is that the gameplay was halted. Sound was not stopped when the user either minimized or tabbed away in the in-game menu.

This commit had to be reapplied because it got lost in a backend update.
2022-12-18 15:28:17 +01:00
Christoph Oelckers
21d4aae182 - fixed lookup for tile aliases pointing to non-existent tiles. 2022-12-18 15:19:35 +01:00
Christoph Oelckers
8c41294cb0 - overpicnum lightening.
Especially make sure that it is never set to tile 0. There seems to have been some undefined behavior here treating 0 as 'no texture', but doing so inconsistently.
2022-12-18 15:13:22 +01:00
Christoph Oelckers
837e4d1438 - eliminated many uses of wallpicnum.
The ones left require a bit more work on the data first.
2022-12-18 15:11:08 +01:00
Christoph Oelckers
ffb471666d - moved the access switch handlers out of checkhitswitch_*. 2022-12-18 15:08:27 +01:00
Christoph Oelckers
79c91b2538 - only write special texture properties if they are being defined. 2022-12-18 15:06:20 +01:00
Christoph Oelckers
a9ea2cd5c0 - moved GetReservedScreenSpace function into the scripted status bar where it belongs.
Since this is supposed to return the height of the status bar, keeping it native is a bit pointless as it cannot be modified that way.
2022-12-18 14:47:38 +01:00
Mitchell Richters
b4f6ea6232 - Fix linking errors. 2022-12-18 14:47:32 +01:00
Christoph Oelckers
c41dc29885 - eliminated half of the remaining tileWidth and tileHeight calls. 2022-12-18 14:45:09 +01:00
Christoph Oelckers
e78fd90f67 - adapted sky code for using texture IDs. 2022-12-18 14:42:27 +01:00
Christoph Oelckers
8dfbbc8220 - migrated floorpicnum and ceilingpicnum to FTextures.
The sky code still needs some work.
2022-12-18 14:32:52 +01:00
Christoph Oelckers
4ea252c227 - simplified SW's mirror setup a bit to take advantage of Raze's in-engine mirror handling.
We only need one label texture and no special treatment of the backsector.
2022-12-18 14:06:34 +01:00
Christoph Oelckers
9d62951cf3 - SW: use surface types for detecting water and lava sectors 2022-12-18 14:05:17 +01:00
Christoph Oelckers
32ad16f84d - SW's first texture flag, yay!
Removes two floorpicnum accesses
2022-12-18 14:04:33 +01:00
Christoph Oelckers
622710ede4 - migrated all uses of floorpicnum.
This necessitated a few more surface type definitions.
2022-12-18 14:02:56 +01:00
Christoph Oelckers
4a306a21dc - split several texture flags off into a surface type value.
Using the same field in the TexExtInfo struct as Blood's surfType.
This frees up a lot of flags for later use.
2022-12-18 13:56:54 +01:00
Christoph Oelckers
1a98f9b478 - Duke: change all checks for mirrors to texture IDs 2022-12-18 13:52:10 +01:00
Christoph Oelckers
5b8dd84361 - use setceilingtexture where textures are simply copied around 2022-12-18 13:52:10 +01:00
Christoph Oelckers
ee8b685fe2 - adapted the breakable stuff interface in Duke to Texture IDs. 2022-12-18 13:52:03 +01:00
Christoph Oelckers
f3e652da84 - preparations and annotations for places in SW where textures are stored in tags. 2022-12-18 13:44:36 +01:00
Christoph Oelckers
0ffeb2378a - generalize Duke's purple lava check. 2022-12-18 13:43:26 +01:00
Christoph Oelckers
6848af9b6c - use texture IDs in Duke's texture flag checkers. 2022-12-18 13:42:28 +01:00
Christoph Oelckers
5147826eeb - consolidated precaching code and rewrote the core to work on texture IDs. 2022-12-18 13:37:54 +01:00
Christoph Oelckers
1a6f808fca - refactored all access to the fake picanm[] array.
Also use symbolic names in precache calls in Blood.
2022-12-18 13:26:29 +01:00
Christoph Oelckers
e23a5095cb - moved the other tile info tables of Blood to the texExtInfo array as well.
The two fields are easily reusable for the other games so it's a welcome simplification.
2022-12-18 13:23:59 +01:00
Christoph Oelckers
c34756e5f2 - cleanup of voxel init code.
The voxreserve array was never properly set up so it is gone now.
nextvoxid now gets set right before loading .def files.
2022-12-18 13:18:44 +01:00
Christoph Oelckers
8a789b9015 - voxel management cleanup.
Moving the voxel index into the texExtInfo array and removing most of Blood's and SW's special handling.
2022-12-18 13:18:43 +01:00
Christoph Oelckers
be2112a507 - fixed ESC pressing on Duke's monitors.
This got busted by an update from GZDoom.
2022-12-18 13:06:09 +01:00
Christoph Oelckers
6ff91f8ebc - disable the freelist management for discarded tiles.
This does not work as implemented - may be checked out later, but this is not essential.
2022-12-18 13:06:09 +01:00
Christoph Oelckers
20edd800f9 - big texture system refactor.
Finally that quickly slapped together BuildTiles class is gone and replaced with something that better integrates with the underlying texture manager
2022-12-18 13:05:58 +01:00
Christoph Oelckers
e9acd74157 - added a fallback in shoot_* for incompletely ported items. 2022-12-18 00:34:17 +01:00
Christoph Oelckers
82c30f551f - Blood: relax range check in AlignSlopes.
This now checks the full range of the wall array and if outside just does nothing. E2M6 has a bogus value for this feature that asserted with the old check.
2022-12-17 20:23:54 +01:00
Christoph Oelckers
bfe958abd6 - Blood: do not double-rotate the player.
One of these actions needs to be removed, now that the angles are consolidated.
2022-12-17 20:03:56 +01:00
Christoph Oelckers
521a59fd26 - Blood: fixed blood splats being spawned in the wrong place. 2022-12-17 19:34:35 +01:00
Christoph Oelckers
32071c4460 - Blood: fixed 3 places where 3D distance was used but 2D should have been used. 2022-12-17 18:43:15 +01:00
Mitchell Richters
cf5ba0886a - SW: Properly guard the call to PlayerDeathReset() in TerminateLevel().
* Stems from an oversight in 28b97486cd.
* Fixes #796.
2022-12-17 06:32:03 +11:00
Mitchell Richters
8bbf7f4e00 Revert "- SW: Revert last commit and apply changes directly in pp->setHeightAndZ() so all bases are covered."
This reverts commit a643a74083.

* Fixes #795
2022-12-16 08:44:38 +11:00
alexey.lysiuk
02814eaf1a - updated minimum macOS version in bundle .plist file 2022-12-15 10:26:51 +02:00
Mitchell Richters
a643a74083 - SW: Revert last commit and apply changes directly in pp->setHeightAndZ() so all bases are covered. 2022-12-15 18:16:38 +11:00
Mitchell Richters
b83d321c4b - SW: Don't use pp->setHeightAndZ() when setting PLAYER_CRAWL_HEIGHTF. 2022-12-15 18:06:07 +11:00
Mitchell Richters
6e4e2b04eb - Fix pitch direction for controller input. 2022-12-15 08:42:43 +11:00
Christoph Oelckers
d5414da096 - added a - sign to FindBestSector' default return.
This somehow get lost when the code was moved out of clipmove into a separate utility function.
2022-12-14 11:48:34 +01:00
Christoph Oelckers
9fc17a4bcf - fixed velocity handling in a few enemy swimChase functions.
The one for the gill beast was particularly bad.
2022-12-14 11:32:56 +01:00
Christoph Oelckers
ff09257d47 - Exhumed: allow Anubis to get out of the walking state if he loses his target.
This happened on occasion on the first map
2022-12-14 10:25:01 +01:00
Mitchell Richters
53dfac5327 - Duke: Fix bad sector variable check in floorspace().
* Originated from 1b3f551216.
* Was causing the player to die quite easily when coming out of the transporter at the start of E2L2.
2022-12-14 18:14:06 +11:00
Christoph Oelckers
cd28c818b0 - fixed bad hitradius distance calculation.
Player offset was retrieved from the wrong actor here.
2022-12-13 17:19:04 +01:00
Christoph Oelckers
fba882e368 - fixed SE30 moving player twice each step.
With the changes in dd5834444e it was applying movement to the player in both the player and the actor loop.
2022-12-13 16:16:48 +01:00
Christoph Oelckers
f45265352d - added a few class types needed for RR's UFO spawners. 2022-12-13 15:49:09 +01:00
Christoph Oelckers
efd6d2cf07 - fix initialization issues with a few serializer functions. 2022-12-13 14:38:58 +01:00
Kevin Caccamo
4cdb0c3c55 Attempt to fix #787 2022-12-13 14:08:02 +01:00
Christoph Oelckers
4f388c3589 - fixed bad direction setup for vertically moving SE 0.
This also adds missing interpolation for this case.
2022-12-13 13:46:55 +01:00
Christoph Oelckers
5f6cd0da79 - Duke/RR: fixed floor alignment of flames in sloped sectors 2022-12-13 12:01:34 +01:00
Christoph Oelckers
6b0c067d46 - Duke: fixed flames not being floor aligned.
The same code was correct in the RR variant, so it just got copied over.
2022-12-13 11:51:14 +01:00
Christoph Oelckers
13e6718153 - added mapSpawned member to DDukeActor
Duke uses the owner a lot to check if an actor was spawned at map start or in-game, but that depends a lot on stale pointers being maintained, which our garbage collected system does not allow. So this field now serves as a more reliable stand-in for these cases.
No actual changes yet.
2022-12-13 10:36:45 +01:00