Commit graph

962 commits

Author SHA1 Message Date
Christoph Oelckers
1a21e73cd9 - fixed bad collision state check in movesprite.
Fixes #147
2020-10-24 21:36:27 +02:00
Christoph Oelckers
9a6a98ada9 - RR: Picking up the crossbow should also enable the dynamite as a separate weapon. 2020-10-24 20:43:36 +02:00
Christoph Oelckers
acda4b7799 - fixed Duke's RPG explosion
Fixes #146
2020-10-24 19:44:10 +02:00
Christoph Oelckers
82d87deb30 - added missing includes for release build. 2020-10-24 10:01:14 +02:00
Christoph Oelckers
8fd0fe5955 - changed the spriteq to use pointers instead of indices. 2020-10-24 09:40:10 +02: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
a5b3681630 - foundation for a better collision info management.
The way this is handled is the main reason why Build maps are size limited, but since it is extremely invasive it needs to be taken out of the game code piece by piece, this is the framework for doing this for Duke.
2020-10-24 09:31:15 +02:00
Christoph Oelckers
16e49ac1fd - use pointer for sprite access in movesprite_r.
Bringing it in line with movesprite_d.
2020-10-24 09:20:45 +02:00
Christoph Oelckers
42e5201e9f - replaced a few array accesses where a pointer is already available. 2020-10-24 09:11:45 +02:00
Christoph Oelckers
87e4c0fa7d - experimented a bit with optimizing the spawn function's use. 2020-10-24 09:05:54 +02:00
Christoph Oelckers
356060e127 - optimized another batch of array accesses in the spawn functions. 2020-10-24 08:52:21 +02:00
Christoph Oelckers
6311898152 - renamed a few disassembly variables. 2020-10-24 07:48:51 +02:00
Christoph Oelckers
5cde56de28 - another case of replacing a long list of array accesses with a pointer. 2020-10-24 07:39:51 +02:00
Christoph Oelckers
03da2011b6 - array cleanup in spawn.cpp. 2020-10-24 07:34:54 +02:00
Christoph Oelckers
d237471b79 - DoActor cleanup.
Using pointers instead of repeated array accesses now.
2020-10-24 07:25:25 +02:00
Christoph Oelckers
00b8a75de4 - made cheatGod function less ugly. 2020-10-24 07:19:53 +02:00
Christoph Oelckers
46d90f5d49 - clearcamera and ssp. 2020-10-23 22:37:38 +02:00
Mitchell Richters
be21cb0602 - Duke: Fix give CCMD to ensure it works after being resurrected from the dead via god cheat.
* Extension to 63cb7dd2bd.
2020-10-22 20:18:41 +11:00
Mitchell Richters
f46d9499a5 - Duke (RR): Adjust when to call DrawWeaponBar() within Statusbar().
* Partially addresses #1 of https://forum.zdoom.org/viewtopic.php?f=340&t=70284.
2020-10-22 19:54:39 +11:00
Mitchell Richters
e63f5e1ae7 - Duke (RR): Fix bad text setup in DrawWeaponBar().
* Fixes #2 of https://forum.zdoom.org/viewtopic.php?f=340&t=70284.
2020-10-22 19:40:39 +11:00
Mitchell Richters
63cb7dd2bd - Duke: Fix rotscrnang locked when reviving player after death via DNKROZ cheat.
* Fixes #138.
2020-10-22 09:21:35 +11:00
Christoph Oelckers
9440bc0c6d - avoid using ptrdiff_t in templated contexts.
Some systems map this to 'long' instead of 'long long' and not everything provides handlers for this type.
2020-10-21 19:19:45 +02:00
Christoph Oelckers
9cdaaff42b - migrated EGS and deletesprite to new actor interface.
Inline wrappers for old code exist.
The backupplayer inline was moved into player.cpp because that's the only place it gets used.
2020-10-21 19:14:41 +02:00
Christoph Oelckers
b8b79b6fa9 - renamed a few things. 2020-10-21 18:42:47 +02:00
Christoph Oelckers
b1f2475230 - serialize null pointers correctly. 2020-10-21 16:31:18 +02:00
Christoph Oelckers
6f4a0c94e8 - something on player is now a pointer as well 2020-10-21 16:31:18 +02:00
Christoph Oelckers
72329eb01b - wackedbyactor, too. 2020-10-21 16:31:18 +02:00
Christoph Oelckers
e94274a543 - holoduke_on is now a pointer as well. 2020-10-21 16:31:18 +02:00
Christoph Oelckers
d7604a3160 - made on_crane a pointer as well. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
7c88de0b42 - made player.actorsqu a pointer and added the needed infrastructure for that. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
39c154dc15 - fixed compile errors 2020-10-21 16:31:17 +02:00
Christoph Oelckers
8aca0774dc - adding more helper wrappers. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
0f2c19522e - defined the iterators. 2020-10-21 16:31:17 +02:00
Christoph Oelckers
78afb67c7f - setup for Duke actor data transition to something more scripting friendly.
The main problem here is that there's two data arrays representing an actor - sprite and hittype and the engine only uses indices for reference.
By setting up hittype to contain a sprite reference, the function and iterator interface can be rewritten to use a single pointer instead to represent an actor.
The main objective is to reduce the number of accesses to the global arrays which constitute the biggest refactoring blocker.
2020-10-21 16:31:17 +02:00
Christoph Oelckers
05c095e448 - fixed parameter ordering for WW2GI's change weapon event call.
This happens when variables are ambiguously named... :?
2020-10-21 07:31:21 +02:00
Christoph Oelckers
99e3eeb19e - split up shoot_r as well and consolidated both blood splat functions. 2020-10-21 01:03:38 +02:00
Christoph Oelckers
4d1e229734 - split shoot_d into smaller, easier to manage chunks.
1100 lines for a single function is too much.
2020-10-21 00:17:09 +02:00
Christoph Oelckers
a17f529c49 - fixed freezer projectile not moving.
These endless fallthrough switch/case blocks are a genuine menace. :(
Fixes #136
2020-10-20 23:21:38 +02:00
Christoph Oelckers
3004185646 - fixed bossguy. 2020-10-19 23:58:30 +02:00
Christoph Oelckers
66c097b3b8 - fixed bad Holoduke check in alterang. 2020-10-18 21:54:30 +02:00
Christoph Oelckers
a8eaf3575f - warning fixed and constants used. 2020-10-18 12:18:19 +02:00
Christoph Oelckers
f4c79161ad - fixed crash when opening the first gate in RRRA's E1L1.
There was some poor coding at play here that fell victim to changed execution order.
Changed everything so that problem cases always get dealt with properly.
2020-10-18 12:10:46 +02:00
Christoph Oelckers
4d3135f4b8 - cleanup and consolidation of moveweapons_r. 2020-10-18 10:42:26 +02:00
Christoph Oelckers
08e29396e5 - split moveweapons_d further up into more smaller parts. 2020-10-18 09:45:41 +02:00
Christoph Oelckers
2b79b29fef - further splitting of moveweapons_d.
Progress with this but still not enough yet to break it down into manageable parts.
2020-10-18 08:38:29 +02:00
Christoph Oelckers
94e8213caf - split fireball handling out of moveweapons_d to reduce the function's size. 2020-10-17 19:53:04 +02:00
Mitchell Richters
3582717c43 - Duke: Fix issues in recordoldspritepos() following changes in 7043092fd0.
* Fixes #129.
2020-10-16 14:17:19 +11:00
Mitchell Richters
b1536d8a0b - Duke (RRRA): Fix potential issue originating from 1bc51a7367 where horizon might have needed adjustment to 0 but wouldn't have done so.
* Previously used to determine whether to apply a horizon adjustment on whether local variable `horiz` was 0 or not (since baseline horizon was 100).
* For no particular reason, initalise `horiz` as FRACUNIT and process if it is not equal to one.
2020-10-15 20:33:28 +11:00
Mitchell Richters
db419fd618 - Duke (RRRA): Fix vehicle avel while cl_syncinput 1.
* Fully fixes #128.
2020-10-15 20:12:48 +11:00
Mitchell Richters
fb91fc49a3 - processMovement(): Add commentary around avel constants used within function and how they came to be. Also clean up some left-over code. 2020-10-15 20:12:34 +11:00
Christoph Oelckers
76e4661eea - more simple pointer replacements - lots of them... 2020-10-15 01:34:28 +02:00
Christoph Oelckers
0b80ad8fb1 - handled the last remaining stat iterators in Duke. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
53414afbe5 - all stat iterators in sectors.cpp handled. 2020-10-15 01:34:28 +02:00
Christoph Oelckers
3d36381752 - converted all stat iterators outside sector*.cpp. 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
758fab1804 - replaced several sector iterators in Duke code. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
5c9b261823 - all sector iterators in actors_d.cpp, actors_r.cpp and actors_lava.cpp. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
060b66b96b - replaced all stat iterators in actors_r.cpp. 2020-10-15 01:34:27 +02:00
Christoph Oelckers
db8b454df1 - fixed ond bad statnum 2020-10-15 01:34:27 +02:00
Christoph Oelckers
053a1d46d5 - replaced all stat iterators in actors_d.cpp. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
595ec11609 - replaced all sector iterators in actors.cpp. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
7043092fd0 - all stat iterators in Duke:actors.cpp replaced. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
13093aef56 - a few quick ones, mostly simple search & replace. 2020-10-15 01:34:26 +02:00
Christoph Oelckers
a3601e59ef - rr_specialstats, rrra_specialstats and respawn_rrra.
(These look a lot better now. :) )
2020-10-15 01:34:26 +02:00
Christoph Oelckers
69e6bee64a - Interators for SE00 and a few others. 2020-10-15 01:34:25 +02:00
Christoph Oelckers
5d734eafa0 - Iterators and pointers for movefx, moveflammable and detonate 2020-10-15 01:34:25 +02:00
Christoph Oelckers
2358f14cd1 use iterators for moveplayers, movedummyplayers and movefallers_d. 2020-10-15 01:34:25 +02:00
Christoph Oelckers
d3a31a3ab7 - hitradius_d uses the iterator now. 2020-10-15 01:34:25 +02:00
Christoph Oelckers
922122c0bc - same for movefta_d and ifhitbyweapon_d 2020-10-15 01:34:25 +02:00
Christoph Oelckers
5bcaaf45e7 - use a pointer to access sprites in movesprite. 2020-10-15 01:34:24 +02:00
Christoph Oelckers
8ece66e55c - use the new iterators in the movetransports functions.
Also prefer pointers over array access.
2020-10-15 01:34:24 +02:00
Christoph Oelckers
91fdf160b6 - fixed clearing of actorinfo.
It overwrote memory beyond its end.
2020-10-15 01:34:24 +02:00
Mitchell Richters
e4af4f28ce - Duke (RR): Avoid integer truncation when dividing p->VBumpNow. 2020-10-15 10:27:08 +11:00
Mitchell Richters
1bc51a7367 - Duke (RR): Repair issues with horizon following changes in 09a05f354c and partially address vehicle turning speed in processVehicleInput().
* Issues with vehicle input handling with `cl_syncinput 1` still remain. Will address after work.
* Partially addresses #128.
2020-10-15 10:20:52 +11:00
Christoph Oelckers
d368d734d3 - prototyping some refactoring helpers. 2020-10-14 00:58:21 +02:00
Christoph Oelckers
bfed4e179b - little bit of array access removal.
(It's going to be a long way to refactor the sprite system to not rely on indices...)
2020-10-14 00:30:14 +02:00
Christoph Oelckers
f0ef7a1322 - tabified animatesprites_d.cpp and animatesprites_r.cpp. 2020-10-13 21:44:05 +02:00
Christoph Oelckers
20248d8e08 - fixed a few CCMDs which were blocked in the console. 2020-10-12 19:48:47 +02:00
Christoph Oelckers
86ad576675 - fixed lockup on Shareware screen when quitting Duke
Two errors: the menu wasn’t closed and the shareware check was inverted.
2020-10-12 08:07:51 +02:00
Mitchell Richters
c08851e4c0 - Blood/Duke/RR/SW: Drop resetinputhelpers(). 2020-10-12 14:42:43 +11:00
Christoph Oelckers
cb8d2eb94c - added serializers for PlayerAngle and PlayerHorizon. 2020-10-11 16:55:12 +02:00
Christoph Oelckers
1757ef2aa6 - split the game input code off gamecontrol.cpp into its own file. 2020-10-11 16:33:43 +02:00
Christoph Oelckers
8e1c71b867 Merge branch 'InputContinuation' 2020-10-11 15:24:51 +02:00
Christoph Oelckers
7deb3ed4bd - Duke: got rid of the last 3 remaining #defines not used for list generation, as well. 2020-10-11 14:30:43 +02:00
Christoph Oelckers
fc82b3bc8a - Duke: replaced the game type macros with inline functions. 2020-10-11 14:30:42 +02:00
Christoph Oelckers
9cc1268839 - Duke: added missing include guard to conlabel.h. 2020-10-11 14:30:42 +02:00
Christoph Oelckers
adaf25377c - moved the player sprite away from the edge of the frame. 2020-10-11 07:50:41 +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
78d5b2aa95 - Duke: fixed: The Recon's roaming sound was poorly checked resulting in garbled output.
It checked for two instances globally, which made the same actor repeat its sound all over again, but if more recons were present some were silent.
Now each one is allowed to play its effect separately.
2020-10-10 19:17:23 +02:00
Christoph Oelckers
b06a847d9a Merge branch 'menu2'
# Conflicts:
#	source/exhumed/src/sound.cpp
2020-10-10 19:03:29 +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
Christoph Oelckers
f9ab77f700 - create named texture copies for 'tilefromtexture' replacements.
We want to be able later to find them in the texture manager again.
2020-10-10 16:52:04 +02:00
Mitchell Richters
271eb1c3fa - binaryangle.h/cpp: Hook up FSerializer and use within Duke for saving objects. 2020-10-11 00:10:53 +11:00
Christoph Oelckers
294a806793 - fixed some issues with prematurely terminated sounds. 2020-10-10 12:57:43 +02:00
Christoph Oelckers
16fd505f9a - make sure that sfxinfo_t is always fully initialized by adding initializer values to all fields.
Let's hope this finally fixes those sound hiccups.
2020-10-10 09:47:00 +02:00
Mitchell Richters
8f68e8b4a1 - Amend 2865fef7ed as accidentally returned horizon as Build and not Q16.16. 2020-10-10 17:52:43 +11:00
Mitchell Richters
2865fef7ed - Duke: Restore return_to_center in gameexec.cpp dropped in 0ab3b33a6c and redo based on new code. 2020-10-10 16:59:00 +11:00
Mitchell Richters
6ecbb2587e - Duke: Fix z position when on certain cameras following changes in 09a05f354c. 2020-10-10 16:17:02 +11:00
Christoph Oelckers
4024ebd12d - re-added Duke 1.3's credit screens. 2020-10-09 00:11:49 +02:00
Christoph Oelckers
02507d937d - got the text screens working. Also reformatted RR's credits a bit for a better presentation. 2020-10-08 23:40:17 +02:00