Mitchell Richters
f431d51c2f
- SW: Add inertia correction to PlayerWarpUpdatePos()
.
...
* Warping between sectors such as the clouds in $volcano now maintains perfect velocity, etc.
2023-01-02 11:53:10 +11:00
Mitchell Richters
ac13bd81af
- Fix bad Z test in WarpPlane()
.
...
* Originates from incomplete change in 7eba7aacbd
.
* Fixes #832 .
2023-01-02 11:00:47 +11: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
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
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
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
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
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
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
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
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
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
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
Christoph Oelckers
9c1fc93e1c
- Exhumed: The ObjectList was not properly garbage collected.
2022-12-13 08:49:56 +01:00
Christoph Oelckers
629dc8e163
- fixed kill counting in Blood.
2022-12-13 08:37:22 +01:00
Christoph Oelckers
87ff99caa1
- fixed typo
2022-12-12 09:26:43 +01:00
Christoph Oelckers
1f7954fc29
- fixed World Tour fallback sound lookup.
2022-12-12 08:25:02 +11:00
Christoph Oelckers
1e249d3536
- fixed bad actor type check.
2022-12-11 20:15:14 +01:00
Mitchell Richters
28b97486cd
- SW: For single player games, call PlayerDeathReset()
from TerminateLevel()
and not DoPlayerDeathCheckKeys()
.
...
* This fixes issues where player stats like health, etc are shown onscreen as reset before the entire view reloads.
2022-12-11 19:46:27 +01:00
Mitchell Richters
b8a8164b24
- SW: Don't call DoSpawnTeleporterEffect()
upon death.
...
* This causes an air bubble to spawn above the player for a single tic, even while on land until the level truly restarts.
* Since we're restarting, its better to just not do this.
2022-12-11 19:46:27 +01:00
Mitchell Richters
9b73f46aff
- SW: Don't reset player pitch upon death.
...
* This _somewhat_ addresses #770 by hiding the effects of it.
* Since we re-init `Player::Angles` when a new actor is spawned, this all resets anyway.
2022-12-11 19:46:27 +01:00
Mitchell Richters
7d6eb2bae6
- Remove some pitch/yaw deltaangle additions in lieu of setting the angle directly.
...
* This deltaangle addition was needed with the old input setup.
2022-12-11 19:46:27 +01:00
Mitchell Richters
c3f276a08a
- Tidy up remaining Build angle constants in gamefuncs.h
.
2022-12-11 19:46:27 +01:00
Mitchell Richters
de8353f085
- Eliminate BAngToDegree
constant.
2022-12-11 19:46:26 +01:00
Mitchell Richters
67b40ee1d5
- Convert angle in hud_drawsprite()
to work on true degrees, and in the right direction.
2022-12-11 19:46:26 +01:00
Mitchell Richters
3a1729a9ce
- Duke (RR): Final tidy-up of displayweapon_r()
.
2022-12-11 19:46:26 +01:00