Christoph Oelckers
b548d9eca2
- a few more quick sector[] replacements.
2021-11-06 14:19:55 +01:00
Christoph Oelckers
bc56b5a28f
- RR: cleaned up STAT_DESTRUCT init code a bit
2021-11-06 14:19:54 +01:00
Christoph Oelckers
8818a3f1cb
- Duke: added a getSector method to DDukeActor.
2021-11-06 14:19:54 +01:00
Mitch Richters
3778327818
- Duke: Back up rotscrnang
if script sets target to new value so we can interpolate the changes.
2021-11-06 17:57:37 +11:00
Mitch Richters
7499c84d0b
- Add interpolatedhorizon()
inlines to handle interpolating fixedhoriz
objects without having to convert old and new values back to Q16.16 first.
2021-11-06 14:07:58 +11:00
Christoph Oelckers
389f760d45
- address C++20 deprecation warnings with enums in floating point arithmetic.
2021-11-02 23:32:31 +01:00
Mitch Richters
523285b9b0
- Duke (RR): Clean up some unnecessary FixedToFloat()
usage with the fixedhoriz
asbuildf()
method.
2021-11-02 10:29:26 +11:00
Christoph Oelckers
86166f5e67
Revert "- xs_Float.h
: Make all inlines return an unsigned value, and change previous unsigned inlines to signed."
...
Revert "- `xs_Float.h`: Add `getint()` getter to `_xs_doubleints` struct."
Revert "- SW: When adjusting horizon in `DoPlayerDeathHoriz()`, just use integer horizon values and not Q16.16."
Revert "- Duke (RR): Clean up some unnecessary `FixedToFloat()` usage with the `fixedhoriz` `asbuildf()` method."
Revert "- `binaryangle.h`: Use `constexpr` on inline functions where it was previously not possible to do so."
Revert "- `m_fixed.h`: Use `constexpr` on inline functions where it was previously not possible to do so."
Revert "- `xs_Float.h`: Convert header to `constexpr`."
This does nor work as it violates the constexpr rules for unions. The code will error out on compilation for accessing an inactive member of a union.
2021-11-01 20:25:38 +01:00
Mitch Richters
1363ed654c
- Duke (RR): Clean up some unnecessary FixedToFloat()
usage with the fixedhoriz
asbuildf()
method.
2021-11-01 23:37:32 +11:00
Mitch Richters
eb8b075727
- binaryangle.h
: Change binangle
bitshift operators to operate on signed value to properly handle angles > 1024.
2021-11-01 22:13:39 +11:00
Mitch Richters
a1570c185f
- Duke: Remove posx
/posy
/posz
variables and replace with points in the previously unionised pos
vec3_t
variable.
2021-10-31 17:52:52 +11:00
Mitch Richters
b02a6a3ec9
- Replace MIN()
from templates.h
with version provided in STL.
2021-10-30 10:36:15 +02:00
Mitch Richters
9894729fc2
- Replace MAX()
from templates.h
with version provided in STL.
...
# Conflicts:
# source/common/textures/hw_ihwtexture.cpp
# source/common/utility/templates.h
2021-10-30 10:36:02 +02:00
Christoph Oelckers
57b638f26f
- use std::clamp instead of our homegrown version.
2021-10-30 10:35:00 +02:00
Christoph Oelckers
821f3d356b
- renamed DDukeActor::GetIndex to GetSpriteIndex to bring it in line with the other games.
2021-10-24 09:22:35 +02:00
Christoph Oelckers
4d94fa9b03
- Duke/RR: strip trailing spaces off strings parsed in CON.
2021-10-19 21:49:02 +02:00
Christoph Oelckers
62d0d3712e
- use a sprite flag to mark mapped sprites.
...
This avoids another global array which needs to be addressed by sprite index.
2021-10-14 15:09:43 +02:00
Christoph Oelckers
b1ac1ad585
- more changesprite* renaming.
2021-10-12 21:36:42 +02:00
Christoph Oelckers
2e37cc627c
- function renaming for clarity and easier lookup.
2021-10-12 21:36:42 +02:00
Christoph Oelckers
948f194064
- fixed warnings in Duke.
2021-10-08 19:21:29 +02:00
Mitch Richters
61ba58c529
- Duke: Use DeferredGameStart()
instead of ChangeLevel()
in cheatLevel()
to instantly warp to the targeted map, matching DOS behaviour.
...
* Fixes #529 .
2021-10-05 08:50:05 +11:00
Christoph Oelckers
6be611fd94
- fixed merge.
2021-09-12 18:32:11 +02:00
Christoph Oelckers
fefc9e91da
- rename weaponhit to DDukeActor.
...
Just make do with one name instead of aliasing it.
2021-08-30 08:12:39 +02:00
Christoph Oelckers
2b6bc414f5
- Duke: fixed a few places using a sprite index where a player index is needed.
2021-08-30 08:08:33 +02:00
Christoph Oelckers
0bd0923f44
- cleaned up some dirty code.
2021-08-30 08:07:40 +02:00
Christoph Oelckers
07eda3cb4a
- Duke: don't process input when not in a game.
2021-08-30 08:06:26 +02:00
Christoph Oelckers
9a8ee00aec
- set currentLevel before calling engineLoadBoard.
...
This is needed if the compatibility patcher needs to alter mapinfo data.
2021-07-27 22:12:29 +02:00
Mitchell Richters
1fa0863a52
- Duke: Amend af9f2f3eb6
to not reset the skill if incoming skill is -1;
2021-07-26 19:41:17 +10:00
Christoph Oelckers
dfb18ef9a9
- Duke/RR: Call Bowling lane reset code only when playing RR.
...
This may alter some tile references which will cause problems with hires replacements in Duke .
2021-07-25 12:43:03 +02:00
sirlemonhead
e4fb67bc25
Rides Again: Possible array index by -1 in Proj_DoHitscan(). Added check to prevent this.
2021-07-25 19:37:02 +10:00
Mitchell Richters
af9f2f3eb6
- Duke: Ensure gi->NextLevel()
sets the skill level upon invocation.
2021-07-20 18:55:16 +10:00
Mitchell Richters
675356be1a
- Ensure g_nextskill
is used everywhere so that setting skill for next level works properly.
2021-07-20 18:51:34 +10:00
Mitchell Richters
33845c4a23
- Add skill
CCMD to return player's current skill, while also being able to set skill for next game.
...
* Fixes #332 .
2021-07-20 18:50:58 +10:00
Mitchell Richters
4ac1376b9f
- Make naming of multiplayer episode exclusion stuff from d0e6a7ea29
more generic and exclude invalid episodes from "Duke It Out in DC", "Duke Nuclear Winter" and "Duke Caribbean".
2021-07-19 12:24:47 +10:00
Mitchell Richters
bcff74f5e4
Revert "- Duke: Restore a little bit of original code to make comparisons between us and the source easier."
...
This reverts commit 7607190dad
.
* Not good in hindsight... We need the actual value from the backend to ensure we can match up against `WeaponSel_Next`/`WeaponSel_Prev`/`WeaponSel_Alt` as required.
2021-07-17 22:42:58 +10:00
Mitchell Richters
7607190dad
- Duke: Restore a little bit of original code to make comparisons between us and the source easier.
2021-07-17 12:12:36 +10:00
Mitchell Richters
ec20f66eda
- Duke/RR: Always ensure player's wantweaponfire
is reset to -1
after switching weapon.
...
* Fixes #333 .
2021-07-17 12:12:12 +10:00
Mitchell Richters
0bb0896985
- Duke: Fix BOSS2 (Cycloid Emperor) killing himself issue by removing some lines left behind from a2e3bb5725
.
...
* Fixes #455 .
2021-07-17 10:56:21 +10:00
Mitchell Richters
d0e6a7ea29
- Allow CON-based games to have multiplayer episodes filtered from menu.
...
* Fixes #461 .
* Fixes #462 .
2021-07-16 20:55:29 +02:00
Mitchell Richters
32283037ed
- Use isWW2GI()
in more places.
2021-07-11 12:42:33 +10:00
Mitchell Richters
b015bc0685
- Duke (RRRA): Fix alt weapon slot for CHICKEN_WEAPON
and CROSSBOW_WEAPON
.
...
* Fixes #440 .
2021-06-24 18:56:12 +10:00
Christoph Oelckers
20ca676539
- RR: fixed crash in function that handles acts of mass destruction (like blowing up gas stations.)
...
With bad setups 'spr' could be left uninitialized. This crashed E1L1 of 'The Hickston Swamp' mod.
2021-06-11 23:20:50 +02:00
Christoph Oelckers
d270d75d74
- re-added line of code that got lost during refactoring.
2021-06-10 00:14:04 +02:00
Christoph Oelckers
4b35a30de5
- RR: fixed the bowling lane lights.
...
Tiles had not been made writable.
Also renamed a few bowling related things.
2021-06-09 23:53:05 +02:00
Christoph Oelckers
5b38343407
- fixed sprite exclusion logic in getzrange.
...
This was using the wrong flag.
2021-06-09 00:31:54 +02:00
Christoph Oelckers
dc846dcd49
- Duke: avoid clipping against self when executing script logic for floor sprites.
...
A good place to see the result is a kitchen knife in E4L2 that went missing due to the faulty check.
2021-06-01 21:21:39 +02:00
Christoph Oelckers
454816299e
- reorganized loading of textures.
...
Due to dependencies on initializing some data in app_init it was not possible to cleanly set up the fonts.
This adds a game-side function for loading the entire palettes before starting with the texture data and another one for loading game-side texture data.
This now allows fully setting up the palettes before starting with the textures and to fully set up the textures before reading the .def files.
All this is needed because to properly initialize, the fonts need to be able to access the fully initialized texture state, including replacements and hires substitutions from the .def files.
2021-06-01 11:05:26 +02:00
Christoph Oelckers
9c60ab791b
- implemented all needed font overrides for localization.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
af781e0422
- moved all font setup out of the C++ code.
...
All internal fonts now get defined through FONTDEFS.
Also fixing a few offsets.
2021-05-31 21:20:31 +02:00
Christoph Oelckers
42b70a7d93
- added internationalized fonts.
...
This still needs a bit of fixing and tweaking but most is working.
2021-05-31 21:20:30 +02:00
Christoph Oelckers
db21313c96
- add some hackery to deal with WT's bosses.
...
This was the result of some gross change to the spawning code which suddenly changed the rules about minibosses.
To reduce the impact, it is only enabled for the "Alien World Order" maps.
2021-05-29 13:12:50 +02:00
Christoph Oelckers
e10bcf6294
- split the screen job code into a generic and a Raze specific part.
...
Preparations for porting this to GZDoom.
2021-05-22 01:35:50 +02:00
Christoph Oelckers
d572e56839
- removed the indirection for the global arrays.
...
No idea what part of EDuke32 needed this, but it is not necessary.
2021-05-21 14:32:01 +02:00
Christoph Oelckers
ec976d9db7
- RR: fixed double negation in pitch math when throwing dynamite.
2021-05-20 19:06:11 +02:00
Christoph Oelckers
f136330628
- removed the native versions of Duke's and RR's status bar.
2021-05-15 17:15:29 +02:00
Christoph Oelckers
781cb32dcf
- fixed all issues with Duke's/RR's status bar.
2021-05-15 16:46:08 +02:00
Christoph Oelckers
f84f58e714
- ported Duke and RR status bars.
...
Compiles but not tested yet.
2021-05-15 14:27:32 +02:00
Christoph Oelckers
d311792e06
- engine side preparations for Duke Statusbar scriptification.
...
Mainly, gotweapon had to be reverted to a flat bool array to avoid implementing FixedBitArray for the VM.
Also adding a few new tile names and PushV for string arrays.
2021-05-15 10:44:35 +02:00
Christoph Oelckers
5a6121d424
- status bar interface work.
2021-05-15 10:25:38 +02:00
Christoph Oelckers
5ae1c334fa
- Duke: fixed bad check in 'ifnotmoving' CON command.
2021-05-14 10:03:07 +02:00
Christoph Oelckers
cb2bc7967a
- fixed the remaining warnings.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
cf22a70d82
- fixed all warnings in Duke.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
d097c8e635
- removed the non-functional and long abandoned level music alias feature.
...
With RMAPINFO such a hack is no longer needed for anything.
2021-05-12 21:48:40 +02:00
Christoph Oelckers
03289f5097
- silenced some warnings.
2021-05-12 21:47:32 +02:00
Christoph Oelckers
e40ed2262e
- cleanup of 'gotpic' handling.
2021-05-10 20:13:28 +02:00
Christoph Oelckers
e74aca291c
- position tweaking for Nam's skies.
...
Why is this such an utter mess to get skies placed correctly? :(
2021-05-10 20:13:28 +02:00
Cacodemon345
ce4b748ff0
Fix compilation with Clang on FreeBSD
2021-05-09 19:52:52 +02:00
Christoph Oelckers
43981bff85
- Duke: fixed mirror setup for new renderer.
...
A wall must be marked one-way to be used as a mirror.
2021-05-08 16:27:01 +02:00
Christoph Oelckers
de904d3052
. Duke: made the 'lonely effector' error non fatal.
...
Instead just move the bogus effector sprite out of the way.
2021-05-08 15:41:49 +02:00
Christoph Oelckers
c679f83f75
- make all games return to the main menu when the game is ended with F10.
...
Duke still went to the intro movies which was a bit problematic.
2021-05-04 11:32:09 +02:00
Christoph Oelckers
a303da37a9
- added a mapinfo dumper and used it to verify correctness of the data generated from game-native definitions.
...
Also simplified the levelnumber setup a bit.
2021-05-03 23:00:24 +02:00
Christoph Oelckers
7d77b2315f
- merged the few remaining contents of mmulti.h into d_net.h
2021-05-03 19:01:00 +02:00
Christoph Oelckers
56fcf904b5
- Backend update from GZDoom.
2021-05-03 14:48:55 +02:00
Christoph Oelckers
8003ab6fa3
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-02 22:37:46 +02:00
Christoph Oelckers
c9791bc148
- renamed PlayerHorizon function to deconflict with the same-named struct
2021-05-02 21:56:45 +02:00
Christoph Oelckers
698d62bbc6
- merged FixMapInfo into loadcons.
...
No need to delay the remaining content. The reasons for the separate function no longer exist.
2021-05-02 19:41:24 +02:00
Christoph Oelckers
60d007fa93
- Duke: fixed non-scrolling SE24.
2021-05-02 19:32:20 +02:00
Christoph Oelckers
bb9d492db6
- migrated RRRA as well.
2021-05-02 14:01:10 +02:00
Christoph Oelckers
6f4e380728
- migrated RR's cutscene definitions.
...
Also turned several level-specific init options into map flags or map parameters.
2021-05-02 13:12:24 +02:00
Christoph Oelckers
dbd179be5c
- RR progression fixes.
...
* E1L7 abuses an 'end the game' command to progress to E2L1, this needs special treatment.
* handle ENDGAME.MAP more cleanly by injecting an 'engine.con' into the compilation chain to define its map record. The main issue with this is that it needs to be defined before the regular CONs run.
* check the already defined 'clearinventory' and 'clearweapons' flags that are exposed through RMAPINFO (Duke/RR only so far.)
2021-05-02 10:55:22 +02:00
Christoph Oelckers
9bc210fe35
- fixed RR weapon clearing in E2L2 and RRRA E1L3.
2021-05-02 10:37:20 +02:00
Christoph Oelckers
1798380f23
- adapted map transition in Duke/RR.
...
There's still some issues which will be taken care of by adding map flags.
2021-05-02 10:35:43 +02:00
Christoph Oelckers
e9385ed4e8
- adapted Blood to the new level progression features and simplified several parts, particularly the clumsy retrieval of the next level.
...
Some cheats in Duke will not work correctly with this commit!
2021-05-02 09:08:57 +02:00
Christoph Oelckers
93bfc35ad6
- use the volumes to find the starting maps for the menu and the clusters for the cutscenes.
2021-05-02 01:01:30 +02:00
Christoph Oelckers
825963661b
- migrated volumes to the new storage.
2021-05-02 00:35:56 +02:00
Christoph Oelckers
f3eb476fbf
- minor cleanup.
2021-05-01 23:09:24 +02:00
Christoph Oelckers
13b21d3ed9
- removed script access to variables that no longer contain what they once did.
2021-05-01 23:08:51 +02:00
Christoph Oelckers
f732d4ec64
- added MAPINFO parser, based on GZDoom's.
...
This isn't hooked up yet, but all necessary structures and fields have been added so that selected pieces can be tested.
2021-05-01 22:52:28 +02:00
Christoph Oelckers
5b54e9c1ad
- removed the 26 factor from Duke's par times.
...
What were they thinking?
2021-04-30 20:08:36 +02:00
Christoph Oelckers
5959543380
- hooked up SW's intermission handling.
2021-04-30 20:08:36 +02:00
Christoph Oelckers
aa148d602c
- scriptified SW's 2D screens.
...
Compiles but not tested yet.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
d5db898236
- fixed bad level number for weapon removal in RRRA.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
fa2bcf563a
- forgot to save these.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
b65dfb6145
- check r_precache in all games.
2021-04-30 20:08:35 +02:00
Christoph Oelckers
eaf5e1fba5
- Cutscene support in Blood.
...
Intro tested, rest to do.
2021-04-30 20:08:34 +02:00
Christoph Oelckers
6d743ce921
- most of the summary screen is working
2021-04-30 20:08:33 +02:00
Christoph Oelckers
0dc6980e5c
- made episode intro cutscenes a game independent feature.
...
So far only defined for Duke E4 but all the logic is outside the game code now and can be universally handled.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
3c27ec8cbd
- tested all of Duke's and RR's cutscenes.
2021-04-30 20:08:33 +02:00
Christoph Oelckers
1166b00af2
- switched intro movie playing over to the new system
...
Not tested yet.
2021-04-30 20:08:32 +02:00
Christoph Oelckers
e05f900315
- added the data structures to hold the cutscene data.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
21aa5c9234
- added game flags for all supported add-ons.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
88dfb93865
- redid Duke cutscene code to use functions, not classes as exports and added the missing screens.
...
Functions are better because they allow doing more in the internal setup code.
2021-04-30 20:08:31 +02:00
Christoph Oelckers
66799d9a6d
- more screen job setup work.
...
* interface for movie player done.
* first cutscene definition done.
* all converted classes removed from C++ code.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
4ff2010bd1
- moved the entire screen job management to the script side.
...
This isn't hooked up yet and lots of code is commented out, the games won't start with this commit.
2021-04-30 20:08:30 +02:00
Christoph Oelckers
d853b63a1a
- RR summary screen
2021-04-30 20:08:29 +02:00
Christoph Oelckers
c07fcbee08
- migrated level summary screen.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
7fbe153ae7
- more Duke screen porting.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
b0163ff729
- made the end of E1 cutscene a bit more scripting friendly.
2021-04-30 20:08:24 +02:00
Christoph Oelckers
e75f0c17e4
- ported the TitleScreen class.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
1022564cab
- initial framework for scriptification of screen jobs.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
4a7430c8e4
- got rid of JobDesc.
2021-04-30 20:08:23 +02:00
Christoph Oelckers
71e5f9b70f
- changed screen job list to work without per-job completion callbacks.
...
They made things more complex than necessary and do not translate well to scripting.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
fb5e2fe0c0
- use flags instead of bools.
2021-04-30 20:08:22 +02:00
Christoph Oelckers
af3eac8456
- simplified screen job setup where all elements can be skipped in one go.
2021-04-30 20:08:22 +02:00
Mitchell Richters
9bebd7fabf
- Remove max ammo fudging for when showing the magazine amount for Duke since it overrides ammo maximums set from CON.
2021-04-26 12:35:07 +10:00
Christoph Oelckers
8c379f7a44
Merge branch 'master' into newrenderer
2021-04-25 11:33:47 +02:00
Christoph Oelckers
c05df44ad4
- fixed the check for RR's geometry effect.
...
This always got triggered for Duke which made the entire map render 3 times. The most obvious effect was reduced translucency.
2021-04-23 21:36:51 +02:00
Christoph Oelckers
3766c5aed0
- restored original palette handling for access cards that got broken in 242f958c41
...
Unlike all the other HUD sprites this one works differently.
2021-04-23 19:36:55 +02:00
Christoph Oelckers
bf23d6c3b0
- corrected level number for RR's summary screen.
2021-04-23 16:07:04 +02:00
Mitchell Richters
93edeac791
- Clean-up of input functions.
...
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Christoph Oelckers
f51872db25
Merge branch 'master' into newrenderer
2021-04-20 20:46:06 +02:00
Christoph Oelckers
aaad546729
- palookup.
2021-04-20 20:21:51 +02:00
Christoph Oelckers
9e40e49c2c
- generalized the special key handling for skipping cutscenes.
2021-04-20 15:01:26 +02:00
Mitchell Richters
d34070b8ae
- gameinput.h: Remove precise bool from horizsumfrac()
, look_anghalf()
and looking_arc()
added in a4895cb270
.
...
* It looks terrible to have low precision math versions of look_anghalf and looking_arc since we always interpolate `look_ang` now, so lets just not.
2021-04-20 21:12:17 +10:00
Mitchell Richters
2f696e1a95
Merge branch 'master' into newrenderer
2021-04-19 20:50:37 +10:00
Mitchell Richters
de06030ea0
- gameinput.cpp: Make sethorizon()
, applylook()
and calcviewpitch()
class functions of PlayerHorizon
and PlayerAngle
where appropriate.
2021-04-19 20:50:10 +10:00
Mitchell Richters
4eaf05d95e
- Duke: Fix bad vehicle speed clamp change from e79c6bacd3
.
...
- Fixes #325 .
- 🤦
2021-04-19 19:33:13 +10:00
Christoph Oelckers
82194bbf6b
Merge branch 'master' into newrenderer
...
# Conflicts:
# source/games/exhumed/src/2d.cpp
2021-04-17 13:22:30 +02:00
Christoph Oelckers
42b87362ee
- When keeping around a dummy sprite, make sure that the engine's utilities cannot find it anymore.
...
This was causing issues with the master switch sprites in Duke that have to be kept for sound purposes.
Unfortunately, both hitscan and neartag are far too dumb to analyze sprites they may hit in any way and needed some help skipping such sprites.
2021-04-17 09:37:38 +02:00
Christoph Oelckers
2b9a527aba
- added a 'Start' method to DScreenJob.
...
Since the menu pauses the ticker this is needed to perform initial setup before the first frame.
2021-04-16 23:29:53 +02:00
Christoph Oelckers
2942e011bf
- cleaned up the screen job's fade handling, now that the jobs no longer depend on an external timer.
2021-04-16 21:27:54 +02:00
Christoph Oelckers
4950b556c9
- handled SW's screens.
2021-04-16 18:43:59 +02:00
Christoph Oelckers
9dff494e6c
- handle all of RR's screens.
2021-04-16 17:38:05 +02:00
Christoph Oelckers
f4b089b776
- fixed bad sound checkin Duke's intermission.
2021-04-16 17:37:08 +02:00
Christoph Oelckers
7895d67b18
- ported the Duke intermission screen.
...
This also got its timing code thoroughly cleaned up.
2021-04-16 17:24:59 +02:00
Christoph Oelckers
a78af92959
- migrated the Duke end of episode animations.
2021-04-16 17:24:59 +02:00
Christoph Oelckers
2a2c85c082
- migrated Duke's intro images and the first episode's ending animation.
2021-04-16 17:24:59 +02:00
Christoph Oelckers
6ed1d5e678
- DBlackScreen and DImageScreen migrated to event-based handling.
2021-04-16 17:24:58 +02:00
Christoph Oelckers
dc8b72b2ce
Merge branch 'master' into newrenderer2
...
# Conflicts:
# source/games/duke/src/actors.cpp
# source/games/duke/src/hudweapon_d.cpp
# source/games/duke/src/hudweapon_r.cpp
# source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02:00
Christoph Oelckers
96d78ab9e6
- made DukeActor::s a pointer.
...
As a reference we would never be able to export this to scripting
2021-04-15 19:21:43 +02:00
Christoph Oelckers
61a6321cd6
- Exhumed: Change map command to start the level directly without going through the scrolling map.
2021-04-15 18:55:54 +02:00
Mitchell Richters
e79c6bacd3
- Duke: Clamp RRRA vehicle input in processVehicleInput()
.
2021-04-15 18:59:07 +10:00
Mitchell Richters
2176435831
- Duke: Replace sprite z pos numeric values with correct enum values for each game.
2021-04-15 18:02:16 +10:00
Mitchell Richters
6cebd7fca2
Merge branch 'master' into newrenderer2
2021-04-15 18:01:26 +10:00
Mitchell Richters
aeb16e390c
- Duke: Add resurrected
flag to handle resurrection via cheating or when pissing in RR.
2021-04-15 18:00:58 +10:00
Mitchell Richters
d5b14a8de3
- Duke: Remove some direct array accesses in lieu of player_struct
pointer.
2021-04-15 16:34:24 +10:00
Mitchell Richters
242f958c41
- Duke: Clean up some duplicated code in hudweapon_*.cpp files.
2021-04-15 15:49:36 +10:00
Mitchell Richters
a4895cb270
- All Games: Allow for HUD interpolation to be disabled.
...
* Requested by users, really don't know why...
* Interpolation values are guarded by the CVAR.
* For Blood, integer truncation is employed just like original game.
* For all games where more precise sine/cosine math has been utilised, no changes have been made.
2021-04-15 13:35:53 +10:00
Christoph Oelckers
f83e678ea0
- use the smooth ratio from the game logic in the renderer instead of calling I_GetTimeFrac again.
...
Unlike the higher level code this does not check for game over conditions.
2021-04-14 21:17:32 +02:00
Christoph Oelckers
798cf2f973
Merge branch 'newrenderer2' of https://github.com/coelckers/Raze-private into newrenderer2
2021-04-12 20:25:56 +02:00
Christoph Oelckers
9598b626c9
Merge branch 'master' into newrenderer2
2021-04-12 20:03:50 +02:00
Christoph Oelckers
1e40e93da4
- fixed the vertical offsets of the World Tour skies.
...
They were rendered too low.
2021-04-12 19:47:16 +02:00
Christoph Oelckers
42d02834b1
Merge branch 'master' into newrenderer2
...
# Conflicts:
# source/build/include/build.h
# source/build/src/polymost.cpp
# source/build/src/voxmodel.cpp
# source/core/gamecontrol.cpp
# source/core/gamestruct.h
# source/games/blood/src/animatesprite.cpp
# source/games/blood/src/misc.h
# source/games/blood/src/view.cpp
# source/games/duke/src/render.cpp
# source/games/sw/src/draw.cpp
# source/games/sw/src/game.h
# source/games/sw/src/jsector.cpp
# source/glbackend/glbackend.cpp
2021-04-11 14:38:56 +02:00
Mitchell Richters
e959226914
- Fix RRRA bike/boat angle adjustments following changes in f343bd8d5e
.
...
* Because we're wrapping a negative number around to be unsigned, we need to do that after we've done our bit-shift operations.
2021-04-11 18:34:07 +10:00
Christoph Oelckers
9fd3ab6b5e
- fixed texture precaching.
...
After the migration to GZDoom's full backend this never created any textureds when precaching things.
2021-04-11 09:59:55 +02:00
Mitchell Richters
f343bd8d5e
- Fix death camera issues stemming from f254eeb465
.
...
* Adjustment in `__addadjustment()` needs to be signed.
* Output of `bvectangbam()` needs to be signed before Duke/SW left-shift the value.
2021-04-11 17:52:29 +10:00
Mitchell Richters
e76f63e2c0
- Consolidate all game interpolation code into inline functions.
2021-04-11 16:45:35 +10:00
Christoph Oelckers
b3bcedda6c
- moved backend independent HUD code out of glbackend.cpp.
2021-04-11 08:40:18 +02:00
Mitchell Richters
f254eeb465
- binaryangle.h: Remove lookangle
class and replace use with binangle
.
...
* Added in fca846272e
to deal with signed adjustments but its just not needed.
* Made better use of `binangle`/`fixedhoriz` class getters and setters than before as well.
2021-04-11 15:45:53 +10:00
Christoph Oelckers
a530dfbe35
Merge branch 'master' into newrenderer2
2021-04-08 18:52:54 +02:00
Christoph Oelckers
fc1fbfe8b3
- fixed .def 'music' parsing.
...
This was incomplete and just ignored Duke's special music, and the levelnum generation used an outdated formula so that it never managed to assign any music to the maps.
2021-04-08 16:35:26 +02:00
Christoph Oelckers
4cdc39c9b9
Merge branch 'master' into newrenderer2
2021-04-08 08:55:41 +02:00
Christoph Oelckers
68b7628f56
- RRRA: Sector effector type 156 is not supposed to scroll the floor texture.
2021-04-07 18:12:25 +02:00
Christoph Oelckers
e30dc82676
- Cleanup of the voxel code.
...
* moving polymost_voxdraw into polymost.cpp.
* consolidated all remaining voxel code in hw_voxels.cpp. All original Build voxel code is completely gone now, except for polymost_voxdraw, so this got moved out of the build/ folder.
* integrate Blood's voxel init code into the main function.
* some further cleanup was allowed as a result of this, so engineInit is gone now because these parts can now be done outside the games' app_init functions.
2021-04-05 18:05:43 +02:00
Christoph Oelckers
090b52f783
- fixed animatesprites call in Duke.
...
This passed z instead of angle.
2021-04-05 12:25:09 +02:00
Christoph Oelckers
ba2defeb14
Merge branch 'master' into newrenderer2
2021-04-05 10:34:34 +02:00
Christoph Oelckers
eb2e77fb75
- Apply fix from EDuke32 commit 7225643e.
...
Fix undefined behavior/potential OOB access in ST_21_FLOOR_DOOR. g_AnimateGoal does not take a sector number, it takes an animation index, and caps at 1024, not 4096.
2021-04-05 00:14:15 +02:00
Christoph Oelckers
c303884274
- better handling for Duke's scrolling cloudy skies.
...
* Using the Doom-style dome here because it looks better.
* this necessitated changes to the backend to allow both types of sky domes at the same time
* do not clamp panning fields for cloudy sky with the new renderer because this makes the texture jump.
2021-04-04 20:35:38 +02:00
Christoph Oelckers
55ad51ee1f
Merge branch 'master' into newrenderer2
2021-04-04 13:23:51 +02:00
Christoph Oelckers
9828cd7129
- this better have a null check...
2021-04-04 13:02:26 +02:00
Christoph Oelckers
6ebbf1288d
- Duke/RR: Don't delete master switch sprites.
...
The sound system may play sounds on them after their deletion - this resulted in undefined behavior. To ensure properly defined behavior the sprite needs to be retained at least as long as the sound controller may still need it - which cannot be reliably determined so it has to be kept around forever. This would be easier if the sound controller code had proper start and stop events instead of inferring what to do from secondary information.
Fixes #288 .
2021-04-04 13:01:32 +02:00
Christoph Oelckers
97a0cb2a10
- handle voxel rotation in the backend to enable it for all games.
...
This was previously only present in the Blood module and missed in Exhumed from upstream so the entire option was rather pointless.
Fixes #290
2021-04-04 10:33:29 +02:00
Christoph Oelckers
ab36b86a59
- sky tweaking
...
* Build skies need a different mesh for the dome - the one from GZDoom distorts them too much.
* made adjustment to the positioning math after redoing the mesh
* Exhumed abuses some strange effect of the original sky placement math which means the y-offsetting must be disabled for this game.
* RRRA sky initialization fixed. It must be done after setting up the tiles.
2021-04-03 21:06:02 +02:00
Christoph Oelckers
dc234ea72d
- implemented RR's geometry effect.
...
The grossest of all gross render hack that were ever done with Build...
2021-04-02 22:52:46 +02:00
Mitchell Richters
9c01bde44e
- gameinput.cpp: Block player input within sethorizon()
and applylook()
if target for each has been set by the ticker.
...
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11:00
Christoph Oelckers
c8a75a8664
- give each DrawInfo its own list of tsprites.
...
Since these do not fully get processed sequentially the contents need to be preserved until needed.
This required getting rid of the global tsprite array. Polymost still uses a static vatiable, though, but this is only accessed in polymost-exclusive code.
2021-04-02 10:28:40 +02:00
Christoph Oelckers
80e5cd0dc5
- fixed some automap issues:
...
* Blood's automap was not drawn at all.
* SW's automap always showed all sectors
* SW's player sprite was not rendered.
* Non-automap: Forward gotsector to the game code because there's still a few places in Blood that need it.
2021-04-01 20:47:05 +02:00
Mitchell Richters
88695ef554
Merge branch 'master' into newrenderer2
2021-04-01 16:49:07 +11:00
Mitchell Richters
029f8807df
- Make 360. / 2048.
a constant expression and replace all uses throughout code.
2021-04-01 10:42:22 +11:00
Mitchell Richters
c630ad9110
Revert "- subjective fix to Duke 3D's RPG harsh recoil."
...
This reverts commit 839a7bcbe4
.
Revert "- Duke: Restore RPG harsh recoil behind a CVAR."
This reverts commit 88a49b0d22
.
# Conflicts:
# source/core/gamecvars.cpp
# source/core/gamecvars.h
2021-03-31 20:35:18 +11:00
Mitchell Richters
760c918e75
- Duke: Remove unnecessary int casts from gameexec.cpp
.
...
* Incoming vars are already int and called functions only accept an int so really just no need at all.
2021-03-31 20:07:36 +11:00
Mitchell Richters
16886895b0
- Duke: DoPlayer()
: Ensure SB_CENTERVIEW
bit is cleared when setting a horiz target from CON.
...
* Repairs horizon issues raised in https://forum.zdoom.org/viewtopic.php?f=340&p=1185365 .
2021-03-31 19:48:38 +11:00
Christoph Oelckers
92bb9c5319
- fixed display of player in mirrors.
2021-03-29 21:48:23 +02:00
Christoph Oelckers
e8edb32e0d
- fixed camera texture setup.
...
They still are upside-down but aside from that work as expected.
2021-03-28 19:22:51 +02:00
Christoph Oelckers
d3e0a9590c
- renderDrawMasks may only be called for Polymost.
2021-03-28 15:14:32 +02:00
Mitchell Richters
6f65eb2270
- Duke: Amend 7e8ef99ec9
to adjust view height where it was originally adjusted.
...
* Doing this in `renderView()` unconditionally isn't correct as it can lead to a double adjustment if `p->spritebridge == 0 && p->newOwner == nullptr`.
2021-03-28 23:21:07 +11:00
Christoph Oelckers
7e8ef99ec9
- fixed view height in Duke.
2021-03-28 13:38:27 +02:00
Christoph Oelckers
be7bca8e9e
- expose animatesprite set of functions to new renderer as a callback.
2021-03-26 10:05:01 +01:00
Christoph Oelckers
168b0385cf
- moved shadeToLight out of build.h.
2021-03-25 09:13:59 +01:00
Mitchell Richters
957f7e9487
- Accept binangle, fixedhoriz and lookangle classes in SetupViewpoint()
vs. Q16.16 variables.
...
* Allows for more precision than Q16.16.
* Used as opportunity for `rollang` to be set using the `asdeg()` method, not `asbuildf()`.
2021-03-25 19:06:01 +11:00
Christoph Oelckers
13bbf0a4f9
- sector portals in RRRA are working.
2021-03-24 23:55:10 +01:00
Christoph Oelckers
d8627a2b3f
- removed all remains of projection math weirdness from the automap code in the games plus a bit more cleanup of the engine code.
2021-03-24 20:28:58 +01:00
Christoph Oelckers
a36377111c
- engine-side portal setup for Blood and RRRA.
2021-03-21 14:48:35 +01:00
Christoph Oelckers
b91441f849
- same render interface rework for Shadow Warrior.
2021-03-21 12:22:50 +01:00
Christoph Oelckers
6f7e7459ea
- did some cleanup on Duke's render code to prepare for the new way of handling portals.
...
Like for Blood, the Polymost-only code has been moved aside.
Closer examination of the preparations the engine is doing for rendering SE40/150-portals shows that all this was merely done to avoid glitches with a two-phase rendering setup - nothing of this will be needed for doing it properly.
They can just be treated as run-of-the-mill stacked sectors. when using hardware rendering capabilities for clipping.
2021-03-21 10:58:11 +01:00
Christoph Oelckers
5a0c8da6bf
- Duke: fixed some incorrect assignments in CON parser
2021-03-19 23:18:09 +01:00
Christoph Oelckers
547ed4e415
- route everything through the full backend, now completely bypassing the intermediate GLInstance layer.
2021-03-18 17:18:03 +01:00
Christoph Oelckers
25bf0854cf
- allow game specific music names for all games supporting an Ogg-format CD audio soundtrack.
...
New names are:
REDNECKxx.ogg for Redneck Rampage
REDNECKRIDESxx.ogg for RR Rides Again.
SHADOWxx.ogg for Shadow Warrior.
The motivation here is to allow copying all this music to a single folder or .zip file and reference it from all games.
2021-03-12 23:15:34 +01:00
Christoph Oelckers
80404558f6
- RR: Fixed the drink and eat meters on the status bar.
...
Turned out that the status bar's DrawGraphic cannot handle it with its coordinate hackery, this needs a separate, cleaner interface function that does not mess around with the pivot which needs to be passed unaltered to the backend to properly rotate around it
2021-02-28 22:34:52 +01:00
Christoph Oelckers
d28d5a5e1f
- use real fog, even in palette emulation mode.
...
Using the palette to apply fog is just far too broken and cannot be kept in check with all the hacks the Build engine allows.
This only works if all elements on screen use the identity translation lookup which is basically never the case.
Real fog, on the other hand, can easily be applied to everything.
2021-02-27 13:30:52 +01:00
Christoph Oelckers
a46792e519
- fixed SE21 handler.
...
This one is most prominently noticeable in WW2GI's first map where blowing up a crack has no effect.
This must have happened when removing all those dangerous pointer to long casts that were so popular back in the bad old days.
Fixes #266
2021-02-26 13:14:44 +01:00
Mitchell Richters
cff97c9cf3
- calcChaseCamPos(): Restore original algorithms for new position via GameInterface struct.
...
* Averaging out the values was a net negative for all games. Each games' original value is tuned to the specific games.
2021-02-18 21:47:39 +11:00
Mitchell Richters
ba57429ac6
- Blood, Duke & SW: Create new backend chasecam function and replace game-specific versions with it.
...
* Based off SW's implementation.
2021-02-18 21:47:37 +11:00
Mitchell Richters
2abda0e27d
- All Games: Migrate each game's clock counter to backend solution.
2021-02-18 21:47:33 +11:00
Mitchell Richters
b1290448c5
- Duke: Slightly tune texty
in FullscreenHUD1()
to line it up perfectly.
2021-02-01 18:42:41 +11:00
Christoph Oelckers
8ffda1c9d1
- Duke: Calculate the true font height of the numbers for alignment in the Statusbar.
...
The original tiles are all 15 pixels tall, but depending on the games can vary in their true height, so use CheckRealHeight on them to get their true dimensions.
Fixes #250
2021-02-01 00:09:22 +01:00
Christoph Oelckers
30e8111979
- fix inventory selector positioning in WW2GI.
...
This must have abused some quirk of the original code to be this far off...
2021-01-30 23:51:50 +01:00
Christoph Oelckers
40593b866f
- WW2GI: fixed event numbering.
...
There is a typo in the CON files that assigns EVENT_AIMUP and EVENT_AIMDOWN the same number. The source did not replicate this which caused several events to call the wrong handler.
Fixes #252
2021-01-30 23:42:44 +01:00
Mitchell Richters
c267c214c2
- Duke: Repair jumping zvel issue originating from 5e45f988e3
for Duke and 1c5c90d00f
for RR.
...
* Thanks for backtracing, Graf :)
* Fixes #259 .
2021-01-29 20:00:15 +11:00
Christoph Oelckers
1ab11a02e2
- RR: fixed player input for diving.
...
Fixes #260
2021-01-24 08:59:08 +01:00
Mitchell Richters
18fbc8996b
- Duke: Remove a few redundant sprite backups and change some backups to what's actually needed.
2021-01-06 06:22:31 +11:00
Mitchell Richters
97159c20c1
- Duke: Leverage new spritetype
methods within Duke, removing bposx
/bposy
/bposz
from hittype.
2021-01-06 06:22:29 +11:00
Mitchell Richters
5124c0daec
- Amalgamate ksgn and sgn into Sgn in cmdlib.h, and remove pragmas.h.
2021-01-05 07:31:37 +11:00
Mitchell Richters
b36bea7c69
- Replace scale()
calls with Scale()
from common.
2021-01-05 07:31:34 +11:00
Mitchell Richters
d460f048fa
- Remove klabs()
define and replace with abs()
.
2021-01-05 07:31:28 +11:00
Mitchell Richters
868aa7f07a
- Replace mulscale()
calls with MulScale()
from common.
2021-01-05 07:31:24 +11:00
Mitchell Richters
aae175f287
- Replace divscale##()
calls with MulScale()
from common.
...
* Regex for reference: divscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:20 +11:00
Mitchell Richters
2396179dfc
- Replace mulscale##()
calls with MulScale()
from common.
...
* Regex for reference: mulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:15 +11:00
Mitchell Richters
8cf2588bad
- Replace fmulscale##()
calls with MulScaleF()
from common.
...
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
7d9f868e4c
- Replace dmulscale##()
calls with DMulScale()
from common.
...
* Regex for reference: dmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:10 +11:00
Christoph Oelckers
0f3da7194a
- actually compile the game code as larger units and integrate them in the main project.
...
This eliminates the problematic subprojects for good.
Compiling the games as larger units is necessary because otherwise compile times will break down on MSVC.
2021-01-04 11:52:10 +01:00
Christoph Oelckers
e866a9e0c0
- moved setsectinterpolate/clearsectinterpolate into the backend.
2021-01-04 10:37:14 +01:00
Mitchell Richters
e8c20f502b
- Duke: Back up sprite's angle in ticker and interpolate in gi->GetInput()
if !SyncInput()
. Sprite angle now works properly with cl_syncinput 1
.
2021-01-04 13:27:31 +11:00
Mitchell Richters
8911805e3a
- Duke: Ensure an uninterpolated angle is sent to DrawOverheadMap()
if playing with unsynchronised input.
2021-01-04 09:06:57 +11:00
Mitchell Richters
22f28477e4
- Duke: Revert backing up of sprite's ang
to tempang
from be12da6bfb
and subsequent interpolation of sprite's ang in 21da658617
and directly update the sprite's angle in gi->GetInput()
like the other games.
...
* Fixes #251 .
2021-01-04 08:49:57 +11:00
Mitchell Richters
de1b4765dc
- Duke: Partially revert edba971b7f
. I need to stop breaking this.
2021-01-03 20:14:40 +11:00
Mitchell Richters
f036e94cca
- Duke (RR): Also fix location of p->apply_seasick()
in the ticker as well.
2021-01-03 20:06:28 +11:00
Mitchell Richters
6058669e29
- Duke: Within gi->GetInput()
, call p->apply_seasick()
after applylook()
as per the original code, and call unconditionally since its guarded as to whether it runs or not internally. Original spot only had it called if on a vehicle which wasn't right.
2021-01-03 20:00:43 +11:00
Mitchell Richters
f6b9c3cba7
- Duke (RR): Fix braking on vehicles which never got picked up.
2021-01-03 19:25:49 +11:00
Mitchell Richters
edba971b7f
- Duke: Remove newOwner check from cef1f8275b
& cb93560a4a
that were just cancelling out each other, and clean up 2x if (p->newOwner != nullptr)
checks into one.
2021-01-03 18:51:43 +11:00
Mitchell Richters
d3b95d4d70
- Build/Duke: Remove the only use case for drawrooms()
inline wrapper and change getcamspriteang()
to return binangle instead of a build angle.
2021-01-03 17:35:19 +11:00
Mitchell Richters
0cab84f17a
- Duke: Backport EDuke32 commits b1e3f3bcf9c5214ae835d09e12cc41bac4f057ce & 4c4fdd1f4ab9381b60db06f37ec270850599e1ae in relation to swinging doors.
2021-01-03 15:45:38 +11:00
Mitchell Richters
9b7d07df90
- Duke: Fix flashing vehicle HUD when cl_syncinput 1
is set.
2021-01-03 09:55:25 +11:00
Mitchell Richters
86bb6b1cdc
- Duke: Backport EDuke32 commit ac64e11553344084753cdd75abd898ec2c725a16 to fix buggy swinging doors, most apparent on E4L1.
2021-01-02 23:41:03 +11:00
Mitchell Richters
21da658617
- Duke: Interpolate automap player.
2021-01-02 18:23:12 +11:00
Mitchell Richters
be12da6bfb
- Automap: Put in framework to interpolate automap player.
2021-01-02 18:23:01 +11:00
Mitchell Richters
9833c94114
- Duke: Pass the player_struct through to FinalizeInput() in line with other functions.
2021-01-02 11:04:03 +11:00
Mitchell Richters
bcb838f3fb
- Duke: Fix some broken checks in FinalizeInput()
stemming from 5f33b0087f
.
2021-01-02 10:43:03 +11:00
Mitchell Richters
4397646cc4
- Duke: Move cancellation of spin from FinalizeInput()
into applylook()
in gameinput.cpp.
2021-01-02 10:26:22 +11:00
Mitchell Richters
5f33b0087f
- Duke: Comment out unused enum values but leave behind for reference purposes.
...
* In line with SW, should have been done with fb91fc49a3
.
2021-01-02 10:09:42 +11:00
Mitchell Richters
e65e112281
- Duke: Remove local calculation of turboturntime
for RRRA vehicles in lieu of backend solution.
2021-01-02 09:59:51 +11:00
Mitchell Richters
3a801cbf5c
- calcviewpitch(): Set scaleAdjust
to default to 1 in prototype like other functions in gameinput.cpp.
2021-01-02 09:32:19 +11:00
Mitchell Richters
8003753989
- Duke/SW: Move each game's check of cl_slopetilting
into calcviewpitch()
backend function.
2021-01-02 00:34:44 +11:00
Mitchell Richters
6d12159006
- Duke/SW: Consolidate each game's slopetilting function into backend solution.
...
* Based on SW's implementation purely for its commentary, but includes a fix from Duke's.
* Allow disabling Duke's slopetilting via `cl_slopetilting` like SW.
2021-01-02 00:30:11 +11:00
Mitchell Richters
949e456018
- All Games: Slight tidy up of gi->GetInput()
functions.
2021-01-01 21:33:00 +11:00
Mitchell Richters
571583ca9c
- Duke: Store velocity scale in motoApplyTurn()
as a variable like boatApplyTurn()
.
2021-01-01 21:21:26 +11:00
Mitchell Richters
a0a710c56a
- Duke: Fix camera horizon when viewing the screen from in-game.
...
* Leftover horizon offset that was missed when doing 09a05f354c
.
2020-12-30 18:31:51 +11:00
Mitchell Richters
f2c6a23f38
- Duke: Allow horz input to go through when returning to center and horiz is abs(5) or less. This mimics the original behaviour where Duke would stop returning to center at 95/105. This allows faster mouse input to be applied instead of waiting for player's horizon to return to 0.
2020-12-30 18:04:30 +11:00
Mitchell Richters
0afaff2663
Revert "- Duke: Don't block horz input while returning to center."
...
This reverts commit 5f62058020
.
2020-12-30 17:07:59 +11:00
Mitchell Richters
5f62058020
- Duke: Don't block horz input while returning to center.
...
* Player still returns to center after a fall or by looking/aiming up/down, but input breaks the return just like the other games.
* Fixes #220 .
2020-12-29 16:48:28 +11:00
Christoph Oelckers
3787e103d2
- use the same camera sprite selection logic as EDuke32 and RedNukem.
...
This is the only one that makes some sense.
2020-12-13 14:13:51 +01:00
Christoph Oelckers
72df9c26d8
- Duke: fixed: SE31's handler overwrote the interpolation coordinates, which rendered interpolation ineffective.
...
Also removing some redundant coordinate copying. Since we save all sprite coordinates at the start of a frame, there is no need to do the same again in the stat handlers.
Fixes #237
2020-12-11 19:17:41 +01:00
Christoph Oelckers
a8fd2e7ec3
- RR: fixed inventory display overlapping the weapon bar in status bar mode.
...
Fixes #231
2020-12-10 19:07:15 +01:00
Christoph Oelckers
1a2b93f402
- fixed sky panning in Duke.
...
This needs to take the composite texture into account because panning in Build is based on tile size, not map dimension.
It was also redone to use floating point to get rid of the horrible precision of the scrolling effect.
2020-12-06 20:49:32 +01:00
Mitchell Richters
1e8fe482f3
- Duke: Partially address excessively fast sky in E4L1 as reported in #217 .
...
* Before d545eb7aa9
, `moveclouds()` simply set `ceilingxpanning`/`ceilingypanning`. Afterwards, it was accumulating with every passing loop.
* Despite fixing this, still seems a bit fast.
2020-12-06 23:51:20 +11:00
Christoph Oelckers
25ef58f897
- re-enabled all model specific code in Duke's animatesprites function and removed some remaining software renderer-only code in the engine.
2020-12-01 23:57:39 +01:00
Christoph Oelckers
b0bf51ec5c
- Duke/RR: Selecting the alternative weapon must set the proper bits in 'subweapon'.
...
Otherwise the weapon cycling breaks.
Fixes #182
2020-12-01 21:07:38 +01:00
Christoph Oelckers
dd75c8dbe4
- weaken the reverb in Duke.
...
Unfortunately the entire thing is very poorly defined, not setting it for sectors but for sprites with a distance. But some of these sprites cover non-reverb sectors as well and this can produce some ugly sound field in spots where this isn't wanted at all.
2020-12-01 16:34:47 +01:00
Christoph Oelckers
3c83775273
- add back the missing secret hint notification calls for Duke/RR.
2020-12-01 12:52:49 +01:00
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Christoph Oelckers
a51b77b95b
- do not statically initialize DukeGameInfo.
...
Since this structure contains several large arrays it will inflate the EXE size with 800kb of empty space.
2020-11-29 22:31:02 +01:00
Christoph Oelckers
8a7b3dc667
- Interpolate Duke's wave floor effect.
2020-11-29 17:40:41 +01:00
Christoph Oelckers
92bf1232da
- Duke: documented global variables for eventual scriptification.
...
Most are only needed internally or for very special uses and do not need any scripting consideration.
2020-11-29 15:09:23 +01:00
Christoph Oelckers
553bb2af19
- moved 'frags' into player_struct.
...
Again for reducing the work with the script interface.
2020-11-29 14:10:03 +01:00
Christoph Oelckers
346921211e
- re-enabled the widescreen pinning code.
...
It is still off by default - the idea here is to provide a means for the user to switch it on in case a mod replaces the weapons with non-widescreen-friendly versions.
2020-11-29 14:05:53 +01:00
Christoph Oelckers
7ad0750839
- grouped all of Duke's constant per-session state in a single struct.
...
Mainly done so later the script export can be done more easily.
This also renames a few of the affected variables for clarity.
2020-11-29 13:54:58 +01:00
Christoph Oelckers
a34f5debe8
- route the shared control CCMDs through the game interface instead of registering local variants for each game.
2020-11-29 13:35:09 +01:00
Christoph Oelckers
48b16d5233
- cleanup on player CVAR use.
2020-11-29 13:22:04 +01:00
Christoph Oelckers
7887c4e80d
- use lambdas instead of templates for chaining ExitFromMenu's actions.
2020-11-29 13:15:19 +01:00
Christoph Oelckers
daf71fa470
- replaced a few more literal numbers.
2020-11-27 20:06:38 +01:00
Christoph Oelckers
b9477f147e
- migrated Duke's interpolations to the common system and added handling for texture scrollers.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
87111a2fbc
- we no longer need to recreate interpolations after loading a savegame.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
2cd3927613
- use floats for wall panning offsets.
2020-11-26 18:32:35 +01:00
Christoph Oelckers
d545eb7aa9
- make sector panning variables floats and added some convenience wrappers.
2020-11-26 18:32:35 +01:00
Mitchell Richters
80ff918b17
- gameinput.h: For PlayerAngle struct methods settarget()
, properly set target as angle + delta between angle & target within method and not game-side.
2020-11-26 17:26:29 +11:00
Mitchell Richters
b9e1cbb5de
- gamecontrol.h: Move getHalfLookAng()
into PlayerAngle
struct as look_anghalf()
.
...
* Uses internal struct variables at full BAM precision.
2020-11-26 16:37:37 +11:00
Christoph Oelckers
169d708547
- removed all remaining uses of tilesiz.
2020-11-23 08:55:02 +01:00
Christoph Oelckers
d60bc8be9f
- replaced all remaining uses of tilesiz[].y
2020-11-23 08:39:49 +01:00
Mitchell Richters
ea2e4051f1
- Duke (RR): Fix incorrect inline call for angAdjustment
following changes in ea4ad0548a
.
2020-11-23 10:44:38 +11:00
Mitchell Richters
b65326dc22
- Duke (RR): Fix weapon swaying after copy-paste issue originating from 5172c43e71
.
2020-11-23 10:24:43 +11:00
Mitchell Richters
fc359065ae
- Duke: Tune level end summary screen text positioning.
...
* Number positioning was 1 px off for some items such as `TXT_YourTime`.
* Positioning of number and text was 1px off for some items such as `TXT_3DRTIME` and `TXT_EnemiesLeft`.
2020-11-23 09:36:05 +11:00
Mitchell Richters
5ba2e7863d
- binaryangle.h: Add asbuildf()
method to all classes and use where appropriate.
2020-11-22 21:18:12 +01:00
Mitchell Richters
e57d6f8785
- Duke: Fix crane's angle settarget()
call.
...
* Fixes #185 .
2020-11-22 21:18:12 +01:00
Mitchell Richters
ea4ad0548a
- All Games: Make use of new addadjustment()
overloads in PlayerAngle
struct created in 25207e4f1818a5ed38648ce87673329cd75e20e4.
2020-11-22 21:18:11 +01:00
Mitchell Richters
0190a98a10
- Remove calcSinTableValue()
inline function and clean up use of PI
/fPI
and BANG2RAD
#defines.
2020-11-22 21:18:10 +01:00
Mitchell Richters
5172c43e71
- buildutils: Replace calcSinTableValue()
use within Duke with bsinf()
/bcosf()
.
2020-11-22 21:18:10 +01:00
Mitchell Richters
ad814f66b0
- buildutils: Replace sintable[]
use within Duke's spawn.cpp with bsin()
/bcos()
.
2020-11-22 21:18:06 +01:00
Mitchell Richters
d6a094dcdd
- buildutils: Replace sintable[]
use within Duke's sectors_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
6fba78c123
- buildutils: Replace sintable[]
use within Duke's sectors_d.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
6ccf925429
- buildutils: Replace sintable[]
use within Duke's sectors.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
410c2cf41f
- buildutils: Replace sintable[]
use within Duke's sbar_*.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
0781d627dc
- buildutils: Replace sintable[]
use within Duke's prediction.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
6800e192e1
- buildutils: Replace sintable[]
use within Duke's player_w.cpp with bsin()
/bcos()
.
2020-11-22 21:18:05 +01:00
Mitchell Richters
1c5c90d00f
- buildutils: Replace sintable[]
use within Duke's player_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
5e45f988e3
- buildutils: Replace sintable[]
use within Duke's player_d.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
50b4d8cc99
- buildutils: Replace sintable[]
use within Duke's player.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
fd4e1b3b28
- buildutils: Replace sintable[]
use within Duke's input.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
d934bfd985
- buildutils: Replace sintable[]
use within Duke's gameexec.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
f1f0b42172
- buildutils: Replace sintable[]
use within Duke's game_misc.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Mitchell Richters
95fa3a6f52
- buildutils: Replace sintable[]
use within Duke's animatesprites_*.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
b6e8030307
- buildutils: Replace sintable[]
use within Duke's actors_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
abc49fed62
- buildutils: Replace sintable[]
use within Duke's actors_d.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Mitchell Richters
bf8b1238c6
- buildutils: Replace sintable[]
use within Duke's actors.cpp with bsin()
/bcos()
.
2020-11-22 21:18:03 +01:00
Christoph Oelckers
a906067102
- Duke WT: attenuate sound volume when commentaties are playing
2020-11-22 21:14:36 +01:00
Christoph Oelckers
921a7a7166
- RRRA: fixed progression from E1L7 to E2L1 plus a texture related crash.
...
Fixes #189 .
2020-11-22 18:46:20 +01:00
Christoph Oelckers
24c797b7e3
- Duke World Tour: Exiting E1L7 should go back to E1L5.
...
fixes #187
2020-11-22 18:27:52 +01:00
Christoph Oelckers
7df20ee047
- RR: Give ammo for the secondary ripsaw mode when picking up the weapon in standard RR, too.
2020-11-22 17:50:38 +01:00
Christoph Oelckers
034ef2290b
- RR: screen should not turn green when being attacked with alien poo.
2020-11-22 17:38:07 +01:00
Christoph Oelckers
18352a760c
- more renames.
2020-11-22 12:48:42 +01:00
Christoph Oelckers
dced173cda
- JSON serializer for actor.
...
Also cleaned up use of gAffectedSectors and gAffectedXWalls. These are merely needed as local worker variables, not as global persistent status.
2020-11-22 12:48:42 +01:00
Christoph Oelckers
b97f12a2eb
- did some global search & replace to reduce the number of accesses to the tilesiz wrapper.
2020-11-20 08:18:26 +01:00
Christoph Oelckers
9a43886be6
- Duke: fixed parsing of overlong CON identifiers.
2020-11-15 07:35:39 +01:00
Mitchell Richters
7673766d19
- Duke: Apply same zvel fix from 13839fc3e9
to shootgrowspark()
that was accidentally changed in f276a5f443
. I don't believe this to be an issue in any other spot for Duke.
2020-11-13 10:02:12 +11:00
Christoph Oelckers
f9a776e71c
- iterate linearly over sector effectors.
...
Apparently they aren't all properly linked into the required statnums.
Fixes #179
2020-11-12 19:12:58 +01:00
Mitchell Richters
70b75f72b5
- Duke: Fix issues with crane angle adjustment in movecrane()
following changes in fca846272e
.
...
* Fixes #170 .
2020-11-12 23:21:03 +11:00
Mitchell Richters
13839fc3e9
- Duke: Fix shootstuff()
zvel calculation error following changes in badf536fef
.
...
* Fixes #177 .
2020-11-12 22:07:16 +11:00
Mitchell Richters
4dc1797345
- Duke: Reset p->dead_flag
when enabling the god cheat as per original behaviour.
...
* Fixes #172 .
2020-11-12 18:21:42 +11:00
Christoph Oelckers
a92b4943f9
- Duke: use original colors for inventory status display.
...
I took one liberty and still use green/yellow/red for the percentage, but this now uses palette translations so that it works better with hires replacements.
2020-11-11 11:49:05 +01:00
Christoph Oelckers
96fbfdcf86
- made hires replacements work for untranslated fonts.
2020-11-10 21:34:49 +01:00
Christoph Oelckers
ed599d0f05
- moved the hires texture replacement logic into a backend callback.
...
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Christoph Oelckers
59c72c923e
- added null pointer checks to locked door sound checks in RR.
...
This originally accessed undefined memory when no sprite was involved.
Fixes #157
2020-11-07 10:25:41 +01:00
Christoph Oelckers
976675c816
- added some helper code to deal with the fact that the sound system still needs to operate on sprites.
2020-11-07 10:25:40 +01:00
Mitchell Richters
ade1a80515
- gameinput.cpp: Remove crouch bool from applylook()
since we can now just rely in the actions bitfield that's already incoming as required and default scaleAdjust
in the prototype to 1
.
2020-11-07 18:25:06 +11:00
Mitchell Richters
6e3d414b3c
- inputstate.cpp: Move checkCrouchToggle()
from gameinput.ccp into ApplyGlobalInput()
and use static bool for crouch toggling vs. game-side bool.
2020-11-07 18:16:16 +11:00
Mitchell Richters
4ef0d20e0e
- gameinput.cpp: Consolidate checkCrouchToggle()
from Duke with discrete implementations from Blood in 7c8efde38c
and Exhumed in 032db82f82
to unify the functionality.
2020-11-07 13:44:25 +11:00
Mitchell Richters
a52ee89969
- Duke/RR: Add scaling to mouse input within motoApplyTurn()
and boatApplyTurn()
.
2020-11-07 09:56:57 +11:00
Mitchell Richters
f0b9029726
- Duke/RR: Fix incorrect boolean used in boatApplyTurn()
when implementing fcc2521347bb528d7a5bcd3996c509db85e993f0.
2020-11-07 09:56:57 +11:00
Mitchell Richters
74dfbfe6f8
- Duke/RR: Ensure p->vehForwardScale
/p->vehReverseScale
can only be a maximum of 1. Controller input with high sensitivity could effectively turbo-charge the bike ;)
2020-11-07 09:56:57 +11:00
Mitchell Richters
466bc84697
- Duke/RR: Completely revamped vehicle mouse/controller input.
...
* Original algorithm now used purely for keyboard input only.
* Mouse and controller input is no longer a scaled double version of the keyboard input.
* Mouse input is the square root of the base angle adjustment (20) multiplied by (mouse input divided by the input scale factor). As such, mouse input is completely consistent between synchronised and unsynchronised input.
* Controller input is base angle adjustment (20) multiplied by itself.
* Renamed `turnl`/`turnr` variables to `kbdLeft`/`kbdRight` respectively.
* Fixed issue where `p->TiltStatus` wasn't being backed up in `boatApplyTurn()`.
2020-11-07 09:56:57 +11:00
Mitchell Richters
6f5f66ad35
- Duke/RR: Partially revert c9d875327850e839e3ad1f367ede15497d44fda3 by truncating p->MotoSpeed
to integer when calculating xvel/yvel to preserve original vehicle feel.
2020-11-07 09:56:57 +11:00
Mitchell Richters
567738f3ad
- Duke/RR: Tidy formatting of onMotorcycle()
, onBoat()
, onMotorcycleMove()
and onBoatMove()
.
2020-11-07 09:56:57 +11:00
Mitchell Richters
1545610501
- Duke/RR: Convert remaining vehicle function local ints to bools where appropriate.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c223a50b29
- Duke/RR: Clean up vehicle turn left/right bools used in ticker functions.
2020-11-07 09:56:57 +11:00
Mitchell Richters
ad10ea4cb5
- Duke/RR: Initial implementation of scaled p->MotoSpeed
controller input.
2020-11-07 09:56:57 +11:00
Mitchell Richters
578ded1db3
- Duke/RR: Promote p->MotoSpeed
from short
to double
in prep for applying scaled controller input.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c46ad10bb1
- Duke/RR: Clean up some disassembly variable names in vehicle so it's easier to understand what's going on.
2020-11-07 09:56:57 +11:00
Christoph Oelckers
94341e8582
- fixed missing null check in SetOwner and SetHitOwner.
2020-11-06 20:13:06 +01:00
Mitchell Richters
71be467065
- Duke: Fix missing ammo counter on modern HUD for WT's flamethrower.
...
* Fixes #156 .
2020-11-06 22:07:11 +11:00
Mitchell Richters
c823e33bb3
- Duke/RR: Fix remaining issues with drug mode.
...
* Primary issue was call to `renderSetAspect()` within `setdrugmode()` wasn't mulscaling with `viewingrange`.
* Changed `setdrugmode()` to `getdrugmode()` to return `p->drug_aspect`. This is so `renderSetAspect()` needs to only be called from one place only.
2020-11-06 20:52:43 +11:00
Christoph Oelckers
d5ff87fa4f
- RRRA: fixed vehicle collision with psychedelic cactuses.
...
This did not fully match the original source which had a critical difference here between RR and RRRA.
2020-11-05 14:31:55 +01:00
Christoph Oelckers
977223287e
- cap the frame rate of RRRA's cactus drug mode.
...
This was running at full render speed.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
d8e331ef0f
- changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
...
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Mitchell Richters
e8ccd9bc8c
- Fix compilation.
2020-11-05 11:14:04 +11:00
Christoph Oelckers
60263ccad9
- fixed destroyit.
...
This caused parts of the exploding house in RRRA E1L5 not to disappear.
2020-11-04 21:53:56 +01:00
Christoph Oelckers
6729859e39
- fixed the crane.
...
Cannot take the special value out of the owner field. :(
2020-11-04 21:25:59 +01:00
Christoph Oelckers
721efae0d3
- fixed camera loop.
2020-11-04 20:44:12 +01:00
Christoph Oelckers
083454986b
- made camsprite an actor variable.
2020-11-04 20:40:26 +01:00
Christoph Oelckers
25c93e65fc
- more script ID wrappers for sectors.
2020-11-04 20:40:26 +01:00
Christoph Oelckers
aac5ab55a3
- movesprite cleanup.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
7a95c1661e
- wrap actor index storage in sector in the script index API.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
471a25f819
- operaterespawns.
...
# Conflicts:
# source/games/duke/src/sectors_d.cpp
# source/games/duke/src/sectors_r.cpp
2020-11-04 20:40:25 +01:00
Christoph Oelckers
5cf288a05c
- changed the trip bomb indexing to use a separate counter for robustness.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
0eb10f0313
- newowner and related code.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
c90e7d9b5f
- almost the last owners
2020-11-04 20:40:08 +01:00
Christoph Oelckers
d0db810ab0
- ud.camerasprite -> actor.
2020-11-04 20:40:08 +01:00
Christoph Oelckers
212b99d0f3
- use owner wrappers in spawn code.
2020-11-04 20:40:08 +01:00
Christoph Oelckers
24cfd841f2
- lotsofglass - final function in spawn.cpp
2020-11-04 20:40:07 +01:00
Christoph Oelckers
4add2b5839
- two more
2020-11-04 20:40:07 +01:00
Christoph Oelckers
ac5ea2f1c9
- 3 more wrappers gone.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
8f754d163d
- removed inline wrappers that are not needed anymore.
...
# Conflicts:
# source/games/duke/src/spawn_r.cpp
2020-11-04 20:40:07 +01:00
Christoph Oelckers
f3f0fd0a3a
- ported the sound code to actors and removed the inline helpers.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
4c3435bacf
- moved some non-owner info out of the owner field.
...
This only handles items where both reading and writing can be located.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
15fc884909
- owners in spawn.cpp
2020-11-04 20:40:06 +01:00
Christoph Oelckers
90511a97e7
- initcrane and spawneffector.
2020-11-04 20:40:06 +01:00
Christoph Oelckers
e2e24fc508
- spawn.cpp part 2.
...
(Beware of the crane! That one's hacky!)
2020-11-04 20:40:06 +01:00
Christoph Oelckers
edb991e47d
- first part of spawn.cpp.
2020-11-04 20:40:06 +01:00
Christoph Oelckers
60977ef4dc
- the spawn dispatcher is no longer used.
2020-11-04 20:40:06 +01:00
Christoph Oelckers
c54f17a6d5
- hittype in spawn code.
2020-11-04 20:40:05 +01:00
Christoph Oelckers
e427668373
- the remaining iterators in sectors_r.cpp
2020-11-04 20:39:43 +01:00
Christoph Oelckers
6a8dc8217f
- 6 simple loops in sectors_r.cpp.
2020-11-04 20:39:43 +01:00
Christoph Oelckers
bb23d9131e
- player.i, part 4.
2020-11-04 20:39:43 +01:00
Christoph Oelckers
d773601d81
- player.i, part 3
2020-11-04 20:39:43 +01:00
Christoph Oelckers
cc0a668da3
- player.i, part 2
...
# Conflicts:
# source/games/duke/src/sectors_r.cpp
2020-11-04 20:39:43 +01:00
Christoph Oelckers
770897b8b9
- player.i, part 1
2020-11-04 20:39:42 +01:00
Christoph Oelckers
d5a74e4290
- handled several GetIndex calls.
2020-11-04 20:39:39 +01:00
Christoph Oelckers
64c83d166e
- fixed a few parameters
2020-11-04 20:39:39 +01:00
Christoph Oelckers
eb5cd98d9a
- fixed a few bad parameters.
2020-11-04 20:39:39 +01:00
Christoph Oelckers
a8212f0756
- crash fix in spawn and camera fix.
2020-11-04 20:25:02 +01:00
Christoph Oelckers
afd059d6a1
- the remaining loops in sectors_d.cpp
2020-11-04 19:55:18 +01:00
Christoph Oelckers
7c6ea9cff7
- activatebysector.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
7aca51a6c4
- 6 more loops.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
d8a7821b4f
- cleaned up a few more loops.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
618c739318
- spawninitdefault.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
4d4cb2da9b
- handle the cheap-ass ROR code.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
10d4f92232
- use a dedicated variable to store the vehicle ammo for RRRA's bike and boat.
...
owner should be reserved for pointers.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
803cf4aece
- the last two loops in premap_r.cpp
2020-11-04 19:55:16 +01:00
Christoph Oelckers
a63c62bf7c
- the geometry effect loop
2020-11-04 19:55:16 +01:00
Christoph Oelckers
9f3b74f4a2
- 3 loops in premap_r.cpp
2020-11-04 19:55:16 +01:00
Christoph Oelckers
8360ba99ff
- fixed cacheit_r sector loop.
2020-11-04 19:55:16 +01:00
Christoph Oelckers
68f9037883
- pointer replacements.
2020-11-04 19:55:16 +01:00
Christoph Oelckers
86909c9068
- fixed cacheit_d sector loop.
2020-11-04 19:55:16 +01:00
Christoph Oelckers
2b0f56a94c
- changed setsectinterpolate to receive a sector number, not a sprite number.
2020-11-04 19:55:16 +01:00
Christoph Oelckers
32fc9329de
- another iterator.
...
This one's for init code that needs to iterate sprites in spawn order.
2020-11-04 19:55:15 +01:00
Christoph Oelckers
12ef8c4543
This completes player_r.cpp
2020-11-04 19:55:15 +01:00
Christoph Oelckers
34d0219d06
- nullptr fixes
2020-11-04 19:55:15 +01:00
Christoph Oelckers
36370b71e2
- wrapped neartag to return an actor.
2020-11-04 19:55:15 +01:00
Christoph Oelckers
bc6ae872ae
- cleaned up the checkhitswitch interface to receive sprites as pointers.
2020-11-04 19:55:15 +01:00
Christoph Oelckers
3e7c8adc1e
- checkhitswitch_r part 4
2020-11-04 19:55:15 +01:00
Christoph Oelckers
4ce19b74b0
- checkhitswitch_r part 3
2020-11-04 19:55:14 +01:00
Christoph Oelckers
e81b37b31a
- checkhitswitch_r part 2
2020-11-04 19:55:14 +01:00
Christoph Oelckers
2a23dfa0a8
- checkhitswitch_r part 1
2020-11-04 19:55:14 +01:00
Christoph Oelckers
f13a8943ab
- checkhitswitch_d part 2
2020-11-04 19:55:14 +01:00
Christoph Oelckers
f1ab8f03ef
- checkhitswitch_d part 1
2020-11-04 19:55:14 +01:00
Christoph Oelckers
87e8801531
- handle the clipmove result in processinput.
2020-11-04 19:55:14 +01:00
Christoph Oelckers
419cf9af5e
- processinput part 1.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
ef2c773e02
- RR processweapon pass 1
2020-11-04 19:55:13 +01:00
Christoph Oelckers
d4dabee52d
- OnMotorcycle/BoatHit.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
454b2315d4
- use actors instead of indices for sound calls.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
8d55138db0
- checkweapons_r.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
635b53f78f
- RR-movement + dummyplayersprite
2020-11-04 19:55:13 +01:00
Christoph Oelckers
60ec6b8c7d
- handled the last remaining sprite references in player_d.cpp.
2020-11-04 19:55:12 +01:00
Christoph Oelckers
70e1b87160
- Duke underwater.
2020-11-04 19:55:12 +01:00
Christoph Oelckers
b302f2535f
- player index and hittypes in player_d.cpp
2020-11-04 19:55:12 +01:00
Christoph Oelckers
f598c16e03
- use the script interface where needed.
...
Later the scripts should only see some token representing an actor, not an index.
2020-11-04 08:24:17 +01:00
Christoph Oelckers
773aa9976d
- fixed compilation of release build.
2020-11-04 07:01:25 +01:00
Christoph Oelckers
29b08b2115
- access_spritenum
2020-11-03 22:49:17 +01:00
Christoph Oelckers
b891646c37
- all of player_w.cpp
2020-11-03 22:41:24 +01:00
Christoph Oelckers
be591e9cf9
- the last bit of shoot_d.
2020-11-03 22:41:24 +01:00
Christoph Oelckers
16089e56f0
- the rest of shoot_r.
2020-11-03 22:41:24 +01:00
Christoph Oelckers
47f77a97e4
- RR shootrpg and shootwhip.
2020-11-03 22:41:24 +01:00
Christoph Oelckers
aa6dd72688
- RR shootstuff
2020-11-03 22:41:23 +01:00
Christoph Oelckers
32a7c2349e
- shoot interface transitioned/operateweapon mostly done.
2020-11-03 22:01:58 +01:00
Christoph Oelckers
513744aa56
- this was nonsense. atwith is a tile number, not a sprite index.
2020-11-03 21:51:17 +01:00
Christoph Oelckers
7e29be7569
- switched checkhitwall interface to actors.
2020-11-03 21:49:57 +01:00
Christoph Oelckers
4258c27248
- switched the checkhitsprite interface to actors.
2020-11-03 21:43:50 +01:00
Christoph Oelckers
30f4057451
- removed the remaining references to 'i' from checkhitsprite_d.
2020-11-03 21:43:50 +01:00
Christoph Oelckers
a31cb23be1
- checkhitsprite_r references to 'i' removed.
2020-11-03 21:43:49 +01:00
Christoph Oelckers
1ab13688a7
- RR shootweapon
2020-11-03 21:43:49 +01:00
Christoph Oelckers
51705e5a61
- RR shootmelee.
2020-11-03 21:43:49 +01:00
Christoph Oelckers
f276a5f443
- shootlaser and shootgrowspark
2020-11-03 21:43:49 +01:00
Christoph Oelckers
badf536fef
- shootstuff and shootrpg.
2020-11-03 21:43:49 +01:00
Christoph Oelckers
ca78ed9b63
- shootweapon
2020-11-03 21:43:49 +01:00
Christoph Oelckers
617c2c2503
- replaced index for sound origin in checkhitsprite_r.
2020-11-03 21:43:48 +01:00
Christoph Oelckers
41f2fe5e06
- same for checkhitsprite_r.
2020-11-03 21:43:48 +01:00
Christoph Oelckers
4443234126
- replacing sprite[sn] in checkhitsprite_d.
2020-11-03 21:43:48 +01:00
Christoph Oelckers
faa4248c5c
- lotsofglass wrapper and variable renaming in checkhitsprite_d.
2020-11-03 20:43:38 +01:00
Christoph Oelckers
17737eea85
- wrapped hitscan in a variant returning an actor.
2020-11-03 20:43:38 +01:00
Christoph Oelckers
768487584e
- aim and all calling instances.
...
This also takes care of RR's chicken arrow storing an actor reference in lotag.
2020-11-03 20:42:03 +01:00
Christoph Oelckers
8268c1b538
- shootfireball, shootflamethrowerflame, shootknee
2020-11-03 20:21:53 +01:00
Christoph Oelckers
6ee856b8c1
- added missing 'break' to SE code.
...
This caused the car in RR's first level to go too fast.
2020-11-03 20:21:30 +01:00
Christoph Oelckers
3fdeedcae7
- player.cpp is free of array references, except one that's unavoidable for now.
2020-11-03 19:25:07 +01:00
Christoph Oelckers
79f850d126
- PlayerColorChanged, hits, hitasprite.
2020-11-03 19:21:44 +01:00
Christoph Oelckers
1fcd5eef47
- CON game access interface done.
2020-11-03 19:21:44 +01:00
Christoph Oelckers
f5cccb0df2
- actorflag, actorfella, automap, animateaccess, holoduke spawn, initreactor.
...
# Conflicts:
# source/games/duke/src/game_misc.cpp
2020-11-03 19:21:43 +01:00
Christoph Oelckers
2db8ace275
- eliminated all array accesses in game_misc.cpp.
2020-11-03 19:21:43 +01:00
Christoph Oelckers
61013af910
- fixed three crashes found when testing WW2GI.
2020-11-03 19:21:43 +01:00
Christoph Oelckers
a514910aa4
- use an actor pointer in Get/SetGameVarID's parameters to weed out the ordering screwups.
2020-11-03 19:21:43 +01:00
Christoph Oelckers
de92287d0b
- fixed the messed up parameter order of OnEvent.
...
This should serve as a textbook example why passing around indices is a very, very bad idea!
2020-11-03 19:21:42 +01:00
Christoph Oelckers
c1b5b17541
- removed a few references in animatesprites.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
3ea6887c43
- replaced a bit more.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
2c573a720b
- starting at the bottom of player_r.cpp.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
33f730baf3
- replaced "sprite[p->i]" globally.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
b5309a6410
- some quick'n easy replacements.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
cd70818d54
- added a few NULL checks.
2020-11-03 07:12:11 +01:00
Christoph Oelckers
b2497b346c
- use GetActor() wrapper in hud weapon code.
2020-11-03 07:06:30 +01:00
Christoph Oelckers
f729f7d7a3
- renamed a few things in animatesprites.
...
This function will need special handling later, for now let's just reduce the work surface to a few pointers.
2020-11-03 07:06:30 +01:00
Christoph Oelckers
ac58dd8017
- execute.
2020-11-03 07:06:30 +01:00
Christoph Oelckers
8f815f9391
- LoadActor.
2020-11-03 07:06:29 +01:00
Christoph Oelckers
da9c4d90a2
- parse - part 7.
2020-11-03 07:06:29 +01:00
Christoph Oelckers
38817c3bee
- parse - part 6.
2020-11-03 07:06:29 +01:00
Christoph Oelckers
aa3d1fdcad
- parse - part 5.
2020-11-03 07:06:29 +01:00
Christoph Oelckers
7438b57f23
- parse - part 4.
2020-11-03 07:06:29 +01:00
Christoph Oelckers
59d9138b77
- parse - part 3.
2020-11-03 07:06:28 +01:00
Christoph Oelckers
65fc6dd3c7
- parse - part 2.
2020-11-03 07:06:28 +01:00
Christoph Oelckers
8bdeb66dcb
- parse - part 1.
2020-11-03 07:06:28 +01:00
Christoph Oelckers
0fac102c26
- renamed variables in ifcansee.
2020-11-03 07:06:28 +01:00
Christoph Oelckers
83217ee620
- ifcansee.
2020-11-03 07:06:27 +01:00
Christoph Oelckers
83b47f60b3
- ifcanshoottarget.
2020-11-03 07:06:27 +01:00
Christoph Oelckers
ea9a8642b0
- doactor.
...
# Conflicts:
# source/games/duke/src/gameexec.cpp
2020-11-03 07:06:27 +01:00
Christoph Oelckers
669fcc967f
- cheats.cpp and ccmds.cpp handled.
...
# Conflicts:
# source/games/duke/src/cheats.cpp
2020-11-03 07:06:27 +01:00
Christoph Oelckers
ad84c8149e
- the rest of sectors.cpp
2020-11-03 07:06:27 +01:00
Christoph Oelckers
4236f800f6
- operateactivators and operatemasterswitches.
2020-11-03 07:06:26 +01:00
Christoph Oelckers
7635fc9ad6
- operatesectors.
2020-11-03 07:06:26 +01:00
Christoph Oelckers
326ca9e172
- handle_st28,
2020-11-03 07:06:26 +01:00
Christoph Oelckers
06695073d0
- handle_st27.
2020-11-03 07:06:26 +01:00
Christoph Oelckers
d4c53226d0
- handle_st25.
2020-11-03 07:06:26 +01:00
Christoph Oelckers
fd8ee214f5
- handle_st23.
2020-11-03 07:06:25 +01:00
Christoph Oelckers
e6507887d3
- handle_st20.
2020-11-03 07:06:25 +01:00
Christoph Oelckers
2afbbcb157
- handle_st29.
2020-11-03 07:06:25 +01:00
Christoph Oelckers
7c491742f9
- handle_st15.
2020-11-03 07:06:25 +01:00
Christoph Oelckers
c9c649d3f8
- crash fix with null pointer.
2020-11-03 07:05:51 +01:00
Christoph Oelckers
88adef3caa
- split up operatesectors into more digestable pieces.
2020-11-03 07:03:01 +01:00
Christoph Oelckers
4dd9be7b6d
..
...
- activatewarpelevators
2020-11-03 06:52:26 +01:00
Christoph Oelckers
8d1409a708
- bring weaprec handling of RR in line with Duke.
...
This code set a sprite index where a tile number is expected by all other code checking this array.
In the stock game this should never trigger, though, as the actor being checked is the burning dynamite which cannot be picked up again as-is.
2020-11-03 06:51:29 +01:00
Christoph Oelckers
595a2156e4
- fixed bad spawn owner in refactored loop.
2020-11-02 21:45:36 +01:00
Christoph Oelckers
6adc2f8e55
- findplayer
2020-11-01 17:07:47 +01:00
Christoph Oelckers
fa5b48d270
- check_activator_motion, doanimations.
2020-11-01 17:07:47 +01:00
Christoph Oelckers
b2a2232260
- callsound
2020-11-01 17:07:46 +01:00
Christoph Oelckers
3c19f8e44e
- the last remaining small functions in actors_d.cpp and actors_r.cpp.
2020-11-01 17:07:46 +01:00
Christoph Oelckers
52c342a2ff
- renamed variables in move functions.
2020-11-01 17:07:46 +01:00
Christoph Oelckers
e6e53d1954
- move, fakebubbaspawn and destroyit.
2020-11-01 17:07:46 +01:00
Christoph Oelckers
a6f9673403
- moveeffectors.
2020-11-01 17:07:46 +01:00
Christoph Oelckers
c438061b83
- made SE06 and SE28 separate functions.
2020-11-01 17:07:45 +01:00
Christoph Oelckers
f5338d0acb
- moveexplosions.
2020-11-01 17:07:45 +01:00
Christoph Oelckers
76c4eeddc4
- moveactors.
2020-11-01 17:07:45 +01:00
Christoph Oelckers
2ad31247ec
- henstand and bowling.
2020-11-01 17:07:45 +01:00
Christoph Oelckers
a31a19d430
- fixed 2 bad iterators.
2020-11-01 17:07:45 +01:00
Christoph Oelckers
0c2a7de550
- fixed uninitialized variable with 'hitasprite'.
2020-11-01 17:06:52 +01:00
Christoph Oelckers
fd83b87b94
- rr_specialstats.
2020-11-01 15:25:18 +01:00
Christoph Oelckers
0ec7732bd4
- rrra_specialstats.
2020-11-01 15:22:34 +01:00
Christoph Oelckers
63646e7c5c
- heavyhbomb
2020-11-01 15:19:51 +01:00
Christoph Oelckers
441ed6bdc5
- flamethrowerflame
2020-11-01 15:17:49 +01:00
Christoph Oelckers
44fc4f9243
- greenslime.
2020-11-01 15:11:49 +01:00
Christoph Oelckers
d4ee8a1c48
- removed a few redundant GetIndex calls.
2020-11-01 15:08:48 +01:00
Christoph Oelckers
9826ff54f9
- movetransports.
2020-11-01 15:05:21 +01:00
Christoph Oelckers
076dcef5d0
- renamed variables in movetransports.
2020-11-01 14:56:23 +01:00
Christoph Oelckers
2d1b8a2b4b
- use the cleaned up movesprite interface in moveweapons.
2020-11-01 14:51:32 +01:00
Christoph Oelckers
3aaf2e80a9
- moveweapons.
2020-11-01 14:46:05 +01:00
Christoph Oelckers
00b12c5fd6
- weaponcommon subfunctions.
2020-11-01 12:27:43 +01:00
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