Christoph Oelckers
c5f7c29ead
- chickenarrow and movefireball.
2020-11-01 12:23:14 +01:00
Christoph Oelckers
a3860de440
- movestandables.
2020-11-01 12:09:01 +01:00
Christoph Oelckers
1af39eb29d
- move*bolt.
2020-11-01 12:08:39 +01:00
Christoph Oelckers
dc75037d01
- movecrack, movefireext, moveviewscreen.
2020-11-01 12:06:20 +01:00
Christoph Oelckers
a4ac7764de
- movetripbomb.
2020-11-01 12:02:58 +01:00
Christoph Oelckers
d9b6be83b3
- movefallers.
2020-11-01 12:00:29 +01:00
Christoph Oelckers
7e8be10b04
- movefta and ifhitsectors.
2020-11-01 11:58:41 +01:00
Christoph Oelckers
861342a278
- guts_d and guts_r.
2020-11-01 11:32:34 +01:00
Christoph Oelckers
90d1c5f7bb
- ifsquished.
2020-11-01 10:55:38 +01:00
Christoph Oelckers
4c9655b110
- check_fta_sounds.
2020-11-01 10:53:45 +01:00
Christoph Oelckers
b9aa5de217
- fixed merge error in handle_se00.
2020-11-01 10:52:38 +01:00
Christoph Oelckers
7967391728
- actors_lava.cpp handled.
2020-11-01 10:50:10 +01:00
Christoph Oelckers
6a97b3d58e
- renamed variables.
2020-11-01 10:49:50 +01:00
Christoph Oelckers
f0b1ab504d
- fall_common and its fallspecial subfunction.
2020-11-01 10:48:26 +01:00
Christoph Oelckers
185b795481
- renamed variables in alterang.
2020-11-01 10:45:09 +01:00
Christoph Oelckers
85ea1df76a
- alterang
2020-11-01 10:44:16 +01:00
Christoph Oelckers
31e5023004
- dodge, furthestcanseepoint, furthestangle.
2020-11-01 10:41:25 +01:00
Christoph Oelckers
4e675ea322
- makeitfall
2020-11-01 10:41:24 +01:00
Christoph Oelckers
291edcdab8
- getglobalz
2020-11-01 10:41:16 +01:00
Christoph Oelckers
8f75a58343
- shared SE31 code.
2020-11-01 10:31:41 +01:00
Christoph Oelckers
21fb3fb7bb
- shared SE25 code.
2020-11-01 10:27:54 +01:00
Christoph Oelckers
00f5a08390
- shared SE24 code.
2020-11-01 10:27:41 +01:00
Christoph Oelckers
02813802d4
- the 5 remaining shared SE handlers.
2020-11-01 10:12:27 +01:00
Christoph Oelckers
769bc3bd22
- handle_se20-26.
2020-11-01 10:02:58 +01:00
Christoph Oelckers
5d837176de
- handle_se18+19
2020-11-01 09:58:39 +01:00
Christoph Oelckers
5b096ea35e
- handle_se15-17.
2020-11-01 09:53:50 +01:00
Christoph Oelckers
33377e1810
- renamed a few things.
2020-11-01 09:45:37 +01:00
Christoph Oelckers
b585192721
- handle_se11-13.
2020-11-01 09:37:41 +01:00
Christoph Oelckers
83a9d99bd9
- use symbolic constants in spawneffectors.
2020-11-01 09:00:16 +01:00
Christoph Oelckers
45905b9137
- handle_se05, 08, 10.
2020-11-01 08:51:13 +01:00
Christoph Oelckers
2edc7168ca
- handle SE02-SE04.
2020-11-01 08:43:24 +01:00
Christoph Oelckers
3e62550489
- consolidated gutsdir functions by making the spawn offset for Duke's commander an actor property.
2020-11-01 08:23:03 +01:00
Christoph Oelckers
80aab4b5f7
- handle_se30.
2020-11-01 08:22:47 +01:00
Christoph Oelckers
a6468970c6
- renamed some variables.
2020-11-01 08:14:40 +01:00
Christoph Oelckers
2dd2ba1469
- handle_SE14 function signature and recordoldspritepos
2020-11-01 08:13:29 +01:00
Christoph Oelckers
d2b4cf6770
- reformatting
2020-11-01 08:03:07 +01:00
Christoph Oelckers
1b6161d472
- SE14 part 4
2020-11-01 08:00:43 +01:00
Christoph Oelckers
1cffc76c4e
- SE14 part 3
2020-11-01 08:00:03 +01:00
Christoph Oelckers
92f95ea195
- SE14 part 2
2020-11-01 07:56:49 +01:00
Christoph Oelckers
e13b61f496
- SE14 part 1
...
Doing this in smaller chunks because this function requires quite extensive adjustments.
2020-11-01 07:51:50 +01:00
Christoph Oelckers
1ce2600a43
- SE 0 and 1 handlers.
2020-11-01 07:36:49 +01:00
Christoph Oelckers
a37cfe2913
- renamed variables in handle_se00.
2020-11-01 07:28:49 +01:00
Christoph Oelckers
e9d6fb2bb5
- jibs, bloodpool, shell, glasspieces and scrap.
2020-11-01 07:27:15 +01:00
Christoph Oelckers
6cbe74e115
- forcesphere, watersplash2, frameeffect and money.
2020-11-01 07:24:00 +01:00
Christoph Oelckers
6e1d3a025a
- ooz, reactor and camera.
2020-11-01 07:23:27 +01:00
Christoph Oelckers
876b6d5081
- forcesphere and recon.
2020-11-01 07:20:17 +01:00
Christoph Oelckers
d0e12586ba
- added a higher level interface tp clipmove that unmangles its return.
2020-11-01 07:16:44 +01:00
Christoph Oelckers
3d16d9f44a
- respawnmarker, rat and queball.
2020-11-01 07:15:57 +01:00
Christoph Oelckers
6257ebc30c
- bounce, movetongue and rpgexplode.
2020-11-01 07:11:49 +01:00
Christoph Oelckers
e001b3117f
- movetouchplate, moveooz, movecanwithsomething.
...
# Conflicts:
# source/games/duke/src/funct.h
2020-11-01 07:07:59 +01:00
Christoph Oelckers
b7f26c064d
- 3 smaller functions.
2020-11-01 06:54:14 +01:00
Christoph Oelckers
c42ff35dc5
- hitradius
...
# Conflicts:
# source/games/duke/src/actors_d.cpp
# source/games/duke/src/actors_r.cpp
2020-10-31 13:24:31 +01:00
Christoph Oelckers
7dbe9d4bfb
- renaming in hitradius
2020-10-31 13:24:30 +01:00
Christoph Oelckers
81717b54ee
- detonate and movemasterswitch.
...
# Conflicts:
# source/games/duke/src/actors.cpp
2020-10-31 13:24:30 +01:00
Christoph Oelckers
89d750c94f
- renaming in movemasterswitch and detonate.
2020-10-31 13:24:30 +01:00
Christoph Oelckers
38e0ac1e3f
- movefountain and moveflammable.
...
# Conflicts:
# source/games/duke/src/actors.cpp
2020-10-31 13:24:30 +01:00
Christoph Oelckers
544078c9ba
- moveflammable renaming.
2020-10-31 13:24:29 +01:00
Christoph Oelckers
7a482c6284
- make DHUDFont an object.
2020-10-31 13:20:54 +01:00
Christoph Oelckers
7de6528a1f
- the status bars work as objects.
...
# Conflicts:
# source/common/menu/menudef.cpp
2020-10-31 13:20:54 +01:00
Christoph Oelckers
3a0c84d3ca
- split statusbar.cpp in two.
...
To keep Raze-exclusive content out of the main file that's about to be edited.
2020-10-31 13:19:59 +01:00
Christoph Oelckers
41e1e9b51c
- ifhitbyweapon.
...
# Conflicts:
# source/games/duke/src/actors_d.cpp
# source/games/duke/src/actors_r.cpp
2020-10-31 13:19:26 +01:00
Christoph Oelckers
92c21e7259
- ifhitbyweapon cleanup.
...
Variables renamed and array accesses replaced with pointers in RR version.
2020-10-31 13:19:26 +01:00
Christoph Oelckers
28d0bc7477
- movecrane interface cleanup.
2020-10-31 13:19:26 +01:00
Christoph Oelckers
08f3e9e722
- variable renaming in movecrane for clarity
2020-10-31 13:19:25 +01:00
Christoph Oelckers
d95131cb4d
- actor iterators for movefx and its RRRA subfunction.
2020-10-31 13:19:25 +01:00
Christoph Oelckers
801e94ca54
- renamed variables in movefx for clarity.
2020-10-31 13:19:25 +01:00
Christoph Oelckers
be0880f106
- iterators in movedummyplayers and moveplayers updated.
2020-10-31 13:19:25 +01:00
Christoph Oelckers
cf8da6c6e3
- variable renaming for clarity.
2020-10-31 13:19:25 +01:00
Christoph Oelckers
b03a637e10
- ms function.
2020-10-31 13:19:24 +01:00
Christoph Oelckers
94892cc1f8
- set up the main menu background as default console background for Duke and its offspring games.
2020-10-25 15:06:06 +01:00
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
Christoph Oelckers
6ba06f5ed0
- ImageScroller WIP commit.
2020-10-08 22:20:41 +02:00
Christoph Oelckers
15eaf86f5a
- preparations for the image scroller menu.
2020-10-08 18:02:25 +02:00
Mitchell Richters
9bcdeae6cd
- InputPacket: Change q16avel
to avel
, changing type from fixed_t to float.
2020-10-08 14:47:30 +11:00
Christoph Oelckers
56eae0b42d
- got the basics working for Exhumed's main menu.
2020-10-08 00:21:07 +02:00
Christoph Oelckers
789eb6d51d
- Most of Duke's menus work again.
2020-10-07 20:32:43 +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
Mitchell Richters
e2691d4184
- Duke: Clean up a few missed things during f39939d114
.
2020-10-07 18:34:52 +11:00
Mitchell Richters
6a30d6880e
- InputPacket: Change q16horz
to horz
, changing type from fixed_t to float.
2020-10-07 18:22:07 +11:00
Mitchell Richters
d16b4651bb
- gamecontrol: Remove old horizon code left behind while cutting over each game.
2020-10-07 18:12:09 +11:00
Mitchell Richters
f39939d114
- gamecontrol: Initial setup of PlayerHorizon
struct and deployment within Duke.
...
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00
Mitchell Richters
082336e5f8
- buildhoriz: Implementation of pitch and BAM conversion code.
...
* Determined maximum horizon able to be handed by engine in Q16.16 format is 280039127.
* Re-did pitch math to work on this known maximum and standardised pitch around -90/90 degrees as it should be.
* Because pitch is now -90/90 and not ~-188/188, m_sensitivity_y probably requires re-scaling.
2020-10-07 13:29:04 +11:00
Mitchell Richters
8be8bcc87a
- Duke/SW: Fix InitTracerTurret()
to use player's q16horiz with full precision and replace some manually expressed mulscales with mulscale16()
inline from pragmas.h.
2020-10-07 13:28:58 +11:00
Mitchell Richters
09a05f354c
- Re-standardise horizon around 0 and not 100.
...
* Blood had this right. It makes sense that the horizon be based around as it's easier to work with.
* Removed all associated game math to deduct default horizon of 100 when doing weapon zvel etc, meaning actual horizon can just be used.
* Re-did return to center function to work on the already converted pitch. Return speed should be 1:1 with previous code.
2020-10-07 13:28:45 +11:00
Christoph Oelckers
bec1f67178
- implemented the menu caption for Duke et.al.
2020-10-06 20:49:55 +02:00
Christoph Oelckers
55e7e34707
- added texture aliases so that tiles can given real names in the texture manager.
...
Use this to turn Duke's and RR's tile enums into real names, leaving out RRTILExx - the few that are needed were renamed.
2020-10-06 19:26:22 +02:00
Mitchell Richters
bbc60e8424
- Duke: Ensure tripbomb's ammo_count decrements with use.
...
* Note: Unsure whether `isWW2GI()` was meant to be inversed but do not believe so. Have removed check for now.
* Fixes #104 .
2020-10-06 16:31:28 +11:00
Christoph Oelckers
3dbb8cbb11
- safety commit
2020-10-05 21:47:53 +02:00
Christoph Oelckers
82612a1330
- it compiles again (with lots of code commented out.)
2020-10-04 20:11:02 +02:00
Christoph Oelckers
ddc968f607
- disable palette emulation when map global fog is active.
...
This doesn't work well together and is pointless anyway as everything needs to be rendered at full brightness.
Fixes #99
2020-10-03 18:04:07 +02:00
Christoph Oelckers
89d5d18b9e
- these parts were missed somehow.
2020-10-02 22:42:54 +02:00
Christoph Oelckers
57945d2baf
- eliminated a few overlooked 'long's.
2020-10-02 22:18:08 +02:00
Mitchell Richters
43e447d40b
- Duke: Fix auto-aiming issues for shotgun and chaingun.
...
Fixes #98 .
2020-10-02 17:05:50 +10:00
Christoph Oelckers
4c2ff2950a
- for Duke/RR, when not using English force use of the regular text font for drawing the map label on the automap.
...
This essentially removes the tiny font which is simply too small to ever be able to receive a proper international extension from the equation for localization because the level name display was the only remaining relevant content using this font.
The only other screen where this font is still being used to draw text requiring translated content is the multiplayer summary which will have to be redesigned anyway if multiplayer becomes functional again.
2020-09-29 21:47:32 +02:00
Christoph Oelckers
6488f52055
- fixed: Restarting after dying unset the currently selected skill level.
2020-09-29 18:30:00 +02:00
Christoph Oelckers
b57e13ff62
- mouse code update.
...
May still need some tweaking of the factors.
2020-09-28 22:36:43 +02:00
Christoph Oelckers
dcae0c4103
- fixed incomplete merging of WW2GI/Duke code for the pistol animation
2020-09-28 08:55:59 +02:00
Christoph Oelckers
9ab29f5975
- reset ud.eog after playing the end of game cutscene.
...
If this persists, all following levels will also immediately end the game as well.
2020-09-27 20:34:48 +02:00
Christoph Oelckers
3a50f82498
- Duke: In the ending cutscene of the first episode, stop the music only when entering the summary screen.
2020-09-27 20:34:48 +02:00
Christoph Oelckers
5d35d02c87
- fixed overflow in first episode's end cutscene.
2020-09-27 20:34:48 +02:00
Christoph Oelckers
a5984ddc7c
- fixed sprite changing logic for developer commentaries and attenuate the music while commentaries are playing.
2020-09-27 12:52:26 +02:00
Mitchell Richters
392c9ec0d6
- Duke: Tune menu light amounts.
2020-09-27 17:52:20 +10:00
Christoph Oelckers
af8b7679b6
- bumped version numbers for 0.7.
2020-09-26 17:50:19 +02:00
Christoph Oelckers
b93a9b478a
- implemented World Tour's developer commentaries.
2020-09-26 17:43:34 +02:00
Christoph Oelckers
3a459ac603
- added a parser for WT's developer commentary definitions.
2020-09-26 16:18:44 +02:00
Christoph Oelckers
e549aa0527
- fixed: concmd_actor wrote beyond the end of the ScriptCode array.
...
This was causing spurious crashes.
2020-09-26 12:46:56 +02:00
Mitchell Richters
40a89fb26f
- Duke/RR: Fix alt HUD health flashing when > 100.
2020-09-27 02:27:03 +10:00
Mitchell Richters
837b7c0a30
- SW: Changed some downscaled and upscaled Q16.16 variables missed when doing 46810ec490
.
2020-09-27 02:07:07 +10:00
Mitchell Richters
362fda4378
- Duke: Change fix in 6e9576b871
to be outside of donewgame()
in case player is loading a map from the command line.
2020-09-26 09:17:50 +10:00
Mitchell Richters
6e9576b871
- Duke: Fix skill level coming in from main loop.
2020-09-26 08:55:10 +10:00
Christoph Oelckers
73c57af9ca
- added credit screen handling for Duke Nukem 1.3.
2020-09-25 20:22:30 +02:00
Christoph Oelckers
1fc919f5a1
- fixed episode startup on Duke so that the intro for ep. 4 plays.
2020-09-25 19:46:04 +02:00
Christoph Oelckers
89bc194035
- added shareware checks to the "start game" menus.
2020-09-25 19:36:50 +02:00
Christoph Oelckers
e7f16f6ff7
- Duke: do not play 1.5 intro sounds in 1.3
...
- Duke: In 1.3, the Duke team image should stay until dismissed manually.
2020-09-25 18:40:45 +02:00
Mitchell Richters
9b12675f4e
- processMovement()
: Re-arrange parameter variables somewhat so game-specific parameters are at the end and to allow some common defaults so they don't need specifying.
2020-09-25 22:26:50 +10:00
Mitchell Richters
4ff3810711
- Blood/Duke/RR/SW: Improvements to 3rd person viewing by modifying the rendered player's posz so the camera is looking further above the camera sprite as EDuke32 does. Blood just enables the crosshair when using 3rd person view.
2020-09-25 17:52:00 +10:00
Mitchell Richters
e7de0da36c
- Duke: Changed some downscaled and upscaled Q16.16 variables missed when doing 46810ec490
.
2020-09-25 17:08:44 +10:00
Mitchell Richters
0746b98886
- RR: Don't draw weapon on screen when in 3rd person view.
2020-09-25 16:17:55 +10:00
Mitchell Richters
9c0667a7ce
- Duke: Don't display cracking knuckles while in 3rd person view.
2020-09-25 16:17:34 +10:00
Mitchell Richters
ad1f0ce6c3
- Duke: Tune sizing in FullscreenHUD1 for Duke 3D 1.3D and Nam/WW2GI.
2020-09-25 09:26:55 +10:00
Mitchell Richters
5e947cd78f
- Duke: Fix occasional flicker in corner of 'Completed' text. Need to do the text after all backdrop changes.
2020-09-25 09:08:22 +10:00
Mitchell Richters
439633e6db
- Duke: Don't play 3rd pipebomb explosion if not Plutonium/Atomic.
2020-09-25 08:40:58 +10:00
Mitchell Richters
9e0bd569f7
Merge branch 'back_to_basics2' into Input_UnifyProcessMovement
...
# Conflicts:
# source/exhumed/src/input.cpp
2020-09-25 00:17:16 +10:00
Mitchell Richters
16cee1148b
- Duke: Change a few ps[] to use the p alias available following changes in f4fff5ee30
.
2020-09-25 00:09:31 +10:00
Mitchell Richters
04af1d9ce8
- All Games: Unify processMovement()
.
2020-09-24 22:32:37 +10:00
Mitchell Richters
081dfb187c
- Duke: Make changes in ce7af5fe0e
easier to read by way of aliases.
2020-09-24 09:05:42 +10:00
Christoph Oelckers
44fc452747
- World Tour: Fixed missing smoke on burning monsters
...
Yay, another one-liner...
2020-09-23 19:24:40 +02:00
Christoph Oelckers
daabb31bff
- more stat constants
2020-09-23 19:24:01 +02:00
Christoph Oelckers
67985b7819
- changespritestat literal number replacement
2020-09-23 18:51:43 +02:00
Christoph Oelckers
71213bf8bd
- added a missing code fragment for WT's lavapool.
...
This made them float in the air instead of being on the ground.
2020-09-23 18:18:23 +02:00
Christoph Oelckers
a6c45a8e52
- Duke: must serialize SB_CENTERVIEW (but no other bits.)
2020-09-23 18:18:23 +02:00
Christoph Oelckers
f4fff5ee30
- moved sync structure into the playerstruct for easier maintenance.
2020-09-23 18:18:23 +02:00
Mitchell Richters
8690c633d8
- Blood: Add extra call to inputState.ClearAllInput()
in StartLevel()
.
2020-09-24 00:20:40 +10:00
Mitchell Richters
64113f8f9c
- Blood/Duke/SW: Smooth out player's zpos adjustment while in 3rd person view.
2020-09-23 23:12:59 +10:00
Mitchell Richters
ce7af5fe0e
- Duke: Fix security cameras skewing over time.
...
* Fixes regression from e1ee9bc83c
. +='ing the angle by 16 gave a noticeable hiccup, but was keeping the poor math before in-check so the angle didn't drift.
* Using more temp data fields in hittype, properly define a min/max using the initial camera angle and the hitag which is conveniently the camera's viewing arc.
2020-09-23 18:31:12 +10:00
Christoph Oelckers
5784ff6ef7
- fixed damage type of incinerator's fireball.
...
A one-liner, what else... :D
2020-09-23 07:37:08 +02:00
Mitchell Richters
470f481619
- Duke: Simplify entire camera angle setup.
2020-09-23 15:34:03 +10:00
Mitchell Richters
ed9c8af82f
- Duke: Move changes performed in 53038e1b29
from FinalizeInput()
to processInputBits()
.
2020-09-23 15:03:34 +10:00
Mitchell Richters
53038e1b29
- Duke: Don't allow looking left/right when on a security camera screen.
2020-09-23 15:00:33 +10:00
Mitchell Richters
88608e0682
- Duke: Interpolate camera sprite angle in animatecamsprite()
. Fixes a "fixme".
2020-09-23 14:42:33 +10:00
Christoph Oelckers
5e6317b8b9
Merge remote-tracking branch 'remotes/Github_private/Blood_InputReworking'
2020-09-22 23:32:28 +02:00
Christoph Oelckers
2a2209b085
- cleanup and minor fixes.
2020-09-22 23:07:11 +02:00
Christoph Oelckers
880b811e0d
- rewrote map loader to work independently of data structure sizes.
...
This is needed to extend a few fields that are too narrow - e.g. the texture offset fields have no room for interpolating scrolling textures.
Blood not done yet, will also need to be changed to get rid of the limits.
2020-09-22 22:40:53 +02:00
Mitchell Richters
ac635ebd0f
- Blood/RR: Replace a few playerSet*()
calls with playerAdd*()
. Because the setters continually set until target is reached, can cause some perceivable smoothness issues if ticker re-targets's player's angle/horizon before input code has reached target.
2020-09-22 22:50:27 +10:00
Mitchell Richters
d40a2d3e95
Merge branch 'back_to_basics2' into Blood_InputReworking
...
# Conflicts:
# source/blood/src/hudsprites.cpp
# source/exhumed/src/status.cpp
# source/games/duke/src/game_misc.cpp
# source/sw/src/draw.cpp
2020-09-22 07:34:39 +10:00
Mitchell Richters
9859571ded
- DrawCrosshair(): Factor in Blood's adjustable horizon which defaults to 90.
...
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=69920 .
2020-09-22 07:29:52 +10:00
Mitchell Richters
59e4fae064
- Game input: Fix miscellaneous issues.
...
* Duke/RR: Fix `SB_CENTERVIEW` not clearing while `cl_syncinput 1`.
* Duke/RR: Remove superfluous call to `apply_seasick()`.
* RR: Change two calls from `playerSetAngle()` to `playerAddAngle()` Updated version of `playerSetAngle()` doesn't stop setting angle until target is reached, a bit too strict for this and compromised vehicle turning.
* `applylook()`: Remove dead flag. Was only used with Duke, no other game called the function when dead anyway. Since the input helpers are processed outside of `applylook()` now this is not needed.
* `applylook()`: Extend function with a bit of commentary.
2020-09-21 17:12:53 +10:00
Mitchell Richters
f806cdcec6
- Blood/Duke/RR/SW: Unify the player's angle/horizon helper functions.
2020-09-21 17:12:51 +10:00
Mitchell Richters
7bf1cacc7f
- Blood/Duke/RR/SW: Unify the player's angle function.
...
* For Blood/SW, exposes `SB_LOOK_LEFT`/`SB_LOOK_RIGHT` to games, hooking up `q16look_ang` and `q16rotscrnang` within.
* For SW, use Duke & Blood's return to center function and remove `PF_TURN_180` bit.
* For RR, replace a few misused bits with some bools inside of `player_struct`.
* Since bulk of functionality is sourced from Duke (30Hz), apply proper scaling so SW speed matches (40Hz).
2020-09-21 17:12:26 +10:00
Mitchell Richters
0ab3b33a6c
- Blood/Duke/RR/SW: Unify the player's horizon function.
...
* For Duke/SW, we continually apply `SB_CENTERVIEW` only if it was previously a toggled action, similar to Blood.
* For SW, we remove two SW-specific bits (`PF_LOCK_HORIZ` and `PF_LOOKING`) that are no longer needed.
* For Duke, we remove `return_to_center` and just use the `SB_CENTERVIEW` action bit as required.
* For `sethorizon()`, feature set and adjustment speeds are an averaged out accumulation across Duke/SW:
** GameTicRate is factored in for adjustment decisions to provide consistency for SW being the faster game.
** Adjustment amounts are half way between Duke/SW.
2020-09-20 20:01:36 +10:00
Mitchell Richters
1900cf1fcc
- Move Duke's getincangle()
function to the backend, create Q16.16 variant (getincangleq16()
) and replace Shadow Warrior's discrete implementations shared versions.
...
* Need SW's input helpers available for Blood but therefore also need an angle delta function that does not seem to exist in Blood.
* Realise that gamecontrol.h/cpp might not be the most appropriate place, but it's a shared location and these will go into binaryangle.h when its utilisation can be more realised.
* Because SW's logic was reversed, in that param #1 was the new angle and param #2 was the current, all calls have been reversed.
* By happenstance, also fixes an issue with multiple 180° turns in quick succession.
2020-09-20 16:21:13 +10:00
Christoph Oelckers
af298411df
- added widescreen titlepic for Duke Nukem 3D:
...
Also made some tweaks to the intro sequence drawer so that it recognizes image formats not depending on the game palette.
2020-09-17 23:20:50 +02:00
Christoph Oelckers
f5d14f826a
- added the SHOOT event and fixed some issues with poor code generation for the game data accessors.
...
They created different code depending on the passed index, this was changed to always emit the optional parameter, even when not needed, so that the interpreter does not need to second-guess.
2020-09-17 23:06:54 +02:00
Christoph Oelckers
8fa5d3d9d2
- added the remaining CON features from EDuke 2.x
...
Not everything will do something, though. This was some incredibly careless code operating without a safety net allowing uncontrolled write access to the map structure.
Most of the critical fields have been made read-only, which has been the only mode of access in the mods I checked.
Note that this does not enable scripting of the weapon sprite drawer, only the gameplay related features were done.
2020-09-17 23:06:54 +02:00
Mitchell Richters
e1ee9bc83c
- Duke: Fix camera advancing angle by 16 instead of 8 under circumstances.
2020-09-17 18:31:09 +10:00
Christoph Oelckers
6776508239
- widescreen asset setup and consolidation of .def file loading.
2020-09-16 19:13:06 +02:00
Christoph Oelckers
2095e9e3c6
- code changes for last commit - they were not picked up automatically.
...
# Conflicts:
# source/build/src/defs.cpp
2020-09-16 19:13:05 +02:00
Mitchell Richters
ce82eaf899
- Duke/RR: Address weapon drawer interpolation concerns raised in #403 .
2020-09-16 21:01:09 +10:00
Christoph Oelckers
867b8f006f
Reverted key input changes from yesterday.
...
At least the SW version did not work right so let's take no chances here.
2020-09-15 21:54:10 +02:00
Christoph Oelckers
1f4594b450
- Duke: Only read keyboard input for movement when called for the actual tic.
...
Since the added values are not scaled, doing this per frame has the potential risk of achieving too high total velocity when combined with other means of input.
The change here was kept as simple as possible.
2020-09-14 21:10:34 +02:00
Christoph Oelckers
0e58203d92
- fixed rintersect and removed some unused bits from engine.cpp.
2020-09-13 20:15:46 +02:00
Christoph Oelckers
a4754d7f34
- rewrote the map hack parser using sc_man.
...
This unexpectedly turned out a complete rewrite so now it is under my own license.
Also moved the remaining parts of map hack loading into the engine.
Overall I have to say that the feature is not what I expected, it's merely used to fudge the positioning of model sprites and for adding Polymer lights.
2020-09-13 13:01:44 +02:00
Christoph Oelckers
1f7bc6d69e
- interpolation fix from EDuke: "Patch from Striker to improve sprite interpolation"
...
Fixes #109
2020-09-11 22:54:52 +02:00
Christoph Oelckers
aba91b4f09
- avoid uninitialized data.
2020-09-11 21:16:29 +02:00
Christoph Oelckers
19b5e2464e
- For World Tour allow falling back on the classic sounds if the Oggs cannot be found
2020-09-11 21:04:47 +02:00
Christoph Oelckers
b7f0e2c3c3
- added sound FX remapping for World Tour so it can use the original VOCs.
...
Fixes #353
2020-09-11 20:17:36 +02:00
Christoph Oelckers
8716fabe9c
- fixed E5L1 sky definition having gone MiA.
...
Fixes #389
2020-09-11 19:56:20 +02:00
Christoph Oelckers
38cc094ac3
- adapt ClearAllInput to new globalized code.
2020-09-10 23:35:42 +02:00
Christoph Oelckers
d5b9a9ee43
Merge remote-tracking branch 'remotes/Github_private/InputStuffs' into back_to_basics2
2020-09-10 23:25:43 +02:00
Christoph Oelckers
f829bc96c8
- Duke: Fixed E5L4's sky
2020-09-10 22:06:43 +02:00
Christoph Oelckers
f4bd30b972
- Duke: Fixed noclip cheat message.
2020-09-10 21:50:22 +02:00
Christoph Oelckers
9ce8202eb1
- Duke: Added a file check for the map to be entered when ending a level.
...
World Tour contains a map definition for E5L9 but no map for it.
2020-09-10 21:39:52 +02:00
Christoph Oelckers
83eba019b8
- added support for Megaton's widescreen assets.
...
Fixes #386
2020-09-10 00:05:10 +02:00
Christoph Oelckers
b52a2b0d9a
- set up the loadscreen code.
...
This isn't active, though, because load times are so short these days that all this results in is an irritating screen flash before the level starts.
It may be activated later when hires assets are in use.
Fixes #10 (or not...? ;) )
2020-09-09 22:42:01 +02:00
Mitchell Richters
6570366a97
- Duke: Fix camera interpolations following uplift in 9615308fb3
.
2020-09-09 20:46:17 +02:00
Mitchell Richters
ee5689b07e
Merge branch 'back_to_basics2' into InputStuffs
2020-09-09 21:04:42 +10:00
Christoph Oelckers
d6c6561309
- that was for testing only.
2020-09-09 00:01:14 +02:00
Christoph Oelckers
9615308fb3
- Duke: fixed camera views glitching when changing their targets.
...
A nearly typical problem of this code. Not all relevant properties of the camera target were changed at once - there was a two frame discrepancy in which the camera pointed in some undefined direction after the change.
Fixes #15
2020-09-08 23:47:30 +02:00
Christoph Oelckers
cef1f8275b
- fixed backing off of monitor screens.
...
Although this is a blocking condition, it must not neutralize movement because it is needed to move away from the screen and end the camera view.
2020-09-08 23:09:40 +02:00
Mitchell Richters
b72a3326d0
Merge branch 'back_to_basics2' into InputStuffs
...
# Conflicts:
# source/core/d_net.cpp
2020-09-09 06:56:27 +10:00
Christoph Oelckers
f15657cc6d
- fixed missing widescreen sprite for shrinker/grower and bad light level for the incinerator.
...
Fixes #380
2020-09-08 22:50:38 +02:00
Christoph Oelckers
d011a16c5b
- added a menu option for WT's music switch.
...
Fixes #370
2020-09-08 22:37:21 +02:00
Christoph Oelckers
298949ceb8
- more compat.h cleanup
...
Its elimination is getting closer. :)
2020-09-08 18:48:18 +02:00
Christoph Oelckers
8d2d36457f
- consolidated the map name display on startup
...
Fixes #275
2020-09-08 18:28:41 +02:00
Mitchell Richters
92443806af
Merge branch 'back_to_basics2' into InputStuffs
2020-09-08 06:26:32 +10:00
Christoph Oelckers
a2e3bb5725
- fixed WT's incinerator and a few other minor things I found while comparing Raze's WT support code with BuildGDX's.
...
Fixes #357
2020-09-07 21:38:17 +02:00
Christoph Oelckers
703b142bad
- added a CVAR to disable WT's ogg music and a fallback for when it cannot be found.
...
Fixes #354
2020-09-07 21:26:07 +02:00
Christoph Oelckers
775c4a3b51
- fixed explosions in World Tour.
...
A classic result of trying to add new stuff to Duke's spaghetti code, shit like this would not happen if this code wasn't this poorly structured.
Fixes #360 and most of #357
2020-09-07 21:00:27 +02:00
Christoph Oelckers
de7da0d4d7
- fixed: The summary screen in Duke and RR was blocking without explicit user input.
...
It must check for the actual sound that was played, because at least in Duke the looping music is still playing.
Fixes #367
2020-09-07 20:09:53 +02:00
Christoph Oelckers
fc435565af
- always use the narrow status bar for overlay mode.
2020-09-07 19:43:46 +02:00
Christoph Oelckers
bd183ad682
- fixed World Tour weapon display and property parsing, resulting in incorrect ammo count for the flamethrower.
...
Fixes #356
2020-09-07 00:45:11 +02:00
Christoph Oelckers
0c60b28ea1
- fixed positioning of World Tour status bar
...
Fixes #355 .
2020-09-06 23:54:40 +02:00
Mitchell Richters
fa9fa88fce
Merge branch 'back_to_basics2' into InputStuffs
...
# Conflicts:
# source/core/gamestruct.h
# source/games/duke/src/duke3d.h
# source/sw/src/input.cpp
# source/sw/src/player.cpp
2020-09-07 07:51:37 +10:00
Christoph Oelckers
cbbbe2a09b
- Duke+RR: Don't quit the level summary screen through timeout when a sound is still playing.
...
Fixes #359
2020-09-06 23:23:17 +02:00
Christoph Oelckers
1060d74e08
- SW's automap sprite drawer.
2020-09-06 21:50:02 +02:00
Christoph Oelckers
2d547a4ef1
- re-added the sprite drawer for Duke's automap.
2020-09-06 21:31:05 +02:00
Christoph Oelckers
18b39fd952
- first stage of generic automap code.
...
Lines and textures get rendered, not all colors are correct - sprites yet to do...
2020-09-06 20:49:43 +02:00
Christoph Oelckers
809f8b5d4b
- hooked up the new automap framework.
2020-09-06 12:44:58 +02:00
Mitchell Richters
290e615807
- Move Duke's input scaling for unsynchronised input to backend as InputScale()
.
2020-09-06 20:19:26 +10:00
Mitchell Richters
722537a1f0
- InputState: Make CONTROL_GetInput()
return an object instead of accepting a pointer and provide to games as a function parameter.
...
* Provide read-only/const results from `CONTROL_GetInput()` so games can't change received input.
* Change non-descript `info` to `hidInput` (Human Interface Device).
* Remove a few unused prototypes.
2020-09-06 20:18:26 +10:00
Christoph Oelckers
a6c92aec64
- removed all automap code from SW and the flat drawer from the backend.
...
This should have been the last parts of automap code.
Now on to rebuild this thing in a cleaner fashion...
2020-09-06 12:14:08 +02:00
Christoph Oelckers
d61d279168
- excised Blood's entire automap code.
2020-09-06 10:59:45 +02:00
Christoph Oelckers
8f6f368445
- cleaned out the remaining parts of automap handling in Duke and Exhumed.
2020-09-06 10:42:39 +02:00
Christoph Oelckers
d947cc4765
- also took out the zoom variable so that no automap data remains in the playsim code.
2020-09-06 10:22:05 +02:00
Christoph Oelckers
c1a995822d
- took all automap related code out of Duke's game module.
2020-09-06 10:08:47 +02:00
Christoph Oelckers
dc0968bf61
- fixed fog on RRRA E2L1
...
Fixes #183
2020-09-05 23:20:48 +02:00
Christoph Oelckers
7dbae8b8f4
- enabled autosaves.
...
Fixes #55
This only creates them but does not auto-resume from them.
2020-09-05 22:39:27 +02:00
Christoph Oelckers
45882a02cc
- fix WT level name display.
2020-09-05 22:14:00 +02:00
Christoph Oelckers
8b2302ec67
- backslash eradication in sound definitions.
...
World Tour does this badly, even using double backslashes.
2020-09-05 22:01:19 +02:00
Christoph Oelckers
d5b7935ca1
- fixed the CON parser to treat tabs as whitespace.
...
Fixes #287 .
World Tour starts now but still has issues.
2020-09-05 21:53:48 +02:00
Christoph Oelckers
607d30ef8e
- fixed broken end of level timer in Duke.
...
Fixes #342
2020-09-05 17:56:35 +02:00
Christoph Oelckers
55c7c56709
- fixed bad sound check in Duke's E3 ending.
2020-09-05 17:56:09 +02:00
Christoph Oelckers
fa50cde93f
- fixed skill selection in Duke.
...
Screw these old shadowing menu variables. Well, the one for skill is gone now.
Fixes #344
2020-09-05 16:31:01 +02:00
Christoph Oelckers
9af093b818
- fixed screen job timer when paused
...
Fixes #343
2020-09-05 16:21:53 +02:00
Christoph Oelckers
c1786001b2
- route all game state changes through game actions.
...
This is to avoid problems with the main loop not calling Ticker and Render in sync.
2020-09-05 15:43:34 +02:00
Christoph Oelckers
32ec9ff369
- consolidated crosshair drawing and added ZDoom's crosshair code.
...
For Exhumed this is the default, for the other games it is an option.
Fixes #269 .
2020-09-05 13:57:26 +02:00
Christoph Oelckers
adbedd30c4
- consolidated the 4 functions for handling the automap zoom.
2020-09-05 00:58:25 +02:00
Christoph Oelckers
fd2ce0321e
- transitioned SW to level change event system
2020-09-04 21:15:15 +02:00
Christoph Oelckers
97f395bd72
- transitioned Blood to the new level change messaging system
2020-09-04 20:46:44 +02:00
Christoph Oelckers
77f96a1c75
- fixing some issues. Level transitions in Duke are working now.
2020-09-04 19:43:36 +02:00
Christoph Oelckers
e5e8c02f1d
- WIP level transition refactored to a game independent event system.
2020-09-04 19:43:35 +02:00
Christoph Oelckers
8f0a885f63
- route 'give' through the network for all games.
2020-09-03 17:39:41 +02:00
Christoph Oelckers
fb334e7f1a
- transitioned Blood's give command and changed SW's not to call the cheat handler.
2020-09-03 16:31:31 +02:00
Christoph Oelckers
3e5e956b72
- run most cheats through the network.
...
The remaining excpetions are the "give" CCMD and any level change action.
Unfortunately the implementation of most cheats is not multiplayer safe so right now it'd only be useful for demo recording (assuming that worked to begin with... ;))
2020-09-03 01:32:51 +02:00
Christoph Oelckers
a0874a26a7
- noclip cheat and splitting of Exhumed's cheat code into its own file.
2020-09-03 00:41:32 +02:00
Christoph Oelckers
66bf8113b8
- implemented the 'god' cheat as a network command.
...
This was mainly chosen as something simple to get the basics set up.
2020-09-03 00:29:17 +02:00
Christoph Oelckers
e19923ce4b
- removed setGameClockStart.
...
This won't be needed anymore.
2020-09-02 20:57:03 +02:00
Christoph Oelckers
aabbbcb2ff
- reset the network timer after lengthy operations.
...
This includes loading a level and busy-waiting for a sound to play.
Also block these loops and the sounds they wait for in network games to avoid problems from longer delays here.
The problem seems to be directly inherited from ZDoom which shows the same issue with screen wipes.
Fixes #297
2020-09-02 10:00:07 +02:00
Christoph Oelckers
e5612b82c7
- fixed: The tile manager created its backup arrays before loading .def files.
...
This could let such textures disappear with the new main loop.
2020-09-02 00:36:49 +02:00
Mitchell Richters
1354d52c05
- Major cleanup of Q16.16 utilisation within games and engine.
...
* Remove fix16.h/cpp and utilise library from m_fixed.h.
* Extend m_fixed.h with two inline functions for int to/from float operations.
* Replace fix16_floor operations with those from xs_Float.h
* Replace multiple Q16.16 conversions from 0 to just be 0.
* Replaced all found in-game bit-shifts and multiplications/divisions with inline functions from m_fixed.h
* Replaced many casts of FRACUNIT as double in SW's panel.cpp as it is converted to double by way of type promotion.
* Fixed missed precision fixes in SW's panel.cpp where some types weren't declared correctly.
* Replaced 100+ `Cos()/Sin() >> 16` operations for Blood with inline functions `CosScale16()/SinScale16()`.
2020-09-01 23:00:47 +10:00
Christoph Oelckers
3204a3e5fc
- negated the meaning of SB_AIMMODE.
...
This is because 'classic' aim mode will reset the view if the mouseaim key is not pressed.
The problem with this is that an empty input packet will trigger a view reset. If the meaning is inverted the default aim mode is free mouse view which doesn't try to alter any view state and is therefore preferable for an empty packet.
Fixes #292
2020-08-31 20:51:22 +02:00
Christoph Oelckers
ac5abd8aac
- removed ready2send variable.
...
It's a leftover from the old netcode.
2020-08-31 20:25:08 +02:00
Christoph Oelckers
827c406437
- don't play activation sound when not having a Holoduke powerup.
2020-08-31 20:04:20 +02:00
Christoph Oelckers
f0ca87dc82
- fixed mixed up Holoduke messages.
...
Fixes #289
2020-08-31 20:01:55 +02:00
Christoph Oelckers
e5d963c515
- refactored third person view to only access the clock in its worker function
...
Timer values in interface code are undefined, these should not access anything that changes at real time.
Also use smoothratio to do the calculation in frame time, not tic time.
2020-08-31 19:27:22 +02:00
Christoph Oelckers
a8bb6ba515
- base the turbo turn timer on the actual level tic rate
...
This has a threshold that could lead to different behavior, depending on whether synchronized or unsynchronized input is used, it also used an undefined state of gameclock for its calculations.
By basing this on the levelclock consistency is ensured.
2020-08-31 19:23:05 +02: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
Christoph Oelckers
9a208185d6
- levelclock increment after tick.
...
This ensures that the first tick always gets a value of 0.
2020-08-31 19:21:02 +02:00
Christoph Oelckers
bf4f538c61
- a few more places where gameclock could be substituted.
...
Nothing here needs higher precision.
2020-08-31 19:20:04 +02:00
Christoph Oelckers
2bf368d49b
- redid the timer for the automap zoom
...
Add more precision and uncouple from the game timer
2020-08-31 19:18:53 +02:00
Christoph Oelckers
45a22eb3cd
- do proper interpolation of the snorkel in RR.
2020-08-31 19:06:53 +02:00
Christoph Oelckers
03aad6559b
- added a global leveltimer variable to Duke.
...
This timer only gets incremented by the main game ticker when the playsim is running.
This timer gets used for all playsim-related timing and animations so that these are decoupled from imprecisions in the global timer.
2020-08-31 00:33:41 +02:00
Christoph Oelckers
34104a74d8
reduce dependency of code on global gameclock variable
...
passing it as parameter to operateweapon*
2020-08-31 00:17:40 +02:00
Christoph Oelckers
007c6e122d
- gameclock abstraction
...
This may need more work to have a reliable timer
2020-08-31 00:16:43 +02:00
Christoph Oelckers
2f05a93547
Merge branch 'Packet' into back_to_basics2
...
# Conflicts:
# source/core/gamestruct.h
# source/games/duke/src/gameloop.cpp
# source/games/duke/src/player_d.cpp
2020-08-31 00:09:56 +02:00
Christoph Oelckers
b8258da997
- cleaning out some trash from compat.h.
...
The header from hell...
2020-08-30 23:34:40 +02:00
Christoph Oelckers
00d35bc42c
- fixed the number pulsing on Duke's and RR's HUD.
2020-08-30 22:52:50 +02:00
Mitchell Richters
1617938d4f
- Duke: When using cl_showmagamt 1
, increase pistol maximum by 4 so that when you have full ammunition, you have a full clip.
...
* On the fence about this. Lower makes the game harder, and higher could mean the difference between life and death. I do think that if we're showing amounts in the magazine, full ammo should constitute a full magazine. I think the max of 200 is an oversight from the original devs as all other games have proper defaults that reflect the magazine or cylinder capacity.
2020-08-30 20:24:38 +02:00
Mitchell Richters
eb3a21e677
- Duke: Implement cl_showmagamt
for the RR's pistol and shotgun.
2020-08-30 20:24:37 +02:00
Mitchell Richters
161647ed5b
- Duke: Implement cl_showmagamt
for the game's pistol.
2020-08-30 20:24:37 +02:00
Mitchell Richters
e32cd81cc7
- Unify stat fps
for all games.
2020-08-30 20:24:36 +02:00
Christoph Oelckers
765f211e05
- things are mostly working again.
...
Rendering produces an image again, input gets properly processed, but unsynchronised mouse input isn't properly applied yet.
2020-08-30 19:59:46 +02:00
Christoph Oelckers
38d10cc591
- game input works, but still no 3D scene rendered.
2020-08-30 13:04:07 +02:00
Christoph Oelckers
ffe5b114f3
- the engine starts on the new main loop and is capable of running the intros and the menu, but not the game yet.
2020-08-30 12:49:21 +02:00
Christoph Oelckers
d59284c96b
- transitioned Duke to the new main loop.
...
Everything compiles, but hasn't been tested. Doing a safety commit first.
2020-08-30 12:02:32 +02:00
Christoph Oelckers
0c455acaa2
- more work to switch over to the new loop.
...
Mainly separation of ticker and render calls
2020-08-30 10:42:44 +02:00
Christoph Oelckers
1e0b8038e5
- removed I_ResetTime entirely and refactored SW's use of it.
2020-08-30 08:13:34 +02:00
Christoph Oelckers
49106c5b5e
- Duke: Do not reset the global ticker.
...
The new main loop code cannot handle that. Instead set a start value for gameclock so that gameclock can be based on an arbitrary time value instead of directly representing global time.
2020-08-30 08:04:33 +02:00
Christoph Oelckers
cc04d41903
- Duke: moved the clock reset to a separate function and deleted the unused lockclock variable.
2020-08-30 07:53:20 +02:00
Christoph Oelckers
d49aedacea
- continued work on main loop - added a few new entry points to the game interface.
2020-08-30 00:55:49 +02:00
Christoph Oelckers
fab561d757
- cleaned up Duke's main GameTicker function.
...
* moved the part that alters the input before queuing it to GetInput
* moved moveloop into the main function
* reshuffled a few things for better grouping by task.
2020-08-29 21:20:10 +02:00
Christoph Oelckers
20426a5a4f
Revert "- pass loc as a parameter to Duke's GetInput function to uncouple it from the global variable."
...
This reverts commit a03b6cf57c
.
Turns out this wasn't really useful.
2020-08-29 21:09:04 +02:00
Christoph Oelckers
a03b6cf57c
- pass loc as a parameter to Duke's GetInput function to uncouple it from the global variable.
2020-08-29 18:07:49 +02:00
Christoph Oelckers
56d0647412
- migrated the last 3 remaining UI controls to CCMDs.
2020-08-29 17:49:15 +02:00
Mitchell Richters
7ff73ae2f1
- Duke: Add missing World Tour flamethrower from alt weapon mode implementation completed in 51a08fbaf3
.
2020-08-29 22:30:45 +10:00
Christoph Oelckers
694444b62a
- converted the remaining input bits.
...
Looks like it is working in all games except Blood (not that it surprises me that it's Blood again which has issues...)
2020-08-29 13:32:55 +02:00
Mitchell Richters
51a08fbaf3
- Duke: Implement WeaponSel_Alt
for Duke and RR.
2020-08-29 21:27:58 +10:00
Christoph Oelckers
dc1f56e8f9
Merge remote-tracking branch 'remotes/Github_private/back_to_basics2' into Packet
...
# Conflicts:
# source/core/inputstate.cpp
# source/exhumed/src/exhumed.h
2020-08-29 01:19:48 +02:00
Christoph Oelckers
fe7f3a2f9e
- handle the run key.
2020-08-29 00:57:07 +02:00
Christoph Oelckers
b9e0f493b2
- transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire.
2020-08-28 23:25:08 +02:00
Christoph Oelckers
847fa48724
- cleaned out the remaining parts of baselayer.h
...
In particular this means to remove the option to disable widescreen aspect ratios. The way this was handled makes no sense with the current render backend.
The aspect ratio code will have to be redone entirely to properly obey the backend's settings.
2020-08-28 09:06:49 +02:00
Christoph Oelckers
d73bf62465
Revert "- Set frame-time as close to the buffer swap as possible, and calculate smoothratio for Duke/SW as late as possible."
...
This reverts commit 97feb483ab
.
2020-08-28 08:25:51 +02:00
Mitchell Richters
ea2790ce08
- Duke: Switch game tic back to a while loop. I didn't mean to commit it this way in ab06235971
.
...
* I doubt anyone will be running this on a system where computing a tic might take longer than a tic, but it's more consistent with the other games and is what it was.
2020-08-28 15:29:41 +10:00
Mitchell Richters
97feb483ab
- Set frame-time as close to the buffer swap as possible, and calculate smoothratio for Duke/SW as late as possible.
...
* Micro-optimisation, but was getting a very occasional jitter in Duke 3D that seems to have gone with this.
2020-08-28 15:27:16 +10:00
Christoph Oelckers
d62d2eaec7
- processed all remaining local input CCMDs and removed some bits only needed for multiplayer.
...
These MP bits should be reimplemented as network commands later, they only take up valuable space in the bit field.
2020-08-28 00:03:35 +02:00
Christoph Oelckers
ee7d558282
- removed the remains of sending pause with the input packets.
...
None of this was really working anymore, but will have to be rethought once a network stream exists again.
But even then, this is better sent as a separate command, and in MP only.
2020-08-27 22:38:52 +02:00
Christoph Oelckers
447573aa36
- consolidation of invprev, invnext and invuse.
2020-08-27 22:19:24 +02:00
Christoph Oelckers
43de0d8312
- consolidation of inventory item activation through hotkeys.
...
This also adds hotkeys for Exhumed which never implemented them.
2020-08-27 21:25:09 +02:00
Mitchell Richters
0c55c3983c
- Duke: Fix potential interpolation issues for RR's shotgun observed while working on something else.
2020-08-27 22:47:18 +10:00
Mitchell Richters
a2b51edcdb
- Duke: Delete enum created in 3e79e7b63f
and move CRACK_TIME
to miscConstants
.
...
* Didn't have a very good look, apparently...
2020-08-27 16:09:18 +10:00
Mitchell Richters
65a54361b4
- Duke: Apply same fix in 3e79e7b63f
for RR, accidentally missed.
2020-08-27 15:55:32 +10:00
Mitchell Richters
3e79e7b63f
- Duke: Fix bug where player wasn't cracking knuckles after 777 idle tics while cl_syncinput
was 1.
...
* Use opportunity to replace the literal constant of `777` with an enum.
2020-08-27 15:54:49 +10:00
Christoph Oelckers
10df3e094a
- rework of weapon input to use common features in shared code.
...
This also adds stubs for all unimplemented features in the games for easier addition.
2020-08-27 00:53:35 +02:00
Christoph Oelckers
f597f7c265
- made the GameFunc constants global again.
...
With most of the more specific features being migrated to CCMDs the list is relatively clean now, with merely 2 buttons that are game specific.
2020-08-27 00:25:59 +02:00
Christoph Oelckers
c7e667a17a
- transition weapon selection in SW.
...
Thanks to the macro insanity for trivial operations in this code base this turned out to be a lot more troublesome than Duke...
2020-08-27 00:06:59 +02:00
Christoph Oelckers
e768a2bf24
- use new bitmask for weapon selection in Duke.
2020-08-26 23:02:55 +02:00
Christoph Oelckers
36d676ca20
- renamed ESyncBits so that the replacement can take that name later.
2020-08-26 22:39:15 +02:00
Christoph Oelckers
4e846f8d66
- do not print game init messages to the notify display.
2020-08-26 20:19:54 +02:00
Christoph Oelckers
abf715eace
- unified the packet structures of all games.
...
Currently the bit fields are still separate and they have to be merged, but for now the added memory does not matter.
Having this structure in the common parts will allow work on consolidating the input code, though.
2020-08-26 17:12:48 +02:00
Christoph Oelckers
b76168f673
- moved the main event processing functions into the global main loop.
...
Now, with all the Build timer stuff removed these calls were all identical between games.
2020-08-26 16:59:41 +02:00
Mitchell Richters
88a49b0d22
- Duke: Restore RPG harsh recoil behind a CVAR.
...
# Conflicts:
# source/core/gamecvars.cpp
# source/core/gamecvars.h
2020-08-26 16:45:41 +02:00
Mitchell Richters
839a7bcbe4
- subjective fix to Duke 3D's RPG harsh recoil.
2020-08-26 16:45:41 +02:00
Mitchell Richters
62388e30be
- fix C_SetNotifyFontScale()
for RR.
...
Fixes #264 .
2020-08-26 22:33:19 +10:00
Christoph Oelckers
ddd6a300ab
- added UpdateSounds calls to the blocking loops in Duke's and SW's StartGame functions.
2020-08-26 04:15:33 +02:00
Christoph Oelckers
cc5e6d19c3
- fixed sound updating by moving the engine's UpdateSound call into the main loop.
...
This needs to be called unconditionally for every frame being rendered, not all of the game modules did that.
Placing this call here ensures that it is independent of anything the games do.
2020-08-26 04:10:16 +02:00
Christoph Oelckers
de871c9ab9
- use the game timer, not the Build timer for the sound eviction delay.
...
This is supposed to wait for two game frames to be on the safe side.
2020-08-26 03:50:07 +02:00
Mitchell Richters
e1424d454f
- Duke: Clean out some left over stub code during initial testing.
2020-08-26 11:23:57 +10:00
Mitchell Richters
4eec9dca63
- Duke/SW: Use I_GetBuildTime()
instead of gameclock
in game-side sound code.
...
* Code is called where `gameclock` might not be set.
2020-08-26 10:09:02 +10:00
Mitchell Richters
ef728429e0
- Core: Remove legacy smoothratio calculator CalcSmoothRatio()
.
2020-08-26 09:49:47 +10:00
Mitchell Richters
e0aaaf1f60
- All Games: Move gameclock
and lastTic
to gamecontrol.
2020-08-26 09:49:44 +10:00
Mitchell Richters
76776d24d7
- All Games: Remove use of ClockTicks
and replace with int
.
2020-08-26 09:49:42 +10:00