Mitchell Richters
33ca55023f
- Replace spritetypebase
x
with pos.X
calls.
2021-12-30 09:57:05 +01:00
Mitchell Richters
09e00a69fe
- Replace walltype
y
with pos.Y
calls and eliminate walltype
pos
union.
2021-12-30 09:57:04 +01:00
Mitchell Richters
51b647da87
- Replace walltype
x
with pos.X
calls.
2021-12-30 09:57:04 +01:00
Mitchell Richters
cab4ddb1c8
- Eliminate some stale code out of intvec.h
.
2021-12-30 09:57:04 +01:00
Mitchell Richters
b24f07f281
- Capitalise vec2_16_t
y
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
e52c3e6d82
- Capitalise vec2_16_t
x
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
b2ab64bb62
- Capitalise vec3_t
z
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
68e2691be7
- Capitalise vec3_t
y
variable.
2021-12-30 09:57:03 +01:00
Mitchell Richters
c549cc5276
- Capitalise vec3_t
x
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
118ceb18ca
- Capitalise vec2_t
y
variable.
2021-12-30 09:57:02 +01:00
Mitchell Richters
3c9cd926ba
- Capitalise vec2_t
x
variable.
2021-12-30 09:57:02 +01:00
Christoph Oelckers
d9d05e90b5
- globally replaced all occurences of '->s().' with '->spr.'
2021-12-30 09:57:00 +01:00
Christoph Oelckers
56e56e9d2f
- removed the triangulator type visualization.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
beddf1e1ca
- add slope sprite support to the new renderer.
...
Some fudging was needed to avoid positioning problems as the renderer is more sensitive to this than Polymost.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
6fd4d6d550
- ported slope sorite support from NBlood.
...
For Polymost only so far.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
785c7d4ceb
- removed numsectors and numwalls entirely.
...
With Blood's Polymost mirror hack the risk of getting out of sync with the arrays was a genuine issue, so now only the array size counts.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
df0c577cf4
- replaced most of numsectors, too.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
f1c0298825
- replaced numwalls with wall.Size in several places.
2021-12-30 09:56:54 +01:00
Christoph Oelckers
65bc6e6aef
- removed the now redundant wall() and sector() interator helper functions.
...
With both wall and sector now being TArrays they are not needed anymore.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
6608096ea3
- added a bit more debug validation to the new clipper code.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
fd741c4d49
- Disable debug output
2021-12-30 09:56:52 +01:00
Christoph Oelckers
756ed1c14b
- removed the workaround to make Lunatic Fringe not glitch.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
c141c89cfd
- fixed the clipper.
...
* must do proper checks for merged ranges when inserting new ones. The checking code assumes that closed ranges are contiguous.
* when discarding parts of overlapping ranges this may not use merged clip values for its checks.
* ranges that have their clip values altered must be released and reinserted to ensure everything is correct.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
f152a4d9b5
- clipper clean up.
...
The horizontal part of the logic should work now.
2021-12-30 09:56:52 +01:00
Christoph Oelckers
213ed28398
- WindowClipper WIP
2021-12-30 09:56:52 +01:00
Christoph Oelckers
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
13186cec6d
- the rest of Blood's flags.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
092cb1e5a3
- second set of Blood flags.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
3bc337264a
- flags in blood's actor.cpp
...
plus a few others caught by search&replace.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
8e0b9f7ce6
- some automatic, some manual sprite flag replacements
2021-12-30 09:56:49 +01:00
Christoph Oelckers
82fb03e399
- another batch of search&replace, with smaller results.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
8f012d1beb
- made wall flags type safe
2021-12-30 09:56:47 +01:00
Christoph Oelckers
1883aad7c2
- flag names in SetupGibWallState and TranslateSector
2021-12-30 09:56:47 +01:00
Christoph Oelckers
adbf5177a7
- flag combo stuff.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b263c3ac6b
- wall and sprite flags in Duke, just simple cases.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
6e32832428
- made sector ceiling/floor flags type safe.
...
- made sector flags type safe.
2021-12-30 09:56:46 +01:00
Christoph Oelckers
b0e3c6b5ec
- some remaining sector flag stuff
2021-12-30 09:56:45 +01:00
Christoph Oelckers
d0a06ae961
- deal with most of CSTAT_SECTOR_SKY and CSTAT_SECTOR_SLOPE
2021-12-30 09:56:45 +01:00
Christoph Oelckers
1edccf1423
- added slope setter methods to sectortype.
...
To make sure that setting the slope flags is always done properly. (Why are the flags even needed?)
As a nice side effect, this, plus use of other inlines made the align*slope functions implode into virtually nothing.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
24a6d45f97
- minor slope math optimization.
...
May save one division and merges the '<< 5' into the main calculation.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
11f41a97d5
- made gotpic a FixedBitArray.
...
gets rid of some inline garbage.
2021-12-30 09:53:56 +01:00
Christoph Oelckers
5f18109371
- consolidated all getslope code into a single function.
...
This also caches a wall's length to avoid taking the square root every single time for a slope calculation.
2021-12-30 09:53:55 +01:00
Christoph Oelckers
bea394a734
- replace SW specific sector flags with the global ones.
2021-12-30 09:53:55 +01:00
Christoph Oelckers
dddf48fd3e
- cleaned up and renamed buildtypes.h.
...
Content was reordered so that the file can contain the inlines belonging to the map data types that previously had to be stored elsewhere.
Also moved out of the Build folder because virtually everything in here can be traced to content available in Duke Nukem 3D's and Shadow Warrior's source releases.
2021-12-30 09:53:46 +01:00
Christoph Oelckers
4a5de6f56e
- make sure that all changes of wall coordinates invalidate associated data.
...
walltype::move should be the preferred function to be used for this, otherwise walltype::moved needs to be called.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
0e6242626c
- removed the viewpoint from the clipper as we don't need this.
...
ClipWindow will go elsewhere, it has no place here.
2021-12-30 09:53:11 +01:00
Mitchell Richters
83000fab77
- Remove last remaining node builder code.
2021-12-30 09:53:11 +01:00
Mitchell Richters
95d60deecd
- Rename remaining hw_sections*.*
files to hw_sections.*
.
2021-12-30 09:53:11 +01:00
Mitchell Richters
520412075f
- Delete empty hw_sections.cpp
file.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
4700299fc6
- fixed bad assert.
...
This can indeed be called with both angles being identical and should accept this case.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
d1f088a858
- SW/Exhumed fixed sound relinking on actor destruction.
...
This still passed the sprites instead of the actors. Moved the relinking code to DCoreActor::Destroy because it is the same for all games.
Also did a little bit of sound cleanup to ensure the sound backend does not hold stale actor pointers.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
7c5080f654
- reimplemented sector splitting.
...
With the new setup this is a lot easier than with the old one.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
d46e3c87e0
- removed development output of the loop grouping code.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
fc41a2bd85
- renamed sections2 and sections2PerSector.
...
No more need for a '2'.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
f6d852b5a0
- removed the old section builder
2021-12-30 09:53:09 +01:00
Christoph Oelckers
b0e4b49771
- removed the node builder.
...
With libtess2 working we do not need this anymore.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
bb9313454d
- removed SectorGeometry class.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
7a9596ae81
- use SectionGeometry for 3D rendering.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
d8a3035bcc
- invalidate plane meshes when the sector is retriangulated.
...
After this any old mesh has become invalid and needs to be rebuilt.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
37e49ed775
After this any old mesh has become invalid and needs to be rebuilt.
...
- use only one Section type.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
8e01d559e8
- store sector as an index in Section2 and renamed walls to lines.
...
Now everything has the same name and type as in the old section.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
208ca4f783
- merge old SectionLine and new Section2Wall into one type and use the same global array.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
d353787d31
- add a global list of section walls.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
f8f6c345fc
- use index fields in Section2Wall.
...
There's little benefit of using pointers here - it inflates a critical render struct, does not make any code more readable and requires quite deep refactoring of hw_bunchdrawer.
Now, with all fields having the same tyoe and name a lot less code needs to be changed.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
a407e86ff6
- migrated automap to new SectionGeometry class.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
362b824775
- ClipWindow WIP
2021-12-30 09:53:08 +01:00
Christoph Oelckers
4364e68d05
- automap work to transition to new sections.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
411e3e6f9c
- make SectionGeometry create some data.
2021-12-30 09:53:07 +01:00
Christoph Oelckers
ca19c265f8
- interface from Section2 to the flat processing.
2021-12-30 09:53:07 +01:00
Christoph Oelckers
69593fd5c7
- Triangulation WIP
...
# Conflicts:
# source/core/sectorgeometry.cpp
2021-12-30 09:53:07 +01:00
Christoph Oelckers
449362dcb3
- better debug output.
2021-12-30 09:53:07 +01:00
Christoph Oelckers
a255e90c96
- more work on the new section creator.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
b1bf12df9d
- section fixes.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
ad018db80a
- new section builder.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
9397eb6a19
- automatically handle one specific case of bad wall loops.
...
Both RRRA E3L1.map and SW $yamato.map have this:
Wall x and Wall x+1 have identical properties and both reference Wall x+2 as point2.
The duplicate in this case can be safely deleted to make the sector well formed.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
a733de618f
- new section WIP.
2021-12-30 09:53:06 +01:00
Christoph Oelckers
1bf654036a
- delete duplicated walls in RRRA E1L3 and E1L6.
2021-12-30 09:48:50 +01:00
Christoph Oelckers
6db1ba47c2
- SW: fixed some savegame issues:
...
* the saveable tables were initialized too late when reading in the actors.
* the abort messages for the saveables did not show. We need to use I_FatalError here, plus some actor list modifications to make this work.
2021-12-26 23:10:07 +01:00
Mitchell Richters
a4d165a84e
- Tidy some specified bound equals destination size
warnings from GCC.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
9e94573ae3
- free the current level before taking down other things on exit.
...
Nor doing so can cause memory corruption when the object hierarchy gets deleted later which may still reference some stale data.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
7b14aacdf4
- match alignment of NPOT flat textures to the software renderer
...
Tested in RR E1L4, sector 224+40, probably needs more checking in other places as well to confirm that it is correct there as well.
2021-12-26 23:10:04 +01:00
Christoph Oelckers
5e09a43e91
- added auto-patcher for overlapping wall ranges.
...
This is for cases where the proper sector can be found by looking at the walls' point2 links.
2021-12-26 23:10:04 +01:00
Christoph Oelckers
fee8df8a1b
- fix range check for nextwall in map loader
2021-12-26 23:10:03 +01:00
Christoph Oelckers
177e84881e
- added a warning for multiple sectors referencing the same walls.
...
RR E3L1 contains such a setup, for example.
2021-12-26 23:10:03 +01:00
Mitchell Richters
14b8eda436
- Get rid of some now irrelevant comments.
2021-12-26 23:10:03 +01:00
Christoph Oelckers
106ec53d1f
- disabled sector splitter for now because it's broken and useless.
...
The entire section format needs to be redone for better triangulation so fixing this messy code is pointless.
2021-12-26 23:10:03 +01:00
Christoph Oelckers
74da3e5fa7
- added savegame support for the new actor management.
2021-12-26 23:10:03 +01:00
Mitchell Richters
2dda3ee505
- Tidy up some GCC warnings about ininitialised variables, memsetting non-trivial types and some others.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
b8c4354691
- got rid of the MAX... constants and adjusted all places still using them.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
1a3b9f8ac0
- made several arrays holding sector related data dynamic.
2021-12-26 23:10:02 +01:00
Christoph Oelckers
838bed7800
- final cleanup of sectnum related stuff.
...
Made sure that remaining uses of sector indices are safe to be kept and deleted a few redundant functions.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6d432fca0a
- made spritetype::sectnum a pointer.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
6a43a270fa
- use sectno() access function where we really need a sector index.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
2d913982da
- changed map loader to work without relying on spritetype::sectnum.
...
All access to this field is done through access functions now.
2021-12-26 23:10:01 +01:00
Christoph Oelckers
8ee5d1b0d7
- activated the garbage collector
...
This finally gets rid of all static storage for actors - so no more indices ever! :)
2021-12-26 23:10:00 +01:00
Christoph Oelckers
0dd756fa32
- added GC handling for all backend pointers in the map data.
...
GC is not active yet!
2021-12-26 23:10:00 +01:00
Christoph Oelckers
8dde6a3074
- Added GC support to Exhumed
2021-12-26 23:09:59 +01:00
Christoph Oelckers
38c8f2a3b8
- the last 16 bit limits in the new renderer.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
42e4e9288f
- deleted GetSpriteIndex.
...
It's not needed anymore.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
b0ecf7e87b
- unlimit the wall index in sections.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
a2e280e188
- use wallsofsector in 4 more places.
...
# Conflicts:
# source/build/src/polymost.cpp
2021-12-26 23:09:57 +01:00
Christoph Oelckers
588f88c9cc
- migrated the actors to DObjects.
...
No GC yet, only the classes have been altered and some GC-related features been added.
Full switchover will require adding GC support to all data in the game.
2021-12-26 23:09:57 +01:00
Christoph Oelckers
d088ab05a9
- eliminate storage of actors in the sector's hitag for some of Duke's sector effectors.
...
Also demoted Blood's upperLink and lowerLink to DCoreActor pointers and use static_cast for access to avoid savegame problems. The core code cannot safely serialize a DBloodActor anymore.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
ca10495d7c
- Blood: back up player state before ending the level, not just before loading the new one.
...
The latter is too late, the player's actor data may already be stale and invalid here.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
8a2385dd89
- actor clearing cleaned up.
...
We still need this until we can get rid of the static arrays...
2021-12-26 23:09:55 +01:00
Christoph Oelckers
c4d23188d5
- removed HitInfoBase::setFromEngine.
...
This value format no longer exists anywhere.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
cf9d733994
- deleted insertAllSprites.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
d3b1e34d78
- moved sprite[], spriteext[] and spritesmooth[] into DCoreActor.
...
Also removed the last remaining sprite pointer in saveable data.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
4cecb6f955
- removed the old actor savegame code and instead implemented a virtual Serialize function.
...
This isn't hooked up yet, currently savegames are non-functional. They will come back once the global actor arrays are no longer relevant for maintenance.
2021-12-26 23:09:55 +01:00
Christoph Oelckers
e79cd8d87f
- don't store sprite indices in walltype::portalnum
2021-12-26 23:09:54 +01:00
Christoph Oelckers
f855b1020f
- actor lists refactored.
...
No more shorts, no more static arrays.
This was one of the biggest blockers for unlimiting the engine.
2021-12-26 23:09:54 +01:00
Christoph Oelckers
eaff9e359f
- refactored the owner index in tspritetype.
...
This is now a separate type from spritetype which contains an actor pointer instead so that sprite display can be handled without requiring a static sprite array.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
793dd032b0
- getzrange cleanup.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
bcc532d36f
- eliminated the getzrange wrapper.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
2541425b9d
- getzrange is free of hack values, too.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
9d85859a80
- finally got rid of the 16 bit hack return value of clipmove.
2021-12-26 23:09:53 +01:00
Christoph Oelckers
183f554733
- hitscan cleanup.
...
Also removed a bit of leftover TROR code.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
8c90f48b61
- cleanup of neartag, plus direct return of a HitInfoBase struct.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
e13a275cfc
- got rid of the sole linear sprite iterator in Exhumed and deleted the iterator code entirely.
2021-12-26 23:09:52 +01:00
Christoph Oelckers
6600f55543
- separate map loading from actor spawning for the other games, too.
...
It still uses the horribly messed up original spawn logic, though.
2021-12-26 23:09:51 +01:00
Christoph Oelckers
a3493048e7
- refactoring of spawn code to prepare for the other games.
...
Map hacks do not work in this commit!
2021-12-26 23:09:51 +01:00
Christoph Oelckers
e543c70439
- replacement of BloodLinearSpriteIterator
...
Preparation for eliminating sprite[]. This array can later be created by the actual spawn function.
2021-12-26 23:09:51 +01:00
Mitch Richters
c6774d5efd
- Duke/RR: Re-add micro-movement cancellation for RR's vehicles that was dropped in 466bc84697
.
2021-12-26 23:09:50 +01:00
Christoph Oelckers
e223466f4a
- removed Interp_Sprite_Z.
...
This was redundant and interfered with the reworked automatic sprite interpolation.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
2654a19cfd
- got rid of setspritez(x) and moved the implementation to SetActor(Z) without referencing the sprite array.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
58cd933d74
- pass sprite array to map hack parser as parameter.
...
This will later allow it to work on temporaries.
2021-12-26 23:09:49 +01:00
Christoph Oelckers
5dfc79bdbe
- MarkSectorSeen
2021-12-26 23:09:48 +01:00
Christoph Oelckers
f9b1164747
- use point2Wall wherever possible.
2021-12-26 23:09:48 +01:00
Christoph Oelckers
83cf2f3baf
-more index stuff.
2021-12-26 23:09:48 +01:00
Christoph Oelckers
b663b8ea26
- wallptr reduction.
2021-12-26 23:09:48 +01:00
Christoph Oelckers
eb0f91e26b
- pass sector pointer to render_camtex.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
a22634f228
- sectnum reduction.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
4c13f24357
- rename FBunch's sectnum because it complicated searching for other stuff.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
97b19a5cb1
- adapted Blood's sound engine to using actors.
...
Note: Savegames won't work on this commit for the other games!
2021-12-26 23:09:45 +01:00
Christoph Oelckers
d33ae89c4a
- minor backend cleanup.
2021-12-26 23:09:45 +01:00
Christoph Oelckers
6cecd85cf6
- removed the deprecated interfaces from coreactor.h
2021-12-26 23:09:44 +01:00
Christoph Oelckers
b7a5ea8ef6
- moved some common utilities into the backend.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
bbb860ccf3
- consolidate the iterators in the backend.
...
Using a template class that can adapt to the game specific types.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
12f6b05cbe
- use access functions, all done by search & replace.
2021-12-26 23:09:44 +01:00
Christoph Oelckers
6748a39c8f
- deprecate the sector index variant of pushmove
2021-12-26 23:09:43 +01:00
Christoph Oelckers
2aefe4398b
- sector[tspr->sectnum] globally replaced.
2021-12-26 23:09:43 +01:00
Christoph Oelckers
70d7e81f4f
- adapted getzrange to the new interface.
...
This was mainly removing game side solutions in favor of a common one in the backend.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
91e2391911
- adapted neartag in Duke.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
b3bbf8932e
- same procedure for Exhumed.
2021-12-26 23:08:58 +01:00
Christoph Oelckers
4788c7ba5e
- made Collision derive from a common base class and refactored clipmove to a single engine-side entry point.
...
Done for Doom so far.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
96b9572905
- moved parts of the HitInfo subclasses into the backend.
...
All the game code now needs to do is a single 'using' statement.
2021-12-26 23:08:57 +01:00
Christoph Oelckers
3f43f48b57
- adapted all SW hitscan calls outside of FAFhitscan.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
129ce0aea8
- migrated Blood's hitscan calls and its global gHitInfo struct.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
9380819e4e
- initialize actorArray for all games.
...
- the foundation for an actor aware backend.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
52c80f187a
- added coreactor.h
2021-12-26 23:08:55 +01:00
Christoph Oelckers
fe3a02420a
- major cleanup and condensing of DoSlidorInterp
...
The logic here still looks very weird but let's keep it to ensure proper functioning.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
41506f35db
- calcviewpitch
2021-12-26 23:08:40 +01:00
Christoph Oelckers
443cfc991c
- actSpawnSprite, ZONE, startsectnum and dbLoadMap
2021-12-25 21:29:15 +01:00
Christoph Oelckers
063e3fb34e
- changed parameters of several modern action functions.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
40ae38c173
- calcChaseCamPos.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
109ff8c3cb
- Above and Below
2021-12-25 21:29:01 +01:00
Christoph Oelckers
5e01841f1e
- MoveSector et.al.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
0b254255e2
- sector ambience
2021-12-25 21:28:59 +01:00
Christoph Oelckers
4928187b02
- handle the RR geometry hack
2021-12-25 21:28:57 +01:00
Christoph Oelckers
714b5ac872
- movesprite handled
2021-12-25 21:28:56 +01:00
Christoph Oelckers
3bd1272e08
- sectnum removal step
2021-12-25 21:28:56 +01:00
Christoph Oelckers
fcbf861ad4
- final preparations for changing type of cursectnum
2021-12-25 21:28:55 +01:00
Christoph Oelckers
22b2f64016
dukeplayer stuff
2021-12-25 21:28:55 +01:00
Christoph Oelckers
323b5441d5
— New utilities for better abstraction added.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
14613f2f50
- fixed: ValidateSprite did not clear bugged sprites if debug output was enabled.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
b30be9bc12
- unlimited blockingpairs
2021-12-25 21:28:50 +01:00
Christoph Oelckers
1665e340be
- serialization support for BitArray.
2021-12-25 21:28:50 +01:00
Christoph Oelckers
d5c27e6239
- unlimited the bit arrays for the automap and the bunch drawer, removed some leftover constants/declarations.
2021-12-25 21:28:50 +01:00
Christoph Oelckers
8cca55c24a
- made wall a TArray.
2021-12-25 21:28:50 +01:00
Christoph Oelckers
7d2404ce76
- made sector a TArray.
2021-12-25 21:28:49 +01:00
Christoph Oelckers
a21f6b6240
- migrated Exhumed's sector extensions to the actual struct.
2021-12-25 21:28:49 +01:00
Christoph Oelckers
993821b75f
- migrated Blood's other non-X sector properties.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
f7e61eeef7
- migrated Blood's portal links into sectortype.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
14907a9a97
- sector extension basics.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
94a37dfcdc
- extended walltype to directly manage Blood's XWALL.
...
Unfortunately this had to be done in the base class so that we can still maintain the walls in a global array.
The tradeoffs of better abstractions would be far too costly here than the added 16 bytes to the wall struct.
2021-12-25 21:28:47 +01:00
Christoph Oelckers
6705e8e51e
- moved xsprite into DBloodActor and save all relevant parts of DBloodActor.
...
This completes Blood's transition.
2021-12-25 21:28:37 +01:00
Christoph Oelckers
999ec3c95a
use validSectorIndex checks where appropriate.
...
Let’s hope that this sloppiness doesn’t have negative effects with broken maps.
# Conflicts:
# source/games/sw/src/sprite.cpp
# Conflicts:
# source/games/duke/src/prediction.cpp
# source/games/duke/src/render.cpp
2021-12-25 21:28:37 +01:00
Christoph Oelckers
910c0e61ca
- Added Raze-specific application data search path for macOS.
2021-12-15 21:30:46 +01:00
Christoph Oelckers
eeabe0fe6d
- fixed culling of mirrored voxels for real this time.
2021-12-15 21:19:42 +01:00
Christoph Oelckers
8cb871e5ff
- fixed: voxel culling must take sprite flipping into account.
2021-12-14 13:43:24 +01:00
Christoph Oelckers
0c83d299f2
- removed compat.h entirely, all that was left was redundant #includes.
2021-12-14 12:27:41 +01:00
Christoph Oelckers
7daa501a4d
- removed all #include "compat.h" except the one in build.h
...
Still all compiles fine.
2021-12-14 12:24:10 +01:00
Christoph Oelckers
7e2431ebd8
- replaced the remaining content from compat.h
2021-12-14 10:15:58 +01:00
Christoph Oelckers
016a907c20
- replaced vec2_t with FVector2.
2021-12-14 10:07:06 +01:00
Christoph Oelckers
7546cf3a4b
- replaced vec3f_t with FVector3.
2021-12-14 09:58:01 +01:00
Christoph Oelckers
a899055f50
- fixed: in palette emulation mode, assume all textures to be non-translucent.
...
These need to force an alpha test, which is disabled for textures with translucent texels.
2021-12-13 10:35:03 +01:00
Mitchell Richters
2253a418c7
- Tidy up some of the indentations that were badly resolved in the previous commits merge conflict.
2021-12-13 07:39:01 +11:00
Christoph Oelckers
054d81fc8e
- fixed logic for discarding walls in new renderer.
...
The case being checked here may decide not to add the wall to the clipper but it must still be rendered.
Information for determining visibility is not sufficient in case of sector overlaps which can happen with rotating doors or poorly set up sector objects.
# Conflicts:
# source/core/rendering/scene/hw_bunchdrawer.cpp
2021-12-12 19:40:17 +01:00
Christoph Oelckers
c2f29b8849
- fixed OOB write in section splitting code.
2021-12-12 09:42:45 +01:00
Christoph Oelckers
387a03c7ee
- fixed triangulation via node builder for sectors with invalid walls.
...
The array indices were not properly adjusted for the missing elements an
2021-12-12 00:23:35 +01:00
Emile Belanger
9501215ef2
Revert "- disabled palette emulation for the GLES backend."
...
This reverts commit 8d9d3d5f8f
.
2021-12-11 13:23:39 +01:00
Christoph Oelckers
10c6fde8d6
- reordered the init calls in engineLoadBoard.
...
sprite lists must be done after preparing the arrays, otherwise important bits get overwritten.
2021-12-11 12:51:07 +01:00
Mitchell Richters
853aab5513
- Update version.h
.
2021-12-10 17:40:18 +11:00
Mitch Richters
cb91e23c75
- Clamp the return value in PitchToHoriz()
between the range of an INT32 value, and fix some math in the PitchToBAM()
and BAMToPitch()
inlines.
2021-12-07 19:59:30 +11:00
Mitch Richters
acf38f7a21
- Make a number of CVARs in gamecvars.cpp
saved as part of the global config.
...
Full list:
* `cl_weaponsway`
* `cl_viewbob`
* `cl_interpolate`
* `cl_slopetilting`
* `cl_showweapon`
* `cl_syncinput`
* `cl_hudinterpolation`
* `cl_loadingscreens`
2021-12-07 19:59:26 +11:00
Christoph Oelckers
c2baa68160
- fixed camera textures breaking in SW when restarting a level.
...
This was caused by attempting to delete the camera textures when cleaning up the mirror array.
The Build tile manager was not prepared for such a use case and left a broken texture behind.
To allow this to function it now resets the texture replacement type when deleting a tile and to avoid creating new camera textures these will now be stored in a cache and recycled later.
2021-12-02 21:40:43 +01:00
Christoph Oelckers
f765783437
- various small bits of cleanup.
2021-11-29 00:57:11 +01:00
Christoph Oelckers
e59d976691
- added .ssi to the list of known extensions for container files.
2021-11-29 00:57:11 +01:00
Christoph Oelckers
1de9c63d45
- fixed center aligned rendering of 2D content.
...
This calculates the centered pivot point in integer texel coordinate space so for odd numbers it must round down instead of using a fractional position.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
6cec61683d
- fixed incorrectly placed tileUpdatePicnum call in new renderer for sprites.
...
This was only in the regular sprite call and did not affect models or voxels.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
18d1084f7c
- fixed assignment of map hacks with multiple maps assigned.
...
The parser only ever added the last MD4 but not the others.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
35c2d6d14e
- fixed translucent voxel rendering.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
793aaf242c
- make upscaling of sky textures depend on the single tile size, not the entire composite texture.
2021-11-29 00:57:10 +01:00
Christoph Oelckers
2d806d415a
- clear interpolations when starting a new map.
2021-11-29 00:57:09 +01:00
Mitch Richters
ca0464c139
- Change out of box default of cl_runmode
to 0, which allows the bound run key to act like an autorun negator.
...
* Requested in https://forum.zdoom.org/viewtopic.php?f=342&t=73031 .
2021-11-29 00:56:32 +01:00
Mitch Richters
8fefead4e5
- Remove cancellation of quick turn if mouse/keyboard/controller angle input is detected that was introduced in 2129d3b4e7
.
...
* Requested in https://forum.zdoom.org/viewtopic.php?f=342&t=73231
* Neither EDuke32 nor GZDoom do this, so the rationale is we shouldn't either.
2021-11-29 00:56:32 +01:00
Christoph Oelckers
cd3288860a
- fixed automap player drawing for follpw mode off in all games.
2021-11-29 00:56:32 +01:00
Christoph Oelckers
fcbb7320a8
- Duke/RR: added all checks needed for not letting Duke crash with noclip when not accepting -1 as a valid sector pointer.
...
All places that were causing a crash are now guared by calling 'insector()'.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
baf36a321b
- inside, haskey and removed unused processmove functions.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
9b6d6eb7f9
- sector[] in render interface
2021-11-29 00:56:30 +01:00
Christoph Oelckers
a7634c4cad
- Duke: use pointers in interpolation interface.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
adf3133fdc
- use sectnum and wallnum to get an index from pointers instead of subtracting the array base.
2021-11-29 00:56:26 +01:00
Christoph Oelckers
4e31360fe4
- cleaned up dragpoint
...
This still contained some code for EDuke32's TROR and used a shared static global array.
It now uses the BFSSearch class to manage its bit array to unlimit the size of its working set and to avoid reallocation.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
7126aa22f4
- preparations in the map loader for dynamically sized data storage.
...
This also consolidates these parts for Blood with the other games.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
c410b1be45
- glass stuff
2021-11-29 00:56:21 +01:00
Christoph Oelckers
7111b2470c
- SW: use BFSSearch in TraverseBreakableWalls
2021-11-29 00:55:45 +01:00
Christoph Oelckers
2a51e5eca3
- fixed: BFSSearch did not mark its start sector as added.
...
As a result it could be added twice.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
6fc43287b3
- redid Exhumed's BelowNear function.
...
Use BFSSearch, only run one iteration of the search and only run the search if the result is actually used.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
12c26976f0
- GetClosestSpriteSectors: replace distance calculation with proper math.
...
No need to sample multiple points along the wall if we can just properly calculate the actual distance. :)
2021-11-29 00:55:44 +01:00
Christoph Oelckers
d2f0934726
- Blood: cleaned up GetClosestSpriteSectors
...
using BFSSearch now and avoiding pointless loop to avoid setting the checked bit.
The entire outcome was just as if the bit was never checked inside the loop, so do just that when not running in compatibility mode.
This simplifies the remaining code quite a lot because it now just needs to run over all walls with no special case considered.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
b685163ab1
- Blood: extend all 16 bit fields holding sector or wall indices to 32 bit.
2021-11-29 00:55:41 +01:00
Christoph Oelckers
5bb805663e
- Duke/RR: cleaned up the rest of hitradius* as well
...
Using wallsofsector iterator plus defining local variables more locally.
2021-11-29 00:55:40 +01:00
Mitch Richters
da7de8f1d8
- Harden the skill
CCMD to test for valid skill range for loaded game, not the maximum size of the gSkillNames[]
array which may not be completely filled. Also print valid skill names in addition to numbers to help the user.
2021-11-29 00:55:40 +01:00
Christoph Oelckers
821f341e03
- use BFSSearch in hitradius_d
2021-11-29 00:55:39 +01:00
Christoph Oelckers
a29e6c084a
- BFSSearch class added
...
This was prompted by a bug that was recently introduced in one of the ad-hoc implementations of such a search.
Let’s better use a helper class to deal with the problems and help unify memory usage.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
ad030d7e23
- Duke: SE20 + SE128 are wall-free
...
Also use symbolic constantfor SE_128 to make it easier to find.
2021-11-29 00:55:39 +01:00
Christoph Oelckers
58a091067f
- use provided sector/wall iterators in cacheit functions
2021-11-29 00:55:39 +01:00
Mitch Richters
2a7d0e6fe3
- gi->AddExcludedEpisode()
: Pass FString variable through as reference instead of by value.
2021-11-29 00:55:31 +01:00
Mitch Richters
974ca7bd1d
- Remove a lot of reference values on primitive data types from Blood's QAV interpolation system. Also use move assignments on the ignoredata
TMap when we're adding it to the game-side after processing it.
2021-11-29 00:55:31 +01:00
Christoph Oelckers
01abe7b2ac
- addressed most unused/uninitialized variable warnings from MSVC.
2021-11-29 00:55:30 +01:00
Christoph Oelckers
f7fdc5af41
- address several warnings reported by GCC 11.
2021-11-29 00:55:29 +01:00
Mitch Richters
1906de5d0c
- Adjust PlayerHorizon
and PlayerAngle
struct member scaletozero()
to consistently return to zero at the same speed for synchronised and unsynchronised input at any framerate from 60 fps to at least 1000 fps.
2021-11-29 00:55:15 +01:00
Mitch Richters
e491d15ff9
- Move InputScale()
out of inputstate.cpp and into i_time.cpp
as I_GetInputFrac()
to make it available to GZDoom for potential future requirements.
...
* As part of this, feed the output of `I_GetInputFrac()` to `gi->GetInput()` instead of having each game's virtual override calling it locally.
2021-11-29 00:55:01 +01:00
Christoph Oelckers
b7465ab67b
- spriteGetSlope/spriteSetSlope take spritetype pointer arguments.
2021-11-29 00:53:41 +01:00
Mitch Richters
1228cb6044
- InputState::AddEvent()
: Partially revert changes performed in 4d629e7de8
that were believed not necessary. This functionality is still needed in some of Exhumed's cutscenes that are performed in-engine and not as a screenjob.
2021-11-19 08:11:32 +11:00
Mitch Richters
4d629e7de8
- Make screenjob valid keys for skipping ignore the Alt key as its used for modifiers, and special keys like the screenshot bind.
...
* Partially revert 8bb13bc4c2
as its changes are no longer needed.
* Partially revert 9e40e49c2c
as its changes are no longer needed.
* Fixes #577 .
2021-11-18 20:59:07 +11:00
Mitch Richters
719724da53
- Ensure g_nextskill
is re-initialised everytime a save is loaded.
...
* Fixes #582 .
2021-11-18 20:06:33 +11:00
Christoph Oelckers
8f19dc12d8
- SW: code/data pointer saving cleanup.
...
* a large number of code pointer records were removed because none of these functions ever gets assigned to a pointer
* instead of looking up entries by index, do it by name. This is far less fragile and will survive deeper refactoring. The old storage by table index will break as soon as a single entry gets removed.
Since the old savegames got broken due to this problem recently it was a good time to change the setup.
2021-11-11 23:28:28 +01:00
Christoph Oelckers
a79f7a3784
- SW: use a dynamic array to track already visited sectors in TraverseBreakableWalls.
2021-11-11 21:57:55 +01:00
Christoph Oelckers
642088ed80
- let ValidateSprite print better messages when developer mode is set to warning and also call it for Blood.
2021-11-11 21:28:53 +01:00
Mitch Richters
6581d9d709
- InputScale()
: Tidy up some math I just put in.
...
* Time for bed... *yarns*.
2021-11-10 22:23:59 +11:00
Mitch Richters
3c4afaa6ee
- InputScale()
: Add enabled-by-default scaler to returned value from function to correct drift that occurs as the frame-rate increases, taking into account different scaling ratios needed for differing ticrates.
2021-11-10 20:27:19 +11:00
Mitch Richters
5a33caa635
- InputScale()
: Add enabled-by-default scaler to returned value from function to correct drift that occurs as the frame-rate increases, taking into account different scaling ratios needed for differing ticrates.
2021-11-10 20:13:06 +11:00
Christoph Oelckers
94b2b0af31
- widen sector index in engineLoadBoard to 32 bit
2021-11-09 00:07:00 +01:00
Christoph Oelckers
a5f51cfd88
- SW: migrate everything to the main clipmove function
2021-11-08 23:11:30 +01:00
Christoph Oelckers
5ba005276f
Revert "- redid the 'inside' function."
...
This reverts commit c034c2a299
.
While the function works, it is subtly different for points exactly on a line - enough to cause problems with Shadow Warrior's waypoint implementation.
2021-11-08 23:11:20 +01:00
Christoph Oelckers
c034c2a299
- redid the 'inside' function.
...
This is based on external information and does not use any of the original Build code.
Despite being a lot clearer than Build's bit masking voodoo and using 64 bit math to avoid overflows it is roughly 10% faster. :)
Code was moved to gamefuncs.cpp because this no longer falls under the Build license.
2021-11-08 21:29:21 +01:00
Christoph Oelckers
eeaa7f98f0
- inlines for validating sector and wall indices.
2021-11-08 18:56:10 +01:00
Christoph Oelckers
5d0c9a9fc8
- flush the network timer righr after loading and before starting a level.
...
Without this the entire load time may get registered as skipped frames-
2021-11-07 22:51:02 +01:00
Christoph Oelckers
60faceaf59
- Exhumed: fixed serialization.
...
The exhumedActors array was not written out, resulting in all kinds of strange effects.
2021-11-07 21:45:51 +01:00