Commit Graph

12672 Commits

Author SHA1 Message Date
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