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
Christoph Oelckers
912b6a47c1
- migrate cl_savedir to save_dir
2022-11-06 17:48:32 +01:00
Mitchell Richters
33d74c9009
- Default display of map name in SW to be off by default.
2022-11-06 21:59:07 +11:00
Mitchell Richters
11f279fddd
- Slight input code tidy-up.
2022-11-06 21:59:07 +11:00
Mitchell Richters
033e0ea7bc
- Make rotscrnang return to zero at same speed as look_ang.
2022-11-06 21:59:07 +11:00
Mitchell Richters
33e2de70a2
- Duke: Pitch-adjusted velocity for shootrpg()
when free-aiming.
2022-11-06 21:59:04 +11:00
Mitchell Richters
7f124eef58
- Adjust chase-cam code to work in a pitch-corrected capacity.
2022-11-06 21:59:04 +11:00
Christoph Oelckers
41fc5660e5
- Backend update from GZDoom
...
* IQM enhancements
* config storage in Users
* moving of savegame filename generation to the backend
2022-11-06 11:46:26 +01:00
Christoph Oelckers
73deae88ce
- fixed neartag's trace vector maintenance for sprite hits.
...
The trace vector needs to be shortened so that further checks only find items in front of the sprite.
2022-11-04 13:23:01 +01:00
Christoph Oelckers
93ca75e146
- got rid of the two intermediate functions between clipmove_tweak_pos and InterceptLineSegments.
2022-11-01 09:55:24 +01:00
Christoph Oelckers
01c114787c
- eliminated the deprecated integer wrapper for 'inside'.
2022-11-01 08:38:40 +01:00
Christoph Oelckers
0e113dab79
- added true level compatibility map processing and deleted all related map hack code.
2022-10-31 10:45:47 +01:00
Christoph Oelckers
6586868cb8
- added the framework for scripted level compatibility patching.
2022-10-30 16:51:41 +01:00
Christoph Oelckers
0f57685f48
- updatesector interface cleanup.
2022-10-30 16:51:41 +01:00
Christoph Oelckers
0c87bcb91b
- renamed getzsofslopeptr to calcSlope and removed one redundant inline.
2022-10-30 16:51:40 +01:00
Christoph Oelckers
ce4a6fc7e3
- split off one part of clipmove into a utility function.
2022-10-30 16:51:40 +01:00
Christoph Oelckers
32b2e84fdc
- added episode and total episode time display to alt HUD
2022-10-30 16:51:40 +01:00
Christoph Oelckers
562c1a18c8
- integrate hud_althud into hud_size
...
This makes it easier to use and avoids rendering a fullscreen hud on a screen size with view border.
2022-10-30 16:51:39 +01:00
Mitchell Richters
914bec7d65
- Deduct the minimum angle epsilon from unclamped pitch ranges.
2022-10-30 16:51:39 +01:00
Christoph Oelckers
e3254a8546
- fixed an edge case in cansee where an actor placed directly on a two-sided wall would fail to register that wall's back sector.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
ff71ab14ce
- added a GZDoom-style alternative HUD.
...
So far only implemented for Blood.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
a0f18c360a
- made some minor edits to clipmove to get rid of a few deprecated wrapper functions.
2022-10-30 16:51:37 +01:00
Christoph Oelckers
14769e9b79
- reroute cliptestsector to checkOpening.
...
This required adding one more check for the 'precise' mode.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
40271e15b3
- minor tweaks to checkOpening
...
mainly some extensions to let it replace cliptestsector.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
2190499d63
- pushmove rewritten.
2022-10-30 16:51:36 +01:00
Christoph Oelckers
902f8c9706
- silenced lots of warnings for deliberate type conversions.
...
The ones in d_net.cpp are not in active code.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
5f50ee5204
- updated CoreActor’s script exports.
2022-10-30 16:51:35 +01:00
Christoph Oelckers
3c6b64d621
- renamed everything back
2022-10-30 16:51:33 +01:00
Christoph Oelckers
81341ce4a6
- unwrapped SetScale as well.
...
Again no edits here - it's one big replace action.
2022-10-30 16:51:33 +01:00
Christoph Oelckers
da523eb8e3
- unwrapped vector SetScale.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
15db7a7143
- unwrapped SetScaleX/Y.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
8265239d2d
- removed AddScale wrappers.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
85b52b1c77
- removed Scale(), CopyScale() and MultScale wrappers.
2022-10-30 16:51:32 +01:00
Christoph Oelckers
51768439a9
- started removing wrappers. ScaleX() and ScaleY() done.
...
No manual changes in here.
2022-10-30 16:51:31 +01:00
Christoph Oelckers
4aa765675e
- use a float vector to store the scale.
2022-10-30 16:51:31 +01:00
Christoph Oelckers
abf5c9feee
- all repeats in SW’s draw code
2022-10-30 16:51:29 +01:00
Christoph Oelckers
42679d58bb
- lots of repeats in Exhumed
2022-10-30 16:51:28 +01:00
Christoph Oelckers
1a22127123
- refactoring CreateActor - part 1
2022-10-30 16:51:26 +01:00
Christoph Oelckers
e749a0e9a4
- a bunch of repeats in actor_d.cpp
2022-10-30 16:51:25 +01:00
Christoph Oelckers
5700d25120
- minor cleanup on scaling code
2022-10-30 16:51:25 +01:00
Christoph Oelckers
520d838a8c
- use Scale wrappers in global code and parts of Duke.
2022-10-30 16:51:23 +01:00
Christoph Oelckers
1085752e01
- added more Scale wrappers to spritetype.
2022-10-30 16:51:23 +01:00
Christoph Oelckers
6a3a811a42
- repeats in the wall sprite renderer
2022-10-30 16:51:22 +01:00
Christoph Oelckers
9d8df61324
- got rid of the int version of GetOffsetAndHeight.
2022-10-30 16:51:21 +01:00
Christoph Oelckers
a6fb831894
- scaling demessification in the voxel renderer
...
(needs thorough testing!!!)
2022-10-30 16:51:21 +01:00
Christoph Oelckers
91c318b708
- renamed most non-sprite xrepeat and yrepeat as refactpring aid.
...
These will be renamed back later but now they create too much search noise.
A few local variables have been permanently renamed to scale*.
2022-10-30 16:51:20 +01:00
Christoph Oelckers
c678298141
- wrap repeats in the renderer.
2022-10-30 16:51:20 +01:00
Christoph Oelckers
adb3cb888e
- manual repeats in Blood.
2022-10-30 16:51:20 +01:00
Christoph Oelckers
2589e7030c
- more repeats replaced by SetScale.
2022-10-30 16:51:19 +01:00
Christoph Oelckers
e60fafec52
- got rid of most REPEAT_SCALE factors.
2022-10-30 16:51:19 +01:00
Christoph Oelckers
8c308c8d3e
- added ScaleY method to spritetype and used it to get rid of a large amount of 'yrepeat * REPEAT_SCALE'
2022-10-30 16:51:18 +01:00
Christoph Oelckers
c7c3b2a20c
- added a SetScale method to spritetype and used it for all places setting x/yrepeat to 0.
2022-10-30 16:51:17 +01:00
Christoph Oelckers
a6e35edc6c
- replaced all set_native_clipdist
...
Note that truncation has to be preserved here to ensure the size stays the same as before so the MulScales were not resolved into their factors.
2022-10-30 16:51:16 +01:00
Christoph Oelckers
d22c473c31
- manual set_const_clipdist replacements
2022-10-30 16:51:15 +01:00
Christoph Oelckers
4af4983d3e
- floatified clipdist and replaced fClipdist wrapper.
...
This uses a new variable because a few things use clipdist as a flag byte
2022-10-30 16:51:14 +01:00
Christoph Oelckers
3577b53c4d
- GetWallSpritePosition also benefits from using .dot
2022-10-30 16:51:14 +01:00
Christoph Oelckers
f1baf5c69c
- use dot product for getslopeval as well
2022-10-30 16:51:13 +01:00
Christoph Oelckers
02f1f79333
- use .dot() for calculating slopes
2022-10-30 16:51:13 +01:00
Christoph Oelckers
e83d0930bf
- clean out the unused sintable stuff
2022-10-30 16:51:13 +01:00
Mitchell Richters
cea2b6b428
- Rename PlayerHorizon::__horiz
back to horiz
.
2022-10-30 16:51:12 +01:00
Mitchell Richters
0600bf5860
- Negate everything to do with PlayerHorizon::__horiz
where appropriate, including some loose horizoff
members.
2022-10-30 16:51:11 +01:00
Mitchell Richters
619b8005ac
- Rename PlayerHorizon::horiz
in prep for negating this angle throughout code.
2022-10-30 16:51:11 +01:00
Christoph Oelckers
513fc478bf
- moved clipupdatesector to updatesector.h
2022-10-30 16:51:10 +01:00
Christoph Oelckers
479c732a72
- moved some more things out of build.h
2022-10-30 16:51:10 +01:00
Christoph Oelckers
0eea776065
- moved RS_ bits to gamehud.h because that's all that uses these flags.
2022-10-30 16:51:09 +01:00
Christoph Oelckers
94b91f6ec3
- build.h cleanup
...
* moved krand and krandf into the games/duke folder because no other game uses them
* moved CVARS to gamefuncs.h.
2022-10-30 16:51:09 +01:00
Christoph Oelckers
4af1461ec3
- got rid of int_clipdist.
2022-10-30 16:51:09 +01:00
Christoph Oelckers
7d3babd678
- ported all pushmove calls to the float version.
2022-10-30 16:51:08 +01:00
Christoph Oelckers
600c2a0243
- map all clipmove calls to the version with a full float interface.
2022-10-30 16:50:48 +01:00
Christoph Oelckers
63c8960769
- deleted mdsprite.* files.
2022-10-27 16:55:54 +02:00
Christoph Oelckers
a4dd5bb4ce
- rewrote the model storage code.
...
Using proper C++ containers now.
2022-10-27 16:55:54 +02:00
Mitchell Richters
c00c8d196e
- Simple VecToAngle() > .Angle() replacements.
2022-10-27 16:55:52 +02:00
Christoph Oelckers
6636064d1f
- did a few checks with the compatibility optioned slope adjustment and decided to enable it unconditionally.
...
A CVar was added to make it user-settable, but having this dramatically improves handling on slope edges.
2022-10-27 16:55:52 +02:00
Christoph Oelckers
c505da79e4
- fixed: getzrange must look a bit further for sprites affecting the current position.
...
This was missed when the function was rewritten because the code was too unclear about it.
2022-10-27 16:55:52 +02:00
Christoph Oelckers
8e9ddf370c
- rewrote getzrange
...
Not using any old Build code anymore. Aside from the trivial stuff this uses code from Doom and SW instead.
2022-10-27 16:55:28 +02:00
Mitchell Richters
13d643deb5
- Duke: Move Duke-exclusive code from PlayerHorizon
struct into displayweapon_d()
and clamp tangent to handle high pitches.
...
* Clamped range is slightly higher than original (200 vs. 256), however when tested with idle knuckle cracking, etc, hands were drawn not above the screen unlike unclamped tangent.
2022-10-25 07:07:15 +02:00
Mitchell Richters
c3adf5ea58
- Slight clean up of input constants.
2022-10-25 07:07:14 +02:00
Mitchell Richters
fc8c0b80aa
- Clean up chase cam backwards scaling since we're now using floats of the same scale.
2022-10-25 07:07:14 +02:00
Mitchell Richters
3db6a38b4b
- Make dragpoint()
inline since its a wrapper for another function anyway.
2022-10-25 07:07:14 +02:00
Mitchell Richters
9dd27ee3a2
- Remove old integer dragpoint()
interface that was used by floats in lots of places.
...
* Cannot wait until all the narrowing warnings can be re-enabled...
2022-10-25 07:07:14 +02:00
Mitchell Richters
5cc9774873
- Apply same signedness fix from - fixed signedness issue with slope sprite coefficient.
to spriteGetSlope()
.
2022-10-25 07:07:14 +02:00
Mitchell Richters
2e8e5f99e7
- Fix mixed X/Y pos subtraction in spriteGetZOfSlopef()
and use a bit more of the backend.
...
* Confirmed coordinate mix-up when reviewing commit `- added spriteGetZOfSlopeF for the backend`.
2022-10-25 07:07:14 +02:00
Christoph Oelckers
310eff6e71
- clean out many wrappers.
2022-10-25 07:07:10 +02:00
Christoph Oelckers
1a03c56eec
- floatifying player::slope, part 1
2022-10-25 07:07:09 +02:00
Christoph Oelckers
f0dc95597b
- deleted several unused wrappers and overloads.
2022-10-25 07:07:05 +02:00
Christoph Oelckers
fd3ca33aea
- deleted set_int_bvel inlines
2022-10-25 07:07:04 +02:00
Mitchell Richters
789fa71a14
- Use g_atan2()
within maphoriz()
so consistent math is used throughout engine.
2022-10-25 07:07:03 +02:00
Mitchell Richters
5d8cc1b4fc
- Store all input speed constants as DAngle to avoid calling DAngle::fromDeg()
all the time.
2022-10-25 07:07:02 +02:00
Christoph Oelckers
3c3af06413
- deleted getincangle.
2022-10-25 07:07:02 +02:00
Christoph Oelckers
2ba68df27f
- eliminate int_floorz / int_ceilingz in the backend.
2022-10-25 07:07:00 +02:00
Christoph Oelckers
0655db77b9
- delete set_int_floorz and set_int_ceilingz.
2022-10-25 07:07:00 +02:00
Christoph Oelckers
5e2e53d684
- more CanMove fixes, plus salvaging the rest of the old commit.
...
CanMove twice uses the texel-based nRange as a Build-unit value, this caused strange problems with the initial floatification.
2022-10-25 07:06:57 +02:00
Christoph Oelckers
6b579156aa
- Blood HitScan fixes
...
- changed target parameter of hitscan to a double to simplify its handling.
- HitScan's nRange parameter may be an int, but it is in texel units, not Build units.
2022-10-25 07:06:56 +02:00
Mitchell Richters
2baf35ed2d
- Slightly tidy up PlayerHorizon::applyinput()
.
2022-10-25 07:06:55 +02:00
Mitchell Richters
1e19b32b59
- Add CVAR to allow unclamping the player's view pitch.
2022-10-25 07:06:55 +02:00
Mitchell Richters
8d3f3c6025
- Cut over to DAngle
from fixedhoriz
and remove the latter.
2022-10-25 07:06:55 +02:00
Mitchell Richters
0d8b2ba59d
- Tidy up all constants in gameinput.cpp
and convert to native degrees/pitch where appropriate.
2022-10-25 07:06:55 +02:00
Mitchell Richters
41bbbd9df5
- Remove all remaining uses of fixedhoriz::asbuild()
.
2022-10-25 07:06:55 +02:00
Mitchell Richters
a952c35669
- SW: Convert DoPlayerDeathHoriz()
to work on pitch and remove now-unused buildhoriz()
.
2022-10-25 07:06:55 +02:00
Mitchell Richters
92798b5a07
- Remove most buildhoriz()
calls.
2022-10-25 07:06:55 +02:00
Mitchell Richters
293a71ed55
- Remove horizon from gi->WarpToCoords()
since we don't even print the horizon in our stats.
2022-10-25 07:06:54 +02:00
Mitchell Richters
eedcfb46c6
- Convert calcviewpitch()
to work with a temporary DAngle so we can eliminate the temporary tanhoriz()
friend.
2022-10-25 07:06:54 +02:00
Mitchell Richters
ca8f8d6d36
- Remove all remaining q16horiz()
calls, also correcting a long-standing Duke bug.
2022-10-25 07:06:54 +02:00
Mitchell Richters
8697e5f054
- Replace all q16horiz(0)
calls.
2022-10-25 07:06:54 +02:00
Mitchell Richters
22a9f89b64
- Remove all uses of fixedhoriz::asq16()
.
2022-10-25 07:06:54 +02:00
Mitchell Richters
5bf23f0642
- Develop new scaled horizon return to centre with initial return from full articulation scaled by the pitch's sine.
...
* When coming back from a full view pitch using the original algorithm, the initial snap-back from 90 degrees is very aggressive.
* Return to centre speed retuned to be 1:1 to the ms with the tangent at Duke/SW's clamped pitch.
2022-10-25 07:06:54 +02:00
Mitchell Richters
d923ef9a8c
- Perform horizon's return to centre using pitch instead of tangent.
...
* Return to centre speed tuned to be 1:1 to the ms with the tangent at Duke/SW's clamped pitch.
2022-10-25 07:06:53 +02:00
Mitchell Richters
5851c0f2c6
- Clean up some q16horiz usage and how the view pitch is clamped.
2022-10-25 07:06:53 +02:00
Mitchell Richters
4ef9ec93ea
- Remove fixedhoriz::asbuildf()
and associated buildf friend.
...
* The new friend `tanhoriz()` is just for the input code for now.
2022-10-25 07:06:53 +02:00
Mitchell Richters
d8a6471680
- Add fixedhoriz::Tan()
and replace most asbuildf()
calls with it.
2022-10-25 07:06:53 +02:00
Mitchell Richters
fcdb360b92
- Add fixedhoriz::Sgn()
.
2022-10-25 07:06:53 +02:00
Mitchell Richters
e4ae726015
- Rename fixedhoriz::aspitch()
to Degrees()
to match DAngle
objects.
2022-10-25 07:06:53 +02:00
Mitchell Richters
5e11fc1a15
- Remove unused fixedhoriz
methods and friends.
2022-10-25 07:06:52 +02:00
Christoph Oelckers
c94a361788
- deleted int_hitpos.
2022-10-25 07:06:48 +02:00
Christoph Oelckers
427e41d388
- allow 'sw...' cheats from the chat in Shadow Warrior.
2022-10-24 23:30:16 +02:00
Christoph Oelckers
38998f36b5
- minor int_* replacements in the backend.
2022-10-23 18:47:17 +02:00
Christoph Oelckers
a409e03570
- deleted set_int_ang
2022-10-23 18:47:17 +02:00
Christoph Oelckers
0eacc8e68e
- add_int_z is gone.
2022-10-23 18:47:16 +02:00
Christoph Oelckers
e2d0cbf772
- allow entering cheats in the chat editor without using '#'.
2022-10-23 18:46:18 +02:00
Christoph Oelckers
f1514bbc52
- alternative math for slope planes in hitscan.
2022-10-22 20:41:27 +02:00
Christoph Oelckers
74cf9a2ff2
- hitscan fully rewritten.
...
No traces of Build code left here! :)
2022-10-22 20:41:27 +02:00
Christoph Oelckers
2991bc752b
- split out the pure math stuff from gamefuncs.h into a utility header in 'common'.
...
Also did a bit of reshuffling on gamefuncs.h to group content better.
2022-10-22 20:41:26 +02:00
Christoph Oelckers
116ba340b2
- further hitscan overhaul.
...
* added floating point sprite intersect handlers for all sprite types. Hopefully this code is more understandable than Build's original variant.
* cleaned up intersectSprite a bit and moved the geometry math into the utility header.
* made some minor corrections to neartag.
* moved SW's testpointinquad to the backend because it was useful here.
2022-10-22 20:41:26 +02:00
Mitchell Richters
6ca42dc08c
- Slightly clean up calcChaseCamPos()
.
2022-10-22 20:41:26 +02:00
Christoph Oelckers
e6cfb165f8
- converted all remaining add_int_bvel* calls.
2022-10-22 20:41:26 +02:00
Christoph Oelckers
e00eda6cb8
- Blood: floatified VectorScan.
...
The texture checks in here definitely need some more verification, though.
Doing a quick test looked ok, but I do not think this was enough.
2022-10-22 20:41:25 +02:00
Christoph Oelckers
044b9e555b
- floatified a bit more of nnExtProcessSuperSprites
2022-10-22 20:41:25 +02:00
Christoph Oelckers
09d66914f4
- LinePlaneIntersect
...
This is for calculating intersections with slope sprites later.
2022-10-22 12:17:04 +02:00
Christoph Oelckers
243c071834
- got rid of bsinf and bcosf.
2022-10-22 12:17:04 +02:00
Christoph Oelckers
6dd7fac902
- eliminated the sine table and moved tilehasmodelorvoxel to a different file to delete engine.cpp.
2022-10-22 12:17:04 +02:00
Christoph Oelckers
ef2f781e09
- rewrite from scratch of neartag.
2022-10-22 12:17:04 +02:00
Christoph Oelckers
20043f6223
- use symbolic constants in neartag calls.
2022-10-22 12:17:03 +02:00
Christoph Oelckers
dcd4ee133b
- use a simpler method to calculate the intersection point in intersectSprite and fixed the distance check.
2022-10-22 12:17:03 +02:00
Christoph Oelckers
9c564db015
- replaced try_facespr_intersect with something independently written.
2022-10-22 12:17:03 +02:00
Christoph Oelckers
28a169d02d
- cansee floating point rewrite using backend utilities.
2022-10-22 12:17:02 +02:00
Christoph Oelckers
14a8dd451e
- redid lintersect with backend utilities.
...
I left out EDuke32's new handling for collinear traces because it not only was never active but also makes really no sense with neartag which is lintersect's only caller.
2022-10-22 12:17:02 +02:00
Mitchell Richters
95cd74bdc0
- renamed slope functions so that the int versions get a special name.
2022-10-22 12:17:02 +02:00
Christoph Oelckers
9172ab27ca
- move all deprecated functions to the bottom in gamefuncs.h.
2022-10-22 12:17:02 +02:00
Christoph Oelckers
ac2a3c443f
- got rid of all deprecated updatesector variants.
...
This required a few changes in the map loader and render interface.
2022-10-22 12:17:02 +02:00
Christoph Oelckers
e4ca397898
- corrected sector check output in validateSprite.
2022-10-22 12:17:02 +02:00
Mitchell Richters
2e4996e8fc
- floatified nnextCanMove and deleted most deprecated updatesector variants.
2022-10-22 12:17:02 +02:00
Christoph Oelckers
c5a5e3cef5
- deleted some unused deprecated functions.
2022-10-22 12:17:01 +02:00
Christoph Oelckers
2cc81d0165
- floating point version of rintersect, based on GZDoom's P_InterceptVector.
2022-10-22 12:17:01 +02:00
Christoph Oelckers
b7ddd9e784
- added InterceptVector from GZDoom.
...
This will be useful for some backend stuff.
2022-10-22 12:17:01 +02:00
Christoph Oelckers
335df86213
- output floating point coordinates in validateSprite
2022-10-22 12:17:00 +02:00
Christoph Oelckers
a8ae8babe2
- cleanup of updatesector.h
...
Mainly not routing the float variants through the integer variants anymore and deprecating those.
FindSector was also moved into DoUpdateSector because both always need to be used together.
2022-10-22 12:17:00 +02:00
Mitchell Richters
85f716e49b
- floatify calcviewpitch
2022-10-22 12:17:00 +02:00
Christoph Oelckers
6a1ff029b7
- floatified getslopeval and all related code.
2022-10-22 12:17:00 +02:00
Christoph Oelckers
ece8663f5e
- floatified calcSlope and cleaned up the get*slope interface
2022-10-22 12:17:00 +02:00
Christoph Oelckers
bd9dfadf6d
- use REPEAT_SCALE ih the wall/floorsprite getter functions.
2022-10-22 12:16:57 +02:00
Christoph Oelckers
e6807964ae
- don't use Build utilities in the render backend.
2022-10-22 12:16:57 +02:00
Christoph Oelckers
b2d1988e50
- use engine utilities for the section builder’s inside check
2022-10-22 12:16:57 +02:00
Christoph Oelckers
f5e6503b26
- merge NearestPointLine into NearestPointOnWall
2022-10-22 12:16:57 +02:00
Christoph Oelckers
c44fd07f37
- floatified the portal displacement
2022-10-22 12:16:57 +02:00
Christoph Oelckers
c87b4a581b
- got rid of the WallStart/End macros
...
They never got much use and the places where they were used work just as well without them
2022-10-22 12:16:56 +02:00
Christoph Oelckers
cbfc9a8252
- added spriteGetZOfSlopeF for the backend
2022-10-22 12:16:56 +02:00
Christoph Oelckers
fd4f04b5fd
- eliminated fixed point GetSoundPos variants
2022-10-22 12:16:56 +02:00
Christoph Oelckers
ab23f6b114
- floatify clipangle math in HWLineToLinePortal::Setup
2022-10-22 12:16:56 +02:00
Christoph Oelckers
375d346ae8
- pass a vector to the processSprites interface.
2022-10-22 12:16:56 +02:00
Christoph Oelckers
bbf77c908b
- pass a floating point view position to the bunch drawer
2022-10-22 12:16:56 +02:00
Christoph Oelckers
0b8f7f6a9f
- deleted add_int_pos
2022-10-22 12:16:53 +02:00
Christoph Oelckers
fb2c4efa2f
- eliminated the last place where tspritetype’s add_int_z was used
2022-10-22 12:16:53 +02:00
Christoph Oelckers
ca8b9e9793
- overhauled getzrangepoint to use backend utilities
2022-10-22 12:09:54 +02:00
Christoph Oelckers
c511e5dca9
- eliminated int_xvel
2022-10-22 11:33:16 +02:00
Christoph Oelckers
671e75ba5f
- eliminate the last int_zvel call
2022-10-22 09:34:16 +02:00
Christoph Oelckers
666f768413
- deleted set_int_xvel and set_int_zvel.
2022-10-22 09:34:15 +02:00
Christoph Oelckers
9cfd56a912
- mathutil is not needed anymore.
2022-10-22 09:34:13 +02:00
Christoph Oelckers
1111251887
type safe CVAR declaration.
2022-10-22 09:25:27 +02:00
Mitchell Richters
db5fcde0db
- Fix issues with startup on fresh config following CVAR overhaul.
2022-10-22 14:42:12 +11:00
Mitchell Richters
4e8331b16b
- Fix broken wrap-around in the double version of BobVal()
.
...
* My first time actually witnessing this, but was only a problem with GCC...
2022-10-22 13:51:31 +11:00
Christoph Oelckers
479616a80f
- got new CVar system from GZDoom.
2022-10-22 00:12:17 +02:00
Christoph Oelckers
e224abb949
- silenced warnings.
2022-10-21 00:00:07 +02:00
Christoph Oelckers
1814274124
- eliminated all of add_int_zvel.
2022-10-21 00:00:05 +02:00
Christoph Oelckers
0432930e5b
- converted all dist() calls to vector math and deleted the utilities
2022-10-21 00:00:04 +02:00
Christoph Oelckers
3c9a94dba8
- consolidated Duke’s ‚away from wall‘ check in the backend
...
This was also very useful in SW to avoid spawning ‚floating‘ footprints due to lack of an equivalent check in the original.
2022-10-21 00:00:02 +02:00
Christoph Oelckers
19bca44f37
- added a float version of BobVal.
...
We will need this later.
2022-10-20 23:59:27 +02:00
Christoph Oelckers
5eb9af1e00
- Backend update from GZDoom
...
IQM model support and a few bugfixes.
2022-10-20 22:24:25 +02:00
Mitchell Richters
bfafe4e21c
- Tidy up some of the spaces on SetValueForKey()
calls.
...
* Although I hate the spaces and have no idea why anyone would do this, there's too many such calls in the document so easiest to just stick with it :/
2022-10-21 00:35:59 +11:00
Mitchell Richters
8d2e022250
- Fix broken paths in default configuration on Unix how I asked for it to be fixed.
2022-10-21 00:35:58 +11:00
Unrud
8459ee1cb2
Fix broken paths in default configuraiton on Unix
...
The default paths for **FileSearch.Directories** and **SoundfontSearch.Directories** are somewhat broken.
`SHARE_DIR` is defined as just `/usr/local/share/`.
The paths `…/games/raze` are not added to **FileSearch.Directories**.
`GAME_DIR` is defined as `.config/raze` on Unix. Combining it with the prefix `…/share/` is wrong.
Excerpt from the default configuration:
```ini
[FileSearch.Directories]
…
Path=/usr/local/share/
…
[SoundfontSearch.Directories]
…
Path=/usr/local/share/.config/raze/soundfonts
Path=/usr/local/share/games/.config/raze/soundfonts
Path=/usr/share/.config/raze/soundfonts
Path=/usr/share/games/.config/raze/soundfonts
```
2022-10-20 23:54:46 +11:00
Mitchell Richters
8bfcb8c939
- Floatify InputPacket::fvel
and InputPacket::svel
.
...
* Since all velocities are floated, we can now take each game's keymove scaling into its ticker and use a consistent keymove size, making non-mouselook and controller input truly identical across the games without having to try and fudge any values.
2022-10-20 00:48:09 +02:00
Mitchell Richters
def2b9d483
- Flip svel
around in the input code so we can use proper anti-clockwise vector math.
2022-10-20 00:48:09 +02:00
Christoph Oelckers
b0b5dbc55b
- eliminated add_int_ceilingz
2022-10-19 18:26:16 +02:00
Christoph Oelckers
23c529589e
- eliminated add_int_xvel
2022-10-19 18:26:16 +02:00
Mitchell Richters
bc018dd946
- Use getCorrectedScale()
in conjunction with looking keys like scaletozero()
functions.
2022-10-18 19:52:02 +02:00
Mitchell Richters
bdc6a5cf69
- Remove fudging from I_GetInputFrac()
and correct getPushBuild()
.
2022-10-18 19:52:02 +02:00
Christoph Oelckers
72dc3d5da9
- use mapangle in more places, mainly constants and random values using special formula
2022-10-18 19:01:45 +02:00
Christoph Oelckers
0e1a566d62
- added mapangle function for converting angles from map data.
...
This is just a wrapper around DAngle::fromBuild, its purpose is to clearly highlight data that cannot be refactored and needs to be converted
2022-10-18 19:01:45 +02:00
Christoph Oelckers
559fe495fb
- floatified movesprite and the thrust vector.
2022-10-18 18:34:24 +02:00
Christoph Oelckers
8137718133
- floatified movespritez
2022-10-18 18:34:24 +02:00
Mitchell Richters
9eec69d810
- Blood: Floatify position drawing code and clean up now-unused wrappers.
...
* Still work to be done on bob/sway/zView variables.
2022-10-18 18:29:09 +02:00
Christoph Oelckers
fdc6a49a97
- another movesprite wrapper to get rid of int_yvel and int_xvel
2022-10-17 17:25:59 +02:00
Christoph Oelckers
47ad4fccdc
- convert all set/add_int_x/yvel calls
2022-10-17 17:25:59 +02:00
Christoph Oelckers
1ba20c7dce
- wrapped most clipdist assignments
2022-10-17 17:03:53 +02:00
Christoph Oelckers
ef47040630
- renaming stuff for search purposes
2022-10-17 17:03:53 +02:00
Christoph Oelckers
3fc592c505
- wrap clipdist copy
2022-10-17 17:03:53 +02:00
Christoph Oelckers
16f0d15cdc
- wrapper for literal assignments to clipdist
2022-10-17 17:03:52 +02:00
Christoph Oelckers
3e36b5627b
- wrap clipdist << 2
2022-10-17 17:03:52 +02:00
Christoph Oelckers
cf8b650446
- floatify Bullet::x,y,z
2022-10-17 17:03:52 +02:00
Christoph Oelckers
5efc032a4c
- increase angular threshold for aligning wall sprites.
...
With full precision angles the old threshold is simply too low.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
9d1edf9cc5
- clean up angle math in wall drawer.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
7a9f89b95d
- removed obsolete scripting exports.
2022-10-16 10:59:04 +02:00
Christoph Oelckers
6de279282e
- marked integer dragpoint function deprecated.
2022-10-16 10:19:40 +02:00
Christoph Oelckers
b53e4b824e
- handle the portals in Duke and Blood.
2022-10-16 09:40:29 +02:00
Christoph Oelckers
0e628ed222
- floatified CollectPortals and its helpers
2022-10-16 09:40:28 +02:00
Christoph Oelckers
7f3c5ae18d
- added a 'dot' function to DVector2 because using the '|' operator is not intuitive.
2022-10-15 17:52:07 +02:00
Christoph Oelckers
dfabdff553
- set_int_hitpos is not used anymore
2022-10-15 17:49:34 +02:00
Christoph Oelckers
b202cf7a12
- added option to show the level stats on the automap.
2022-10-15 17:14:34 +02:00
Mitchell Richters
53b32ea161
- Leverage walltype
's delta()
method in chase cam code.
2022-10-15 13:32:04 +02:00
Mitchell Richters
3019f9effc
- Floatify smoothratio
for GameInterface::processSprites()
.
...
* Exhumed is now completely free of any Q16.16 interpolation scaling.
2022-10-15 13:32:03 +02:00
Mitchell Richters
8f2d6f0779
- Floatify smoothratio
for render_drawrooms()
and `render_camtex().
2022-10-15 13:32:03 +02:00
Mitchell Richters
01d185dc6b
- Floatify smoothratio
for DrawOverheadMap()
.
2022-10-15 13:32:03 +02:00
Mitchell Richters
5e410ff738
- Eliminate most uses of DAngle::Buildfang()
.
2022-10-15 13:32:03 +02:00
Mitchell Richters
b05b98826b
- Rename some smoothratio
variables to indicate that they've been processed.
2022-10-15 13:32:03 +02:00
Mitchell Richters
6716d0f2e9
- Floatify smoothratio
for calcChaseCamPos()
.
2022-10-15 13:32:02 +02:00
Mitchell Richters
953364b96b
- Rename a smoothratio
variable to interpfrac
to show that it's not Q16.16.
2022-10-15 13:32:02 +02:00
Mitchell Richters
45d4d3e41a
- Eliminate __interpvalue()
and clean up Q16.16 smoothratio values where it made sense to do so.
...
* Also eliminates a now empty header.
2022-10-15 13:32:02 +02:00
Mitchell Richters
f02035b15a
- Eliminate __interpvaluef()
and clean up Q16.16 smoothratio values where it made sense to do so.
2022-10-15 13:32:01 +02:00
Mitchell Richters
2c8cb8f052
- Rename DCoreActor
method interpolatedvec3()
to interpolatedpos()
.
2022-10-15 13:32:01 +02:00
Mitchell Richters
f5dda2909a
- Remove now-unused interpolation methods from DCoreActor
class.
2022-10-15 13:32:01 +02:00
Mitchell Richters
39ac3b44b0
- Add scaler operators to fixedhorizon
class and eliminate class-specific interpolatedhorizon()
inlines.
2022-10-15 13:32:01 +02:00
Mitchell Richters
74167e1a7c
- Remove interpolators for TVector and TAngle objects, replacing with single generic version.
2022-10-15 13:32:01 +02:00
Mitchell Richters
06e772b44b
- Rename interpolatedvalue()
in preparation for replacement.
2022-10-15 13:32:01 +02:00
Mitchell Richters
8fd6452baf
- Rename interpolatedvaluef()
in preparation for replacement.
2022-10-15 13:32:01 +02:00
Christoph Oelckers
057d2a565a
- floatified Blood's velFloor and velCeil
2022-10-15 13:31:59 +02:00
Christoph Oelckers
38bb103cdd
- renamed velFloor and velCeil.
2022-10-15 13:31:59 +02:00
Christoph Oelckers
92379863f1
- don't use DAngle for calculating bobbing amplitudes.
...
It makes more sense here to have a dedicated function since this is not really angular math.
2022-10-15 13:31:59 +02:00
Christoph Oelckers
6b0b8f944c
- floatified the height parameter of nextsectorneighborptr
2022-10-15 12:42:30 +02:00
Mitchell Richters
f72d42bb8e
- Uplift renderer entry point to DVector3
and provide wrappers for old setups.
2022-10-15 12:16:53 +02:00
Mitchell Richters
056bb9b0cd
- Floatify chase cam code, providing an inline interface for legacy setup.
2022-10-15 12:16:53 +02:00
Mitchell Richters
977d8f8109
- Convert gi->chaseCamPos()
to return a floating point DVector3
object.
2022-10-15 12:16:53 +02:00
Mitchell Richters
db5db7d9b3
- Turn DVector2
rotatepoint()
into an inline using the vector's methods.
2022-10-15 12:16:53 +02:00
Mitchell Richters
18f97c3d7e
- SW: Move player sprite loop out of sector loop, and eliminate goto crap.
2022-10-15 12:16:52 +02:00
Mitchell Richters
f236cc8728
- Consolidate some duplicated automap code between Duke and SW.
2022-10-15 12:16:52 +02:00
Mitchell Richters
ef56d00d78
- Pass automap angle vector as an actual vector.
...
* Also reconfigure setup so that angle requires zero pre-processing or setup in the automap code, have it all handled in `OutAutomapVector()`.
2022-10-15 12:16:52 +02:00
Christoph Oelckers
1dcb03e530
- got rid of set_int_bvel
2022-10-15 11:35:38 +02:00
Christoph Oelckers
712d28ff40
- clean out some stuff
2022-10-15 11:35:38 +02:00
Christoph Oelckers
3e76d49b6e
- removed the mul vel wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
6fd8dae380
- removed the non-Blood float_* access wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
62ba753585
- remove vel clear wrappers
2022-10-15 10:15:21 +02:00
Christoph Oelckers
b924569755
- started removing trivial vel wrappers
2022-10-15 10:15:20 +02:00
Christoph Oelckers
64e8a369ec
- floatified velocity storage
2022-10-15 10:15:20 +02:00
Christoph Oelckers
e361abb96d
- added some utilities
2022-10-14 23:55:32 +02:00
Christoph Oelckers
0c146e7ccb
- Unify the velocity vectors of all games
...
spritetype’s former vel fields are only being retained for alternative use - yvel -> yint as generic parameter in Duke and zvel -> inittype for Blood.
2022-10-14 23:55:31 +02:00
Christoph Oelckers
c45ecdae73
- wrapped all velocity access in Blood, except the places where an address of vel is taken
2022-10-14 23:55:30 +02:00
Christoph Oelckers
7a7a2cdb39
- various replacements of vel
2022-10-14 23:55:30 +02:00
Christoph Oelckers
1999340c8a
- add_int_bvel_z
2022-10-14 23:52:43 +02:00
Christoph Oelckers
12e5fd133c
- add_int_bvel_x
2022-10-14 23:52:43 +02:00
Christoph Oelckers
49f0e9c57d
- batch 3 of vel.
2022-10-14 23:52:43 +02:00