Mitchell Richters
deef767c5d
- Blood: Fix some nullptr issues in checkHit()
and checkFloorHit()
.
...
* Fixes #834 .
2023-01-02 15:02:57 +11: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
Mitchell Richters
96e8565ba7
- Blood: Reset player's render angle state only for the console player.
2022-12-29 14:35:42 +11:00
Christoph Oelckers
ef7c72ce9f
- Blood: add all statically stored EventObjects to the GC processor.
2022-12-18 17:54:54 +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
a9ea2cd5c0
- moved GetReservedScreenSpace function into the scripted status bar where it belongs.
...
Since this is supposed to return the height of the status bar, keeping it native is a bit pointless as it cannot be modified that way.
2022-12-18 14:47:38 +01:00
Christoph Oelckers
c41dc29885
- eliminated half of the remaining tileWidth and tileHeight calls.
2022-12-18 14:45:09 +01:00
Christoph Oelckers
e78fd90f67
- adapted sky code for using texture IDs.
2022-12-18 14:42:27 +01:00
Christoph Oelckers
8dfbbc8220
- migrated floorpicnum and ceilingpicnum to FTextures.
...
The sky code still needs some work.
2022-12-18 14:32:52 +01:00
Christoph Oelckers
6848af9b6c
- use texture IDs in Duke's texture flag checkers.
2022-12-18 13:42:28 +01:00
Christoph Oelckers
5147826eeb
- consolidated precaching code and rewrote the core to work on texture IDs.
2022-12-18 13:37:54 +01:00
Christoph Oelckers
1a6f808fca
- refactored all access to the fake picanm[] array.
...
Also use symbolic names in precache calls in Blood.
2022-12-18 13:26:29 +01:00
Christoph Oelckers
e23a5095cb
- moved the other tile info tables of Blood to the texExtInfo array as well.
...
The two fields are easily reusable for the other games so it's a welcome simplification.
2022-12-18 13:23:59 +01:00
Christoph Oelckers
c34756e5f2
- cleanup of voxel init code.
...
The voxreserve array was never properly set up so it is gone now.
nextvoxid now gets set right before loading .def files.
2022-12-18 13:18:44 +01:00
Christoph Oelckers
8a789b9015
- voxel management cleanup.
...
Moving the voxel index into the texExtInfo array and removing most of Blood's and SW's special handling.
2022-12-18 13:18:43 +01:00
Christoph Oelckers
20edd800f9
- big texture system refactor.
...
Finally that quickly slapped together BuildTiles class is gone and replaced with something that better integrates with the underlying texture manager
2022-12-18 13:05:58 +01:00
Christoph Oelckers
82c30f551f
- Blood: relax range check in AlignSlopes.
...
This now checks the full range of the wall array and if outside just does nothing. E2M6 has a bogus value for this feature that asserted with the old check.
2022-12-17 20:23:54 +01:00
Christoph Oelckers
bfe958abd6
- Blood: do not double-rotate the player.
...
One of these actions needs to be removed, now that the angles are consolidated.
2022-12-17 20:03:56 +01:00
Christoph Oelckers
521a59fd26
- Blood: fixed blood splats being spawned in the wrong place.
2022-12-17 19:34:35 +01:00
Christoph Oelckers
32071c4460
- Blood: fixed 3 places where 3D distance was used but 2D should have been used.
2022-12-17 18:43:15 +01:00
Christoph Oelckers
9fc17a4bcf
- fixed velocity handling in a few enemy swimChase functions.
...
The one for the gill beast was particularly bad.
2022-12-14 11:32:56 +01:00
Christoph Oelckers
629dc8e163
- fixed kill counting in Blood.
2022-12-13 08:37:22 +01:00
Mitchell Richters
7d6eb2bae6
- Remove some pitch/yaw deltaangle additions in lieu of setting the angle directly.
...
* This deltaangle addition was needed with the old input setup.
2022-12-11 19:46:27 +01:00
Mitchell Richters
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
281b102fac
- gave all textures that were accessed with their "#0xxxx" name a descriptive names.
...
Only the fallback fonts were intentionally excluded because these are supposed to get the ART file content.
2022-12-11 19:45:18 +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
afa821c2fd
- removed redundant voxel/model code in Blood's animatesprites.
...
This just duplicated the generic handling in the renderer so it is not needed.
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
8b0e86e88b
- wrap a few more accesses to picnum variables
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
483617d3e1
- use the texture wrappers in a few places.
2022-12-11 19:44:00 +01:00
Christoph Oelckers
ffa265ae1d
- gave Blood's and SW's mirror/ROR tiles proper names.
2022-12-11 19:44:00 +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
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
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
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
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
f39eaba109
- backported sound volume fix from NBlood.
2022-12-11 18:46:40 +01:00
Christoph Oelckers
67e807de26
- exported the tile flag setters to .def.
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
d3bc2f39a4
- Blood: Remove all remaining angle wrapper usage.
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
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
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
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
630c10856e
- Re-write PlayerAngles
scaled adjustment methods.
2022-12-11 18:41:58 +01:00
Mitchell Richters
aa868232c8
- Clean up all previously annotated angle/yaw checks.
2022-12-11 18:41:58 +01:00
Mitchell Richters
01d9877c8c
- Blood: Repair synchronised input interpolation issues following changes.
2022-12-11 18:41:58 +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
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
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
7d34288290
- Rename PlayerAngle::rotscrnang
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
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
216fad7e18
- Rename PlayerHorizon::horizoff
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
110cc5149d
- Annotate all sprite angles that are being set as the player angle to review later.
...
* Once the angles between player and sprite have been unified, these will be much harder to identify.
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
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
Mitchell Richters
597b291252
- Blood: Fix gi->WarpToCoords()
that messed up the Z.
2022-12-11 18:41:51 +01:00
Mitchell Richters
397acfa242
- Blood: Migrate to new actor viewzoffset
property (sort of).
...
* The way this game does it player Z in a distinct variable needs to be maintained as it's impossible to maintain proper Z velocities when trying to do without it.
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
f524abdf47
- Blood: Utilise new weapon drawing offsets from the backend.
2022-12-11 18:41:37 +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
Christoph Oelckers
ed4f49ac86
- fixed sound code for backend update.
2022-11-24 17:46:39 +01:00
Christoph Oelckers
c69e86d119
- Blood: unlimited the tracking conditions.
2022-11-16 11:55:41 +01:00
Christoph Oelckers
ef54579104
- Blood: updated nnexts with the parts not related to the condition rewrite.
2022-11-16 11:14:31 +01:00
Christoph Oelckers
e776e76ebf
- Blood: applied all changes outside of nnexts.cpp from the latest modern update.
2022-11-16 07:53: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
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