Commit graph

2724 commits

Author SHA1 Message Date
Mitchell Richters
991ef5c27f - Minor input tidy-up. 2023-02-04 17:05:18 +11:00
Christoph Oelckers
9783b8c402 - scriptified World Tour's flamethrowerflame.
The first of 3 mixed native/CON items which are the last things remaining in the main thinker loops.
2023-01-28 16:31:45 +01:00
Christoph Oelckers
acac74715f partially Revert "- pass shade values to sky renderer"
This reverts commit 380864d6fb.

The report this was supposed to address was bogus.
2023-01-28 09:21:53 +01:00
Rachael Alexanderson
2778ee72cd - fix commit 532a726ae3 - i_pauseinbackground is not supposed to bypass menu/console pause 2023-01-27 03:02:13 -05:00
Christoph Oelckers
5ebce5afba - fix last commit 2023-01-21 15:08:47 +01:00
Christoph Oelckers
dbef2f74d1 - print an error when a sound file cannot be found. 2023-01-21 14:51:43 +01:00
Christoph Oelckers
9379e873b3 - error out when encountering an unknown $ token in SNSINFO.
No need to preserve this insanity from old ZDoom times.
2023-01-21 09:34:25 +01:00
Christoph Oelckers
acfca3fbdc - fixed SNDINFO parser to actually read new sound definitions. 2023-01-18 06:58:37 +01:00
Christoph Oelckers
3ab1ae5f7a - allow setting Blood's relative volume hack value via SNDINFO. 2023-01-15 16:18:48 +01:00
Christoph Oelckers
bb7f00988a - give Blood's sounds well defined names so they can be defined via SNDINFO. 2023-01-15 16:15:28 +01:00
Christoph Oelckers
841402a776 - allow setting loop points for WAV sounds or other simple formats. 2023-01-15 15:19:21 +01:00
Christoph Oelckers
f1c3a6548f - use backend pitch features for Duke instead of replicating them on the game side. 2023-01-15 13:18:54 +01:00
Christoph Oelckers
8859712a7b - copied $pitchset SNDINFO command from GZDoom. 2023-01-15 12:22:07 +01:00
Christoph Oelckers
8de7aa5975 - corrected error messages. 2023-01-15 12:14:47 +01:00
Christoph Oelckers
ad0bff921b - allow setting Duke's relevant sound properties through SNDINFO. 2023-01-15 11:54:24 +01:00
Christoph Oelckers
fca0bdf379 - Backend update from GZDoom. 2023-01-15 09:30:01 +01:00
Christoph Oelckers
1bfccbcb6e - explicitly destroy the AltHUD when exiting.
This is to avoid problems with the GC on shutdown.
2023-01-14 14:09:25 +01:00
Christoph Oelckers
6c3d03cd48 - fixed incorrect sector in a few sprites of World Tour E5L1. 2023-01-14 13:18:53 +01:00
Christoph Oelckers
b991af2dbc - fixed incomplete statnum setup. 2023-01-09 23:39:20 +01:00
Christoph Oelckers
deaec2d91d - disabled property-type definition of spritetype members.
As it turned out this is simply too dangerous - these should be left to be loaded from the map data or set manually.
All remaining setups using this feature have either been moved to Initialize or other meta properties that are not affected by map loading.
2023-01-08 16:45:09 +01:00
Christoph Oelckers
905a9bfeae - backend update from GZDoom. 2023-01-07 19:30:49 +01:00
Rachael Alexanderson
532a726ae3 - respect i_pauseinbackground setting 2023-01-07 07:18:52 -05:00
Christoph Oelckers
cfef8c8a71 - ignore executable files in a zip's main folder when checking for mod content in a subdirectory. 2023-01-06 18:01:34 +01:00
Christoph Oelckers
32ce8a97bf - SW: do not double interpolate sectors that are both part of a sector object but also have a global interpolation attached.
In this case the SO interpolation must be skipped. The only use case for this combination is sine-wave animated water.
2023-01-05 19:26:42 +01:00
Mitchell Richters
d59208ce74 - Default initialise g_nextskill to -1 so maps loaded directly from the command line load with the game's default skill. 2023-01-05 20:57:14 +11:00
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
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
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
9bc0a43028 - fixed lookup for tile aliases pointing to non-existent tiles. 2022-12-29 13:33:02 +01:00
Christoph Oelckers
0d9fe83cba - implemented the switch parser and set up the external definitions. 2022-12-29 13:32:29 +01: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
ef7c72ce9f - Blood: add all statically stored EventObjects to the GC processor. 2022-12-18 17:54:54 +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
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
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
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
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
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
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
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
Christoph Oelckers
bea6834f8e - code cleanup. 2022-12-11 19:45:38 +01:00
Christoph Oelckers
3874cf365c - use TEXMAN_ForceLookup where it was missing. 2022-12-11 19:45:38 +01:00
Christoph Oelckers
c1abd6fe22 - rewrote drawtile CVAR handling to render the image larger and allow using aliases. 2022-12-11 19:45:38 +01:00
Christoph Oelckers
97d76a01e4 - SW: do a proper implementation for sprites which do not want texture animations.
Instead of hacking the picanm table it is far more preferable to flag the sprite as non-animating and let the renderer handle it.
2022-12-11 19:45:38 +01:00
Christoph Oelckers
58db09969c - moved tileForName out of BuildTiles.
Just pulling one change out of the big upcoming refactor commit.
2022-12-11 19:45:18 +01:00
Christoph Oelckers
630276f7e0 - migrated texture flags parsing from .def to RMAPINFO.
This was the final piece of non-tile-related data to be in there.
.def should be restricted to existing use cases concerning setup of render data, not for game content.
2022-12-11 19:45:18 +01:00
Christoph Oelckers
0bacb05c1b - wrapped hiofs in a getter function.
This makes it a lot easier later to refactor.
2022-12-11 19:45:01 +01:00
Christoph Oelckers
aa58b152ab - use a TArray in BuildTiles for the tile descriptors.
For some reason MSVC wants to put this in the EXE now and the array is quite large.
2022-12-11 19:45:00 +01:00
Christoph Oelckers
71ca2c4677 - eliminate the last remaining references to the tile manager in the core renderer files.
The only thing left is the sky which needs more refactoring first and the tileUpdatePicnum call for sprites which cannot be resolved by the texture manager because Blood has a randomization factor included here.
2022-12-11 19:44:01 +01:00
Christoph Oelckers
e26d9106aa - handle all occurences of tileWidth and tileHeight using spritetypebase::picnum. 2022-12-11 19:44:01 +01:00
Christoph Oelckers
f479f995a1 - transitioned all tileLeftOffset and tileTopOffset calls to use the texture manager. 2022-12-11 19:44:01 +01:00
Christoph Oelckers
0869497ecb - rewrote the tile pixel cache to work on texture IDs instead of tile IDs.
This allows using the related checking features with other textures as well.
2022-12-11 19:44:00 +01:00
Christoph Oelckers
a6db974a62 - refactored Blood's tile property arrays to texture IDs.
The data structure here can be optimized later when the other games get to the same point, but this allows to rid Blood of all references to wallpicnunm, floorpicnum and ceilingpicnum except one place in the precacher.
2022-12-11 19:44:00 +01:00
Christoph Oelckers
4ecb4aacb2 - mark all return values from the texture() getters as const.
This is necessary to evade C++ stupidity which happily allows assignment to non-const struct type return values and won't even warn about it.
As const these will throw an error when that happens.
2022-12-11 19:44:00 +01:00
Christoph Oelckers
63c1630cda - more texture wrappers and minor cleanup. 2022-12-11 19:44:00 +01:00
Christoph Oelckers
e5225e98e0 - migrated SW's portal setup code to texture IDs. 2022-12-11 19:43:59 +01:00
Christoph Oelckers
9879aa90a6 - more texture handling cleanup.
Most of the renderer now bypasses the tile manager and goes directly to the low level texture manager.
The gotpic array was removed and replaced by a new texture flag. Since there are only 3 places in the entire code that check this, this is a lot easier to handle.
2022-12-11 19:43:59 +01:00
Christoph Oelckers
868fece7f6 - using texture IDs in a few more places where it is simple. 2022-12-11 19:43:59 +01:00
Christoph Oelckers
f4bda94dad - added tileGetTextureID and tested it with Blood's mirror/portal setup code. 2022-12-11 19:43:59 +01:00
Christoph Oelckers
bfef616981 - let tileDelete create a new null texture instead of using the default one.
This is to ensure that marker textures are still unique.
2022-12-11 19:43:59 +01:00
Christoph Oelckers
028cf2daf5 - added access wrappers for getting texture IDs from the map and used that to rid a large chunk of the renderer of direct tilenum access. 2022-12-11 19:43:59 +01:00
Christoph Oelckers
49f87e6227 - got rid of gotpic.
Now everything uses the 'seen' flag in the texture which indicates that the texture was actually used for hardware rendering since the last check.
It's also only the 3 places checking this flag which are responsible for clearing it.
2022-12-11 19:43:58 +01:00
Christoph Oelckers
a0722c55ea - removed canvas hack stuff from Buildtiles after cleaning up the mess in SW. 2022-12-11 19:43:58 +01:00
Christoph Oelckers
ede5b017ab - renamed walltype::picnum to wallpicnum for easier searching. 2022-12-11 19:43:58 +01:00
Christoph Oelckers
51ad64f71e - initialize all special tiles to their intended type before starting the game.
This ensures that we have an immutable mapping of tile number to texture ID now.
2022-12-11 19:43:58 +01:00
Christoph Oelckers
faeb19a485 - do the handling of 90° rotated wall textures in the renderer instead of duplicating the texture.
Aside from less resource use this also works with hires replacement - which the old code was incapable of.
2022-12-11 19:43:58 +01:00
Christoph Oelckers
6a690849e6 - cleanup on the tile management.
* removed the long defunct EDuke32-based map art system. With our move to named textures this will not work anymore so fixing the existing problems would be pointless.
* moving .def related parsing stuff out of buildtiles.cpp.
* some initial refactoring to make the tile store a static, non-modifyable resource after initial setup.
2022-12-11 19:43:58 +01:00
Christoph Oelckers
a08db47528 - exported all breakable ceilings.
Very simple stuff with instant profit. :)
2022-12-11 19:43:58 +01:00
Christoph Oelckers
a63ee8079a - implemented customizable breakable walls and ported all hard coded variants to use this. 2022-12-11 19:43:57 +01:00
Christoph Oelckers
9e3318a2fb - moved spawnclasses and breakwall definitions from .def to RMAPINFO.
.def is not the right place for this - it needs to run very early in the process, before scripted actors are loaded, so doing this stuff there means that half the initialization has to be postponed and error reporting is sub-par.
These are now part of RMAPINFO which gets parsed as one of the very last things - it is also where GZDoom is doing some of these things.

The better error reporting also allowed fixing some errors in these definitions.
2022-12-11 19:43:57 +01:00
Christoph Oelckers
c1a09196f0 - implemented breakable walls with external definitions.
The scripted case does not work yet due to bad loading order of files.
2022-12-11 19:43:57 +01:00
Mitchell Richters
ba3e8a9842 - Change most input constants to be doubles, and not DAngle objects.
* These are base scales that when divided by the game's ticrate, become degrees of angle. Too confusing...
* 3x genuine degree values remain.
2022-12-11 19:43:56 +01:00
Mitchell Richters
2c592405fa - Separate pitch/yaw key input into separate functions and apply from the ticker. 2022-12-11 19:43:56 +01:00
Mitchell Richters
470b4efac8 - Remove PlayerAngles::setYaw() method usage and remaining associated code. 2022-12-11 19:43:56 +01:00
Mitchell Richters
f58e3c58aa - Remove PlayerAngles::setPitch() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
491a42d2bb - Remove PlayerAngles::addYaw() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
7a7758efaa - Remove PlayerAngles::addPitch() method usage. 2022-12-11 19:43:56 +01:00
Mitchell Richters
968d0ae0d2 - Implement new scaled angle change setup and remove enforcement of synchronised input. 2022-12-11 19:43:55 +01:00
Mitchell Richters
15b101870d - Completely remove current scaled angle change setup.
* During this transition, temporarily enforce synchronised input at all times.
2022-12-11 19:43:55 +01:00
Christoph Oelckers
4078c6d6bd - converted several of RR's static init sprite types to the class system. 2022-12-11 19:43:55 +01:00
Christoph Oelckers
23640988db - define several of RR's fullbright decorative sprites via spawnclasses remapping. 2022-12-11 19:43:53 +01:00
Christoph Oelckers
bdc474d04f - scriptified all remaining Duke actors with specific init code and no CON part. 2022-12-11 19:43:53 +01:00
Christoph Oelckers
cbb3b0ebfb - preparations for the next script exports. 2022-12-11 19:43:53 +01:00
Christoph Oelckers
e6c466fcba - scriptified several of Duke's destructible items. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
dc06a93a4f - scriptified RR's UFO teleporter. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
5a155730b4 - scriptified RR's bowling stuff. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
9ad8f67ce9 - added isEffector inline and exported NATURALLIGHTNING which got a bit in the way. 2022-12-11 19:43:52 +01:00
Christoph Oelckers
be6ead173a - scriptified several smaller actors 2022-12-11 19:43:51 +01:00
Christoph Oelckers
0dc526899b - scriptified FrameEffect 2022-12-11 19:43:51 +01:00
Christoph Oelckers
ff6a9b89ac - scriptified the green slimer. 2022-12-11 19:43:51 +01:00
Christoph Oelckers
e69772637c - define Duke's skies by name. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
4397e65443 - cleaned up the generic destructible code and used it for several more things. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
15fb7dab35 - virtualized the 'shoot' interface and scriptified the bloodsplats to test it.
This calls virtual functions on the actor defaults now to allow writing specific shoot functions for subclasses.
2022-12-11 19:43:48 +01:00
Christoph Oelckers
8a921c98bd - scriptified ooz. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
9d1384449c - scriptified the Recon. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
2ab5e63386 - added a few new actor flags. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
6d9a8bfaa5 - scriptified the pool balls. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
1ef61c8588 - exported a bunch of stuff we're going to need soon. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
dbb7965550 - added two new flags for later use. 2022-12-11 19:43:46 +01:00
Christoph Oelckers
1d52963d4b - converted all simple destructible sprites.
Ironically the first item I used for testing needed a dedicated class, so here's that, too...
2022-12-11 19:43:46 +01:00
Christoph Oelckers
9e29c3970d - generic destructibles 2022-12-11 19:43:45 +01:00
Christoph Oelckers
3ac8bd02f5 - scriptified the jibs 2022-12-11 18:46:40 +01:00
Christoph Oelckers
006f1b3fdf - disabled the message for missing sprite set textures. 2022-12-11 18:42:02 +01:00
Christoph Oelckers
67e807de26 - exported the tile flag setters to .def. 2022-12-11 18:42:01 +01:00
Christoph Oelckers
5a2819239c - moved Duke's tile flags into the tile manager.
This is so that .def can access them. Later the other games also might make use of this.
2022-12-11 18:42:01 +01:00
Mitchell Richters
bb1113c251 - Remove the whole angle locking concept, we can just force synchronised input instead which is cleaner. 2022-12-11 18:42:01 +01:00
Mitchell Richters
6c0493868e - Implement new method for applying scaled angle changes.
* This method works more accurately to how an angle change would occur under interpolated circumstances.
2022-12-11 18:42:01 +01:00
Mitchell Richters
5a8612110d - Process scaled angle adjustments in each game's render function, not from the input function.
* Previous config had the potential to call `I_GetInputFrac()` nearly twice in a row, which would have resulted in some hitching.
* Calling from each game's render function avoids the above and means we can start applying scaled angle changes one frame faster.
2022-12-11 18:42:01 +01:00
Mitchell Richters
2a284c73c9 - SW: Remove all remaining angle wrapper usage and the wrappers themselves. 2022-12-11 18:42:00 +01:00
Mitchell Richters
1aad5eacfa - Remove all remaining legacy wrappers. 2022-12-11 18:42:00 +01:00
Mitchell Richters
a7a5d4b946 - Preserve one legacy getter that's needed extensively in Duke. 2022-12-11 18:42:00 +01:00
Mitchell Richters
cca36b8061 - Make legacy weapon drawers in PlayerAngles local to Redneck code, they will eventually go. 2022-12-11 18:42:00 +01:00
Mitchell Richters
318ff64f36 - Allow passing angle through when drawing the generic crosshair. 2022-12-11 18:42:00 +01:00
Mitchell Richters
e972818db5 - Tidy up modern crosshair/weapon offset drawers. 2022-12-11 18:41:59 +01:00
Mitchell Richters
25de63ffb5 - Cleanup of render draw code to use new angle getter. 2022-12-11 18:41:59 +01:00
Mitchell Richters
599a375d67 - Rename DCoreActor::interpolatedangle() to DCoreActor::interpolatedyaw() 2022-12-11 18:41:59 +01:00
Mitchell Richters
abdeeac205 - Rework PlayerAngles::doViewPitch() to apply at ticrate like PlayerAngles::doViewYaw(). 2022-12-11 18:41:59 +01:00
Mitchell Richters
fdcf8bbe2f - Reorder variables in getscaledangle(). 2022-12-11 18:41:59 +01:00
Mitchell Richters
f9aeee5b4a - Split out view angle stuff out of PlayerAngles::applyYaw() into PlayerAngles::doViewYaw().
* Do all the view angle stuff as interpolated changes in the playsim as well, there's no need for these to be done at ticrate.
2022-12-11 18:41:59 +01:00
Mitchell Richters
2b9e3f804d - Remove wrapper usage within gameinput.cpp. 2022-12-11 18:41:59 +01:00
Mitchell Richters
d7d76d5fc4 - Move all PlayerAngles view angle properties into new DRotator objects. 2022-12-11 18:41:58 +01:00
Mitchell Richters
175b182805 - Invert rotscrnang so it rolls forward, consistent with all other angles. 2022-12-11 18:41:58 +01:00
Mitchell Richters
bef4536c1f - Remove old PlayerAngles backup/restore methods. 2022-12-11 18:41:58 +01:00
Mitchell Richters
630c10856e - Re-write PlayerAngles scaled adjustment methods. 2022-12-11 18:41:58 +01:00
Mitchell Richters
24ec58f4e6 - Change wrapper internals for previous yaw to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
a84e09048e - Change wrapper internals for current yaw to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
16a48cba17 - Change wrapper internals for previous pitch to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
7f5b97a0b7 - Change wrapper internals for current pitch to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
850c988dfa - Wrap access to previous yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
be466fec8d - Wrap access to current yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
fd05d320ff - Wrap access to previous pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
15f1d89855 - Wrap access to current pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
60a97f781e - Add DCoreActor pointer as PlayerAngles::pActor, setting and nulling where the player's actor is set. 2022-12-11 18:41:56 +01:00
Mitchell Richters
b9f5bb71cc - Merge PlayerHorizon and PlayerAngle structs into PlayerAngles struct. 2022-12-11 18:41:56 +01:00
Mitchell Richters
d75ac9e445 - Rename PlayerAngle prototypes in preparation for replacement work. 2022-12-11 18:41:56 +01:00
Mitchell Richters
9b6f01dff0 - Rename PlayerAngle private members in preparation for replacement work. 2022-12-11 18:41:56 +01:00
Mitchell Richters
353c2a20fd - Rename remaining PlayerAngle methods. 2022-12-11 18:41:55 +01:00
Mitchell Richters
f305fbb370 - Rename PlayerAngle getters in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
a061f2baef - Rename PlayerAngle::spin to its destined final name. 2022-12-11 18:41:55 +01:00
Mitchell Richters
a42750f37f - Rename PlayerAngle::orotscrnang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
7d34288290 - Rename PlayerAngle::rotscrnang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
3a0ec29c18 - Rename PlayerAngle::olook_ang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
644cf82238 - Rename PlayerAngle::look_ang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
50cf22ec53 - Rename PlayerAngle::oang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
bd063de5f5 - Rename PlayerAngle::ang in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
d810afa2e9 - Rename PlayerHorizon prototypes in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
b38f9a8779 - Rename PlayerHorizon private members in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
9ab8db04db - Rename remaining PlayerHorizon methods. 2022-12-11 18:41:54 +01:00
Mitchell Richters
3758d93ad8 - Rename PlayerHorizon getters in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
723631cc81 - Rename PlayerHorizon::ohorizoff in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
216fad7e18 - Rename PlayerHorizon::horizoff in preparation for replacement work. 2022-12-11 18:41:53 +01:00
Mitchell Richters
0c53990c87 - Rename PlayerHorizon::ohoriz in preparation for replacement work. 2022-12-11 18:41:53 +01:00
Mitchell Richters
401a829d54 - Rename PlayerHorizon::horiz in preparation for replacement work. 2022-12-11 18:41:53 +01:00
Mitchell Richters
901000bee5 - Change DCoreActor::oang to a DRotator named PrevAngles. 2022-12-11 18:41:53 +01:00
Mitchell Richters
2e0b9490e1 - Change spritetypebase::angle to a DRotator named Angles.
* Major pre-requisite for the next steps I'm undertaking, let's get it into the branch now.
2022-12-11 18:41:52 +01:00
Christoph Oelckers
52e5e2f59a - use a sepate file system filter for 'duke-like' games, i.e. Duke, NAM and WW2GI combined.
These 3 all require the same SNDINFO being loaded.
2022-12-11 18:41:52 +01:00
Christoph Oelckers
797c122363 fixed the sound controller's sound selection.
In this case the game-side resource ID was silently cast to a sound ID but it needs explicit conversion.
2022-12-11 18:41:52 +01:00
Christoph Oelckers
a825dfb8ca - Duke sound is working again. 2022-12-11 18:41:52 +01:00
Christoph Oelckers
f103e33300 - fixed code up to the point where everything compiles again. Duke sounds are currently non-functional.
All Duke script code has been changed to use strings as sound names now, just like GZDoom these will be looked up at compile time.
Original Duke sound indices still exist but are now being managed as resource IDs, not sound engine indices anymore.
2022-12-11 18:41:51 +01:00
Christoph Oelckers
4983f8e671 wipstuff 2022-12-11 18:41:51 +01:00
Mitchell Richters
7e6bc02d45 - Make stat coord show full floating point values. 2022-12-11 18:41:51 +01:00
Christoph Oelckers
1ac4aee0c1 - RR cactus stuff 2022-12-11 18:41:50 +01:00
Mitchell Richters
e55412f240 - Remove DCoreActor::ZeroVelocity(). 2022-12-11 18:41:45 +01:00
Mitchell Richters
39d1a758ed - Remove DCoreActor::ZeroVelocityXY(). 2022-12-11 18:41:44 +01:00
Mitchell Richters
7dd5cdb86c - Get rid of 2x unnecessary scope change calls on interpolatedvalue() calls. 2022-12-11 18:41:44 +01:00
Mitchell Richters
4de1b8ad86 - Create DCoreActor::getRenderPos() and use within Duke. 2022-12-11 18:41:44 +01:00
Mitchell Richters
d1c5f9516f - Duke: Remove player_struct::posoldAdd() and player_struct::posoldGet(). 2022-12-11 18:41:44 +01:00
Mitchell Richters
f10f1b9154 - Duke: Remove player_struct::posoldZset() and player_struct::posoldZget(). 2022-12-11 18:41:44 +01:00
Mitchell Richters
27be72c7ec - Duke: Remove player_struct::posGet(). 2022-12-11 18:41:43 +01:00
Mitchell Richters
b42672dcf9 - Duke: Remove player_struct::posZget(). 2022-12-11 18:41:43 +01:00
Mitchell Richters
78b04649f1 - Duke: Remove player_struct::posZset(). 2022-12-11 18:41:43 +01:00
Mitchell Richters
6f102e1171 - Duke: Remove player_struct::posX() and player_struct::posY(). 2022-12-11 18:41:43 +01:00
Mitchell Richters
6eeedbd38a - Duke: Move player_struct::restorexyz() to DCoreActor::restorepos(). 2022-12-11 18:41:42 +01:00
Mitchell Richters
abd6275f17 - Add new double DCoreActor::viewzoffset set in spawning code during level loads.
* Interpolated backup copy isn't needed for Duke, but will be for SW.
2022-12-11 18:41:41 +01:00
Mitchell Richters
e9dcffc5ec - Duke: Route all clipmove()/pushmove() calls through a new interface that accepts a separated Z coordinate. 2022-12-11 18:41:39 +01:00
Christoph Oelckers
0741570ba9 - we're past 1.6 now. 2022-12-11 18:31:07 +01:00
Christoph Oelckers
e412a34f4e - bump savegame version. 2022-12-11 16:31:00 +01:00
Mitchell Richters
c762505b02 - Use the game's display name for defaultiwad, not the filename.
* Add-ons don't have a FileName entry, but everything has a display name therefore all bases are covered.
* Fixes #616.
2022-12-11 17:02:36 +11:00
Mitchell Richters
33975a083f - Draw crosshair at 1:1 scale when crosshairscale is 0, just like GZDoom.
* Fixes #767.
2022-12-11 16:16:16 +11:00
Christoph Oelckers
7d82ae28f4 - Duke/RR: fixed: animates array must be cleared on map change.
There was also some undefined behavior when an entry was deleted, this seems to originate from the original code.
2022-12-10 10:20:01 +01:00
Mitchell Richters
dc41057984 - In SetupGame(), test userConfig.DefaultCon before userConfig.gamegrp so addons work properly. 2022-12-10 10:48:34 +11:00
Mitchell Richters
25460e8e98 - Fix change to constant in last commit.
* How did that little `3` not make it in...
2022-12-09 20:00:37 +11:00
Mitchell Richters
2a82ef85b8 - Minor optimisation to the return to centre code. 2022-12-09 18:00:56 +11:00
Mitchell Richters
92bf00d3e9 - Fix incorrect sector usage in calcviewpitch(). 2022-12-09 17:48:26 +11:00
Mitchell Richters
1772238653 - Fix incorrect value for PITCH_HORIZOFFSPEED input constant. 2022-12-07 15:21:52 +11:00
Mitchell Richters
df63e5411b - Fix incorrect sign for PITCH_HORIZOFFCLIMB input constant. 2022-12-07 13:11:59 +11:00
Mitchell Richters
a6cfdea480 - Improved weapon drawing, based on the new crosshair drawing offset code, starting with Duke's pistol. 2022-11-30 10:03:52 +01:00
Mitchell Richters
ef52694365 - Improved crosshair drawing that factor's in look_ang better I've had stashed away for a little bit. 2022-11-30 10:03:52 +01:00
Mitchell Richters
5a698fbc2b - Use DAngle::fromRad() method in maphoriz(). 2022-11-29 21:01:42 +11:00
Christoph Oelckers
229ee3dbe4 Revert "- did a few checks with the compatibility optioned slope adjustment and decided to enable it unconditionally."
This reverts commit 6636064d1f.

As it turned out this is not a benign change. It breaks accessibility to a key in RR-Route 66's slaughtr.map - and it's reasonable to assume if it breaks one map it may break others as well.
2022-11-26 16:47:02 +01:00
Christoph Oelckers
9219d24535 - removed unneeded WantEscape function from backend interface. 2022-11-24 17:57:40 +01:00
Christoph Oelckers
ed4f49ac86 - fixed sound code for backend update. 2022-11-24 17:46:39 +01:00
Christoph Oelckers
13e19bad36 - fixed handling of bad class assignment to map picnums. 2022-11-24 08:12:18 +01:00
Christoph Oelckers
b069904be1 - scriptified the remaining controller sprites. 2022-11-20 13:57:51 +01:00
Christoph Oelckers
cb005062cd - scriptified activators and locators. 2022-11-20 12:43:24 +01:00
Christoph Oelckers
9fa2fb75cf - scriptified the respawn controller.
This also handles one special RRRA controller which was just easier to scriptify right away than temporarily work around it.
2022-11-20 11:58:19 +01:00
Christoph Oelckers
f467e72ac2 - only print texture resolve errors in debug builds.
Otherwise this will print warnings when resolving content for different games.
Needs to be done differently later, but right now the messages are needed for debugging.
2022-11-20 09:35:59 +01:00
Christoph Oelckers
f515939fde - scriptified the sound controller. 2022-11-20 08:46:49 +01:00
Christoph Oelckers
714a2ef70e - scriptified canwithsomething, the last internal STAT_STANDABLE item. 2022-11-19 19:01:17 +01:00
Christoph Oelckers
c6b3cf3e0a - Duke: fixed long standing problem that pressing Escape or walking backwards does not switch off the camera view. 2022-11-19 18:26:17 +01:00
Christoph Oelckers
046ba1ae0c - scriptified touchplate 2022-11-19 15:40:35 +01:00
Christoph Oelckers
15cd80cad3 - scriptified the waterdrip 2022-11-19 15:40:09 +01:00
Christoph Oelckers
11acb92553 - scriptified the bolts. 2022-11-19 12:54:50 +01:00
Christoph Oelckers
9cf6f5dabc - fixed handling of actor defaults.
Order of application with map sprites was not correct.
This also simplifies how the defaults are stored - the separate data is gone, they now use the regular defaults.
2022-11-19 11:24:47 +01:00
Christoph Oelckers
5ae7011e41 - converted the masterswitch. 2022-11-19 11:24:39 +01:00
Christoph Oelckers
b106fb693a - scriptified OozFilter + Seenine
Also fixing the default handling for onHit.
2022-11-17 21:46:24 +01:00
Christoph Oelckers
8ce358fc24 - scriptified the trip bombs. 2022-11-17 18:38:25 +01:00
Christoph Oelckers
133cb3a02e - moved all CoreActor exports to vmexports.cpp. 2022-11-17 08:46:08 +01:00
Mitchell Richters
d3217a3e54 - Fix issues with scripted actors, namely the crane which was non-operable. 2022-11-16 16:14:48 +11:00
Christoph Oelckers
043e005363 - fixed bad index in pushmove. 2022-11-16 00:08:37 +01:00
Christoph Oelckers
6b3e57fd2c - added 'foreach' loop to ZScript.
Syntax:

foreach(variable : array)
{
}

the variable's type is automatically deducted.
2022-11-15 21:29:04 +01:00
Christoph Oelckers
dc9451d584 - renamed global 'wall' and 'sector' arrays to 'walls' and 'sectors' for ZScript.
This avoids problems with name hiding.
2022-11-15 20:09:36 +01:00
Christoph Oelckers
f7fafabba0 - reordered walltype to reduce its size. 2022-11-15 15:54:21 +01:00
Christoph Oelckers
42e02d2956 - eliminated firstWall as well. 2022-11-15 15:44:33 +01:00
Christoph Oelckers
5798fa067f - cleaned up all -> accesses through firstWall(). 2022-11-15 15:33:35 +01:00
Christoph Oelckers
af60408e63 - sector wall access cleanup.
lastWall was only used twice and firstWall() + index can be done better now.
2022-11-15 15:31:52 +01:00
Christoph Oelckers
7d9a4ea70d - eliminated wallsofsector. 2022-11-15 15:24:17 +01:00
Christoph Oelckers
84b17a8a53 - eliminate wall_count. 2022-11-15 14:59:28 +01:00
Christoph Oelckers
bfae5ce1bc - use a TArrayView to store the wall references in a sector.
This is a lot more scripting friendly than hacking around the indices.
2022-11-15 14:53:39 +01:00
Christoph Oelckers
9a676ffba6 - use local variables for wall_index wherever possible. 2022-11-15 14:15:46 +01:00
Christoph Oelckers
34333302f9 - wrapped all reading wallptr references. 2022-11-15 12:37:14 +01:00
Christoph Oelckers
c23db8ea35 - wrapped all reads of sectortype::wallnum and renamed all other wallnum variables. 2022-11-15 12:21:21 +01:00
Christoph Oelckers
b7a7584059 - renamed wallnum and sectnum functions.
These were creating a lot of search noise because local variables had the same name.
2022-11-15 12:03:44 +01:00
Christoph Oelckers
a2683559ce - refactored Duke's cactus. 2022-11-15 10:44:06 +01:00
Christoph Oelckers
d253468b22 - scriptified the scraps.
A Duke-ish mess of epic proportions.
2022-11-15 00:06:21 +01:00
Christoph Oelckers
5aac77784a - fix construction of FActorInfo.
For some reason this lost the copy constructing part from GZDoom resulting in bad data.
2022-11-14 18:15:58 +01:00
Christoph Oelckers
ef6c39ec55 - added a CVAR that allows drawing any tile to the top of the screen.
For quick examination of tiles.
2022-11-14 12:08:02 +01:00
Christoph Oelckers
660c546266 - actor interface fixes. 2022-11-13 18:51:23 +01:00
Christoph Oelckers
53e43d6d1e - CoreActor setposition natives. 2022-11-13 08:59:07 +01:00
Christoph Oelckers
c32a695384 - DukeActor scriptification framework. 2022-11-13 08:55:20 +01:00
Christoph Oelckers
ac4be79e96 - implemented cl_weaponswitch for Duke. 2022-11-12 09:34:08 +01:00
Christoph Oelckers
6a6e9299ca - added missing returns in the failure cases of useitem and slot CCMDs. 2022-11-10 07:41:20 +01:00
Mitchell Richters
817a0cb94a - Clamp applied mouse input to be within safe ranges to interpolate with.
* Input greater than 180 degrees in a single tic can cause the input to be applied backwards.
2022-11-07 19:38:22 +11:00
Mitchell Richters
9fbe564327 - Fix bad if statement guarding cl_clampedpitch in menu and make non-global. 2022-11-07 15:43:26 +11:00