Christoph Oelckers
41e003c831
- the remaining x() in actor.cpp.
2021-12-30 09:57:11 +01:00
Christoph Oelckers
bc42978295
- x() in actor.cpp callbacks.
2021-12-30 09:57:11 +01:00
Christoph Oelckers
bd07313017
- almost the last x() in actor.cpp.
2021-12-30 09:57:11 +01:00
Christoph Oelckers
692a269d92
- still more x() in actor.cpp.
2021-12-30 09:57:11 +01:00
Christoph Oelckers
3f65aee70b
- even more x() in actor.cpp.
2021-12-30 09:57:10 +01:00
Christoph Oelckers
3201f85ab9
- yet more x() in actor.cpp.
2021-12-30 09:57:10 +01:00
Christoph Oelckers
a1b2d4a21e
- more x() in actor.cpp.
2021-12-30 09:57:10 +01:00
Christoph Oelckers
ffeb52198a
- lots of ->x() calls removed in actor.cpp.
2021-12-30 09:57:10 +01:00
Christoph Oelckers
6e0128eb4c
- handle the remaining uses of s() in actor.cpp
2021-12-30 09:57:10 +01:00
Christoph Oelckers
b91fe45fc3
- handled all pSprite-> in actor.cpp.
2021-12-30 09:57:10 +01:00
Christoph Oelckers
27e9894ece
- handled all parts of actor.cpp which are not "pSprite = &actor->s();"
2021-12-30 09:57:10 +01:00
Christoph Oelckers
88c77ec71a
- some pSprite2's plus CheckSector.
2021-12-30 09:57:09 +01:00
Christoph Oelckers
fbb8f1ee70
- pSprite replacements in blood/src/actor.cpp
2021-12-30 09:57:09 +01:00
Christoph Oelckers
a87948677a
- globally replaced ->x(). with ->xspr.
2021-12-30 09:57:09 +01:00
Christoph Oelckers
a2fc415b30
- fixed Exhumed panning setup.
...
Converted it to floating point and removed the nonsensical & with the texture size that was clearing significant bits.
2021-12-30 09:57:09 +01:00
Mitchell Richters
6423684bfb
- SW: Replace PLAYERstruct
oposz
with opos.Z
calls.
2021-12-30 09:57:09 +01:00
Mitchell Richters
a2f2cc489a
- SW: Replace PLAYERstruct
oposy
with opos.Y
calls.
2021-12-30 09:57:08 +01:00
Mitchell Richters
ae50767c70
- SW: Replace PLAYERstruct
oposx
with opos.X
calls.
2021-12-30 09:57:08 +01:00
Mitchell Richters
05a4ad4729
- SW: Replace PLAYERstruct
posz
with pos.Z
calls and eliminate PLAYERstruct
pos
union.
2021-12-30 09:57:08 +01:00
Mitchell Richters
ae3369d2a3
- SW: Replace PLAYERstruct
posy
with pos.Y
calls.
2021-12-30 09:57:08 +01:00
Mitchell Richters
3a0ee322ae
- SW: Replace PLAYERstruct
posx
with pos.X
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
3adf81e4f9
- Duke: Replace player_struct
oposz
with opos.Z
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
111aa16e64
- Duke: Replace player_struct
oposy
with opos.Y
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
0e897c29b0
- Duke: Replace player_struct
oposx
with opos.X
calls.
2021-12-30 09:57:07 +01:00
Mitchell Richters
dd0ff465b0
- Replace spritetypebase
oz
with opos.Z
calls and eliminate spritetypebase
opos
union.
2021-12-30 09:57:07 +01:00
Mitchell Richters
a79b4b5ffc
- Replace spritetypebase
oy
with opos.Y
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
e0fb92bb01
- Replace spritetypebase
ox
with opos.X
calls.
2021-12-30 09:57:06 +01:00
Mitchell Richters
baf78848eb
- Replace spritetypebase
z
with pos.Z
calls and eliminate spritetypebase
pos
union.
2021-12-30 09:57:06 +01:00
Mitchell Richters
cecb8dc48e
- Replace spritetypebase
y
with pos.Y
calls.
2021-12-30 09:57:05 +01:00
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
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
e0e6efe0a0
- Exhumed: fixed some sound source issues.
2021-12-30 09:57:01 +01:00
Christoph Oelckers
3221ecf800
- refactored xsprite use in aibat.cpp.
2021-12-30 09:57:01 +01:00
Christoph Oelckers
6f9484a9ee
- fixed compilation on GCC.
...
error: operands to ?: have different types ‘std::nullptr_t’ and ‘TObjPtr<Duke3d::DDukeActor*>’
2021-12-30 09:57:01 +01:00
Christoph Oelckers
33a00869d8
- shortened the name of DBloodActor::xsprite to xspr.
2021-12-30 09:57:01 +01:00
Christoph Oelckers
f8171ac5d9
- eliminate pSprite pointers in aibat.cpp.
2021-12-30 09:57:01 +01:00
Christoph Oelckers
d9d05e90b5
- globally replaced all occurences of '->s().' with '->spr.'
2021-12-30 09:57:00 +01:00
Christoph Oelckers
1240818122
- getting rid of DDukeActor::s, final part.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
f216857f55
- Getting rid of DDukeActor::s, part 1.
2021-12-30 09:57:00 +01:00
Christoph Oelckers
99507ed048
- spawn_d.cpp
2021-12-30 09:57:00 +01:00
Christoph Oelckers
df2fc596f9
- spawn.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
45a2b9766e
- sectors_r.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
d532c496f1
- sectors_d.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
f816f2fb22
- ->s in non-gameplay files.
2021-12-30 09:56:59 +01:00
Christoph Oelckers
edf3fd0f82
- premap_r.cpp + dependencies.
2021-12-30 09:56:59 +01:00
Christoph Oelckers
1f40dfa411
- premap.cpp + premap_d.cpp
2021-12-30 09:56:59 +01:00
Christoph Oelckers
e76e28cdea
- the rest of player_r.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
0768c9e8b6
- non 'actor' parts of player_r.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
de22c8ca26
- 's->' in player_d.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
6b675cc849
- non 'actor' parts of player_d.cpp
2021-12-30 09:56:58 +01:00
Christoph Oelckers
b55e04d455
- game_misc.cpp + gameexec.cpp.
2021-12-30 09:56:58 +01:00
Christoph Oelckers
a982c7e590
- player.cpp + noise.cpp.
2021-12-30 09:56:58 +01:00
Christoph Oelckers
c0ea208ba3
- animatesprites_d.cpp and animatesprites_r.cpp.
2021-12-30 09:56:57 +01:00
Christoph Oelckers
9eb7c536ab
- the rest of actors_r.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
7d5cf6e631
- first third of actors_r.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
8ff53eae7d
- second half of actors_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
f1e608685e
- more parts of actor_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
b7a4c484e9
- large block of s = actor->s; in actors_d.cpp
2021-12-30 09:56:57 +01:00
Christoph Oelckers
44895411b9
- a large block of 'act->s' in actors_r.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
8dcc128697
- deal with 'spri = actor->s;'
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0df97f00ec
- the remaining 's's in actor.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
f5151e31a5
- globally replaced all 's->' with 'actor->spr.' in duke/src/actors.cpp.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
55cb5aaac6
- global search & replace of ->s-> with ->spr.
...
This is the largest part of uses of DDukeActor's 's' pointer.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0284ec1cb0
- replacement of DDukeActor::s and pointers to DCoreActor::spr, part 3.
2021-12-30 09:56:56 +01:00
Christoph Oelckers
0f7024e70e
- replacement of DDukeActor::s and pointers to DCoreActor::spr, part 2.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
997c12f67a
- replacement of DDukeActor::s and pointers to DCoreActor::spr.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
c16b090fbe
- Exhumed: clear lasthitsect when starting a new level.
2021-12-30 09:56:55 +01:00
Christoph Oelckers
e42c3afbea
- Exhumed: fixed trap setup.
...
Must clear the structure before the first return and iterate over the walls by reference, otherwise bad pointers will get copied.
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
156369ac8a
- Blood: don't crash when cultists accidentally target themselves.
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
4904466fd6
- SW: forgot to enable the extended sector parts in CallbackSOsink.
...
That bit had somehow gone MiA.
2021-12-30 09:56:53 +01:00
Christoph Oelckers
b021aa9a02
- SW: don't try to render non-existent mirrors with Polymost.
...
We got a counter variable, WTF did this code not use it?
2021-12-30 09:56:53 +01:00
Christoph Oelckers
68c87db6ec
- SW: fixed crash in Polymost with badly set up cameras.
2021-12-30 09:56:52 +01:00
Mitchell Richters
1e63c8305b
- Fix build issues under GCC.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
986fccfddc
- use symbolic constants for all places where globalorientation is checked for the alignment bits.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
5ff36f491e
- fixed the remaining places where the compiler complained about cstat.
2021-12-30 09:56:51 +01:00
Christoph Oelckers
8b427e35c2
- stuff that needs FromInt
2021-12-30 09:56:51 +01:00
Christoph Oelckers
955996dddc
- the rest of Blood's flags, part II
2021-12-30 09:56:50 +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
8039d81467
- the remaining Exhumed flags.
2021-12-30 09:56:50 +01:00
Christoph Oelckers
988a91904a
- a large of Exhumed flags, most search& replace plus a few local variable types.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
2d648924e8
- the final Duke flags.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
e02f4d8fd1
- randomFlip stuff.
...
To avoid casting from int to flags.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
8f0f0e8816
- manual sprite flag replacements in Duke.
2021-12-30 09:56:49 +01:00
Christoph Oelckers
8e0b9f7ce6
- some automatic, some manual sprite flag replacements
2021-12-30 09:56:49 +01:00
Christoph Oelckers
ace01d02bc
- alignment flags and a few leftovers.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
82fb03e399
- another batch of search&replace, with smaller results.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
c5ae454207
- another big batch of automatic replacements.
2021-12-30 09:56:48 +01:00
Christoph Oelckers
5b65e214e0
- global search & replace of the more frequent sprite flag patterns.
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
8fab2e1020
- fix bad flag management in usePropertiesChanger
...
Not sure if this is 100% correct, but the old code definitely wasn't.
2021-12-30 09:56:47 +01:00
Christoph Oelckers
76e944053b
- the (few) numeric flag literals in SW handled.
...
Virtually all of this was portal hackery.
2021-12-30 09:56:47 +01:00
Christoph Oelckers
d24b8d9ec8
- most wall flags in Blood.
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
98f0886b3d
-Duke/RR: Automatic replacement for CSTAT_SPRITE_INVISIBLE and CSTAT_SPRITE_BLOCK_ALL
2021-12-30 09:56:45 +01:00
Christoph Oelckers
8d0013128e
- Exhumed: use symbolic constant CSTAT_SPRITE_INVISIBLE
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
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
Mitchell Richters
95d60deecd
- Rename remaining hw_sections*.*
files to hw_sections.*
.
2021-12-30 09:53:11 +01:00
Christoph Oelckers
46d7487a3b
- SW: clear all pointer variables the player may still hold when terminating a level.
2021-12-30 09:53:10 +01:00
Christoph Oelckers
34bee8116c
- SW: fixed uninitialized variable in FAFhitscan
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
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
bb9313454d
- removed SectorGeometry class.
2021-12-30 09:53:09 +01:00
Christoph Oelckers
4364e68d05
- automap work to transition to new sections.
2021-12-30 09:53:08 +01:00
Christoph Oelckers
a733de618f
- new section WIP.
2021-12-30 09:53:06 +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
Christoph Oelckers
ae622274bd
- SW: clear pointer holding variables in TerminateLevel.
...
Some survive the level transition and would point to invalid data.
2021-12-26 23:10:07 +01:00
Christoph Oelckers
a4ff7e5bd4
- SW: added some null checks to the SO interpolation code.
...
It looks like this was able to access deleted sprites - by only checking for the index this never registered as a problem, but with pointers it does.
2021-12-26 23:10:07 +01:00
Mitchell Richters
4562a0ca97
- SW: Add some nullptr checks to some inlines to prevent noclip crashes.
2021-12-26 23:10:06 +01:00
Mitchell Richters
3b099e09cd
- SW: Tidy some ‘newsect’ may be used uninitialized
warnings from GCC.
2021-12-26 23:10:06 +01:00
Mitchell Richters
9e51f911ab
- Blood: Clear writing to an object of type ‘class TObjPtr<Blood::DBloodActor*>’ with ‘private’ member ‘TObjPtr<Blood::DBloodActor*>::<anonymous>’
warning under GCC.
2021-12-26 23:10:06 +01:00
Mitchell Richters
2f567bdb74
- Exhumed: Fix two signed/unsigned comparison warnings in PlayFX2()
.
...
* Lines in question:
** 606 | if (chan->SoundID == nSound + 1)
** 621 | if (chan->SoundID == nSound + 1)
* All data sent to `PlayFX2()` and functions that wrap `PlayFX2()` are signed values, so keep signed all the way through.
2021-12-26 23:10:06 +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
b89bba5ed1
- Duke: DDukeActor::setActiveCrane must also clear ownerActor.
...
Apparently something in the crane code can cause a condition where this wasn't cleared before grabbing a player.
Formerly these two were the same variable but had to be separated.
2021-12-26 23:10:05 +01:00
Christoph Oelckers
d8ccfa1a5f
- cleaned up nextsectorneighborz, added a safe variant and use this in all places where the sector pointer is not validated.
2021-12-26 23:10:05 +01:00
Mitchell Richters
18bd2e4d07
- SW: Destroy actor in KillActor()
after clearing the pointed to sprite, not before it.
...
* No idea if it matters but it seems logical that this is how it should be.
2021-12-26 23:10:05 +01:00
Mitchell Richters
65a55d3589
- SW: Tidy up function declarations where return type was on its own line.
2021-12-26 23:10:05 +01:00
Mitchell Richters
953c7e4ed6
- Blood: Fix some collision issues found following refactoring.
...
* Originating from 9a2ca3f392e29fe8df4167c271a7b04ab5e8959c "- use refactored Collision struct and clipmove in Blood, too.".
2021-12-26 23:10:04 +01:00
Christoph Oelckers
b4a968841a
- missing null check in Blood's map loader.
2021-12-26 23:10:04 +01:00
Mitchell Richters
14b8eda436
- Get rid of some now irrelevant comments.
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
db240ea2b0
- GC support in SW.
...
- SW GC WIP
2021-12-26 23:10:00 +01:00
Christoph Oelckers
6cb260d916
- SW GC preparation commit noise.
2021-12-26 23:10:00 +01:00
Christoph Oelckers
1d371b8cbf
- clear some data on init.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
8dde6a3074
- Added GC support to Exhumed
2021-12-26 23:09:59 +01:00
Christoph Oelckers
138690d34e
- do not use auto to make local copies of TObjPtr's.
...
This will just copy the object without performing the read barrier on the source data which is not what we want here.
For these assignments the type must be explicit.
2021-12-26 23:09:59 +01:00
Christoph Oelckers
16a8746971
- GC setup for Blood.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
fa62b20d76
- GC setup for Duke.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
5d09748af9
- Duke: added some null pointer checks.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
42e4e9288f
- deleted GetSpriteIndex.
...
It's not needed anymore.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
382689e0a7
- moved the FireProj struct into DDukeActor to avoid the rather expensive TMap code.
...
Later this can be moved to a dedicated subclass.
2021-12-26 23:09:58 +01:00
Christoph Oelckers
30786360bb
- derive spritetype and tspritetype from a common base class to consolidate their common content.
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
8606045689
- Duke: made gamevars type safe and capable of managing actor pointers.
...
Also a few unrelated changes needed to make it compile again.
2021-12-26 23:09:56 +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
122a1f009d
- moved gamevar storage to player and actor objects respectively.
...
For actors this eliminates the need to for sprite indices which was the intended goal. It also properly associates the gamevars with their owners.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
fa05cfbaf1
- use a real pointer in DSWActor for owner tracking.
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
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
183f554733
- hitscan cleanup.
...
Also removed a bit of leftover TROR code.
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
8c298de114
- Duke: replaced DukeLinearSpriteIterator and explicit loops over the sprite[] array.
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
ec888c097c
- Blood: separated actor spawning from map loading.
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
Mitchell Richters
0c6e55d1b8
- Silence all the -Wuninitialized
and -Wmaybe-uninitialized
warnings relating to HitInfo
objects passed through to functions by reference.
2021-12-26 23:09:50 +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
363d062685
- minor sanity check improvements.
2021-12-26 23:09:50 +01:00
Mitch Richters
12a0f587a3
- SW: Add nullptr check inside WarpSectorInfo()
to prevent crashes while noclipping through level.
2021-12-26 23:09:50 +01:00
Mitch Richters
10e28b8a53
- SW: Add nullptr check inside ActorTrackDecide()
for walltype's nextSector()
to prevent crashes while noclipping through level.
2021-12-26 23:09:49 +01:00
Mitch Richters
5085dcd866
- SW: Add nullptr check inside DoPlayerHorizon()
for canslopetilt
to prevent crashes while noclipping through level.
2021-12-26 23:09:49 +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
6773fa2189
- removed unused InitLists function.
...
# Conflicts:
# source/build/src/engine.cpp
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
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
34373e9c70
- fixed use of wrong indexing function.
2021-12-26 23:09:47 +01:00
Christoph Oelckers
73243f95bb
- make Blood's burn source a pointer.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
3a44f168e0
- Blood: Fix DeleteSprite
2021-12-26 23:09:46 +01:00
Christoph Oelckers
9213eae606
- deleted unused functions.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
a59173ac31
- SW: fixed DeleteNoSoundOwner still checking for sprites as sound origins.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
0a9792ac28
- adapted SW's sound system to actors.
2021-12-26 23:09:46 +01:00
Christoph Oelckers
221d9fe28e
- adapted Duke's and Exhumed's sound code to directly work with actors.
...
This was already wrapped so all that needed to be done was removing the wrapper.
2021-12-26 23:09:46 +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
75b36cbd1c
- Duke: made player.i a real pointer
...
How could I overlook this one.
2021-12-26 23:09:45 +01:00
Christoph Oelckers
befc4572e9
- minimal backend array removal.
2021-12-26 23:09:45 +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
02ef323086
- SW: handle getzrangepoint
2021-12-26 23:09:43 +01:00
Christoph Oelckers
53be5d1622
- use a sector pointer in FAFgetzrange.
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
729076b79d
- adapted neartag in SW and Exhumed.
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
1840ab0d05
- deal with a few ->sectnum's in SW.
2021-12-26 23:09:42 +01:00
Christoph Oelckers
321608e5ac
- made cursectnum et. al. real pointers.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
f19f656dd9
- deal with SW's Warp functions.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
10d0ea29ce
- renamed some sectnum variables.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
ef6bc9db56
- do the remaining clipmove calls.
2021-12-26 23:09:41 +01:00
Christoph Oelckers
bdbb3b4004
- handled the main actor movement functions.
2021-12-26 23:09:40 +01:00
Christoph Oelckers
afd05add96
- adapted several clipmove calls in SW.
2021-12-26 23:09:40 +01:00
Christoph Oelckers
c0b0b00f96
fixed collision access.
2021-12-26 23:09:09 +01:00
Christoph Oelckers
30f36e4871
- use backend's collision struct in SW.
2021-12-26 23:08:58 +01:00
Christoph Oelckers
b3bbf8932e
- same procedure for Exhumed.
2021-12-26 23:08:58 +01:00
Christoph Oelckers
8ce34c7772
- use refactored Collision struct and clipmove in Blood, too.
2021-12-26 23:08:57 +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
a5ccd2ccd2
- adapted FAFhitscan to the new backend API.
...
Lots of search & replace to change the names of the HitInfo struct, no manual edits outside of FAFhitscan.
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
4bfb03b6b3
- adapted hitscan calls in Exhumed.
2021-12-26 23:08:56 +01:00
Christoph Oelckers
10dce7dd2d
- adapted all hitscan calls in Duke/RR.
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
e526686d1e
- the really final ones.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
7dd2f79676
- the final ones before moving to the backend.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
33d2d80c42
- sector references in remote, some cursectnum replacements.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
104e80e34a
- NEAR_TAG_LIST, also deleted useless OperateWall code.
2021-12-26 23:08:55 +01:00
Christoph Oelckers
b7cfb07245
- all sectnums that can trivially be replaced.
...
Most of the rest is in backend calling code and should be done while cleaning up the backend API.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
19f8458f01
- FindCeilingView, FindFloorView and related things.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
db95dc95d1
- FAF_Sector + SpawnQuake
2021-12-26 23:08:54 +01:00
Christoph Oelckers
98c3d57b73
- ->sectnum in ai.cpp and draw.cpp.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
cf6e75ad54
- the final doable sector[] replacements.
...
The rest needs to be done with the backend.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
e2e0f69393
- deleted deprecated Warp... functions.
2021-12-26 23:08:54 +01:00
Christoph Oelckers
c4f29772ae
- SpawnVis
2021-12-26 23:08:53 +01:00
Christoph Oelckers
1457cf2c0d
- track stuff
2021-12-26 23:08:53 +01:00
Christoph Oelckers
b3eceb3b56
- the remaining trivial sector[] replacements
2021-12-26 23:08:53 +01:00
Christoph Oelckers
1a7cc6d782
- FAFgetzrangepoint + ActorDrop
2021-12-26 23:08:53 +01:00
Christoph Oelckers
959c3bc18b
- springboard
2021-12-26 23:08:53 +01:00
Christoph Oelckers
0345615518
- some smaller changes.
2021-12-26 23:08:52 +01:00
Christoph Oelckers
9a6bd0b7e1
- SectorWallBits
2021-12-26 23:08:52 +01:00
Christoph Oelckers
1763fbc7ff
- OperateSector
2021-12-26 23:08:52 +01:00
Christoph Oelckers
df558bd9a2
- GetUpperLowerSector
2021-12-26 23:08:52 +01:00
Christoph Oelckers
0c9d465e4c
- FAF_Connect* functions and related code.
2021-12-26 23:08:52 +01:00
Christoph Oelckers
96915a646b
- SectorZadjust
2021-12-26 23:08:52 +01:00
Christoph Oelckers
b076edcc6f
- PlayerRemoteReset
2021-12-26 23:08:51 +01:00
Christoph Oelckers
75af6966c9
- FAFHitscan cleanup.
2021-12-26 23:08:51 +01:00
Christoph Oelckers
1a7c70cbbd
- use pointers in FAFHitscan
2021-12-26 23:08:51 +01:00
Christoph Oelckers
6ae8e93de8
- hitinfo.hitwall is also gone.
2021-12-26 23:08:51 +01:00
Christoph Oelckers
270a443c88
- hitinfo.hitsect is gone.
2021-12-26 23:08:51 +01:00
Christoph Oelckers
bcc61470a2
- mostly deal with hitinfo.hitsect.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
f495097663
- first step of replacing hitinfo.hitsect with a pointer.
...
This takes care of easy to handle common patterns
2021-12-26 23:08:50 +01:00
Christoph Oelckers
1162442068
- handle most GetOverlapSector callers.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
11d3a660ad
- GetOverlapSector internals.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
4d5c255b08
- adjust a few warp functions.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
c4e388ef56
- merged SpawnActor wrapper.
2021-12-26 23:08:50 +01:00
Christoph Oelckers
d447e3e86f
- make the sector reference in SINE_WAVE_FLOOR a pointer.
2021-12-26 23:08:49 +01:00
Christoph Oelckers
16480ccfcc
- use sector wrappers where applicable.
2021-12-26 23:08:49 +01:00
Christoph Oelckers
52d9451cbc
- SOP::op_main_sector
2021-12-26 23:08:49 +01:00
Christoph Oelckers
f388efc5ef
- eliminated the redundant SOP::sector array.
2021-12-26 23:08:49 +01:00
Christoph Oelckers
c43d594f34
- SectorIsUnderwaterArea
2021-12-26 23:08:49 +01:00
Christoph Oelckers
4149a335a3
- SOP::mid_sector
2021-12-26 23:08:48 +01:00
Christoph Oelckers
b936345e11
- sectnum() cleanup and AnimSet return type.
2021-12-26 23:08:48 +01:00
Christoph Oelckers
f68d17133a
- SectorSetup, SetupSectorObject
2021-12-26 23:08:48 +01:00
Christoph Oelckers
3b16db7a0f
- SectorMidPoint
2021-12-26 23:08:48 +01:00
Christoph Oelckers
da8a5f282d
- CopySectorMatch
2021-12-26 23:08:48 +01:00
Christoph Oelckers
de5377cb2c
- WallBreakPosition
2021-12-26 23:08:48 +01:00
Christoph Oelckers
d6cd291030
- use a wall pointer in SINE_WAVE
2021-12-26 23:08:47 +01:00
Christoph Oelckers
33b3864d14
- final wall not related to hitscan/neartag.
2021-12-26 23:08:47 +01:00
Christoph Oelckers
f0dd018ad4
- use pointers in sparks interface.
2021-12-26 23:08:47 +01:00
Christoph Oelckers
4acca06c71
- the final wall iterators.
2021-12-26 23:08:47 +01:00
Christoph Oelckers
bb315f8148
- more wall cleanup
2021-12-26 23:08:47 +01:00
Christoph Oelckers
031ad6e4a5
- wall[] in wallmove.cpp
2021-12-26 23:08:47 +01:00
Christoph Oelckers
01c8662c3c
- wall[] in track.cpp
2021-12-26 23:08:46 +01:00
Christoph Oelckers
770b242c76
- wall[] in sector.cpp
2021-12-26 23:08:46 +01:00
Christoph Oelckers
5cafd7b591
- QueueHole
2021-12-26 23:08:46 +01:00
Christoph Oelckers
e3ad05d4d7
- quick cursectnum replacements.
2021-12-26 23:08:46 +01:00
Christoph Oelckers
c0496420ec
- LadderSector
2021-12-26 23:08:46 +01:00
Christoph Oelckers
991795df4b
- CollectPortals
2021-12-26 23:08:46 +01:00
Christoph Oelckers
d0eece244b
- got rid of most nextsector references.
2021-12-26 23:08:45 +01:00
Christoph Oelckers
612a9e258e
- auto replacement.
2021-12-26 23:08:45 +01:00
Christoph Oelckers
b7a2687a7b
- all nextwall references removed.
2021-12-26 23:08:45 +01:00
Christoph Oelckers
ca536ce5bd
- quick wall[] replacements.
2021-12-26 23:08:45 +01:00
Christoph Oelckers
ce4a44dd84
- hitinfo.hitwall.
2021-12-26 23:08:45 +01:00
Christoph Oelckers
9f9c01284b
- all wall loops using point2.
2021-12-26 23:08:44 +01:00
Christoph Oelckers
7e6de45e46
- WallSetup + SpriteSetup
2021-12-26 23:08:44 +01:00
Christoph Oelckers
d8893f3521
- DoSlidorInstantClose
2021-12-26 23:08:44 +01:00
Christoph Oelckers
9c21483279
- wall[] in light.cpp and player.cpp
2021-12-26 23:08:44 +01:00
Christoph Oelckers
732aa2023b
- over_sp/under_sp sectnums
2021-12-26 23:08:44 +01:00
Christoph Oelckers
302016956f
- sector parameters in SpawnActor calls.
2021-12-26 23:08:43 +01:00
Christoph Oelckers
e17da708e7
- lots of ->sectnum search & replace.
2021-12-26 23:08:43 +01:00
Christoph Oelckers
d1f156dec3
- most InsertActor calls.
2021-12-26 23:08:43 +01:00
Christoph Oelckers
cab2181ddc
- PrevWall
2021-12-26 23:08:43 +01:00
Christoph Oelckers
5cf776daaa
- sector save struct.
2021-12-26 23:08:43 +01:00
Christoph Oelckers
eb82f60981
- FAFcansee.
2021-12-26 23:08:42 +01:00
Christoph Oelckers
3ccf3ab52d
- pointers in mirror struct.
2021-12-26 23:08:42 +01:00
Christoph Oelckers
4d8434ffd2
- CircleCamera and interpso.cpp
2021-12-26 23:08:42 +01:00
Christoph Oelckers
317aa3f217
- CopySectorWalls
2021-12-26 23:08:42 +01:00
Christoph Oelckers
75d59196fc
- WallBreakPosition (wall pointer only)
2021-12-26 23:08:42 +01:00
Christoph Oelckers
6e018bd056
- DoSlidorMoveWalls
2021-12-26 23:08:42 +01:00
Christoph Oelckers
ac655abc42
- search & replace only.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
82447233a7
- several getangle(delta) blocks.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
0a0cc85407
- renamed HITINFO fields.
2021-12-26 23:08:41 +01:00
Christoph Oelckers
993d460420
- another delta.
2021-12-26 23:08:41 +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
a93dbaf5fe
- SW: simplified rotation interpolation functions.
2021-12-26 23:08:40 +01:00
Christoph Oelckers
33c707c708
- Duke: getangle simplification
2021-12-26 23:08:40 +01:00
Christoph Oelckers
5d78b228b7
- the final bits and pieces in Blood
2021-12-26 23:08:40 +01:00
Christoph Oelckers
41506f35db
- calcviewpitch
2021-12-26 23:08:40 +01:00
Christoph Oelckers
879407538e
- several 'sectnum's.
2021-12-26 23:08:40 +01:00
Christoph Oelckers
9388f839b6
- main view render function and dependencies.
2021-12-26 23:08:40 +01:00
Christoph Oelckers
0797e7ac90
- trInit
2021-12-26 23:08:39 +01:00
Christoph Oelckers
7442edc59f
- more trigger stuff
2021-12-26 23:08:39 +01:00
Christoph Oelckers
2967edf827
- triggers.cpp subfunctions.
2021-12-26 23:08:39 +01:00
Christoph Oelckers
8f3c97dde4
- SetSectorState
2021-12-26 23:08:39 +01:00
Christoph Oelckers
7f94eee9bb
- busy interface + unlimiting.
2021-12-26 23:08:00 +01:00
Christoph Oelckers
28840b3afa
- pass sectors to AddBusy and ReverseBusy.
2021-12-26 22:35:08 +01:00
Christoph Oelckers
9d423d19cd
- partial transition of busy interface to sector pointers.
2021-12-26 22:25:59 +01:00
Christoph Oelckers
9017fee74f
- FindSector.
2021-12-25 21:29:17 +01:00
Christoph Oelckers
b8953849ee
- secnum in fx.cpp
2021-12-25 21:29:17 +01:00
Christoph Oelckers
765ff7609d
- all remaining ->sectnum in nnexts.cpp.
2021-12-25 21:29:16 +01:00
Christoph Oelckers
d0376e5485
- nnext sound functions.
2021-12-25 21:29:16 +01:00
Christoph Oelckers
b7c4e4b9fa
- useSlopeChanger
2021-12-25 21:29:16 +01:00
Christoph Oelckers
36d66f14b5
- smaller stuff
2021-12-25 21:29:16 +01:00
Christoph Oelckers
4438c20cb4
- fxProcess
2021-12-25 21:29:16 +01:00
Christoph Oelckers
f52a542fad
- callback interface.
2021-12-25 21:29:15 +01:00
Christoph Oelckers
e4e5bd0966
- CFX::fxSpawnActor
2021-12-25 21:29:15 +01:00
Christoph Oelckers
331a7654bf
- actSpawnThing
2021-12-25 21:29:15 +01:00
Christoph Oelckers
443cfc991c
- actSpawnSprite, ZONE, startsectnum and dbLoadMap
2021-12-25 21:29:15 +01:00
Christoph Oelckers
b187f3c028
- CheckProximity
2021-12-25 21:29:15 +01:00
Christoph Oelckers
e172d0c138
- actRadiusDamage
2021-12-25 21:29:14 +01:00
Christoph Oelckers
3d336c13ac
- GetClosestSpriteSectors
2021-12-25 21:29:14 +01:00
Christoph Oelckers
f9b2b6311f
- slope checks in sprite display code.
2021-12-25 21:29:14 +01:00
Christoph Oelckers
b063e19980
- gFX.fxSpawnActor and a few other simple replacements.
2021-12-25 21:29:14 +01:00
Christoph Oelckers
d99542a678
- get*slope and sfxPlay3DSound
2021-12-25 21:29:14 +01:00
Christoph Oelckers
9343e3f9c4
- handle most cansee calls.
2021-12-25 21:29:13 +01:00
Christoph Oelckers
c8f4caf364
- animatesprite.cpp.
2021-12-25 21:29:13 +01:00
Christoph Oelckers
a34e89c8b7
- debrisMove + getting rid of the index based ClipMove variant.
2021-12-25 21:29:13 +01:00
Christoph Oelckers
94671c5b05
- MoveMissile + GetZRangeXYZ
2021-12-25 21:29:13 +01:00
Christoph Oelckers
9a85ff9bad
- MoveThing
2021-12-25 21:29:13 +01:00
Christoph Oelckers
611d35222e
- MoveDude
2021-12-25 21:29:13 +01:00
Christoph Oelckers
6ee9ae7ec6
- actFloorBounceVector
2021-12-25 21:29:12 +01:00
Christoph Oelckers
38c0bc915d
- get rid of '.sectnum'.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
669aa033e9
- wrap the bit tests for GetClosestSpriteSectors's return.
...
They need to check spritenum which is supposed to go away, so this function avoids keeping obsolete references.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
368a21f75e
- useDataChanger + setDataValueOfObject
2021-12-25 21:29:12 +01:00
Christoph Oelckers
a7fc5d2193
- refactored most wall[] references.
...
What's left is in either setup code or the mirror setup.
2021-12-25 21:29:12 +01:00
Christoph Oelckers
dd1e7dd94f
- use HITINFO to let ActionScan return its result.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
6fcc652111
- usePictureChanger + useIncDecGen
...
# Conflicts:
# source/games/blood/src/nnexts.cpp
2021-12-25 21:29:11 +01:00
Christoph Oelckers
96b6bb21ef
- several smaller places.
...
This gets rid of the less frequent names to look for.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
063e3fb34e
- changed parameters of several modern action functions.
2021-12-25 21:29:11 +01:00
Christoph Oelckers
759a8428fa
- dragPoint
2021-12-25 21:29:11 +01:00
Christoph Oelckers
7bffcad49f
- trMessage* functions.
...
# Conflicts:
# source/games/blood/src/eventq.cpp
2021-12-25 21:29:10 +01:00
Christoph Oelckers
45a8654fc2
- use EventObject in SEQINST
2021-12-25 21:29:10 +01:00
Christoph Oelckers
2721a59dc4
- use wall pointers in gib code.
2021-12-25 21:29:10 +01:00
Christoph Oelckers
f07fafea9c
- use EventObject for OBJECTS_TO_TRACK.
2021-12-25 21:29:10 +01:00
Christoph Oelckers
dbbca2972a
- use EventObject for condition serials.
2021-12-25 21:29:10 +01:00
Christoph Oelckers
da4ec51782
- convert info to an event object in condCheckMixed before doing any checks.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
2b2a8c3ec8
- condPush cleanup in nnexts.cpp.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
2c3d2f4850
- remove the RXBUCKET alias
2021-12-25 21:29:09 +01:00
Christoph Oelckers
9e02da6380
- alias RXBucket to EventObject.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
483b28b258
- uses bucket interface in evSend.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
1de75d2c0f
- use wrapper stuff in GetBucketChannel.
2021-12-25 21:29:09 +01:00
Christoph Oelckers
042520e447
- variants of nnExtTriggerObject and getDataFieldOfObject that work directly on an RXBUCKET element.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
10dc47a9bf
- some remaining RXBUCKET access in nnexts.cpp
2021-12-25 21:29:08 +01:00
Christoph Oelckers
f775fe577c
- use RXBUCKET interface in nnext's fight code.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
f0c74981fe
- use the new RXBUCKET interface for nnext's wind code.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
546dee2724
- added accessors to RXBUCKET to match EventObject and renamed some of its members.
...
As a first preparation for replacement.
2021-12-25 21:29:08 +01:00
Christoph Oelckers
5787ec9618
- use EventObject as storage in EVENT.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
5bec3be5e9
- abstracted access to event target objects.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
32874414fd
- evSendSector, too.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
0472c78ddc
- same for walls.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
37f4843953
- changed evPostSector to receive a sector pointer instead of index.
2021-12-25 21:29:07 +01:00
Christoph Oelckers
292f100114
- pass an array of wall pointers to GetClosestSpriteSectors
2021-12-25 21:29:06 +01:00
Christoph Oelckers
d5e660a40c
- converted gHitInfo.hitwall to a pointer.
2021-12-25 21:29:06 +01:00
Christoph Oelckers
2f6bd64746
- SetWallState parameters
2021-12-25 21:29:06 +01:00
Christoph Oelckers
79da890c6e
- TranslateSector cleanup.
2021-12-25 21:29:06 +01:00
Christoph Oelckers
3f46507313
- some wall[] replaced.
2021-12-25 21:29:06 +01:00
Christoph Oelckers
378bf40143
- got rid of the mostly redundant GetWallType function.
2021-12-25 21:29:05 +01:00
Christoph Oelckers
1fc99d4733
- Blood: use wall pointers in wall utilities exclusively.
2021-12-25 21:29:05 +01:00
Christoph Oelckers
93cdaee9f0
- Blood: simplify GetWallAngle
2021-12-25 21:29:05 +01:00
Christoph Oelckers
7a7537961b
- Blood: remove GetWallAngle variant with index parameter
2021-12-25 21:29:05 +01:00
Christoph Oelckers
624ad6a2ad
- cleanup stuff.
...
Removed unneeded prototypes, renamed some variables; no logic changes.
2021-12-25 21:29:05 +01:00
Christoph Oelckers
943641d18e
- renamed all nSector pointers to pSector
...
No logic changes!
2021-12-25 21:29:04 +01:00
Christoph Oelckers
a3ecbe6371
- MoveQS
2021-12-25 21:29:04 +01:00
Christoph Oelckers
b1b7608cf7
- most remaining sectnum references.
2021-12-25 21:29:04 +01:00
Christoph Oelckers
2027c6ebaf
- the last sector[]
2021-12-25 21:29:04 +01:00
Christoph Oelckers
6e786fcf1e
- RadialDamage + DimSector
2021-12-25 21:29:04 +01:00
Christoph Oelckers
24d4680f6e
- sector[] in move.cpp
2021-12-25 21:29:03 +01:00
Christoph Oelckers
80f80ed5e5
- initsect
2021-12-25 21:29:03 +01:00
Christoph Oelckers
f09e7ed32f
- spawn functions.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
40ae38c173
- calcChaseCamPos.
2021-12-25 21:29:03 +01:00
Christoph Oelckers
a3f1821670
- nPlayerViewSect
2021-12-25 21:29:03 +01:00
Christoph Oelckers
eaa155d52e
- various sectnums,
2021-12-25 21:29:02 +01:00
Christoph Oelckers
9b19845dfb
- AddMovingSector/CheckPushBlock
2021-12-25 21:29:02 +01:00
Christoph Oelckers
63d66e95c5
- runlist_ProcessSectorTag
2021-12-25 21:29:02 +01:00
Christoph Oelckers
1163a79da9
- renamed sectp in runlist_ProcessSectorTag
2021-12-25 21:29:02 +01:00
Christoph Oelckers
a58548c2f9
- AIElev
2021-12-25 21:29:02 +01:00
Christoph Oelckers
7713723045
- Bullets and bobs.
2021-12-25 21:29:02 +01:00
Christoph Oelckers
b191bca49e
- BuildAnim
2021-12-25 21:29:01 +01:00
Christoph Oelckers
2394420f48
- quick replacements
2021-12-25 21:29:01 +01:00
Christoph Oelckers
109ff8c3cb
- Above and Below
2021-12-25 21:29:01 +01:00
Christoph Oelckers
7b84a1464c
- don't access invalid sector in DrawView.
...
Old bug exposed by having operator[] assert on bad access to sector[].
2021-12-25 21:29:01 +01:00
Christoph Oelckers
aee560624d
- some more sectors.
2021-12-25 21:29:01 +01:00
Christoph Oelckers
78d9b78193
- most of the rest of the walls.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
5374dafb56
- switches
2021-12-25 21:29:00 +01:00
Christoph Oelckers
ec12eb11f6
- palette loops for renderer.
2021-12-25 21:29:00 +01:00
Christoph Oelckers
cdef530597
- PlayerPushSect
2021-12-25 21:29:00 +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
c933eff59f
- Traps
2021-12-25 21:28:59 +01:00
Christoph Oelckers
e57f9e08e9
- slides.
2021-12-25 21:28:59 +01:00
Christoph Oelckers
44639faabb
- Flickers
2021-12-25 21:28:59 +01:00
Christoph Oelckers
e90d1266ae
- Glows.
2021-12-25 21:28:59 +01:00
Christoph Oelckers
dfbb5192fb
- addFlash at.al.
2021-12-25 21:28:59 +01:00
Christoph Oelckers
20891f276d
- use pointers in runlist_ProcessWallTag and all its subfunctions.
2021-12-25 21:28:58 +01:00
Christoph Oelckers
2d937891ac
- 3x twoSided
2021-12-25 21:28:58 +01:00
Christoph Oelckers
2d1f5fc576
- Exhumed: some cleanup.
2021-12-25 21:28:58 +01:00
Christoph Oelckers
61d5680950
more wall loops
2021-12-25 21:28:58 +01:00
Christoph Oelckers
269bac76cd
loop cleanup in SnapSectors
2021-12-25 21:28:58 +01:00
Christoph Oelckers
9203ca425e
Exhumed: ExplodeEnergyBlock
2021-12-25 21:28:57 +01:00
Christoph Oelckers
38d64fc437
spritetype::setsector
2021-12-25 21:28:57 +01:00
Christoph Oelckers
c2613d9720
EventObject
2021-12-25 21:28:57 +01:00
Christoph Oelckers
4928187b02
- handle the RR geometry hack
2021-12-25 21:28:57 +01:00
Christoph Oelckers
9c7eecb55f
- the rest of Duke’s sectnum, except RR's geo 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
6aac952658
- started eliminating sectnum
2021-12-25 21:28:56 +01:00
Christoph Oelckers
d1f7269ca8
replaced cursectnum with a cursector pointer
2021-12-25 21:28:56 +01:00
Christoph Oelckers
69a7b4d0bc
- final cleanup before replacement
2021-12-25 21:28:55 +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
312b1fd39f
- cursectnum first half
2021-12-25 21:28:55 +01:00
Christoph Oelckers
265abf7fa6
— Duke: Use BFSSectorSearch to handle the hitradius searches without using indices.
...
(and a bit nicer looking loop condition.)
2021-12-25 21:28:55 +01:00
Christoph Oelckers
b1b0c5d25c
— Duke: use twoSided utility where appropriate.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
d115d90961
- Duke: prefer calling the sector pointer variants of engine functions.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
ef7fcd824f
- use insector and sector pointer initialization for iterator
2021-12-25 21:28:54 +01:00
Christoph Oelckers
2979fb9e03
- new access methods for spritetype and DDukeActor.
2021-12-25 21:28:54 +01:00
Christoph Oelckers
16bdea1b2e
More SW shorts
2021-12-25 21:28:54 +01:00
Christoph Oelckers
6a9b377724
SW de-shortification
2021-12-25 21:28:53 +01:00
Christoph Oelckers
4d7b45b68e
- SW: first batch of short handling.
2021-12-25 21:28:53 +01:00
Christoph Oelckers
e179b9332d
- all shorts reviewed.
...
Should be all clear now - the biggest limiter in Exhumed is the run list with ~25000 entries which may need more work if it is to be extended.
2021-12-25 21:28:53 +01:00
Christoph Oelckers
83a928adde
- next 100 shorts reviewed.
...
seq.cpp/seq.h was just renamed to int16_t.
2021-12-25 21:28:52 +01:00
Christoph Oelckers
d73c7aa543
- short review and disasm variable renaming
...
(down to 200 shorts)
2021-12-25 21:28:52 +01:00
Christoph Oelckers
033a73bce0
- Exhumed short review, part 2.
...
Down to 350.
2021-12-25 21:28:52 +01:00
Christoph Oelckers
1790ced1f8
- Exhumed: renamed disassembly fields in player struct.
2021-12-25 21:28:52 +01:00
Christoph Oelckers
30b42d24a0
- Exhumed short review
...
(down to < 550)
2021-12-25 21:28:52 +01:00
Christoph Oelckers
4e30ba339b
- got rid of the tempsector... arrays in Duke's polymost interface.
...
Instead use some of the free parts in sectortype thats needed for the other games.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
c5e45f1021
- use actor->sector() to initialize iterators.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
aada3f3d19
- renamed DDukeActor::getSector.
2021-12-25 21:28:51 +01:00
Christoph Oelckers
2247509a67
- Blood baseWall optimzation
2021-12-25 21:28:51 +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
d30bf8c8bb
- fixed Blood's mirror render hack for Polymost.
...
This adds 4 walls and 1 sector without counting them, so we must adjust allocations and array access to handle OOB access and temporarily increase the counter for the mirror render pass.
The new renderer does not need this stuff.
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
fded90c491
- SW: deleted SECT_USER.
2021-12-25 21:28:49 +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
e034635e12
- migrated Blood's xsector and got rid of the static global array.
2021-12-25 21:28:48 +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
cc41f4e7c6
- migrated Duke's added sector properties.
2021-12-25 21:28:48 +01:00
Christoph Oelckers
14907a9a97
- sector extension basics.
2021-12-25 21:28:48 +01:00
Mitchell Richters
46f4f17644
- Blood: Fix linker error under POSIX compilation environments.
2021-12-25 21:28:47 +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
6217623c24
- Blood: removed unused/redundant functions.
2021-12-25 21:28:47 +01:00
Christoph Oelckers
56a1836e68
- all SectUsers replaced, except for the maintenance code of the array.
2021-12-25 21:28:47 +01:00
Christoph Oelckers
bd43f49c29
- replaced half of the remaining SectUser accesses.
2021-12-25 21:28:46 +01:00
Christoph Oelckers
5cda292d98
- lots of search& replace actions.
...
This takes care of roughly 2/3 of the SectUser accesses.
2021-12-25 21:28:46 +01:00
Christoph Oelckers
4266edfa04
- SW: automatic ->sector() replacements (lots of them)
2021-12-25 21:28:46 +01:00
Christoph Oelckers
5b87370b5e
- SW: wall[] replacements in CopySectorWalls
2021-12-25 21:28:45 +01:00
Christoph Oelckers
a5fac26a90
- DIVx macro removal.
...
Only DIV2 left because there are too many calls to quickly remove them.
2021-12-25 21:28:45 +01:00
Christoph Oelckers
a6bf9c7208
- use proper owner interface in nnext sound check.
2021-12-25 21:28:45 +01:00
Christoph Oelckers
72da21a7e3
- renamed variable for clarification.
2021-12-25 21:28:45 +01:00
Christoph Oelckers
bee70155d2
- make XSPRITE::target a pointer
2021-12-25 21:28:45 +01:00
Christoph Oelckers
d576e8f438
- removed a few of the remaining shorts.
2021-12-25 21:28:44 +01:00
Christoph Oelckers
28f7303af3
- a few automatic replacements.
2021-12-25 21:28:44 +01:00
Christoph Oelckers
93f5a111bf
- all direct references to xsector have been removed.
2021-12-25 21:28:44 +01:00
Christoph Oelckers
c54137766c
- iterator loops in sectorfx.cpp.
2021-12-25 21:28:44 +01:00
Christoph Oelckers
b3bf1bc037
- some simple replacements, mostly search & replace.
2021-12-25 21:28:44 +01:00
Christoph Oelckers
8f5b9d2f03
- nXSector is gone.
2021-12-25 21:28:43 +01:00
Christoph Oelckers
a0ef54cb54
- remove XSECTOR::reference.
2021-12-25 21:28:43 +01:00
Christoph Oelckers
4ed1ee77c7
- several more xsector references removed.
2021-12-25 21:28:43 +01:00
Christoph Oelckers
adaa132515
- lots of boilerplate sections to get a pXSector pointer replaced.
...
Looks like this was originally an inline function, judging from how this was repeated all over again.
2021-12-25 21:28:43 +01:00
Christoph Oelckers
2e8e5544c5
- ActionScan internals cleaned up.
2021-12-25 21:28:43 +01:00
Christoph Oelckers
1a8cf9b2f9
- removed pX... parameter from ActionScan.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
f06697ed29
- removed pX... parameter from from trTriggerSector.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
ccd6af6272
- Blood: transitioned several functions in actor.cpp to the new method to acces the x() data.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
32f141ad39
- XSECTOR::reference is gone.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
576a473ec8
-XWALL::references is not needed anymore.
2021-12-25 21:28:42 +01:00
Christoph Oelckers
db9d12d19f
- evrListRedirectors
...
The wall/sector parts of this look currently unused,
2021-12-25 21:28:42 +01:00
Christoph Oelckers
b23a2865b8
- useSectorLightChanger
2021-12-25 21:28:41 +01:00
Christoph Oelckers
1472d021f6
- use regular indices instead of xindices for the SEQ list.
...
This also fixes incorrect use of walls in the nnext sector checks for sequences.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
c019e118a5
- cleanup of shadeList, panList and wallPanList.
...
Made them TArrays and let them store pointers to the contained objects instead of xoffsets.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
c182900425
- cleanup of trTriggerWall's API.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
59312c42bb
- eliminated ca. half of the xwall references.
2021-12-25 21:28:41 +01:00
Christoph Oelckers
9cad3196ed
- getSourceBusy
2021-12-25 21:28:40 +01:00
Christoph Oelckers
4cfc1577e2
- some simple xwall[] replacements.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
70da9e2526
- first xwall[] removal in Blood.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
19f3365efc
- Blood: add x-access functions to spritetype and walltype.
...
This is merely a refactoring aid to get everything in a state that later allows merging these into one.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
9ab35816ea
- the crane still stored a sector index in temp_data.
2021-12-25 21:28:40 +01:00
Christoph Oelckers
69c21407a7
- pass a sector pointer to checkcursectnums.
2021-12-25 21:28:39 +01:00
Christoph Oelckers
3ce2375a3e
- LocateTheLocator + related sector storage in temp_data
2021-12-25 21:28:39 +01:00
Christoph Oelckers
64f1029416
- Duke: pass a sector pointer to callsound.
2021-12-25 21:28:39 +01:00
Christoph Oelckers
f6db4a8e51
- SW: move User into DSWActor.
2021-12-25 21:28:39 +01:00
Christoph Oelckers
fe83487c77
- missed one bit of old savegame
2021-12-25 21:28:39 +01:00
Christoph Oelckers
47e207f158
- eliminated spritetype::index.
...
# Conflicts:
# source/games/sw/src/swactor.h
2021-12-25 21:28:38 +01:00
Christoph Oelckers
fa48b740c0
-proper owner storage for Duke.
2021-12-25 21:28:38 +01:00
Christoph Oelckers
b9602bbb05
- store owner outside the sprite.
2021-12-25 21:28:38 +01:00
Christoph Oelckers
10e6486744
- fixed typo in GenDudeExtra save check.
2021-12-25 21:28:38 +01:00
Christoph Oelckers
771f5e3338
- removed all old savegame handling
2021-12-25 21:28:38 +01:00
Christoph Oelckers
77a23e39c5
- Blood: added closing EndObject() call to DUDEEXTRA serializer.
2021-12-25 21:28:38 +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
766d87106a
- we do not need XSPRITE::reference anymore.
2021-12-25 21:28:37 +01:00
Christoph Oelckers
3d22bfa362
- do not crunch condition info to an int.
...
Once the global sprite array is gone we need full actor info here.
2021-12-25 21:28:37 +01:00
Mitch Richters
c6f2aaf1b7
- Miscellaneous fixes to commit to change sector checks over to validSectorIndex()
.
...
* Fix missed changeover in Blood's `actSpawnSprite()`.
* Fix non-negated check on a `validSectorIndex()` call in Blood's `debrisMove()`.
* Removed a superfluous terminator in Duke's `actor.cpp`.
* Fixed bad call to `validSectorIndex()` in Exhumed's `AIAnim::Tick()`.
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
2d7c085617
- SW: fixed bad user in SpawnSplash
2021-12-25 21:27:36 +01:00
Christoph Oelckers
d1c6c783a6
- SW: fixed user spawned for wrong actor.
2021-12-25 20:35:53 +01:00
Christoph Oelckers
3ec904d5c0
- SW: fixed several bad User references in missile seeking code.
2021-12-25 20:11:40 +01:00
Christoph Oelckers
1c5fc16fa5
- SW: fixed two bad user assignments
2021-12-25 19:54:45 +01:00
Christoph Oelckers
a94f298600
- print new errors in red.
2021-12-16 11:56:26 +01:00
Christoph Oelckers
d011f3c201
- Blood: validate upper/lower sector links before starting a level.
...
Originally this just performed an OOB memory access, but with Raze's setup it would dereference a null pointer so these must be eliminated.
2021-12-16 11:54:55 +01:00
Christoph Oelckers
7f1a3431ca
- SW: fixed accidentally inverted colliision check in DoMirvMissile.
2021-12-15 20:51:31 +01:00
Christoph Oelckers
4daad25e5c
- use WORDS_BIGENDIAN directly in place of B_BIG_ENDIAN
2021-12-14 12:27:41 +01:00
Christoph Oelckers
7c4233bcf7
- replaced fallthrough__ with [[fallthrough]] as we are requiring C++17 and don't need workarounds for that.
2021-12-14 12:27:28 +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
6e43f1a15a
- Blood: refine picnum 0 filter to apply to face sprites only.
2021-12-13 17:58:11 +01:00
Mitchell Richters
6aecc18c35
- SW: Use floating point radians instead of converting integer Build angle into radians for when updating a sound's angle.
2021-12-13 23:37:11 +11:00
Christoph Oelckers
8abd67a3b1
- fixed sound listener angle for the remote control case.
...
It was taking the angle of the rotating sector object instead of the angle from the listener's position to it.
2021-12-13 13:24:33 +01:00
Christoph Oelckers
498abf25f3
- Blood: make sure that invalid sprites don't get rendered at all.
...
Seems the game may have depended on them being clipped by the floor or ceiling.
2021-12-13 11:45:28 +01:00
Christoph Oelckers
e104316e75
- fixed bad parameter to getzrange.
...
This originated from 1d39bb371e
where the getzrange_old function was removed
2021-12-13 09:39:57 +01:00
Christoph Oelckers
507dc10e4f
- Duke/RR: Fixed sprite validation checks in animatesprites.
2021-12-11 09:57:02 +01:00
Mitchell Richters
3269d6a398
- Duke: Ensure all weapon variables used for interpolation have the o
values set when CON updates them.
...
* Hasn't been an issue to date but could become one should a mod set these.
* Can't simply back the variable up and set the main one because unless the mod knows we're interpolating, it could have undesirable effects.
2021-12-10 17:31:51 +11:00
Mitchell Richters
ee1ffd2347
- Duke: Fix lotag signedness issue affecting SE10 (door auto-close).
...
* Originated in 01abe7b2ac
while removing a casting to short.
* Fixes #594 .
2021-12-10 17:26:56 +11:00
Mitch Richters
5aa4243327
- Duke: Test tsprite's sector in animatesprites_d()
following crash while noclipping in Duke WT's E5L1. Apply same fix to animatesprites_r()
as well.
2021-12-07 22:55:08 +11:00
Mitch Richters
6aba76cfe5
- Duke/RR: Fix RR crash while operating weapon outside of a sector (noclipping, etc).
2021-12-07 21:42:21 +11:00
Mitchell Richters
af96180123
- Duke/RR; Don't lose the precision of p->MotoSpeed
when calculating p->VBumpTarget
.
2021-12-07 20:02:30 +11:00
Mitch Richters
63a19bbb15
- Port spritetype::insector()
over from develop and use with sector nullptr checks in 6539d72663
.
2021-12-07 19:56:50 +11:00
Mitch Richters
6539d72663
- Duke/RR: Add three sector nullptr checks after receiving crash in Redneck Rampage Route 66 while noclipping.
2021-12-07 19:44:35 +11:00
Mitch Richters
85a2e3bd06
- Duke/RR: Do nullptr test in floorspace_d()
/floorspace_r()
functions to match ceilingspace_*()
functions.
2021-12-07 19:41:25 +11:00
Mitch Richters
a7e99a3bd1
- Duke/RR: Do nullptr test in ceilingspace_r()
after receiving crash in Redneck Rampage Route 66 (do Duke for parity).
2021-12-07 19:41:22 +11:00
Mitch Richters
96867e15d5
- Duke: Apply same nullptr fix in 2e7496888a
to prelevel_r()
, and rename sect
to sectp
for 1:1 match between _d.cpp and _r.cpp files.
2021-12-07 19:41:18 +11:00
Mitch Richters
2e7496888a
- Duke: Re-add lost nullptr check in prelevel_d()
that was causing a crash while loading Duke Nukem's Penthouse Paradise.
2021-12-03 10:14:41 +01:00
Christoph Oelckers
81268cb9b6
partial Revert of "- optimized vector math."
...
This reverts commit 826fd7ddb2
.
Looks like there's dependencies on the intermediate variables. The optimized code gave the same result but did not work anymore.
2021-12-02 23:32:20 +01: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
60630f5b84
- do not init pointers to 0xffffffffffffffff.
...
These will most certainly crash when used in any way.
2021-12-02 18:42:02 +01:00
Christoph Oelckers
cb099b1b66
- added two missing semicolons.
...
Unbelievable that this was legal C++ and didn't even get a warning!
2021-12-01 23:30:02 +01:00
Christoph Oelckers
57aca0ed07
- SW: fixed sector object setup with vator effect.
...
This used some weird initialization logic that was missed when first modifying this code.
2021-12-01 21:00:00 +01:00
Christoph Oelckers
324e35e776
- SW: fixed use of uninitialized variable in WallSetup
2021-12-01 19:55:18 +01:00
Christoph Oelckers
5bb114ba6e
- fixed two bad actor references in Exhumed's radial damage code.
...
The radial source is passed through pRadialActor, not pObjActor.
2021-11-30 22:44:54 +01:00
Christoph Oelckers
690994ea1e
- Duke: fix missing sectp update in processinput_d.
...
RR version had this correct
2021-11-30 00:20:16 +01:00
Christoph Oelckers
64cad55d73
- fixed updatesector and changed updatesectorz to use the same search algorithm.
...
The initial distance check in updatesectorneighbor had a far too low threshold which would skip the breadth-first search for relatively small distances already.
Exhumed's LEV1 and Duke's Lunatic Fringe were the most obvious candidates where this could cause problems.
Changed to use a mixture of the original updatesector with the revised algorithm so that all immediate neighbors of the start sector will get visited unconditionally.
updatesectorz was still the original function from Shadow Warrior, this also was changed to use the same algorithm as uodatesector.
2021-11-30 00:15:25 +01:00
Christoph Oelckers
71dfe7ecfe
- fixed handling for cl_capfps and cl_nointerpolate to never use any smoothratio value other than 1.0.
2021-11-29 00:57:11 +01:00
Christoph Oelckers
b54e52330c
- Blood: don't play the same looped sound multiple times on the same actor.
...
This caused some strong echoing on E4M6.
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
ec63dd4cb3
- SW: precacheMap cleanup
2021-11-29 00:57:09 +01:00
Christoph Oelckers
b73ea76c18
- cleaned out Bunny_Count declarations.
...
One is enough.
2021-11-29 00:57:09 +01:00
Mitch Richters
73c5bef580
- Blood: Remove duplicated code from render3DViewPolymost()
that's already performed in viewDrawScreen()
.
2021-11-29 00:56:33 +01:00
carnivoroussociety
61cafc7d57
[Blood] Fix self collisions for lifeleech projectiles
2021-11-29 00:56:33 +01:00
carnivoroussociety
958d004119
[Blood] Match view height clamping behavior to 1.21
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
2949361c82
- Duke/RR: added null checks to all spawn() calls
2021-11-29 00:56:32 +01:00
Christoph Oelckers
d5a6be3d96
- cleaned up Duke's spawn code.
...
The paths for initializing a map placed sprite and spawning a new actor at run time are now fully separate aside from the actual initialization of the actor.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
4c7662b4ea
- Duke/RR: guard all calls to EGS with a null pointer check.
...
Spawning sprites into the void will crash the engine so these must be blocked which requires a failure check here.
With this pressing fire while in the void no longer crashes the game - it won't fire anything, either, though.
2021-11-29 00:56:31 +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
8972dbe5da
- actorstayput
2021-11-29 00:56:31 +01:00
Christoph Oelckers
4a81d45630
- the remaining sector[] stuff in Duke/RR.
...
What remains is either engine interface code or not easily replaced.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
5e66a3331d
- getanimationgoal.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
baf36a321b
- inside, haskey and removed unused processmove functions.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
3970c9a757
- use sector pointers in actors_lava.cpp
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
db96e93adc
- animatesect, setanimation and related stuff.
2021-11-29 00:56:30 +01:00
Christoph Oelckers
b0ced98d5e
- changed main EGS function.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
09c2677fe7
- lots of EGS calls.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
876d1dbe1f
- operatesectors and activatebysector.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
c57c007010
- do the remaining st handlers.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
2aec8f47d3
- more st functions.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
2a290dec48
- handle_st15 / handle_st16.
2021-11-29 00:56:29 +01:00
Christoph Oelckers
da4df04e7d
- sector[] in handle_st09.
2021-11-29 00:56:28 +01:00
Christoph Oelckers
45519f67c1
- Duke: let neartag return pointers
2021-11-29 00:56:28 +01:00
Christoph Oelckers
a9aadfd63d
- neartag cleanup in checksectors.
2021-11-29 00:56:28 +01:00
Christoph Oelckers
3d05020f4c
- checkhitceiling + ceilingglass are sector[] free.
2021-11-29 00:56:28 +01:00
Christoph Oelckers
747fc11eb7
- Duke: use sector pointer in movement code
2021-11-29 00:56:28 +01:00
Christoph Oelckers
931c71a78c
- use sector iterator for cheatUnlock
2021-11-29 00:56:27 +01:00
Christoph Oelckers
a7634c4cad
- Duke: use pointers in interpolation interface.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
0d8b380b05
- use wallsofsector for all remaining iterations over a sector's walls.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
ac5425a545
- extended player_orig.os to full int.
...
This was the last remaining short variable in Duke/RR that holds a sector index.
2021-11-29 00:56:27 +01:00
Christoph Oelckers
a0950081ad
- fixed bad sector use in handle_st18
2021-11-29 00:56:27 +01:00