Christoph Oelckers
74df8f55da
- moved c_console.cpp to 'common'.
2020-10-25 13:26:40 +01:00
Christoph Oelckers
8d3585afe1
- console cleanup.
...
The bulk of the console is now free of game dependencies.
2020-10-25 13:14:42 +01:00
Christoph Oelckers
8bfb0b1e20
- do not dim the objects of the Exhumed background screen.
...
This was for dimming the console background but since the console already dims its background itself it made the background nearly opaque black.
2020-10-25 09:22:17 +01:00
Christoph Oelckers
273ad5e133
- backend update
2020-10-25 09:20:26 +01:00
Christoph Oelckers
570897005c
- added sound playback to the Smacker video player.
...
Thanks to Blood's weird setup and the resulting lack of sound support in NBlood's player I never realized that this is a fully featured movie format that actually has sound support.
Now the soundtrack will play if present.
2020-10-25 00:46:39 +02:00
Christoph Oelckers
1a21e73cd9
- fixed bad collision state check in movesprite.
...
Fixes #147
2020-10-24 21:36:27 +02:00
Christoph Oelckers
aeda977bc2
- fixed incomplete font initialization.
2020-10-24 21:02:00 +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
f02cf7e067
- fixed issues with fog setup and added missing fog to Exhumed's red palette.
...
Foggy lookups should not attempt to calculate a fade ramp, that does not work if the color gets brighter with distance.
Fixes #143
2020-10-24 20:33:33 +02:00
Christoph Oelckers
acda4b7799
- fixed Duke's RPG explosion
...
Fixes #146
2020-10-24 19:44:10 +02:00
Christoph Oelckers
28a926eb9a
- Blood: Copy the 'shade' member for sprites.
...
This got lost when the loader was transitioned to using a local buffer to read the map data.
Fixes #140
2020-10-24 19:11:58 +02:00
Christoph Oelckers
c33525381e
- undid the native part of GetFullscreenRect because the functions are not compatible.
2020-10-24 18:13:45 +02:00
Christoph Oelckers
ce03813ab1
- Exhumed: Fixed the invulnerability item.
...
Fixes #137
2020-10-24 18:03:06 +02:00
Christoph Oelckers
c82d9d2908
- backend update from GZDoom.
2020-10-24 17:30:47 +02:00
sinisterseed
8b03abcd00
- allow Wang to make sounds when healing with "Player Speech" turned off.
...
Looks like I overlooked this one while doing the speeches, which left Wang completely silent when healing. This allows his relief sound to play when the toggle is off, but the "Acupuncture" joke will still be silenced.
2020-10-24 14:24:54 +03: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
8868be659f
- make snd_speech toggle work in SW.
2020-10-23 22:53:02 +02:00
sinisterseed
f78d9fb770
- marked most of Wang's speech lines to be used with the "Player Speech" toggle.
2020-10-23 22:38:57 +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
d90badef6f
- Exhumed: Amend b6ec41e2b1
to ensure next/prev weapon is actually available before trying to switch to it.
...
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=70266 .
2020-10-22 19:30:04 +11:00
Christoph Oelckers
e702a13ef4
- close the quickload and quicksave confirmation screens after selection.
...
Fixes #139
2020-10-22 01:01:28 +02:00
Mitchell Richters
c98f7ac491
- gameinput.cpp: Don't set a target when serialising PlayerHorizon
struct.
...
* Fixes #131 .
2020-10-22 09:41:21 +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
699c32ff4a
- fixed quicksave setup
...
Fixes #133
2020-10-20 23:34:30 +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
Mitchell Richters
a00da23654
- searchpaths.cpp: When filtering duplicate games to delete, if CRC matches and CRC == 0, test whether name matches as well.
...
* Cryptic Passage for Blood has no CRC and therefore was failing this catch.
* Fixes #130
2020-10-19 20:46:22 +11:00
Christoph Oelckers
66c097b3b8
- fixed bad Holoduke check in alterang.
2020-10-18 21:54:30 +02:00
Mitchell Richters
ff9c7bf0bb
- binaryangle.h: Create osum()
for PlayerHorizon
and PlayerAngle
structs and use within each struct's interpolatedsum()
method.
...
* Already doubled up by calculating `sum()` again within `interpolatedsum()` and no point changing that out without an `osum()`.
2020-10-18 22:43:42 +11:00
Mitchell Richters
cd683e6511
- binaryangle.h: Add missed line from 4e07942cff
to calculate interpolation ratio using multiply instead of divide. Hopefully in the future we can just use a true double between 0 and 1 like GZDoom...
2020-10-18 22:05:21 +11:00
Mitchell Richters
4e07942cff
- binaryangle.h: Minor clean up of PlayerHorizon/PlayerAngle structs.
...
* Sync PlayerHorizon's `settarget()` with changes to PlayerAngle's from 19d9e1a947
.
* For each struct's `addadjustment()`, multiply value by unit there rather than always within `processhelpers()`.
* Properly use `xs_CRoundToUInt()` within PlayerAngle's `processhelpers()` method instead of the signed version.
* Use `abs()` within PlayerAngle's `processhelpers()` like PlayerHorizon's.
2020-10-18 22:00:39 +11:00
Mitchell Richters
19d9e1a947
- binaryangle.h: Fix issues with PlayerAngle.settarget()
following changes in bf5bd01164
.
...
* Just was not working whatsoever, really...
2020-10-18 21:31:36 +11:00
Mitchell Richters
666fe71201
- SW: Repair issues with sector object sounds following a506b45369
.
...
* Fixes #132
2020-10-18 21:23:41 +11:00
Christoph Oelckers
a8eaf3575f
- warning fixed and constants used.
2020-10-18 12:18:19 +02:00
Christoph Oelckers
c2828fe2e3
fixed undefined end of list behavior of iterators
...
Also fixed a few warnings
2020-10-18 12:14:05 +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
Christoph Oelckers
bc0a55de41
- backend update.
2020-10-17 16:01:31 +02:00
Mitchell Richters
a9ad043c36
- Partially resolve issues loading autoexec.cfg files.
...
* This works for Raze's running directory, but is not pulling in autoexec.cfg files from subdirectories from Raze's running directory (Duke, Duke.Duke) or paths where game content resides (Steam, for instance).
* Partially addresses #110
2020-10-17 12:58:00 +11: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
6385539144
- Port over i_timescale
CVAR from GZDoom for use with debugging.
...
* Had situations where this would have been useful instead of manipulating GameTicRate and rebuilding.
2020-10-16 10:31:11 +11:00
Christoph Oelckers
197a5f642a
- properly delete backing images in the texture manager.
...
Although the images themselves are automatically taken down, any memory they allocate is not - and some of the special tile classes do need dynamic storage.
2020-10-15 20:22:41 +02:00
Christoph Oelckers
4f7c0b696c
- and finally the iterators in the backend.
2020-10-15 20:22:40 +02:00
Christoph Oelckers
db4f0d041e
- all iterators in Exhumed handled.
2020-10-15 20:22:40 +02:00
Christoph Oelckers
a8e7d1ef74
- the rest for SW.
2020-10-15 20:22:40 +02:00
Christoph Oelckers
6eb6938bbe
- another batch in SW.
2020-10-15 20:22:40 +02:00
Christoph Oelckers
727e2ceb29
- iterator variable cleanup.
2020-10-15 20:22:39 +02:00
Christoph Oelckers
679c394b29
- the second third of SW.
2020-10-15 20:22:39 +02:00
Christoph Oelckers
a506b45369
- one third of SW's iterators.
2020-10-15 20:22:39 +02:00
Christoph Oelckers
eb78b88598
- all Blood stat iterators ported.
2020-10-15 20:22:39 +02:00
Christoph Oelckers
33164694b9
- use iterator class for all stat loops in Blood's actor.cpp.
2020-10-15 20:22:38 +02:00
Christoph Oelckers
0a0a995cbd
- some cleanup of build.h
2020-10-15 20:22:38 +02:00
Christoph Oelckers
be3292d29b
- removed the mostly unused macros for sprite iteration.
2020-10-15 20:22:38 +02:00
Christoph Oelckers
aa5c7c3e34
- replaced all sector sprite iterators in Blood.
2020-10-15 20:22:38 +02: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
0c95aee8f5
- some quick renames.
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