Commit graph

209 commits

Author SHA1 Message Date
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
Christoph Oelckers
d532c496f1 - sectors_d.cpp 2021-12-30 09:56:59 +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
adbf5177a7 - flag combo stuff. 2021-12-30 09:56: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
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
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
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
9c7eecb55f - the rest of Duke’s sectnum, except RR's geo hack 2021-12-25 21:28:57 +01:00
Christoph Oelckers
d1f7269ca8 replaced cursectnum with a cursector pointer 2021-12-25 21:28:56 +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
aada3f3d19 - renamed DDukeActor::getSector. 2021-12-25 21:28:51 +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
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
db96e93adc - animatesect, setanimation and related stuff. 2021-11-29 00:56:30 +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
0d8b380b05 - use wallsofsector for all remaining iterations over a sector's walls. 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
Christoph Oelckers
5c9327a788 - use pointer variant of nextsectorneighborz. 2021-11-29 00:56:27 +01:00
Christoph Oelckers
bc199d00c7 - made 'clouds' a pointer array. 2021-11-29 00:56:26 +01:00
Christoph Oelckers
c31d8a93fd - a few more
Enough of this - Duke is clearly clean of bad storage now
2021-11-29 00:56:24 +01:00
Christoph Oelckers
35eb94b89a - lotsofcolourglass 2021-11-29 00:56:23 +01:00
Christoph Oelckers
344041167e - add setanimation variant taking a wall pointer
Mainly to get rid of wallnum()calls elsewhere.
2021-11-29 00:56:23 +01:00
Christoph Oelckers
83344818fd - pass wall pointer to breakwall 2021-11-29 00:56:23 +01:00
Christoph Oelckers
567a360092 - store wall pointers in animwall 2021-11-29 00:56:23 +01:00
Christoph Oelckers
94d0e9775f - spawneffectors 2021-11-29 00:56:20 +01:00
Christoph Oelckers
7615a52126 -operatesectors + operateforcefields. 2021-11-29 00:56:19 +01:00
Christoph Oelckers
60f16e8fb8 - handle_st09 2021-11-29 00:56:19 +01:00
Christoph Oelckers
01abe7b2ac - addressed most unused/uninitialized variable warnings from MSVC. 2021-11-29 00:55:30 +01:00
Christoph Oelckers
dcccb0d653 - Duke: added [[fallthrough]] annotations wherever needed. 2021-11-29 00:55:29 +01:00
Christoph Oelckers
ae08ae1d8d - some leftover shorts plus utilities that ended up unused but may be useful later. 2021-11-07 16:46:23 +01:00
Christoph Oelckers
35b9318580 - Duke/RR: checked the rest of the code for shorts and replaced most local ones with ints. 2021-11-07 16:33:13 +01:00
Christoph Oelckers
977d668bef - extended animatetarget to 32 bit. 2021-11-07 16:21:44 +01:00
Christoph Oelckers
b13398c268 - quick global wall[] replacements. 2021-11-07 15:57:29 +01:00
Christoph Oelckers
c3cbd1b1eb - Duke: cleanup of cycler code.
Now uses a struct instead of an array with magic indices.
2021-11-06 21:53:15 +01:00
Christoph Oelckers
c8d65a1f06 - use sector wrappers where easily doable with search and replace. 2021-11-06 14:19:55 +01:00
Mitch Richters
a1570c185f - Duke: Remove posx/posy/posz variables and replace with points in the previously unionised pos vec3_t variable. 2021-10-31 17:52:52 +11:00
Mitch Richters
b02a6a3ec9 - Replace MIN() from templates.h with version provided in STL. 2021-10-30 10:36:15 +02:00
Mitch Richters
9894729fc2 - Replace MAX() from templates.h with version provided in STL.
# Conflicts:
#	source/common/textures/hw_ihwtexture.cpp
#	source/common/utility/templates.h
2021-10-30 10:36:02 +02:00
Christoph Oelckers
cb2bc7967a - fixed the remaining warnings. 2021-05-12 21:50:01 +02:00
Christoph Oelckers
dc8b72b2ce Merge branch 'master' into newrenderer2
# Conflicts:
#	source/games/duke/src/actors.cpp
#	source/games/duke/src/hudweapon_d.cpp
#	source/games/duke/src/hudweapon_r.cpp
#	source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers
96d78ab9e6 - made DukeActor::s a pointer.
As a reference we would never be able to export this to scripting
2021-04-15 19:21:43 +02:00
Christoph Oelckers
ba2defeb14 Merge branch 'master' into newrenderer2 2021-04-05 10:34:34 +02:00
Christoph Oelckers
eb2e77fb75 - Apply fix from EDuke32 commit 7225643e.
Fix undefined behavior/potential OOB access in ST_21_FLOOR_DOOR. g_AnimateGoal does not take a sector number, it takes an animation index, and caps at 1024, not 4096.
2021-04-05 00:14:15 +02:00
Christoph Oelckers
c303884274 - better handling for Duke's scrolling cloudy skies.
* Using the Doom-style dome here because it looks better.
* this necessitated changes to the backend to allow both types of sky domes at the same time
* do not clamp panning fields for cloudy sky with the new renderer because this makes the texture jump.
2021-04-04 20:35:38 +02:00
Mitchell Richters
2abda0e27d - All Games: Migrate each game's clock counter to backend solution. 2021-02-18 21:47:33 +11:00
Mitchell Richters
97159c20c1 - Duke: Leverage new spritetype methods within Duke, removing bposx/bposy/bposz from hittype. 2021-01-06 06:22:29 +11:00
Mitchell Richters
0cab84f17a - Duke: Backport EDuke32 commits b1e3f3bcf9c5214ae835d09e12cc41bac4f057ce & 4c4fdd1f4ab9381b60db06f37ec270850599e1ae in relation to swinging doors. 2021-01-03 15:45:38 +11:00
Christoph Oelckers
1a2b93f402 - fixed sky panning in Duke.
This needs to take the composite texture into account because panning in Build is based on tile size, not map dimension.
It was also redone to use floating point to get rid of the horrible precision of the scrolling effect.
2020-12-06 20:49:32 +01:00
Mitchell Richters
1e8fe482f3 - Duke: Partially address excessively fast sky in E4L1 as reported in #217.
* Before d545eb7aa9, `moveclouds()` simply set `ceilingxpanning`/`ceilingypanning`. Afterwards, it was accumulating with every passing loop.
* Despite fixing this, still seems a bit fast.
2020-12-06 23:51:20 +11:00
Christoph Oelckers
b9477f147e - migrated Duke's interpolations to the common system and added handling for texture scrollers. 2020-11-26 18:32:36 +01:00
Christoph Oelckers
d545eb7aa9 - make sector panning variables floats and added some convenience wrappers. 2020-11-26 18:32:35 +01:00
Mitchell Richters
6ccf925429 - buildutils: Replace sintable[] use within Duke's sectors.cpp with bsin()/bcos(). 2020-11-22 21:18:05 +01:00
Christoph Oelckers
25c93e65fc - more script ID wrappers for sectors. 2020-11-04 20:40:26 +01:00
Christoph Oelckers
8f754d163d - removed inline wrappers that are not needed anymore.
# Conflicts:
#	source/games/duke/src/spawn_r.cpp
2020-11-04 20:40:07 +01:00
Christoph Oelckers
7aca51a6c4 - 6 more loops. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
7e29be7569 - switched checkhitwall interface to actors. 2020-11-03 21:49:57 +01:00
Christoph Oelckers
ad84c8149e - the rest of sectors.cpp 2020-11-03 07:06:27 +01:00
Christoph Oelckers
4236f800f6 - operateactivators and operatemasterswitches. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
7635fc9ad6 - operatesectors. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
326ca9e172 - handle_st28, 2020-11-03 07:06:26 +01:00
Christoph Oelckers
06695073d0 - handle_st27. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
d4c53226d0 - handle_st25. 2020-11-03 07:06:26 +01:00
Christoph Oelckers
fd8ee214f5 - handle_st23. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
e6507887d3 - handle_st20. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
2afbbcb157 - handle_st29. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
7c491742f9 - handle_st15. 2020-11-03 07:06:25 +01:00
Christoph Oelckers
88adef3caa - split up operatesectors into more digestable pieces. 2020-11-03 07:03:01 +01:00
Christoph Oelckers
4dd9be7b6d ..
- activatewarpelevators
2020-11-03 06:52:26 +01:00
Christoph Oelckers
6adc2f8e55 - findplayer 2020-11-01 17:07:47 +01:00
Christoph Oelckers
fa5b48d270 - check_activator_motion, doanimations. 2020-11-01 17:07:47 +01:00
Christoph Oelckers
b2a2232260 - callsound 2020-11-01 17:07:46 +01:00
Christoph Oelckers
34e39dd221 - pass spawner as an actor pointer to 'lotsofstuff'.
Allows doing this without using sprite indices.
2020-10-24 09:36:35 +02:00
Christoph Oelckers
53414afbe5 - all stat iterators in sectors.cpp handled. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
760a557f73 - converted the remaining sector iterators in Duke. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
fe2e96d3a6 Merge branch 'master' into InputContinuation
# Conflicts:
#	source/games/duke/src/duke3d.h
2020-10-10 21:39:27 +02:00
Christoph Oelckers
b142f33edd - fixed problems with stopping sector effect sounds.
The old check only accounted for the case of trying to play a valid follow-up sound, but not for merely stopping the old one.
Restored the original check that was here.
2020-10-10 18:11:26 +02:00
Mitchell Richters
fca846272e - gamecontrol: Initial setup of PlayerAngle struct and deployment within Duke.
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Christoph Oelckers
71c3441b1e - transitioned cloudclock.
This timer runs at 60 Hz in the render code, so it needs to take smoothratio into account.
2020-08-31 19:22:21 +02:00
Mitchell Richters
c207437a57 - Duke: Rename cloudtotalclock to cloudclock.
* Mostly so it doesn't come up on searches for `totalclock`.
2020-08-26 09:49:32 +10:00
Mitchell Richters
afb09456e0 - Duke: Migrate away from using totalclock and use new game-specific gameclock with underlying timer code in common.
* Build timer still requires initialisation due to multiple `timerSetCallback()` that still need to work.

# Conflicts:
#	source/core/menu/menu.cpp
#	source/games/duke/src/game.cpp
2020-08-25 19:47:31 +02:00
Christoph Oelckers
4332d02885 - fixed sound playback for doors etc.
The play code locked out the MUSICANDSFX actor but never properly checked for the sound being finished.
Fixes #87
2020-08-01 11:56:02 +02:00
Christoph Oelckers
a0cc798c9c - cleaned up the sound system interface to have consistent naming and no aliases. 2020-07-25 09:32:54 +02:00
Christoph Oelckers
c16115d76c - first stage of new savegame code.
This also refactors the animateptr array into something serializable. This kind of pointer lookup is virtually unrestorable without creating platform locked savegames.
2020-07-20 20:40:29 +02:00
Christoph Oelckers
f4e763e252 - input code cleanup.
The input queues are mostly abstracted now and some EDuke specific handling that isn't needed anymore was removed.
2020-07-06 10:34:31 +02:00
Christoph Oelckers
827672a775 - moveclouds. 2020-07-06 02:05:31 +02:00
Christoph Oelckers
7872b701ce - CCMD cleanup. 2020-07-04 21:36:27 +02:00
Christoph Oelckers
2bd4173716 - renamed a few headers. 2020-06-24 21:21:02 +02:00
Christoph Oelckers
5c780e5c5f - fixed mixed up tile numbers.
For consistency all shared numbers now use the TILE_ prefix.
2020-06-21 23:07:43 +02:00
Christoph Oelckers
e1c76e4c26 - safety commit.
# Conflicts:
#	source/games/duke/src/zz_sbar.cpp
2020-06-21 23:07:42 +02:00
Christoph Oelckers
c28ea5792a - copyright 2020-06-21 22:59:09 +02:00
Christoph Oelckers
358d1a460f - tabification of new sources and replacement of the CON instruction symbols.
# Conflicts:
#	source/games/duke/src/zz_gamedef.cpp
2020-06-21 22:55:09 +02:00
Christoph Oelckers
4c47361132 - added null check to findplayer. 2020-06-21 22:40:13 +02:00
Christoph Oelckers
577a800843 - the rest of sector.cpp, except for the input function. 2020-06-21 22:40:12 +02:00
Christoph Oelckers
92f5236b24 - more sector stuff. 2020-06-21 22:40:12 +02:00
Christoph Oelckers
c9a47d2e44 checkhitswitch
intentionally not merged because this is too messy.
2020-06-21 22:40:11 +02:00
Christoph Oelckers
536e3c886c 20% of sector.cpp
# Conflicts:
#	source/games/duke/src/zz_sector.cpp
2020-06-21 22:40:11 +02:00
Christoph Oelckers
c8cb0e4efd - the beginning of sector.cpp
The math backend functions have been moved out of Build because they originally have a good license.

# Conflicts:
#	source/build/src/mdsprite.cpp
#	source/build/src/polymost.cpp
2020-06-21 22:39:05 +02:00